Brutalny atak

W tym samouczku zostanie omówiony atak brute force i zostaną wymienione niektóre narzędzia do przeprowadzenia tego ataku. Przede wszystkim ma powiedzieć, na czym polega brutalna siła, choć po jej nazwie można to sobie wyobrazić.

Jest to technika oparta na próbach i błędach, służy do pozyskiwania haseł lub odszyfrowywania danych, ta metoda nie szuka inteligentnej strategii, ale raczej testuje wszystkie możliwe kombinacje, aż znajdzie klucz.

Czy można uzyskać dowolne hasło lub odszyfrować dowolny plik? Gdyby nasz czas był prawdopodobnie nieskończony, ale skoro tak nie jest, odpowiedź brzmi: nie, hasła lub długie klucze i przy różnych czynnikach (wielkie litery, małe litery, cyfry, znaki specjalne), zajęłoby nam to dużo czasu, aby je przez to wydobyć metoda (za życia nie zostaniemy osiągnięci).

Możemy użyć tej metody do sprawdzenia bezpieczeństwa naszych haseł lub szyfrowania przed tego typu atakiem. Jeśli chcesz wiedzieć jak stworzyć silne hasło, radzę przeczytać ten samouczek. Algorytmem szyfrującym podatnym na tego typu ataki jest DES, odwrotnie jest w przypadku AES, który nie jest podatny na brute force. Najlepiej jest dobrze zrozumieć dziedzinę kryptografii.

Świat Kryptografii

Posiadanie silnego hasła to pierwszy krok, ale możesz też zastosować jeszcze jedną warstwę ochrony, korzystając z uwierzytelnianie dwuskładnikowe Na Twoich kontach (przynajmniej tych najcenniejszych) są już dziś usługi, które oferują to zintegrowane i bezpłatne, takie jak Google, Twitter i Linkedin. Te systemy zwykle wysyłają wiadomość na Twój telefon komórkowy z kodem po wprowadzeniu prawidłowego hasła, więc dopóki nie wprowadzisz tego kodu, nie będziesz mógł wejść na swoje konto.

Szczególnie brutalna siła często łączy się z atakami słownikowymiAtak ten polega na posiadaniu pliku z bardziej typowymi hasłami (ludzie zwykle używają znanych słów jako swoich haseł, dzięki czemu lepiej je pamiętają) i próbowaniu ich wszystkich, aż do znalezienia klucza lub zakończenia haseł bez powodzenia. Ogólnie atak jest skuteczniejszy, chociaż jeśli użyjemy kilku czynników w naszym haśle, szanse powodzenia znacznie spadają.

Narzędzia brutalnej siły

Jan Rozpruwacz

Jest to oprogramowanie typu open source i bezpłatne, zazwyczaj można je znaleźć w kodzie źródłowym, a jego głównym celem jest znajdowanie słabych haseł w systemach operacyjnych UNIX.

THC Hydra

To narzędzie pozwala zastosować brutalną siłę do zdalnych usług uwierzytelniania. Możesz przeprowadzać ataki słownikowe na ponad 50 protokołów.

Meduza

Jest to narzędzie modułowe, działa równolegle z logowaniem brute force. Kompatybilny z protokołami takimi jak FTP, HTTP, IMAP, SSH itp.

Ncrack

Jest to narzędzie do łamania uwierzytelnień sieciowych, działa szybko. Możesz rozszerzyć narzędzie, tworząc własne moduły.

Kain i Abel

Jest to narzędzie przeznaczone do odzyskiwania haseł w systemie Windows, do jego złamania można używać brutalnej siły, ale także ataków słownikowych oraz ataków z wykorzystaniem tęczowych tablic (Rainbow Table).

Umieszczę poniżej kod w Pythonie, który uzyskuje hasła zawierające tylko cyfry ze strony internetowej, do 5 cyfr, można to również zrobić za pomocą liter, większej długości itp. Najpierw zostawiam ci kod obsługujący żądania postów w PHP:

 
Widzimy, że nie mamy limitu prób, że użytkownik i jego hasło są zdefiniowane właśnie tam (aby uniknąć baz danych i komplikacji kodu), jeśli użytkownik i hasło są poprawne zwracamy kod 200 a jeśli nie 403.

Dalej zostawiam kod Pythona odpowiedzialny za wysyłanie żądań do poprzedniego kodu.

 import http.client, urllib.parsefrom czas import target time = "/bruteForce/index.php"headers = {" Content-type ":" application / x-www-form-urlencoded "," Accept ":" application / xhtml + xml, text / html; q = 0.9, text / plain; ",} znaleziono = Falsepassword = 0home = czas () podczas gdy hasło <= 99999 i nie znaleziono: parametry = urllib.parse.urlencode ({'user':' josue ',' pass': hasło}) connection = http.client.HTTPConnection ("localhost") connection.request ("POST", cel, parametry, nagłówki) response = connection.getresponse() if (response.status == 200 ): print ("Znaleziono hasło dla użytkownika josue, es", hasło) print ("Zajęło to czas: {0: .2f} s" .format ((czas () - start))) znaleziono = True else: print ( hasło) connection.close () hasło + = 1jeśli nie znaleziono: print ("Nie znaleziono hasła dla josue")
Ten kod wysyła żądania poczty, w każdym przejściu do pętli wszystko, co robimy, to zmiana hasła i dodanie do niego 1, więc spróbujemy wszystkich możliwych haseł od 0 do 99999 (jeśli wcześniej go nie znajdziemy). Pomaluj wszystkie liczby, które znajdziesz, bo tak chciałem na przykład, możesz to usunąć, w tym celu eliminujesz inne. Uruchommy ten kod, aby sprawdzić, czy znajdzie hasła.

Pierwszy przykład, który uruchomimy, aby znaleźć hasło 2087, poniżej znajduje się obraz, widać, że uzyskanie go nie zajmuje mi 18 sekund.

Jeśli usunę inny, aby nie malował się na ekranie, każda liczba zajmuje znacznie mniej czasu, tutaj możesz zobaczyć zrzut ekranu:

Teraz przy drugiej i ostatniej próbie wpisuję hasło 20870, żeby zobaczyć, jak długo to trwa.

Różnicę widać, dodając do hasła jeszcze jeden znak, ale i tak jest to czas, w którym możemy bez problemu poczekać, także gdybyśmy wstawili wątki, czas by się skrócił. Dlatego w naszych aplikacjach używamy silnych haseł i solidnego uwierzytelniania, które nie są w stanie zautomatyzować tego ataku.

Jeśli chcesz zobaczyć praktyczny przykład, w którym hasło zip lub rar jest złamane, możesz odwiedzić następujący samouczek:

Złam hasło .rar lub .zip

Podobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave