La explotación de vulnerabilidades es una técnica clave en el ámbito de la ciberseguridad ofensiva, utilizada por pentesters y atacantes maliciosos para comprometer sistemas. Una de las vulnerabilidades más conocidas es la técnica Pass-the-Hash (PtH), que aprovecha las debilidades en la autenticación de redes Windows para obtener acceso no autorizado a través de hashes de contraseñas. En este artículo, exploraremos cómo utilizar la herramienta NetExec para llevar a cabo ataques Pass-the-Hash.
El Pass-the-Hash (PtH) es una técnica de ataque que permite a un atacante autenticarse en un sistema sin necesidad de conocer la contraseña en texto claro. En lugar de esto, se utiliza el hash de la contraseña, que es el resultado del proceso de cifrado de la misma. Los sistemas que no aplican correctamente las políticas de seguridad permiten que los atacantes usen estos hashes para autenticarse de la misma manera que lo harían con la contraseña original.
Los ataques Pass-the-Hash son especialmente peligrosos en entornos de red donde se utilizan protocolos como SMB (Server Message Block) y NTLM (NT LAN Manager), los cuales pueden permitir la reutilización de hashes para autenticarse remotamente en otros sistemas.
1. Captura de hash: El atacante obtiene el hash de la contraseña de un usuario. Esto puede hacerse mediante diversas técnicas, como la explotación de vulnerabilidades, el uso de malware o herramientas como Mimikatz.
2. Uso del hash: El atacante utiliza el hash en lugar de la contraseña para autenticarse en sistemas dentro de la misma red, sin necesidad de conocer la clave original.
NetExec es una herramienta de código abierto diseñada para ejecutar comandos en sistemas remotos, aprovechando vulnerabilidades o utilizando credenciales válidas. Esta herramienta es particularmente útil para ejecutar comandos en máquinas Windows mediante protocolos como SMB o NTLM, lo que la hace ideal para realizar ataques Pass-the-Hash.
Antes de utilizar NetExec para explotar una vulnerabilidad Pass-the-Hash, es crucial obtener el hash NTLM de un usuario. Algunas de las herramientas más comunes para esta tarea son:
smb_login
, se puede capturar el hash de contraseñas de sesiones SMB activas.
Supongamos que tenemos acceso a un sistema Windows y queremos extraer los hashes con Mimikatz. Ejecutamos el siguiente comando:
privilege::debug
log
sekurlsa::logonpasswords
Este comando nos dará los hashes de los usuarios conectados al sistema, que lucen de la siguiente manera:
User: Admin
NTLM: 31d6cfe0d16ae931b73c59d7e0c089c0
Una vez que tenemos el hash NTLM, estamos listos para utilizar NetExec y ejecutar comandos de forma remota.
A continuación, describimos los pasos básicos para utilizar NetExec en un ataque Pass-the-Hash:
NetExec puede descargarse desde repositorios en línea, como GitHub. Para instalarlo, simplemente clona el repositorio e instala las dependencias necesarias.
git clone https://github.com/NetExec/NetExec.git
cd NetExec
pip install -r requirements.txt
Para ejecutar un ataque Pass-the-Hash, NetExec requiere varios parámetros importantes: la IP del objetivo, el nombre de usuario y el hash NTLM obtenido previamente. El comando básico de NetExec para un ataque PtH es el siguiente:
python netexec.py --target <IP_del_objetivo> --user <nombre_de_usuario> --hash <hash_NTLM> --command <comando_a_ejecutar>
Por ejemplo, si queremos ejecutar el comando whoami
en una máquina remota con la IP 192.168.1.10
y el hash NTLM 31d6cfe0d16ae931b73c59d7e0c089c0
del usuario Admin
, el comando sería:
python netexec.py --target 192.168.1.10 --user Admin --hash 31d6cfe0d16ae931b73c59d7e0c089c0 --command whoami
Supongamos que has logrado obtener el hash de un administrador de una red y deseas ejecutar el comando ipconfig
en su máquina. El hash NTLM es aad3b435b51404eeaad3b435b51404ee
, el usuario es admin
y la IP del objetivo es 10.0.0.15
.
El comando para ejecutar sería:
python netexec.py --target 10.0.0.15 --user admin --hash aad3b435b51404eeaad3b435b51404ee --command ipconfig
Si el ataque tiene éxito, verás la salida de ipconfig
en tu terminal, lo que indica que tienes control parcial sobre el sistema de destino.
Es importante señalar que los ataques Pass-the-Hash pueden ser extremadamente destructivos, ya que permiten a un atacante moverse lateralmente dentro de una red con facilidad. Algunas medidas de seguridad que se pueden tomar para mitigar este tipo de ataques incluyen:
La técnica Pass-the-Hash es una de las vulnerabilidades más utilizadas en ataques dirigidos contra redes Windows. Herramientas como NetExec facilitan la explotación de esta vulnerabilidad, permitiendo ejecutar comandos de forma remota utilizando hashes en lugar de contraseñas. Aunque esta técnica es peligrosa en manos de atacantes, también es crucial para pentesters que desean probar la robustez de la seguridad en redes corporativas.
Recuerda que la prevención y la detección temprana son las mejores defensas contra este tipo de ataques. Mantener sistemas actualizados, aplicar buenas políticas de seguridad y utilizar herramientas de monitoreo pueden ayudar a mitigar el riesgo de explotación.
Jorge García
Fullstack developer