miércoles, 3 de marzo de 2010

Windows Post-Explotation & Pass-the-Hash

El pasado viernes por la tarde, en las Conferencias FIST de Barcelona, tuvimos la oportunidad de dar una de las charlas de 45 minutos en las que explicábamos algunas técnicas que podemos realizar durante la realización de un test de intrusión una vez hemos conseguido hacernos con el control de una de las máquinas. Concretamente, repasábamos algunas de las técnicas que se pueden emplear en sistemas Windows.

Entre las técnicas mencionadas, comentamos como se pueden aprovechar los fallos existentes en el antiguo Hash LANMAN utilizado aún por Microsoft por motivos de compatibilidad para obtener las contraseñas de una forma más fácil y rápida. Otra de las técnicas mencionadas consistía en la utilización de hashes que no habían podido ser crackeados debido a la robustez de la clave, pero que igualmente podían ser utilizados empleando técnicas de Pass-the-Hash para lograr propagar nuestra intrusión en el resto de los equipos sin necesidad de conocer la contraseña.
Podemos descargar la presentación o verla directamente a través de Scribd:




También podemos ver un pequeño video de las demostraciones que me llevé preparado por si me fallaban las maquetas, o el ordenador, o algo:




En el video podemos ver como, tras una intrusión en el sistema XPOWNED, robamos los hashes y los intentamos crackear utilizando las conocidas debilidades del algoritmo LANMAN de Microsoft. Sin embargo, una de las contraseñas se nos resiste tanto al ataque de diccionario como al de fuerza bruta, así que aplicamos sobre este Hash las técnicas de Pass-the-Hash. Para ello, utilizamos el Pass-the-Hash Toolkit (PSH) que como vemos cambia en la memoria de nuestro propio Windows las credenciales para sustituirlas por las credenciales del usuario suplantado, y a partir de ahí, a todos los efectos somos ese usuario en la red. Por último usamos el módulo PSExec de Metasploit para ejecutar comandos en el sistema XPTARGET. Para más información podeis consultar la presentación.

Por último, agradecer a todas las personas que vinieron el interés mostrado por nuestra charla. Esperamos que resultara interesante y esperamos también poder contar con vosotros para las sucesivas charlas que nos inviten a dar, que esperemos que sean muchas ;)

Lamento la tardanza en poner el post, pero lo de los videos se me sigue resistiendo, aunque parece que ahora, por fin, ya lo tengo solucionado ;P

Saludos a todos!

8 comentarios :

Seifreed dijo...

Hola!

Te vuelvo a preguntar, para cuando un WarGame!?:p
Muy buena la charla, me gusto mucho

Jose Selvi dijo...

Gracias @Seifreed :)

Lo del WarGame... como ya os dije no nos lo habiamos planteado, lo he comentado con la otra persona que escribe en el blog y a los dos nos parece una buena idea, aunque es bastante trabajo, así que no nos podemos comprometer a que esté la semana que viene o el mes que viene, todo dependerá de lo libres que estemos.

Pero vamos, no te preocupes, que tendrás tu WarGame ;)

Pablo Sanchez dijo...

artículo muy interesante...

w3wes@jamon-espana.com.es

Ruben dijo...

Muy bueno el blog los felicito hacen un gran trabajo, respecto al video se utiliza el contenido del archivo XPSpanish junto con whosthere.exe mi pregunta es que contiene ese archivo¿? no se si sere yo que no vi algun detalle en el video pero no se de donde sale el contenido del archivo y cual es su utilidad, bueno espero no parescan indebidas mis preguntas saludos cordiales!!

Jose Selvi dijo...

Gracias por los cumplidos @Ruben, te comento lo del fichero XPSpanish, porque es una cosa que expliqué mientras hacía la demo en las conferencias pero que sí que es cierto que sin explicación igual no se entiende demasiado.

Las herramientas que forman parte del Pass-the-Hash Toolkit (whosthere.exe, iam.exe, etc), como se indicaba en la presentación, necesitan obtener cierta información de la memoria, concretamente de LSASRV.DLL. Por desgracia, la información necesaria cambia de posición en la memoria dependiendo de la versión de Windows, Idioma o nivel de parcheo.

Las herramientas son capaces de reconocer algunas versiones de Windows, pero en este caso, un Windows XP SP3 en Español, no lo encontraba por si solo, así que hay que "ayudarle" un poco pasandole a mano las direcciones de memoria.

Por suerte, Hernán Ochoa, el desarrollador del Pass-the-Hash Toolkit proporciona un "script" para IDA Pro con el cual podemos obtener estas direcciones de forma automática. Este es el paso que no se ve en el video, basicamente por no alargar la demo, ya que solo disponía de 45 minutos entre presentación y demo, por eso esta tarea la hice previamente y almacené el resultado en ese XPSpanish.

Si os interesa comentadlo y pondré un pequeño post donde se vea este paso, aunque gracias al script y las explicaciones de Hernán, es bastante sencillo.

Saludos y gracias de nuevo por el comentario ;)

Ruben dijo...

seria interesante un post sobre esto se agradeceria mucho :) saludos!!

Anónimo dijo...

Muy bueno el articulo. La verdad que está fantástica la explicación.

Me surge una duda, en caso de una aceso al un PC del dominio, usando el psexec de MSF, ya sea usando en SMBPass el hash (LM:NTLM) o bien la propia passwd, si la hubieramos podido crackear. ¿Que evidencias forenses quedan? Es decir, por el hecho de hacer un psexec a un PC del dominio, ¿se guarda algún tipo de log en el Domain Controller o Active Directory? ¿Y en el propio PC accedido?

Muchas gracias, por todo, y por favor, sigue publicando en BLOG que es una referencia para todos los que nos apasiona este mundo de la seguridad. Aún tengo pendiente leer tu nuevo post de SQLMap...

Jose Selvi dijo...

Hola @Anónimo, no he hecho nunca la prueba de hacer "snapshot", ejecutar psexec, y volver a hacer "snapshot" a ver cuales son las diferencias en cuanto a los logs que deja, pero te voy a contestar desde los conocimientos que tengo sobre esta herramienta, aunque me has dado una muy buena idea para otro post ;)

PSExec funciona de la siguiente manera:
1) Copia a través de la red algunos ficheros que necesita.
2) Instala uno de los ficheros que acaba de subir (binario) como servicio y lo arranca.
3) Este servicio ejecuta la acción que le hayamos configurado (ejecutar calc.exe, meterpreter, o lo que sea).
4) Una vez ejecutado, detiene y desinstala el servicio.
5) Borra los ficheros que previamente subió.

Por lo tanto, dado que se están copiando ficheros al disco duro, en un análisis forense podriamos ser capaces de ver estos ficheros borrados (si no han sido ya sobreescritos), e incluso la creación y eliminación de este servicio si el sistema lo registra (que así de memoria lo desconozco, lo tendría que mirar).

Alguien quiere un post con una regla de Snort para detectar ejecución mediante psexec y similares? :P

Gracias por el comentario y por los cumplidos @Anónimo, aunque te tengo que decir que el post de SQLMap lo ha escrito Josemi, la otra persona que colabora en este blog conmigo.

Un saludo!