2022-06-22-09-06-12-nmap-i-nse-piec-polecen-dzieki-ktorym-poznasz-potege-ciemnej-strony-mocy.png

NMap i NSE – 5 poleceń za pomocą których poznasz potęgę ciemnej strony mocy

Nmap jest jednym z najpotężniejszych narzędzi do skanowania sieci i systemów. Dzieje się tak, ponieważ każdy może napisać kilka skryptów NSE, które zdecydowanie rozszerzą jego możliwości i pozwolą wyszukiwać oraz wykorzystywać nowe podatności.

Nmap jest jednym z najpotężniejszych narzędzi do skanowania sieci i systemów. Dzieje się tak, ponieważ każdy może napisać kilka skryptów NSE, które zdecydowanie rozszerzą jego możliwości i pozwolą wyszukiwać oraz wykorzystywać nowe podatności.

Nmap to prawdopodobnie najpopularniejsze oraz najbardziej znane narzędzie w całym świecie hakerskim. Program ma niesamowite możliwości, a dzięki skryptom NSE jesteśmy w stanie dowolnie go rozszerzać. Praktycznie nie ma dzisiaj pentestera, który nie napisał przynajmniej kilku skryptów NSE.

Ten tekst jest tekstem promocyjnym. Wszystkie przykłady zawarte tutaj znajdziesz w szkoleniu WotjkaHardcorowy Nmap. Dodatkowo przeprowadzamy także testy bezpieczeństwa i audyty hostów, sieci i podsieci. Aby zamówić test bezpieczeństwa, wystarczy, że się z nami skontaktujesz.

Disclamer: Zrzekamy się odpowiedzialności za użycie wskazanych tutaj przykładów do celów nie związanych z etycznym hackingiem oraz testami bezpieczeństwa własnych systemów oraz aplikacji.

Na potrzeby tego artykułu założyliśmy, że czytelnicy posiadają pewne doświadczenie ze skanerem NMap. Założyliśmy także, że czytelnicy przerobili chociaż kawałek naszego szkolenia – Hardcorowy Nmap. Po prostu warto wiedzieć jak działa ten skaner, aby nie zrobić sobie krzywdy.

Nmap to skaner portów oraz usług i z tego jest najbardziej znany, ale oprogramowanie to posiada także zestawy skryptów NSE, które pozwalają zrobić z nmapa prawdziwy kombajn. Nic nie stoi na przeszkodzie, aby we własnym skrypcie NSE wpisać na przykład rozpoczęcie skanowania WordPressa za pomocą oprogramowania wpscan. My pokażemy kilka agresywnych skanów, które pozwolą wykryć błędy serwerów, zapory sieciowe, subdomeny oraz wydobywanie metadanych ze zdjęć.

Należy pamiętać, że agresywne skanowanie za pomocą nmap może wyczerpać znacznie zasoby danego hosta, między innymi procesor i przepustowość. Agresywne skanowanie systemów za pomocą oprogramowania nmap może spowodować awarię systemu docelowego, jego uszkodzenie lub nieświadome wykonanie ataku Denial Of Service. A więc podczas używania tych skryptów należy zachować szczególną ostrożność.

Wykrywanie zapory aplikacji internetowej

Dzisiaj każda aplikacja internetowa stoi za swoistą zaporą na warstwie siódmej. Ta zapora nazywa się WAF-em ( Web Application Firewall ) i jej zadaniem jest wykrywanie oraz blokowanie złośliwego ruchu, zarówno z jak i do serwera, którego WAF chroni. Zapory tego typu najczęściej blokują większość ataków typu Cross-site Scripting, czy SQLInjection.

Jeśli dobrze ustawimy WAF, to może się zdarzyć, że wszystkie potencjalne podatności w zabezpieczeniach WWW zostaną wyeliminowane. Jeśli natomiast nie zabezpieczymy naszej strony dowolnym WAF-em, to taki wybór może być katastrofalny dla danej aplikacji internetowej. Mimo wszystko obecność WAF-a nie oznacza, że programiści mogą pozostawiać pewne wektory ataku otwarte. Jednocześnie zdolność wykrywania zapór sieciowych w aplikacjach internetowych jest kluczowa dla pentesterów.

Nmap posiada wspaniały skrypt, który został specjalnie zaprojektowany, aby pomóc nam dowiedzieć się o obecności zapory sieciowej. Ten skrypt nazywa się http-waf-detect. Ten skrypt pozwala sondować docelowy serwer sieciowy za pomocą kilku żądań. Jak to działa? Najpierw wysyłamy normalne żądanie sieciowe i zarejestruje odpowiedź serwera. Następnie skrypt wysyła złośliwe żądanie do serwera i porównuje odpowiedzi. Jednocześnie należy pamiętać, że ta metoda nie jest doskonała. Aby ją wywołać, wykonujemy następujące polecenie:

nmap -p80,443 --script http-waf-detect --script-args="http-waf-detect.aggro,http-waf-detect.detectBodyChanges" jakiś-server.com

W przypadku tego skryptu zastosowaliśmy dwa argumenty. Argument http-waf-detect.aggro instruuje nmapa, żeby wypróbował wszystkie możliwe wektory ataku, aby dokładniej rozpoznać zaporę. Argument waf-detect.detectBodyChanges szuka zmian w treści odpowiedzi żądań http i zwiększa prawdopodobieństwo wykrycia zapory.

Więcej na temat tego skryptu dowiesz się stąd: https://nmap.org/nsedoc/scripts/http-waf-detect.html. Natomiast w jaki sposób łączyć różne skrypty NSE dowiesz się z naszego szkolenia oraz naszych zamkniętych grup.

Wykrywanie typów zapór WAF

Po jakimś czasie spędzonym w dziedzinie testów penetracyjnych, dowiemy się jak działają wybrane systemy WAF, poznamy ich wstępnie definiowane metody ograniczania i wykrywania. Dowiemy się także, które żądania przechodzą przez wybrane zapory. Identyfikacja typu zapory może pomóc pentesterowi pozostać niewykrytym lub wykorzystać ograniczenia WAF przeciwko danym aplikacjom.

Nmap posiada wspaniały skrypt http-waf-fingerprint, który pozwala nam wykrywać typ zapory oraz poznać jej nazwę oraz dokładną wersję. W najprostszej postaci nie potrzeba żadnych argumentów, aby odpalić ten skrypt:

nmap -p80,443 --script http-waf-fingerprint przykladowa-strona.pl

Oczywiście możemy poprawić trochę ten skrypt, aby lepiej skanował wybrane zapory sieciowe. Oczywiście wydłuży to czas skanowania oraz zwiększy ilość generowanego ruchu internetowego, więc ta metoda nie jest zalecana w przypadku chęci pozostania w ukryciu. Aby trochę poprawić działanie skryptu, wykonujemy go z następującym argumentem:

nmap -p80,443 --script http-waf-fingerprint --script-args http-waf-fingerprint.intensive=1 przykladowa-strona.pl

Więcej na temat tego skryptu dowiesz się stąd: https://nmap.org/nsedoc/scripts/http-waf-fingerprint.html. Natomiast w jaki sposób łączyć różne skrypty NSE dowiesz się z naszego szkolenia oraz naszych zamkniętych grup.

Znajdowanie błędów http

Zalanie aplikacji internetowej lub serwera błędami http może doprowadzić do ataku typu Denial of Service lub podwyższyć koszty używania danego rozwiązania w chmurze. Dodatkowo odpowiedzi 5xx pozwolą nam odkryć zainstalowane oprogramowanie i szereg podatności, w tym SQL Injection, a odpowiedzi 403 pokażą nam, gdzie tak naprawdę musimy się dostać, aby przejąć kontrolę nad daną aplikacją. Ale zacznijmy od krótkiego wprowadzenia.

Na bardzo dużej ilości rozmów kwalifikacyjnych pojawia się pytanie o kody odpowiedzi serwerów internetowych. Są to kody, które są wysyłane do naszej przeglądarki, kiedy wysyłamy dane żądanie. Kody te umożliwiają serwerom sieciowym przekazywanie błędów administratorom serwerów, programistom internetowym i użytkownikom końcowym.

Kody odpowiedzi http są podzielone na różne kategorie. Pierwsza cyfra określa kategorię główną danej odpowiedzi, druga cyfra to podkategoria błędu, natomiast trzecia cyfra identyfikuje odpowiedź. Kody odpowiedzi są niezwykle przydatne dla pentesterów, ponieważ pomagają identyfikować uszkodzone i źle skonfigurowane elementy danego serwera lub aplikacji.

Zgodnie z Wikipedią, poniżej znajduje się lista pięciu kategorii kodów stanu HTTP. Zarówno penetesterzy, jak i programiści i testerzy aplikacji internetowych powinni zapoznać się ze wszystkimi kodami stanu i ich definicjami.

  • 1xx (Informacyjne): Otrzymano żądanie, kontynuuję proces
  • 2xx (udane): prośba została pomyślnie odebrana, zrozumiana i zaakceptowana
  • 3xx (Przekierowanie): Aby zakończyć żądanie, należy podjąć dalsze działania
  • 4xx (Błąd klienta): Żądanie zawiera złą składnię lub nie może zostać spełnione
  • 5xx (Błąd serwera): Serwer nie spełnił widocznie prawidłowego żądania

Nmap posiada skrypt o nazwie http-errors, który może zostać użyty do identyfikowania interesujących nas kodów odpowiedzi i określić te kody, które chcemy badać dalej. Skrypt może zostać użyty bez żadnych argumentów:

nmap -p80,443 --script http-errors przykladowa-strona.pl

Oczywiście możemy także używać tego skryptu z określonymi parametrami. Poniżej znajduje się przykład:

nmap -vv -p80,443 --script http-errors --script-args "httpspider.url=/docs/,httpspider.maxpagecount=3,httpspider.maxdepth=1" targetwebsite.com

Ten konkretny skrypt Nmapa wykorzystuje bibliotekę httpspider, więc możemy użyć argumentów, takich jak httpspider.url, httpspider.maxpagecount i httpspider.maxdepth, aby doprecyzować nasze skanowanie do określonych adresów URL i zdefiniować, ile stron ma zaindeksować Nmap przed zatrzymaniem.

Więcej na temat tego skryptu dowiesz się stąd: https://nmap.org/nsedoc/scripts/http-errors.html. Natomiast w jaki sposób łączyć różne skrypty NSE dowiesz się z naszego szkolenia oraz naszych zamkniętych grup.

Znajdowanie udostępnionych i nowych serwerów

Bardzo często do hostowania dodatkowych witryn internetowych używa się subdomen. Subdomeny są niezwykle przydatne dla pentesterów, ponieważ subdomena i domena główna mogą być hostowane na innych serwerach, aplikacje na nich napisane w różnych technologiach i może się okazać, że nie zapewniają odpowiedniego poziomu bezpieczeństwa.

Nmap posiada świetny skrypt o nazwie dns-brute, który służy do odnajdywania domen oraz odpowiadających im adresów IP. Skryptu można używać bez żadnych parametrów:

nmap -p80,443 --script dns-brute przykladowa-strona.pl

Oczywiście możemy także użyć tego polecenia z odpowiednimi argumentami:

nmap -p80,443 --script dns-brute --script-args dns-brute.threads=25,dns-brute.hostlist=/root/Desktop/custom-subdomain-wordlist.txt targetWebsite.com

Domyślnie dns-brute skanuje przy użyciu pięciu współbieżnych wątków. Możemy zwiększyć lub zmniejszyć tę wartość za pomocą dns-brute.threads. W zależności od typu serwera WWW, wiele wątków powoduje awarię serwera lub działa jako odmowa usługi, powodując spowolnienie lub brak odpowiedzi dla innych użytkowników. Dostosuj tę wartość ostrożnie.

Dns-brute podejmie próbę około 125 popularnych subdomen. Możemy użyć niestandardowych list poddomen z argumentem dns-brute.hostlist. Jak widać w powyższym wyniku, korzystając z obszernej listy słów, byliśmy w stanie wykryć więcej subdomen i adresów IP kontrolowanych przez tę witrynę.

Więcej na temat tego skryptu dowiesz się stąd: https://nmap.org/nsedoc/scripts/dns-brute.html. Natomiast w jaki sposób łączyć różne skrypty NSE dowiesz się z naszego szkolenia oraz naszych zamkniętych grup.

Nmap w służbie służb – czyli jak odnaleźć daną osobę

Posiadam klientów, którzy szukają materiału dowodowego lub którzy chcą podważyć materiał dowodowy. Posiadam także klientów, którzy ścigają niewypłacalnych dłużników. Aby się trochę dowiedzieć o czymś pobycie, wystarczy użyć informacji zawartych w EXIF. EXIF to informacje, które są przechowywane w różnych plikach, na przykład JPEG, PNG, PDF, DOCX i innych. Te osadzone dane mogą czasami ujawniać interesujące informacje, w tym znaczniki czasu, informacje o urządzeniu i współrzędne GPS. Większość stron internetowych nadal nie oczyszcza prawidłowo danych EXIF z obrazów, narażając siebie lub swoich użytkowników na ryzyko.

Jako testerom penetracjyjnym, wiedza, jakiego rodzaju urządzenia używa cel, pomoże nam określić, jakiego rodzaju ładunki mają zostać wygenerowane. Nieraz dane EXIF doprowadzały do ujęcia przestępców, którzy ukrywali się przed organami ścigania. Klasycznym przykładem danych EXIF używanych do złapania czarnego kapelusza jest aresztowanie Higinio Ochoa. Agenci FBI dokonali ekstrapolacji położenia geograficznego jego dziewczyny, korzystając z danych GPS znalezionych na zdjęciu przesłanym przez Higinio do Internetu.

Nmap posiada świetny skrypt o nazwie http-exif-spider, który może zostać użyty do wyodrębniania odpowiednich danych, zawartych w plikach stron internetowych. Może nie będzie on przydatny w kwestii Instagrama, Twittera, czy Facebooka, ale przydaje się do sprawdzania innych witryn, takich jak blogi osobiste, małe firmy, a nawet korporacje, które nie stosują silnych środków ostrożności ani nie monitorują treści, które udostępniają w sieci.

Skrypt można wykonać bez żadnych parametrów:

nmap -p80,443 --script http-exif-spider przykladowa-strona.pl

Podczas próby wydobycia danych EXIF z dużych zdjęć, Nmap może wyświetlić komunikat o błędzie z informacją, że „Bieżący rozmiar pamięci podręcznej http przekracza maksymalny rozmiar”. To Nmap informuje nas, że zdjęcie jest za duże i przekracza domyślną wartość maksymalnego rozmiaru pliku. Wtedy należy użyć http.max-cache-size i zwiększyć wartość zgodnie z potrzebami. Oto przykład takiego użycia:

nmap -p80,443 --script http-exif-spider --script-args="http.max-cache-size=99999999" przykladowa-strona.pl

Więcej na temat tego skryptu dowiesz się stąd: https://nmap.org/nsedoc/scripts/http-exif-spider.html. Natomiast w jaki sposób łączyć różne skrypty NSE dowiesz się znaszego szkolenia oraz naszych zamkniętych grup.

Podsumowanie – czemu warto stosować i pisać własne skrypty NSE oraz dlaczego warto kupić nasze szkolenie

Same skrypty nmap pozwalają zautomatyzować naszą pracę, zarówno wtedy, kiedy zajmujemy się BlueTeam oraz Redteam. Warto używać zarówno wbudowanych skryptów NSE jak i pisać własne, ponieważ stanowią one idealny dowód na przeprowadzenie danego testu penetracyjnego.

Oczywiście ten artykuł nie wyczerpuje tematyki nmapa oraz niestandardowych zastosowań tego narzędzia. Po więcej przykładów zapraszamy do naszego szkolenia – Hardcorowy Nmap. Pamiętajcie, że wykupując dostęp do szkolenia, dostajecie także dostęp do zamkniętych grup z przykładami.

Udostępnij

Porozmawiajmy o Twoich potrzebach

POROZMAWIAJMY O USŁUGACH, JAKICH POTRZEBUJESZ DLA SWOJEGO BIZNESU

Z chęcia pomożemy Ci wzrastać w wybranym przez Ciebie biznesie.