Spis treści

Transkrypt

Spis treści
Spis treści
Słowo wstępne
Podziękowania
Wprowadzenie
Kilka słów podziękowania
Kilka słów o książce
Część I. Podstawy
Część II. Przygotowania
Część III. Ataki
Część IV. Tworzenie exploitów
Część V. Ataki na urządzenia mobilne
0. Elementarz testów penetracyjnych
Etapy testów penetracyjnych
Faza wstępna
Zbieranie informacji
Mapowanie zagrożeń
Wykrywanie i analiza podatności
Atak
Powłamaniowa eksploracja skompromitowanego systemu
Raportowanie
Podsumowanie
I. PODSTAWY
1. Tworzenie wirtualnego środowiska testowego
Instalowanie pakietu VMware
Instalacja i konfiguracja systemu Kali Linux
Konfiguracja połączeń sieciowych maszyny wirtualnej
Instalowanie pakietu Nessus
Instalowanie dodatkowych pakietów oprogramowania
Instalowanie emulatorów systemu Android
SPF - Smartphone Pentest Framework
Instalacja wirtualnych celów ataku
Tworzenie maszyny-celu z systemem Windows XP
Poware Player w systemie Microsoft Windows
VMware Fusion w systemie Mac OS
Instalowanie i aktywacja systemu Windows
Instalowanie pakietu VMware Tools
Wyłączanie zapory sieciowej systemu Windows XP
Ustawianie haseł dla kont użytkowników
Ustawianie statycznego adresu IP
Konfiguracja systemu Windows XP do pracy jak w domenie
Instalowanie oprogramowania podatnego na ataki
Instalowanie pakietów Immunity Debugger oraz Mona
Tworzenie maszyny-celu z systemem Ubuntu 8.10
Tworzenie maszyny-celu z systemem Windows 7
Tworzenie konta użytkownika
Wyłączanie automatycznego instalowania aktualizacji
Ustawianie statycznego adresu IP
Dodawanie kolejnego interfejsu sieciowego
Instalowanie dodatkowego oprogramowania
Podsumowanie
2. Praca z systemem Kali Linux
Wiersz poleceń systemu Linux
System plików w Linuksie
Zmiana katalogów
Dokumentacja poleceń - strony podręcznika man
Uprawnienia użytkowników
Dodawanie kont użytkowników
Dodawanie konta użytkownika do pliku sudoers
Przełączanie kont użytkowników i korzystanie z polecenia sudo
Tworzenie nowych plików i katalogów
Kopiowanie, przenoszenie i usuwanie plików
Dodawanie tekstu do pliku
Dołączanie tekstu do pliku
Prawa dostępu do plików
Edytowanie plików
Wyszukiwanie tekstu
Edytowanie plików przy użyciu edytora vi
Przetwarzanie danych
Zastosowanie polecenia grep
Zastosowanie polecenia sed
Dopasowywanie wzorców za pomocą polecenia awk
Zarządzanie zainstalowanymi pakietami oprogramowania
Procesy i usługi
Zarządzanie połączeniami sieciowymi
Ustawianie statycznego adresu IP
Przeglądanie połączeń sieciowych
Netcat - uniwersalne narzędzie do połączeń TCP/IP
Sprawdzanie, czy system zdalny nasłuchuje na danym porcie
"Wypychanie" powłoki do procesu nasłuchującego
Automatyzacja zadań za pomocą procesu cron
Podsumowanie
3. Programowanie
Skrypty powłoki bash
Polecenie ping
Prosty skrypt powłoki bash
Uruchamianie skryptu
Dodawanie nowych możliwości za pomocą polecenia if
Pętla for
Zwiększanie przejrzystości wyników działania
Skrypty w języku Python
Łączenie z wybranym portem sieciowym
Instrukcja if w języku Python
Pisanie i kompilowanie programów w języku C
Podsumowanie
4. Pakiet Metasploit Framework
Uruchamianie pakietu Metasploit
Wyszukiwanie modułów pakietu Metasploit
Baza modułów pakietu Metasploit
Wbudowane polecenie search
Ustawianie opcji modułu exploita
Opcja RHOST
Opcja RPORT
Opcja SMBPIPE
Opcja Exploit Target
Ładunki (kod powłoki)
Wyszukiwanie kompatybilnych ładunków
Przebieg testowy
Rodzaje powłok
Bind shell
Reverse shell
Ręczne wybieranie ładunku
Interfejs wiersza poleceń Msfcli
Uzyskiwanie pomocy
Wyświetlanie opcji
Ładunki
Tworzenie samodzielnych ładunków za pomocą narzędzia Msfvenom
Wybieranie ładunku
Ustawianie opcji
Wybieranie formatu ładunku
Dostarczanie ładunków
Zastosowanie modułu multi/handler
Zastosowanie dodatkowych modułów
Podsumowanie
II. PRZYGOTOWANIA
5. Zbieranie informacji
OSINT - biały wywiad
Netcraft
Zapytania whois
Zapytania DNS
Poszukiwanie adresów poczty elektronicznej
Maltego
Skanowanie portów
Ręczne skanowanie portów
Skanowanie portów przy użyciu programu Nmap
Podsumowanie
6. Wyszukiwanie podatności i luk w zabezpieczeniach
Od skanu z detekcją wersji do wykrycia potencjalnej luki w zabezpieczeniach
Nessus
Karta Policies - tworzenie polityki skanowania Nessusa
Skanowanie za pomocą Nessusa
Kilka słów na temat rankingu podatności i luk w zabezpieczeniach
Dlaczego powinieneś używać skanerów podatności?
Eksportowanie wyników skanowania
Odkrywanie podatności i luk w zabezpieczeniach
NSE - Nmap Scripting Engine
Uruchamianie wybranego skryptu NSE
Moduły skanerów pakietu Metasploit
Sprawdzanie podatności na exploity za pomocą polecenia check pakietu Metasploit
Skanowanie aplikacji internetowych
Pakiet Nikto
Ataki na pakiet XAMPP
Poświadczenia domyślne
Samodzielna analiza podatności
Eksploracja nietypowych portów
Wyszukiwanie nazw kont użytkowników
Podsumowanie
7. Przechwytywanie ruchu sieciowego
Przechwytywanie ruchu w sieci
Zastosowanie programu Wireshark
Przechwytywanie ruchu sieciowego
Filtrowanie ruchu sieciowego
Rekonstruowanie sesji TCP
Analiza zawartości pakietów
Ataki typu ARP Cache Poisoning
Podstawy protokołu ARP
Przekazywanie pakietów IP
Zatruwanie tablicy ARP przy użyciu polecenia arpspoof
Zastosowanie zatruwania tablic ARP do podszywania się pod domyślną bramę sieciową
Ataki typu DNS Cache Poisoning
Zatruwanie DNS - podstawy
Zatruwanie DNS przy użyciu polecenia dnsspoof
Ataki SSL
SSL - podstawy
Zastosowanie programu Ettercap do przeprowadzania ataków SSL MiTM
Ataki typu SSL Stripping
Zastosowanie programu SSLstrip
Podsumowanie
III. ATAKI
8. Eksploracja środowiska celu
Powracamy do luki MS08-067
Ładunki Metasploita
Meterpreter
Wykorzystywanie domyślnych poświadczeń logowania w dodatku WebDAV
Uruchamianie skryptów na atakowanym serwerze WWW
Kopiowanie ładunku przygotowanego za pomocą programu Msfvenom
Wykorzystywanie otwartej konsoli phpMyAdmin
Pobieranie plików za pomocą TFTP
Pobieranie wrażliwych plików
Pobieranie pliku konfiguracyjnego
Pobieranie pliku Windows SAM
Wykorzystywanie błędów przepełnienia bufora w innych aplikacjach
Wykorzystywanie luk w zabezpieczeniach innych aplikacji internetowych
Wykorzystywanie luk w zabezpieczeniach usług
Wykorzystywanie otwartych udziałów NFS
Podsumowanie
9. Ataki na hasła
Zarządzanie hasłami
Ataki typu online
Listy haseł
Odnajdowanie nazw kont użytkowników i haseł przy użyciu programu Hydra
Ataki typu offline
Odzyskiwanie haszy haseł systemu Windows z pliku SAM
Pozyskiwanie zahaszowanych haseł z wykorzystaniem fizycznego dostępu do systemu
Algorytm LM kontra NTLM
Problem z haszami haseł w formacie LM
John the Ripper
Łamanie haseł systemu Linux
Łamanie haseł przechowywanych w plikach konfiguracyjnych
Tęczowe tablice
Usługi łamania haseł dostępne w sieci
Pozyskiwanie haseł z pamięci operacyjnej za pomocą programu Windows Credentials
Editor
Podsumowanie
10. Wykorzystywanie luk w zabezpieczeniach po stronie klienta
Omijanie filtrowania za pomocą ładunków pakietu Metasploit
Ładunek AllPorts
Ładunki HTTP i HTTPS
Ataki po stronie klienta
Luki w zabezpieczeniach przeglądarek sieciowych
Exploity dla plików PDF
Luki w zabezpieczeniach środowiska Java
Moduł browser_autopwn
Winamp
Podsumowanie
11. Ataki socjotechniczne
Pakiet SET - Social-Engineer Toolkit
Ukierunkowane ataki phishingowe
Wybieranie ładunku
Ustawianie opcji
Wybieranie nazwy generowanego pliku
Jeden czy wielu adresatów?
Tworzenie szablonu wiadomości e-mail
Definiowanie celu ataku
Tworzenie procesu nasłuchującego
Ataki z wykorzystaniem stron internetowych
Masowe ataki e-mailowe
Ataki wielopłaszczyznowe
Podsumowanie
12. Omijanie programów antywirusowych
Trojany
Msfvenom
Jak działają aplikacje antywirusowe?
Microsoft Security Essentials
VirusTotal
Omijanie programów antywirusowych
Kodowanie
Niestandardowe metody kompilowania
Szyfrowanie plików wykonywalnych przy użyciu programu Hyperion
Omijanie programów antywirusowych przy użyciu pakietu Veil-Evasion
Ukrywanie na widoku, czyli najciemniej jest pod latarnią
Podsumowanie
13. Powłamaniowa eksploracja skompromitowanego systemu
Meterpreter
Zastosowanie polecenia upload
Polecenie getuid
Inne polecenia Meterpretera
Skrypty Meterpretera
Moduły Metasploita wspomagające powłamaniową eksplorację systemu
Railgun
Lokalne podnoszenie uprawnień użytkownika
Polecenie getsystem w systemie Windows
Moduły typu Local Escalation dla systemu Windows
Omijanie mechanizmu UAC w systemie Windows
Podnoszenie uprawnień w systemie Linux
Wyszukiwanie informacji w skompromitowanym systemie
Wyszukiwanie plików
Przechwytywanie naciśniętych klawiszy (keylogging)
Gromadzenie poświadczeń logowania
Polecenie net
Inne sposoby
Sprawdzanie historii poleceń powłoki bash
Przechodzenie na kolejne systemy
PsExec
Uwierzytelnianie za pomocą skrótów - ataki typu pass the hash
SSHExec
Tokeny personifikacji
Incognito
Moduł SMB Capture
Pivoting
Dodawanie tras za pomocą polecenia route
Skanery portów w pakiecie Metasploit
Wykorzystywanie luk w zabezpieczeniach za pośrednictwem pivota
Moduł Socks4a i program ProxyChains
Utrzymywanie dostępu do skompromitowanego systemu
Tworzenie nowego konta użytkownika
Zapewnianie dostępu za pomocą Metasploita
Tworzenie zadań cron w systemie Linux
Podsumowanie
14. Testowanie aplikacji internetowych
Burp Proxy
Wstrzykiwanie kodu SQL
Testowanie podatności na wstrzykiwanie kodu
Wykorzystywanie podatności na ataki typu SQL Injection
Zastosowanie programu SQLMap
Wstrzykiwanie kodu XPath
Ataki typu LFI - Local File Inclusion
Ataki typu RFI - Remote File Inclusion
Wykonywanie poleceń
Ataki typu XSS - Cross Site Scripting
Sprawdzanie podatności na ataki typu reflected XSS
Przeprowadzanie ataków typu XSS za pomocą pakietu Browser Exploitation
Framework (BeEF)
Ataki typu CSRF - Cross-Site Request Forgery
Skanowanie aplikacji internetowych za pomocą programu w3af
Podsumowanie
15. Ataki na sieci bezprzewodowe
Przygotowania
Wyświetlanie listy dostępnych bezprzewodowych interfejsów sieciowych
Wyszukiwanie bezprzewodowych punktów dostępowych
Tryb monitora
Przechwytywanie pakietów
Sieci bezprzewodowe z otwartym dostępem
Protokół WEP
Słabości protokołu WEP
Łamanie kluczy szyfrowania WEP za pomocą pakietu Aircrack-ng
Protokół WPA - WiFi Protected Access
Protokół WPA2
Podłączanie klientów w sieciach WPA/WPA2 Enterprise
Podłączanie klientów w sieciach WPA/WPA2 Personal
Czteroetapowa negocjacja uwierzytelniania
Łamanie kluczy szyfrowania WPA/WPA2
Protokół WPS - WiFi Protected Setup
Problemy z protokołem WPS
Łamanie PIN-u protokołu WPS za pomocą programu Bully
Podsumowanie
IV. TWORZENIE EXPLOITÓW
16. Przepełnienie bufora na stosie w systemie linux
Kilka słów o pamięci
Przepełnienie bufora na stosie w systemie Linux
Program podatny na przepełnienie bufora na stosie
Wymuszanie awarii programu
Praca z debuggerem GDB
Wywoływanie awarii programu w debuggerze GDB
Kontrolowanie wskaźnika EIP
Przejmowanie kontroli nad działaniem programu
Kolejność (starszeństwo) bajtów
Podsumowanie
17. Przepełnienie bufora na stosie w systemie Windows
Wyszukiwanie znanych podatności i luk w zabezpieczeniach serwera War-FTP
Wymuszanie awarii programu
Lokalizowanie rejestru EIP
Wyszukiwanie offsetu adresu powrotu za pomocą cyklicznego wzorca
Weryfikacja znalezionych offsetów
Przejmowanie kontroli nad działaniem programu
Uruchomienie powłoki
Podsumowanie
18. Zastępowanie strukturalnej obsługi wyjątków
Exploity nadpisujące procedury SEH
Przekazywanie sterowania do procedur SEH
Wyszukiwanie ciągu znaków exploita w pamięci
POP POP RET
SafeSEH
Zastosowanie krótkich skoków
Wybieranie ładunku
Podsumowanie
19. Fuzzing, przenoszenie kodu exploitów i tworzenie modułów Metasploita
Fuzzowanie programów
Wyszukiwanie błędów poprzez analizę kodu źródłowego
Fuzzowanie serwera TFTP
Próba wywołania awarii programu
Dostosowywanie kodu publicznie dostępnych exploitów do własnych potrzeb
Wyszukiwanie adresu powrotu
Zamiana kodu powłoki
Edytowanie kodu exploita
Tworzenie nowych modułów Metasploita
Tworzenie podobnego modułu exploita
Tworzenie kodu naszego exploita
Techniki zapobiegania atakom
Technika Stack Cookies
Mechanizm ASLR - randomizacja układu przestrzeni adresowej
Mechanizm DEP - zapobieganie wykonywaniu danych
Obowiązkowe cyfrowe podpisywanie kodu
Podsumowanie
V. ATAKI NA URZĄDZENIA MOBILNE
20. Pakiet Smartphone Pentest Framework
Wektory ataków na urządzenia mobilne
Wiadomości tekstowe
Połączenia NFC
Kody QR
Pakiet Smartphone Pentest Framework
Konfiguracja pakietu SPF
Emulatory systemu Android
Dołączanie urządzeń mobilnych
Budowanie aplikacji SPF dla systemu Android
Instalowanie aplikacji SPF
Łączenie serwera SPF z aplikacją mobilną
Ataki zdalne
Domyślne poświadczenia logowania SSH na telefonach iPhone
Ataki po stronie klienta
Powłoka po stronie klienta
Zdalna kontrola nad urządzeniami mobilnymi za pomocą mechanizmu USSD
Złośliwe aplikacje
Tworzenie złośliwych agentów SPF
Powłamaniowa eksploracja urządzeń mobilnych
Zbieranie informacji
Zdalne sterowanie
Pivoting z wykorzystaniem urządzeń mobilnych
Podnoszenie uprawnień
Podsumowanie
Materiały dodatkowe
Skorowidz
Pobieranie oprogramowania dla środowiska testowego
ISBN: 978-83-283-0352-2

Podobne dokumenty