14 jul 2017

SMBTrap fácil con MITMf

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.

No hay comentarios:

Publicar un comentario