Деталі електронної книги

Kali Linux i testy penetracyjne. Biblia

Kali Linux i testy penetracyjne. Biblia

Gus Khawaja

Eлектронна книга

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!

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
  • 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
  • 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
  • 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
  • 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ń
  • Ł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
  • 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
  • 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
  • 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)
  • Protokoły współdzielenia plików
    • SMB (port 445)
      • Atak typu brute force na SMB
    • SNMP (port UDP 161)
      • Wyliczanie SNMP
  • 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
  • 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
  • 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
  • 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
  • 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
  • Plik sudoers
    • Eskalacja uprawnień z wykorzystaniem sudo
      • Wykorzystanie polecenia Find
      • Edycja pliku sudoers
  • 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
  • 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
  • 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
  • Ł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
  • 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
  • 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
  • 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
  • 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
  • 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

  • Назва: Kali Linux i testy penetracyjne. Biblia
  • Автор: Gus Khawaja
  • Оригінальна назва: Kali Linux Penetration Testing Bible
  • Переклад: Grzegorz Kowalczyk
  • ISBN: 978-83-283-9008-9, 9788328390089
  • Дата видання: 2022-10-31
  • Формат: Eлектронна книга
  • Ідентифікатор видання: kalibi
  • Видавець: Helion