Testy penetracyjne polegają na przeprowadzaniu kontrolowanego ataku lub rozpoznania na sieć informatyczną, witrynę, usługę lub aplikację internetową w celu wykrycia podatności, błędów konfiguracji oraz luk w zabezpieczeniach. W tym artykule skupimy się na sieciowych testach penetracyjnych, które każdy administrator sieci powinien umieć przeprowadzić samodzielnie i naprawić wykryte nieprawidłowości. Mogą to być na przykład: otwarte nieużywane porty, niepotrzebne usługi, udostępnione etykiety urządzeń, zła konfiguracja firewall’a.


1. Rozpoznanie hostów

Pierwszą fazą każdego testu (tak samo ataku) sieciowego jest rozpoznanie. Dowiadujemy się tutaj o adresacji sieci, rodzaju i ilości urządzeń, wpisach w DNS, routingu oraz ogólnej strukturze sieci. Najbardziej oczywistą metodą jest skorzystanie z polecenia ping. Proponujemy tutaj popularne narzędzie nmap, które pozwala jednym poleceniem na przeskanowanie całego zakresu adresów IP czy wskazanie podsieci, która ma być odpytana:
nmap -sn 192.168.125.*
nmap -sn 192.168.188-20



Zaraz po przetestowaniu komunikacji poprzez ICMP (ping) warto odpytać serwer DNS o interesujące nas hosty czy adresy. Komendą wbudowaną w systemy operacyjne Linux oraz Windows – nslookup, dowiemy się o rekordach DNS dla interesującego nas adresu bądź nazwy:
nslookup 192.168.125.15
nslookup -type=MX myserver.name

Domyślnie odpytywany jest rekord typu A, aczkolwiek możemy odpytać każdy rekord wskazując go w parametrze type.

Dodatkowo, aby poznać architekturę sieci i sprawdzić jak skonfigurowane jest rutowanie możemy skorzystać z polecenia traceroute lub tracert. Sprawdzimy w ten sposób drogę pakietów do podanego adresu docelowego.

Na tym etapie testów sieciowych warto wspomnieć o kilku interesujących narzędziach online: ping.eu, monitis.com, whois.domaintools.com.


2. Skanowanie portów

Otwarte porty komunikacyjne to jedno z najczęstszych niedopatrzeń, a zaraz najprostsze do wykorzystania przez atakujących. Pozwalają na pobieranie i instalowanie, a następnie na komunikowanie się złośliwego oprogramowania w atakowanej sieci. Bezkonkurencyjnym i darmowym narzędziem do diagnostyki portów jest nmap. Powala na kilka opcji wywołania:
nmap -open 192.168.165.15 – znajduje wszystkie otwarte porty
nmap -p 22-100 kapitanhack.pl – skanuje podany zakres portów


3. OS Fingerprint

W języku polskim obowiązuje nazwa „odcisk palca stosu”, nie jest zbyt ładna, tak więc nie będziemy jej więcej używać. Jest to metoda pozwalająca sczytać informację z baneru hosta, który przedstawiając się w sieci często udostępnia dodatkowe, ciekawe informacje, np. wersję systemu operacyjnego. Oczywiście można to wyłączyć dla danych hostów w sieciach lokalnych, jednak często wiąże się to z późniejszymi problemami z usługami zdalnego zarządzania, audytowaniem itp. Tutaj też możemy posłużyć się niezawodnym nmap’em, jednak jest bardzo dobre narzędzie przystosowane specjalnie do tego typu działań. Nazywa się IDServe i oczywiście jest darmowe i proste w obsłudze. Poniżej sprawdziliśmy jakie informacje daje się uzyskać na temat naszej witryny:

Jak wiadomo atakujący znając wersję systemu operacyjnego, znają podatności, które można wykorzystać, aby skompromitować maszynę.


4. Wykrywanie podatności

Skanery podatności to w dzisiejszych czasach bardzo użyteczne narzędzia dla każdego administratora. Te zaawansowane pozwalają znaleźć i wskazać bugi w oprogramowaniu oraz miejsca, gdzie atakujący wykorzystując znane metody i słabości zabezpieczeń mogą namieszać w organizacji. Polecamy GFILangurad oraz Nessus. Dzięki tym narzędziom można w prosty sposób sprawdzić aktualność zainstalowanych patch’y oraz audytować usługi sieciowe pod kątem znanych podatności. Oba narzędzia po skanowaniu generują raporty i oceniają ryzyko skompromitowania sieci.

Przykładowy raport po skanowaniu narzędziem Nessus

5. Rysowanie schematu sieci

Narysowanie logicznego schematu zawierającego wszystkie połączenia i urządzenia w sieci z pewnością pomaga zauważyć luki w zabezpieczeniach i konfiguracji. Pozwala też zrozumieć, jak działa dana sieć, jeśli jest bardzo złożona i nie zawiera odpowiedniej dokumentacji. Taki schemat możemy wygenerować automatycznie w narzędziach LANmanager czy Network view.


6. Dokumentowanie

Ostatnim i najważniejszym krokiem w przeprowadzaniu testów penetracyjnych jest stworzenie dokumentacji zawierającej wszystkie znalezione nieprawidłowości i podatności. Na nic zda się wywoływanie komend i instalowanie narzędzi skanujących, jeśli nie będziemy na bieżąco dokumentować wyników. Jeśli określone zostały ryzyka, także warto je wpisać do odpowiedniej luki. Kiedy mamy taki dokument przygotowany, można zabierać się za „łatanie” sieci, a może nawet zmiany w strukturze, jeśli wymaga tego best-practices, czy polityka organizacji.

Takie proste testy mogą pomóc administratorom przygotować się na prawdziwy atak na ich sieć. Będą znali techniki, których używają hakerzy przy rozpoznaniu oraz będą w stanie rozpoznać symptomy występujące przy atakach.


Narzędzia pentestera warte uwagi:

  • Frameworki: Kali Linux, Backtrack5 R3, Security Onion
  • Rekonesans: Smartwhois, MxToolbox, dnsstuff, nslookup, DIG
  • Rozpoznanie: Angry IP scanner, nmap, NetResident
  • Skanowanie portów: Nmap, Megaping, zenmap, Advanced port scanner, Hping3
  • Enumeracja: Superscan, Netbios enumeration, DumpSec, Snmpcheck, Ps Tools, nslookup
  • Wykrywanie podatności: Nessus, GFI Languard, Retina, Nexpose
  • Łamanie haseł: Ncrack, John The Ripper, Hashcat, Cain&Abel
  • Exploitacja: Metasploit, Core Impact
Podziel się z innymi tym artykułem!