Tytuł oryginału: Mastering Kali Linux for Advanced Penetration Testing - Second Edition
Tłumaczenie: Grzegorz Kowalczyk
ISBN: 978-83-283-4037-4
Copyright © Packt Publishing 2017. First published in the English language under the title 'Mastering Kali Linux for Advanced Penetration Testing - Second Edition - (9781787120235)'
Polish edition copyright © 2018 by Helion SAAll rights reserved.
All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from the Publisher.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.
Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce.
Wydawnictwo HELIONul. Kościuszki 1c, 44-100 GLIWICEtel. 32 231 22 19, 32 230 98 63e-mail: [email protected]: http://helion.pl (księgarnia internetowa, katalog książek)
Drogi Czytelniku!Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://helion.pl/user/opinie/kalit2Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Printed in Poland.
• Kup książkę• Poleć książkę • Oceń książkę
• Księgarnia internetowa• Lubię to! » Nasza społeczność
Spis treści
O autorze 13
O recenzencie 15
Przedmowa 17
Rozdział 1. Testy penetracyjne ukierunkowane na osiągnięcie celu 23
Koncepcyjny przegląd testów bezpieczeństwa 24Zmierzch klasycznych testów penetracyjnych,
skanowania w poszukiwaniu podatności i działań zespołów Red Team 24Metodologia przeprowadzania testów 26Wprowadzenie do systemu Kali Linux — jego historia i przeznaczenie 28Instalowanie i aktualizowanie systemu Kali Linux 30Uruchamianie systemu Kali Linux z urządzenia przenośnego 30Instalowanie systemu Kali Linux w maszynie wirtualnej 31
VMware Workstation Player 32VirtualBox 34Instalowanie aplikacji Docker 39Instalowanie systemu Kali Linux w chmurze — tworzenie instancji AWS 41Dostosowywanie systemu Kali Linux 43Konfigurowanie i dostosowywanie systemu Kali Linux 44
Zmiana hasła użytkownika root 44Dodawanie zwykłego konta użytkownika 44Przyspieszanie działania systemu Kali Linux 45Udostępnianie i współużytkowanie folderów z systemem operacyjnym hosta 46Dostosowywanie systemu Kali Linux do własnych potrzeb
przy użyciu skryptów powłoki bash 48Budowanie środowiska testowego 49Konfigurowanie sieci wirtualnej z usługą Active Directory 49Instalowanie zdefiniowanych celów 52
Poleć książkęKup książkę
Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych
4
Metasploitable3 52Mutillidae 53Zarządzanie testami penetracyjnymi przy użyciu pakietu Faraday 54
Podsumowanie 58
Rozdział 2. OSINT oraz rozpoznanie pasywne 59
Podstawowe zasady przeprowadzania rozpoznania 60Biały wywiad (OSINT) 61Ofensywny biały wywiad 62Maltego 63CaseFile 66Usługi Google Cache 67Scraping 68Pozyskiwanie nazw kont użytkowników i adresów e-mail 69Zbieranie informacji o użytkownikach 70Wyszukiwarki Shodan i censys.io 70
Google Hacking Database 71Używanie zaawansowanych operatorów Google 72Serwery szybkiej wymiany danych 73Zastosowanie skryptów do automatycznego zbierania informacji OSINT 74
Defensywny biały wywiad 75Profilowanie użytkowników pod kątem przygotowywania listy haseł 78
Tworzenie słowników do łamania haseł 78Zastosowanie programu CeWL do mapowania witryny internetowej 79Pozyskiwanie listy słów z serwisu Twitter przy użyciu programu Twofi 80
Podsumowanie 80
Rozdział 3. Aktywne rozpoznawanie zewnętrznych i wewnętrznych środowisk celu 83
Trudne do wykrycia techniki skanowania 84Modyfikowanie źródłowych adresów IP
i dostosowywanie ustawień używanych narzędzi 85Modyfikowanie parametrów pakietów 86Używanie serwerów proxy i sieci anonimowych 88
Rozpoznanie DNS i mapowanie sieci 91Polecenie whois 92
Wykorzystywanie kompleksowych aplikacji wspomagających przeprowadzanie rozpoznania 94Framework recon-ng 94Protokół IPv6 — wybrane narzędzia 99Mapowanie trasy do celu 100
Identyfikowanie zewnętrznej infrastruktury sieciowej 103Mapowanie sieci poza zaporą sieciową 104Identyfikacja systemów IDS/IPS 105Wyszukiwanie hostów 107
Wykrywanie aktywnych hostów 108Wykrywanie otwartych portów, systemu operacyjnego oraz działających usług 109
Skanowanie portów 109
Poleć książkęKup książkę
Spis treści
5
Tworzenie własnego skanera portów przy użyciu programu netcat 110Identyfikacja systemu operacyjnego zdalnego hosta 111Wykrywanie usług działających na zdalnych hostach 112
Skanowanie dużych środowisk celu 113Wykorzystanie danych DHCP 114Wykrywanie oraz identyfikacja hostów w wewnętrznych sieciach środowiska celu 115Wbudowane polecenia konsolowe systemu Windows 116Rozgłoszenia ARP 117Wykrywanie hostów w sieci za pomocą pakietów ping 117Zastosowanie skryptów do łączenia skanów z użyciem programów masscan i nmap 119Wykorzystanie protokołu SNMP 120Pozyskiwanie informacji o kontach użytkowników Windows
za pośrednictwem sesji SMB 121Identyfikacja udziałów sieciowych 123Rozpoznawanie serwerów w domenie Active Directory 124Zastosowanie narzędzi złożonych (SPARTA) 125Przykład konfiguracji pakietu SPARTA 126
Podsumowanie 127
Rozdział 4. Wyszukiwanie podatności i luk w zabezpieczeniach 129
Trochę nomenklatury 130Lokalne i sieciowe bazy podatności i luk w zabezpieczeniach 131Skanowanie w poszukiwaniu podatności przy użyciu programu nmap 135
Wprowadzenie do skryptów LUA 137Dostosowywanie skryptów NSE do własnych potrzeb 137
Skanery podatności aplikacji sieciowych 139Wprowadzenie do skanerów Nikto i Vega 140Dostosowywanie skanerów Nikto i Vega do własnych potrzeb 142
Skanery podatności dla aplikacji mobilnych 146Skaner podatności OpenVAS 148
Dostosowywanie skanera OpenVAS do własnych potrzeb 150Specjalizowane skanery podatności 150Modelowanie zagrożeń 151Podsumowanie 153
Rozdział 5. Bezpieczeństwo fizyczne i metody socjotechniczne 155
Metodologia przeprowadzania ataków 157Ataki z wykorzystaniem komputera 157Ataki z wykorzystaniem telefonu 158Ataki z dostępem fizycznym 159
Ataki z dostępem do konsoli systemu 159Programy samdump2 i chntpw 160Ułatwienia dostępu — opcja Sticky Keys 163Ataki na pamięć systemową przy użyciu programu Inception 164
Tworzenie złośliwych urządzeń fizycznych 166Ataki z wykorzystaniem urządzeń mikroprocesorowych 168
Poleć książkęKup książkę
Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych
6
Pakiet SET 170Ataki na witryny internetowe — atak ze zbieraniem poświadczeń logowania 174Ataki na witryny internetowe — atak typu tabnabbing 176Ataki na witryny internetowe — ataki złożone 177Atak ze wstrzykiwaniem alfanumerycznego kodu shellcode z powłoki Powershell 178Ataki z wykorzystaniem aplikacji HTA 179
Ukrywanie plików wykonywalnych oraz maskowanie adresu URL napastnika 181Eskalowanie ataków przy użyciu przekierowań DNS 183
Ataki typu spear phishing 184Przeprowadzanie kampanii phishingowej z wykorzystaniem pakietu Phishing Frenzy 188
Przeprowadzanie ataku phishingowego 192Podsumowanie 194
Rozdział 6. Ataki na sieci bezprzewodowe 195
Konfigurowanie systemu Kali Linux do przeprowadzania ataków na sieci bezprzewodowe 196Przeprowadzanie rozpoznania w sieciach bezprzewodowych 197
Kismet 200Omijanie zabezpieczenia sieci z ukrytym identyfikatorem SSID 202Omijanie zabezpieczenia sieci z filtrowaniem adresów MAC
oraz otwartym uwierzytelnianiem 204Atakowanie sieci z szyfrowaniem WPA i WPA2 206
Ataki typu brute-force 207Atakowanie routerów sieci bezprzewodowych przy użyciu programu Reaver 210
Ataki typu DoS na sieci bezprzewodowe 211Ataki na sieci WLAN z szyfrowaniem WPA/WPA2-Enterprise 213Praca z pakietem Ghost Phisher 217Podsumowanie 218
Rozdział 7. Rozpoznawanie i przełamywanie zabezpieczeń aplikacji internetowych 221
Metodologia 222Planowanie ataku 224Przeprowadzanie rozpoznania witryny internetowej 225
Wykrywanie zapór WAF oraz systemów równoważenia obciążenia 227Tworzenie sygnatur aplikacji internetowych i systemów CMS 228Tworzenie lustrzanej kopii strony internetowej z poziomu wiersza poleceń 231
Serwery proxy po stronie klienta 232Burp Proxy 232Poszerzanie funkcjonalności przeglądarek internetowych 237Przeszukiwanie sieci i ataki typu brute-force na struktury katalogów 239Skanery podatności wykrywające podatności określonych usług i aplikacji 239
Ataki specyficzne dla określonych aplikacji 241Ataki typu brute-force na poświadczenia logowania 241Wstrzykiwanie poleceń systemu operacyjnego przy użyciu narzędzia commix 241Ataki ze wstrzykiwaniem danych lub kodu do baz danych 243
Utrzymywanie dostępu za pomocą powłok webshell 245Podsumowanie 247
Poleć książkęKup książkę
Spis treści
7
Rozdział 8. Ataki na zdalny dostęp 249
Wykorzystywanie luk w zabezpieczeniach protokołów komunikacyjnych 250Przełamywanie zabezpieczeń protokołu RDP 250Przełamywanie zabezpieczeń protokołu SSH 253Przełamywanie zabezpieczeń protokołu VNC 255
Ataki na połączenia SSL 257Słabe strony i luki w zabezpieczeniach protokołu SSL 257Praca z programem Testssl 259Rozpoznawanie połączeń SSL 260Zastosowanie programu sslstrip do przeprowadzania ataku man-in-the-middle 265Ataki typu DoS na połączenia SSL 268
Ataki na wirtualne sieci prywatne z protokołem IPSec 269Skanowanie w poszukiwaniu bramek VPN 270Tworzenie cyfrowego odcisku palca bramy VPN 271Przechwytywanie kluczy PSK 272Łamanie kluczy PSK w trybie offline 272Identyfikacja domyślnych kont użytkowników 273
Podsumowanie 273
Rozdział 9. Ataki po stronie klienta 275
Backdooring — tworzenie plików wykonywalnych wyposażonych w tylne wejścia 276Atakowanie systemów przy użyciu złośliwych skryptów 279
Przeprowadzanie ataków za pomocą skryptów w języku VBScript 279Atakowanie systemów przy użyciu skryptów powłoki PowerShell 282
Pakiet XSS Framework 285Pakiet BeEF 289
Konfigurowanie pakietu BeEF 290Praca z pakietem BeEF 293
Integracja pakietów BeEF i Metasploit 296Używanie pakietu BeEF jako tunelującego serwera proxy 297
Podsumowanie 299
Rozdział 10. Omijanie mechanizmów zabezpieczających 301
Omijanie zabezpieczeń wprowadzanych przez mechanizm NAC 302Weryfikacja przed uzyskaniem dostępu do sieci 303Weryfikacja po uzyskaniu dostępu do sieci 305
Omijanie programów antywirusowych przy użyciu różnych narzędzi 305Korzystanie z pakietu Veil Framework 307Używanie programu Shellter 312
Omijanie zabezpieczeń działających na poziomie aplikacji 316Zastosowanie protokołu SSH do tunelowania połączeń
przez zapory sieciowe działające po stronie klienta 316Omijanie białej listy aplikacji 320
Poleć książkęKup książkę
Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych
8
Omijanie zabezpieczeń systemu operacyjnego Windows 322Pakiet EMET (Enhanced Migration Experience Toolkit) 322UAC — kontrola konta użytkownika 323Inne zabezpieczenia systemu operacyjnego Windows 328
Podsumowanie 331
Rozdział 11. Wykorzystywanie podatności i luk w zabezpieczeniach 333
Pakiet Metasploit 334Biblioteki 334Interfejsy 335Moduły 336Tworzenie i konfiguracja bazy danych 337
Atakowanie celów przy użyciu pakietu Metasploit Framework 342Atakowanie pojedynczych systemów z użyciem odwróconej powłoki 342Atakowanie pojedynczych systemów z użyciem odwróconej powłoki PowerShell 344
Atakowanie wielu systemów przy użyciu plików zasobów pakietu Metasploit Framework 345Atakowanie wielu systemów przy użyciu pakietu Armitage 346Używanie publicznych exploitów 349
Lokalizowanie i weryfikowanie publicznie dostępnych exploitów 349Kompilowanie i używanie exploitów 351
Tworzenie exploitów dla systemu Windows 353Identyfikacja podatności i luk w zabezpieczeniach przy użyciu fuzzingu 354Tworzenie exploita dla systemu Windows 360
Podsumowanie 363
Rozdział 12. Powłamaniowa eksploracja środowiska celu 365
Eksploracja skompromitowanego systemu lokalnego 366Przeprowadzenie szybkiego rozpoznania skompromitowanego systemu 367Wyszukiwanie i pobieranie wrażliwych danych — plądrowanie celu 368Narzędzia wspomagające powłamaniową eksplorację
systemu (MSF, framework Veil-Pillage, skrypty) 372Pakiet Veil-Pillage 375
Eskalacja pozioma i atakowanie innych systemów 379Kompromitowanie relacji zaufania między domenami oraz udziałów sieciowych 380PsExec, WMIC i inne narzędzia 381Eskalacja pozioma z użyciem usług 385Pivoting i przekierowywanie portów 385
Podsumowanie 388
Rozdział 13. Podnoszenie uprawnień 389
Typowa metodologia podnoszenia uprawnień 390Podnoszenie uprawnień w systemie lokalnym 391
Podnoszenie uprawnień z poziomu administratora na poziom systemu 392Wstrzykiwanie bibliotek DLL 393Narzędzie PowerShell Empire 395
Poleć książkęKup książkę
Spis treści
9
Ataki pozwalające na zbieranie poświadczeń i podnoszenie uprawnień 400Sniffery haseł 401Responder 402Ataki typu SMB relay 405
Podnoszenie uprawnień w Active Directory 405Ataki typu Golden Ticket na protokół Kerberos 412Podsumowanie 414
Rozdział 14. Sterowanie i kontrola 415
Używanie agentów persystencji 416Używanie programu Netcat jako agenta persystencji 417Zastosowanie programu schtasks do konfigurowania trwałych zadań 421Utrzymywanie trwałego dostępu przy użyciu pakietu Metasploit 422Używanie skryptu persistence 423Tworzenie samodzielnego trwałego agenta z wykorzystaniem pakietu Metasploit 424Utrzymywanie trwałego dostępu
za pomocą mediów społecznościowych i poczty Gmail 426Eksfiltracja danych 429
Korzystanie z istniejących usług systemowych (Telnet, RDP i VNC) 430Eksfiltracja danych z wykorzystaniem protokołu DNS 431Eksfiltracja danych z wykorzystaniem protokołu DNS 433Pakiet Data Exfiltration Toolkit (DET) 435Eksfiltracja danych z wykorzystaniem powłoki PowerShell 437Ukrywanie śladów ataku 437
Podsumowanie 439
Skorowidz 441
Poleć książkęKup książkę
Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych
10
Poleć książkęKup książkę
1
Testy penetracyjneukierunkowane
na osiągnięcie celu
„Istnieją tylko dwa rodzaje ludzi: ci, którzy hakują, i ci, którzy zostaną zhakowani”
Wszystko rozpoczyna się od wyznaczenia celu, który chcesz osiągnąć. Z tego względu w tymrozdziale będziemy omawiać znaczenie testów penetracyjnych ukierunkowanych na osiągnię-cie celu oraz wyjaśnimy, dlaczego bez wyznaczenia takiego celu przeprowadzanie skanowaniaw poszukiwaniu podatności (ang. vulnerability scanning), testy penetracyjne czy inne działa-nia zespołów Red Team1 mogą zakończyć się spektakularnym niepowodzeniem. W tym roz-dziale omówimy również szereg zagadnień związanych z przeprowadzaniem testów bezpie-czeństwa, tworzeniem i konfigurowaniem środowiska testowego oraz używaniem systemuKali Linux do przeprowadzania zaawansowanych testów penetracyjnych. Po przeczytaniu te-go rozdziału będziesz wiedział:
Na czym polegają testy bezpieczeństwa systemów informatycznych.
Dlaczego skanowanie w poszukiwaniu podatności, testy penetracyjnei inne działania zespołu Red Team mogą zakończyć się niepowodzeniem.
Jak aktualizować i konfigurować system Kali Linux.
Jak za pomocą skryptów powłoki bash dostosowywać system Kali Linuxdo własnych potrzeb.
1 Red Team — zespół czerwony, ofensywny, w scenariuszach testów cyberbezpieczeństwa odpowiedzialny
za przeprowadzanie kontrolowanych ataków mających na celu przełamywanie zabezpieczeń środowiskakomputerowego chronionego przez zespół defensywny (Blue Team; zespół niebieski) — przyp. tłum.
Poleć książkęKup książkę
Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych
24
Jak wyznaczać cele działania.
Jak zbudować środowisko testowe.
Koncepcyjny przeglądtestów bezpieczeństwaPraktycznie każda firma czy organizacja na świecie może się obawiać różnych zagrożeń zwią-zanych z cyberprzestrzenią, takich jak wycieki wrażliwych danych, złośliwe oprogramowanie czycyberterroryzm. Każda próba przeciwdziałania musi rozpocząć się od przygotowania ogólne-go zarysu i koncepcji planowanych zabezpieczeń. Jeżeli stu różnym konsultantom zadasz py-tanie: „Czym jest testowanie bezpieczeństwa środowiska teleinformatycznego?”, to z dużą doząprawdopodobieństwa możesz założyć, że otrzymasz bardzo wiele różnych odpowiedzi. Naj-prościej mówiąc, testowanie bezpieczeństwa to proces polegający na sprawdzaniu, czy daneśrodowisko teleinformatyczne i poszczególne działające w nim systemy są odpowiednio chro-nione i czy mogą funkcjonować zgodnie z oczekiwaniami.
Zmierzch klasycznychtestów penetracyjnych,skanowania w poszukiwaniu podatnościi działań zespołów Red TeamW tym podrozdziale skoncentrujemy się na omawianiu ograniczeń tradycyjnych bądź, jak ktowoli, klasycznych metod przeprowadzania testów penetracyjnych, wyszukiwania podatnościi działań zespołów Red Team. Najpierw jednak spróbujemy w prostych słowach objaśnićobecne znaczenie tych trzech zagadnień i pokazać ich ograniczenia.
Skanowanie w poszukiwaniu podatności (ang. vulnerability scanning) — jest toproces mający na celu identyfikację podatności na ataki i luk w zabezpieczeniachatakowanego środowiska i działających w nim systemów. Poważnym ograniczeniemtakiego skanowania jest fakt, że jego wyniki to lista potencjalnych podatności, z którychduża część może być fałszywie pozytywna. Dla właściciela danego biznesu możeto stanowić poważny problem z oszacowaniem ryzyka, ponieważ w takiej sytuacjinie mamy jasnego obrazu tego, która z podatności stanowi rzeczywiste zagrożeniedla funkcjonowania środowiska, a która jest tylko fałszywie potencjalnymzagrożeniem niemającym odzwierciedlenia w rzeczywistości.
Testy penetracyjne (ang. penetration testing) — jest to proces mający na celudokonanie próby bezpiecznego wykorzystania wykrytych wcześniej podatnościi luk w zabezpieczeniach do przeprowadzenia kontrolowanego ataku na badane
Poleć książkęKup książkę
Rozdział 1. • Testy penetracyjne ukierunkowane na osiągnięcie celu
25
środowisko bez wprowadzania poważnych zagrożeń dla jego normalnegofunkcjonowania. Przeprowadzenie takich testów daje znacznie mniejszy odsetekwyników fałszywie pozytywnych, ponieważ pentesterzy próbują użyć każdejze znalezionych podatności. Poważnym ograniczeniem testów penetracyjnychmoże być to, że z reguły są one zawężane tylko do publicznie znanych podatnościi exploitów. Co więcej, podczas przeprowadzania testów penetracyjnych częstosłyszymy słowa: „Bingo! Mamy roota!”, ale bardzo rzadko pada pytanie: „Co robimydalej?”. Dzieje się tak z wielu bardzo różnych powodów, takich jak narzuconez góry ograniczenia zakresu przeprowadzanych testów penetracyjnych, koniecznośćraportowania tylko podatności wysokiego ryzyka czy ograniczenie przez klientazakresu testów tylko do wybranych systemów czy segmentów sieci.
Ćwiczenia zespołów Red Team (ang. Red Team Exercises) — jest to processzacowania efektywności ochrony badanego środowiska przed zagrożeniamiz cyberprzestrzeni i poprawiania zaimplementowanych zabezpieczeń. Podczastakich ćwiczeń z reguły stosowanych jest wiele różnych sposobów atakowaniabadanego środowiska, wykorzystujących metody socjotechniczne, kampaniephishingowe, ataki na sieci bezprzewodowe czy fizyczne testy penetracyjne.Ograniczeniem takich ćwiczeń mogą być ramy czasowe, restrykcje budżetowe,postępowanie według z góry ustalonych scenariuszy czy pomijanie niektórychdziałań, które mogą być zbyt niebezpieczne do przeprowadzenia w rzeczywistymśrodowisku produkcyjnym.
Bardzo często wszystkie trzy opisane procesy powiązane są z określeniami takimi jak hackingczy łamanie zabezpieczeń. Możemy co prawda powiedzieć klientowi, że spróbujemy włamaćsię do jego sieci i pokazać słabe strony jej zabezpieczeń, ale czy tak naprawdę klient czy wła-ściciel środowiska rozumie, na czym takie „hakowanie” czy „łamanie zabezpieczeń” będzie pole-gało? Jak możemy je zmierzyć? Jakie są kryteria „hakowania”? Skąd możemy wiedzieć, że „hako-wanie” czy „łamanie zabezpieczeń sieci” zostało zakończone? Wszystkie tego typu pytaniaw prostej mierze prowadzą do jednego, fundamentalnego zagadnienia — jaki jest podstawo-wy cel przeprowadzania danej operacji?
Podstawowym celem przeprowadzania testów penetracyjnych czy ćwiczeń zespołów Red Teamjest określenie stopnia podatności danego środowiska na cyberataki, wyznaczenie zagrożeńdla jego poszczególnych elementów składowych (poszczególnych segmentów sieci i działają-cych w nim systemów) oraz oszacowanie ryzyka, jakie stanowią dla funkcjonowania całegośrodowiska firmy czy organizacji. Z reguły nie jest to jednak kwestia ilości podatności znalezio-nych na poszczególnych hostach, ale to, jak bardzo eksponowany jest dany system i jak jego dzia-łanie jest krytyczne dla funkcjonowania całego środowiska. Nie każda znaleziona podatność i lukaw zabezpieczeniach jest istotna i nie zawsze musi się ona wiązać z poważnym zagrożeniem. Naprzykład znaleziona podatność na ataki typu Cross-Site Scripting (XSS) na odseparowanym, infor-macyjnym serwerze WWW nie musi stanowić poważnego zagrożenia dla funkcjonowania całejfirmy; nie zmienia to jednak faktu, że po wykryciu takiej luki właściciel systemu może podjąćdecyzję o minimalizacji zagrożenia poprzez zaimplementowanie takich rozwiązań jak WAF(ang. Web Application Firewall), zapobiegających przeprowadzaniu ataków typu XSS.
Poleć książkęKup książkę
Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych
26
Metodologia przeprowadzania testówNiestety metodologia przeprowadzania testów penetracyjnych bardzo często nie obejmujepowodów, dla których klient zlecił przeprowadzenie takich testów, ani nie zawiera listy da-nych, które są krytyczne dla biznesu i powinny być chronione w szczególny sposób. Pominięcietak istotnych informacji już na samym początku procesu może spowodować, że właściwy celprzeprowadzania takiego testu penetracyjnego ulegnie rozmyciu.
Bardzo wielu pentesterów niechętnie podchodzi do z góry wyznaczonych metodologii postę-powania, obawiając się, że może to w jakiś sposób ograniczać ich kreatywność w wyszukiwaniupodatności i luk w zabezpieczeniach, a następnie w ich efektywnym wykorzystywaniu. Testy pe-netracyjne często nie odzwierciedlają sposobu, w jaki może postępować potencjalny napastnik. Naprzykład klient zlecający test chce sprawdzić, czy pentester będzie w stanie w nieautoryzowanysposób uzyskać dostęp na poziomie administratora do atakowanego systemu, podczas gdy intencjąprawdziwego napastnika może być skopiowanie z tego systemu wrażliwych danych w sposób,który ani nie wymaga uzyskania takiego dostępu, ani nie spowoduje awarii systemu.
Aby można było poradzić sobie z ograniczeniami wynikającymi z formalnych metod testowa-nia, testy penetracyjne muszą być zintegrowane w ramach, które pozwalają spojrzeć na ata-kowaną sieć z punktu widzenia napastnika i w uporządkowany sposób przeprowadzić sku-teczny atak.
W roku 2009 Mike Cloppert, pracujący w zespole CERT firmy Lockheed Martin, opracował kon-cepcję znaną obecnie jako atak cybernetyczny (ang. Attacker Kill Chain), która opisywała poszcze-gólne kroki, jakie musi podjąć napastnik w celu przeprowadzenia efektywnego cyberataku na sys-tem sieciowy. Ataki takie nie zawsze mają przebieg liniowy, ponieważ niektóre z ich faz mogą byćprzeprowadzane równolegle. W danym okresie ten sam cel może być atakowany wielokrotnie,przy czym niektóre równoległe fazy ataku mogą być przeprowadzane w tym samym czasie.
W tej książce zmodyfikowaliśmy nieco oryginalny koncept cyberataku opracowany przez Mike’aClopperta, aby jeszcze dokładniej odzwierciedlić poszczególne operacje podejmowane przezpotencjalnego napastnika podczas atakowania całych sieci komputerowych oraz funkcjonują-cych w nich systemów, aplikacji i usług sieciowych.
Na rysunku przedstawionym poniżej pokazano, jak wygląda typowy atak cybernetyczny:
Poleć książkęKup książkę
Rozdział 1. • Testy penetracyjne ukierunkowane na osiągnięcie celu
27
Typowy atak cybernetyczny może wyglądać tak:
Faza rozpoznania — twierdzenie, że „rekonesans nigdy nie jest stratą czasu”,przyjęte i powszechnie stosowane przez wojsko na całym świecie, jest prostympotwierdzeniem tego, że przed rozpoczęciem ataku zawsze dobrze jest zebrać jaknajwiększą ilość informacji o nieprzyjacielu. Z tego samego powodu hakerzy przedrozpoczęciem cyberataku przeprowadzają zakrojone na szeroką skalę rozpoznaniecelu. W praktyce szacuje się, że na przeprowadzenie odpowiedniego rozpoznaniaśrodowiska celu cyberprzestępcy (jak również profesjonalni pentesterzy) zużywająnawet 70 procent czasu i zasobów całego ataku! Ogólnie rzecz biorąc,cyberprzestępcy najczęściej wykorzystują dwa scenariusze fazy rozpoznania:
Rozpoznanie pasywne — w takim scenariuszu napastnik nie wchodziw bezpośrednią interakcję ze środowiskiem celu, lecz korzysta na przykładz zawartości publicznie dostępnych stron internetowych, materiałów konferencyjnych,informacji dostępnych w mediach i serwisach sieciowych (a zwłaszcza w serwisachspołecznościowych). Bazując na pozyskanych informacjach, stara się wyznaczyćodpowiednią płaszczyznę ataku (ang. attack surface). Jedną z operacji częstowykonywanych podczas rozpoznania pasywnego jest przygotowywanie listyobecnych i poprzednich pracowników atakowanej firmy, która może stanowićdobrą bazę do łamania haseł metodą brute-force lub może być wykorzystanado przeprowadzania ataków socjotechnicznych. Rozpoznanie przeprowadzanew sposób pasywny jest bardzo trudne, a często wręcz niemożliwe do wykrycia.
Rozpoznanie aktywne — aktywność napastnika związana z aktywnymrozpoznawaniem środowiska celu może zostać wykryta, ale w praktyce bardzotrudno ją odróżnić od tego, z czym większość firm czy organizacji styka się naco dzień. Rozpoznanie aktywne może obejmować skanowanie portów, zdalneskanowanie systemów w poszukiwaniu podatności i luk w zabezpieczeniach,a nawet fizyczne odwiedziny w siedzibie firmy pod pozorem udawania klienta,dostawcy pizzy czy serwisanta.
Faza dostawy — w tej fazie dokonywany jest wybór i opracowanie narzędzia, którezostanie użyte do wykorzystania danego exploita podczas przeprowadzania ataku.To, jakie narzędzie zostanie finalnie wybrane, zależy zarówno od intencji atakującego,jak i od planowanego sposobu dostarczenia narzędzia do atakowanego celu (na przykładza pomocą wiadomości poczty elektronicznej, sieci bezprzewodowej czy usługi sieciWWW). Znaczenie fazy dostawy i jej wpływ na przeprowadzanie ataku zostanąszczegółowo omówione w drugiej połowie książki.
Faza penetracji (faza ataku) — jest to faza, w której określony exploit zostajepomyślnie wykorzystany, co pozwala napastnikowi na osiągnięcie zaplanowanegocelu. Skompromitowanie celu mogło wystąpić w jednej fazie (na przykład napastnikwykorzystał dobrze znaną podatność danego systemu na ataki z przepełnianiembufora), ale równie dobrze mogło wymagać przeprowadzenia operacji wielofazowej(na przykład napastnik, wykorzystując metody socjotechniczne, przedostał się nateren firmy i skradł egzemplarz firmowej książki telefonicznej. Znajdujące się taminformacje zostały wykorzystane do utworzenia słownika danych użytego następnie
Poleć książkęKup książkę
Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych
28
do przeprowadzenia ataku typu brute-force na portal firmy. Dodatkowo na pozyskanepoprzez kradzież książki adresy poczty elektronicznej pracowników napastnikporozsyłał wiadomości mające na celu skłonić użytkowników do kliknięcia osadzonegołącza i pobrania odpowiednio spreparowanego, złośliwego dokumentu PDF,za pomocą którego napastnik mógłby przejąć kontrolę nad zainfekowanymisystemami). Ataki wielofazowe są powszechnie wykorzystywane w scenariuszach,gdzie celem ataku jest określona firma czy organizacja.
Faza post-exploit (eksploracja środowiska celu) — faza eksploracji środowiskacelu bardzo często bywa niepoprawnie nazwana fazą eksfiltracji (ang. exfiltrationphase), ponieważ dość powszechnie takie ataki postrzegane są niemal wyłączniejako metody kradzieży poufnych i wrażliwych danych (takich jak listy użytkownikówi haseł dostępu, dane osobowe czy informacje finansowe). W praktyce jednaknapastnicy mają często zupełnie inne cele. Na przykład nieuczciwa firma możebyć zainteresowana przeprowadzeniem ataku typu DoS na internetową sieć usługswojego konkurenta, czego efektem będzie potencjalne zwiększenie zainteresowaniaklientów swoimi rozwiązaniami. Z tego względu faza eksploracji środowiska celumusi skupiać się na wielu potencjalnie możliwych czynnościach napastnika. Jednez najczęściej obserwowanych działań związanych z exploitami mają miejsce wtedy,gdy napastnicy próbują zwiększyć swoje uprawnienia do najwyższego możliwegopoziomu (eskalacja pionowa) i uzyskać dostęp do jak największej liczby konti systemów (eskalacja pozioma).
Faza post-exploit (utrzymanie dostępu) — przełamanie zabezpieczeń i uzyskaniedostępu do atakowanego systemu może być dla napastnika bardzo wartościowe,ale z pewnością ta wartość znacząco wzrośnie, jeżeli napastnikowi uda się utworzyćprzyczółek i zachować stały dostęp do skompromitowanego systemu, dzięki czemubędzie mógł w dowolnym momencie powrócić do zaatakowanego systemu. Z punktuwidzenia zespołu odpowiedzialnego za ochronę systemu ten element cyberatakujest zazwyczaj najłatwiejszy do wykrycia.
Przebieg ataku cybernetycznego (ang. kill chain) jest swego rodzaju metamodelem zachowanianapastnika próbującego przełamać zabezpieczenia atakowanego celu i uzyskać do niego nie-autoryzowany dostęp. Jako metamodel atak cybernetyczny może zawierać dowolną, otwartą lubkomercyjną metodologię przeprowadzania testów penetracyjnych. W przeciwieństwie jednakdo metodologii cyberatak pokazuje przebieg ataku na środowisko celu z perspektywy strate-gicznej. Układ i zawartość naszej książki zostały dobrane tak, aby odzwierciedlić czynnościwykonywane przez napastnika podczas przeprowadzania ataku.
Wprowadzenie do systemu Kali Linux— jego historia i przeznaczenieSystem Kali Linux jest następcą znanego i bardzo popularnego niegdyś systemu BackTrack.W środowisku pentesterów Kali Linux jest swego rodzaju standardem wśród narzędzi i pa-kietów wspomagających przeprowadzanie testów penetracyjnych sieci komputerowych. Autorami
Poleć książkęKup książkę
Rozdział 1. • Testy penetracyjne ukierunkowane na osiągnięcie celu
29
systemu są Mati Aharoni oraz Devon Kearns z firmy Offensive Security. Poniżej przedsta-wiamy krótką historię systemu Kali Linux od momentu jego powstania:
W marcu 2013 roku system BackTrack został zastąpiony systemem Kali Linux,wykorzystującym nową architekturę opartą na systemie Debian GNU/Linux.
Kali 1.1.0 (data wydania: 9 lutego 2015) — kolejna wersja systemu Kali Linuxpojawiła się dopiero po dwóch latach od jego premiery i przyniosła aktualizację jądrasystemu do wersji 3.18, poprawki modułów wspomagających ataki ze wstrzykiwaniemramek do sieci Wi-Fi oraz obsługę nowych sterowników bezprzewodowych kartsieciowych; w sumie w tym wydaniu poprawionych zostało ponad 58 błędów.W następnych wydaniach tej wersji, takich jak Kali 1.1.0a, poprawione zostałyrównież drobne błędy i inne problemy instalatora.
Kali 2.0 (data wydania: 11 sierpnia 2015) — wersja 2.0 była bardzo poważnąaktualizacją, zawierającą m.in. duże zmiany w interfejsie użytkownika; stała siętzw. dystrybucją ciągłą systemu Kali Linux (ang. rolling distribution). Począwszyod wersji 2.0, można dokonywać aktualizacji systemu Kali Linux ze starszej do nowszejwersji.
Kali 2016.1 (data wydania: 21 stycznia 2016) — pierwsze ciągłe wydanie systemuKali Linux, które przyniosło aktualizację jądra do wersji 4.3 oraz nowe środowiskoGNOME w wersji 3.18.
Kali 2016.2 (data wydania: 31 sierpnia 2016) — kolejne ciągłe wydanie systemuKali Linux, wyposażone w jądro 4.6, środowisko GNOME 3.20.2 oraz wielepoprawek i aktualizacji.
System Kali Linux w wersji 2.0 (i w kolejnych aktualizacjach) posiada między innymi nastę-pujące cechy:
Ponad 300 narzędzi wspomagających przeprowadzanie testów penetracyjnych orazekspertyz z informatyki śledczej. W kolejnych wydaniach systemu poszczególnenarzędzia są sukcesywnie aktualizowane bądź zastępowane nowymi wersjami. Wielez tych narzędzi współpracuje z bezprzewodowymi kartami sieciowymi i pozwalana przeprowadzanie testów penetracyjnych w sieciach Wi-Fi.
Obsługa wielu środowisk desktopowych, takich jak KDE, GNOME, Xfce, Mate,e17, lxde czy i3wm.
Narzędzia zgodne z dystrybucją Debian są synchronizowane z repozytoriamico najmniej cztery razy dziennie, co pozwala na ich aktualizację oraz instalacjępoprawek niemal natychmiast po ich opublikowaniu.
Obsługa środowiska Secure Development Environment oraz pakietów i repozytoriówpodpisanych kluczem GPG.
Wsparcie dla użytkowników chcących przygotować indywidualne, dostosowanedo własnych potrzeb dystrybucje ISO systemu Kali Linux. Funkcja bootstrapznakomicie ułatwia instalowanie systemu również w dużych środowiskachkorporacyjnych, gdzie proces instalacji może być zautomatyzowany przy użyciupredefiniowanych plików konfiguracyjnych (ang. Linux preseed files).
Poleć książkęKup książkę
Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych
30
Ze względu na rosnącą popularność (i spadające ceny) systemów z procesoramiARM w systemie zaimplementowana została również obsługa architektur ARMELi ARMHF, dzięki czemu Kali Linux można instalować na takich urządzeniach jakrk3306 mk/ss808, Raspberry Pi, ODROID U2/X2, Samsung Chromebook, EfikaMX,Beaglebone Black, CuBox czy Galaxy Note 10.1.
Mimo rosnącej popularności Kali Linux nadal pozostaje systemem klasy opensource, dostępnym bezpłatnie dla każdego i co najważniejsze — aktywnie wspieranymprzez ogromną społeczność użytkowników.
Celem systemu Kali Linux jest zebranie wszystkich najważniejszych narzędzi wspomagającychprzeprowadzanie testów bezpieczeństwa i testów penetracyjnych w jednej, elastycznej i bar-dzo uniwersalnej platformie systemowej.
Instalowanie i aktualizowaniesystemu Kali LinuxW poprzednich wydaniach tej książki koncentrowaliśmy się głównie na procesie instalacjisystemu Kali Linux w maszynach wirtualnych VMware, zatem tym razem postaramy się niecobardziej zagłębić w różne inne techniki instalowania i aktualizowania systemu Kali Linux.
Uruchamianie systemu Kali Linuxz urządzenia przenośnegoProces instalowania systemu Kali Linux na urządzeniu przenośnym jest całkiem prosty. W niektó-rych sytuacjach klienci nie zezwalają na podłączanie i używanie „obcych” laptopów w ich sie-ci — klient dostarcza wtedy pentesterowi odpowiednie komputery, przy użyciu których maon przeprowadzić testowanie. Przeprowadzanie testów penetracyjnych przy użyciu systemuKali Linux uruchomionego z urządzenia przenośnego ma wiele zalet, na przykład:
Wszystko zmieścisz w kieszeni (pamięci USB czy zewnętrzne dyski twarde mająmałe rozmiary).
System Kali Linux możesz uruchomić na komputerze bez koniecznościwprowadzania jakichkolwiek modyfikacji w zainstalowanym systemie operacyjnym.
Korzystając z urządzeń przenośnych, możesz utworzyć kilka osobnych wersjisystemu Kali Linux, dostosowanych do określonych scenariuszy testowaniai wymagań klienta.
Poleć książkęKup książkę
Rozdział 1. • Testy penetracyjne ukierunkowane na osiągnięcie celu
31
Jeżeli pracujesz na komputerze działającym pod kontrolą systemu Windows, zainstalowaniesystemu Kali Linux na urządzeniu przenośnym będzie wymagało wykonania zaledwie trzechkroków:
1. Pobierz oficjalny obraz systemu Kali Linux ze strony internetowej o adresie:
https://docs.kali.org/introduction/download-official-kali-linux-images
2. Pobierz program Win32 Disk Imager ze strony internetowejhttps://sourceforge.net/projects/win32diskimager/.
3. Uruchom program Win32 Disk Imager jako administrator. Podłącz przenośną pamięćUSB do dowolnego portu USB komputera. Na ekranie powinno pojawić się oknopodobne do przedstawionego poniżej. Wybierz urządzenie, na którym chceszzainstalować system Kali Linux, i naciśnij przycisk Write (zapisz):
Po zakończeniu instalowania systemu zamknij program Win32 Disk Imager i bezpiecznieodłącz pamięć USB. Kali Linux zainstalowany na tym urządzeniu jest już gotowy do użycia; mo-żesz je na przykład podłączyć do laptopa i uruchomić z niego system Kali Linux. Jeżeli chceszzainstalować system Kali Linux z poziomu komputera działającego pod kontrolą systemu Linux,proces instalacji jest jeszcze prostszy i wymaga wykonania z poziomu konsoli tylko dwóchpoleceń. Pierwsze to sudo fdisk -l, które wyświetla listę wszystkich zamontowanych napędówdyskowych, a drugie to dd if=kali linux.iso of=/dev/nazwa_urządzenia bs=512k. To wszystko.Polecenie dd pobiera instalacyjny plik ISO i zapisuje jego zawartość na podanym urządzeniu.Polecenie pobiera kilka argumentów wywołania, gdzie if to nazwa wejściowego pliku ISO, ofto nazwa urządzenia docelowego, a bs to rozmiar zapisywanych bloków.
Instalowanie systemu Kali Linuxw maszynie wirtualnejW tej sekcji szczegółowo omówimy sposób instalowania systemu Kali Linux w maszynach wirtu-alnych działających pod kontrolą oprogramowania VMware Workstation Player oraz OracleVirtualBox.
Poleć książkęKup książkę
Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych
32
VMware Workstation PlayerVMware Workstation Player (starsze wersje nosiły nazwę VMware Player) to oprogramowa-nie wirtualizacyjne, pozwalające na uruchamianie maszyn wirtualnych działających pod kon-trolą innych systemów operacyjnych, które jest bezpłatne dla zastosowań osobistych. Dla za-stosowań komercyjnych wymagane jest zakupienie odpowiedniej licencji. Oprogramowaniemożna pobrać ze strony internetowej o następującym adresie URL:
https://www.vmware.com/products/player/playerpro-evaluation.html
Poniżej przedstawiamy krok po kroku procedurę instalacji systemu Kali Linux w maszyniewirtualnej VMware Workstation Player.
Po pobraniu pliku instalacyjnego VMware Workstation Player uruchom go, a na ekranie po-jawi się pierwszy ekran kreatora instalacji, tak jak to zostało pokazane poniżej. Naciśnij przy-cisk Next (dalej).
Na ekranie pojawi się okno z warunkami licencji. Naciśnij przycisk Accept (akceptuję), a na-stępnie na kolejnych ekranach naciskaj przycisk Next — aż do momentu, kiedy pojawi sięekran przedstawiony na pierwszym rysunku na następnej stronie, sygnalizujący, że proces in-stalacji programu VMware Workstation Player został zakończony pomyślnie.
Kolejnym krokiem będzie utworzenie maszyny wirtualnej i zainstalowanie w niej systemuKali Linux, którego instalacyjny obraz ISO pobraliśmy już wcześniej z oficjalnej strony interneto-wej. Naciśnij przycisk Create a New Virtual machine (utwórz nową maszynę wirtualną), a następ-nie wybierz opcję Installer disc image file (iso) (plik obrazu ISO dysku instalacyjnego), wskażodpowiedni plik ISO i naciśnij przycisk Next. Wpisz nazwę tworzonej maszyny wirtualnej (naprzykład HackBox) i wybierz miejsce, w którym będą przechowywane jej pliki. Naciśnij przy-cisk Next, określ rozmiar dysku maszyny wirtualnej dla systemu Kali Linux (rekomendowanyrozmiar to 10 GB), naciskaj przycisk Next na kolejnych ekranach kreatora aż do utworzeniamaszyny wirtualnej. Po jej uruchomieniu powinieneś zobaczyć następujący ekran (patrz drugirysunek na następnej stronie).
Poleć książkęKup książkę
Rozdział 1. • Testy penetracyjne ukierunkowane na osiągnięcie celu
33
Z poziomu menu uruchomieniowego możesz wybrać opcję instalacji systemu Kali Linux nadysku lub uruchomienia go w wersji Live (bez konieczności instalacji). Po zakończeniu insta-lacji system Kali Linux powinien uruchamiać się w maszynie wirtualnej VMware bez żadnychproblemów, tak jak to zostało pokazane na rysunku:
Poleć książkęKup książkę
Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych
34
Począwszy od wersji 2016.2, z systemu Kali Linux zostały usunięte repozytoria Sana. Sana tonazwa kodowa wersji systemu Kali Linux, która używała repozytoriów zawierających pakiety.Z tego powodu pierwszym, zdecydowanie zalecanym krokiem, jaki powinieneś wykonać pozainstalowaniu i uruchomieniu systemu Kali Linux, powinno być wykonanie polecenia apt-get update, dzięki któremu zaktualizowana zostanie zawartość pliku sources.lst.
VirtualBoxProgram VirtualBox jest rozwiązaniem bardzo podobnym do VMware Workstation Player. Jestto oprogramowanie pozwalające na tworzenie i uruchamianie maszyn wirtualnych, które jestbezpłatnie udostępniane w wersji open source. Pakiet VirtualBox możesz pobrać z następują-cej strony internetowej:
https://www.virtualbox.org/wiki/Downloads
Teraz pokażemy sposób instalacji systemu Kali Linux w maszynie wirtualnej działającej podkontrolą oprogramowania VirtualBox. Podobnie jak to miało miejsce w przypadku VMware,najpierw musimy zainstalować sam pakiet VirtualBox. Aby to zrobić, uruchom pobrany pro-gram instalacyjny; na ekranie powinieneś zobaczyć pierwsze okno kreatora instalacji (patrzpierwszy rysunek na następnej stronie).
Naciśnij przycisk Next (dalej), a na ekranie pojawi się lista opcji konfiguracyjnych pakietu. W na-szym przypadku wybierzemy domyślną opcję VirtualBox Application (patrz drugi rysunek nanastępnej stronie).
Poleć książkęKup książkę
Rozdział 1. • Testy penetracyjne ukierunkowane na osiągnięcie celu
35
Naciśnij przycisk Next, a na ekranie pojawi się kolejne okno kreatora, pokazujące postęp pro-cesu instalacji, tak jak to zostało pokazane na rysunku poniżej:
Poleć książkęKup książkę
Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych
36
Jeżeli proces instalacji pakietu Oracle VirtualBox zakończy się pomyślnie, po uruchomieniuprogramu ekran powinien wyglądać tak, jak to zostało pokazane poniżej:
Kolejnym krokiem będzie utworzenie maszyny wirtualnej i zainstalowanie w niej systemuKali Linux. Aby to zrobić, naciśnij przycisk New (nowy), znajdujący się na pasku narzędziprogramu VirtualBox. Na ekranie powinno się pojawić okno kreatora tworzenia nowej maszynywirtualnej. W polu Name (nazwa) wpisz żądaną nazwę maszyny (na przykład HackBox), a na-stępnie w zależności od pobranej wersji systemu Kali Linux wybierz odpowiedni typ maszynywirtualnej, na przykład Debian (64-bit) albo Debian (32-bit) (zobacz rysunek poniżej).
Naciśnij przycisk Next i podaj żądany rozmiar pamięci RAM dla systemu Kali Linux. Rekomen-dowana wielkość to co najmniej 1 GB. W kolejnym kroku utworzymy wirtualny dysk twardydla instalowanego systemu. Naciśnij przycisk Next i wybierz typ dysku; w większości przy-padków będziemy korzystać z domyślnej opcji VDI (VirtualBox Disk Image), tak jak to zostałopokazane na pierwszym rysunku na następnej stronie.
Poleć książkęKup książkę
Rozdział 1. • Testy penetracyjne ukierunkowane na osiągnięcie celu
37
Naciśnij przycisk Next i w kolejnym oknie kreatora wybierz rozmiar dysku twardego, któryzostanie utworzony (zobacz rysunek poniżej):
Na koniec musimy przejść do ustawień maszyny wirtualnej HackBox (opcja Settings) i podłą-czyć instalacyjny obraz ISO systemu Kali Linux jako dysk zewnętrzny, tak jak to zostało poka-zane na pierwszym rysunku na następnej stronie.
Poleć książkęKup książkę
Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych
38
Gotowe. Po uruchomieniu maszyny wirtualnej na ekranie powinno się pojawić okno, w któ-rym z menu uruchomieniowego możesz wybrać opcję uruchomienia wersji Live lub zainsta-lowania systemu Kali Linux na dysku (zobacz rysunek poniżej):
Poleć książkęKup książkę
Rozdział 1. • Testy penetracyjne ukierunkowane na osiągnięcie celu
39
Instalowanie aplikacji DockerDocker to aplikacja typu open source pozwalająca na tworzenie, dostarczanie i uruchamianieaplikacji w tzw. kontenerach. Docker zapewnia również dodatkową warstwę abstrakcji i au-tomatyzacji na poziomie wirtualizacji systemu operacyjnego.
Docker jest dostępny w wersjach dla systemów Windows, macOS, AWS (ang. Amazon WebServices) oraz Azure. Dla systemu Windows pakiet Docker możesz pobrać z następującegoadresu URL:
https://download.docker.com/win/stable/InstallDocker.msi
Poniżej pokażemy, w jaki sposób możesz zainstalować pakiet Docker na komputerze działają-cym pod kontrolą systemu Windows 10:
Docker wykorzystuje mechanizm Hyper-V systemu Microsoft Windows. Jeżeli Hyper-V niejest włączony, to najprawdopodobniej na ekranie pojawi się następujący komunikat:
Po naciśnięciu przycisku Ok mechanizm Hyper-V zostanie włączony i będziesz mógł spraw-dzić działanie programu Docker, uruchamiając konsolę i wykonując polecenie docker, tak jakto zostało pokazane na rysunku:
Poleć książkęKup książkę
Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych
40
Na tym proces instalowania aplikacji Docker zostaje zakończony. Teraz musimy zainstalowaćsystem Kali Linux. Aby to zrobić, powinieneś z poziomu konsoli wykonać polecenie dockerpull kalilinux/kali-linux-docker, tak jak to zostało pokazane na rysunku poniżej:
Po załadowaniu systemu Kali Linux do aplikacji Docker powinieneś być w stanie uruchomićpowłokę bash z pobranego kontenera Kali Docker poprzez wykonanie polecenia run -t -ikalilinux/kal-linux-docker /bin/bash, tak jak to zostało pokazane na rysunku poniżej:
System Kali Linux możesz teraz uruchomić bezpośrednio z poziomu kontenera Docker.Zwróć uwagę, że Docker wykorzystuje pracujące w tle środowisko VirtualBox, zatem w takiejsytuacji nasza maszyna wirtualna z systemem Kali Linux działa w środowisku VirtualBox zapośrednictwem kontenera Docker.
Poleć książkęKup książkę
Rozdział 1. • Testy penetracyjne ukierunkowane na osiągnięcie celu
41
Instalowanie systemu Kali Linux w chmurze— tworzenie instancji AWSAWS to opracowana przez firmę Amazon platforma oparta na technologii chmury, której pod-stawowym przeznaczeniem jest udostępnianie użytkownikom mocy obliczeniowej, przestrzenidyskowej oraz dostarczanie treści. Jako pentester możesz wykorzystać AWS do przeprowa-dzania testów penetracyjnych. W tym podrozdziale pokażemy najłatwiejszą metodę zainsta-lowania systemu Kali Linux w chmurze AWS, co może być bardzo użyteczne w przypadku korzy-stania z zewnętrznych serwerów C2 (ang. command and control).
Najpierw musimy utworzyć swoje konto na platformie AWS. Aby to zrobić, powinieneś od-wiedzić następującą stronę internetową:
https://console.aws.amazon.com/console/home
Po zalogowaniu się na konto AWS możesz zobaczyć listę wszystkich dostępnych usług, tak jakto zostało pokazane na rysunku poniżej:
Kolejnym krokiem będzie uruchomienie systemu Kali Linux na platformie AWS. Zrobimy to,korzystając z odpowiednio dostosowanej wersji systemu Kali Linux bazującej na dystrybucjiDebian. Dzięki społeczności programistów open source możemy w bardzo prosty sposób uru-chomić prekonfigurowaną wersję systemu Kali Linux 2016.2 za pośrednictwem platformyAmazon Marketplace. Adres URL przedstawiony poniżej pozwoli Ci na szybkie uruchomie-nie systemu Kali Linux:
https://aws.amazon.com/marketplace/pp/B01M26MMTT
Po jego uruchomieniu w oknie przeglądarki powinna się pojawić strona, która będzie wyglą-dała mniej więcej tak:
Poleć książkęKup książkę
Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych
42
Naciśnij przycisk Accept Software Terms & Launch with 1-Click (zaakceptuj warunki licencjii uruchom jednym kliknięciem), a następnie przejdź do konsoli AWS, odwiedzając stronęhttps://console.aws.amazon.com/ec2/v2/home?region=us-east-1. Teraz powinieneś być już w stanieuruchomić wybraną instancję systemu Kali Linux, wybierając odpowiedni wiersz lub identyfika-tor instancji (ang. Instance ID) i naciskając przycisk Launch Instance (uruchom instancję), takjak to zostało pokazane na rysunku poniżej:
Teraz musisz utworzyć parę kluczy, co zagwarantuje, że tylko Ty będziesz miał dostęp do tejinstancji systemu Kali Linux. Po utworzeniu będziesz mógł zalogować się do konta w chmu-rze AWS za pomocą swojego wygenerowanego wcześniej klucza prywatnego. Aby to zrobić,powinieneś z poziomu wiersza poleceń powłoki wykonać następującą komendę:
ssh -i klucz_prywatny.pem ec2-user@ip_serwera_DNS_Amazon
Pojawienie się ekranu pokazanego na następnej stronie będzie świadczyło o tym, że pomyśl-nie zainstalowałeś system Kali Linux w chmurze AWS:
Poleć książkęKup książkę
Rozdział 1. • Testy penetracyjne ukierunkowane na osiągnięcie celu
43
Aby legalnie używać zasobów chmury AWS do przeprowadzania testów penetracyjnych, mu-sisz przestrzegać wszystkich postanowień i warunków licencji. Przed rozpoczęciem jakich-kolwiek testów czy ataków musisz też posiadać wszystkie wymagane prawem zgody i spełnićwszystkie inne niezbędne warunki prawne.
Dostosowywanie systemu Kali LinuxZainstalowanie systemu Kali Linux to zaledwie początek, ponieważ równie ważnym, o ile nieważniejszym etapem jest odpowiednie skonfigurowanie i dostosowanie systemu do własnychpotrzeb i wymagań. W tym podrozdziale szczegółowo omówimy proces konfigurowania tegosystemu.
Poleć książkęKup książkę
Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych
44
Konfigurowanie i dostosowywaniesystemu Kali LinuxKali Linux to system wspomagający przeprowadzanie testów penetracyjnych. Jednak aby takisystem był efektywny, pentester nie może się czuć w żaden sposób związany czy ograniczonyprzez domyślnie zainstalowane narzędzia czy domyślną konfigurację interfejsu użytkownikai pulpitu. Dostosowując system Kali Linux do własnych potrzeb i wymagań, pentester możepolepszyć poziom zabezpieczenia danych na temat środowiska celu, zbieranych podczas te-stów penetracyjnych, a także znacząco ułatwić ich przeprowadzanie.
Najczęściej podczas dostosowywania systemu Kali Linux wykonywane są następujące operacje:
Resetowanie i zmiana hasła użytkownika root.
Dodawanie innych kont użytkowników, którzy nie posiadają uprawnieńużytkownika root.
Optymalizacja i przyspieszanie działania systemu Kali Linux.
Udostępnianie i współużytkowanie wybranych folderów z systemem Windows.
Tworzenie zaszyfrowanych folderów.
Zmiana hasła użytkownika rootAby zmienić hasło użytkownika root, powinieneś wykonać następujące polecenie:
passwd root
System poprosi o wpisanie nowego hasła, tak jak to zostało pokazane na rysunku poniżej:
Dodawanie zwykłego konta użytkownikaBardzo wiele narzędzi dostępnych w systemie Kali Linux musi być uruchamianych na pra-wach użytkownika root. Ciągła praca z uprawnieniami użytkownika root niesie jednak ze sobąpoważne zagrożenia, na przykład prosta pomyłka czy błąd podczas wpisywania nazwy pole-cenia może skutkować awarią danej aplikacji czy nawet uszkodzeniem testowanego systemu.W niektórych przypadkach preferowanym rozwiązaniem jest wcześniejsze sprawdzenie działaniapolecenia na prawach zwykłego użytkownika. Warto zauważyć, że niektóre aplikacje wręczwymuszają uruchamianie z poziomu użytkownika o niższych uprawnieniach niż administratorsystemu.
Poleć książkęKup książkę
Rozdział 1. • Testy penetracyjne ukierunkowane na osiągnięcie celu
45
Aby utworzyć konto zwykłego użytkownika, możesz po prostu z poziomu konsoli użyć pole-cenia adduser, a następnie postępować według poleceń pojawiających się na ekranie, tak jakto zostało pokazane na rysunku poniżej:
Przyspieszanie działania systemu Kali LinuxIstnieje co najmniej kilka narzędzi, których możesz używać do optymalizacji i przyspieszaniadziałania systemu Kali Linux:
Jeżeli korzystasz z systemu Kali Linux działającego w maszynie wirtualnej,powinieneś dodatkowo zainstalować w niej pakiet Guest Additions (VirtualBox)lub VMware Tools (VMware). Pamiętaj, aby przed instalacją dodatkowo wykonaćpolecenie apt-get update.
Kiedy tworzysz nową maszynę wirtualną, powinieneś zamiast dysku alokowanegodynamicznie wybrać dysk twardy o stałej wielkości. Takie rozwiązanie powodujeszybsze zapisywanie plików na dysku i zmniejsza ich fragmentację.
Aplikacja preload identyfikuje najczęściej wykorzystywane przez użytkownikaprogramy i przyspiesza działanie systemu poprzez wcześniejsze buforowanieodpowiednich plików wykonywalnych i zależności. Aby ją zainstalować, powinieneśwykonać polecenie apt-get install preload. Po zainstalowaniu i zrestartowaniusystemu aplikacja działa całkowicie automatycznie.
BleachBit (apt-get install bleachbit) to aplikacja, która optymalizuje działaniesystemu poprzez zwalnianie niepotrzebnie zajętych zasobów dyskowych, usuwanieciasteczek, czyszczenie historii przeglądania sieci internet, usuwanie plikówtymczasowych, kasowanie logów oraz innych niepotrzebnych plików. Oprócz tegoaplikacja posiada kilka dodatkowych, przydatnych funkcji, takich jak usuwanieplików metodą nadpisywania — co uniemożliwia ich odzyskanie — czy nadpisywanieniealokowanej przestrzeni dyskowej — co powoduje definitywne usunięcie resztekdanych pozostawionych przez skasowane wcześniej pliki.
Poleć książkęKup książkę
Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych
46
Domyślnie Kali Linux nie wyświetla wszystkich aplikacji uruchamianych podczasładowania systemu. Każda aplikacja ładowana i uruchamiana podczas bootowaniasystemu wydłuża ten proces, może zabierać cenne zasoby i wpływać na zmniejszeniewydajności działania systemu. Aby przeglądać listę takich programów i zablokowaćaplikacje niepotrzebnie ładowane podczas uruchamiania systemu, powinieneśzainstalować program Boot Up Manager (BUM), pokazany na rysunku poniżej.Aby to zrobić, powinieneś wykonać polecenie apt-get install bum.
Zainstaluj program gnome-do (apt-get install gnome-do), który pozwala nauruchamianie aplikacji bezpośrednio z poziomu klawiatury. Aby ją skonfigurować,musisz ją uruchomić z menu Applications/Accessories (aplikacje/akcesoria), a następniewybrać menu Preferences (właściwości), aktywować opcję Quiet Launch (cicheuruchamianie), wybrać uruchamiającą kombinację klawiszy (na przykład Ctrl+Shift)i wpisać wiersz polecenia, który powinien zostać wykonany po naciśnięciu tejkombinacji.
Pamiętaj, że do wykonywania bardziej złożonych operacji możesz używać nie tylkoskrótów klawiszowych, ale też odpowiednio przygotowanych skryptów powłoki.
Udostępnianie i współużytkowanie folderówz systemem operacyjnym hostaSystem Kali Linux pozwala na udostępnianie plików i danych aplikacjom działającym podkontrolą innych systemów operacyjnych, a zwłaszcza systemu Microsoft Windows. Najbardziejefektywnym sposobem udostępniania danych jest utworzenie dedykowanego foldera, którybędzie dostępny zarówno z poziomu systemu operacyjnego hosta, jak i z poziomu systemuKali Linux działającego w maszynie wirtualnej.
Poleć książkęKup książkę
Rozdział 1. • Testy penetracyjne ukierunkowane na osiągnięcie celu
47
Kiedy w takim współdzielonym folderze zostaną umieszczone jakieś pliki, stają się one na-tychmiast dostępne dla wszystkich innych systemów korzystających z tego foldera.
Aby utworzyć taki współdzielony folder, powinieneś wykonać następujące polecenia:
1. Utwórz folder w systemie plików hosta. W naszym przypadku utworzymy foldero nazwie Kali_Share.
2. Kliknij nowo utworzony folder prawym przyciskiem myszy i wybierz polecenieSharing (udostępnianie).
3. Włącz udostępnianie foldera i upewnij się, że dostęp będą mieli wszyscyużytkownicy (Everyone), a poziom uprawnień ustawiony jest na prawo odczytui zapisu (Read/Write).
4. Jeżeli jeszcze tego nie zrobiłeś, zainstaluj w maszynie wirtualnej dodatki GuestAdditions (dla VirtualBox) lub VMware Tools (dla VMware); więcej szczegółowychinformacji na ten temat znajdziesz w dodatku, w sekcji „Instalowanie systemu KaliLinux”.
5. Po zakończeniu instalacji przejdź do menu głównego VMware, wybierz polecenieManage/Virtual Machine Settings (zarządzaj/ustawienia maszyny wirtualnej), przejdźna kartę Options (opcje), kliknij kategorię Shared Folders (foldery współdzielone)i zaznacz opcję Always Enabled (zawsze włączone). Wybierz katalog w systemieplików hosta, który ma być współdzielony, tak jak to zostało pokazane na rysunkuponiżej:
Poleć książkęKup książkę
Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych
48
6. Jeżeli używasz programu Oracle VirtualBox, zaznacz maszynę wirtualną, wybierzpolecenie Settings (ustawienia), zaznacz opcję Shared Folders (foldery współdzielone)i wybierz katalog w systemie plików hosta, który ma być współdzielony, tak jak tozostało pokazane na rysunku poniżej:
W starszych wersjach programu VMware Player menu wygląda nieco inaczej.
7. Przejdź do systemu Kali Linux w maszynie wirtualnej i uruchom przeglądarkęplików. Wybrany współdzielony katalog powinien być widoczny w folderze mnt(lub w jego subfolderze hgfs).
8. Przeciągnij ikonę współdzielonego foldera na pulpit systemu Kali Linux,aby utworzyć na nim skrót do tego foldera.
9. Od tej chwili wszystkie pliki, jakie umieścisz we współdzielonym folderze, będądostępne zarówno dla systemu Kali Linux, jak i z poziomu systemu operacyjnegohosta maszyny wirtualnej.
Pamiętaj, że jeżeli we współdzielonym folderze chcesz przechowywać wrażliwe dane pozy-skane w trakcie przeprowadzania testu penetracyjnego, to zawartość takiego foldera powinnabyć zaszyfrowana. Dzięki temu wrażliwe dane klienta będą lepiej zabezpieczone i chronioneprzed przypadkowym wyciekiem, gdyby zawierający je dysk został zagubiony lub skradziony.
Dostosowywanie systemu Kali Linux do własnych potrzebprzy użyciu skryptów powłoki bashW systemie Linux dostępnych jest wiele różnych rodzajów powłok, za pomocą których mo-żemy korzystać z systemu z poziomu wiersza poleceń konsoli. Najczęściej możemy spotkaćpowłoki sh, bash, csh, tcsh oraz ksh.
Poleć książkęKup książkę
Rozdział 1. • Testy penetracyjne ukierunkowane na osiągnięcie celu
49
W zależności od celu przeprowadzanego testu penetracyjnego do dostosowania systemu KaliLinux do własnych potrzeb możemy użyć jednego z następujących skryptów powłoki bash:
https://github.com/leebaird/discover/blob/master/update.sh
https://code.google.com/archive/p/lazykali/downloads
Budowanie środowiska testowegoKażdy pentester powinien utworzyć swoje własne środowisko testowe, w którym będziemożna testować różne podatności i luki w zabezpieczeniach przed dokonaniem próby ich wy-korzystania podczas rzeczywistego testu penetracyjnego w środowisku klienta.
Konfigurowanie sieci wirtualnej z usługą Active DirectoryZdecydowana większość dużych firm i organizacji do zarządzania kontami użytkowników, za-sobami plikowymi, czy drukarkami sieciowymi wykorzystuje w swoich środowiskach usługęMicrosoft Active Directory. Potencjalni napastnicy obecnie nie są już zainteresowani wyłącz-nie możliwością wykonywania poleceń na skompromitowanym serwerze, ponieważ znaczniebardziej atrakcyjnym dla nich celem może być przejęcie kontroli nad kontrolerem domeny,który spełnia rolę swego rodzaju podwójnej helisy DNA dla całej firmy. W dalszej części książkibędziemy opisywać niektóre zaawansowane ataki na usługę Active Directory oraz serweryDNS danego środowiska. W tej sekcji pokażemy, jak zainstalować usługę Active Directory naserwerze Windows 2008 R2.
Najpierw musimy w naszym środowisku testowym zainstalować serwer Windows 2008 R2.Aby to zrobić, musimy wykonać takie same kroki, jakie wykonywaliśmy podczas instalowaniasystemu Kali Linux.
Następnie na ekranie pojawi się kreator, który krok po kroku przeprowadzi nas przez procesinstalowania usług Active Directory Domain Services. Załóżmy zatem, że serwer Windows2008 R2 mamy już zainstalowany i na ekranie pojawił się kreator instalowania usług ActiveDirectory. Kliknij polecenie Server Manager (zarządzanie serwerem), przejdź do opcji Roles(role), a następnie wybierz polecenie Add Roles (dodaj role). Na ekranie pojawi się pierwszy krokkreatora, Before you begin (zanim rozpoczniesz). Naciśnij przycisk Next (dalej), a na ekraniezobaczysz okno przedstawione na pierwszym rysunku na następnej stronie.
Zaznacz opcję Active Directory Domain Services (domenowe usługi Active Directory). Ist-nieje duże prawdopodobieństwo, że po wybraniu tej opcji na ekranie pojawi się komunikatz prośbą o zainstalowanie pakietu Microsoft .NET Framework 3.5.1, który jest niezbędny dopoprawnego działania usług Active Directory. Naciśnij przycisk Add Required Features (dodajwymagane komponenty), tak jak to zostało pokazane na drugim rysunku na następnej stronie.
Poleć książkęKup książkę
Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych
50
Aby rozpocząć instalowanie, naciśnij przycisk Install (instaluj). Wybrane komponenty zostanązainstalowane i na ekranie pojawi się okno z informacją o pomyślnym zakończeniu procesuinstalacji usług Active Directory, tak jak to zostało pokazane na pierwszym rysunku na następnejstronie.
Po zakończeniu instalacji usług Active Directory musimy się upewnić, że wszystko działa popraw-nie. Aby to zrobić, musimy kliknąć przycisk uruchamiający kreatora usług Active Directory Do-main Services i utworzyć nowy las AD (ang. Active Directory Forest). W naszym przypadkubędziemy tworzyć nowy las, którego pełna nazwa domenowa FQDN (ang. Fully QualifiedDomain Name) to Secure.kali.com. Nazwę domeny NetBIOS ustawiamy na Secure, następnie
Poleć książkęKup książkę
Rozdział 1. • Testy penetracyjne ukierunkowane na osiągnięcie celu
51
ustawiamy poziom funkcjonalności lasu (ang. forest functional level) na Windows 2003 lub Windows2008 R2, co spowoduje uruchomienie konfiguracji serwera DNS (ang. Domain Name Server).Ponieważ w naszym przypadku mamy zupełnie nową instancję domeny, musimy dopiero za-instalować serwer DNS i następnie przy użyciu kreatora ustawić nową domenę na secu-re.kali.com, tak jak to zostało pokazane na rysunku poniżej:
Poleć książkęKup książkę
Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych
52
Instalowanie zdefiniowanych celówTo praktyka sprawia, że człowiek staje się doskonały. Aby zatem wprawiać się w sztuce prze-łamywania zabezpieczeń, powinieneś użyć oprogramowania, które posiada szereg dobrze znanychi opisanych podatności i luk w zabezpieczeniach. W tej sekcji pokażemy, jak możesz zainsta-lować pakiet metasploitable3 (platforma Windows) oraz Mutillidae (aplikacja sieciowa PHP).
Metasploitable3Metasploitable3 to maszyna wirtualna działająca pod kontrolą systemu Windows i celowo wypo-sażona w szereg podatności i luk w zabezpieczeniach, przeznaczona do wspomagania ćwiczeńw wykrywaniu i wykorzystywaniu luk w zabezpieczeniach przy użyciu pakietu Metasploit.Pakiet jest udostępniany na licencji opartej na licencji BSD. Maszynę wirtualną Metasploita-ble3 można pobrać ze strony https://github.com/rapid7/metasploitable3. W zależności od po-trzeb możesz pobrać archiwum ZIP i rozpakować je do wybranego foldera w swoim systemieWindows (w naszym przypadku zazwyczaj umieszczamy pliki w folderze C:\HackTools) lubz poziomu konsoli użyć polecenia git clone.
Powinieneś również zainstalować wszystkie dostępne pomocnicze pakiety oprogramowania,takie jak Packer, Vagrant, VirtualBox czy wtyczka Vagrant.
Na rysunku zamieszczonym poniżej przedstawiamy proces ręcznej instalacji pakietu Meta-sploitable3 na platformie Windows 10.
Poleć książkęKup książkę
Rozdział 1. • Testy penetracyjne ukierunkowane na osiągnięcie celu
53
Po zakończeniu pobierania pliku ISO zawierającego obraz maszyny wirtualnej w oknie kon-soli zostanie wyświetlony komunikat przedstawiony na rysunku poniżej:
Po zakończeniu pobierania pliku maszyny wirtualnej musisz jeszcze tylko z poziomu tej samejkonsoli PowerShell uruchomić polecenie vagrant up, które powinno dodać nową maszynę wirtu-alną do konsoli VirtualBox, tak jak to zostało pokazane na rysunku poniżej:
MutillidaeMutillidae to wyposażona w szereg podatności i luk w zabezpieczeniach aplikacja sieciowatypu open source, która jest przeznaczona do wspomagania ćwiczeń w wykrywaniu i wyko-rzystywaniu luk w zabezpieczeniach aplikacji sieciowych.
Poleć książkęKup książkę
Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych
54
XAMPP to inna bezpłatna aplikacja typu open source, opracowana przez zespół programistówApache Friends, którą możesz pobrać ze strony https://www.apachefriends.org/download.html.
Teraz zainstalujemy aplikację Mutillidae na naszym nowo zainstalowanym serwerze MicrosoftWindows 2008 R2. Po zakończeniu pobierania pakietu XAMPP uruchamiamy program insta-lacyjny i postępujemy zgodnie z poleceniami kreatora. Po zakończeniu instalacji uruchamia-my XAMPP; na ekranie powinno się pojawić okno przedstawione na rysunku poniżej:
Pakiet Mutillidae można pobrać ze strony https://sourceforge.net/projects/mutillidae/files/latest/download.
Po zakończeniu pobierania rozpakuj archiwum ZIP i skopiuj pliki do katalogu c:\LokalizacjaXAMPP\htdocs\<mutillidae>.
Aby sprawdzić, czy aplikacja została zainstalowana pomyślnie, powinieneś uruchomić prze-glądarkę sieciową i wpisać w niej adres przedstawiony na pierwszym rysunku na następnejstronie:
http://localhost/mutillidae/
Zarządzanie testami penetracyjnymiprzy użyciu pakietu FaradayDo najtrudniejszych aspektów przeprowadzania rozbudowanych testów penetracyjnych nale-żą: konieczność przetestowania wszystkich istotnych elementów sieci i systemów środowiskacelu, umiejętność zapamiętywania, które elementy systemu zostały już sprawdzone, orazumiejętność określenia po zakończeniu testu, jakie operacje zostały przeprowadzone w trakciejego trwania. W niektórych przypadkach klient może zażądać przeprowadzenia rozbudowanych
Poleć książkęKup książkę
Rozdział 1. • Testy penetracyjne ukierunkowane na osiągnięcie celu
55
testów penetracyjnych, wymagających zatrudnienia wielu pentesterów operujących z różnychlokalizacji, a kierownictwo chce mieć możliwość zbiorczego monitorowania i koordynowaniaich działań z jednego miejsca. Pakiet Faraday zapewnia pentesterom możliwość ujednolico-nego widoku na testowane środowisko, przy założeniu, że mogą się oni ze sobą komunikowaćw danej sieci lokalnej lub sieci internet (w przypadku pentestów zewnętrznych).
Faraday to wieloużytkownikowe, zintegrowane środowisko IDE (ang. Integrated DevelopmentEnvironment) wspomagające przeprowadzanie testów penetracyjnych, które pozwala pente-sterom na współużytkowanie, dystrybucję, indeksowanie i analizowanie wszelkich danychwygenerowanych lub pozyskanych podczas przeprowadzania testów penetracyjnych oraz prze-prowadzanie audytów bezpieczeństwa i tworzenie raportów.
Środowisko Faraday IDE zostało zaprojektowane i napisane w języku Python przez programistówfirmy Infobyte. Aplikację można pobrać ze strony https://github.com/infobyte/faraday/wiki lubbezpośrednio za pomocą polecenia git clone, tak jak to zostało pokazane na pierwszym ry-sunku na następnej stronie.
Po zakończeniu klonowania powinieneś wykonać polecenie ./install.sh, które spowodujerównież zainstalowanie wszystkich niezbędnych zależności. Nie zapomnij również uruchomićusługi CouchDB, ponieważ platforma Faraday wykorzystuje bazę danych CouchDB do prze-chowywania swoich danych. Na koniec powinieneś wykonać polecenie faraday-server.py,które spowoduje uruchomienie serwera Faraday. Aby uruchomić klienta środowiska, powi-nieneś z poziomu konsoli wykonać polecenie faraday.py, tak jak to zostało pokazane na dru-gim rysunku na następnej stronie.
Poleć książkęKup książkę
Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych
56
Uruchomienie klienta powinno spowodować otwarcie konsoli środowiska Faraday, tak jak tozostało pokazane na pierwszym rysunku na następnej stronie.
Jedną z wielkich zalet środowiska Faraday jest to, że po kliknięciu odpowiedniej opcji może-my od razu zobaczyć wizualizację wszystkich skanów i innych operacji wykonywanych przezCiebie lub innych pentesterów pracujących nad tym projektem, tak jak to zostało pokazanena drugim rysunku na następnej stronie.
Choć pełna wersja pakietu Faraday jest produktem komercyjnym, to jednak nadal dostępnajest również bezpłatna wersja tego środowiska, która ma nieco ograniczone możliwości, alenadal pozwala na wyświetlanie w jednym miejscu wszystkich informacji o wynikach przepro-wadzanego testu penetracyjnego.
Poleć książkęKup książkę
Rozdział 1. • Testy penetracyjne ukierunkowane na osiągnięcie celu
57
Poleć książkęKup książkę
Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych
58
PodsumowanieW tym rozdziale omawialiśmy różne metodologie testów penetracyjnych ukierunkowanych naosiągnięcie celu, które pozwalają firmom i organizacjom na sprawdzanie i szacowanie odpornościich środowiska na pełnowymiarowe ataki cybernetyczne. Pokazywaliśmy, jak pentesterzy mo-gą używać systemu Kali Linux do przeprowadzania testów bezpieczeństwa sieci i systemóww środowisku celu. Szczegółowo omówiliśmy proces instalowania systemu Kali Linux na róż-nych platformach wirtualizacyjnych i pokazywaliśmy, jak przy użyciu aplikacji Docker możnaszybko uruchomić system Linux na platformie Windows.
Zbudowaliśmy również nasze własne środowisko testowe, zainstalowaliśmy usługi Active Directo-ry Domain Services oraz tak skonfigurowaliśmy dwie różne maszyny wirtualne, aby działały w tejsamej sieci. Dowiedziałeś się również, jak można dostosować system Kali Linux do własnych,indywidualnych wymagań oraz jak zwiększyć bezpieczeństwo używanych narzędzi i pozyski-wanych przez nie danych. Pracowaliśmy nad osiągnięciem celu, jakim jest przygotowanie na-rzędzi wspierających nasz proces, a nie odwrotnie!
W kolejnym rozdziale dowiesz się, jak efektywnie używać narzędzi Open Source Intelligence(OSINT) do identyfikacji podatnej na atak powierzchni środowiska oraz jak tworzyć niestan-dardowe listy nazw użytkowników i haseł ułatwiających przeprowadzenie bardziej skoncen-trowanych ataków oraz wykorzystywanie znalezionych podatności i luk w zabezpieczeniach.
Poleć książkęKup książkę
Skorowidz
AActive Directory
instalowanie usługi, 49podnoszenie uprawnień, 405rozpoznawanie serwerów, 124
administratorzydelegowani, 390domeny, 390lokalni, 390przedsiębiorstwa, 390schematu, 391
adrese-mail, 69IP, 85, 97MAC, 204URL, 181
agent persystencji, 416Netcat, 417tworzenie, 424
agenty, 397PowerShell, 395
algorytm NT LanMan, 371algorytmy szyfrowania, 261
cipher suites, 261analiza zagrożeń, 76aplikacja
alive6, 108Arachnid, 240Bettercap, 401bleachBit, 45CaseFile, 66CENSYS.IO, 104CeWL, 79chntpw, 160commix, 241covert_send6, 99denial6, 99detect-new-ip6, 99, 108detect-sniffer6, 99
dnmap, 108dnsdict6, 99dnsenum, 97dnsmap, 97dnsrecon, 97dnsrevenum6, 99dnstracer, 97dnswalk, 97Docker, 39exploit6, 99fake_dhcps6, 99Faraday, 54fierce, 97fping, 118fragroute, 105GoLismero, 240hping3, 102ike-scan, 272Inception, 164intrace, 102lbd, 104Metasploitable3, 52miranda.py, 104Mutillidae, 52, 53netcat, 110, 417Nikto, 240nmap, 86, 104, 122, 135, 270PowerShell Empire, 395preload, 45PsExec, 381Reaver, 210samdump2, 160Shellter, 312Shodan, 104Skipfish, 240sslcaudit, 263ssldump, 263sslsbiff, 263sslscan, 262, 263sslsplit, 263
sslstrip, 263, 265sslyze, 263, 264Testssl, 259theHarvester, 69tlssled, 263trace6, 102traceroute, 101Twofi, 80Vega, 240Veil-Evasion, 187VirtualBox, 34VMware Workstation Player, 32w3af, 240Wapiti, 240Webscarab, 240Webshag, 240Websploit, 240Windows Credential Editor, 380Windows Defender, 314Windows Task Scheduler, 421WMIC, 381
aplikacjebiała lista, 320internetowe, 221mobilne, 146sieciowe, 139wspomagające rozpoznanie, 94
Armitage, 346ARP, 117ataki
cybernetycznefaza dostawy, 27faza penetracji, 27faza post-exploit, 28faza rozpoznania, 27
na aplikacje internetowe, 222analizowanie przebiegu
komunikacji, 232planowanie, 224poświadczenia logowania, 241
Poleć książkęKup książkę
Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych
442
atakina aplikacje internetowe, 222
rozpoznanie witrynyinternetowej, 225
tworzenie sygnatur aplikacji, 228utrzymywanie dostępu, 245wstrzykiwanie poleceń, 241
na pamięć systemową, 164na połączenia SSL, 257na protokół Kerberos, 412na sieci bezprzewodowe, 195–219na sieci z szyfrowaniem WPA, 213na strony internetowe, 171na wirtualne sieci prywatne, 269na witryny internetowe, 174–177na zdalny dostęp, 249phishingowe, 192po stronie klienta, 275pozwalające
na podnoszenie uprawnień, 400na zbieranie poświadczeń, 400
socjotechniczne, 157typu
BEAST, 258BREACH, 258brute-force, 207, 239brute-force na poświadczenia
logowania, 241CRIME, 258DoS, 211, 268Golden Ticket, 412FREAK, 258Heartbleed, 258Logjam, 259man-in-the-middle, 263, 265,
401NetBIOS null session, 123POODLE, 259SMB relay, 405SQL Injection, 289spear phishing, 184tabnabbing, 176web jacking, 172XSS, 25, 285
ukrywanie śladów, 437w procesie renegocjacji sesji, 258z dostępem
do konsoli systemu, 159fizycznym, 159
z modyfikacją zawartości kartprzeglądarki, 171
z wykorzystaniemapletów Java, 171aplikacji HTA, 172, 179bezprzewodowych punktów
dostępowych, 173
exploitów przeglądarkisieciowej, 171
fałszywych wiadomości SMS,173
komputera, 157pakietu Metasploit, 342powłoki Powershell, 173telefonu, 158trybu pełnoekranowego, 172urządzeń Arduino, 172urządzeń
mikroprocesorowych, 168z wyłudzaniem poświadczeń
logowania, 171ze wstrzykiwaniem kodu, 178,
243, 289ze zbieraniem poświadczeń
logowania, 174złożone, 172, 177
atakowaniekolejnych systemów, 345, 379pojedynczych systemów, 342, 344routerów sieci bezprzewodowych,
210awaria serwera, 357AWS, 41
Bbackdooring, 276backdoory, 416baiting, 158baza danych
konfiguracja, 337SAM, 369tworzenie, 337
bazyluk w zabezpieczeniach, 131podatności, 131
BeEF, The Browser ExploitationFramework, 289
Bettercap, 401bezpieczeństwo
fizyczne, 155systemu Windows, 330
biała lista aplikacji, 320biały wywiad, 61
automatyczne zbieranieinformacji, 74
defensywny, 75ofensywny, 62zbieranie informacji, 69
biblioteki MetasploitFramework-base, 335Framework-core, 335
REX, 335bramka VPN, 270Burp Proxy, 232
CCaseFile, 66cele ataku
drugorzędne, 152główne, 152trzeciorzędne, 152
CeWL, 79chmura, 41cipher suites, 261commix, 241cyfrowy odcisk, 271
Ććwiczenia zespołów Red Team, 25
DDark Web, 75DET, Data Exfiltration Toolkit, 435DHCP, 114Docker, 39dodawanie konta użytkownika, 44DoS, Denial of Service, 211dostęp
do kolejnych systemów, 379do konsoli systemu, 163do sieci
weryfikacja po uzyskaniudostępu, 305
weryfikacja przed uzyskaniemdostępu, 303
do systemu, 166poziomy, 390
stały do skompromitowanegosystemu, 371
Eeksfiltracja danych, 429
wykorzystanie powłokiPowerShell, 437
wykorzystanie protokołu DNS, 431wykorzystanie protokołu ICMP,
433wykorzystanie usług
systemowych, 430
Poleć książkęKup książkę
Skorowidz
443
eksploracjaskompromitowanego systemu
eskalacja pozioma, 379narzędzia wspomagające, 372narzędzie PowerShell Empire,
395pakiet Veil-Pillage, 375pobieranie wrażliwych
danych, 368rozpoznanie, 367
systemu lokalnego, 366email phishing, 158EMET, Enhanced Migration
Experience Toolkit, 322enkapsulacja protokołu, 297enkodery, 337eskalacja pozioma, 379
z użyciem usług, 385exploit, 133, 307–311, 336, 343
Exploit-DB, 349exploity
dla systemu Windows, 353, 360publiczne, 349
kompilowanie, 351lokalizowanie, 349używanie, 351weryfikowanie, 349
tworzenie, 353
FFaraday
zarządzanie testami, 54faza
dostawy, 27penetracji, 27post-exploit, 28rozpoznania, 27, 131sterowania, kontroli
i komunikacji, 415filtrowanie adresów
MAC, 204URL, 317
folderyudostępnianie, 46współużytkowanie, 46
frameworkMobSF, 146recon-ng, 94Veil, 375Websploit, 212
fuzzing, 354–357
GGhost Phisher, 217Google Cache, 67Google Hacking Database, 71, 72Guest Additions, 45
Hhasłałamanie słownikowe, 78przygotowywanie listy, 78
hasło użytkownika root, 44hosty
aktywne, 108identyfikacja, 115identyfikacja systemu
operacyjnego, 111w wewnętrznych sieciach, 115wykrywanie, 108, 115, 117wykrywanie usług, 112
IIDE, Integrated Development
Environment, 55identyfikacja
domyślnych kont użytkowników,273
hostów, 115infrastruktury sieciowej, 103luk w zabezpieczeniach, 354podatności, 354systemów IDS/IPS, 105systemu operacyjnego, 111udziałów sieciowych, 123
identyfikatorOUI, 204SID, 124SSID, 202
ike-scan, 270, 272Inception, 164
moduły, 165incydenty bezpieczeństwa, 76informacje
o kampaniiEmail, 192Phishing, 192SMTP, 192Template, 192
o kontach użytkowników, 121o lukach w zabezpieczeniach, 131o podatnościach, 131o sieci bezprzewodowej, 199
o środowisku celu, 83o użytkownikach, 70o włamaniach, 76
iniekcje DLL, 393instalowanie
aplikacji Docker, 39pakietu Metasploitable3, 52systemu
w chmurze, 41w maszynie wirtualnej, 31, 34
usługi Active Directory, 49
Jjęzyk
LUA, 137PowerShell, 382VBScript, 279
KKali Linux, 28
aktualizowanie, 30dostosowywanie, 43, 48instalowanie, 30
na urządzeniu przenośnym, 30w chmurze, 41w maszynie wirtualnej, 31, 34
konfigurowanie, 44, 196przyspieszanie działania, 45uruchamianie, 30
kampania phishingowa, 192Kerberos, 412Kismet, 200klucze
PSK, 206, 272łamanie, 272przechwytywanie, 272
publiczne/prywatne, 369kompilowanie exploitów, 351konfigurowanie
bazy danych, 337pakietu
Phishing Frenzy, 192SPARTA, 126BeEF, 290
sieci wirtualnej, 49systemu Kali Linux, 196trwałych zadań, 421
konto użytkownika, 44, 69, 121identyfikacja, 273mechanizm kontroli UAC, 323
kontrola konta użytkownika, 323kopia strony internetowej, 231
Poleć książkęKup książkę
Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych
444
Llista
haseł, 78słów, 78, 80
luki w zabezpieczeniach, 131, 250
Łładunki, 336łamanie
haseł, 78kluczy PSK, 272
łączenie skanów, 119
MMaltego, 63Mantra OWASP, 237mapowanie
sieci, 62, 91sieci poza zaporą sieciową, 104trasy do celu, 100witryny internetowe, 79
maskowanie adresu URL, 181maszyna wirtualna
Metasploitable3, 52VirtualBox, 34VMware Workstation Player, 32
mechanizmNAC, 302zabezpieczający, 301
pakiet EMET, 322Metasploit, 334Metasploitable3
instalowanie pakietu, 52metodologia
atakowania aplikacjiinternetowych, 222
podnoszenia uprawnień, 390przeprowadzania ataków, 157przeprowadzania testów, 26
model BYOD, 195modelowanie zagrożeń, 151moduły BeEF
Confirm close, 298iFrame keylogger, 299Man-in-the-browser, 299NOP, 337Pop-under module, 298Veil-Pillage, 376
modyfikowanieadresów IP, 85parametrów pakietów, 86
Mutillidae, 53
NNAC
dostęp do sieci, 303omijanie zabezpieczeń, 302Post-Admission NAC, 305Pre-Admission NAC, 303wyjątki, 304
narzędziabezpieczeństwa, 237do eksploracji systemu, 367, 372
narzędzie, Patrz aplikacja, polecenieNAT, Network Address Translation,
303Netcat, 417Nikto, 140
dostosowywanie skanera, 142nmap, 86, 104, 122, 135, 270
moduły NSE, 261poszukiwanie bramek VPN, 270
NSE, Nmap Scripting Engine, 135
Oodcisk cyfrowy, 271odwrócona powłoka, 342
PowerShell, 344omijanie
białej listy aplikacji, 320mechanizmów filtrowania
adresów URL, 317programów antywirusowych, 305zabezpieczeń, 302
działających na poziomieaplikacji, 316
Windows, 322OpenVAS, 148
dostosowywanie skanera, 150operatory Google, 72OSINT, Patrz biały wywiad
Ppakiet
Armitage, 346atakowanie wielu systemów,
346BeEF, 289–297
integracja z Metasploit, 296konfigurowanie, 290moduły, 298tunelowanie serwera proxy, 297wstrzykiwanie kodu, 289
DET, 435Docker, 39
EMET, 322Faraday, 54Ghost Phisher, 217Guest Additions, 45Impacket, 410Kismet, 200Maltego, 63Metasploit, 334
atakowanie pojedynczychsystemów, 342, 344
atakowanie wielu systemów, 345autonomiczny plik
wykonywalny, 424biblioteki, 334iniekcje DLL, 393interfejsy, 335moduł PSEXEC, 408moduły, 336odwrócona powłoka, 344tworzenie agenta persystencji,
424utrzymywanie trwałego
dostępu, 422Metasploitable3, 52Mutillidae, 54Phishing Frenzy, 188, 193SET, 170Social Engineering Toolkit, 178SPARTA, 125SPIKE, 355Veil Framework, 307Veil-Pillage, 375
moduły, 376VirtualBox, 34Websploit, 212XAMPP, 54XSS Framework, 285
persystencja, 416phishing, 188, 192Phishing Frenzy, 188, 193pivoting, 385plik
dns.conf, 184SAM, 161
pliki.hta, 179danych, 369haseł, 369kluczy, 369konfiguracyjne, 369rejestru systemowego, 369skrzynek poczty elektronicznej, 369systemowe, 367
pobieranie wrażliwych danych, 368
Poleć książkęKup książkę
Skorowidz
445
podatności, 131aplikacji sieciowych, 139określonych usług i aplikacji, 239
podnoszenie uprawnień, 389, 391, 400w Active Directory, 405
poleceniacmdlet, 383do eksploracji systemu, 367, 383inwazyjne, 371konsolowe Windows, 116
polecenie./empire, 396./incept, 164./install.sh, 55./testssl.sh, 259./update.py, 376adduser, 45agents, 397aircrack, 208airmon-ng, 198airodump, 199, 202apt-get, 45, 88, 169apt-get update, 34armitage, 346arp, 116arp-scan, 117at, 392atk6-alive6, 100background, 391, 394bettercap, 402burpsuite, 233bypassuac http, 400chmod, 120chntpw, 161clearev, 437commix, 242copy, 367creds, 397, 408crunch, 209db_import, 338db_status, 338dd, 31detect-new-ip6, 108dir, 246dnsrecon, 98docker, 39dpkg, 367execute, 399exit, 394, 397exploit, 341faraday.py, 55fierce, 97for, 117fragroute, 106generate, 309getsystem, 326
git, 376, 395grep, 132help, 95, 397hping3, 103httrack, 232ifconfig, 115, 202, 367impersonate_token, 375info, 308, 340interact, 397ipconfig /all, 367ipconfig /displaydns, 367iptables, 268, 367iwconfig, 197kismet, 201lbd, 104list, 308, 397listeners, 397load, 96, 397load xssf, 286loot, 342maltegoce, 63migrate, 423mimikatz, 400msfconsole, 256, 335, 345msfinit, 337msfvenom, 276, 310, 361, 424nbtstat, 116nc, 420net share, 116net use, 116net user, 116net view, 116, 368netcat, 229, 354netsh, 304, 418netstat, 116nmap, 86, 104, 122, 135, 270nslookup, 116openvas-setup, 148openvas-start, 149openwav-check-setup, 148passwd root, 44proxychains, 90ps, 372, 394queryval, 418recon-ng, 95reg, 117, 371, 424reload, 397reset, 397responder, 402route, 116run, 96, 256, 373, 378sc, 385schtask, 284search, 339searchmodule, 397searchsploit, 132
sessions, 278set, 96, 309, 377, 397setg, 377shell, 380shellter, 312show, 96, 397sysinfo, 343tcpdump, 433timestomp, 439traceroute, 100–104tracert, 101tshark, 434twofi, 80upload, 394use, 377usemodule, 397usestager, 397vncviewer, 256websploit, 212whoami, 257, 367whois, 92wmic, 117, 382workspace, 338xssf_victims, 288
połączenia SSL, 257, 260połączenie trwałe, 415,
Patrz także utrzymywanietrwałego dostępu, 426
porty, 109skanowanie, 109
poszukiwanie podatności, 24poświadczenia logowania, 174, 241PowerShell, 382PowerShell Empire, 395powłoka
Meterpreter, 372, 380PowerShell, 282, 344, 437webshell, 245, 246
profilowanie użytkowników, 78program, Patrz aplikacjaprogramy antywirusowe, 305protokoły
kryptograficzne, 257zdalnego dostępu, 250
protokółAH, 269DHCP, 114DNS, 431ESP, 269ICMP, 433IKE, 269IPSec, 269IPv4, 97IPv6, 98, 99ISAKMP, 269
Poleć książkęKup książkę
Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych
446
Kerberos, 412RDP
przełamywanie zabezpieczeń,250
SA, 269SNMP, 120SSH
przełamywanie zabezpieczeń,253
tunelowanie połączeńprzez zapory sieciowe, 316
SSL, 257analizowanie połączeń, 260atak typu DoS, 268przełamywanie
zabezpieczeń, 257TLS, 257VNC
przełamywanie zabezpieczeń,255
przechwytywaniehaseł, 404kluczy PSK, 272
przeglądarki internetowenarzędzia bezpieczeństwa, 237
przekierowanieDNS, 183portów, 385
przeszukiwanie sieci, 239PsExec, 381
RReaver, 210relacje zaufania domen, 380Responder, 402root
zmiana hasła, 44rozgłoszenia ARP, 117rozpoznanie
aktywne, 27, 61, 83DNS, 62, 91, 97pasywne, 27, 59, 60skompromitowanego systemu, 367środowisk celu, 83w sieciach bezprzewodowych, 197witryny internetowej, 225
SSAM, Security Accounts Manager, 161schtasks, 421scraping, 68searchsploit, 350SecurityFocus, 350
serwerBurp Proxy, 232proxy, 88, 232
sesja SMB, 121Shellter, 312sieci
anonimowe, 88bezprzewodowe, 196
ataki typu DoS, 211atakowanie routerów, 210filtrowanie adresów MAC, 204omijanie zabezpieczeń, 202otwarte uwierzytelnianie, 204przeprowadzanie rozpoznania,
197szyfrowanie WPA i WPA2, 206szyfrowanie
WPA/WPA2-Enterprise, 213ukryty identyfikator SSID, 202
wirtualne, 49sieć
Dark Web, 75Tor, 88
skanerNikto, 140Vega, 140
skaneryDNS, 97podatności, 130, 135, 239
aplikacji mobilnych, 146aplikacji sieciowych, 139OpenVAS, 148specjalizowane, 150
skanowanie, 24, 84dużych środowisk celu, 113NetBIOS, 387portów, 109poszukiwanie bramek VPN, 270
skrypty, 279do automatycznego zbierania
informacji, 74do łączenia skanów, 119LUA, 137NSE, 135, 137, 261persistence, 423powłoki PowerShell, 282VBScript, 279
słowniki do łamania haseł, 78SMSishing, 158sniffer, 250sniffery haseł, 401SNMP, 120socjotechnika, 155SPARTA, 125
konfiguracja pakietu, 126
Sticky Keys, 163sygnatury aplikacji, 228system
CMS, 228IDS/IPS, 105równoważenia obciążenia, 227
szybka wymiana danych, 73szyfrowanie, 260
WPA/WPA2-Enterprise, 206, 213
Śśrodowisko
celupowłamaniowa eksploracja, 365
Faraday IDE, 55testowe, 49
Ttechniki skanowania, 84technologia NAC, 302testowanie połączeń SSL, 261Testssl, 259testy penetracyjne, 24
metodologia, 26pakiet Faraday, 54
Tor, 88transformacja, 63trwałe połączenie, Patrz
utrzymywanie trwałego dostępu.426
tunelowaniepołączeń przez zapory sieciowe,
316serwera proxy, 297
Twofi, 80tworzenie
agenta persystencji, 424autonomicznego pliku
wykonywalnego, 424bazy danych, 337dodatkowych kont, 371exploitów, 353, 360instancji AWS, 41lustrzanej kopii strony, 231skanera portów, 110sygnatur aplikacji, 228złośliwego pliku wykonywalnego,
312tylne wejścia, 276
Poleć książkęKup książkę
Skorowidz
447
UUAC, User Account Control, 324udostępnianie folderów, 46udziały sieciowe, 123, 380ukrywanie
plików wykonywalnych, 181śladów ataku, 437
uprawnienia, 389poziom administratora, 392poziom systemu, 392w systemie lokalnym, 391
urządzenia fizyczne, 166usługa
Active Directory, 49DHCP, 114FTP, 109LSA, 371Tor, 88Windows Instrumentation, 382
usługiGoogle Cache, 67systemowe, 430
utrzymanie połączenia, 298utrzymywanie trwałego dostępu, 426
agent persystencji, 424media społecznościowe, 426pakiet Metasploit, 422poczta Gmail, 426
użytkownikkonto, 44, 69, 121, 323root, 44zmiana hasła, 44
używanie agentów persystencji, 416
VVega, 140
dostosowywanie skanera, 142Veil Framework, 307Veil-Pillage, 375VirtualBox, 34ViShing, 158
VMware Tools, 45VMware Workstation Player, 32VoIP, Voice over IP, 257VPN, Virtual Private Network, 269
Wwiersz poleceń
kopiowanie strony internetowej,231
Wi-Fi phishing, 158Windows
exploity, 353, 360zabezpieczenia systemu, 322
Windows Credential Editor, 380Windows Defender, 314Windows Task Scheduler, 421Wireshark, 250wirtualizacja, 31WMIC, 381, 382WPA, Wi-Fi Protected Access, 206WPS, Wi-Fi Protected Setup, 210wrażliwe dane, 368współużytkowanie folderów, 46wstrzykiwanie
bibliotek DLL, 393kodu, 289
wykrywaniehostów, 108, 115, 117otwartych portów, 109usług, 112zapór WAF, 227
wyszukiwanieluk w zabezpieczeniach, 129podatności, 129wrażliwych danych, 368
wyszukiwarkacensys.io, 70, 104Shodan, 70, 104
XXAMPP, 54XSS, Cross-Site Scripting, 285
Zzabezpieczenia
aplikacji internetowych, 221działające na poziomie aplikacji,
316mechanizm NAC, 302protokołu
RDP, 250SSH, 253SSL, 257VNC, 255
punktów końcowych, 304sieci bezprzewodowej
filtrowanie adresów MAC, 204ukryty identyfikator SSID, 202
systemu Windowsaudyt, 331bezpieczeństwo komunikacji,
331działające na poziomie
systemu, 330kontrola konta użytkownika, 323logowanie, 331pakiet EMET, 322szyfrowanie, 330uwierzytelnianie, 329
zapobieganie wyciekom danych, 435zapora sieciowa, 104, 316
WAF, 227zarządzanie testami penetracyjnymi, 54zaufanie między domenami, 380zbieranie
informacjio adresach e-mail, 69o nazwach kont, 69o użytkownikach, 70stosowanie skryptów, 74
poświadczeń, 400zdalny dostęp, 249zmiana hasła użytkownika root, 44
Poleć książkęKup książkę
Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych
448
Poleć książkęKup książkę