Diverse modalità di attacco in hashcat

hashcat ha molteplici modalità di attacco, visualizza l'aiuto completo con il parametro – help, puoi vedere la tabella "Attack Modes", come segue:

# Mode
0 dritto
1 combinazione
3 Brute-force
6 Hybrid Wordlist + Mask
7 Hybrid Mask + Wordlist

1.Straight

Questa modalità di attacco è anche conosciuta come" attacco del dizionario ". Non c'è molto da dire, dato un dizionario, hashcat leggerà il contenuto del dizionario riga per riga, calcolerà il valore hash di ciascuna riga e lo confronterà con il valore hash di destinazione.

Esempio:

     hashcat   -a   0   -m   400   esempio400.hash   esempio.dict 

2.combinazione

Baidu mi ha detto che combinazione è un sostantivo, che significa: "combinazione; consorzio; combinazione di password; biancheria intima". Questa modalità di attacco è in realtà molto semplice: combina il contenuto di due dizionari di password. L'utilizzo di questa modalità di attacco richiede la specificazione di due dizionari di password. Supponiamo di avere due dizionari di password dict1.txt e dict2.txt, i cui contenuti sono:

     caccia 
    gattino 
    rainbow 

e

     paris 
    rock 

Quindi il comando:

     hashcat   -m   0   -a   1   hash.txt   dict1.txt   dict2.txt 

Il dizionario che in realtà è stato provato è stato:

     huntingparis 
    Roccia di caccia 
    kittyparis 
    kittyrock 
    Arcobaleno Parigi 
    rainbowrock 

Le parole in dict1.txt sono a sinistra e le parole in dict2.txt sono a destra, per un totale di 3×2=6.

I parametri associati a questo modello sono:

     -j,   - -rule-left 
    -k,   - -rule-right 

-La regola dopo j agisce sul lato sinistro, la regola dopo-k agisce sul lato destro, ad esempio aggiungendo il parametro-j' $-', allora il dizionario effettivamente provato è:

     hunting-paris 
    Roccia da caccia 
    Kitty-Parigi 
    kitty-rock 
    rain-bowparis 
    rain-bowrock 

Aggiungi il parametro-j'^!', Quindi il dizionario effettivamente provato è:

    ! cacciaParigi 
  ! roccia di caccia 
  ! gattino parigi 
  ! kittyrock 
  ! Arcobaleno Parigi 
  ! rainbowrock 

aggiunge il parametro-k'^ >', quindi il dizionario effettivamente provato è:

     caccia > parigi 
Caccia a roccia 
    kitty > Parigi 
    Gattino > rock 
    pioggia > bowparis 
    rain > bowrock 

Qual è questa regola? L'uso di "$" e "^" è simile alle espressioni regolari, quindi sono regolari? In realtà, no. Le regole di hashcat vengono implementate da sole. Questo è un altro pezzo di contenuto. Per i dettagli, vedere attacco basato su regole

3. forza bruta

Prova varie combinazioni di un determinato set di caratteri. Secondo il wiki ufficiale di hashcat, questo metodo è obsoleto ed è stato completamente sostituito da Mask-Attack, quindi non ci saranno ricerche,

4. Mask Attack

Questo è un metodo di attacco relativamente nuovo, un esempio è il seguente:

     hashcat   -a   3   -m   0   md5.hash  ? Io? Io? Io? Io? l 

Anche se secondo la tabella "Modalità di attacco", -A 3 corrisponde alla forza bruta, in realtà, -A 3 utilizza l'attacco con maschera. L'attacco con maschera può essere considerato come una forza bruta avanzata. Il parametro

-m viene utilizzato per specificare il tipo di funzione hash e il valore md5 è memorizzato nel file md5.hash. La chiave è la stringa finale "? l? l? l? l? l? l". Tale stringa è chiamata maschera.

Una maschera è una stringa composta da diversi segnaposto. "? l" è un segnaposto, dove "?" è la parola chiave, utilizzata per modificare il seguente "l". "? l" insieme rappresenta un insieme di caratteri. Oltre a "? l", può anche esserci "? u", "? d", "? h", "? h", "? s", "? a" e "? b", rappresentano l'insieme di caratteri come mostrato nella tabella seguente.

0 – 0xff
? set di caratteri
l ABCDEFGHIJKLMNOPQRSTUVWXYZ
u ABCDEFGHIJKLMNOPQRSTUVWXYZ
d 0123456789
h 0123456789abcdef
h 0123456789abcdef
s ! "#$% & ' () * +, -. /:; < = >? @ [\] ^_` ~ {|}
a ? Io? Tu? d? s
b

In questo modo, capiamo che "? l? l? l? l? l? l" in realtà equivale a un dizionario di password:

 aaaaa 
aaaab 
... 
zzzzz 

Allo stesso modo, "? l? u? d" equivale a un dizionario di password:

     aA0 
    aA1 
  ... 
    bA0 
  ... 
    zZ9 

La collezione di caratteri nella tabella sopra è integrata in hashcat, possiamo anche specificare la collezione di caratteri noi stessi:

     - -custom-charset1= set di caratteri 1 
    - -custom-charset2= set di caratteri 2 
    - -custom-charset3= set di caratteri 3 
    - -custom-charset4= set di caratteri 4 

Parametro – custom-charsetN può essere abbreviato in-n, ad esempio – custom-charset1 può essere abbreviato in-1. L'insieme di caratteri specificato con-n è specificato come segnaposto "? N" nella maschera, ad esempio:

     -1   abc123  ? 1? 1? 1 

è equivalente a un dizionario di password:

     aaa 
    
  ... 
    aa3 
  ... 
    333 

-N Oltre alla stringa che rappresenta l'insieme di caratteri, può anche essere un file che termina con. hcchr, nel quale viene memorizzata la raccolta di caratteri. hashcat viene fornito con molti file. hcchr nella directory charsets/del pacchetto di installazione.

La raccolta di caratteri rappresentata dal segnaposto "??" è "?" stesso. Inoltre, quando i restanti caratteri vengono utilizzati come segnaposto, rappresentano i caratteri stessi. Ad esempio, "? lwerner? d" è equivalente al dizionario delle password:

     awerner0 
awerner1 
  ... 
    zwerner9 

Con le conoscenze di cui sopra, è facile comprendere la maschera. Una maschera è composta da più segnaposto, ciascun segnaposto è un insieme di caratteri e una maschera è una combinazione di ciascun insieme di caratteri segnaposto. numero di segnaposto è uguale alla lunghezza della password. Quali sono i vantaggi di questo design rispetto al semplice set di caratteri e alla lunghezza della password?

Supponiamo che conosciamo la password di qualcuno con 7 cifre, la prima cifra è una lettera maiuscola, le successive 3 cifre sono lettere minuscole e le ultime 3 cifre sono numeri. Se si tratta di un brute force crack tradizionale, sono necessari set di caratteri A-Z, A-Z e 0-9, per un totale di 62 caratteri. È necessario provare fino a 62^7=3 521 614 606 208 volte, che è un trilione di livelli. Usare una maschera per descrivere questa password è "\u\l\l\l\d\d\d", che è facile da calcolare. Ci sono un totale di (26^4) × (10^3) =456 976.000 possibilità, che è miliardi di livelli, 4 ordini di grandezza in meno rispetto al metodo precedente.

Per fare un passo indietro, anche se non conosciamo la distribuzione delle password, è facile simulare l'effetto del tradizionale brute force cracking usando la maschera.

La domanda ora è che la maschera è fissa, quanti segnaposto sono scritti morti e cosa dovremmo fare se non conosciamo la lunghezza della password? Va bene che la password sia troppo lunga. Se la password di qualcuno ha solo 3 cifre e abbiamo 4 segnaposto, non sarebbe una perdita se non riuscissimo a risolverla. Dovremmo iniziare da 1 e scrivere tutte le maschere di ciascuna lunghezza? Quanto è fastidioso.

Esistono due soluzioni: una consiste nell'utilizzare il file maschera, scrivere più maschere in un file e quindi specificare il file alla riga di comando. Si noti che il file mask deve terminare con. hcmask.

Ad esempio, il contenuto di test.hcmask è:

    ? l 
  ? Io? l 
  ? Io? Io? l 
  ? Io? Io? Io? l 

quindi usa il file con il seguente comando:

     hashcat   -m   0   -a   3   - -show   md5.hash   test.hcmask 

Un'altra soluzione è aggiungere il parametro – increment, che dice a hashcat di seguire la maschera che abbiamo dato, iniziare con un segnaposto e provare di nuovo due, tre, fino alla lunghezza che abbiamo dato. Ad esempio, scriviamo il segnaposto "abc" per questo, quindi calcoliamo il valore md5 della seguente stringa:

     A:0cc175b9c0f1b6a831c399e269772661 
    b:92eb5ffee6ae2fec3ad71c777531578f 
    c:4a8a08f09d37b73795649038408b5f33 
    ab:187ef4436122d1cc2f40dc2b92f0eba0 
    ac:e2075474294983e013ee4dd2201c7a73 
    ba:07159c47ee1b19ae4fb9c40d480856c4 
    bc:5360af35bde9ebd8f01f492dc059593c 
    ca:5435c69ed3bcc5b2e4d580e393e373d3 
    cb:d0d7fdb6977b26929fb68c6083c0b439 
    abc:900150983cd24fb0d6963f7d28e17f72 
    abc:900150983cd24fb0d6963f7d28e17f72 
    bac:79ec16df80b57696a03bb364410061f3 
    bca:b64eab8ce39e013604e243089c687e4f 
    cba:3944b025c9ca7eec3154b44666ae04a0 
    cab:16ecfd64586ec6c1ab212762c2c38a90 

Prima di ":" è la stringa originale per cui il valore hash deve essere calcolato, dopo ":" è il valore hasn calcolato. Salva il contenuto di cui sopra nel file md5.hash, quindi esegui il seguente comando:

     hashcat   -m   0   -a   3   - -show   - -username   md5.hash   abc 

Aggiungi il parametro-username perché ciascuno dei nostri valori hash è preceduto da una stringa originale Se questo parametro non viene aggiunto, hashcat mostrerà che il valore hash corretto non è stato trovato. Aggiungendo questo parametro, hashcat penserà che la stringa prima del valore hash sia il nome utente per il valore hash, in modo che il valore hash possa essere caricato senza intoppi.

Il risultato dell'esecuzione è che viene risolto solo un hash:

     900150983cd24fb0d6963f7d28e17f72:abc 

Ora aggiungi il parametro – increment ed esegui di nuovo:

     hashcat   -m   0   -a   3   - -show   - -increment   - -username   md5.hash   abc 

Questa volta sono stati risolti altri due hash:

     0cc175b9c0f1b6a831c399e269772661:a 
    187ef4436122d1cc2f40dc2b92f0eba0:ab 

Si vede che – increment gioca un ruolo. Ma allo stesso tempo, sappiamo anche che con questo parametro, hashcat proverà solo a, ab e abc in ordine e non organizzerà e combinerà i segnaposto fuori ordine, provando varie possibilità.

5. Attacco ibrido

L'attacco ibrido è simile all'attacco combinatore. L'attacco combinatore combina due dizionari, mentre l'attacco ibrido combina un dizionario e una maschera.

Supponiamo che abbiamo già un dizionario example.dict con il seguente contenuto:

     Ciao 
    werner 

Quindi il comando:

     hashcat   -m   0   -a   6   md5.hash   esempio.dict  ? d? d 

equivale a usare semplicemente un dizionario:

     hello00 
    Ciao 01 
  ... 
Ciao 99 
    werner00 
    werner01 
  ... 
    werener99 

Quindi il comando:

     hashcat   -m   0   -a   7   md5.hash  ? d?   dexample.dict 

Equivalente al semplice uso di un dizionario:

     00hello 
    01Ciao 
  ... 
    99Ciao 
    00werner 
    01werner 
  ... 
    99werener 

Precedente:Come utilizzare il software hashcat per rompere vari hash.
Il prossimo:Come usare Hashcat: condivisione tecnica
  • Concentrarsi su Word, Excel, PPT, PDF, RAR, ZIP, 7Z, pacchetti compressi, sblocco e decrittografia dei file crittografati di Office
  • Forniamo agli utenti il recupero della password dei pacchetti compressi di file di alta qualità, il recupero della password di Word sbloccato da PDF
  • Copyright © Master di recupero della password del documento Piattaforma di decrittografia online