passwd
y shadow
passwd
y el shadow
, de las distribuciones de LINUX o el archivo SAM
de Windows. El ejercicio de aquí es analizar y detallar esos archivos y describirlos lo mejor posible.passwd
. No obstante por limitaciones y cuestiones de seguridad actualmente solo almacena información de las cuentas de usuarios, mientras que los hashes de los passwords se almacenan en el archivo shadow
./etc/passwd
y su contenido es de texto plano. Generalmente el acceso de solo lectura es permitido dado que muchas utilidades utilizan su contenido para relacionar IDs
a las correspondientes cuentas de usuario. Dentro del mismo podemos encontrar una lista de system accounts
. De cada cuenta se exponen las siguientes piezas de información: Username
, Password
, UID
, GID
, UserID Info
, Home Dir
, Command/Shell
. Veamos que significa cada uno y como es la estructura general de este archivo y sus datos./etc/passwd
passwd
almacena información en texto plano. Dicha información es almacenada de a una entrada por línea. Cada línea delimita sus campos usando los dos puntos :
. x
que indica que el password hash esta almacenado en el archivo /etc/shadow
.
ID
, siendo 0
reservado para el root
, los de 1 a 99
reservados para cuentas predefinidas, los de 100 a 999
reservados para cuentas administrativas y de sistema. Finalmente los IDs superiores a 1000
son asignados para los usuarios.
/etc/groups
.
nombre del servicio
(service accounts) o detalles del tipo Nombre completo del user
.
shell
o comando
. Comúnmente es un shell
pero no es siempre el caso.solo lectura
para los usuarios y propiedad de root
./etc/passwd
/etc/shadow
/etc/passwd
pero también mencionamos que el password hash
de cada usuario se almacena en el archivo llamado /etc/shadow
. Veamos en detalle como es la estructura de este otro archivo./etc/passwd
la data dentro de /etc/shadow
se almacena también línea por línea. Incluso cada una de las líneas de este archivo se corresponde 1 a 1 con las del archivo password
.unshadow
(parte de JohnTheRipper) que nos permite recombinar los archivospasswd
y shadow Para luego crackearlos rápidamente con
John.
$tipo$Sal$Hash
. tipo
es el algoritmo de hash que fue usado para encriptar el password.Sal
(salt
en ingles): es un valor que se utiliza para garantizar la aleatoriedad del hashing, de manera que el hash resultante siempre sea distinto.Hash value
: El resultado de hash generado para el encriptado de nuestro password.
/etc/passwd
y /etc/shadow
y como se organiza y encripta la información dentro de ellos.LM, NT-Hash(NTLM, NTLMv1 y NTLMv2)
.[email protected]#$%
.
hashcat
. Challenge-Response
el cual utiliza el intercambio de 3 mensajes para autenticar al cliente y un cuarto mensaje opcional para la integridad del intercambio. El hash tiene una longitud de 128 bits y funciona tanto para cuentas locales como para cuentas de dominio de Active Directory. LM Hash y NT Hash
. Esta versión 1 de NTLM ya esta deprecada siendo actualmente mantenida para retro compatibilidad con sistemas viejos.hashcat
y un hash de ejemplo.challenge-response
que vimos antes, pero incorpora mejoras de seguridad y criptografía para hacerlo más seguro y reemplazar a NTLMv1. También se incorpora el uso de HMAC-MD5 como algoritmo de Hashing y se incorpora el nombre de dominio como variable para el proceso de autenticación.challenge de 8 bytes
y es emitido por el server.
2 bloques de 16 bytes con hashes HMAC-MD5
a modo de respuesta al challenge
. Estos bloques de respuesta incluyen también un challenge
generado en el lado del cliente, el password hash (HVAC-MD5) y puede incluirse otra información de identificación.
challenge
del lado de cliente y los 16 bytes de del bloque
. Esto genera un bloque de respuesta de 24 bytes
consistente con el formato usado en NTLMv1
.
challenge
de longitud variable, que incluye entre otras cosas: el horario actual en formato NT Time
, un valor aleatorio de 8 bytes
, el nombre de dominio
e información estándar adicional. Considerando que esta respuesta debe incluir el challenge
del lado del cliente, su longitud variara en cada caso. host Windows
usando mimikatz
y posteriormente crackearlos usando hashcat
. No obstante no ahondaremos en detalle en como utilizar mimikatz en sí, sino que lo utilizaremos rápidamente para hacer un dump de los hashes. Quizás cubra el uso de mimikatz en otro escrito a futuro, dado que es una herramienta sumamente interesante. SAM
y SYSTEM
a nuestra carpeta de trabajo.export y mimikatz
.hashcat
para tratar de crackear el password de la cuenta administrador
. Como podemos ver el hash esta en formato NTLM.mimikatz
y hashcat
. Cabe mencionar que también existe otro protocolo de autenticación que no hemos visto en esta práctica llamado Kerberos
que es comúnmente usado para autenticación contra dominios como Active Directory
.