Enumeracja serwisów ofiary
Narzędzie nmap, poza możliwościami, które zostały opisane w poprzednich częściach opisujących metody skanowania serwera ofiary, pozwala także na szybkie i sprawne sprawdzenie, jakiego rodzaju usługa serwowana jest na danym porcie i (często) w jakiej wersji.
Aby wykonać tego typu sprawdzenie, należy zaangażować przełącznik -sV, tak jak zostało to pokazane na poniższym zrzucie ekranu:
Różnica w stosunku do zwykłego skanowania została podkreślona na żółto.
Jak widać na zrzucie ekranu, atakujący jest w stanie sprawdzić (np. w tym przypadku) dokładną wersję oprogramowania, które jest hostowane na danym porcie.
W przypadku niestandardowych usług hostowanych na serwerze ofiary nmap może określić oprogramowanie nieznane jako unknown. Dzieje się tak, ponieważ przełącznik -sV bazuje na tzw. Banner grabbing. Jest to nic innego jak prosta technika zbierania informacji o oprogramowaniu i jego wersji, która nasłuchuje na danym porcie. Poniższy przykład obrazuje ten proces.
Na żółto pokazane jest to co wpisał atakujący – połączył się narzędziem netcat do serwera ofiary na port 22 (SSH). Netcat jest bardzo prostym narzędziem, działającym w architekturze klient/serwer, w tym przypadku jako klient, bowiem serwerem jest maszyna ofiary. Serwer ofiary w reakcji na połączenie się atakującego, przedstawił się jako SSH-2.0-OpenSSH_7.9p1 Debian-10+deb10u2, dając na tacy informacje o swojej wersji SSH. W analogiczny sposób da się enumerować wersję serwera webowego Apache, hostowanego na porcie 80.
Możemy zobaczyć, że atakujący ma możliwość enumeracji wersji oprogramowania serwowanego na hoście ofiary. Mając zebrane informacje o owych wersjach, atakujący ma otwartą drogę do znalezienia publicznie znanych exploitów (kodów, które wykorzystują luki w bezpieczeństwie danego oprogramowania, w celu wyrządzenia szkody np. uzyskania nieautoryzowanego dostępu do maszyny ofiary) czy też wyszukania potencjalnych słabości w tym oprogramowaniu, co przedstawione zostało na zrzucie poniżej:
Automatyzacja skanowania, czyli nmap scriping engine
Jak widać, narzędzie nmap jest stosunkowo proste w użyciu, ale ma też bardzo szeroki wachlarz możliwości. Niemniej jednak nmap daje możliwość tworzenia własnych skryptów, które w prosty sposób mogą automatyzować pracę atakującego. Obecnie dostępne są skrypty, które potrafią robić szeroki zakres działań: od ataku typu brute-force, poprzez enumerację DNS, na skryptach weryfikujących występowanie podatności kończąc.
Domyślną lokalizacją tych skryptów jest ścieżka /usr/share/nmap/scripts/. Przykład użycia skryptu znajduje się poniżej:
Przełącznik –script=[pełna ścieżka do skryptu] pozwala narzędziu nmap załadować skrypt spod określonej ścieżki.
Atakujący zweryfikował, które spośród dostępnych metod uwierzytelnienia SSH, używa serwer ofiary.
Poniżej znajduje się lista algorytmów szyfrowania, które są akceptowalne w tym przykładzie:
Samo SSH posiada kilka skryptów, których atakujący może użyć.
Mając świadomość, że serwer ofiary może mieć znacznie więcej portów otwartych niż tylko dwa – jak w tym przykładzie – oraz dokładając do tego fakt, że dane oprogramowanie może mieć (i często ma) kilka dedykowanych skryptów, to nie trzeba używać wyobraźni by wiedzieć ile informacji jest w stanie atakujący wyciągnąć o maszynie, którą zamierza atakować.
Wszystkiego tego jest w stanie dokonać używając jednego, publicznie dostępnego, darmowego narzędzia, takiego jak nmap.
W kolejnych częściach niniejszej serii artykułów, czytelnik dowie się także w jaki sposób uchronić się przed tego typu technikami zbierania informacji np. poprzez oszukiwanie atakującego, co do wersji czy rodzaju oprogramowania hostowanego na serwerze.
… [Trackback]
[…] Information on that Topic: wladcysieci.pl/2020/07/13/wielozadaniowy-nmap-czyli-jak-za-darmo-przeskanowac-porty-ofiary/ […]