Ottenere dati da un'unità crittografata

Ottenere dati da un'unità crittografata
La crittografia è il modo migliore per assicurarsi che nessuno possa leggere i file privati ​​all'interno del disco rigido anche nel caso in cui abbiano accettato fisicamente il tuo drive. L'attaccante deve inserire la password di crittografia, una frase chiave o la chiave privata per accedere al contenuto dei file all'interno di quell'azionamento. La crittografia converte il file in casualmente guardando dati insignificanti a cui non è possibile accedere senza inserire la passphrase. La crittografia non significa che possa proteggere l'unità da malware, virus e vermi mentre il sistema è in esecuzione, è solo che qualcuno non può mettere le mani sul contenuto dell'unità senza inserire la password.

Cominciamo con una descrizione di alcuni software di crittografia:

Veracript:

Veracript è una versione modificata di TrueCrypt, un famoso software di crittografia open source che può essere utilizzato su Windows e Unix come sistemi operativi. È uno strumento gratuito e open source che fornisce una crittografia a disco completo. Se confrontato a TrueCrypt, Veracript aggiunge alcuni algos e formati di crittografia nuovi e sicuri per partizioni crittografate. Veracript fornisce crittografia con diversi algoritmi di crittografia come AES, Serpente, Twofish, Camellia, ecc. Inoltre, utilizza 30 volte più iterazioni durante la crittografia di una partizione rispetto a TrueCrypt.

Bitlocker:

BitLocker è un popolare software di crittografia a discorso completo disponibile solo per Windows. Utilizza l'algoritmo AES con tasti da 128 o 256 bit per la crittografia. Una cosa importante di BitLocker è che se lasci il tuo computer acceso tutti i file saranno visibili. Windows BitLocker è disponibile per chiunque utilizza Windows Vista o sopra la versione di Windows. Attraverso BitLocker, un utente può solo crittografare l'intera unità contemporaneamente.

Avvia BitLocker digitando nell'area di ricerca. Apparirà uno schermo come questo

Fare clic su Accendi Bitlocker davanti alla partizione desiderata.

Ora chiederà una password. Inserisci una forte combinazione di lettere, numeri e caratteri speciali come password e sei a posto.

Per accedere all'unità protetta da BitLocker su Linux, è necessario installare DisLocker utilizzando il comando seguente:

ubuntu@ubuntu: ~ $ sudo apt Installa DisLocker

Luks:

Luks (sta per la configurazione della chiave unificata Linux) è uno strumento di crittografia a disco basato su Linux progettato da Clemens Fruhwirth nel 2004. Non offre tante funzionalità rispetto a Veracript ma è flessibile nell'uso di algoritmi di crittografia. Luks non offre compatibilità tra diversi programmi, ma assicura anche la gestione delle password in modo sistematico. Viene utilizzato come standard per la crittografia del disco rigido in UNIX come i sistemi operativi.

Per accedere alle unità crittografate di Luks su Windows, è possibile utilizzare Librecrypt.

FileVault 2:

FileVault2 è la risposta di Apple a Windows BitLocker. Questo software è disponibile solo per Mac OS. Per la crittografia, utilizza l'algoritmo di crittografia a 128 bit AES-TXT e supporta solo la crittografia a chiave simmetrica utilizzando una password. Una cosa simile importante su BitLocker e FileVault2 è che tutti i dati dell'unità crittografati sono visibili fino a quando il sistema informatico non viene chiuso.

Crittografia di un disco rigido con Veracript:

Prendiamo un disco rigido o un disco rigido e crittografiamo con Veracrypt e quindi proveremo a rompere la sua crittografia usando Hashcat per accedere ai nostri dati.

Apri Veracript vedrai uno schermo come questo:

Fai clic su Crea volume e seleziona Crea un volume con partizione.

Fai clic su Avanti e scegli la partizione desiderata dalle partizioni fornite.

Ora abbiamo due cose tra cui scegliere. Algoritmo di crittografia e algoritmo hash.

Scegli qualsiasi altro se hai un requisito speciale o lasciarlo a default dovrebbe essere sufficiente.

Fare clic su Avanti ci porterà per scegliere la password.

Scegli una password forte con una combinazione di lettere, numeri e caratteri speciali secondo le istruzioni.

Clicking next chiederà un formato. Fai clic su OK e dopo un breve periodo, l'unità verrà crittografata.

Cracking Veracript Critty:

Ora per rompere i volumi di Veracrypt con Hashcat, è necessario fornire Hashcat i dati binari contenenti hash e informazioni di crittografia. Ciò di cui avrai bisogno sono i primi 512 byte del volume di Veracript.

Le unità di avvio richiedono di estrarre i 512 byte situati nell'ultimo settore della prima traccia dell'unità. 1 traccia è lunga 63 settori, quindi ciò che dobbiamo fare è saltare i byte 31744 (62*512) ed estrarre i successivi 512 byte in cui è memorizzata l'intestazione. Per le unità non boot, dobbiamo estrarre i primi 512 byte.

Lo faremo usando DD sul nostro disco USB crittografato denominato /dev /sdb1 usando il comando seguente:

ubuntu@ubuntu: ~ $ sudo dd if =/dev/sdb1 di = binary_data bs = 512 count = 1
conv = Noerror, Sync Status = Progress
  • if = Nome da unità
  • di =file in cui verranno archiviati i dati estratti
  • BS =Dimensione del blocco (numero di byte che vengono estratti)
  • conv = noerror, Sync Status = progress = Continua a fare il lavoro in caso di errore

Per i guidari utilizzeremo il seguente comando, dobbiamo saltare i primi 31744 byte:

ubuntu@ubuntu: ~ $ sudo dd if =/dev/sdb1 di = binary_data skip = 31744 bs = 512 count =
conv = Noerror, Sync Status = Progress

Nel caso, mentre crittografia dell'unità se abbiamo selezionato una partizione nascosta, dobbiamo saltare i primi 64K (65536) byte e utilizzare il seguente comando:

ubuntu@ubuntu: ~ $ sudo dd if =/dev/sdb1 di = binary_data skip = 65536 bs = 512
conteggio = 1 conv = noerror, stato di sincronizzazione = progresso

Hashcat:

Hashcat è l'utilità di recupero password più potente e veloce che supporta 5 modalità di attacchi per oltre 300 algoritmi di hashing altamente ottimizzati. È compatibile con diversi tipi di unità di elaborazione grafica (GPU) che possono moltiplicarsi alla sua velocità di cracking. Hashcat è disponibile per Windows e UNIX come i sistemi operativi.

Hashcat ha bisogno di 3 cose per iniziare a crack:

  1. M: tipo hash
  2. UN: tipo di attacco
  3. File di dati binari

Guardiamo Hashcat -help:

ubuntu@ubuntu: ~ $ hashcat - -help
- [ Opzioni ] -
Opzioni Short / Long | Tipo | Descrizione | Esempio
===============================+=====+========== ============================+=============================================== ===
-M,--Hash-Type | Num | Tipo hash, vedi riferimenti di seguito | -M 1000
-A,-Attack-Mode | Num | Modalità di attacco, vedi riferimenti di seguito | -a 3
-V, --Version | | Versione stampata |
-H, - -Help | | Aiuto di stampa |
--tranquillo | | Sopprimere l'output |
--caricatore esagono | | Supponiamo che il charset sia dato in esadecimazione |
--salva esagonale | | Supponiamo che il sale sia somministrato in hex |
--Esed-Wordlist | | Supponiamo che le parole in Word List siano riportate in esadecimazione |
--Forza | | Ignora gli avvertimenti |
--Stato | | Abilita l'aggiornamento automatico della schermata di stato |
--status-timer | Num | Imposta secondi tra gli aggiornamenti della schermata di stato su x | --status-timer = 1
--stdin-timeout-abort | Num | Interrompe se non ci sono input da stdin per x secondi | --stdin-timeout-abort = 300
--leggibile da macchina | | Visualizza la vista sullo stato in un formato leggibile dalla macchina |
--Keep-Guiding | | Continua a indovinare l'hash dopo che è stato rotto |
--auto-test-disable | | Disabilita la funzionalità di autotest sull'avvio |
--Loopback | | Aggiungi nuove pianure alla directory induct |
--Markov-hcstat2 | File | Specificare il file HCSTAT2 da utilizzare | -Markov-hcstat2 = mio.HCStat2
--Markov-Disable | | Disabilita Markov-Chains, emula la forza bruta classica |
--Markov-Classic | | Abilita le catene classiche di Markov, nessuna per-posizione |
-T,-Markov-Threshold | Num | Soglia x Quando smettere di accettare nuove catene Markov | -t 50
--Runtime | Num | Sessione di interruzione dopo x secondi di runtime | --runtime = 10
--Sessione | Str | Definire il nome di sessione specifico | --session = MySession
--Restore | | Ripristina la sessione da - -Session |
--restauro-disable | | Non scrivere il file di ripristino |
--restauro-file-path | File | Percorso specifico per ripristinare il file | -Restore-file-path = x.ristabilire
-o, --outfile | File | Definire l'outfile per hash recuperato | -o outfile.TXT
--Formato outfile | Num | Definire il formato outfile x per hash recuperato | --outfile-format =
--Outfile-Autohex-Disable | | Disabilita l'uso di $ hex [] nelle pianure di output |
--outfile-check-timer | Num | Imposta secondi tra i controlli di outfile su x | --outfile-check = 30
--WordList-Autohex-Disable | | Disabilita la conversione di $ hex [] da Wordlist |
-P, -Separatore | Char | CHAR separatore per hashlist e outfile | -P :
--stdout | | Non rompere un hash, invece stampare solo candidati |
--mostra | | Confronta Hashlist con PotFile; Mostra hash screpolati |
--Sinistra | | Confronta Hashlist con PotFile; Mostra hash non colpiti |
--Nome utente | | Abilita ignorare i nomi utente in Hashfile |
--Rimuovere | | Abilita la rimozione di hash una volta che sono rotti |
--Rimuovi-Timer | Num | Aggiorna il file hash di input ogni x secondi | --REMOVE-TIMER = 30
--potfile-disable | | Non scrivere potfile |
--POTFILE-PATH | File | Percorso specifico per potfile | --potfile-path = my.vaso
--codifica-from | Codice | Forzare la codifica interna delle parole da x | --Ecoding-From = ISO-8859-15
--codifica a | Codice | Forzare la codifica interna delle parole su x | --Ecoding-to = UTF-32le
--Debug-Mode | Num | Definisce la modalità di debug (ibrido solo utilizzando le regole) | -DEBUG-MODE = 4
--DEBUG-FILE | File | File di output per le regole di debug | -DEBUG-FILE = BUONO.tronco d'albero
--induzione-dir | Dir | Specificare la directory di induzione da utilizzare per loopback | -Induction = inducts
--outfile-check-dir | Dir | Specificare la directory outfile per monitorare le pianure | --outfile-check-dir = x
--logfile-disable | | Disabilita il file di log |
--HCCAPX-Message-Pair | Num | Carica solo le coppie di messaggi da HCCAPX corrispondente x | --HCCAPX-Message-Pair = 2
--Non-Error-corrections | Num | L'intervallo di dimensioni BF per sostituire gli ultimi byte di AP nonce | --Nonce-Error-Corrections = 16
--tastiera-layout-mapping | File | Tabella di mappa di layout per tastiera per modelli hash speciali | --Keyb = tedesco.hckmap
--TrueCrypt-Ke-Files | File | Chiave file da usare, separati con virgole | --Truecrypt-keyf = x.png
--Veracript-Ke-Files | File | Chiave file da usare, separati con virgole | -veracript-keyf = x.TXT
--Veracript-Pim | Num | Veracrypt Personal Iterations Moltiplicatore | -veracript-pim = 1000
-B, -Benchmark | | Esegui benchmark di modelli hash selezionati |
--benchmark-tutto | | Esegui benchmark di tutti i modelli hash (richiede -b) |
--solo velocità | | Restituisce la velocità prevista dell'attacco, quindi smetti di |
--solo progressi | | Restituisci il passo di progresso ideale Dimensione e tempo per il processo |
-C,--Simmezione | Num | Imposta le dimensioni in MB su Cache dal WordFile a X | -c 32
--bitmap-min | Num | Imposta bit minimi consentiti per bitmaps a x | --bitmap-min = 24
--bitmap-max | Num | Imposta i bit massimi consentiti per bitmaps a x | --bitmap-max = 24
--Affinità CPU | Str | Blocchi su dispositivi CPU, separati con virgole | --CPU-affinità = 1,2,3
--Esempio di Hash | | Mostra un hash di esempio per ogni modalità hash |
-I, --opencl-info | | Mostra informazioni sulle piattaforme/dispositivi OpenCL rilevati | -IO
--piattaforma OpenCl | Str | Piattaforme OpenCl da utilizzare, separate con virgole | --OPENCL-PLATFORMS = 2
-D,--OpenCl-Devices | Str | Dispositivi OpenCl da utilizzare, separati con virgole | -d 1
-D, --opencl-device-types | Str | Tipi di dispositivi OpenCL da utilizzare, separati con virgole | -D 1
--OpenCl-vector-width | Num | Sostituire manualmente la larghezza del vettore di OpenCl a x | --OPENCL-vector = 4
-O,-Optimized-kernel-anable | | Abilita kernel ottimizzati (limita la lunghezza della password) |
-W,-Workload-Profile | Num | Abilita un profilo di carico di lavoro specifico, vedere il pool di seguito | -W 3
-N, --Kernel-Accor | Num | Tuning del carico di lavoro manuale, Imposta le dimensioni del passaggio esterno su x | -n 64
-U,-PERSONELLO-PERSONELLO | Num | Tuning del carico di lavoro manuale, impostare la dimensione del passaggio Innerloop su x | -u 256
-T,-Kernel-threads | Num | Tuning del carico di lavoro manuale, impostare il conteggio dei thread su x | -T 64
-S, -Skip | Num | Salta x parole dall'inizio | -S 1000000
-L, -Limit | Num | Limite x parole dall'inizio + parole saltate | -L 1000000
--Keyspace | | Mostra base di keyspace: valori mod e smettere |
-J,--RULE-LEFT | Regola | Regola singola applicata a ciascuna parola da Wordlist di sinistra | -j 'c'
-K,--Rule-Right | Regola | Regola singola applicata a ciascuna parola dalla lista di parole giuste | -k '^-'
-r,--rules-file | File | Regole multiple applicate a ciascuna parola da liste di parole | -r regole/best64.regola
-G,-Generate-Rules | Num | Genera x regole casuali | -g 10000
--generare-rule-func-min | Num | Force Min X Funzioni per regola |
--Generate-Rules-Func-Max | Num | Force Max X Funzioni per regola |
--generare-rule-seed | Num | Forzare semi RNG impostato su x |
-1,-Custom-Charset1 | CS | Charset definito dall'utente ?1 | -1 ?l?D?u
-2,--Custom-Chatset2 | CS | Charset definito dall'utente ?2 | -2 ?l?D?S
-3,-Custom-Charset3 | CS | Charset definito dall'utente ?3 |
-4,-Custom-Charset4 | CS | Charset definito dall'utente ?4 |
-Io, -Incremento | | Abilita modalità incremento della maschera |
--incremento-min | Num | Inizia la maschera che aumenta a x | --incremento-min = 4
--incremento-max | Num | Ferma la maschera che aumenta a x | --incremento-max = 8
-S,-Slow-Candidates | | Abilita generatori candidati più lenti (ma avanzati) |
--Brain-Server | | Abilita Brain Server |
-Z,-Brain-Client | | Abilita il client cerebrale, attiva -s |
--Feature cerebrali-cervello | Num | Definisci le caratteristiche del cliente cerebrale, vedi sotto | -Brain-Client-Features = 3
--Brain-Host | Str | Brain Server Host (IP o dominio) | -Brain-host = 127.0.0.1
--Brain-Port | Porta | Porta del server cerebrale | -Brain-Port = 13743
--Brain-password | Str | Password di autenticazione del server cerebrale | -Brain-Password = bzfhcvgusjrq
--cervello-sessione | Esagono | Scorera la sessione cerebrale calcolata automaticamente | -Brain-Session = 0x2AE611DB
--Brain-Session-Whitelist | Esagono | Consenti solo sessioni fornite, separate da virgole | -Brain-Session-WhiteList = 0x2AE611DB

Modalità hash:

Vedremo più di un migliaio di modalità hash qui. Questi sono di interesse ora.

137xy | Veracript | Crittografia a discorso completo (FDE)
X | 1 = PBKDF2-HMAC-RIPEMD160 | Crittografia a discorso completo (FDE)
X | 2 = PBKDF2-HMAC-SHA512 | Crittografia a discorso completo (FDE)
X | 3 = PBKDF2-HMAC-WHILLPOOL | Crittografia a discorso completo (FDE)
X | 4 = PBKDF2-HMAC-RIPEMD160 + MODO di avvio | Crittografia a discorso completo (FDE)
X | 5 = PBKDF2-HMAC-SHA256 | Crittografia a discorso completo (FDE)
X | 6 = PBKDF2-HMAC-SHA256 + Mode di avvio | Crittografia a discorso completo (FDE)
X | 7 = PBKDF2-HMAC-STREEBOG-512 | Crittografia a discorso completo (FDE)
Y | 1 = XTS 512 bit puro eventi evori | Crittografia a discorso completo (FDE)
Y | 1 = XTS 512 bit puro serpente | Crittografia a discorso completo (FDE)
Y | 1 = xts 512 bit puro twofish | Crittografia a discorso completo (FDE)
Y | 1 = XTS 512 bit puro camelia | Crittografia a discorso completo (FDE)
Y | 1 = xts 512 bit puro kuznyechik | Crittografia a discorso completo (FDE)
Y | 2 = XTS 1024 bit puro eventi evori | Crittografia a discorso completo (FDE)
Y | 2 = XTS 1024 bit puro serpente | Crittografia a discorso completo (FDE)
Y | 2 = XTS 1024 bit puro twofish | Crittografia a discorso completo (FDE)
Y | 2 = XTS 1024 bit puro camelia | Crittografia a discorso completo (FDE)
Y | 2 = XTS 1024 bit puro kuznyechik | Crittografia a discorso completo (FDE)
Y | 2 = XTS 1024 BIT Cascaded Aes-Twofish | Crittografia a discorso completo (FDE)
Y | 2 = XTS 1024 bit Cascaded Camellia-Kuznyechik | Crittografia a discorso completo (FDE)
Y | 2 = XTS 1024 bit Cascaded Camellia-Serpent | Crittografia a discorso completo (FDE)
Y | 2 = XTS 1024 bit a cascata kuznychik-aes | Crittografia a discorso completo (FDE)
Y | 2 = XTS 1024 bit a cascata kuznychik-twofish | Crittografia a discorso completo (FDE)
Y | 2 = XTS 1024 BIT Serpent-Aes a cascata | Crittografia a discorso completo (FDE)
Y | 2 = XTS 1024 BIT Cascaded Twofish-Serpent | Crittografia a discorso completo (FDE)
Y | 3 = XTS 1536 BIT ALL | Crittografia a discorso completo (FDE)
14600 | Luks | Crittografia a discorso completo (FDE)
16700 | FileVault 2 | Crittografia a discorso completo (FDE)
18300 | Apple File System (APFS) | Crittografia a discorso completo (FDE)

Modalità di attacco:

# | Modalità
===+======
0 | Dritto
1 | Combinazione
3 | Forza bruta
6 | List di Word Elist ibrido + Maschera
7 | Maschera ibrida + Elenco di parole

Abbiamo tutte e 3 le cose di cui hashcat ha bisogno, facciamolo usando il seguente comando:

ubuntu@ubuntu: ~ $ sudo hashcat -a 0 -m 13722 binary_data wordlist.txt - -force
Hashcat (V5.1.0) Avvio ..
Hashes: 1 digest; 1 digest unici, 1 sali unici
Bitmaps: 16 bit, 65536 voci, maschera 0x0000ffff, 262144 byte, 5/13 ruota
Regole: 1
Ottimizzatori applicabili:
* Zero-byte
* Single-hash
* Single-salt
* Loop-shash-hash-simd
* Usa-64-bit
Lunghezza della password minima supportata dal kernel: 0
Lunghezza massima della password supportata dal kernel: 64
* Dispositivo n. 1: build_opts '-cl-std = cl1.2 -i OpenCl -I/usr/share/hashcat/OpenCl -d
Local_mem_type = 2 -D VENDOR_ID = 64 -D CUDA_ARCH = 0 -D AMD_ROCM = 0 -D Vect_Size = 4 -D
Dispositivo_type = 2
-D dgst_r0 = 0 -d dgst_r1 = 1 -d dgst_r2 = 2 -d dgst_r3 = 3 -d dgst_elem = 16 -d
Kern_type = 6222 -d _unroll '
[Logging Clang Options] "/usr/bin/ld" "--eh-frame-hdr" "-m" "elf_x86_64" "sharted"
"-o" "/root/.Cache/Pocl/UncAched/Tempfile-70-00-EB-2C-AA.Quindi "" -l/usr/lib/gcc/x86_64
-Linux-GNU/9 "" -L/USR/Lib/GCC/X86_64-Linux-Gnu/9/…/…/…/x86_64-Linux-Gnu "
"-L/usr/lib/gcc/x86_64-linux-genu/9/…/…/…/…/lib64" "-l/lib/x86_64-linux-no"
"-L/lib/…/lib64" "-l/usr/lib/x86_64-linux-genu" "-l/usr/lib/…/lib64"
"-L/usr/lib/x86_64-linux-nogu/…/…/lib64" "-l/usr/lib/gcc/x86_64-linux-gnu/9/
.../.../... "" -l/usr/lib/llvm-6.0/bin/…/lib "" -l/lib "" -l/usr/lib "
"/radice/.Cache/Pocl/Uncached/Tempfile-B1-44-3F-F1-67.COSÌ.o "" -lm "
Dictionary Cache Hit:
* Nome file ...: Wordlist.TXT
* Le password.: 600000
* Byte…: 6000000
* Keyspace…: 600000
[Opzioni Clang di registrazione] "/usr/bin/ld" "--eh-frame-hdr" "-m" "-l/usr/lib/llvm-6.0/bin/…/lib "
"-L/lib" "-l/usr/lib" "/root/.cache/pocl/unfed/tempfile-e2-ba-db-1f-ba.COSÌ.o "" -lm "" -lm "
"-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" "-lc" "-lgcc" "--as-needed" "-lgcc_s"
"--No-AS-Need"

binary_data: Tokyo2002

Sessione ...: Hashcat
Stato ...: rotto
Hash.Tipo…: Veracript PBKDF2-HMAC-SHA512 + XTS 1024 bit
Hash.Target ...: binary_data
Tempo.Iniziato ...: Gio 11 giugno 20:38:17 2020 (11 secondi)
Tempo.Stimato ...: gio giu 11 20:38:28 2020 (0 sec)
Indovinare.Base ...: file (wordlist.TXT)
Indovinare.Coda …: 1/1 (100.00%)
Velocità.#1…: 0 h/s (0.57ms) @ Accel: 32 Loop: 32 Thr: 1 Vec: 4
Recuperato ...: 1/1 (100.00%) Digests, 1/1 (100.00%) sali
Progressi ...: 600000/60000 (100.00%)
Rifiutato ...: 0/60000 (0.00%)
Ristabilire.Punto ...: 0/60000 (0.00%)
Ristabilire.Sub.#1…: Salt: 0 Amplificatore: 0-1 Iterazione: 499968-499999
Candidati.#1…: mango 23232 -> wraterpassword23

Abbiamo ottenuto la password Tokyo2002.

Crittografia di un'unità con Luks:

Diamo un'occhiata a come crittografare un USB usando la crittografia di Luks:

Prima di tutto installa pacchetto CryptSetUp-Luks utilizzando il seguente comando:

ubuntu@ubuntu: ~ $ sudo apt installa cryptsetup-luks

Ora usa il seguente comando per impostare la partizione desiderata per la crittografia:

ubuntu@ubuntu: ~ $ criptsetup -y -v luksformat /dev /xdc

XDC è il nome della partizione. Se non conosci il nome della partizione, usa "fdisk -l".

Ora crea un dispositivo logico di mapper montato sulla partizione Luks crittografata utilizzando:

ubuntu@ubuntu: ~ $ criptsetup luksopen /dev /xdc

Chiederà una passphrase. Inserisci una forte combinazione di lettere, numeri e caratteri speciali come password e sei a posto.

Cracking Luks Critty:

Ora per rompere i volumi di Luks con Hashcat, è necessario alimentare Hashcat con un file di dati binari corretto. Possiamo estrarre quei dati usando il seguente comando:

ubuntu@ubuntu: ~ $ sudo dd if =/dev/sdb1 di = header.Luks BS = 512 COUNT = 4097
conv = Noerror, Sync Status = Progress

Questo creerà un file da 2 MB contenente tutte le esigenze di hashcat di dati per il cracking.

Hashcat:

Diamo un'occhiata alla sintassi di Hashcat:

ubuntu@ubuntu: ~ $ sudo hashcat -a -M

Ora abbiamo il file binario e la lista delle parole ma non conosciamo il tipo di attacco e il tipoofencryption. Per queste informazioni, daremo un'occhiata a Hashcat -Help.

Abbiamo scoperto entrambi:

Typeofencryption:

14600 | Luks | Crittografia a discorso completo (FDE)
16700 | FileVault 2 | Crittografia a discorso completo (FDE)
18300 | Apple File System (APFS) | Crittografia a discorso completo (FDE)

Tipo di attacco:

# | Modalità
===+======
0 | Dritto
1 | Combinazione
3 | Forza bruta

Ci andiamo, inizieremo a cracking digitando il seguente comando:

ubuntu@ubuntu: ~ $ sudo hashcat -a 0 -m 14600 header.Luks Wordlist.TXT
Hashcat (V5.1.0) Avvio ..
dispositivo n. 1: build_opts '-cl-std = cl1.2 -i OpenCl -I/usr/share/hashcat/OpenCl -d
Local_mem_type = 2 -D VENDOR_ID = 64 -D CUDA_ARCH = 0 -D AMD_ROCM = 0 -D Vect_Size = 4 -D
Dispositivo_type = 2 -d dgst_r0 = 0 -d dgst_r1 = 1 -d dgst_r2 = 2 -d dgst_r3 = 3 -d dgst_elem = 16
-D kern_type = 6222 -d _unroll '
[Logging Clang Options] "/usr/bin/ld" "--eh-frame-hdr" "-m" "elf_x86_64" "sharted"
"-o" "/root/.Cache/Pocl/UncAched/Tempfile-70-00-EB-2C-AA.COSÌ"
"-L/usr/lib/gcc/x86_64-linux-genu/9" "-l/usr/lib/gcc/x86_64-linux-no
X86_64-Linux-Gnu "" -l/usr/lib/gcc/x86_64-linux-genu/9/…/…/.../…/lib64 "" -l/lib/
X86_64-Linux-Gnu "" -l/lib/…/lib64 "" -l/usr/lib/x86_64-linux-gnu "" -l/usr/lib/.../
lib64 "" -l/usr/lib/x86_64-linux-nogu/…/…/lib64 "" -l/usr/lib/gcc/x86_64-linux-nog/9/
.../.../... "" -l/usr/lib/llvm-6.0/bin/…/lib "" -l/lib "" -l/usr/lib ""/root/.cache/pocl/
UNCACKED/TEMPFILE-B1-44-3F-F1-67.COSÌ.o "" -lm "
Dictionary Cache Hit:
* Nome file ...: Wordlist.TXT
* Le password.: 50
* Byte…: 500
* Keyspace…: 50
[Opzioni Clang di registrazione] "/usr/bin/ld" "--eh-frame-hdr" "-m"
"-L/usr/lib/llvm-6.0/bin/…/lib "" -l/lib "" -l/usr/lib ""/root/.cache/pocl/
Un Uncached/Tempfile-e2-Ba-db-1f-Ba.COSÌ.o "" -lm "" -lm "" -lgcc "" -s-needed "
"-lgcc_s" "--no-as-needed" "-lc" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed"

intestazione.Luks: Tokyo2002

Sessione ...: Hashcat
Stato ...: rotto
Hash.Tipo ...: Luks
Hash.Target ...: intestazione.Luks
Tempo.Iniziato ...: Gio 11 giugno 20:38:17 2020 (11 secondi)
Tempo.Stimato ...: gio giu 11 20:38:28 2020 (0 sec)
Indovinare.Base ...: file (wordlist.TXT)
Indovinare.Coda …: 1/1 (100.00%)
Velocità.#1…: 0 h/s (0.57ms) @ Accel: 32 Loop: 32 Thr: 1 Vec: 4
Recuperato ...: 1/1 (100.00%) Digests, 1/1 (100.00%) sali
Progressi ...: 50/50 (100.00%)
Rifiutato ...: 0/50 (0.00%)
Ristabilire.Punto ...: 0/50 (0.00%)
Ristabilire.Sub.#1…: Salt: 0 Amplificatore: 0-1 Iterazione: 499968-499999
Candidati.#1…: mango 23232 -> wraterpassword23

Abbiamo ottenuto la password Tokyo2002.

Liste di parole personalizzate che usano Crunch:

Creare una lista di parole in un modo che desideri è una buona abilità da avere nella cintura. Aiuta molto negli attacchi di forza bruta e di Dizionario. Uno degli strumenti che possono essere utilizzati per creare una lista di parole personalizzati è Crunch.

ubuntu@ubuntu: ~ $ crunch
Uso: scricchiolio [opzioni]
  • min: lunghezza minima
  • max: lunghezza massima
  • opzioni: Varie opzioni che troveremo alla sua pagina uomo

Opzioni:

B: dimensione massima
C: Numero di righe
D: limite il numero di caratteri duplicati
E: smettere di raggiungere una certa stringa
F: Usa Charset.file lst da generare da
io: invertire l'ordine
O: output su file specificato
R: riprendi una sessione precedente
S: Specifica la stringa con cui inizierà la lista delle parole
T: Imposta pattern usando @,%^ (lettere minuscole, lettere maiuscole, numeri, caratteri speciali contemporaneamente)
Z: comprimere il file di output

Supponiamo che dobbiamo generare una lista di parole con i caratteri minimi 6 e i caratteri massimi 8, useremo il seguente comando e salveremo l'output su output.TXT:

ubuntu@ubuntu: ~ $ crunch 6 8 -o output.TXT

La crisi ora genererà la seguente quantità di dati: 1945860473024 byte

1855717 MB
1812 GB
1 TB
0 pb

La crisi ora genererà il seguente numero di righe: 21716790528

Supponiamo che un altro scenario in cui sappiamo che il compleanno del bersaglio è il 2002 e di solito usa una password di 9 caratteri che termina con il suo compleanno. Useremo il seguente comando per generare una lista di parole corrisponde a tutte queste caratteristiche e salveremo in un file chiamato WordList.TXT.

ubuntu@ubuntu: ~ $ crunch 9 9 -t @@@@@ 2002 -o wordlist.TXT

La crisi ora genererà la seguente quantità di dati: 118813760 byte

113 Mb
0 GB
0 tb0 pb

La crisi ora genererà il seguente numero di righe: 11881376

Crunch: 100% completato generazione di output

ubuntu@ubuntu: ~ $ ls -la wordlist.TXT
-RW-RW-RW- 1 AZAD AZAD 118813760 13 giugno 14:43 Elenco di parole.TXT

Sapere come creare le liste di parole giuste per il tuo compito è un'abilità che può risparmiare molto tempo negli attacchi del dizionario.

Conclusione:

Se stai cercando di scegliere tra software di crittografia, alcuni software di crittografia come Veracript non permetteranno a qualcuno di aprire le tue unità senza inserire una password anche se la persona dannosa è effettuata, mentre utilizzano un software come BitLocker per Windows e FileVault2 per Apple fa tutto per Apple. i tuoi file visibili se l'utente viene effettuato. Crittografia delle tue unità è una buona cosa, ma usare password deboli, ripetute o indovinabili per loro li renderà facili da decifrare. Quasi ogni tipo di crittografia può essere rotto, a seconda della lunghezza della password e della complessità. Cracking Critting Drives usando una lista di parole personalizzati risparmierà un sacco di tempo e aiuterà a svolgere l'attività in modo efficiente. Fare buone liste di parole è un'arte, molti strumenti sono disponibili come Crunch, CewL, ecc. Questo ti aiuterà a farlo. Poi ci sono alcuni ottimi strumenti là fuori come Hashcat, Johntheripper che può rompere qualsiasi tipo di crittografia se fornito con il file binario giusto e la lista delle parole giusta. Rispetto a John, Hashcat può utilizzare le GPU ed è molto più veloce con una velocità di 882 c/s su John che ha una velocità di 54.8 c/s.