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