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.
Zostaw komentarz
Musisz się zalogować lub zarejestrować aby dodać nowy komentarz.