Systemy operacyjne oparte na Linuksie i Unixie są podstawą dziedzin bezpieczeństwa informacji, bezpieczeństwa sieci, kryptografii itp. Są one wyposażone w szeroką gamę narzędzi przeznaczonych do celów bezpieczeństwa cybernetycznego.
Przyjrzyjmy się trzem takim narzędziom: Aircrack-ng, Kuba Rozpruwacz i Radare2.
Apartament typu Aircrack-ng
Pakiet Aircrack-ng jest prawdopodobnie najczęściej używanym zestawem narzędzi do wykrywania sieci Wi-Fi i przechwytywania haseł. Służy do łamania haseł do sieci bezprzewodowych protokołu IEEE 802.11, które są w większości chronione przez standardy Wifi Protected Access (WPA) lub Wifi Protected Access 2 (WPA2) i uwierzytelniane metodą uwierzytelniania Pre-Shared Key (PSK).
Oferuje oddzielne programy do monitorowania stanu urządzeń sieciowych, przechwytywania pakietów i zrzucania plików, łamania haseł itp.
Zauważ, że złamanie WPA/WPA2 przy użyciu kryptoalgorytmów zostało uznane przez badaczy za prawie niemożliwe. Dlatego sposobem na złamanie WPA/WPA2 przez programy takie jak aircrack-ng jest Brute Force i wymaga słownika haseł, aby go złamać. Oznacza to, że może złamać hasło tylko wtedy, gdy hasło jest słowem słownikowym.
Możesz łatwo zainstalować Aircrack-ng w swoim systemie za pomocą skryptu instalacyjnego dostarczonego przez packagecloud.io. Otwórz terminal i uruchom następujące polecenia w zależności od typu systemu operacyjnego Linux.
W dystrybucjach opartych na Debianie, uruchom następujące polecenie:
curl -s //packagecloud.io/install/repositories/aircrack-ng/release/script.deb.sh | sudo bash
Dla Red-hat Package Manager (RPM), uruchom następujące polecenie:
curl -s //packagecloud.io/install/repositories/aircrack-ng/release/script.rpm.sh | sudo bash
Teraz spróbujmy złamać hasło lokalnej sieci Wi-Fi za pomocą Aircrack-ng.
Przede wszystkim uruchom polecenie iwconfig
aby znaleźć nazwę interfejsu sieci bezprzewodowej.
iwconfig
Tutaj, wlp2s0
to nazwa mojego interfejsu bezprzewodowego. ESSID, czyli nazwa sieci to „tmp”, czyli nazwa sieci Wifi, z którą jestem połączony.
Użyjemy airmon-ng
polecenie do włączenia interfejsu monitora sieciowego wlp2s0
.
sudo airmon-ng start wlp2s0
Poszukaj linii na końcu, aby znaleźć interfejs trybu monitora. W powyższym przykładzie jest to pon0
. Teraz zaczniemy przechwytywać pakiety sieciowe, uruchamiając airodump-ng
na pon0
.
sudo airodump-ng mon0 -w log
Wyświetla monitor pakietów sieciowych przechwyconych z różnych sieci. ten -w log
część dotyczy zapisywania pakietów sieciowych w plikach dziennika. Prefiksem plików dziennika będzie część określona po -w, w tym przypadku „log”.
Aby program przechwycił klucz skrótu hasła, w sieci musi nastąpić uzgadnianie WPA, tj. użytkownik powinien spróbować się z nią połączyć. Użytkownik może sam odłączyć swoje Wifi i ponownie się z nim połączyć. W prawym górnym rogu teraz informuje, że uścisk dłoni WPA został przechwycony.
Teraz naciśnij Ctrl + C
zakończyć zrzut. Możesz zobaczyć wygenerowane pliki dziennika w bieżącym folderze.
Następnym i ostatnim krokiem jest uruchomienie aircrack-ng ze słownikiem, aby zobaczyć, które słowo pasuje do przechwyconego klucza mieszającego z uścisku dłoni.
aircrack-ng log-01.cap -w tmpdict.txt
Tutaj log-01.cap czy plik dziennika jest generowany przez airodump-ng
polecenie i tmpdict.txt to plik słownika. Kilka dużych słowników jest dostępnych online, które można pobrać i używać tutaj.
Aby wybrać sieć docelową, wprowadź numer indeksu sieci z listy sieci pokazanej na ekranie.
Jeśli klucz zostanie dopasowany ze słownika, zatrzyma się i wyświetli następujący komunikat.
Oczywistym jest, że w przypadku większych plików słownikowych uruchomienie programu zajmie więcej czasu, ponieważ sprawdza każdy wpis w słowniku.
Jak wspomniano wcześniej, hasło można złamać tylko wtedy, gdy znajduje się w pliku słownika. Zabezpieczenie WPA jest na tyle silne, że użycie dowolnego algorytmu kryptograficznego nie umożliwi złamania hasła. Dlatego dobrą praktyką jest posiadanie silnego, długiego hasła z wieloma znakami specjalnymi na urządzeniu Wi-Fi, tak aby wszelkie działania związane z łamaniem haseł nigdy się nie powiodły.
Jan Rozpruwacz
John the Ripper to narzędzie używane do łamania słabych haseł Unix. Jest to bardzo łatwe w użyciu narzędzie wywoływane w plikach haseł. Działa w trzech trybach.
Tryb pojedyńczy
Sprawdza wszystkie pola GECOS pod kątem hasła, tj. Sprawdź hasło w informacjach o koncie użytkownika; nazwa użytkownika, imię, nazwisko itp.
sudo john -- pojedynczy /etc/shadow
Tryb listy słów
Sprawdza hasło przy każdym wpisie z pliku listy słów (słownika).
sudo john --wordlist=passlist.txt /etc/shadow
Tutaj hasło użytkownika „user3” to „admin”. John był w stanie go złamać, ponieważ fraza „admin” była obecna w pliku passlist.txt.
Tryb przyrostowy
Sprawdź wszystkie możliwe kombinacje dla skonfigurowanego zakresu. Domyślnie uwzględnia wszystkie znaki w zestawie znaków ASCII i wszystkie długości od 0 do 13. Nie trzeba dodawać, że w zależności od skonfigurowanego zakresu, ten tryb może zająć dużo czasu.
Konfigurację do tego można zmienić w /etc/john/john.conf
plik.
sudo john -- przyrostowe /etc/shadow
Radar2
Radare2 (alias r2) to narzędzie do inżynierii wstecznej dla Linuksa. Może deasemblować, debugować wykonywalny plik binarny, z ogromną listą opcji do manipulowania danymi w czasie wykonywania.
Zobaczmy, jak zdeasemblować bardzo mały program w C za pomocą r2. Zauważ, że do używania narzędzia wymagane jest podstawowe zrozumienie języka asemblera.
Najpierw utwórz mały program w C w vimie lub dowolnym edytorze.
/*test.c*/ #include int main() { int i = 0; printf("%d\n", i); zwróć 0; }
Jak widać, wszystko, co robi ten program, to przechowywanie cyfry 0 w zmiennej i dostęp do zmiennej, aby ją wydrukować.
Teraz skompilujemy program.
gcc test.c -o test
W bieżącym katalogu tworzony jest plik wykonywalny o nazwie „test”. Uruchom go, aby zobaczyć wyjście „0”.
./test
Zainstalujmy teraz r2. Nazwa pakietu w Ubuntu i podobnych dystrybucjach to radare2.
sudo apt zainstaluj radare2
Notatka: W przypadku starszych wersji Ubuntu (wersja 14.04 i starsza) musisz użyć apt-get
powinno być używane zamiast trafny
.
Uruchomimy teraz wiersz polecenia r2 z naszym plikiem wykonywalnym „test”.
test r2
Aby uzyskać listę podkomend, wpisz ?
. Np. aby uzyskać listę podkomend dla polecenia a
, Wchodzić a?
a?
Uruchomimy podkomendę aaa
, który przeanalizuje cały plik binarny. Nic nie wypisze. Ale po przeanalizowaniu pliku binarnego możemy użyć P?
podkomendy do demontażu kodu.
Następnie przechodzimy do Główny
funkcja programu. Każdy wykonywalny program C ma Główny
funkcjonować jako jego punkt wyjścia.
s główny
Widać, że prefiks zachęty zmienił aktualny adres pamięci, tzn. program jest teraz wyszukiwany pod adresem funkcji Główny
.
Następnie używamy podkomendy pdf
, który wypisze deasemblację funkcji. Nazywamy to z sym.main
, która jest nazwą głównej funkcji w asemblerze.
pdf sym.main
Jak widać na powyższym zrzucie ekranu, mamy kompletny demontaż naszego programu w C. Możemy teraz przeanalizować, co robi program, czytając asembler.
Na przykład, mov dword [rbp-0x4], 0x0
to przypisanie wartości (0) do komórki pamięci rbp – wskaźnik bazowy, 0x4 — Rozmiar pamięci wymagany dla liczby całkowitej.
Mamy zadzwoń do sym.imp.printf
, który wypisze zawartość rejestru tak
, czyli wartość 0.
Istnieje wiele innych opcji manipulowania i debugowania przepływu programu w r2. Możesz wypróbować inne opcje, które są pokazane za pomocą ?
Komenda. Aby zapisać dane wyjściowe dziennika lub dezasemblacji do pliku, możesz przesłać dane wyjściowe w następujący sposób:
pdf główna > główna.s
To był przegląd niektórych z najczęściej używanych narzędzi hakerskich w Linuksie. Jeśli uznałeś tę stronę za pomocną, udostępnij ją w swoich ulubionych społecznościach internetowych.