16.10.08

Como apoderarse de un Active Directory por medio del cache local

Este texto es d nivel 1 poco + alto q los anteriores aunq si le prestan atención y buscan en google cualquiera con conocimientos básicos puede entenderlo. No voy a explicar todos los conceptos desde abajo ya q c espera q el lector tenga esos conocimientos... o c preocupe x obtenerlos... je... cualquier duda dejen comentarios y las contesto.

X lo gral, en las grandes redes, los administradores c preocupan de poner la mayor atención en la seguridad de sus servers dejando las estaciones d trabajo bastante + abandonadas. Esto tiene cierta logica ya q el mayor peligro esta en 1 atacante q logre acceso x ej al Domain Controller (d ahora en adelante DC) o simplemente a la clave d admin d dominio.

Teniendo los servers asegurados tenemos asegurada la bd d usuarios con sus hashes y teóricamente lo unico q podria conseguir 1 atacante desde 1 estacion d trabajo es alguna pass local q como mucho le serviria para moverse x las pcs (en entornos corporativos c usa la misma pass d admin local en los clientes en el 99% d los casos) pero no poder pasar d ahí hacia los servers... entonces el dominio estaria asegurado... o no?? xD

Hace unas semanas vimos como conseguir la pass local en pocos mins:

Crackear contraseñas locales de Windows

este metodo puede fallar pero teniendo 1 buen poder d proceso y tiempo todo c puede crackear (en el futuro veremos q hacer si el ophcrack no encuentra la pass), todo depende d si vale o no la pena el tiempo a invertir. Vamos a ver entonces como con derechos locales podemos conseguir algunos hashes de dominio y con 1 poco d suerte y casi nada d riesgo tal vez el del admin.


MSCache

Cuando logueamos en 1 dominio (ahora Active Directory o AD) nuestra contraseña se envia encriptada al DC donde c comprueba q sea correcta para dejarnos ingresar y aplicar nuestros derechos sobre la red. Todo este proceso es mucho + seguro q loguear en 1 pc local o en 1 grupo d trabajo... o tendría q serlo ya q teóricamente los passes deberían estar alojados solamente en el DC.

Q pasaria entonces si tenemos 1 laptop corporativa cuyo user loguea en el dominio d la empresa cuando este no esta en la misma? Para poder usar su maquina fuera del trabajo deberia tener 2 users, 1 local y 1 del AD, ya q al no poder acceder a la red no podria autenticar su pass y x lo tanto loguear en el sistema, acceder a su perfil d dominio, etc.

Pero parece q los sres d Microsoft creyeron q era demasiado trabajo para sus pobres users, y decidieron cachear la pass en el sistema para poder loguear cuando no este disponible el DC. De esta manera cuando ingresamos al dominio nuestra pass queda en cache en el registro d win y podemos loguear sin estar conectados a ninguna parte con la ultima q accedimos. X supuesto q si la pass c cambia en el DC mientras esta desconectada va a seguir usando la del cache hasta q vuelva a la red y vea q hay 1 nueva. A partir d s momento cachea la nueva pass.

A esta altura ya estaran viendo adonde apunta todo esto. Muy sencillo... conseguir el hash cacheado, crackearlo y... bue... 1 agujero de seguridad enorme!!... je


PWDumpX

PWDumpX es la herramienta con la q vamos a extraer los hashes. Tambien lo podriamos hacer con Cain, q vamos a usar + tarde para desencriptar, pero tenemos 1 pequeña desventaja... con Cain podemos sacar los hashes d dominio alojados localmente, en cambio con PWDumpX podemos sacarlos d cualquier pc d la red sobre la q tengamos derechos d admin local (el agujero c agranda xD)...

Esta herramienta fue escrita en perl x Reed Arbin y la pueden bajar de aca:

http://reedarvin.thearvins.com/tools.html

el uso es bastante sencillo. Descomprimimos a alguna carpeta en el rigido y lo corremos desde ahí. Esta es la ayuda:

Usage: PWDumpX [-clph]

[-clph] -- optional argument
-- required argument
-- required argument
-- required argument

-c -- Dump Password Cache
-l -- Dump LSA Secrets
-p -- Dump Password Hashes
-h -- Dump Password History Hashes

If the and arguments are both plus signs (+), the
existing credentials of the user running this utility will be used.

Examples:
PWDumpX 10.10.10.10 + +
PWDumpX 10.10.10.10 administrator password

PWDumpX -lp MyWindowsMachine + +
PWDumpX -lp MyWindowsMachine administrator password

PWDumpX -clph IPInputFile.txt + +
PWDumpX -clph IPInputFile.txt administrator password



Como podemos ver tambien puede extraer los hashes normales, lsa secrets, etc… pero lo q nos interesa a nosotros es la opcion “-c” o sea “dump password cache”. Entonces el formato seria:


Pwdumpx –c nombrepcvictima user password

X supuesto como ya dijimos el user debe tener derechos d admin sobre la victima. Si queremos usar las credenciales con las q estamos logueados seria asi:

Pwdumpx –c nombrepcvictima + +

En pantalla veriamos esto:



MULTIVAC-DC2 es el DC secundario d mi red. Lo hice contra s xq era lo q tenia + a mano, x supuesto q en la realidad c puede complicar 1 poco + y van a tener q buscar 1 pc donde c haya logueado el admin d dominio o el user q les interese.

El pwdumpx como vemos en la captura devuelve 1 fila llamada multivac-dc2-PWCache.txt, vamos a buscar el archivo y encontramos esto dentro:

Administrator:B3A0102769XXXXXXXXXXD535D35E8363:MULTIVAC:MULTIVAC.LOCUTUS

Los campos estan bastante claros. User, hash, nombre dominio (pre2k) y nombre del AD (multivac.locutus). Como pueden ver puse algunas “X” para q no salga el hash completo y alguno c ponga a crackearme la pass. xD

Si hay + passes cacheados salen en el mismo formato 1 debajo del otro, ya con ellos nos podemos ir a crackearlas a 1 lugar + tranquilo...

Esta tambien la opcion si a alguien le interesa d poner 1 lista d pcs victima en 1 txt para hacer 1 ataque masivo y llevarnos todos los hashes q podamos, c hace simplemente cambiando el campo nombredelavictima x el txt.


Crackeando con CAIN

No voy a ponerme tampoco a explicar el uso d CAIN. Se supone q el q lee esto tiene idea d como usarlo o las ganas d aprender ya q tampoco es tan difícil lo q tenemos q hacer. El CAIN se descarga d aca:

http://www.oxid.it/cain.html

abrimos el soft y vamos a la pestaña “cracker” y en la lista d la izquierda podemos ver en 3er lugar “mscache hashes”. Si hacemos click y presionamos el boton “+” q c encuentra arriba podemos extraer los locales, d forma q tambien podriamos usar cain sin tener q recurrir al pwdumpx si lo q queremos son los hashes d users d dominio almacenados localmente. Lo q no podemos hacer es extraer los remotos.

El problema con el q nos encontramos es q no nos permite importar y x lo tanto no podemos introducir los hashes q traemos del pwdumpx. Para esto vamos a hacer 1 pequeño truquito.

Con cain cerrado vamos al dir d instalación y buscamos el archivo “CACHE.LST”. Si le dimos al boton + antes y obtuvimos algo, podemos ver q en el archivo c encuentran los hashes q saco d la pc pero en este formato:

MULTIVAC LOCUTUS B713D9AXXXXXXXXXX9FA9FE639874737

O sea… dominio (pre2k), usuario y hash. Lo q tenemos q hacer es agregar el q tenemos debajo d este d manera q quedaria:

MULTIVAC LOCUTUS B713D9AXXXXXXXXXX9FA9FE639874737
MULTIVAC ADMINISTRATOR B3A0102769XXXXXXXXXXD535D35E8363

Muy importante... poner después d cada hash q c agrega 1 tabulacion y 1 salto d linea para q c vea. El formato final seria dominio – 1 tab – user - 2 tabs – hash – 1 tab – newline. Abrimos nuevamente cain y ya los podemos ver:



ahora nos queda lo + largo... crackearla. Para esto podemos usar distintos metodos según lo q tengamos. Haciendo click derecho sobre la entrada vemos las posibilidades:


Podemos elegir entre ataque x medio d diccionarios, fuerza bruta o rainbow tables. Las rainbow no son las estandard sino q son especificas para mscache. Pueden descargarlas d algun p2p o generarlas uds mismos con alguno d los softs q andan x ahí para s fin. Tambien tienen opcion d testear passes a mano si tienen alguna idea d q puede ser.

Finalmente lo unico q queda es ir a su trabajo, escuela o lo q sea y pasar a ser dueño absoluto d la red.... je... sean eticos y no hagan maldades.

Me olvidaba algo importante... xD

Hay una key en el registro para determinar cuantos users pueden almacenarse. la key es:

CachedLogonsCount

y esta en:

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon

El valor x defecto es 20, o sea q el sistema cachea hasta 20 passes. Poniendo el valor en 0 se deshabilita el cacheo de passes d dominio, asi q los admins ya saben lo q tienen q hacer... ;)

7 comentarios:

Alesteir dijo...

Hey Locus es sensacional, lastima que la gente ni se entera, pero mejor, el unser es asi, si hay algo debes buscarlo, si no lo descubres tu mismo.

Gracias por compartir

joZeMurci dijo...

ey ocotus! tengo una duda sobre el posteo anterior. Me bajé el TrueCrypt y he estado usandolo, pero tengo un amigo q tiene otro y q ni siquiera sale en el menu inicio cada vez q lo inicio como último programa usado. Pero queria recuperar el espacio q encripte como un cajon aparte. Como deberia hacerlo? simplemente eliminando el archivo q creé se recupera el espacio reservado para "esa en principio nueva unidad"?

Mil gracias! y mu buen blog!

|_ocutus dijo...

hola. me alegro q t haya gustado el blog ;)

si lo q queres es recuperar el espacio q t esta ocupando la unidad encriptada si. con borrarla es suficiente. es 1 archivo como cualquier otro.

tambien podes llevartela a otro disco, pc, cd o lo q sea y sigue funcionando al abrirla con el soft.

lo d tu amigo no c... tal vez este mal instalado. sino buscalo en la carpeta "archivos d prog" a ver si aparece.

cualquier cosa dejame otro msg.


saludos

Aleks dijo...

Locutus espero seguir leyendote, por el momento te digo que me voy de descanso este año (ya lo sabias), publique un par de entradas en mi blog, sobre lo que ha pasado estos dias, creo que sabes cual es: leteo y eunoe (no es spam y lo sabes, si te parece así no publiques este mensaje)

Espero que pases un buen resto de año, Cuídate amigazo!

|_ocutus dijo...

espero q vos tambien estes bien y pases oka el resto del año alesteir. año nuevo, vida nueva. hay muchas cosas x delante y hay q dejar atras el pasado y las malas experiencias.

como dijeron x ahi "unos van y otros vienen"... ;)

... en cuanto al spamm q estas haciendo en mi blog!!!

http://leteoeunoe.blogspot.com/

http://leteoeunoe.blogspot.com/

http://leteoeunoe.blogspot.com/

xDDDD

no t pongo 1 link xq decis q lo abandonas. si t arrepentis avisame y lo agrego.

animo alesteir!!


|_ocutus

Anónimo dijo...

¿Donde puedo encontrar las tablas de mscache ?
Ayuda por favor ya he buscado mucho en google

|_ocutus dijo...

no hace falta buscarlas. las podes generar vos mismo. podes usar x ej el winrtgen:

http://www.oxid.it/downloads/winrtgen.zip

puede generar tablas para todos estos tipos d hashes:

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)


saludos