SMBTrap es una vulnerabilidad que se descubrió en el año 2015 y no es más
que una vulnerabilidad que afecta a SMB en Windows y que viene de mucho más
tiempo atrás. En otras palabras, allá por el año 1997 se podía forzar a Windows
a que enviara las credenciales a un recurso compartido. Un atacante podía poner
un recurso compartido y poner un enlace en una web hacia dicho recurso las
credenciales serán enviadas, es decir, las credenciales hasheadas de Windows.
Con SMBTrap se dio una vuelta de a este concepto, y esto ocurrió en el año
2015. Existe un artículo de nuestro compañero Sergio de los Santos que habla de
esta vulnerabilidad y de cómo protegerse.
Mediante SMBTrap se podrán enviar las credenciales de Windows hasheadas
mediante un servidor SMB gracias a las redirecciones HTTP. La gente de Cylance
se dio cuenta, y así lo muestra en el paper, que la API de URLMon.dll, la cual es
utilizada por muchas aplicaciones hoy en día, también realizaban la operativa
de enviar las credenciales gracias a las redirecciones HTTP.
Hoy en día, es muy común utilizar NTLMv2, lo cual no es tan débil como los
antecesores, aunque siguen siendo potencialmente atacable mediante fuerza bruta
o, más lógicamente, por ataques de diccionario.
Integrado con MITMf
La semana pasada hablamos de uno de los frameworks más potentes y flexibles
para auditorías de red como es MITMf. Hoy vamos a ver como MITMf proporciona soporte,
a través de un plugin, para poder capturar hashes de Windows a través de
redirecciones HTTP. El plugin encapsula todo el proceso, pero lo que se
levantará es un servidor HTTP que, ante una petición, redirigirá hacia el
servicio SMB montado también por el propio plugin.
Como se puede ver, para invocar el plugin –smbtrap solamente hay que indicarlo al ejecutar MITMf. Si leemos
lo que es levantado, gracias a la ejecución del plugin, se puede leer un
servidor HTTP y un servidor SMB. Si echamos un ojo a los puertos a la escucha
en la máquina vemos lo comentado.
PoC: Sacando provecho de todo esto
Un escenario típico para sacar provecho aquí sería utilizar técnicas como
ARP Spoofing o DNS Spoofing buscando un envenenamiento de la caché ARP o caché
DNS. Las peticiones que la víctima haga desde, por ejemplo, su navegador que
utilice la autenticación por HTTP u otras aplicaciones que utilicen URLMon.dll.
Para este ejemplo, se realizará un ARP Spoofing y SMBTrap todo desde el
propio MITMf, mostrando la flexibilidad y potencia con una sintaxis muy
sencilla. La instrucción a ejecutar es mitmf.py
–spoof –arp –smbtrap –target [IP víctima] –gateway [IP router] –i [interfaz de
red].
En este instante, cuando la víctima utilice su Internet Explorer, en el
ejemplo utilizamos un Windows 7, la petición HTTP será redirigida al servidor
SMB montado por el atacante. En este instante, el navegador realizará, o lo
intentará, autenticarse mediante NTLMv2.
El resultado es un robo de credenciales hasheadas de Windows. Se puede
utilizar herramientas de cracking, como por ejemplo hashcat, para poder extraer
la credencial en plano.
En conclusión, SMBTrap está al alcance de la mano en herramientas como
MITMf, lo cual hace que montar lo necesario sea realmente sencillo. Es potente
utilizar este tipo de técnicas en auditorías internas, ya que la consecuición
de los hashes puede abrir la puerta a otras máquinas o recursos. Como vemos
MITMf proporciona diferentes técnicas, y cada vez más, y ayuda a poder realizar
ataques y pruebas que antes costaban montar. Seguiremos viendo ataques y
técnicas con este gran framework.