Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00327 005431 18761313 na godz. na dobę w sumie
Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych. Wydanie II - książka
Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych. Wydanie II - książka
Autor: Liczba stron: 448
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-283-4037-4 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> systemy operacyjne >> linux
Porównaj ceny (książka, ebook, audiobook).

Kali Linux jest dystrybucją BackTrack systemu Linux służącą do zaawansowanego badania zabezpieczeń systemów teleinformatycznych, również poprzez testy penetracyjne. Naturalnie, praca pentestera wiąże się również z przeprowadzaniem rozpoznania, skanowaniem w poszukiwaniu słabych stron zabezpieczeń, wykorzystywaniem exploitów, omijaniem zabezpieczeń i późniejszą eksploracją skompromitowanych systemów. W ten sposób diagnozuje się słabe strony systemu, co z kolei umożliwia usunięcie usterek i osiągnięcie wysokiego stopnia bezpieczeństwa. Realizacja tak ambitnego celu wymaga jednak znakomitego przygotowania i szerokiej wiedzy pentestera.

Dzięki tej książce poznasz sprawdzone techniki pokonywania mechanizmów obronnych różnych systemów za pomocą narzędzi dostępnych w Kali Linux. Dowiesz się, jak wybrać najbardziej efektywne rozwiązania, nauczysz się szybkiego skanowania sieci w poszukiwaniu luk w systemie zabezpieczeń, aż w końcu będziesz mógł przeprowadzić atak i powłamaniową eksplorację środowiska, przy czym będziesz wiedzieć, jakie techniki zminimalizują ryzyko wykrycia. Zapoznasz się ze specyfiką ataków na sieci bezprzewodowe, aplikacje internetowe i systemy wykorzystujące zdalny dostęp. W książce przedstawiono również zagadnienia związane z bezpieczeństwem fizycznym infrastruktury i z metodami socjotechnicznymi stosowanymi przez hakerów.

Najciekawsze zagadnienia:

Kali Linux - subtelne narzędzie pentestera!


Vijay Kumar Velu jest zapalonym praktykiem bezpieczeństwa teleinformatycznego. Ma ponad 11-letnie doświadczenie w branży IT. Zdobył wiele certyfikatów bezpieczeństwa, w tym Certified Ethical Hacker, EC-Council Certified Security Analyst i Computer Hacking Forensics Investigator. Velu jest członkiem zarządu Cloud Security Alliance (CSA) w Kuala Lumpur oraz członkiem National Cyber Defense and Research Center (NCDRC) w Indiach. Jest fanatykiem technologii, kocha muzykę i chętnie angażuje się w działalność charytatywną.

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

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 SA All 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 HELION ul. Kościuszki 1c, 44-100 GLIWICE tel. 32 231 22 19, 32 230 98 63 e-mail: helion@helion.pl WWW: 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/kalit2 Moż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 O recenzencie Przedmowa Rozdział 1. Testy penetracyjne ukierunkowane na osiągnięcie celu Koncepcyjny przegląd testów bezpieczeństwa Zmierzch klasycznych testów penetracyjnych, skanowania w poszukiwaniu podatności i działań zespołów Red Team Metodologia przeprowadzania testów Wprowadzenie do systemu Kali Linux — jego historia i przeznaczenie Instalowanie i aktualizowanie systemu Kali Linux Uruchamianie systemu Kali Linux z urządzenia przenośnego Instalowanie systemu Kali Linux w maszynie wirtualnej VMware Workstation Player VirtualBox Instalowanie aplikacji Docker Instalowanie systemu Kali Linux w chmurze — tworzenie instancji AWS Dostosowywanie systemu Kali Linux Konfigurowanie i dostosowywanie systemu Kali Linux Zmiana hasła użytkownika root Dodawanie zwykłego konta użytkownika Przyspieszanie działania systemu Kali Linux Udostępnianie i współużytkowanie folderów z systemem operacyjnym hosta Dostosowywanie systemu Kali Linux do własnych potrzeb przy użyciu skryptów powłoki bash Budowanie środowiska testowego Konfigurowanie sieci wirtualnej z usługą Active Directory Instalowanie zdefiniowanych celów 13 15 17 23 24 24 26 28 30 30 31 32 34 39 41 43 44 44 44 45 46 48 49 49 52 Poleć książkęKup książkę Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych Metasploitable3 Mutillidae Zarządzanie testami penetracyjnymi przy użyciu pakietu Faraday Podsumowanie Rozdział 2. OSINT oraz rozpoznanie pasywne Podstawowe zasady przeprowadzania rozpoznania Biały wywiad (OSINT) Ofensywny biały wywiad Maltego CaseFile Usługi Google Cache Scraping Pozyskiwanie nazw kont użytkowników i adresów e-mail Zbieranie informacji o użytkownikach Wyszukiwarki Shodan i censys.io Google Hacking Database Używanie zaawansowanych operatorów Google Serwery szybkiej wymiany danych Zastosowanie skryptów do automatycznego zbierania informacji OSINT Defensywny biały wywiad Profilowanie użytkowników pod kątem przygotowywania listy haseł Tworzenie słowników do łamania haseł Zastosowanie programu CeWL do mapowania witryny internetowej Pozyskiwanie listy słów z serwisu Twitter przy użyciu programu Twofi Podsumowanie Rozdział 3. Aktywne rozpoznawanie zewnętrznych i wewnętrznych środowisk celu Trudne do wykrycia techniki skanowania Modyfikowanie źródłowych adresów IP 52 53 54 58 59 60 61 62 63 66 67 68 69 70 70 71 72 73 74 75 78 78 79 80 80 83 84 Rozpoznanie DNS i mapowanie sieci Polecenie whois i dostosowywanie ustawień używanych narzędzi Modyfikowanie parametrów pakietów Używanie serwerów proxy i sieci anonimowych Framework recon-ng Protokół IPv6 — wybrane narzędzia Mapowanie trasy do celu 85 86 88 91 92 Wykorzystywanie kompleksowych aplikacji wspomagających przeprowadzanie rozpoznania 94 94 99 100 103 104 105 107 108 109 109 Identyfikowanie zewnętrznej infrastruktury sieciowej Mapowanie sieci poza zaporą sieciową Identyfikacja systemów IDS/IPS Wyszukiwanie hostów Wykrywanie aktywnych hostów Wykrywanie otwartych portów, systemu operacyjnego oraz działających usług Skanowanie portów 4 Poleć książkęKup książkę Spis treści Skanowanie dużych środowisk celu Tworzenie własnego skanera portów przy użyciu programu netcat Identyfikacja systemu operacyjnego zdalnego hosta Wykrywanie usług działających na zdalnych hostach 110 111 112 113 114 Wykorzystanie danych DHCP 115 Wykrywanie oraz identyfikacja hostów w wewnętrznych sieciach środowiska celu 116 Wbudowane polecenia konsolowe systemu Windows 117 Rozgłoszenia ARP Wykrywanie hostów w sieci za pomocą pakietów ping 117 Zastosowanie skryptów do łączenia skanów z użyciem programów masscan i nmap 119 Wykorzystanie protokołu SNMP 120 Pozyskiwanie informacji o kontach użytkowników Windows za pośrednictwem sesji SMB Identyfikacja udziałów sieciowych Rozpoznawanie serwerów w domenie Active Directory Zastosowanie narzędzi złożonych (SPARTA) Przykład konfiguracji pakietu SPARTA Podsumowanie Rozdział 4. Wyszukiwanie podatności i luk w zabezpieczeniach Trochę nomenklatury Lokalne i sieciowe bazy podatności i luk w zabezpieczeniach Skanowanie w poszukiwaniu podatności przy użyciu programu nmap Wprowadzenie do skryptów LUA Dostosowywanie skryptów NSE do własnych potrzeb Skanery podatności aplikacji sieciowych Wprowadzenie do skanerów Nikto i Vega Dostosowywanie skanerów Nikto i Vega do własnych potrzeb Skanery podatności dla aplikacji mobilnych Skaner podatności OpenVAS Dostosowywanie skanera OpenVAS do własnych potrzeb Specjalizowane skanery podatności Modelowanie zagrożeń Podsumowanie Rozdział 5. Bezpieczeństwo fizyczne i metody socjotechniczne Metodologia przeprowadzania ataków Ataki z wykorzystaniem komputera Ataki z wykorzystaniem telefonu Ataki z dostępem fizycznym Ataki z dostępem do konsoli systemu Programy samdump2 i chntpw Ułatwienia dostępu — opcja Sticky Keys Ataki na pamięć systemową przy użyciu programu Inception Tworzenie złośliwych urządzeń fizycznych Ataki z wykorzystaniem urządzeń mikroprocesorowych 121 123 124 125 126 127 129 130 131 135 137 137 139 140 142 146 148 150 150 151 153 155 157 157 158 159 159 160 163 164 166 168 5 Poleć książkęKup książkę Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych Pakiet SET Ataki na witryny internetowe — atak ze zbieraniem poświadczeń logowania Ataki na witryny internetowe — atak typu tabnabbing Ataki na witryny internetowe — ataki złożone Atak ze wstrzykiwaniem alfanumerycznego kodu shellcode z powłoki Powershell Ataki z wykorzystaniem aplikacji HTA 170 174 176 177 178 179 181 183 Ataki typu spear phishing 184 Przeprowadzanie kampanii phishingowej z wykorzystaniem pakietu Phishing Frenzy 188 192 194 Ukrywanie plików wykonywalnych oraz maskowanie adresu URL napastnika Eskalowanie ataków przy użyciu przekierowań DNS Przeprowadzanie ataku phishingowego Podsumowanie Rozdział 6. Ataki na sieci bezprzewodowe Konfigurowanie systemu Kali Linux do przeprowadzania ataków na sieci bezprzewodowe Przeprowadzanie rozpoznania w sieciach bezprzewodowych Kismet Omijanie zabezpieczenia sieci z ukrytym identyfikatorem SSID Omijanie zabezpieczenia sieci z filtrowaniem adresów MAC oraz otwartym uwierzytelnianiem Atakowanie sieci z szyfrowaniem WPA i WPA2 Ataki typu brute-force Atakowanie routerów sieci bezprzewodowych przy użyciu programu Reaver Ataki typu DoS na sieci bezprzewodowe Ataki na sieci WLAN z szyfrowaniem WPA/WPA2-Enterprise Praca z pakietem Ghost Phisher Podsumowanie Rozdział 7. Rozpoznawanie i przełamywanie zabezpieczeń aplikacji internetowych Metodologia Planowanie ataku Przeprowadzanie rozpoznania witryny internetowej Wykrywanie zapór WAF oraz systemów równoważenia obciążenia Tworzenie sygnatur aplikacji internetowych i systemów CMS Tworzenie lustrzanej kopii strony internetowej z poziomu wiersza poleceń Serwery proxy po stronie klienta Burp Proxy Poszerzanie funkcjonalności przeglądarek internetowych Przeszukiwanie sieci i ataki typu brute-force na struktury katalogów Skanery podatności wykrywające podatności określonych usług i aplikacji Ataki specyficzne dla określonych aplikacji Ataki typu brute-force na poświadczenia logowania Wstrzykiwanie poleceń systemu operacyjnego przy użyciu narzędzia commix Ataki ze wstrzykiwaniem danych lub kodu do baz danych Utrzymywanie dostępu za pomocą powłok webshell Podsumowanie 6 195 196 197 200 202 204 206 207 210 211 213 217 218 221 222 224 225 227 228 231 232 232 237 239 239 241 241 241 243 245 247 Poleć książkęKup książkę Spis treści Rozdział 8. Ataki na zdalny dostęp Wykorzystywanie luk w zabezpieczeniach protokołów komunikacyjnych Przełamywanie zabezpieczeń protokołu RDP Przełamywanie zabezpieczeń protokołu SSH Przełamywanie zabezpieczeń protokołu VNC Ataki na połączenia SSL Słabe strony i luki w zabezpieczeniach protokołu SSL Praca z programem Testssl Rozpoznawanie połączeń SSL Zastosowanie programu sslstrip do przeprowadzania ataku man-in-the-middle Ataki typu DoS na połączenia SSL Ataki na wirtualne sieci prywatne z protokołem IPSec Skanowanie w poszukiwaniu bramek VPN Tworzenie cyfrowego odcisku palca bramy VPN Przechwytywanie kluczy PSK Łamanie kluczy PSK w trybie offline Identyfikacja domyślnych kont użytkowników Podsumowanie Rozdział 9. Ataki po stronie klienta Backdooring — tworzenie plików wykonywalnych wyposażonych w tylne wejścia Atakowanie systemów przy użyciu złośliwych skryptów Przeprowadzanie ataków za pomocą skryptów w języku VBScript Atakowanie systemów przy użyciu skryptów powłoki PowerShell Pakiet XSS Framework Pakiet BeEF Konfigurowanie pakietu BeEF Praca z pakietem BeEF Integracja pakietów BeEF i Metasploit Używanie pakietu BeEF jako tunelującego serwera proxy Podsumowanie Rozdział 10. Omijanie mechanizmów zabezpieczających Omijanie zabezpieczeń wprowadzanych przez mechanizm NAC Weryfikacja przed uzyskaniem dostępu do sieci Weryfikacja po uzyskaniu dostępu do sieci Omijanie programów antywirusowych przy użyciu różnych narzędzi Korzystanie z pakietu Veil Framework Używanie programu Shellter Omijanie zabezpieczeń działających na poziomie aplikacji Zastosowanie protokołu SSH do tunelowania połączeń przez zapory sieciowe działające po stronie klienta Omijanie białej listy aplikacji 249 250 250 253 255 257 257 259 260 265 268 269 270 271 272 272 273 273 275 276 279 279 282 285 289 290 293 296 297 299 301 302 303 305 305 307 312 316 316 320 7 Poleć książkęKup książkę Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych Omijanie zabezpieczeń systemu operacyjnego Windows Pakiet EMET (Enhanced Migration Experience Toolkit) UAC — kontrola konta użytkownika Inne zabezpieczenia systemu operacyjnego Windows Podsumowanie Rozdział 11. Wykorzystywanie podatności i luk w zabezpieczeniach Pakiet Metasploit Biblioteki Interfejsy Moduły Tworzenie i konfiguracja bazy danych Atakowanie celów przy użyciu pakietu Metasploit Framework Atakowanie pojedynczych systemów z użyciem odwróconej powłoki Atakowanie pojedynczych systemów z użyciem odwróconej powłoki PowerShell Atakowanie wielu systemów przy użyciu plików zasobów pakietu Metasploit Framework Atakowanie wielu systemów przy użyciu pakietu Armitage Używanie publicznych exploitów Lokalizowanie i weryfikowanie publicznie dostępnych exploitów Kompilowanie i używanie exploitów Tworzenie exploitów dla systemu Windows Identyfikacja podatności i luk w zabezpieczeniach przy użyciu fuzzingu Tworzenie exploita dla systemu Windows Podsumowanie Rozdział 12. Powłamaniowa eksploracja środowiska celu Eksploracja skompromitowanego systemu lokalnego Przeprowadzenie szybkiego rozpoznania skompromitowanego systemu Wyszukiwanie i pobieranie wrażliwych danych — plądrowanie celu Narzędzia wspomagające powłamaniową eksplorację systemu (MSF, framework Veil-Pillage, skrypty) Pakiet Veil-Pillage Eskalacja pozioma i atakowanie innych systemów Kompromitowanie relacji zaufania między domenami oraz udziałów sieciowych PsExec, WMIC i inne narzędzia Eskalacja pozioma z użyciem usług Pivoting i przekierowywanie portów Podsumowanie Rozdział 13. Podnoszenie uprawnień Typowa metodologia podnoszenia uprawnień Podnoszenie uprawnień w systemie lokalnym Podnoszenie uprawnień z poziomu administratora na poziom systemu Wstrzykiwanie bibliotek DLL Narzędzie PowerShell Empire 322 322 323 328 331 333 334 334 335 336 337 342 342 344 345 346 349 349 351 353 354 360 363 365 366 367 368 372 375 379 380 381 385 385 388 389 390 391 392 393 395 8 Poleć książkęKup książkę Spis treści Ataki pozwalające na zbieranie poświadczeń i podnoszenie uprawnień Sniffery haseł Responder Ataki typu SMB relay Podnoszenie uprawnień w Active Directory Ataki typu Golden Ticket na protokół Kerberos Podsumowanie Rozdział 14. Sterowanie i kontrola Używanie agentów persystencji Używanie programu Netcat jako agenta persystencji Zastosowanie programu schtasks do konfigurowania trwałych zadań Utrzymywanie trwałego dostępu przy użyciu pakietu Metasploit Używanie skryptu persistence Tworzenie samodzielnego trwałego agenta z wykorzystaniem pakietu Metasploit Utrzymywanie trwałego dostępu za pomocą mediów społecznościowych i poczty Gmail Eksfiltracja danych Korzystanie z istniejących usług systemowych (Telnet, RDP i VNC) Eksfiltracja danych z wykorzystaniem protokołu DNS Eksfiltracja danych z wykorzystaniem protokołu DNS Pakiet Data Exfiltration Toolkit (DET) Eksfiltracja danych z wykorzystaniem powłoki PowerShell Ukrywanie śladów ataku Podsumowanie Skorowidz 400 401 402 405 405 412 414 415 416 417 421 422 423 424 426 429 430 431 433 435 437 437 439 441 9 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 penetracyjne ukierunkowane 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 tym rozdziale będziemy omawiać znaczenie testów penetracyjnych ukierunkowanych na osiągnię- cie celu oraz wyjaśnimy, dlaczego bez wyznaczenia takiego celu przeprowadzanie skanowania w 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 systemu Kali 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 penetracyjne i 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 Linux do 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ń środowiska komputerowego 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  Jak wyznaczać cele działania.  Jak zbudować środowisko testowe. Koncepcyjny przegląd testów bezpieczeństwa Praktycznie 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 czy cyberterroryzm. 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 klasycznych testów penetracyjnych, skanowania w poszukiwaniu podatności i działań zespołów Red Team W tym podrozdziale skoncentrujemy się na omawianiu ograniczeń tradycyjnych bądź, jak kto woli, klasycznych metod przeprowadzania testów penetracyjnych, wyszukiwania podatności i 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 to proces mający na celu identyfikację podatności na ataki i luk w zabezpieczeniach atakowanego środowiska i działających w nim systemów. Poważnym ograniczeniem takiego skanowania jest fakt, że jego wyniki to lista potencjalnych podatności, z których duża część może być fałszywie pozytywna. Dla właściciela danego biznesu może to stanowić poważny problem z oszacowaniem ryzyka, ponieważ w takiej sytuacji nie mamy jasnego obrazu tego, która z podatności stanowi rzeczywiste zagrożenie dla funkcjonowania środowiska, a która jest tylko fałszywie potencjalnym zagrożeniem niemającym odzwierciedlenia w rzeczywistości.  Testy penetracyjne (ang. penetration testing) — jest to proces mający na celu dokonanie próby bezpiecznego wykorzystania wykrytych wcześniej podatności i luk w zabezpieczeniach do przeprowadzenia kontrolowanego ataku na badane 24 Poleć książkęKup książkę Rozdział 1. • Testy penetracyjne ukierunkowane na osiągnięcie celu środowisko bez wprowadzania poważnych zagrożeń dla jego normalnego funkcjonowania. Przeprowadzenie takich testów daje znacznie mniejszy odsetek wyników fałszywie pozytywnych, ponieważ pentesterzy próbują użyć każdej ze znalezionych podatności. Poważnym ograniczeniem testów penetracyjnych może być to, że z reguły są one zawężane tylko do publicznie znanych podatności i exploitów. Co więcej, podczas przeprowadzania testów penetracyjnych często słyszymy słowa: „Bingo! Mamy roota!”, ale bardzo rzadko pada pytanie: „Co robimy dalej?”. Dzieje się tak z wielu bardzo różnych powodów, takich jak narzucone z góry ograniczenia zakresu przeprowadzanych testów penetracyjnych, konieczność raportowania tylko podatności wysokiego ryzyka czy ograniczenie przez klienta zakresu testów tylko do wybranych systemów czy segmentów sieci.  Ćwiczenia zespołów Red Team (ang. Red Team Exercises) — jest to proces szacowania efektywności ochrony badanego środowiska przed zagrożeniami z cyberprzestrzeni i poprawiania zaimplementowanych zabezpieczeń. Podczas takich ćwiczeń z reguły stosowanych jest wiele różnych sposobów atakowania badanego środowiska, wykorzystujących metody socjotechniczne, kampanie phishingowe, 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órych dział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 hacking czy ł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 pytania w 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 Team jest 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 luka w zabezpieczeniach jest istotna i nie zawsze musi się ona wiązać z poważnym zagrożeniem. Na przykł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łej firmy; 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. 25 Poleć książkęKup książkę Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych Metodologia przeprowadzania testów Niestety metodologia przeprowadzania testów penetracyjnych bardzo często nie obejmuje powodó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ęcie tak istotnych informacji już na samym początku procesu może spowodować, że właściwy cel przeprowadzania 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 wyszukiwaniu podatnoś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. Na przykład klient zlecający test chce sprawdzić, czy pentester będzie w stanie w nieautoryzowany sposó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’a Clopperta, aby jeszcze dokładniej odzwierciedlić poszczególne operacje podejmowane przez potencjalnego 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: 26 Poleć książkęKup książkę Rozdział 1. • Testy penetracyjne ukierunkowane na osiągnięcie celu 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 prostym potwierdzeniem tego, że przed rozpoczęciem ataku zawsze dobrze jest zebrać jak największą ilość informacji o nieprzyjacielu. Z tego samego powodu hakerzy przed rozpoczęciem cyberataku przeprowadzają zakrojone na szeroką skalę rozpoznanie celu. 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 wchodzi w bezpośrednią interakcję ze środowiskiem celu, lecz korzysta na przykład z zawartości publicznie dostępnych stron internetowych, materiałów konferencyjnych, informacji dostępnych w mediach i serwisach sieciowych (a zwłaszcza w serwisach społecznościowych). Bazując na pozyskanych informacjach, stara się wyznaczyć odpowiednią płaszczyznę ataku (ang. attack surface). Jedną z operacji często wykonywanych podczas rozpoznania pasywnego jest przygotowywanie listy obecnych i poprzednich pracowników atakowanej firmy, która może stanowić dobrą bazę do łamania haseł metodą brute-force lub może być wykorzystana do przeprowadzania ataków socjotechnicznych. Rozpoznanie przeprowadzane w sposób pasywny jest bardzo trudne, a często wręcz niemożliwe do wykrycia.  Rozpoznanie aktywne — aktywność napastnika związana z aktywnym rozpoznawaniem środowiska celu może zostać wykryta, ale w praktyce bardzo trudno ją odróżnić od tego, z czym większość firm czy organizacji styka się na co dzień. Rozpoznanie aktywne może obejmować skanowanie portów, zdalne skanowanie 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óre zostanie 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ład za pomocą wiadomości poczty elektronicznej, sieci bezprzewodowej czy usługi sieci WWW). 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 zostaje pomyślnie wykorzystany, co pozwala napastnikowi na osiągnięcie zaplanowanego celu. Skompromitowanie celu mogło wystąpić w jednej fazie (na przykład napastnik wykorzystał dobrze znaną podatność danego systemu na ataki z przepełnianiem bufora), ale równie dobrze mogło wymagać przeprowadzenia operacji wielofazowej (na przykład napastnik, wykorzystując metody socjotechniczne, przedostał się na teren firmy i skradł egzemplarz firmowej książki telefonicznej. Znajdujące się tam informacje zostały wykorzystane do utworzenia słownika danych użytego następnie 27 Poleć książkęKup książkę Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych do przeprowadzenia ataku typu brute-force na portal firmy. Dodatkowo na pozyskane poprzez kradzież książki adresy poczty elektronicznej pracowników napastnik porozsył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 zainfekowanymi systemami). Ataki wielofazowe są powszechnie wykorzystywane w scenariuszach, gdzie celem ataku jest określona firma czy organizacja.  Faza post-exploit (eksploracja środowiska celu) — faza eksploracji środowiska celu bardzo często bywa niepoprawnie nazwana fazą eksfiltracji (ang. exfiltration phase), ponieważ dość powszechnie takie ataki postrzegane są niemal wyłącznie jako metody kradzieży poufnych i wrażliwych danych (takich jak listy użytkowników i haseł dostępu, dane osobowe czy informacje finansowe). W praktyce jednak napastnicy mają często zupełnie inne cele. Na przykład nieuczciwa firma może być zainteresowana przeprowadzeniem ataku typu DoS na internetową sieć usług swojego konkurenta, czego efektem będzie potencjalne zwiększenie zainteresowania klientów swoimi rozwiązaniami. Z tego względu faza eksploracji środowiska celu musi skupiać się na wielu potencjalnie możliwych czynnościach napastnika. Jedne z najczęściej obserwowanych działań związanych z exploitami mają miejsce wtedy, gdy napastnicy próbują zwiększyć swoje uprawnienia do najwyższego możliwego poziomu (eskalacja pionowa) i uzyskać dostęp do jak największej liczby kont i systemów (eskalacja pozioma).  Faza post-exploit (utrzymanie dostępu) — przełamanie zabezpieczeń i uzyskanie dostę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 czemu będzie mógł w dowolnym momencie powrócić do zaatakowanego systemu. Z punktu widzenia zespołu odpowiedzialnego za ochronę systemu ten element cyberataku jest zazwyczaj najłatwiejszy do wykrycia. Przebieg ataku cybernetycznego (ang. kill chain) jest swego rodzaju metamodelem zachowania napastnika 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ą lub komercyjną metodologię przeprowadzania testów penetracyjnych. W przeciwieństwie jednak do 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ści wykonywane przez napastnika podczas przeprowadzania ataku. Wprowadzenie do systemu Kali Linux — jego historia i przeznaczenie System 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 28 Poleć książkęKup książkę Rozdział 1. • Testy penetracyjne ukierunkowane na osiągnięcie celu 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 Linux pojawiła się dopiero po dwóch latach od jego premiery i przyniosła aktualizację jądra systemu do wersji 3.18, poprawki modułów wspomagających ataki ze wstrzykiwaniem ramek do sieci Wi-Fi oraz obsługę nowych sterowników bezprzewodowych kart sieciowych; 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ły ró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ąwszy od wersji 2.0, można dokonywać aktualizacji systemu Kali Linux ze starszej do nowszej wersji.  Kali 2016.1 (data wydania: 21 stycznia 2016) — pierwsze ciągłe wydanie systemu Kali Linux, które przyniosło aktualizację jądra do wersji 4.3 oraz nowe środowisko GNOME w wersji 3.18.  Kali 2016.2 (data wydania: 31 sierpnia 2016) — kolejne ciągłe wydanie systemu Kali Linux, wyposażone w jądro 4.6, środowisko GNOME 3.20.2 oraz wiele poprawek 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 oraz ekspertyz z informatyki śledczej. W kolejnych wydaniach systemu poszczególne narzędzia są sukcesywnie aktualizowane bądź zastępowane nowymi wersjami. Wiele z tych narzędzi współpracuje z bezprzewodowymi kartami sieciowymi i pozwala na 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 repozytoriami co 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ów podpisanych kluczem GPG.  Wsparcie dla użytkowników chcących przygotować indywidualne, dostosowane do własnych potrzeb dystrybucje ISO systemu Kali Linux. Funkcja bootstrap znakomicie ułatwia instalowanie systemu również w dużych środowiskach korporacyjnych, gdzie proces instalacji może być zautomatyzowany przy użyciu predefiniowanych plików konfiguracyjnych (ang. Linux preseed files). 29 Poleć książkęKup książkę Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych  Ze względu na rosnącą popularność (i spadające ceny) systemów z procesorami ARM w systemie zaimplementowana została również obsługa architektur ARMEL i ARMHF, dzięki czemu Kali Linux można instalować na takich urządzeniach jak rk3306 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 open source, dostępnym bezpłatnie dla każdego i co najważniejsze — aktywnie wspieranym przez ogromną społeczność użytkowników. Celem systemu Kali Linux jest zebranie wszystkich najważniejszych narzędzi wspomagających przeprowadzanie testów bezpieczeństwa i testów penetracyjnych w jednej, elastycznej i bar- dzo uniwersalnej platformie systemowej. Instalowanie i aktualizowanie systemu Kali Linux W poprzednich wydaniach tej książki koncentrowaliśmy się głównie na procesie instalacji systemu Kali Linux w maszynach wirtualnych VMware, zatem tym razem postaramy się nieco bardziej zagłębić w różne inne techniki instalowania i aktualizowania systemu Kali Linux. Uruchamianie systemu Kali Linux z urządzenia przenośnego Proces 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 ma on przeprowadzić testowanie. Przeprowadzanie testów penetracyjnych przy użyciu systemu Kali 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ści wprowadzania jakichkolwiek modyfikacji w zainstalowanym systemie operacyjnym.  Korzystając z urządzeń przenośnych, możesz utworzyć kilka osobnych wersji systemu Kali Linux, dostosowanych do określonych scenariuszy testowania i wymagań klienta. 30 Poleć książkęKup książkę Rozdział 1. • Testy penetracyjne ukierunkowane na osiągnięcie celu Jeżeli pracujesz na komputerze działającym pod kontrolą systemu Windows, zainstalowanie systemu Kali Linux na urządzeniu przenośnym będzie wymagało wykonania zaledwie trzech krokó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 internetowej https://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ę okno podobne do przedstawionego poniżej. Wybierz urządzenie, na którym chcesz zainstalować system Kali Linux, i naciśnij przycisk Write (zapisz): Po zakończeniu instalowania systemu zamknij program Win32 Disk Imager i bezpiecznie odłą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 chcesz zainstalować 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óch poleceń. Pierwsze to sudo fdisk -l, które wyświetla listę wszystkich zamontowanych napędów dyskowych, 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, of to nazwa urządzenia docelowego, a bs to rozmiar zapisywanych bloków. Instalowanie systemu Kali Linux w maszynie wirtualnej W 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 Oracle VirtualBox. 31 Poleć książkęKup książkę Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych VMware Workstation Player VMware 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. Oprogramowanie moż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 maszynie wirtualnej 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 systemu Kali 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 (na przykł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 (rekomendowany rozmiar to 10 GB), naciskaj przycisk Next na kolejnych ekranach kreatora aż do utworzenia maszyny wirtualnej. Po jej uruchomieniu powinieneś zobaczyć następujący ekran (patrz drugi rysunek na następnej stronie). 32 Poleć książkęKup książkę Rozdział 1. • Testy penetracyjne ukierunkowane na osiągnięcie celu Z poziomu menu uruchomieniowego możesz wybrać opcję instalacji systemu Kali Linux na dysku 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 żadnych problemów, tak jak to zostało pokazane na rysunku: 33 Poleć książkęKup książkę Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych Począwszy od wersji 2016.2, z systemu Kali Linux zostały usunięte repozytoria Sana. Sana to nazwa 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ć po zainstalowaniu i uruchomieniu systemu Kali Linux, powinno być wykonanie polecenia apt- get update, dzięki któremu zaktualizowana zostanie zawartość pliku sources.lst. VirtualBox Program VirtualBox jest rozwiązaniem bardzo podobnym do VMware Workstation Player. Jest to oprogramowanie pozwalające na tworzenie i uruchamianie maszyn wirtualnych, które jest bezpł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 pod kontrolą 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 (patrz pierwszy 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 na następnej stronie). 34 Poleć książkęKup książkę Rozdział 1. • Testy penetracyjne ukierunkowane na osiągnięcie celu 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: 35 Poleć książkęKup książkę Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych Jeżeli proces instalacji pakietu Oracle VirtualBox zakończy się pomyślnie, po uruchomieniu programu ekran powinien wyglądać tak, jak to zostało pokazane poniżej: Kolejnym krokiem będzie utworzenie maszyny wirtualnej i zainstalowanie w niej systemu Kali Linux. Aby to zrobić, naciśnij przycisk New (nowy), znajdujący się na pasku narzędzi programu VirtualBox. Na ekranie powinno się pojawić okno kreatora tworzenia nowej maszyny wirtualnej. 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 maszyny wirtualnej, 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 twardy dla 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ło pokazane na pierwszym rysunku na następnej stronie. 36 Poleć książkęKup książkę Rozdział 1. • Testy penetracyjne ukierunkowane na osiągnięcie celu Naciśnij przycisk Next i w kolejnym oknie kreatora wybierz rozmiar dysku twardego, który zostanie 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. 37 Poleć książkęKup książkę Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych 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): 38 Poleć książkęKup książkę Rozdział 1. • Testy penetracyjne ukierunkowane na osiągnięcie celu Instalowanie aplikacji Docker Docker to aplikacja typu open source pozwalająca na tworzenie, dostarczanie i uruchamianie aplikacji 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 Web Services) oraz Azure. Dla systemu Windows pakiet Docker możesz pobrać z następującego adresu 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 nie jest 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 jak to zostało pokazane na rysunku: 39 Poleć książkęKup książkę Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych Na tym proces instalowania aplikacji Docker zostaje zakończony. Teraz musimy zainstalować system Kali Linux. Aby to zrobić, powinieneś z poziomu konsoli wykonać polecenie docker pull 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 -i kalilinux/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 takiej sytuacji nasza maszyna wirtualna z systemem Kali Linux działa w środowisku VirtualBox za pośrednictwem kontenera Docker. 40 Poleć książkęKup książkę Rozdział 1. • Testy penetracyjne ukierunkowane na osiągnięcie celu Instalowanie systemu Kali Linux w chmurze — tworzenie instancji AWS AWS to opracowana przez firmę Amazon platforma oparta na technologii chmury, której pod- stawowym przeznaczeniem jest udostępnianie użytkownikom mocy obliczeniowej, przestrzeni dyskowej 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 jak to 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 dystrybucji Debian. 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 platformy Amazon 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: 41 Poleć książkęKup książkę Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych Naciśnij przycisk Accept Software Terms Launch with 1-Click (zaakceptuj warunki licencji i 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 stanie uruchomić wybraną instancję systemu Kali Linux, wybierając odpowiedni wiersz lub identyfika- tor instancji (ang. Instance ID) i naciskając przycisk Launch Instance (uruchom instancję), tak jak to zostało pokazane na rysunku poniżej: Teraz musisz utworzyć parę kluczy, co zagwarantuje, że tylko Ty będziesz miał dostęp do tej instancji 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: 42 Poleć książkęKup książkę Rozdział 1. • Testy penetracyjne ukierunkowane na osiągnięcie celu 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 Linux Zainstalowanie systemu Kali Linux to zaledwie początek, ponieważ równie ważnym, o ile nie ważniejszym etapem jest odpowiednie skonfigurowanie i dostosowanie systemu do własnych potrzeb i wymagań. W tym podrozdziale szczegółowo omówimy proces konfigurowania tego systemu. 43 Poleć książkęKup książkę Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych Konfigurowanie i dostosowywanie systemu Kali Linux Kali Linux to system wspomagający przeprowadzanie testów penetracyjnych. Jednak aby taki system był efektywny, pentester nie może się czuć w żaden sposób związany czy ograniczony przez domyślnie zainstalowane narzędzia czy domyślną konfigurację interfejsu użytkownika i pulpitu. Dostosowując system Kali Linux do własnych potrzeb i wymagań, pentester może polepszyć 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 root Aby 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żytkownika Bardzo 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łania polecenia na prawach zwykłego użytkownika. Warto zauważyć, że niektóre aplikacje wręcz wymuszają uruchamianie z poziomu użytkownika o niższych uprawnieniach niż administrator systemu. 44 Poleć książkęKup książkę Rozdział 1. • Testy penetracyjne ukierunkowane na osiągnięcie celu 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 jak to zostało pokazane na rysunku poniżej: Przyspieszanie działania systemu Kali Linux Istnieje co najmniej kilka narzędzi, których możesz używać do optymalizacji i przyspieszania dział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 alokowanego dynamicznie wybrać dysk twardy o stałej wielkości. Takie rozwiązanie powoduje szybsze zapisywanie plików na dysku i zmniejsza ich fragmentację.  Aplikacja preload identyfikuje najczęściej wykorzystywane przez użytkownika programy i przyspiesza działanie systemu poprzez wcześniejsze buforowanie odpowiednich plików wykonywalnych i zależności. Aby ją zainstalować, powinieneś wykonać polecenie apt-get install preload. Po zainstalowaniu i zrestartowaniu systemu aplikacja działa całkowicie automatycznie.  BleachBit (apt-get install bleachbit) to aplikacja, która optymalizuje działanie systemu poprzez zwalnianie niepotrzebnie zajętych zasobów dyskowych, usuwanie ciasteczek, czyszczenie historii przeglądania sieci internet, usuwanie plików tymczasowych, kasowanie logów oraz innych niepotrzebnych plików. Oprócz tego aplikacja posiada kilka dodatkowych, przydatnych funkcji, takich jak usuwanie plików metodą nadpisywania — co uniemożliwia ich odzyskanie — czy nadpisywanie niealokowanej przestrzeni dyskowej — co powoduje definitywne usunięcie resztek danych pozostawionych przez skasowane wcześniej pliki. 45 Poleć książkęKup książkę Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych  Domyślnie Kali Linux nie wyświetla wszystkich aplikacji uruchamianych podczas ładowania systemu. Każda aplikacja ładowana i uruchamiana podczas bootowania systemu wydłuża ten proces, może zabierać cenne zasoby i wpływać na zmniejszenie wydajnoś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 na uruchamianie aplikacji bezpośrednio z poziomu klawiatury. Aby ją skonfigurować, musisz ją uruchomić z menu Applications/Accessories (aplikacje/akcesoria), a następnie wybrać menu Preferences (właściwości), aktywować opcję Quiet Launch (ciche uruchamianie), wybrać uruchamiającą kombinację klawiszy (na przykład Ctrl+Shift) i wpisać wiersz polecenia, który powinien zostać wykonany po naciśnięciu tej kombinacji.  Pamiętaj, że do wykonywania bardziej złożonych operacji możesz używać nie tylko skrótów klawiszowych, ale też odpowiednio przygotowanych skryptów powłoki. Udostępnianie i współużytkowanie folderów z systemem operacyjnym hosta System Kali Linux pozwala na udostępnianie plików i danych aplikacjom działającym pod kontrolą innych systemów operacyjnych, a zwłaszcza systemu Microsoft Windows. Najbardziej efektywnym sposobem udostępniania danych jest utworzenie dedykowanego foldera, który będzie dostępny zarówno z poziomu systemu operacyjnego hosta, jak i z poziomu systemu Kali Linux działającego w maszynie wirtualnej. 46 Poleć książkęKup książkę Rozdział 1. • Testy penetracyjne ukierunkowane na osiągnięcie celu 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 folder o nazwie Kali_Share. 2. Kliknij nowo utworzony folder prawym przyciskiem myszy i wybierz polecenie Sharing (udostępnianie). 3. Włącz udostępnianie foldera i upewnij się, że dostęp będą mieli wszyscy użytkownicy (Everyone), a poziom uprawnień ustawiony jest na prawo odczytu i zapisu (Read/Write). 4. Jeżeli jeszcze tego nie zrobiłeś, zainstaluj w maszynie wirtualnej dodatki Guest Additions (dla VirtualBox) lub VMware Tools (dla VMware); więcej szczegółowych informacji na ten temat znajdziesz w dodatku, w sekcji „Instalowanie systemu Kali Linux”. 5. Po zakończeniu instalacji przejdź do menu głównego VMware, wybierz polecenie Manage/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 systemie plików hosta, który ma być współdzielony, tak jak to zostało pokazane na rysunku poniżej: 47 Poleć książkęKup książkę Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych 6. Jeżeli używasz programu Oracle VirtualBox, zaznacz maszynę wirtualną, wybierz polecenie 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 to został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 operacyjnego hosta 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 powinna być zaszyfrowana. Dzięki temu wrażliwe dane klienta będą lepiej zabezpieczone i chronione przed przypadkowym wyciekiem, gdyby zawierający je dysk został zagubiony lub skradziony. Dostosowywanie systemu Kali Linux do własnych potrzeb przy użyciu skryptów powłoki bash W 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. 48 Poleć książkęKup książkę Rozdział 1. • Testy penetracyjne ukierunkowane na osiągnięcie celu W zależności od celu przeprowadzanego testu penetracyjnego do dostosowania systemu Kali Linux 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 testowego Każdy pentester powinien utworzyć swoje własne środowisko testowe, w którym będzie moż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 Directory Zdecydowana 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ż znacznie bardziej 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ążki będziemy opisywać niektóre zaawansowane ataki na usługę Active Directory oraz serwery DNS danego środowiska. W tej sekcji pokażemy, jak zainstalować usługę Active Directory na serwerze 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 instalowania systemu Kali Linux. Następnie na ekranie pojawi się kreator, który krok po kroku przeprowadzi nas przez proces instalowania usług Active Directory Domain Services. Załóżmy zatem, że serwer Windows 2008 R2 mamy już zainstalowany i na ekranie pojawił się kreator instalowania usług Active Directory. 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 krok kreatora, Before you begin (zanim rozpoczniesz). Naciśnij przycisk Next (dalej), a na ekranie zobaczysz 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ę komunikat z prośbą o zainstalowanie pakietu Microsoft .NET Framework 3.5.1, który jest niezbędny do poprawnego działania usług Active Directory. Naciśnij przycisk Add Required Features (dodaj wymagane komponenty), tak jak to zostało pokazane na drugim rysunku na następnej stronie. 49 Poleć książkęKup książkę Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych 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 procesu instalacji usług Active Directory, tak jak to zostało pokazane na pierwszym rysunku na następnej stronie. 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 przypadku będziemy tworzyć nowy las, którego pełna nazwa domenowa FQDN (ang. Fully Qualified Domain Name) to Secure.kali.com. Nazwę domeny NetBIOS ustawiamy na Secure, następnie 50 Poleć książkęKup książkę Rozdział 1. • Testy penetracyjne ukierunkowane na osiągnięcie celu ustawiamy poziom funkcjonalności lasu (ang.
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Kali Linux. Testy penetracyjne i bezpieczeństwo sieci dla zaawansowanych. Wydanie II
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: