Hardening de passwd y shadow
12 de febrero de 2016 • fjbalon
El contenido del fichero
usuario1:FXWUuZ.vwXttg:500:501:usuario pepito:/home/usuario1:/bin/bash
Los permisos predeterminados de passwd son 644 y los propietarios son root:root, evitando modificaciones erróneas, de modo que cualquier usuario sólo pueda leer el archivo.
Por otro lado, el archivo
test:$1$CQoPk7Zh$370xDLmeGD9m4aF/ciIlC.:14425:0:99999:7:::
Los permisos predeterminados de passwd son 400 y los propietarios son root:root, sólo puede leer root. La contraseña se puede cifrar utilizando diferentes métodos, que son reconocidos por el identificador presente después del primer carácter $$. A continuación puedes tener el valor del id y la técnica de cifrado correspondiente que indica:
$1$: MD5: $1$5df9f63916ebf8528697b629022993e8/li> $2a$: blowfish (pez globo): $2a$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy $5$: SHA-256: $5$93fa3e4624676f2e9aa143911118b4547087e9b6e0b6076f2e1027d7a2da2b0a $6$: SHA-512: $6$6859f96680702a57a951eabe43fec49964ea51dde72df97e43a1fcf6f8b41b89a51cae8f3162c0cbb3e7fd0850577759aa653e25c4bdfd57264015fa6588360f
De la misma forma que se organiza y componen los ficheros anteriores sobre los usuarios, tenemos los ficheros
root:x:0:root
pwck /etc/passwd
usuario malvado: el directorio /home/malvado no existe
pwck: sin cambios
En caso de tener acceso a passwd y shadow, algo que por lo general ya supone un reto debido a la estructura de permisos, podemos unshadow y buscar descifrarla mediante fuerza bruta o diccionario, usaremos john the ripper para ello.
unshadow /etc/passwd /etc/shadow > unshadowed
De tal forma que obtenemos las líneas passwd puras, en fusión con los datos necesarios secretos de shadow. De al forma que este nuevo fichero podemos pasarlo a john:
john unshadowed # Fuerza bruta
john --incremental unshadowed # Fuerza bruta
john --wordlist=diccionario.lst --rules unshadowed # Diccionario
Using default input encoding: UTF-8
Loaded 4 password hashes with 4 different salts (sha512crypt, crypt(3) $6$ [SHA512 128/128 AVX 2x])
Remaining 1 password hash
Cost 1 (iteration count) is 5000 for all loaded hashes
Will run 2 OpenMP threads
Proceeding with single, rules:Single
...
Una vez finalizado el proceso, si todo ha ido bien, podremos revisar las claves cracked desde:
john --show passwords
maria:Passw0rd2233:1006:1006::/home/maria:/bin/bash
1 password hashes cracked, 3 left
Hashcat es otra herramienta archi-conocida de craking para una amplia variedad de tipos de hashes de passwords, soportando los algoritmos de hash comunes de GNU/Linux y sus códigos hashcat:
hashcat -m 1800 -a 0 passwords diccionario.code -r /usr/share/hashcat/rules/InsidePro-PasswordsPro.rule -o cracked.code --force