oclHashcat md5, sha1 crack czyli łamiemy różne hashe

Dzisiaj zajmiemy się wprowadzeniem do programu oclHashcat. W uproszczeniu to zaawansowany program do odzyskiwania haseł.  Umożliwia łamanie hashy MD5, SHA-1, Skype, hasła Microsoft Windows, WiFi WPA2 i wiele wiele więcej. Obecna wersja umożliwia łamanie z wykorzystaniem aż ponad 150 różnych algorytmów. Podstawową zaletą tej aplikacji jest możliwość wspierania obliczeń za pomocą procesora karty graficznej. Jeżeli jesteś zapalonym graczem komputerowym i Twoja maszyna to przerośnięty bydlak wydajnościowy to wtedy czas łamania może się diametralnie skrócić. Tak samo w przypadku wykorzystania własnej sieci botnet lub chmury obliczeniowej. Program jest otwarto źródłowy i jest świetną alternatywą dla kultowej już aplikacji John the Ripper dostępnej w systemie Kali Linux. Dzisiaj oczywiście nie będziemy poruszać kwestii skąd zdobyć taki hash hasła administratora lub użytkownika danej witryny internetowej (CMS) lub systemu Windows. Zajmiemy się podstawami. Jeśli interesują Cię te kwestie to poczytaj sobie o atakach LFI, SQL Injection i plikach SAM.

Jak złamac MD5 programem oclhashcat

  1. Pobierz ze strony autorów program oclHashcat (wersja na Windowsa). Warto wybrać odpowiednią wersje dla swojej karty graficznej (NVidia lub AMD). Będziesz mógł wtedy skorzystać z technologi wsparcia ze strony GPU takich jak AMD OpenCL lub Nvidia CUDA
  2. Wypakuj archiwum programem Winrar lub 7-Zip
  3. W celu uzyskania prostszej składni polecenia skopiuj do katalogu aplikacji swój słownik tekstowy. W innym przypadku będziesz musiał podać pełną ścieżkę bezwzględną do tego pliku
  4. Utwórz plik o nazwie hash.txt i wklej tam skrót MD5 który chcesz złamać. Możesz wkleić ich większą ilość (jeden pod drugim)
  5. W folderze programu przytrzymaj w systemie Microsoft Windows prawy przycisk shift i klikając prawym przyciskiem myszy wybierz opcje Otwórz okno polecenia tutaj
  6. Wydaj następujące polecenie:
oclHashcat64.exe -m0 hash.txt slownik.txt -o wynik.txt

W powyższym poleceniu poszczególne argumenty md5 decodera oznaczają:

  • -m0 typ hashu lub pliku który chcemy złamać. Wszystkie możliwe typy znajdziesz tutaj
  • hash.txt ścieżka do pliku z hashami które chcemy złamać
  • slownik.txt ścieżka do pliku słownika
  • -o wynik.txt plik wynikowy (output) w którym będą znajdować się informacje w przypadku powodzenia ataku
Cracked lub Exhaused programu oclhashcat
Możliwe rezultaty działania programu hashcat

Gotowe. Teraz wystarczy poczekać na wyniki i wartość danego md5 hash. Wszystkie rezultaty pracy z programem zakończone powodzeniem można również zobaczyć w pliku oclHashcat.pot. Program również posiada przykładowy słownik o nazwie example.dict i zbiór hashy testowych w plikach example0.hash, example400.hash i example500.hash. Numery w nazwach tych plikach oczywiście nie są przypadkowe. Są zbiorami hashy dedykowanymi dla danej metody łamania (parametr -m).

Łamanie sha1

W przypadku łamania hashy typu sha-1 cała procedura wygląda identycznie. Polecenie różni się jedynie wykorzystaną metodą (parametr -m). Pamiętaj aby zmienić zawartość pliku hash.txt na taki z hashem typu sha1.

oclHashcat64.exe -m100 hash.txt slownik.txt -o wynik.txt

Program wspiera również inne algorytmy takie jak sha256, sha512 a nawet skróty solone (salt).

Łamanie WPA2

Jeśli pamiętacie poprzedni wpis na blogu i nasz film na Youtube o WPA2 to tam uzyskaliśmy z programu airdump-ng pliczek wpa2logi.cap. Istnieje możliwość w takim przypadku łamanie hasła do sieci Wi-Fi nie tylko w systemie Kali Linux.


W tym przypadku nie użyjemy wirtualnej maszyny z Kali Linux i aircracka-ng jak w poprzednim wpisie na blogu. Teraz z pomocą przyjdzie nam właśnie dosyć wydajny w odzyskiwaniu klucza WPA2 program oclHashcat.

  1. Prześlij w dowolny sposób na swój komputer plik wpa2logi.cap. Możesz to zrobić za pomocą pendrive, sendspace, …
  2. Dokonaj konwersji tego plik do formatu hccap. Możesz to zrobić za pomocą specjalnie do tego celu przygotowanej witryny https://hashcat.net/cap2hccap/. Warto podać na niej również ESSID, czyli nazwę łamanej sieci bezprzewodowej.
  3. Wydaj następujące polecenie w konsoli:
oclHashcat64.exe -m2500 wpa2logi.hccap slownik.txt -o wynik.txt

Argumenty

  • -m2500 metoda łamania (WPA/WPA2)
  • wpa2logi.hccap przerobiony plik na format hccap zdobyty w naszym poprzednim wpisie
  • slownik.txt – słownik z potencjalnymi hasłami
  • -o wynik.txt – plik z uzyskanymi wynikami
Cracked wifi WPA2 oclHashcat
Złamane hasło sieci wifi WPA2 za pomocą programu hashcat w systemie Microsoft Windows

Gotowe. Teraz tylko wystarczy poczekać na rezultaty łamania sieci WPA2.

oclhashcat co warto wiedzieć?

Status programu oclHashcat i GUI

Warto wiedzieć, że nie musimy czekać do końca łamania hashy. Możemy w każdej chwili przerwać proces w celu jego wznowienia od danego momentu w przyszłości.

Status łamania w programie oclHashcat na karcie Radeon AMD i procesorze Intel i7
Za pomocą klawisza s możemy sprawdzić status łamania. Istnieje możliwość również wstrzymania obliczeń w celu ich ponowienia w późniejszym czasie.

Warto dodatkowo wiedzieć, że na stronie autorów programu istnieje również wersja z graficznym interfejsem użytkownika (GUI) dla systemu Microsoft Windows. Znajdziesz ją w sieci pod nazwą hashcat-gui official.

hashcat i akceleracja GPU

Trzeba mieć na uwadze fakt, że możliwości obliczeniowe programu olchashcat mocno związane są z architekturą komputera na którym dokonujemy próby odzyskania wartości danego hasha. Szczególnie istotne może być tutaj wykorzystanie kart graficznych. Bardzo dużą wydajność łamania zapewne uzyskałoby się wykorzystując łączenie fizycznych kart graficznych za pomocą takich technik (na pewno nie obcym graczom komputerowym) jak Crossfire i SLI. Wykorzystanie GPU w obliczeniach nie jest niczym nowym. Innym sposobem na przyspieszenie obliczeń jest wynajęcie serwera VPS lub chmur takich jak Amazon EC2 lub Google Cloud Platform. W takim przypadku wystarczy zapuścić proces łamania i wyłączyć swój komputer :-). Jeśli nie wiesz czym jest łączenie kart to warto rzucić okiem na poniższy film:

Przeprowadziliśmy małe testy dla MD5 i SHA-1 i wyniki wyglądają następująco (i7 + Radeon HD 7600M):

  • łamanie MD5 słownikiem 26,1 GB 7 minut 35 sekund
  • łamanie SHA-1 słownikiem 26,1 GB 3 minuty 15 sekund
  • łamanie hasła słownikiem w którym znajdowały się hasła do 10 znaków z samych cyfr (35 GB) dla MD5 10 minut 11 sekund
  • łamanie hasła słownikiem w którym znajdowały się hasła do 10 znaków z samych cyfr (35 GB) dla SHA-1 4 minuty 16 sekund

Dla przykładu słownik 8 znakowy (alfabet małe litery) wygenerowany w programie crunch ma 1750 GB. Jak widać czas łamania wcale nie będzie taki długi nawet na domowym sprzęcie nie przystosowanym do wydajnych obliczeń. Powyższe czasy są oczywiście czasami pesymistycznymi (czas przejrzenia całego słownika). Może się zdarzyć sytuacja, że program trafi na hasło nawet po kilku sekundach.

Słownik testowany powyżej o wadze 26,1GB w sieci znany jest pod nazwą premium_gigant.txt.7z i dostępny pod poniższym adresem:

Mnogość metod łamania przeróżnych hashy

Kolejną fajnością programu jest duża ilość wspieranych algorytmów. Warto przestudiować oficjalną dokumentacje aplikacji, aby dowiedzieć się o olbrzymiej ilości innych wspieranych ataków z typowym brute-force na czele lub nawet mieszanych ataków hybrydowych. Na liście oclhashcat można znaleźć między innymi takie metody jak:

  • wielobitowe hashe z solą,
  • Skype,
  • Kerberos,
  • PostgreSQL i MySQL,
  • hashe popularnych CMS takich jak Joomla, vBulletin, phpBB,
  • hasła do systemu Windows,
  • routerów Cisco,
  • TrueCrypt,
  • PDF,
  • zip/rar,
  • portfele haseł np: Lastpass.

Na dzisiaj to by było na tyle. Jak widzicie oclhashcat jest potężnym multiplatformowym narzędziem, praktycznie umożliwiającym łamanie wszystkich popularnych i niepopularnych hashy. Jeśli czytasz ten wpis to na pewno spodoba Ci się jeszcze inny:

Zapraszamy również na naszego fanpage HakerEduPL na fejsie jeśli chcesz być na bieżąco. Pozdrawiamy! 😉

15 thoughts to “oclHashcat md5, sha1 crack czyli łamiemy różne hashe”

  1. Powiem, iż najbardziej zainteresowała mnie zakładka „Łamanie WPA2” ale reszta też ciekawa. 🙂
    No i ten Botnet genialna i ciekawa sprawa ale dla mega zaawansowanych, może bedzie kiedyś jakiś artykuł o tej sieci, zapewne nie ale zawsze warto zapytać 🙂

  2. Fajny artykuł sam jestem strasznie zajarany tym programem i jego możliwościami. Szkoda, że nie poruszyłeś kwestii masek, bo dopiero z nimi zaczyna się zabawa 🙂

    1. Jest jeszcze bardzo popularny John the Ripper „do wszystkiego” i również w nim można ustawiać maski. Co do „szkoda” to czasami mam wrażenie, że temat jest dłuższy niż myślałem.

  3. Witam czy jest możliwość by hashcat sam generował na bieżąco słowa bez użycia słownika? Mam na myśli np. komendę którą określałoby się z ilu znaków ma się składać słowo (i jakie litery/znaki specjalne ma zawierać), ponieważ generowanie takich słowników zajmuje zbyt wiele miejsca. Czy można prosić także o poradnik który dokładniej skupiłby się na chmurach obliczeniowych? Pozdrawiam serdecznie 😉

    1. Dziękujemy bartekglut za komentarz. Tak, istnieje taka możliwość. Dodatkowo dzięki ominięciu opóźnień związanych z odczytem haseł e słownika HDD, taki test penetracyjny jest często szybszą metodą (w przypadku THC-Hydra wydaje się szybsza). Na razie skupiamy się na naszym cyklu Web Application Security, więc myślę że do czasu kiedy napisalibyśmy taki wpis rozwiążesz już swój problem. Wszystkie swoje odpowiedzi znajdziesz na https://hashcat.net/wiki/. Dokładniej zainteresuj się sekcją mask attack i brute-force attack. Podpowiem Ci jedynie że istnieje taki parametr:
      -a, --attack-mode=NUM Attack-mode, see references below
      BTW: wiesz że istnieje hashcat-gui z interfejsem graficznym?

    2. Dziękuję 😀 Drobna lektura + hashcat-gui i udało się ustawić brute-force 😉 Ale niestety na moim sprzęcie (Intel i5-4670 i GTX 770) sprawdzenie wszystkich kombinacji (8 znakowego hasła) trwałoby około roku, jedyna nadzieja w chmurze 😉

      1. Bo pewnie wykorzystujesz duży zakres znaków. Z podstaw matematyki i wzoru np: andersona można wyliczyć i zobrazować sobie jak dodanie dodatkowego znaku w alfabecie znaków (brute-force), wpływa na znaczące wydłużenie czasu łamania hasła. Pamiętaj że jest to czas pesymistyczny, osoba może mieć hasło aaaaaaaa i trafi się za pierwszym razem. Często też dostosowuje się dozwolone znaki w danym programie/stronie internetowych (podczas rejestracji konta można je sprawdzić) i wedle ich ustawia. Pomocna też jest w zakresie tworzenia słowników statystyka i prawdopodobieństwo. Dzisiejszy hakerzy wykorzystują spersonalizowane słowniki, ponieważ nie ma sensu tworzenie testu penetracyjnego sprawdzającego hasło *&xDD&2hSB@d ponieważ ono jest bezpieczne i silne. Takich rzeczy się nie bada, wtedy przechodzi się do poszukiwania podatności w oprogramowaniu lub atakach skierowanych na użytkownika.

    3. Tak, wykorzystywane są wszystkie znaki 😉 Robię to w sumie tylko jako ciekawostkę i nie zagłębiam się w specjalne personalizowanie słowników 😀 (cóż z moim lenistwem przyjdzie chyba poczekać do komputerów kwantowych :P) A mam jeszcze takie pytanko, gdy próbuje użyć hashcata (w wersji pod CPU i korzystam z interfejsu GUI) to przy łamaniu Brute-Force na konsoli pojawia się komunikat „–pw-min is a reserved parameter for PRINCE attack mode” mogę prosić o pomoc z tym? 🙂

      1. A wklepałeś w google frazę:
        "–pw-min is a reserved parameter for PRINCE attack mode"
        Wydaje mi się, że być może wymagane są dodatkowe parametry w komendzie.

  4. Witam,
    Mam pewien problem po wpisaniu komendy „hashcat –benchmark” wyskakuję komunikat
    ” Device#1 : Not a native Intel OpenCl runtime[…]” po wymuszeniu działania komendą „–force”
    opowiada „Kernel librabry file /usr/share/pocl/kernel-i686-pc-linux-gnu.bc doesn’t exist”
    Sprawdzałem rzeczywiście nie znajduję się tam ten plik występuję plik kernel-x86_64-pc-linux-gnu.bc dla wersji x64. Posiadam wersje x32 (Komenda: uname -a komunikat : Linux host 4.9.0-kali3-686-pae #1SMP Debian 4.9.18-1kalil (2017-04-04) i686 GNU/Linux *)
    Jak temu zaradzić czy brak pliku kernel i OpenCL są ze sobą powiązane czy są to dwa oddzielne problemy? Jest możliwe zainstalowanie jedynie brakującego pliku ? Jak poradzić sobie z Intel OpenCL?
    Z góry dziękuję za poświęcony czas i uwagę
    *Aby uprzedzić pytania

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *