Explotación de Entornos Windows

Exploits

Enlace de descargar de exploits de Windows.

Buffer Overflow básico

Abrimos el programa usando Immunity Debugger (este deber ser iniciado como administrador). En Debug, seleccionamos Run para iniciar el programa:

Iniciar la ejecución del programa

Por cada prueba a realizar, se debe repetir este paso, debido que, el programa deja de funcionar.

Creamos un directorio de trabajo usando mona:

Creación del directorio de trabajo
Directorio de trabajo creado

Usando mona, debemos encontrar el valor de un registro de salto JMP al ESP, el cual, no debe tener protecciones:

Valor registro JMP

El salto al ESP es 0x625011af, que, en little endian es \xaf\x11\x50\x62.

Capturando hash LM/NTLMv1 con Metasploit

Iniciamos el módulo de captura:

En este caso, podemos usar alguna técnica de ingeniería social para pasar la URL al target, como por ejemplo, una imagen con hipervínculo en un phishing:

Cuando se conecte el target, y este trabaje con hashes LM o NTLMv1, podemos intentar crackearlos usando JohnTheRipper:

En caso de que JohnTheRipper falle, podemos usar rainbow tables:

Comando:

  • -h primeros 8 bytes del hash LM

  • -t threads a usar

Ejemplo:

Ahora que tenemos la primera parte de la password descifrada, usamos la herramienta halflm_second.rb de Metasploit, el cual, se encuentra en /usr/share/metasploit-framework/tools/password:

  • -n hash obtenido

  • -p parte de la password encontrada en el paso anterior

Ejemplo:

Ahora con la herramienta netntlm de JohnTheRipper, podemos obtener la password real (esta se encuentra en /usr/share/john/):

  • -file archivo que tiene el hash obtenido en la primera etapa

  • -seed password obtenida en el paso anterior

Ejemplo:

Podemos usar esta herramienta para obtener la password en mayúsculas, al igual que lo hace halflm_second, donde, -seed seria la primera parte de la password obtenida.

El cracking de los hashes NTLMv2 se considera no factible.

SMB Relay en NTLMv1/v2

Resumen del ataque:

SMB Relay en NTLMv1/v2

Para iniciar este ataque, usamos los siguientes comandos:

Con la opción SMBHOST indicamos el target.

Esto funciona solo si el Network security: LAN Manager authentication level se encuentra configurado como Send LM & NTLM responses o Send NTLMv2 response only.

NBT-NS/LLMNR Spoofing

Es posible realizar un spoofing de LLMNR (Link-Local Multicast Name Resolution) y de NBT-NS (NetBIOS Name Service) a través de un ataque mitm y así, obtener sus hashes.

LLMNR es el sucesor de NBT-NS, el cual, fue introducido en Windows Vista.

Cuando la resolución de nombres falla, se utilizan estos protocolos.

Al momento que estos protocolos son usados para descubrir host, envían mensajes broadcast a la red con los hashes NTLMv1/v2, los cuales, pueden ser interceptados en la red local (VLAN), para usarlos en otros sistemas, o crackearlos de forma offline.

Escenario de ataque

  1. El host A envía un request a un recurso compartido SMB al sistema \\intranet\files, pero, en vez de escribir intranet, escribe intrnet

  2. Se manda una consulta al DNS para poder resolver el nombre intrnet, el cual, no es conocido por este, por lo tanto, el host A envía un mensaje broadcast LLMNR o NBT-NS consultando la dirección IP de dicho host

  3. El atacante responde el mensaje broadcast, indicando que el es intrnet

  4. El host A envía al atacante su nombre de usuario y el hash NTLMv1/v2

Escenario de ataque

Herramientas para realizar el ataque

Responder es una herramienta que permite explotar esta debilidad en estos protocolos, para así, poder capturar los hashes NTLMv1/v2, y con esto, retransmitirlos a otro sistema para poder autentificarnos.

En Kali se puede encontrar en /usr/share/responder

Para este caso, Responder actúa como un listener de los mensajes broadcast, y realiza un spoofing de las respuesta al host target, resultando en la intercepción de los hashes que pueden ser pasados a otros sistemas, o eventualmente, poder crackearlos de forma offline.

En conjunto con Responder, se usa Multirelay, el cual, permite realizar un relay de los hashes a otras máquinas de la LAN, y con esto, obtener una shell en ellos.

Para llevar a cabo este ataque, es necesario que se encuentre deshabilitado el SMB Signing en el target. Para poder determinar si este no se encuentra habilitado, se puede usar la herramienta RunFinger.

Uso de RunFinger:

Atacando LLMNR/NBT-NS

  • Modificar el archivo Responder.conf, deshabilitando SMBy HTTP:

Habilitación de servicios
  • Ejecutamos Responder en la interfaz que deseamos:

    • -I interfaz que estará a la escucha

    • --lm realiza un downgrade de los hashes a LM

  • En otra terminal, ejecutar MultiRelay:

    • -t indicamos la IP del target

    • -u ALL realiza un relay de todos los usuarios. También se puede indicar el usuario que queremos, reemplazando ALL por el nombre del usuario

EternalBlue (MS17-010)

Metasploit posee dos módulos asociados a esta vulnerabilidad que nos ayudaran a detectarla y explotarla:

Validación de vulnerabilidad:

Explotación:

Lo primero que validamos es si es vulnerable a la versión que usa PIPE. Para lograr esto, descargamos el siguiente script.

Este script usa como complemento el script mysmb.py.

Checker PIPE

Vemos que no es vulnerable a la opción que utiliza PIPE, por lo tanto, usaremos el siguiente script.

Lo primero es definir la arquitectura del target, para lograr esto, usamos crackmapexec:

Obtención de la arquitectura del OS

Vemos que la máquina es de arquitectura x64, por lo tanto, trabajamos con el shellcode indicado para esa arquitectura.

Ensamblamos el shellcode del kernel con nasm:

Generamos el payload para poder obtener una reverse shell:

Ahora juntamos ambos archivos:

Por último, ejecutamos el exploit:

El valor 6 corresponde al numGroomConn, el cual, a prueba y error resultó ser dicho número.

Explotación

NetAPI (MS08-067)

Metasploit posee el módulo exploit/windows/smb/ms08_067_netapi que permite explotar esta vulnerabilidad.

VNC Keystrokes con Metasploit

El parámetro PASSWORD no es requerido.

Adobe Flash Player ByteArray Use After Free

Este exploit explota el uso de After Free de Adobe Flash Player cuando maneja objetos ByteArray.

  • SRVHOST dirección IP local que se encuentra a la escucha

  • SRVPORT puerto local que se encuentra a la escucha

  • URIPATH URI a usar para en el exploit

  • TARGET 0 para Windows, 1 para Linux

  • PAYLOAD payload a usar para obtener la shell reversa

  • LHOST dirección IP local al que se conectará el target

  • LPORT puerto local al que se conectará el target

Esto generará una URL, la cual, el target debe ingresar para poder explotar este recurso (se puede usar alguna técnica de ingeniería social para lograr esto).

Last updated