Bezpieczeństwo IT - metody ochrony,Cyberzagrożenia,Główna

Jak stworzyć słownik w Crunch w Kali Linux? | Pentesting

Czas czytania: 5 min

W tym artykule dowiecie się, jak stworzyć słownik w Crunch w Kali Linux.

Jeśli kiedykolwiek znaleźliście się w sytuacji, w której potrzebowaliście stworzyć słownik haseł to Crunch jest prawidłowym tropem. W dzisiejszym artykule pokaże Wam jedno z łatwiejszych narzędzi do generowania listy haseł w Kali Linux (i nie tylko) do ataków typu dictionary attack i brute force .

 Jak zwykle przypominam, że materiał jest edukacyjny, a narzędzia takie jak Crunch służą do etycznego hakowania. Nie zachęcam do wykorzystywania tych metod do hakowania swoich kolegów i koleżanek.

Żadne działania w sieci nie są anonimowe (ale to pewnie wiecie). 

Czym jest Crunch i jak go używać?

Crunch to narzędzie służące do generowania własnych słowników (wordlist) o konkretnych parametrach, takich jak długość hasła, rodzaju znaków, a nawet zastosowania bardziej zaawansowanych reguł. Przydaje się w różnego rodzaju atakach brute force, gdzie konieczne jest przetestowanie różnych kombinacji haseł. Warto dodać, że Crunch pozwala na pełną kontrolę nad generowanymi listami – od liczby znaków, przez ustalanie prefiksów i sufiksów, po wyrafinowane ograniczenia co do układów haseł.

Sounds good? Sprawdźmy sami.

Instalacja Crunch na Kali Linux

Spokojnie, nie musisz ściągać żadnych paczek czy ręcznie kompilować źródeł. Crunch jest preinstalowany, więc możemy go uruchomić od razu.

Jeśli jednak z jakiegoś powodu nie masz go na swoim systemie, to instalacja wygląda następująco:

sudo apt install crunch

Podstawowe użycie Crunch – jak wygenerować słownik do ataku typu dictionary attack lub brute force?

Podstawowe wywołanie Crunch to prosty schemat:

crunch <min długość> <max długość> <znaki>

Chcesz wygenerować słownik z hasłami o długości od 5 do 8 znaków, używając cyfr? Komenda będzie wyglądała następująco:
crunch 5 8 0123456789
Crunch wygeneruje wszystkie kombinacje od 5- do 8-znakowych haseł składających się z cyfr od 0 do 9. (Uważaj, może to trochę potrwać, bo zakres możliwości jest spory)

Czasami nie potrzebujemy pełnego zestawu znaków, tylko np. liter i cyfr. Wtedy możemy użyć gotowych zestawów:

  • @ – małe litery
  • , – wielkie litery
  • % – cyfry
  • ^ – znaki specjalne (np. !@#$%^&*)

Wtedy wystarczy nam polecenie:crunch 5 8 @,%^

Jak używać Crunch’a z innymi narzędziami np. Hydra czy John the Ripper?

Generowanie słowników o dużej liczbie kombinacji, jakimi operuje Crunch, może zająć sporo miejsca na dysku. W praktyce pentesterskiej nie zawsze chcemy (lub możemy) zapisać takie pliku na dysku. Jest to bardzo przydatny zabieg, szczególnie gdy od razu potrzebujemy użyć wygenerowanych haseł w ataku.

Tu właśnie pojawia się jedna z kluczowych zalet Crunch – świetnie koreluje z takimi narzędziami jak John the Ripper (Więcej o JTR), Hydra czy Aircrack-ng. Dzięki przekierowaniu listy bezpośrednio używając stdout, możemy połączyć go z innymi narzędziami bez konieczności zapisywania słownika na dysku.

Przykład użycia Crunch z John the Ripper:

Załóżmy, że masz plik zawierający hasze haseł (np. w pliku hashes.txt.) i chcesz przeprowadzić atak słownikowy, korzystając z tego co już wiemy (crunch 5 8 @,%^)

Zamiast generować całą listę i zapisywać ją na dysku, możemy przekierować wyniki Crunch bezpośrednio do John the Ripper:

crunch 5 8 @,%^ | john --stdin --format=raw-md5 hashes.txt
Co się dzieje w tym przypadku?
  • crunch 5 8 @,%^ – generuje wszystkie możliwe kombinacje haseł od 5 do 8 znaków, składających się z małych i dużych liter, cyfr oraz znaków specjalnych.
  • | – to operator przekierowania, który wysyła wyniki wygenerowane przez Crunch bezpośrednio do następnej komendy, w tym przypadku John the Ripper.
  • john --stdin --format=raw-md5 hashes.txt – to polecenie, które informuje John the Ripper, że ma pobrać dane ze standardowego wejścia (--stdin) i porównać je z haszami zapisanymi w pliku hashes.txt. Format określiłam jako raw-md5, ale można użyć innego (np. SHA-1, bcrypt, itp.).

W ten sposób, Crunch generuje hasła w czasie rzeczywistym, a John the Ripper natychmiast porównuje je z haszami. Nie trzeba generować słownika i tracić czasu na jego zapis i późniejszy odczyt.

Jak wygenerować listę haseł w Kali Linux?

Wróćmy więc do generowania naszej listy haseł.

Jednym z moich ulubionych elementów jest możliwość definiowania wzorców. Możemy określić, że hasło musi zaczynać się od konkretnego prefiksu, mieć cyfry tylko w określonych miejscach, a kończyć się np. na znak specjalny. Dzięki temu, będziemy mogli wygenerować listę haseł z najbardziej popularnym hasłem np. ” admin”. Wygenerujmy hasła, które zaczynają się od “admin”, mają dwie cyfry i kończą się literą za pomocą polecenia:

crunch 8 8 -t admin@@l

Symbol @ oznacza dowolną cyfrę, a l dowolną literę małą.

Jeśli jednak bardzo chciałbyś zapisać swój słownik to wystarczy dodać opcję -o i dodać nazwę pliku np. slownik.txt.

Warto pamiętać, że to potężne narzędzie do generowania słowników o równie potężnych rozmiarach. 🙂  

Zanim wygenerujesz słownik, który może mieć miliony kombinacji, warto oszacować, ile miejsca zajmie taki plik na dysku. Crunch ma wbudowaną opcję szacowania rozmiaru bez faktycznego generowania pliku.

Do polecenia wystarczy dodać -s ,który szacuje, ile miejsca zajmie plik dla podanych parametrów.

Dzielenie pliku na mniejsze fragmenty

Przy zapisywaniu możemy również podzielić plik na mniejsze fragmenty np. każdy o wielkości 10 MB.  W takiej sytuacji zastosuj  -b i określ rozmiar: -o slownik.txt -b 10mb

Kiedy (i czy) warto używać Crunch?

Crunch to narzędzie, które udowadnia, że prostota może iść w parze z siłą. Odpowiednio używany, pozwala na precyzyjne, a jednocześnie niezwykle efektywne generowanie haseł, które można natychmiast wykorzystać do testów.

To narzędzie, które z jednej strony oszczędza zasoby, a z drugiej zapewnia maksymalną precyzję. Krótko mówiąc, jeśli potrzebujesz solidnego, wszechstronnego narzędzia do generowania haseł, Crunch będzie dobrym wyborem!

Technikalia dla administratorów

Warto również przeczytać :





Dodaj komentarz