Uzyskiwanie danych z zaszyfrowanego napędu

Uzyskiwanie danych z zaszyfrowanego napędu
Szyfrowanie jest najlepszym sposobem, aby upewnić się, że nikt nie może odczytać prywatnych plików w dysku twardym, nawet na wypadek, gdyby uzyskał fizyczny dysk. Atakujący musi wprowadzić hasło szyfrowania, frazę klawiszową lub klucz prywatny, aby uzyskać dostęp do zawartości plików wewnątrz tego napędu. Szyfrowanie przekształca plik w losowe spojrzenie na bezsensowne dane, do których nie można uzyskać dostęp bez wprowadzania paznokci. Szyfrowanie nie oznacza, że ​​może chronić dysk przed złośliwym oprogramowaniem, wirusami i robakami podczas działania systemu, po prostu ktoś nie może zdobyć zawartości dysku bez wprowadzania hasła.

Zacznijmy od opisu niektórych oprogramowania szyfrowania:

Veracrypt:

Veracrypt to zmodyfikowana wersja TrueCrypt, słynne oprogramowanie szyfrowania typu open source, które można użyć zarówno w systemach Windows, jak i systemu UNIX, takich jak systemy operacyjne. Jest to bezpłatne i open source narzędzie, które zapewnia pełne szyfrowanie dysku. W porównaniu z TrueCrypt, Veracrypt dodaje nowe i bezpieczne algie i formaty szyfrowania do szyfrowanych partycji. Veracrypt zapewnia szyfrowanie z różnymi algorytmami szyfrowania, takimi jak AES, węża, Twofish, Camellia itp. Ponadto zużywa 30 razy więcej iteracji podczas szyfrowania partycji w porównaniu z TrueCrypt.

Bitlocker:

BitLocker to popularne oprogramowanie do szyfrowania pełnego dysku dostępne tylko dla systemu Windows. Wykorzystuje algorytm AES z 128 lub 256-bitowymi klawiszami do szyfrowania. Ważną rzeczą w BitLocker jest to, że jeśli opuszczysz komputer, włączone wszystkie pliki będą widoczne. Windows Bitlocker jest dostępny dla każdego, kto używa Windows Vista lub powyżej wersji systemu Windows. Za pośrednictwem BitLocker użytkownik może tylko szyfrować cały dysk jednocześnie.

Uruchom bitlocker, wpisując w obszarze wyszukiwania. Pojawi się taki ekran

Kliknij Włącz Bitlocker przed pożądaną partycją.

Teraz poprosi o hasło. Wprowadź silną kombinację liter, cyfr i znaków specjalnych jako hasło, a będziesz gotowy.

Aby uzyskać dostęp do dysk chronionego bitlocker w Linux, musisz zainstalować niewidoczny za pomocą następującego polecenia:

Ubuntu@ubuntu: ~ $ sudo apt instal instalue nie udawnik

LUKS:

Luks (oznacza konfigurację klawiszu zunifikowanego Linux) jest narzędziem szyfrowania dysku opartego na Linux zaprojektowanym przez Clemens Fruhwiirth w 2004 roku. Nie oferuje tak wielu funkcji w porównaniu do Veracrypt, ale jest elastyczny w stosowaniu algorytmów szyfrowania. Luks po prostu nie oferuje kompatybilności między różnymi programami, ale także zapewnia zarządzanie hasłem w systematyczny sposób. Jest używany jako standard do szyfrowania dysku twardego w systemach UNIX, takich jak systemy operacyjne.

Aby uzyskać dostęp do dysków luksów w systemie Windows, możesz użyć Librecrypt.

FileVault 2:

FileVault2 to odpowiedź Apple na Windows Bitlocker. To oprogramowanie jest dostępne tylko dla Mac OS. Do szyfrowania używa algorytmu szyfrowania 128-bitowego AES-TX i obsługuje tylko szyfrowanie klucza symetrycznego za pomocą hasła. Ważną podobną rzeczą w BitLocker i FileVault2 jest to, że wszystkie dane zaszyfrowanego dysku są widoczne do momentu zamknięcia systemu komputerowego.

Szyfrowanie dysku twardego z Veracrypt:

Weźmy USB lub dysk twardy i zaszyfrujmy go Veracrypt, a następnie spróbujemy przełamać jego szyfrowanie za pomocą Hashcat, aby uzyskać dostęp do naszych danych.

Otwórz Veracrypt, zobaczysz taki ekran:

Kliknij Utwórz wolumin i wybierz Utwórz wolumin z partycją.

Kliknij Dalej i wybierz żądaną partycję z danych partycji.

Teraz mamy dwie rzeczy do wyboru. Algorytm szyfrowania i algorytm skrótu.

Wybierz dowolny inny, jeśli masz specjalny wymóg lub pozostawienie go w domyślnie powinno wystarczyć.

Kliknięcie Dalej przyniesie nas do wybrania hasła.

Wybierz silne hasło z kombinacją liter, cyfr i znaków specjalnych zgodnie z instrukcjami.

Kliknięcie Dalej poprosi o format. Kliknij OK, a po krótkim okresie dysk zostanie zaszyfrowany.

Pękanie szyfrowania Veracrypt:

Teraz, aby złamać objętości Veracrypt Hashcat, musisz podać hashcat z danymi binarnymi zawierającymi skrót i informacje o szyfrowaniu. Potrzebujesz pierwszych 512 bajtów objętości Veracrypt.

Napędy bagażowe wymagają wyciągania 512 bajtów znajdujących się w ostatnim sektorze pierwszego utworu napędu. 1 tor ma 63 sektory, więc musimy pominąć 31744 (62*512) bajty i wyodrębnić następne 512 bajtów, w których nagłówek jest przechowywany. W przypadku napędów innych.

Zrobimy to za pomocą DD na naszym zaszyfrowanym dysku USB o nazwie /dev /sdb1 za pomocą następującego polecenia:

Ubuntu@ubuntu: ~ $ sudo dd if =/dev/sdb1 of = binary_data bs = 512 liczba = 1
COND = noerror, status synchronizacji = postęp
  • Jeśli = Nazwa napędu
  • o =plik, w którym wyodrębnione dane będą przechowywane
  • BS =Rozmiar bloku (liczba bajtów wyciąganych)
  • COND = noerror, status synchronizacji = postęp = Wykonuj pracę w przypadku błędu

W przypadku napędów rozruchowych użyjemy następującego polecenia, musimy pominąć pierwsze 31744 bajtów:

Ubuntu@ubuntu: ~ $ sudo dd if =/dev/sdb1 of = binary_data skip = 31744 bs = 512 liczba = 1
COND = noerror, status synchronizacji = postęp

W przypadku szyfrowania dysku, jeśli wybraliśmy ukrytą partycję, musimy najpierw pominąć bajty 64k (65536) i użyć następującego polecenia:

Ubuntu@ubuntu: ~ $ sudo dd if =/dev/sdb1 of = binary_data skip = 65536 bs = 512
Count = 1 Conv = Noerror, Sync Status = Progress

Hashcat:

Hashcat to najszybsze i najszybsze narzędzie odzyskiwania haseł, które obsługuje 5 trybów ataków dla ponad 300 wysoce zoptymalizowanych algorytmów mieszania. Jest kompatybilny z różnymi typami graficznych jednostek przetwarzania (GPU), które mogą pomnożyć się do prędkości pękania. Hashcat jest dostępny dla systemu Windows, a także systemów operacyjnych jak systemy operacyjne.

Hashcat potrzebuje 3 rzeczy, aby zacząć pękać:

  1. M: Typ hash
  2. A: Typ ataku
  3. Plik danych binarny

Spójrzmy na Hashcat -Help:

Ubuntu@ubuntu: ~ $ HASHCAT -HELP
- [Opcje] -
Opcje krótkie / długie | Typ | Opis |. Przykład
===============================+======+===================== ============================+===================== ===
-M,-typ typu | Num | Typ Hash, patrz referencje poniżej | -m 1000
-A,--attack-tryb | Num | Mod ataku, patrz referencje poniżej | -A 3
-V, --version | |. Wersja drukuj |
-H, -Help | |. Drukuj pomoc |
--Cicha | |. Stłumij wyjście |
--sześciokąt | |. Załóżmy, że Charset jest podany w Hex |
--Hex-salt | |. Załóżmy, że sól jest podawana w hexie |
--Hex-WordList | |. Załóżmy, że słowa na liście słów są podane w Hex |
--siła | |. Zignoruj ​​ostrzeżenia |
--Status | |. Włącz automatyczną aktualizację ekranu statusu |
--Status-timer | Num | Ustawia sekundy między aktualizacjami ekranu statusu na x | --status-timer = 1
--Stdin Timeout-Abort | Num | Przeryp, jeśli nie ma wkładu ze stdina przez x sekund | --stdin Timeout-Abort = 300
--czyli maszynowe | |. Wyświetl widok statusu w formacie odczytującym maszynowym |
--Keepinging | |. Zgadnij skrót po jego pęknięciu |
--samodzielny test | |. Wyłącz funkcjonalność autotestu podczas uruchamiania |
--Loopback | |. Dodaj nowe równiny do katalogu indukcyjnego |
--Markov-Hcstat2 | Plik | Podaj plik HCSTAT2, aby użyć | --Markov-Hcstat2 = my.HCSTAT2
--Marvowa | |. Wyłącza łańcuchy Markowa, naśladuje klasyczną brutalną siłę |
--Markov-Classic | |. Włącza klasyczne łańcuchy Markowa, brak pozycji |
-T,--Mararkov-Thrreshold | Num | Próg X Kiedy przestać akceptować nowe łańcuchy Markowa | -T 50
--Czas wykonawczy | Num | Sesja abortowa po x sekundach środowisk wykonawczych | -Runtime = 10
--sesja | Str | Zdefiniuj określoną nazwę sesji | --sesja = Mysession
--Przywróć | |. Przywróć sesję od -sesja |
--Przywróć się do renowacji | |. Nie pisz plik przywracania |
--Przywróć ścieżkę do pliku | Plik | Konkretna ścieżka do przywrócenia pliku | -Restore-File-Path = x.przywrócić
-O, --outfile | Plik | Zdefiniuj Outfile dla odzyskanego skrótu | -O Outfile.tekst
--FORMAT OUTFILE | Num | Zdefiniuj FORMAT FORMATS X dla odzyskanego skrótu | --outfile-format =
--Outfile-AutoHex-Disable | |. Wyłącz użycie $ hex [] w równinach wyjściowych |
--Outfile-Check-timer | Num | Ustawia sekundy między kontrolami Outfile to x | --outFile-CHeck = 30
--Wordlist-AutoHex-Disable | |. Wyłącz konwersję $ hex [] z listy słów |
-P, -Separator | Char | Separator Char for Hashlists i Outfile | -P :
--stdout | |. Nie pękaj skrótu, zamiast tego wydrukuj tylko kandydatów |
--Pokaż | |. Porównaj hashlist z Potfile; Pokaż pęknięte skróty |
--po lewej | |. Porównaj hashlist z Potfile; Pokaż niezmarwane skróty |
--Nazwa użytkownika | |. Umożliwić ignorowanie nazw użytkowników w hashfile |
--Usuń | |. Włącz usuwanie skrótów po pęknięciu |
--Usuń-timer | Num | Zaktualizuj wejście plik skrótu w każdy x sekund | --Remove-timer = 30
--Dyrektor Potężny | |. Nie pisz Pifile |
--Potop-ścieżka | Plik | Konkretna ścieżka do potęgi | --POTFILE-PATH = MY.garnek
--kodowanie-od | Kod | Wymień wewnętrzną listę słów kodując z x | -encoding-from = ISO-8859-15
--kodowanie do | Kod | Wymień wewnętrzną listę słów kodując do x | --Encoding-to = UTF-32LE
--tryb debugowania | Num | Definiuje tryb debugowania (tylko hybryda za pomocą reguł) | --debug-mode = 4
--plik debugowania | Plik | Plik wyjściowy do debugowania reguł | --debug-file = dobry.dziennik
--indukcyjny-dir | Dir | Podaj katalog indukcyjny do użycia do Loopback | --Dukcja = indukcje
--Outfile-Check-Dir | Dir | Podaj katalog Outfile do monitorowania równin | --outfile-check-dir = x
--Dyrektor logarytmiczny | |. Wyłącz plik dziennika |
--HCCAPX-MESSAGE-PAIR | Num | Załaduj tylko pary wiadomości z HCCAPX pasujące x | --HCCAPX-Message Par = 2
--Nonce-error-Corections | Num | Zakres rozmiarów BF, który zastąpi ostatnie bajty AP | -Nononce-error-korekty = 16
--Mapowanie klawiatury | Plik | Tabela mapowania układu klawiatury dla specjalnych modów skrótów | --KeyB = niemiecki.HCKMAP
--Truecrypt-Keyfiles | Plik | Plik kluczy do użycia, oddzielone przecinkami | --trueCrypt-Keyf = x.png
--Veracrypt-KeyFiles | Plik | Plik kluczy do użycia, oddzielone przecinkami | --veracrypt-keyf = x.tekst
--Veracrypt-Pim | Num | Veracrypt Personal Iterations Multiplier | --verAcrypt-PIM = 1000
-B, -Benchmark | |. Uruchom test porównawczy wybranych modów skrótów |
--Benchmark-All | |. Uruchom porównanie wszystkich modów skrótów (wymaga -b) |
--tylko prędkość | |. Zwróć oczekiwaną prędkość ataku, a następnie zrezygnuj |
--Tylko postęp | |. Zwróć idealny rozmiar kroku i czas na przetworzenie |
-C,-segmentacja wielkości | Num | Ustawia rozmiar w MB na pamięć podręczną od pliku słowa na x | -C 32
--Bitmap-min | Num | Ustawia minimalne bity dozwolone dla bitmapów na x | --bitmap-min = 24
--Bitmap-Max | Num | Ustawia maksymalne bity dozwolone dla bitmapów na x | --bitmap-max = 24
--Ocena procesora | Str | Zamki do urządzeń procesowych, oddzielone przecinkami | -CPU-RAFITATION = 1,2,3
--Przykładowe masy | |. Pokaż przykład skrótu dla każdego trybu skrótu |
-I, --opencl-info | |. Pokaż informacje o wykrytych platformach/urządzeniach OpenCL | -I
--Opencl-platforms | Str | Platformy opencl do użycia, oddzielone przecinkami | --opencl-platforms = 2
-D, --opencl-devices | Str | Urządzenia opencl do użycia, oddzielone przecinkami | -d 1
-D, --pencl-device-typy | Str | Typy urządzeń opencl do użycia, oddzielone przecinkami | -D 1
--Opencl-Vector-Width | Num | Ręcznie zastąp wektor Opencl wektor do x | --opencl-vector = 4
-O,-optymalizowane-kanały-biodrowe | |. Włącz zoptymalizowane jądra (ogranicza długość hasła) |
-W,-Workload-profile | Num | Włącz określony profil obciążenia, patrz pula poniżej | -W 3
-n,-Kernel-Accel | Num | Tunowanie obciążenia ręcznego, ustaw rozmiar kroku Outerloop na x | -n 64
-U,-Kernel-pętle | Num | Tunowanie obciążenia ręcznego, ustaw rozmiar kroku InnerLoop na x | -U 256
-T,-Kernel-Threads | Num | Tunowanie obciążenia ręcznego, ustaw liczbę wątków na x | -T 64
-S, - -Skip | Num | Pomiń X Words od samego początku | -S 1000000
-L, - -limit | Num | Limit x słowa od początku + pomijam słowa | -L 1000000
--Keyspace | |. Pokaż podstawę Keyspace: Wartości MOD i wyjście |
-J,--Rule-Left | Reguła | Pojedyncza reguła zastosowana do każdego słowa z lewej listy słów | -J 'c'
-K,-Rule-right | Reguła | Pojedyncza reguła zastosowana do każdego słowa z właściwej listy słów | -K '^-'
-R,--Rules-File | Plik | Wiele reguł stosowanych do każdego słowa od list słów | -R zasady/Best64.reguła
-G,-Generate-Rules | Num | Wygeneruj x losowe reguły | -G 10000
--Generat-Rules-Func-min | Num | Force Min x Funkcje na zasadę |
--Generat-Rules-Func-Max | Num | Force MAX X Funkcje na regułę |
--Wygeneruj Rules-nasion | Num | Force RNG SEEP ustawiony na x |
-1,-Custom-Charset1 | CS | Zespół zdefiniowany przez użytkownika ?1 | -1 ?L?D?u
-2,-Custom-Charset2 | CS | Zespół zdefiniowany przez użytkownika ?2 | -2 ?L?D?S
-3,-Custom-Charset3 | CS | Zespół zdefiniowany przez użytkownika ?3 |
-4,-Custom-Charset4 | CS | Zespół zdefiniowany przez użytkownika ?4 |
-I, -Zakres | |. Włącz tryb przyrostu maski |
--Przyrost-min | Num | Rozpocznij przyrost maski na x | -Increment-min = 4
--Przyrost-Max | Num | Zatrzymaj przyrost maski na x | -Increment-Max = 8
-S,--Slow-Candidates | |. Włącz wolniejsze (ale zaawansowane) generatory kandydatów |
--Brain-Server | |. Włącz serwer mózgu |
-Z,-Brain-Client | |. Włącz Brain Client, aktywuje -s |
--Featury mózgu | Num | Zdefiniuj funkcje klienta mózgu, patrz poniżej | -Brain-Client-Features = 3
--Host mózgu | Str | Host serwera mózgu (IP lub domena) | -Brain-host = 127.0.0.1
--Port mózgu | Port | Port serwera mózgu | -Brain-Port = 13743
--Słowo mózgowe | Str | Hasło uwierzytelniania serwera mózgu | -Brain-Password = BZFHCVGUSJRQ
--sesja mózgu | Hex | Zastępuje automatycznie obliczane sesję mózgu | -Sesja mózgu = 0x2ae611db
--Brain-Session-Whitelist | Hex | Pozwól tylko podane sesje, oddzielone przecinkami | -Brain-session-Whitelist = 0x2AE611db

Tryby HASH:

Zobaczymy tutaj ponad tysiąc trybów hash. Są teraz interesujące.

137xy | Veracrypt | Szyfrowanie pełnego dysku (FDE)
X | 1 = PBKDF2-HMAC-RIPEMD160 | Szyfrowanie pełnego dysku (FDE)
X | 2 = PBKDF2-HMAC-SHA512 | Szyfrowanie pełnego dysku (FDE)
X | 3 = PBKDF2-HMAC-WHIRLPOOL | Szyfrowanie pełnego dysku (FDE)
X | 4 = PBKDF2-HMAC-RIPEMD160 + tryb rozruchowy | Szyfrowanie pełnego dysku (FDE)
X | 5 = PBKDF2-HMAC-SHA256 | Szyfrowanie pełnego dysku (FDE)
X | 6 = PBKDF2-HMAC-SHA256 + tryb rozruchowy | Szyfrowanie pełnego dysku (FDE)
X | 7 = PBKDF2-HMAC-STREEBOG-512 | Szyfrowanie pełnego dysku (FDE)
Y | 1 = XTS 512 -bitowe czyste AES | Szyfrowanie pełnego dysku (FDE)
Y | 1 = XTS 512 -bitowy czysty w sera | Szyfrowanie pełnego dysku (FDE)
Y | 1 = XTS 512 -bitowe czyste dwójki | Szyfrowanie pełnego dysku (FDE)
Y | 1 = XTS 512 -bitowe czyste kamelię | Szyfrowanie pełnego dysku (FDE)
Y | 1 = XTS 512 -bitowe czyste kuznyechik | Szyfrowanie pełnego dysku (FDE)
Y | 2 = XTS 1024 -bitowe czyste AES | Szyfrowanie pełnego dysku (FDE)
Y | 2 = XTS 1024 -bitowy czysty ser Serpent | Szyfrowanie pełnego dysku (FDE)
Y | 2 = XTS 1024 bit czyste dworej | Szyfrowanie pełnego dysku (FDE)
Y | 2 = XTS 1024 -bitowe czyste kamelię | Szyfrowanie pełnego dysku (FDE)
Y | 2 = XTS 1024 bit czyste KuznyEchik | Szyfrowanie pełnego dysku (FDE)
Y | 2 = XTS 1024-bitowe kaskadowe AES-TWOFISH | Szyfrowanie pełnego dysku (FDE)
Y | 2 = XTS 1024-bitowe kaskadowe Camellia-KuznyEchik | Szyfrowanie pełnego dysku (FDE)
Y | 2 = XTS 1024-bitowe kaskadowe Camellia-Serpent | Szyfrowanie pełnego dysku (FDE)
Y | 2 = XTS 1024-bitowe kaskadowe kuznyechik-aes | Szyfrowanie pełnego dysku (FDE)
Y | 2 = XTS 1024-bitowe kaskadowe kuznyechik-twofish | Szyfrowanie pełnego dysku (FDE)
Y | 2 = XTS 1024-bitowe kaskadowe Serpent-Aes | Szyfrowanie pełnego dysku (FDE)
Y | 2 = XTS 1024-bitowe kaskadowe dwójki-serpent | Szyfrowanie pełnego dysku (FDE)
Y | 3 = XTS 1536 Bit All | Szyfrowanie pełnego dysku (FDE)
14600 | LUKS | Szyfrowanie pełnego dysku (FDE)
16700 | FileVault 2 | Szyfrowanie pełnego dysku (FDE)
18300 | System plików Apple (APFS) | Szyfrowanie pełnego dysku (FDE)

Tryby ataku:

# | Tryb
===+======
0 | Prosty
1 | Połączenie
3 | Brutalna siła
6 | Hybrydowa lista słów + maska
7 | Maska hybrydowa + lista słów

Mamy wszystkie 3 rzeczy, które potrzebuje Hashcat, wykonajmy to za pomocą następującego polecenia:

Ubuntu@ubuntu: ~ $ sudo hashcat -a 0 -m 13722 binary_data lista słów.TXT -Force
Hashcat (v5.1.0) Rozpoczęcie…
Hashes: 1 trawienie; 1 unikalne trawienie, 1 unikalne sole
Mapy bitowe: 16 bitów, 65536 wpisów, maska ​​0x0000ffff, 262144 bajtów, 5/13 obrotów
Zasady: 1
Obowiązujące optymalizatory:
* Zero-byte
* Pojedyncza masa
* Pojedynczy solt
* Pętla powolna-simd
* Używa-64-bit
Minimalna długość hasła obsługiwana przez jądro: 0
Maksymalna długość hasła obsługiwana przez jądro: 64
* Urządzenie nr 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
Device_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 '
[Logowanie Opcje Clanga] "/usr/bin/ld" "--eh-frame-hdr" "-m" "elf_x86_64" "-shared"
„-o” ”/root/.Cache/POCL/UNCOKED/TEMPFILE-70-00-EB-2C-AA.Więc "" -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-gnu/9/…/…/…/…/lib64" "-l/lib/x86_64-Linux-gnu"
„-L/lib/…/lib64” „-l/usr/lib/x86_64-Linux-gu” ”-l/usr/lib/…/lib64”
"-L/usr/lib/x86_64-Linux-gnu/…/…/lib64" "-l/usr/lib/gcc/x86_64-Linux-gnu/9/9/9/
…/…/… "" -L/usr/lib/llvm-6.0/bin/…/lib "" -l/lib "" -l/usr/lib "
"/źródło/.Cache/POCL/UNCEKED/TEMPFILE-B1-44-3F-F1-67.Więc.o "" -LM "
Uderzenie pamięci podręcznej słownika:
* Nazwa pliku…: lista słów.tekst
* Hasła.: 600000
* Bajty…: 6000000
* Keysspace…: 600000
[Logowanie Opcje Clanga] "/usr/bin/ld" "--eh-frame-hdr" "-m" "-l/usr/lib/llvm-6.0/bin/…/lib "
„-L/lib” ”-l/usr/lib" "/root/.Cache/POCL/UNCOKED/TEMPFILE-E2-BA-DB-1F-BA.Więc.o "" -lm "" -lm "
„-lgcc” „-nagłe” „-lgcc_s” „--No-asdeded” „-lc” „-lgcc” „--S-potrzebne” „-lgcc_s”
„-No-Asdeded”

Binary_data: Tokyo2002

Sesja…: Hashcat
Status…: pęknięty
Haszysz.Typ…: Veracrypt PBKDF2-HMAC-SHA512 + XTS 1024 bit
Haszysz.Target…: binary_data
Czas.Zaczęło się…: Czw 11 czerwca 20:38:17 2020 (11 sekund)
Czas.Szacowany…: czw 11 czerwca 20:38:28 2020 (0 sekund)
Zgadywać.Baza…: plik (lista słów.tekst)
Zgadywać.Kolejka…: 1/1 (100.00%)
Prędkość.#1…: 0 h/s (0.57ms) @ Accel: 32 Pętle: 32 THR: 1 VEC: 4
Odzyskane…: 1/1 (100.00%) trawienie, 1/1 (100.00%) sole
Postęp…: 600000/60000 (100.00%)
Odrzucony…: 0/60000 (0.00%)
Przywrócić.Punkt…: 0/60000 (0.00%)
Przywrócić.Pod.#1…: Sól: 0 Wzmacniacz: 0-1 Iteracja: 499968-499999
Kandydaci.#1…: Mango 23232 -> Nieprawidłowy

Mamy hasło Tokyo2002.

Szyfrowanie napędu z luksami:

Spójrzmy, jak szyfrować USB za pomocą szyfrowania Luksa:

Przede wszystkim zainstaluj pakiet CryptsetUp-Luks za pomocą następującego polecenia:

Ubuntu@ubuntu: ~ $ sudo apt Zainstaluj CryptsetUp-luks

Teraz użyj następującego polecenia, aby skonfigurować żądaną partycję do szyfrowania:

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

XDC to nazwa partycji. Jeśli nie znasz nazwy partycji, użyj „FDISK -L”.

Teraz utwórz logiczne urządzenie Mapper zamontowane na szyfrowaną partycję Luksa za pomocą:

Ubuntu@ubuntu: ~ $ cryptsetup luksopen /dev /xdc

Poprosi o frazę. Wprowadź silną kombinację liter, cyfr i znaków specjalnych jako hasło, a będziesz gotowy.

Szyfrowanie luków:

Teraz, aby złamać objętości LUKS Hashcat, musisz zasilić Hashcat odpowiednim plikiem danych binarnych. Możemy wyodrębnić te dane za pomocą następującego polecenia:

ubuntu@ubuntu: ~ $ sudo dd if =/dev/sdb1 of = nagłówek.LUKS BS = 512 Liczba = 4097
COND = noerror, status synchronizacji = postęp

To utworzy plik 2 MB zawierający wszystkie potrzeby Hashcat danych do pękania.

Hashcat:

Spójrzmy na składnię Hashcat:

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

Teraz mamy plik binarny i listę słów, ale nie znamy typu ataku i typueofencryption. Aby uzyskać tę informację, przyjrzymy się Hashcat -Help.

Dowiedzieliśmy się obu:

TypeOfEncryption:

14600 | LUKS | Szyfrowanie pełnego dysku (FDE)
16700 | FileVault 2 | Szyfrowanie pełnego dysku (FDE)
18300 | System plików Apple (APFS) | Szyfrowanie pełnego dysku (FDE)

Typ ataku:

# | Tryb
===+======
0 | Prosty
1 | Połączenie
3 | Brutalna siła

Proszę bardzo, zaczniemy pękać, wpisując następujące polecenie:

Ubuntu@ubuntu: ~ $ sudo hashcat -a 0 -m 14600 nagłówek.lista słów luks.tekst
Hashcat (v5.1.0) Rozpoczęcie…
Urządzenie nr 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
Device_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 '
[Logowanie Opcje Clanga] "/usr/bin/ld" "--eh-frame-hdr" "-m" "elf_x86_64" "-shared"
„-o” ”/root/.Cache/POCL/UNCOKED/TEMPFILE-70-00-EB-2C-AA.Więc"
"-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-gnu/9/…/…/…/…/lib64 "" -l/lib/lib/lib/lib/lib/lib/lib/lib/lib/lib/lib/lib/lib/lib/lib/
x86_64-Linux-gnu "" -l/lib/…/lib64 "" -l/usr/lib/x86_64-Linux-gu "" -l/usr/lib/…/////////////////////
Lib64 "" -L/usr/lib/x86_64-Linux-gnu/…/…/lib64 "" -l/usr/lib/gcc/x86_64-Linux-gnu/9/9/9/9/9/9/9/9/9/9/9/9/9/
…/…/… "" -L/usr/lib/llvm-6.0/bin/…/lib "" -l/lib "" -l/usr/lib ""/root/.pamięć podręczna/pocl/
Unclered/Tempfile-B1-44-3F-F1-67.Więc.o "" -LM "
Uderzenie pamięci podręcznej słownika:
* Nazwa pliku…: lista słów.tekst
* Hasła.: 50
* Bajty…: 500
* Keyspace…: 50
[Rejestrowanie opcji Clang] "/usr/bin/ld" "--eh-frame-hdr" "-m"
"-L/usr/lib/llvm-6.0/bin/…/lib "" -l/lib "" -l/usr/lib ""/root/.pamięć podręczna/pocl/
Unclered/Tempfile-E2-BA-DB-1F-BA.Więc.o "" -lm "" -lm "" -lgcc "" --asdeded "
„-lgcc_s” „-no-asdeded” „-lc” „-lgcc” „--aseded” „-lgcc_s” „--no-asdeded”

nagłówek.LUKS: Tokyo2002

Sesja…: Hashcat
Status…: pęknięty
Haszysz.Typ…: luks
Haszysz.Target…: nagłówek.luks
Czas.Zaczęło się…: Czw 11 czerwca 20:38:17 2020 (11 sekund)
Czas.Szacowany…: czw 11 czerwca 20:38:28 2020 (0 sekund)
Zgadywać.Baza…: plik (lista słów.tekst)
Zgadywać.Kolejka…: 1/1 (100.00%)
Prędkość.#1…: 0 h/s (0.57ms) @ Accel: 32 Pętle: 32 THR: 1 VEC: 4
Odzyskane…: 1/1 (100.00%) trawienie, 1/1 (100.00%) sole
Postęp…: 50/50 (100.00%)
Odrzucony…: 0/50 (0.00%)
Przywrócić.Punkt…: 0/50 (0.00%)
Przywrócić.Pod.#1…: Sól: 0 Wzmacniacz: 0-1 Iteracja: 499968-499999
Kandydaci.#1…: Mango 23232 -> Nieprawidłowy

Mamy hasło Tokyo2002.

Niestandardowe listy słów za pomocą Crunch:

Tworzenie listy słów w sposób, który chcesz. Bardzo pomaga w brutalnej sile i atakach słownika. Jednym z narzędzi, które można użyć do tworzenia niestandardowej listy słów, jest Crunch.

Ubuntu@ubuntu: ~ $ crunch
Zastosowanie: chrupnięcie [Opcje]
  • Min: minimalna długość
  • Max: maksymalna długość
  • Opcje: różne opcje, które znajdziemy na jego stronie Man

Opcje:

B: największy rozmiar
C: Liczba linii
D: Ogranicz liczbę zduplikowanych znaków
mi: Zatrzymaj się, jak dotrze określony ciąg
F: Użyj znaku.plik LST do wygenerowania
I: Odwróć kolejność
O: Wyjście do pliku określone
R: wznowić poprzednią sesję
S: Określ ciąg, z którym zacznie się lista słów
T: ustawiaj wzór za pomocą @,%^ (małe litery, wielkie litery, liczby, znaki specjalne jednocześnie)
Z: skompresuj plik wyjściowy

Załóżmy, że musimy wygenerować listę słów o minimalnych znakach 6 i maksymalnych znakach 8, użyjemy następującego polecenia i zapisamy wyjście na wyjście.tekst:

Ubuntu@ubuntu: ~ $ Crunch 6 8 -O wyjście.tekst

Crunch wygeneruje teraz następującą ilość danych: 1945860473024 bajtów

1855717 MB
1812 GB
1 TB
0 pb

Crunch wygeneruje teraz następującą liczbę linii: 217167790528

Załóżmy kolejny scenariusz, w którym wiemy, że urodziny celu są w 2002 roku i zwykle używa hasła 9 znaków kończących się na jego urodziny. Użyjemy następującego polecenia, aby wygenerować listę słów pasującą do wszystkich tych cech i zapisz ją do pliku o nazwie Lista słów.tekst.

Ubuntu@ubuntu: ~ $ crunch 9 9 -t @@@@@ 2002 -o lista słów.tekst

Crunch wygeneruje teraz następującą ilość danych: 118813760 bajtów

113 MB
0 GB
0 TB0 PB

Crunch wygeneruje teraz następującą liczbę linii: 11881376

Crunch: 100% ukończone generowanie wyjścia

Ubuntu@ubuntu: ~ $ ls -la Wordlist.tekst
-RW-RW-RW- 1 Azad Azad 118813760 13 czerwca 14:43 Lista słów.tekst

Wiedza o tym, jak stworzyć odpowiednie listy słów dla swojego zadania, to umiejętność, która może zaoszczędzić dużo czasu w atakach słownika.

Wniosek:

Jeśli próbujesz wybrać między oprogramowaniem do szyfrowania, niektóre oprogramowanie szyfrowania, takie jak Veracrypt, nie pozwala komuś otwierać dysków bez wprowadzania hasła, nawet jeśli złośliwa osoba jest zalogowana, jednocześnie korzystanie z oprogramowania, takiego jak BitLocker dla systemu Windows i FileVault2 dla Apple Twoje pliki widoczne, jeśli użytkownik jest zalogowany. Szyfrowanie napędów jest dobrą rzeczą, ale użycie słabych, powtarzanych lub zgadalnych haseł dla nich ułatwi je złamanie. Prawie każdy typ szyfrowania można pękać, w zależności od długości i złożoności hasła. Pękanie napędów szyfrowania za pomocą niestandardowej listy słów zaoszczędzi wiele czasu i pomoże w wydajnym wykonaniu zadania. Tworzenie dobrych list słów to sztuka, wiele narzędzi jest dostępnych, takich jak Crunch, Cewl itp., Które pomogą ci to zrobić. Istnieje kilka bardzo dobrych narzędzi, takich jak Hashcat, JohnTheripper, który może złamać dowolne szyfrowanie, jeśli dostarczone z odpowiednim plikiem binarnym i odpowiedniej listy słów. W porównaniu do Johna, Hashcat może korzystać z GPU i jest znacznie szybszy z prędkością 882 C/s w porównaniu z Johnem, który ma prędkość 54.8 c/s.