Kali Linux i testy penetracyjne. Biblia - ebook
Kali Linux i testy penetracyjne. Biblia - ebook
Najlepszą metodą unikania udanego cyberataku jest utrzymywanie w gotowości zabezpieczeń systemowych. Szczególna rola na tym polu przypada pentesterom, którzy używając tych samych technik co napastnicy, wyszukują podatności i przełamują zabezpieczenia. To pozwala lepiej dostroić działanie mechanizmów obronnych. Ulubionym systemem pentesterów jest Kali - popularna i potężna dystrybucja Linuxa. Zawiera ona przebogatą bibliotekę narzędzi służących do przeprowadzania testów penetracyjnych, analiz informatyki śledczej i inżynierii wstecznej.
Ta książka jest praktycznym i wyczerpującym przewodnikiem, dzięki któremu w pełni wykorzystasz możliwości Kali Linux. Opisano w niej wiele interesujących zagadnień związanych z przeprowadzaniem testów penetracyjnych. Dowiesz się, jak zbudować nowoczesne środowisko testowe z użyciem kontenerów Docker, przyswoisz podstawy języka powłoki bash, nauczysz się wyszukiwania podatności i luk w zabezpieczeniach, a także identyfikacji podatności fałszywie pozytywnych. Od strony praktycznej poznasz metodologię pentestów. Znajdziesz tu również wskazówki, jak używać Pythona do automatyzacji testów penetracyjnych. W przewodniku nie zabrakło bardziej zaawansowanych zagadnień, takich jak przepełnienie bufora, eskalacja uprawnień i wiele innych.
W książce:
- przygotowanie laboratorium
- podstawy języka powłoki bash
- wyszukiwanie podatności i luk w zabezpieczeniach
- zaawansowane techniki ataku, w tym przepełnienie bufora i eskalacja uprawnień
- metodologia przeprowadzania testów penetracyjnych
- nowoczesny cykl tworzenia bezpiecznych aplikacji internetowych
- automatyzacja testów penetracyjnych za pomocą Pythona
Chcesz się skutecznie obronić? Poznaj techniki ataku!
Spis treści
O autorze
O korektorze merytorycznym
Podziękowania
Wstęp
Rozdział 1. Praca z oknem terminala
- System plików w Kali Linux
- Podstawowe polecenia okna terminala
- Okno terminala Tmux
- Uruchamianie terminala Tmux
- Skróty klawiszowe w oknie terminala Tmux
- Zarządzanie sesjami terminala Tmux
- Nawigacja wewnątrz okna terminala Tmux
- Opis poleceń terminala Tmux
- Zarządzanie użytkownikami i grupami w systemie Kali Linux
- Polecenia związane z zarządzaniem użytkownikami
- Polecenia związane z zarządzaniem grupami
- Zarządzanie hasłami w systemie Kali Linux
- Zarządzanie plikami i katalogami w systemie Kali Linux
- Wyświetlanie plików i folderów
- Prawa dostępu
- Operacje na plikach w systemie Kali Linux
- Wyszukiwanie plików
- Kompresowanie plików
- Operowanie na katalogach w systemie Kali Linux
- Montowanie katalogów
- Praca z plikami tekstowymi w systemie Kali Linux
- Edytor vim kontra nano
- Wyszukiwanie i filtrowanie tekstu
- Połączenia z systemami zdalnymi
- Protokół RDP
- Secure Shell
- Połączenie SSH z danymi uwierzytelniającymi
- Połączenia SSH bez używania hasła
- Zarządzanie systemem Kali Linux
- Informacje o nazwie hosta systemu Linux
- Informacje o systemie operacyjnym Linux
- Informacje o sprzęcie
- Zarządzanie usługami
- Zarządzanie pakietami
- Zarządzanie procesami
- Połączenia sieciowe w systemie Kali Linux
- Interfejs sieciowy
- Zakresy adresów prywatnych IPv4
- Statyczne adresy IP
- DNS
- Wyświetlanie listy aktywnych połączeń
- Przesyłanie plików
- Interfejs sieciowy
- Podsumowanie
Rozdział 2. Skrypty powłoki bash
- Tworzenie prostych skryptów powłoki bash
- Wyświetlanie informacji i danych na ekranie
- Zmienne
- Zmienne zawierające polecenia
- Parametry wywołania skryptów
- Dane wejściowe wprowadzane przez użytkownika
- Funkcje
- Instrukcje warunkowe i pętle
- Instrukcje warunkowe
- Pętle
- Iteracje po plikach
- Podsumowanie
Rozdział 3. Skanowanie hostów sieciowych
- Podstawy działania sieci
- Protokoły sieciowe
- TCP
- UDP
- Inne protokoły sieciowe
- Adresowanie IP
- IPv4
- Podsieci i notacja CIDR
- IPv6
- Numery portów
- Protokoły sieciowe
- Skanowanie sieci
- Identyfikacja aktywnych hostów w sieci
- Ping
- ARP
- Nmap
- Skanowanie portów i identyfikacja usług
- Skanowanie portów - TCP SYN Scan
- Skanowanie portów - UDP Scan
- Podstawy skanowania z użyciem programu Nmap
- Identyfikacja usług
- OS Fingerprinting - identyfikacja systemu operacyjnego
- Silnik skryptowy skanera Nmap
- NSE Category Scan
- Argumenty wywołania skryptów NSE
- Identyfikacja aktywnych hostów w sieci
- Wyliczanie DNS
- DNS brute force
- Transfer stref DNS
- Narzędzia do wyszukiwania subdomen DNS
- Pakiet Fierce
- Podsumowanie
Rozdział 4. Zbieranie informacji z internetu
- Pasywne zbieranie informacji i rekonesans
- Wyszukiwarki internetowe
- Wyszukiwarka Shodan
- Zapytania Google
- Zbieranie informacji przy użyciu systemu Kali Linux
- Baza danych Whois
- TheHarvester
- DMitry
- Maltego
- Wyszukiwarki internetowe
- Podsumowanie
Rozdział 5. Ataki socjotechniczne
- Ataki typu spear phishing
- Wysyłanie wiadomości e-mail
- Pakiet SET
- Wysyłanie wiadomości e-mail przy użyciu języka Python
- Kradzież poświadczeń
- Wysyłanie wiadomości e-mail
- Ładunki i procesy nasłuchujące
- Czym się różni powłoka Bind Shell od Reverse Shell
- Powłoka dowiązana (Bind Shell)
- Powłoka odwrócona (Reverse Shell)
- Tworzenie połączenia typu Reverse Shell za pomocą pakietu SET
- Czym się różni powłoka Bind Shell od Reverse Shell
- Ataki socjotechniczne z wykorzystaniem klucza USB Rubber Ducky
- Praktyczny przykład nawiązania połączenia Reverse Shell z wykorzystaniem klucza USB Rubber Ducky i powłoki PowerShell
- Generowanie skryptu powłoki PowerShell
- Uruchamianie listenera
- Hostowanie skryptu powłoki PowerShell
- Uruchomienie powłoki PowerShell
- Pobieranie i uruchamianie skryptu powłoki PowerShell
- Odwrócona powłoka
- Replikacja ataku przy użyciu klucza USB Rubber Ducky
- Podsumowanie
Rozdział 6. Zaawansowane wyszukiwanie usług sieciowych
- Protokoły przesyłania plików
- FTP (port 21)
- Scenariusze ataków na serwer FTP
- Jak wyszukiwać działające usługi sieciowe?
- Skanowanie w poszukiwaniu usług
- Zaawansowane skanowanie z wykorzystaniem skryptów Nmapa
- Inne rodzaje ataków typu brute force
- SSH (port 22)
- Scenariusze ataków na serwer SSH
- Zaawansowane skanowanie z wykorzystaniem skryptów Nmapa
- Atak brute force na SSH za pomocą pakietu Hydra
- Zaawansowane ataki typu brute force
- Telnet (port 23)
- Scenariusze ataków na serwer Telnet
- Wykrywanie i identyfikacja usługi telnet
- Skanowanie w poszukiwaniu usługi
- Zaawansowane skanowanie z wykorzystaniem skryptów Nmapa
- Atak brute force za pomocą pakietu Hydra
- FTP (port 21)
- Protokoły poczty elektronicznej
- Protokół SMTP (port 25)
- Podstawowe skanowanie Nmapem
- Zaawansowane skanowanie z użyciem skryptów Nmapa
- Wyliczanie użytkowników
- Protokoły POP3 (Port 110) i IMAP4 (Port 143)
- Atak brute force na konta e-mail POP3
- Protokół SMTP (port 25)
- Protokoły baz danych
- Microsoft SQL Server (port 1433)
- Serwer bazy danych Oracle (port 1521)
- Baza danych MySQL (port 3306)
- Protokoły CI/CD
- Docker (port 2375)
- Jenkins (Port 8080/50000)
- Atak brute force na portal WWW przy użyciu Hydry
- Krok 1 - ustaw proxy
- Krok 2 - przechwytywanie żądania logowania
- Krok 3 - wyciąganie danych z formularza i atak brute force za pomocą Hydry
- Protokoły sieciowe na portach 80/443
- Protokoły wykorzystywane do zdalnych połączeń GUI
- RDP (port 3389)
- Atak typu brute force na usługę RDP
- VNC (Port 5900)
- RDP (port 3389)
- Protokoły współdzielenia plików
- SMB (port 445)
- Atak typu brute force na SMB
- SNMP (port UDP 161)
- Wyliczanie SNMP
- SMB (port 445)
- Podsumowanie
Rozdział 7. Faza eksploracji
- Ocena podatności
- Przebieg procesu oceny podatności
- Skanowanie podatności za pomocą pakietu OpenVAS
- Instalacja pakietu OpenVAS
- Skanowanie przy użyciu OpenVAS
- Wyszukiwanie exploitów
- SearchSploit
- Wykorzystywanie podatności i luk w zabezpieczeniach usług
- Wykorzystywanie podatności usługi FTP
- Logowanie do serwera FTP
- Zdalne wykonanie kodu
- Wywoływanie sesji powłoki
- Wykorzystywanie podatności usługi SSH
- Logowanie do SSH
- Wykorzystywanie podatności usługi Telnet
- Logowanie przez telnet
- Wyszukiwanie informacji przesyłanych otwartym tekstem
- Wykorzystywanie podatności serwera poczty elektronicznej
- Wykorzystywanie podatności Dockera
- Testowanie połączenia z Dockerem
- Tworzenie nowego zdalnego kontenera Kali
- Uruchamianie powłoki w kontenerze Kali
- Wykorzystywanie podatności hosta Docker
- Wykorzystywanie podatności Jenkinsa
- Odwrócone powłoki
- Wykorzystanie powłok z pakietu Metasploit
- Wykorzystywanie podatności protokołu SMB
- Uzyskiwanie dostępu do udziałów SMB
- Exploit SMB Eternal Blue
- Wykorzystywanie podatności usługi FTP
- Podsumowanie
Rozdział 8. Podatności i luki w zabezpieczeniach aplikacji internetowych
- Podatności w aplikacjach internetowych
- Instalacja pakietu Mutillidae
- Instalacja serwera WWW Apache
- Konfiguracja zapory sieciowej
- Instalacja PHP
- Instalacja i konfiguracja bazy danych
- Instalacja pakietu Mutillidae
- Podatności typu XSS (Cross-Site Scripting)
- Podatność typu Reflected XSS
- Podatność typu Stored XSS
- Wykorzystywanie podatności XSS przy użyciu nagłówka
- Omijanie walidacji w skryptach JavaScript
- Wstrzykiwanie kodu SQL
- Zapytania do bazy danych
- Obchodzenie strony logowania
- Wykonywanie poleceń w bazie danych za pomocą SQLi
- Automatyzacja wstrzykiwania kodu SQL za pomocą programu SQLMap
- Testowanie podatności na ataki SQL Injection
- Wstrzykiwanie poleceń
- Podatność na dołączanie plików
- LFI - dołączanie plików lokalnych
- RFI - dołączanie plików zdalnych
- Podatności typu CSRF
- Przebieg ataku z punktu widzenia napastnika
- Przebieg ataku z punktu widzenia ofiary
- Przesyłanie plików
- Proste przesyłanie plików
- Omijanie walidacji
- Kodowanie
- Lista OWASP Top 10
- Instalacja pakietu Mutillidae
- Podsumowanie
Rozdział 9. Testy penetracyjne aplikacji sieciowych i cykl tworzenia bezpiecznego oprogramowania
- Wyszukiwanie i wykorzystywanie podatności aplikacji sieciowych
- Burp Suite Pro
- Testy penetracyjne aplikacji sieciowych z użyciem pakietu Burp Suite
- Jeszcze więcej wyliczania
- Nmap
- Crawling
- Ocena podatności na zagrożenia
- Lista kontrolna wspomagająca przeprowadzanie testów penetracyjnych aplikacji sieciowych
- Wspólna lista kontrolna
- Lista kontrolna dla stron specjalnych
- Burp Suite Pro
- SDLC - cykl tworzenia i rozwoju bezpiecznego oprogramowania
- Faza analizy i planowania
- Modelowanie zagrożeń aplikacji
- Aktywa
- Punkty wejścia
- Elementy i podmioty trzecie
- Poziomy zaufania
- Diagram przepływu danych
- Faza tworzenia/rozwoju
- Faza testowania
- Wdrożenie w środowisku produkcyjnym
- Faza analizy i planowania
- Podsumowanie
Rozdział 10. Eskalacja uprawnień w systemie Linux
- Wprowadzenie do exploitów jądra systemu i błędów w konfiguracji
- Exploity jądra systemu
- Exploit jądra - Dirty Cow
- Wykorzystywanie uprawnienia SUID
- Nadpisywanie pliku passwd
- CRON - eskalacja uprawnień zadań
- Podstawy CRON
- Crontab
- Anacrontab
- Wyliczanie zadań i wykorzystywanie podatności CRON-a
- Podstawy CRON
- Plik sudoers
- Eskalacja uprawnień z wykorzystaniem sudo
- Wykorzystanie polecenia Find
- Edycja pliku sudoers
- Eskalacja uprawnień z wykorzystaniem sudo
- Wykorzystywanie działających usług
- Zautomatyzowane skrypty
- Podsumowanie
Rozdział 11. Eskalacja uprawnień w systemie Windows
- Pozyskiwanie informacji o systemie Windows
- Informacje o systemie
- Architektura systemu Windows
- Wyświetlanie listy napędów dyskowych
- Lista zainstalowanych aktualizacji
- Whoami, czyli kim jestem?
- Lista użytkowników i grup
- Informacje o sieci
- Wyświetlanie niepoprawnych (słabych) uprawnień
- Wyświetlanie listy zainstalowanych programów
- Wyświetlanie listy zadań i procesów
- Przesyłanie plików
- Cel - komputer z systemem Windows
- Cel - komputer z systemem Linux
- Wykorzystywanie podatności i luk w zabezpieczeniach systemu Windows
- Exploity dla jądra systemu Windows
- Sprawdzanie wersji systemu operacyjnego
- Wyszukiwanie odpowiedniego exploita
- Uruchamianie exploita i uzyskanie powłoki na prawach administratora
- Eskalacja uprawnień - magia Metasploita
- Wykorzystywanie podatności i luk w zabezpieczeniach aplikacji Windows
- Uruchamianie poleceń w kontekście innego użytkownika systemu Windows
- Program PSExec
- Wykorzystywanie podatności i luk w zabezpieczeniach usług w systemie Windows
- Interakcja z usługami Windows
- Nieprawidłowo skonfigurowane uprawnienia usług
- Nadpisywanie pliku wykonywalnego usługi
- Niepoprawnie skonfigurowana ścieżka usługi
- Nieprawidłowe uprawnienia w rejestrze
- Wykorzystywanie podatności i luk w zabezpieczeniach zaplanowanych zadań
- Zautomatyzowane narzędzia wspomagające eskalację uprawnień
- PowerUp
- WinPEAS
- Exploity dla jądra systemu Windows
- Podsumowanie
Rozdział 12. Pivoting i ruch poprzeczny
- Wyodrębnianie skrótów haseł w systemie Windows
- Skróty NTLM haseł w systemie Windows
- Plik SAM i wyodrębnianie skrótów haseł
- Korzystanie ze skrótów haseł
- Mimikatz
- Pobieranie skrótów haseł z Active Directory
- Ponowne wykorzystanie haseł i ich skrótów
- Atak z przekazywaniem skrótu hasła
- Skróty NTLM haseł w systemie Windows
- Pivoting z przekierowywaniem portów
- Koncepcje przekierowywania portów
- Tunelowanie SSH i lokalne przekierowywanie portów
- Przekierowywanie portów zdalnych przy użyciu SSH
- Dynamiczne przekierowywanie portów
- Dynamiczne przekierowywanie portów przy użyciu SSH
- Podsumowanie
Rozdział 13. Kryptografia i łamanie skrótów haseł
- Podstawy kryptografii
- Podstawy haszowania
- Jednokierunkowe funkcje skrótu
- Zastosowania funkcji skrótu
- Algorytmy haszujące
- Algorytm MD5
- Algorytm SHA
- Haszowanie haseł
- Zabezpieczanie haseł za pomocą haszowania
- Algorytm HMAC
- Podstawy szyfrowania
- Szyfrowanie symetryczne
- Algorytm AES
- Szyfrowanie asymetryczne
- Algorytm RSA
- Podstawy haszowania
- Łamanie haseł za pomocą programu Hashcat
- Testowanie wydajności
- Łamanie haszy w praktyce
- Tryby ataku
- Tryb prosty
- Atak kombinatoryczny
- Maski i ataki typu brute force
- Ataki typu brute force
- Ataki hybrydowe
- Łamanie skrótów - jak to wygląda w praktyce
- Podsumowanie
Rozdział 14. Raportowanie
- Znaczenie raportów w testach penetracyjnych
- Ocena poziomu krytyczności podatności i luk w zabezpieczeniach
- CVSS v3.1 - otwarty system oceny podatności na zagrożenia
- Prezentacja raportu
- Strona tytułowa
- Dzienniki zmian
- Podsumowanie raportu
- Sekcja podatności
- Podsumowanie
Rozdział 15. Język asembler i inżynieria odwrotna
- Rejestry procesora
- Rejestry ogólnego przeznaczenia
- Rejestry indeksowe
- Rejestry wskaźnikowe
- Rejestry segmentów
- Rejestr flag
- Instrukcje języka asembler
- Kolejność bajtów - little endian
- Typy danych
- Segmenty pamięci
- Tryby adresowania
- Przykład inżynierii odwrotnej
- Pakiet Visual Studio Code dla języka C/C++
- Pakiet Immunity Debugger do inżynierii odwrotnej
- Podsumowanie
Rozdział 16. Przepełnienia bufora i stosu
- Jak działa przepełnienie stosu?
- Jak działa stos?
- Instrukcja PUSH
- Instrukcja POP
- Przykład programu w języku C
- Analiza bufora za pomocą programu Immunity Debugger
- Przepełnienie stosu
- Mechanizm przepełnienia stosu
- Jak działa stos?
- Wykorzystywanie podatności na przepełnienie stosu
- Wyposażenie naszego laboratorium
- Aplikacja podatna na przepełnienie bufora
- Faza 1. Testowanie
- Testowanie szczęśliwej ścieżki
- Testowanie awarii serwera
- Faza 2. Rozmiar bufora
- Tworzenie wzorca
- Lokalizacja przesunięcia
- Faza 3. Sterowanie wskaźnikiem EIP
- Dodawanie instrukcji JMP
- Faza 4. Wstrzyknięcie ładunku i uzyskanie zdalnej powłoki
- Generowanie ładunku
- Niepoprawne znaki
- Shellcode w skrypcie Pythona
- Wyposażenie naszego laboratorium
- Podsumowanie
Rozdział 17. Programowanie w języku Python
- Podstawy języka Python
- Uruchamianie skryptów języka Python
- Debugowanie skryptów w języku Python
- Instalowanie pakietu Visual Studio Code w systemie Kali Linux
- Programowanie w języku Python
- Podstawowa składnia poleceń języka Python
- Wiersz shebang w języku Python
- Komentarze w języku Python
- Wcięcia wierszy i importowanie modułów
- Wprowadzanie danych i wyświetlanie informacji na ekranie
- Wyświetlanie argumentów przekazanych w wierszu wywołania
- Zmienne
- Zmienne numeryczne
- Operatory arytmetyczne
- Ciągi znaków
- Formatowanie ciągów znaków
- Funkcje tekstowe
- Listy
- Odczytywanie wartości z listy
- Aktualizowanie elementów listy
- Usuwanie elementów listy
- Krotki
- Słowniki
- Inne techniki programowania w języku Python
- Funkcje
- Zwracanie wartości
- Argumenty opcjonalne
- Zmienne globalne
- Zmiana wartości zmiennych globalnych
- Instrukcje warunkowe
- Instrukcja if-else
- Operatory porównania
- Pętle
- Pętla while
- Pętla for
- Zarządzanie plikami
- Obsługa wyjątków
- Znaki specjalne
- Niestandardowe obiekty w języku Python
- Funkcje
- Podsumowanie
Rozdział 18. Automatyzacja testów penetracyjnych za pomocą Pythona
- Program Pentest Robot
- Sposób działania aplikacji
- Pakiety dla języka Python
- Uruchamianie aplikacji
- Walidacja danych wejściowych
- Refaktoryzacja kodu
- Skanowanie w poszukiwaniu aktywnych hostów
- Skanowanie portów i usług
- Atak na dane uwierzytelniające i zapisywanie wyników działania
- Sposób działania aplikacji
- Podsumowanie
Dodatek A. Kali Linux Desktop w skrócie
- Pobieranie i uruchamianie maszyny wirtualnej z systemem Kali Linux
- Pierwsze uruchomienie maszyny wirtualnej
- Pulpit środowiska Xfce w systemie Kali Linux
- Menu interfejsu graficznego Xfce w systemie Kali Linux
- Pasek wyszukiwania
- Menu Favorites
- Menu Usual Applications
- Inne polecenia menu
- Menedżer ustawień środowiska Xfce
- Zaawansowana konfiguracja ustawień sieci
- Okno Appearance
- Okno Desktop
- Okno Display
- File Manager
- Okno Keyboard
- Okno MIME Type Editor
- Okno Mouse and Touchpad
- Panel górny
- Okno Workspaces
- Okno Window Manager
- Praktyczny przykład dostosowywania pulpitu do własnych potrzeb
- Edycja górnego panelu
- Dodawanie nowego panelu dolnego
- Zmiana wyglądu pulpitu
- Instalowanie systemu Kali Linux od podstaw
- Menu interfejsu graficznego Xfce w systemie Kali Linux
- Podsumowanie
Dodatek B. Tworzenie środowiska laboratoryjnego przy użyciu Dockera
- Technologia Docker
- Podstawy pracy z Dockerem
- Instalacja Dockera
- Obrazy i rejestry obrazów
- Kontenery
- Dockerfile
- Woluminy
- Praca w sieci
- Kontener Mutillidae
- Podsumowanie
Skorowidz
Kategoria: | Systemy operacyjne |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-9008-9 |
Rozmiar pliku: | 32 MB |