Professional Documents
Culture Documents
1.0- Introducción
2.0- ¿Que necesito para empezar?
3.0- Ophcrack
3.1- Averiguando las contraseñas en Local con Ophcrack
3.2- Descrubriendo contraseñas de forma remota
4.0- Contramedidas
4.1.0- Seguridad de contraseñas.
4.1.1- Longitud de contraseña.
4.1.2- Generador de passwords en Windows.
4.2- Almacenamiento de claves en un disco de inicio o llave usb:
5.0- Probando sobre un Windows XP SP2, con sus posibles problemas que se nos
pueden plantear para acceder a recursos compartidos especiales “admin$”.
6.0- Más contramedidas, para evitar robos de contraseña de forma remota.
6.1.- Modificar el registro para que no nos comparta los recursos especiales cada
vez que iniciamos el PC.
6.2.- Denegando el acceso al equipo desde la red.
7.0- Protegiendo nuestras contraseñas.
7.1.- Deshabilitando LAN Manager.
7.2.- Jugada Maestra
8.0- Averiguando contraseñas con LM desactivado, pero aceptando NTLM.
9.0- No tengo dinero para comprar ni media tabla. Pues llamemos a CAIN que
invita!
9.1.- Descargando tablas rainbow.
9.2.- Creando tablas rainbow con Winrtgen.
10.0.- Haciendo uso de Cain para los hash NTLM .
11.0- Interceptando passwords en la red con Caín y NTLMv2.
12.0- Auditando inicios, cierres de sesión y entradas a carpetas.
13.0- Enlaces de interés.
14.0- Despedida.
1.- Introducción:
Puede llegar el día que necesitemos recuperar las contraseñas (vaya cabeza la nuestra!!)
en un equipo tanto a nivel local como remoto de sistemas Windows. Para ello existen
varias herramientas, entre ellas Ophcrack, Caín que vamos a analizar y que nos pueden
hacer la vida muy fácil al administrador que necesita recuperar una contraseña en un
sistema Windows sin causar ningún tipo de cambio en el sistema que se esta analizando,
estas herramientas muchos ya las conoceréis y otros quedarán prendados de ellas.
Ophcrack puede correr bajo Windows, Linux y Mac Os X(CPU Intel), en este artículo
vamos a instalarla en Windows, vamos a probarla bajo Windows 2000 y XP SP2, según
su página oficial también funciona bajo Windows Vista, pero con algunas cosas que
tendremos que tener en cuenta. También vamos a ver las contramedidas para poder
defendernos de estas herramientas.. La herramienta Cain que veremos un poco más
adelante también corre en Windows 9x, NT, 2000 y XP y nos será de mucha utilidad.
En lo referente a Ophcrack lo podemos usar de varias maneras, sin instalación, una vez
bajada la ISO tendremos un Live CD con Ophcrack sobre Linux slax con el que
podremos arrancar sin necesidad de instalación alguna, pero hay otra manera de usarla,
instalando la aplicación, ya lo veremos más adelante.
Cain: http://www.oxid.it/cain.html
3-. OPHCRACK
Para averiguar las contraseñas en local solo debemos tener habilitado en la BIOS que
arranque vía cd o la unidad donde nos bootee Ophcrack. Una buena forma de evitar esto
es poniendo contraseña en la BIOS y apuntar como First Boot al disco duro
directamente.
http://kent.dl.sourceforge.net/sourceforge/ophcrack/ophcrack-win32-installer-2.4.1.exe
Vamos a instalar la aplicación Ophcrack ophcrack-win32-installer-2.4.1.exe
http://downloads.sourceforge.net/ophcrack/ophcrack-win32-installer-
2.4.1.exe?modtime=1195661800&big_mirror=0
También podremos instalarla desde el Live CD si lo hemos descargado esta dentro de la
carpeta X:\ophcrack, donde X es tu unidad de cd-rom.
La instalación es muy sencilla, podemos escoger las tablas que vamos a usar ya sea
señalando las tablas vía CD/DVD o vía internet
En mi caso voy a cogerla vía CD.
Una vez instalado si vamos al menú Load… . Observaremos “From Remote SAM”
En Target hostname or IP, ponemos la ip de donde vamos a averiguar las contraseñas
El recurso compartido admin$ por defecto
El nombre de usuario si es diferente al que estamos usando (del grupo de
administradores).
4.- CONTRAMEDIDAS:
Podemos crear una política de contraseñas, en la que todos los usuarios tengan
contraseñas de una longitud mínima de 15 caracteres. Bueno, parece excesiva la
medida, ya que a los usuarios no les entraría tal contraseña en el Post-IT que tienen
pegado en el monitor.
Para hacerlo solo deberíamos ir a las Herramientas Administrativas > Directiva de
seguridad local > Directiva de Cuenta > Directiva de contraseñas > Longitud
mínima de contraseña.
Windows tiene una sorpresa y es un generador de contraseñas, es fácil usarlo basta con
abrir el Símbolo de sistema “cmd.exe” y escribir: net user nombreusuario /random
Observamos que crea una contraseña de forma aleatoria, una vez metido ese comando la
contraseña de administrador pasara a ser kLoJ7oD@ , es lo que Microsoft entiende por
contraseña segura aunque después de leer este texto puede que no os lo parezca tanto.
Pero puede haber un problema quiero guardarlo en un lápiz usb y tengo mi disquetera
ocupando mi unidad A:
Pedazo de disquete que me aparece jeje. Esto mismo podríamos hacerlo con la unidad C
para cambiar la letra de unidad de inicio del sistema.
Si reiniciamos el equipo esto es lo que nos va a salir, en mi caso lo he hecho sobre un
Windows 2000:
Si hacemos la misma prueba sin el usb, nos encontraremos con el siguiente mensaje:
Ahora vamos a probar con Ophrcrack, arrancamos con el cd en local y comenzamos con
el programa, como ya podemos imaginar no va a ver suerte.
Como podemos comprobar a estas alturas ya tendría que haber encontrado las
contraseñas, pero no ha podido ser, gracias a haber almacenado la clave de inicio en un
disco.
5.- Probando sobre un Windows XP SP2, con sus posibles problemas que se nos
pueden plantear para acceder a recursos compartidos especiales “admin$”.
De primeras lo más seguro que no nos deje entrar, podemos intentarlo desde
\\192.168.0.201\c$ y nos da de vuelta:
Acceso denegado.
Nada de nada. Una puntualización. en realidad tendríamos que hacerlo sobre admin$, ya
que el usuario puede dejar de compartir el recurso c$, pero en este caso es igual
tampoco nos deja entrar. Podemos observar varias cosas en el PC al que estamos
intentando acceder.
1º No nos dejan ver desde el administrador de equipos las propiedades de los recursos
compartidos especiales, nos sale un Actualizar
2º Desde local si nos deja entrar perfectamente a \\192.168.0.201\c$.
Mosqueo, he visto muchos foros dando vueltas y vueltas sobre lo mismo, que porque
aquí si me deja entrar y porque aquí no me deja entrar, aquí esta la respuesta.
Vamos a Herramientas > Opciones de Carpeta > Ver > Y abajo del todo deshabilitamos
“Utilizar el uso compartido de archivos (recomendado)”
Que seria lo mismo que cambiar una directiva de configuración de Seguridad local >
Para ello podemos ir a las Herramientas Administrativas > Configuración de
seguridad Local > Directivas Locales > Opciones de seguridad > Acceso de red:
modelo de seguridad y para compartir para cuentas locales, y si lo miramos
después de deshabilitar el Uso compartidos simple de archivos observamos que aparece
Clásico: usuarios locales autenticados como ellos mismos:
Si no hubiese aparecido, como estaba al principio:
Bueno ahora que tenemos habilitado Clásico; usuarios locales autenticados como
ellos mismos. Si damos a las propiedades de la carpeta C veremos que esta compartida
como C$.
Bueno vamos a desconectar la unidad de red ya sabéis “net use z: /delete” por que nos
puede dar problemas ophcrack, al abrir el mismo recurso y comprobamos que funciona
perfectamente.
6.- Más contramedidas, para evitar robos de contraseña de forma remota.
Ahora vayamos a lo siguiente, como evitar que nos saquen la contraseña de forma
remota. Vamos a plantearnos la situación bastante usual, no tenemos cortafuegos o
tenemos como excepción en el mismo la posibilidad de compartir archivos e
impresoras y encima la persona que quiere averiguar los usuarios y contraseñas de
nuestro equipo conoce la contraseña de una cuenta de un usuario incluido en el grupo
administradores de nuestro equipo, pero alguna razón oscura que desconozco quiere
averiguar el resto.
6.1.- Modificar el registro para que no nos comparta los recursos especiales cada
vez que iniciamos el PC.
Esto puede llevar a engaño, pensando que solo estamos aceptando NTLMv2, pero
también aceptan NTLM, aun tenemos posibilidades de llevarnos por delante la
contraseña, como veremos mas adelante.
Como podéis observar, siempre con la claridad que Microsoft nos tiene acostumbrados.
Otra manera de verlo es entrando en el registro HKLM\SYSTEM\CurrentControlSet\
Control\Lsa el valor DWORD lmcompatibilitylevel, tiene que esta en 5, para ver los
valores que pueden tomar: http://www.microsoft.com/technet/prodtechnol/
windows2000serv/reskit/regentry/76052.mspx?mfr=true
Haciendo solo uso de NTLMv2 veremos que Ophcrack por remoto no deja.
Y en local, nada de nada todo empty, y el archivo que nos puede generar:
Administrador:500:aad3b435b51404eeaad3b435b51404ee::/EMPTY/::/EMPTY/
Invitado:501:aad3b435b51404eeaad3b435b51404ee::/EMPTY/::/EMPTY/
ddiego:1003:aad3b435b51404eeaad3b435b51404ee::/EMPTY/::/EMPTY/
Como podemos observar nos aparece todos /EMPTY/, hasta el que hemos metido para
acceder al recurso admin.$ nos aparece /EMPTY/ “Not Found”. El atacante se quedara
con la boca abierta.
Pero nos damos cuenta de una cosa, vamos a eliminar esa cuenta de Asistente de ayuda
y nos encontramos con el siguiente mensaje:
Negocio, negocio, esto pasa por no almacenar el valor de Hash de Lan Manager. Esta
tabla rainbow de hashes nt que anuncian, es de pago y según la página de ophcrack las
proporcionan ellos mismos: http://www.objectif-securite.ch/en/products.php. Entonces
nos queda dos opciones pedir una subvención o seguir este manual.
“NT hashes need to be cracked when the weaker LM hash has been disabled. This
can be done for security reasons and is the default setting for Windows Vista.”
Y iniciando con el Live CD en local nos encontramos con el mismo panorama y todos
empty
9.- No tengo dinero para comprar ni media tabla. Pues llamemos a CAIN que
invita!
Se me ocurren dos maneras de conseguir estas tablas que nos facilitarán la labor de
recuperar estas contraseñas
9.1.- Descargando tablas rainbow.
Primero nos bajaremos unas tablas de rainbow para NTLM, yo me he bajado unas que
resuelven hasta 6 caracteres alfanuméricos de hasta 6 caracteres.
Me los he bajado de aquí: http://rt.aspietom.co.uk/, también podemos encontrar más en:
http://www.freerainbowtables.com/rainbow_tables/ y varias más que he encontrado en
su foro:
http://www.napsko.com/jerome/
ftp://rt:rt@mirror2.fpux.com/
http://rainbowtables.ddl.cx/
http://rt.75x.org/
http://rt.walshnetwork.co.uk/
http://rt.chrysaor.info/
ftp://mirror2.fpux.com/
http://rt.aspietom.co.uk/
Otra opción aunque más lenta es crear nuestras propias tablas, con Winrtgen que nos lo
proporcionan en http://www.oxid.it/projects.html, al final podemos ver:
“Winrtgen is a graphical Rainbow Tables Generator that supports LM, FastLM,
NTLM, LMCHALL, HalfLMCHALL, NTLMCHALL, MSCACHE, MD2, MD4,
MD5, SHA1, RIPEMD160, MySQL323, MySQLSHA1, CiscoPIX, ORACLE,
SHA-2 (256), SHA-2 (384) and SHA-2 (512) hashes”
Con esta herramienta podremos crear nuestras tablas a nuestro gusto, aunque tardaremos
un poco más que descargándolas: Veamos la herramienta:
Al abrir le damos a Add Table, y ahí nos deja elegir el tipo de tabla que queremos,
podremos elegir un hash NTLM, la longitud de la tabla, en que número de tablas
queremos que nos la genere, y el juego de caracteres “charset” que queremos que tenga.
Una vez elegido nos aparecen las tablas, en la ventana de la izquierda y solo hay que
darle a OK.
Pero si habéis bajado alguna tabla rainbow de la red, o de la página que os he indicado
más arriba, podemos ir a ophcrack, indicar la ip de nuestra victima, veremos que nos
vuelve a salir al advertencia de que usemos tablas Nthash. Pues ahora le damos al menú
Save as, y guardamos como save.oph.txt.
Bueno he cambiado las claves de nuevo, por la longitud de la tabla que me he bajado.
Ahora vamos a Caín, vamos a la pestaña Cracker y le damos al botón derecho Add to
list.
Vamos a Import Hashes from a text file,damos a OK y luego a Next, ahí podemos
señalar las cuentas que queremos averiguar la contraseña., podemos borrar las que
queramos con Supr, o seleccionar varias.
Ahora señalamos las tablas, en Add Table, le damos a Start, unos minutos al horno y
estará listo.
He cambiado las contraseñas, de usuario administrador a prueba y la de ddiego, porque
las tablas que me baje son de 6 caracteres como máximo.
Ahora vamos a Save As como antes, y guardamos el archivo como viene por defecto:
save.oph
Administrador:500:aad3b435b51404eeaad3b435b51404ee:7ce21f17c0aee7fb9ceba532d0546ad6:::
ddiego:1003:aad3b435b51404eeaad3b435b51404ee:df3a9b37122daa575c3698e7452b9473:::
Invitado:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Podemos googlear para buscar alguna coincidencia, o lo que es mejor ir a esta página:
http://plain-text.info/search/ vamos a meter en hash:
7ce21f17c0aee7fb9ceba532d0546ad6 , damos a search y nos sale el resultado:
Como podéis observar, podemos sacar contraseñas de manera bastante efectiva y fácil.
Vamos a ponernos a escuchar todo lo que pasa en la red, en este caso son tres equipos
192.168.0.201 que es el equipo en el que queremos averiguar la contraseña y que esta
compartiendo recursos, 192.168.0.200 que es un equipo de un usuario de la red que
entra normalmente a los recursos compartidos del .201 como un usuario del grupo
administradores y nosotros en nuestro equipo .128 en el medio escuchando todo lo que
hablan, los dos equipos usan NTLMv2 y descartan todo lo demás.
Señalamos, los 3 botones que he señalado en rojo de la imagen siguiente para activar,
después de esto nos vamos al equipo 192.168.0.200 e intentamos entrar en el 201, a c$
pro ejemplo con usuario disidents contraseña 2008, el sniffer comenzara a funcionar:
Y más a la derecha sale:
Como podemos comprobar este es el tráfico que me interesa, esto significa que me he
logeado varias veces, por lo tanto lo señalo y con el botón derecho le doy a Send to
Cracker, como muestra la siguiente captura, podemos ver que podemos mandar uno o
varios, con uno de ellos seria suficiente:
Ahora vamos a Cracker y veremos que dentro de NTLMv2 esta lo que mandamos
desde el sniffer, ahora vamos a señalar el último logeo que hice y darle con el botón
derecho, Brute-Force Attack, o si tienes diccionarios usar un diccionario.
Lo voy a configurar para que use tome solo caracteres numéricos para que la encuentre
bien rápido, también como podéis observar admite uso de diccionario.
12.0- Auditando inicios, cierres de sesión y entradas a carpetas.
Queremos saber quién, como y a que hora entra un usuario en nuestro equipo, si entra
desde la red, en local…
En este caso los datos son los mismos, pero el Id de suceso es 540, lo que quiere decir
que el usuario a iniciado una sesión en una red satisfactoriamente.
1º Tenemos que ir a Directivas locales > Directivas de auditoria > Auditar acceso a
objetos
Os pongo algunos enlaces interesantes y de utilidad, puede que con el tiempo cambien
si es así tendréis que buscar.
FAQ Ophcrack: http://ophcrack.sourceforge.net/es.faq.php
Cain & Abel: User Manual: http://www.oxid.it/ca_um/
Amenazas y contramedidas: configuración de seguridad en Windows Server 2003 y
Windows XP: http://www.microsoft.com/spain/technet/security/topics/serversecurity/
tcg/tcgch00.mspx
Configuración de seguridad para clientes Windows XP: http://www.microsoft.com/
spain/technet/recursos/articulos/secmod62.mspx
plain-text.info: http://plain-text.info/
Rainbow Hash Cracking: http://www.codinghorror.com/blog/archives/000949.html
14.0- Despedida.