Tytuł oryginału: Mastering Kali Linux for Advanced ...

56

Transcript of Tytuł oryginału: Mastering Kali Linux for Advanced ...

Page 1: Tytuł oryginału: Mastering Kali Linux for Advanced ...
Page 2: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ść

Page 3: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 4: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 5: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 6: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 7: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 8: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 9: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 10: Tytuł oryginału: Mastering Kali Linux for Advanced ...

Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych

10

Poleć książkęKup książkę

Page 11: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 12: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 13: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 14: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 15: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 16: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 17: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 18: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 19: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 20: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 21: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 22: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 23: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 24: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 25: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 26: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 27: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 28: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 29: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 30: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 31: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 32: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 33: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 34: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 35: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 36: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 37: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 38: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 39: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 40: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 41: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 42: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 43: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 44: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 45: Tytuł oryginału: Mastering Kali Linux for Advanced ...

Rozdział 1. • Testy penetracyjne ukierunkowane na osiągnięcie celu

57

Poleć książkęKup książkę

Page 46: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 47: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 48: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 49: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 50: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 51: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 52: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 53: Tytuł oryginału: Mastering Kali Linux for Advanced ...

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ę

Page 54: Tytuł oryginału: Mastering Kali Linux for Advanced ...

Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych

448

Poleć książkęKup książkę

Page 56: Tytuł oryginału: Mastering Kali Linux for Advanced ...