Home
» Wiki
»
Jak samemu spróbować złamać hasło i sprawdzić jego siłę
Jak samemu spróbować złamać hasło i sprawdzić jego siłę
W artykule przetestowano 3 różne hasła przy użyciu narzędzia typu open source do łamania haseł, aby dowiedzieć się, która metoda naprawdę działa, jeśli chodzi o bezpieczeństwo haseł.
Kiedy tworzysz konto w usłudze online, dostawca zazwyczaj szyfruje Twoje dane logowania na swoich serwerach. Odbywa się to za pomocą algorytmu, który tworzy „hash”, czyli pozornie unikalny, losowy ciąg liter i cyfr stanowiący Twoje hasło. Oczywiście, nie jest to losowy ciąg znaków, ale bardzo konkretny ciąg znaków, który może wygenerować tylko Twoje hasło. Dla niewprawnego oka wygląda to jednak jak bałagan.
Zamiana słowa na hasz jest znacznie szybsza i łatwiejsza niż ponowne „dekodowanie” hasza na słowo. Kiedy więc ustawiasz hasło, usługa, do której się logujesz, analizuje Twoje hasło przez funkcję haszującą i przechowuje wynik na swoich serwerach.
Jeśli plik z hasłami wycieknie, hakerzy będą próbowali poznać jego zawartość, łamiąc hasło. Ponieważ szyfrowanie haseł jest szybsze niż ich odszyfrowywanie, hakerzy tworzą system, który przyjmuje potencjalne hasła jako dane wejściowe, szyfruje je tą samą metodą co serwer, a następnie porównuje wyniki z bazą danych haseł.
Jeśli skrót potencjalnego hasła pasuje do dowolnego wpisu w bazie danych, haker wie, że każda próba jest zgodna z potencjalnym hasłem.
Jak złamać własne hasła za pomocą HashCat
Spróbuj złamać niektóre hasła wygenerowane w artykule i przekonaj się, jakie to proste. W tym celu w przykładzie wykorzystamy Hashcat , darmowe i otwarte narzędzie do łamania haseł , z którego może korzystać każdy.
W ramach tych testów przykład będzie łamał następujące hasła:
123456 : Klasyczne hasło i koszmar cyberbezpieczeństwa, 123456 jest najpopularniejszym hasłem na świecie . NordPass obliczył, że 3 miliony kont używało hasła 123456, w tym 1,2 miliona kont chroniących konta korporacyjne.
Susan48! :Hasło zgodne ze wzorcami, których większość użytkowników używa do tworzenia bezpiecznych haseł. Rozwiązanie to zasadniczo spełnia kryteria podstawowej ochrony hasłem, ale jak omówimy później, ma kilka istotnych słabości, które można wykorzystać.
t9^kJ$2q9a : Hasło wygenerowane przy użyciu narzędzia Bitwarden. Ma za zadanie generować hasło składające się z 10 znaków, zawierających wielkie i małe litery, symbole i cyfry.
Teraz zaszyfruj hasło za pomocą algorytmu MD5. Oto jak wyglądałyby hasła, gdyby znajdowały się w zapisanym pliku haseł:
123456 : e10adc3949ba59abbe56e057f20f883e
Susan48! : : df1ce7227606805745ee6cbc644ecbe4
t9^kJ$2q9a : 450e4e0ad3ed8766cb2ba83081c0a625
Czas je rozgryźć.
Wykonaj prosty jailbreak za pomocą metody ataku słownikowego
Na początek przeprowadźmy atak słownikowy, jedną z najpopularniejszych metod ataków na hasła. To prosty atak, w którym haker bierze listę potencjalnych haseł, prosi program Hashcat o przekonwertowanie ich na MD5 i sprawdza, czy którekolwiek z haseł pasuje do 3 wpisów powyżej. Na potrzeby tego testu wykorzystamy jako słownik plik „rockyou.txt”, który jest jednym z największych wycieków haseł w historii.
Aby rozpocząć łamanie zabezpieczeń, autor artykułu wszedł do folderu Hashcat, kliknął prawym przyciskiem myszy w pustym miejscu i wybrał Otwórz w terminalu . Teraz, gdy terminal jest otwarty i ustawiony na katalog Hashcat, wywołaj aplikację Hashcat za pomocą następującego polecenia:
.\hashcat -m 0 -a 0 passwordfile.txt rockyou.txt -o results.txt
Oto co robi to polecenie:
.\hashcat wywołuje Hashcat.
-m 0 : Określa typ kodowania, który ma zostać użyty. W tym przypadku zostanie użyty algorytm MD5, oznaczony jako 0 w dokumentacji pomocy Hashcat.
-a 0 : Określa atak, który należy wykonać. W dokumentacji pomocy Hashcat atak słownikowy jest oznaczony zerem, dlatego tak go tutaj nazywamy.
passwordfile.txt rockyou.txt : Pierwszy plik zawiera 3 zaszyfrowane hasła, które skonfigurowaliśmy wcześniej. Drugi plik zawiera całą bazę haseł rockyou.
-o results.txt : Ta zmienna określa, gdzie umieścimy wyniki. Polecenie umieszcza złamane hasła w pliku TXT o nazwie „results”.
Mimo że rockyou był ogromny, Hashcat przetworzył je wszystkie w 6 sekund. W powstałym pliku Hashcat podaje, że złamał hasło 123456, jednak hasła Susan i Bitwarden pozostają niezłamane. Stało się tak, ponieważ hasło 123456 zostało użyte przez kogoś innego w pliku rockyou.txt, ale nikt inny nie użył hasła Susan ani Bitwarden, co oznacza, że były one wystarczająco bezpieczne, aby przetrwać ten atak.
Wykonaj bardziej złożony jailbreak, używając ukrytych ataków Brute Force
Wykonaj atak siłowy za pomocą Hashcat
Ataki słownikowe są skuteczne, gdy ktoś używa tego samego hasła, co hasło znalezione na długiej liście haseł. Są szybkie i łatwe do zastosowania, ale nie potrafią złamać haseł, których nie ma w słowniku. Dlatego jeśli naprawdę chcesz przetestować swoje hasło, musisz zastosować atak siłowy.
Jeśli ataki słownikowe polegają po prostu na użyciu wstępnie zdefiniowanej listy i konwertowaniu ich jeden po drugim, to ataki siłowe robią to samo, ale przy użyciu każdej możliwej kombinacji. Są trudniejsze do wdrożenia i zajmują więcej czasu, ale ostatecznie pozwolą złamać każde hasło. Jak wkrótce zobaczymy, nabycie tej umiejętności może czasem zająć dużo czasu.
Oto polecenie służące do przeprowadzenia „prawdziwego” ataku siłowego:
.\hashcat -m 0 -a 3 target.txt --increment ?a?a?a?a?a?a?a?a?a?a -o output.txt
Oto co robi to polecenie:
-a 3 : Ta zmienna definiuje atak, który chcemy przeprowadzić. Dokumentacja pomocy Hashcat wymienia ataki Brute Force jako numer 3, stąd jest tu przywoływany.
target.txt : Plik zawierający zaszyfrowane hasło, które chcemy złamać.
--increment : To polecenie nakazuje programowi Hashcat wypróbowywanie wszystkich haseł składających się z jednego znaku, następnie dwóch, trzech itd., aż znajdzie pasujące.
?a?a?a?a?a?a?a?a?a?a?a : To się nazywa "maska". Maski pozwalają nam wskazać programowi Hashcat, jakie znaki mają być użyte na jakich pozycjach. Każdy znak zapytania określa pozycję znaku w haśle, a litera określa, co próbujemy zrobić na każdej pozycji. Litera „a” reprezentuje wielkie i małe litery, cyfry i symbole, dlatego ta maska mówi: „Wypróbuj wszystko na każdej pozycji”. To okropna maska, ale później nauczymy się ją skutecznie stosować.
-o output.txt : Ta zmienna określa, gdzie umieścimy wyniki. Przykładowe polecenie umieszcza złamane hasła w pliku TXT o nazwie „output”.
Nawet przy tej kiepskiej masce hasło 123456 można złamać w ciągu 15 sekund. Mimo że jest to najpopularniejsze hasło, jest też jednym z najsłabszych.
Hasło "Susan48!" dużo lepiej - komputer twierdzi, że złamanie zabezpieczeń zajmie 4 dni. Jest jednak jeden problem. Pamiętasz, jak w artykule napisano, że hasło Susan ma poważne luki? Największym błędem jest to, że hasła są konstruowane w przewidywalny sposób.
Tworząc hasła, często umieszczamy określone elementy w określonych miejscach. Można sobie wyobrazić, że Susan, która stworzyła hasło, próbowała na początku używać słowa „susan”, ale została poproszona o dodanie wielkich liter i cyfr. Aby łatwiej było zapamiętać, pierwszą literę zapisali wielką literą, a na końcu dodali cyfry. Następnie usługa logowania poprosiła o symbol, więc osoba ustawiająca hasło dodała go na końcu.
Możemy więc za pomocą maski wskazać programowi Hashcat, aby próbował wprowadzać tylko określone znaki w określonych miejscach, wykorzystując w ten sposób łatwość odgadnięcia haseł przez użytkowników. W tej masce „?u” będzie używać na tej pozycji tylko wielkich liter, „?l” będzie używać tylko małych liter, a „?a” będzie reprezentować dowolny znak:
Dzięki tej masce Hashcat złamał hasło w 3 minuty i 10 sekund, znacznie szybciej niż zajęło mu to 4 dni.
Hasło Bitwarden składa się z 10 znaków i nie opiera się na żadnym przewidywalnym wzorcu, więc do jego złamania potrzebny by��by atak siłowy bez maski. Niestety, gdy poprosiłem Hashcata o wykonanie tej czynności, pojawił się błąd informujący, że liczba możliwych kombinacji przekracza limit liczb całkowitych. Ekspert ds. bezpieczeństwa IT twierdzi, że Bitwardenowi złamanie hasła zajęło 3 lata, więc to wystarczy.
Jak chronić swoje konto przed hakowaniem hasła
Głównymi czynnikami uniemożliwiającymi złamanie hasła Bitwarden są długość artykułu (10 znaków) i nieprzewidywalność. Tworząc hasło, postaraj się więc, aby było jak najdłuższe i aby symbole, cyfry i wielkie litery były równomiernie rozłożone w całym haśle. Dzięki temu hakerzy nie mogą używać masek do przewidywania lokalizacji każdego elementu, co sprawia, że zabezpieczenia te stają się znacznie trudniejsze do złamania.
Prawdopodobnie znasz stare przysłowia dotyczące haseł, takie jak „użyj tablicy znaków” i „uczyń hasło tak długim, jak to możliwe”. Mamy nadzieję, że wiesz, dlaczego ludzie polecają te pomocne wskazówki – stanowią one bowiem kluczową różnicę między hasłem łatwym do złamania a bezpiecznym.