Bezpieczny system w praktyce
Wy¿sza szko³a hackingu i testy penetracyjne
Chcesz sprawdziæ, czy Twój system jest bezpieczny? Zaatakuj go!
Najskuteczniej zrobisz to z wykorzystaniem testów penetracyjnych. W trakcie tych prób
pentesterzy (osoby prowadz±ce testy penetracyjne) próbuj± wcieliæ siê w rolê
w³amywacza i prze³amaæ zabezpieczenia testowanego systemu. Je¿eli system siê obroni,
to oczywi¶cie zda test, ale nie przestawaj byæ czujny! Je¿eli nie — otrzymasz szczegó³owy
raport ze wskazaniem, które obszary s± podatne na atak oraz jak zwiêkszyæ
bezpieczeñstwo Twojego systemu.
Je¿eli interesujesz siê bezpieczeñstwem systemów informatycznych i chcia³by¶
wcieliæ siê w rolê pentestera, ta ksi±¿ka wprowadzi Ciê w ¶wiat testów
penetracyjnych. Siêgnij po ni± i przekonaj siê, jak przygotowaæ ¶rodowisko do testów
oraz nauki. W kolejnych rozdzia³ach poznasz Kali Linux (specjaln± dystrybucjê Linuksa),
a tak¿e nauczysz siê tworzyæ skrypty Bash oraz Python. Gdy ju¿ poznasz podstawy, czas
zabraæ siê za analizê pierwszego systemu. Czê¶æ druga ksi±¿ki zosta³a
po¶wiêcona temu tematowi. Zobaczysz, jak zbieraæ informacje o systemie, wyszukiwaæ
podatno¶ci na atak i luki w zabezpieczeniach oraz przechwytywaæ ruch sieciowy. Czê¶æ
trzecia ksi±¿ki skupia siê na przeprowadzaniu ataku. Odkryjesz, jak atakowaæ has³a,
omijaæ programy antywirusowe, prowadziæ ataki socjotechniczne, weryfikowaæ aplikacje
internetowe oraz sieci bezprzewodowe. Na sam koniec nauczysz siê tworzyæ exploity oraz
testowaæ bezpieczeñstwo urz±dzeñ mobilnych. Ksi±¿ka ta jest doskona³ym ¼ród³em
informacji, które b³yskawicznie wprowadzi Ciê w ¶wiat testów penetracyjnych.
Dziêki tej ksi±¿ce:
poznasz elementarz pentestera
przygotujesz swoje ¶rodowisko pracy
opanujesz dystrybucjê Linuksa — Kali Linux
nauczysz siê tworzyæ skrypty
przygotujesz siê i przeprowadzisz atak na weryfikowany system informatyczny
pewnie wkroczysz w pasjonuj±cy ¶wiat testów penetracyjnych
S³owo wstêpne (17)
Podziêkowania (21)
Wprowadzenie (23)
- Kilka s³ów podziêkowania (24)
- Kilka s³ów o ksi±¿ce (25)
- Czê¶æ I. Podstawy (25)
- Czê¶æ II. Przygotowania (26)
- Czê¶æ III. Ataki (26)
- Czê¶æ IV. Tworzenie exploitów (27)
- Czê¶æ V. Ataki na urz±dzenia mobilne (28)
0. Elementarz testów penetracyjnych (29)
- Etapy testów penetracyjnych (30)
- Faza wstêpna (31)
- Zbieranie informacji (32)
- Mapowanie zagro¿eñ (33)
- Wykrywanie i analiza podatno¶ci (33)
- Atak (33)
- Pow³amaniowa eksploracja skompromitowanego systemu (33)
- Raportowanie (34)
- Podsumowanie (36)
I. PODSTAWY
1. Tworzenie wirtualnego ¶rodowiska testowego (39)
- Instalowanie pakietu VMware (39)
- Instalacja i konfiguracja systemu Kali Linux (40)
- Konfiguracja po³±czeñ sieciowych maszyny wirtualnej (44)
- Instalowanie pakietu Nessus (48)
- Instalowanie dodatkowych pakietów oprogramowania (52)
- Instalowanie emulatorów systemu Android (54)
- SPF - Smartphone Pentest Framework (60)
- Instalacja wirtualnych celów ataku (61)
- Tworzenie maszyny-celu z systemem Windows XP (62)
- VMware Player w systemie Microsoft Windows (62)
- VMware Fusion w systemie Mac OS (65)
- Instalowanie i aktywacja systemu Windows (65)
- Instalowanie pakietu VMware Tools (68)
- Wy³±czanie zapory sieciowej systemu Windows XP (70)
- Ustawianie hase³ dla kont u¿ytkowników (70)
- Ustawianie statycznego adresu IP (71)
- Konfiguracja systemu Windows XP do pracy jak w domenie (73)
- Instalowanie oprogramowania podatnego na ataki (75)
- Instalowanie pakietów Immunity Debugger oraz Mona (81)
- Tworzenie maszyny-celu z systemem Ubuntu 8.10 (82)
- Tworzenie maszyny-celu z systemem Windows 7 (83)
- Tworzenie konta u¿ytkownika (83)
- Wy³±czanie automatycznego instalowania aktualizacji (85)
- Ustawianie statycznego adresu IP (85)
- Dodawanie kolejnego interfejsu sieciowego (87)
- Instalowanie dodatkowego oprogramowania (88)
- Podsumowanie (90)
2. Praca z systemem Kali Linux (91)
- Wiersz poleceñ systemu Linux (92)
- System plików w Linuksie (92)
- Dokumentacja poleceñ - strony podrêcznika man (93)
- Uprawnienia u¿ytkowników (94)
- Dodawanie kont u¿ytkowników (95)
- Dodawanie konta u¿ytkownika do pliku sudoers (96)
- Prze³±czanie kont u¿ytkowników i korzystanie z polecenia sudo (96)
- Tworzenie nowych plików i katalogów (97)
- Kopiowanie, przenoszenie i usuwanie plików (97)
- Dodawanie tekstu do pliku (98)
- Do³±czanie tekstu do pliku (99)
- Prawa dostêpu do plików (99)
- Edytowanie plików (100)
- Wyszukiwanie tekstu (101)
- Edytowanie plików przy u¿yciu edytora vi (101)
- Przetwarzanie danych (102)
- Zastosowanie polecenia grep (103)
- Zastosowanie polecenia sed (104)
- Dopasowywanie wzorców za pomoc± polecenia awk (104)
- Zarz±dzanie zainstalowanymi pakietami oprogramowania (105)
- Procesy i us³ugi (106)
- Zarz±dzanie po³±czeniami sieciowymi (106)
- Ustawianie statycznego adresu IP (107)
- Przegl±danie po³±czeñ sieciowych (108)
- Netcat - uniwersalne narzêdzie do po³±czeñ TCP/IP (108)
- Sprawdzanie, czy system zdalny nas³uchuje na danym porcie (109)
- Proces nas³uchuj±cy poleceñ pow³oki (110)
- "Wypychanie" pow³oki do procesu nas³uchuj±cego (111)
- Automatyzacja zadañ za pomoc± procesu cron (112)
- Podsumowanie (113)
3. Programowanie (115)
- Skrypty pow³oki bash (115)
- Polecenie ping (115)
- Prosty skrypt pow³oki bash (116)
- Uruchamianie skryptu (117)
- Dodawanie nowych mo¿liwo¶ci za pomoc± polecenia if (117)
- Pêtla for (118)
- Zwiêkszanie przejrzysto¶ci wyników dzia³ania (120)
- Skrypty w jêzyku Python (123)
- £±czenie z wybranym portem sieciowym (124)
- Instrukcja if w jêzyku Python (124)
- Pisanie i kompilowanie programów w jêzyku C (125)
- Podsumowanie (127)
4. Pakiet Metasploit Framework (129)
- Uruchamianie pakietu Metasploit (131)
- Wyszukiwanie modu³ów pakietu Metasploit (132)
- Baza modu³ów pakietu Metasploit (133)
- Wbudowane polecenie search (134)
- Ustawianie opcji modu³u exploita (137)
- Opcja RHOST (138)
- Opcja RPORT (138)
- Opcja SMBPIPE (138)
- Opcja Exploit Target (139)
- £adunki (kod pow³oki) (140)
- Wyszukiwanie kompatybilnych ³adunków (140)
- Przebieg testowy (141)
- Rodzaje pow³ok (142)
- Bind shell (142)
- Reverse shell (143)
- Rêczne wybieranie ³adunku (143)
- Interfejs wiersza poleceñ Msfcli (145)
- Uzyskiwanie pomocy (146)
- Wy¶wietlanie opcji (146)
- £adunki (147)
- Tworzenie samodzielnych ³adunków za pomoc± narzêdzia Msfvenom (148)
- Wybieranie ³adunku (149)
- Ustawianie opcji (149)
- Wybieranie formatu ³adunku (150)
- Dostarczanie ³adunków (151)
- Zastosowanie modu³u multi/handler (151)
- Zastosowanie dodatkowych modu³ów (153)
- Podsumowanie (155)
II. PRZYGOTOWANIA
5. Zbieranie informacji (159)
- OSINT - bia³y wywiad (160)
- Netcraft (160)
- Zapytania whois (161)
- Zapytania DNS (162)
- Poszukiwanie adresów poczty elektronicznej (165)
- Maltego (166)
- Skanowanie portów (170)
- Rêczne skanowanie portów (170)
- Skanowanie portów przy u¿yciu programu Nmap (172)
- Podsumowanie (180)
6. Wyszukiwanie podatno¶ci i luk w zabezpieczeniach (181)
- Od skanu z detekcj± wersji do wykrycia potencjalnej luki w zabezpieczeniach (182)
- Nessus (182)
- Karta Policies - tworzenie polityki skanowania Nessusa (183)
- Skanowanie za pomoc± Nessusa (186)
- Kilka s³ów na temat rankingu podatno¶ci i luk w zabezpieczeniach (189)
- Dlaczego powiniene¶ u¿ywaæ skanerów podatno¶ci? (189)
- Eksportowanie wyników skanowania (190)
- Odkrywanie podatno¶ci i luk w zabezpieczeniach (191)
- NSE - Nmap Scripting Engine (191)
- Uruchamianie wybranego skryptu NSE (194)
- Modu³y skanerów pakietu Metasploit (196)
- Sprawdzanie podatno¶ci na exploity za pomoc± polecenia check pakietu Metasploit (197)
- Skanowanie aplikacji internetowych (199)
- Pakiet Nikto (199)
- Ataki na pakiet XAMPP (200)
- Po¶wiadczenia domy¶lne (201)
- Samodzielna analiza podatno¶ci (202)
- Eksploracja nietypowych portów (202)
- Wyszukiwanie nazw kont u¿ytkowników (204)
- Podsumowanie (205)
7. Przechwytywanie ruchu sieciowego (207)
- Przechwytywanie ruchu w sieci (208)
- Zastosowanie programu Wireshark (208)
- Przechwytywanie ruchu sieciowego (209)
- Filtrowanie ruchu sieciowego (210)
- Rekonstruowanie sesji TCP (211)
- Analiza zawarto¶ci pakietów (212)
- Ataki typu ARP Cache Poisoning (213)
- Podstawy protoko³u ARP (214)
- Przekazywanie pakietów IP (216)
- Zatruwanie tablicy ARP przy u¿yciu polecenia arpspoof (217)
- Zastosowanie zatruwania tablic ARP do podszywania siê pod domy¶ln± bramê sieciow±
(219)
- Ataki typu DNS Cache Poisoning (220)
- Zatruwanie DNS - podstawy (222)
- Zatruwanie DNS przy u¿yciu polecenia dnsspoof (222)
- Ataki SSL (224)
- SSL - podstawy (224)
- Zastosowanie programu Ettercap do przeprowadzania ataków SSL MiTM (224)
- Ataki typu SSL Stripping (226)
- Zastosowanie programu SSLstrip (228)
- Podsumowanie (230)
III. ATAKI
8. Eksploracja ¶rodowiska celu (233)
- Powracamy do luki MS08-067 (234)
- £adunki Metasploita (234)
- Meterpreter (236)
- Wykorzystywanie domy¶lnych po¶wiadczeñ logowania w dodatku WebDAV (237)
- Uruchamianie skryptów na atakowanym serwerze WWW (238)
- Kopiowanie ³adunku przygotowanego za pomoc± programu Msfvenom (239)
- Wykorzystywanie otwartej konsoli phpMyAdmin (241)
- Pobieranie plików za pomoc± TFTP (243)
- Pobieranie wra¿liwych plików (244)
- Pobieranie pliku konfiguracyjnego (244)
- Pobieranie pliku Windows SAM (245)
- Wykorzystywanie b³êdów przepe³nienia bufora w innych aplikacjach (246)
- Wykorzystywanie luk w zabezpieczeniach innych aplikacji internetowych (248)
- Wykorzystywanie luk w zabezpieczeniach us³ug (250)
- Wykorzystywanie otwartych udzia³ów NFS (251)
- Podsumowanie (253)
9. Ataki na has³a (255)
- Zarz±dzanie has³ami (255)
- Ataki typu online (256)
- Listy hase³ (257)
- Odnajdowanie nazw kont u¿ytkowników i hase³ przy u¿yciu programu Hydra (261)
- Ataki typu offline (263)
- Odzyskiwanie haszy hase³ systemu Windows z pliku SAM (264)
- Pozyskiwanie zahaszowanych hase³ z wykorzystaniem fizycznego dostêpu do systemu (266)
- Algorytm LM kontra NTLM (269)
- Problem z haszami hase³ w formacie LM (270)
- John the Ripper (271)
- £amanie hase³ systemu Linux (272)
- £amanie hase³ przechowywanych w plikach konfiguracyjnych (274)
- Têczowe tablice (275)
- Us³ugi ³amania hase³ dostêpne w sieci (275)
- Pozyskiwanie hase³ z pamiêci operacyjnej za pomoc± programu Windows Credentials
Editor (276)
- Podsumowanie (277)
10. Wykorzystywanie luk w zabezpieczeniach po stronie klienta (279)
- Omijanie filtrowania za pomoc± ³adunków pakietu Metasploit (280)
- £adunek AllPorts (280)
- £adunki HTTP i HTTPS (282)
- Ataki po stronie klienta (283)
- Luki w zabezpieczeniach przegl±darek sieciowych (284)
- Exploity dla plików PDF (292)
- Luki w zabezpieczeniach ¶rodowiska Java (298)
- Modu³ browser_autopwn (304)
- Winamp (307)
- Podsumowanie (309)
11. Ataki socjotechniczne (311)
- Pakiet SET - Social-Engineer Toolkit (313)
- Ukierunkowane ataki phishingowe (314)
- Wybieranie ³adunku (315)
- Ustawianie opcji (315)
- Wybieranie nazwy generowanego pliku (316)
- Jeden czy wielu adresatów? (316)
- Tworzenie szablonu wiadomo¶ci e-mail (316)
- Definiowanie celu ataku (317)
- Tworzenie procesu nas³uchuj±cego (318)
- Ataki z wykorzystaniem stron internetowych (319)
- Masowe ataki e-mailowe (322)
- Ataki wielop³aszczyznowe (325)
- Podsumowanie (326)
12. Omijanie programów antywirusowych (327)
- Trojany (328)
- Jak dzia³aj± aplikacje antywirusowe? (331)
- Microsoft Security Essentials (332)
- VirusTotal (333)
- Omijanie programów antywirusowych (334)
- Kodowanie (335)
- Niestandardowe metody kompilowania (338)
- Szyfrowanie plików wykonywalnych przy u¿yciu programu Hyperion (341)
- Omijanie programów antywirusowych przy u¿yciu pakietu Veil-Evasion (343)
- Ukrywanie na widoku, czyli najciemniej jest pod latarni± (347)
- Podsumowanie (347)
13. Pow³amaniowa eksploracja skompromitowanego systemu (349)
- Meterpreter (350)
- Zastosowanie polecenia upload (351)
- Polecenie getuid (352)
- Inne polecenia Meterpretera (352)
- Skrypty Meterpretera (353)
- Modu³y Metasploita wspomagaj±ce pow³amaniow± eksploracjê systemu (354)
- Railgun (356)
- Lokalne podnoszenie uprawnieñ u¿ytkownika (356)
- Polecenie getsystem w systemie Windows (357)
- Modu³y typu Local Escalation dla systemu Windows (358)
- Omijanie mechanizmu UAC w systemie Windows (359)
- Podnoszenie uprawnieñ w systemie Linux (361)
- Wyszukiwanie informacji w skompromitowanym systemie (366)
- Wyszukiwanie plików (367)
- Przechwytywanie naci¶niêtych klawiszy (keylogging) (367)
- Gromadzenie po¶wiadczeñ logowania (368)
- Polecenie net (370)
- Inne sposoby (371)
- Sprawdzanie historii poleceñ pow³oki bash (372)
- Przechodzenie na kolejne systemy (372)
- PsExec (373)
- Uwierzytelnianie za pomoc± skrótów - ataki typu pass the hash (374)
- SSHExec (376)
- Tokeny personifikacji (377)
- Incognito (378)
- Modu³ SMB Capture (379)
- Pivoting (382)
- Dodawanie tras za pomoc± polecenia route (384)
- Skanery portów w pakiecie Metasploit (384)
- Wykorzystywanie luk w zabezpieczeniach za po¶rednictwem pivota (385)
- Modu³ Socks4a i program ProxyChains (386)
- Utrzymywanie dostêpu do skompromitowanego systemu (388)
- Tworzenie nowego konta u¿ytkownika (388)
- Zapewnianie dostêpu za pomoc± Metasploita (389)
- Tworzenie zadañ cron w systemie Linux (391)
- Podsumowanie (392)
14. Testowanie aplikacji internetowych (393)
- Burp Proxy (394)
- Wstrzykiwanie kodu SQL (399)
- Testowanie podatno¶ci na wstrzykiwanie kodu (400)
- Wykorzystywanie podatno¶ci na ataki typu SQL Injection (401)
- Zastosowanie programu SQLMap (402)
- Wstrzykiwanie kodu XPath (403)
- Ataki typu LFI - Local File Inclusion (405)
- Ataki typu RFI - Remote File Inclusion (408)
- Wykonywanie poleceñ (409)
- Ataki typu XSS - Cross Site Scripting (411)
- Sprawdzanie podatno¶ci na ataki typu reflected XSS (412)
- Przeprowadzanie ataków typu XSS za pomoc± pakietu Browser Exploitation Framework
(BeEF) (414)
- Ataki typu CSRF - Cross-Site Request Forgery (418)
- Skanowanie aplikacji internetowych za pomoc± programu w3af (419)
- Podsumowanie (421)
15. Ataki na sieci bezprzewodowe (423)
- Przygotowania (423)
- Wy¶wietlanie listy dostêpnych bezprzewodowych interfejsów sieciowych (425)
- Wyszukiwanie bezprzewodowych punktów dostêpowych (425)
- Tryb monitora (426)
- Przechwytywanie pakietów (427)
- Sieci bezprzewodowe z otwartym dostêpem (428)
- Protokó³ WEP (428)
- S³abo¶ci protoko³u WEP (431)
- £amanie kluczy szyfrowania WEP za pomoc± pakietu Aircrack-ng (432)
- Protokó³ WPA - WiFi Protected Access (437)
- Protokó³ WPA2 (438)
- Pod³±czanie klientów w sieciach WPA/WPA2 Enterprise (438)
- Pod³±czanie klientów w sieciach WPA/WPA2 Personal (439)
- Czteroetapowa negocjacja uwierzytelniania (439)
- £amanie kluczy szyfrowania WPA/WPA2 (440)
- Protokó³ WPS - WiFi Protected Setup (444)
- Problemy z protoko³em WPS (445)
- £amanie PIN-u protoko³u WPS za pomoc± programu Bully (445)
- Podsumowanie (445)
IV. TWORZENIE EXPLOITÓW
16. Przepe³nienie bufora na stosie w systemie linux (449)
- Kilka s³ów o pamiêci (450)
- Przepe³nienie bufora na stosie w systemie Linux (453)
- Program podatny na przepe³nienie bufora na stosie (454)
- Wymuszanie awarii programu (456)
- Praca z debuggerem GDB (457)
- Wywo³ywanie awarii programu w debuggerze GDB (463)
- Kontrolowanie wska¼nika EIP (465)
- Przejmowanie kontroli nad dzia³aniem programu (467)
- Kolejno¶æ (starszeñstwo) bajtów (469)
- Podsumowanie (471)
17. Przepe³nienie bufora na stosie w systemie Windows (473)
- Wyszukiwanie znanych podatno¶ci i luk w zabezpieczeniach serwera War-FTP (474)
- Wymuszanie awarii programu (476)
- Lokalizowanie rejestru EIP (479)
- Wyszukiwanie offsetu adresu powrotu za pomoc± cyklicznego wzorca (480)
- Weryfikacja znalezionych offsetów (484)
- Przejmowanie kontroli nad dzia³aniem programu (486)
- Uruchomienie pow³oki (492)
- Podsumowanie (498)
18. Zastêpowanie strukturalnej obs³ugi wyj±tków (499)
- Exploity nadpisuj±ce procedury SEH (500)
- Przekazywanie sterowania do procedur SEH (506)
- Wyszukiwanie ci±gu znaków exploita w pamiêci (506)
- POP POP RET (511)
- SafeSEH (512)
- Zastosowanie krótkich skoków (516)
- Wybieranie ³adunku (517)
- Podsumowanie (520)
19. Fuzzing, przenoszenie kodu exploitów i tworzenie modu³ów Metasploita (521)
- Fuzzowanie programów (522)
- Wyszukiwanie b³êdów poprzez analizê kodu ¼ród³owego (522)
- Fuzzowanie serwera TFTP (523)
- Próba wywo³ania awarii programu (525)
- Dostosowywanie kodu publicznie dostêpnych exploitów do w³asnych potrzeb (529)
- Wyszukiwanie adresu powrotu (532)
- Zamiana kodu pow³oki (533)
- Edytowanie kodu exploita (533)
- Tworzenie nowych modu³ów Metasploita (535)
- Tworzenie podobnego modu³u exploita (538)
- Tworzenie kodu naszego exploita (538)
- Techniki zapobiegania atakom (543)
- Technika Stack Cookies (543)
- Mechanizm ASLR - randomizacja uk³adu przestrzeni adresowej (544)
- Mechanizm DEP - zapobieganie wykonywaniu danych (545)
- Obowi±zkowe cyfrowe podpisywanie kodu (545)
- Podsumowanie (546)
V. ATAKI NA URZ¡DZENIA MOBILNE
20. Pakiet Smartphone Pentest Framework (549)
- Wektory ataków na urz±dzenia mobilne (550)
- Wiadomo¶ci tekstowe (550)
- Po³±czenia NFC (551)
- Kody QR (552)
- Pakiet Smartphone Pentest Framework (552)
- Konfiguracja pakietu SPF (552)
- Emulatory systemu Android (554)
- Do³±czanie urz±dzeñ mobilnych (555)
- Budowanie aplikacji SPF dla systemu Android (555)
- Instalowanie aplikacji SPF (556)
- £±czenie serwera SPF z aplikacj± mobiln± (557)
- Ataki zdalne (559)
- Domy¶lne po¶wiadczenia logowania SSH na telefonach iPhone (559)
- Ataki po stronie klienta (561)
- Pow³oka po stronie klienta (561)
- Zdalna kontrola nad urz±dzeniami mobilnymi za pomoc± mechanizmu USSD (563)
- Z³o¶liwe aplikacje (565)
- Tworzenie z³o¶liwych agentów SPF (566)
- Pow³amaniowa eksploracja urz±dzeñ mobilnych (573)
- Zbieranie informacji (573)
- Zdalne sterowanie (575)
- Pivoting z wykorzystaniem urz±dzeñ mobilnych (575)
- Podnoszenie uprawnieñ (582)
- Podsumowanie (583)
Materia³y dodatkowe (585)
Skorowidz (591)
Pobieranie oprogramowania dla ¶rodowiska testowego (608)
608 stron, Format: 17.0x23.5cm, oprawa miêkka