Ok, digamos que entras a un servidor, lo ideal sería encontrar passwords en texto (cleartext) pero no siempre es así de maravilloso, algunas veces solo ves un hash.

Que es un hash Ricardo? Una función criptográfica hash- usualmente conocida como “hash”- es un algoritmo matemático que transforma cualquier bloque arbitrario de datos en una nueva serie de caracteres con una longitud fija. Independientemente de la longitud de los datos de entrada, el valor hash de salida tendrá siempre la misma longitud.

Actualmente todos los passwords deberían estar en un hash.

Es importante que puedas manipular texto, para eso necesitas regex. Un lugar bueno para aprender es regexone.

Si quieres un cheat sheet puedes usar https://www.unix-ninja.com/p/A_cheat-sheet_for_password_crackers.

Para generar listas puedes usar

  1. Cewl. Es un generador de wordlists basado en una página web
  2. Wordsmith: Lo de arriba más ciudades
  3. Dirb (gendict es como Crunch y html2dic es como Cewl)
  4. Crunch genera con bruteforce todo.
  5. Pack es para generar estadísticas de los passwords.
         StatsGen #.#.#   | |
          _ __   __ _  ___| | _
         | '_ \ / _` |/ __| |/ /
         | |_) | (_| | (__|   < 
         | .__/ \__,_|\___|_|\_\
         | |                    
         |_| [email protected]


    [*] Analyzing passwords in [rockyou.txt]
    [+] Analyzing 100% (14344390/14344390) of passwords
        NOTE: Statistics below is relative to the number of analyzed passwords, not total number of passwords

    [*] Length:
    [+]                         8: 20% (2966037)
    [+]                         7: 17% (2506271)
    [+]                         9: 15% (2191039)
    [+]                        10: 14% (2013695)
    [+]                         6: 13% (1947798)
    ...

    [*] Character-set:
    [+]             loweralphanum: 42% (6074867)
    [+]                loweralpha: 25% (3726129)
    [+]                   numeric: 16% (2346744)
    [+]      loweralphaspecialnum: 02% (426353)
    [+]             upperalphanum: 02% (407431)
    ...

    [*] Password complexity:
    [+]                     digit: min(0) max(255)
    [+]                     lower: min(0) max(255)
    [+]                     upper: min(0) max(187)
    [+]                   special: min(0) max(255)

    [*] Simple Masks:
    [+]               stringdigit: 37% (5339556)
    [+]                    string: 28% (4115314)
    [+]                     digit: 16% (2346744)
    [+]               digitstring: 04% (663951)
    [+]                 othermask: 04% (576324)
    ...

    [*] Advanced Masks:
    [+]          ?l?l?l?l?l?l?l?l: 04% (687991)
    [+]              ?l?l?l?l?l?l: 04% (601152)
    [+]            ?l?l?l?l?l?l?l: 04% (585013)
    [+]        ?l?l?l?l?l?l?l?l?l: 03% (516830)
    [+]            ?d?d?d?d?d?d?d: 03% (487429)

La herramienta para hacerlo ya que tienes un wordlist es John the Ripper

root@kali:~# john --wordlist=/usr/share/john/password.lst --rules unshadowed.txt 
Warning: detected hash type "sha512crypt", but the string is also recognized as "crypt"
Use the "--format=crypt" option to force loading these as that type instead
Loaded 1 password hash (sha512crypt [64/64])
toor             (root)
guesses: 1  time: 0:00:00:07 DONE (Mon May 19 08:13:05 2014)  c/s: 482  trying: 1701d - andrew
Use the "--show" option to display all of the cracked passwords reliably

Hashcat es para cuando tienes buen GPU por ejemplo

sudo ./hashcat64.bin -m [type of hash] [dumpIn.txt] --username rock3.txt --rules-file/[rules] --porfile-path=[location of the cracked hashes] --show > [text file of results]

Puedes contar el numero de hashes para saber cuantos son en total y cuantos son los passwords que crackeaste si cuentas el POT y cuantos usuarios crackeaste (porque podrian al menos en teoria usar el mismo password) si exportas los results.

count lines wc -l foo

Como nota el core del GPU es mas lento que los cores del CPU. La diferencia es que en GPU son muchos.

ACER Predator Orion 5000 Intel® Core™ i5+ RTX 2070 Gaming Desktop - 1 TB HDD & 256 GB SSDImage result for gpu password cracking

Hace poco use uno que era impresionantemente rapido. Hicimos tres pruebas para aprox 1500 passwords reales.

Rule Tiempo en minutos Hashtype Crackeados
InsidePro-HashManager .5 NTLM 344
dive.rule 7 NTLM 428
OneRuleToRuleThemAll 5 NTLM 415

 

Es muy interesante la forma en que operan las reglas de hashcats. Las reglas modifican los diccionarios por ejemplo:

Name Function Description Example Rule Input Word Output Word Note
Nothing : do nothing : p@ssW0rd p@ssW0rd
Lowercase l Lowercase all letters l p@ssW0rd p@ssw0rd
Uppercase u Uppercase all letters u p@ssW0rd P@SSW0RD
Capitalize c Capitalize the first letter and lower the rest c p@ssW0rd P@ssw0rd
Invert Capitalize C Lowercase first found character, uppercase the rest C p@ssW0rd p@SSW0RD
Toggle Case t Toggle the case of all characters in word. t p@ssW0rd P@SSw0RD
Toggle @ TN Toggle the case of characters at position N T3 p@ssW0rd p@sSW0rd *
Reverse r Reverse the entire word r p@ssW0rd dr0Wss@p
Duplicate d Duplicate entire word d p@ssW0rd p@ssW0rdp@ssW0rd
Duplicate N pN Append duplicated word N times p2 p@ssW0rd p@ssW0rdp@ssW0rdp@ssW0rd
Reflect f Duplicate word reversed f p@ssW0rd p@ssW0rddr0Wss@p
Rotate Left { Rotates the word left. { p@ssW0rd @ssW0rdp

 

Un buen video para aprender es