Een snelle handleiding voor het scannen van poorten

author
7 minutes, 24 seconds Read

Een snelle handleiding voor het scannen van poorten

Een van mijn doelen bij het ontwikkelen van Nmap is om het meest gebruikelijke gebruik eenvoudig te houden, terwijl de flexibiliteit voor aangepaste en geavanceerde scans behouden blijft. Dit wordt bereikt met de opdrachtregelinterface door tientallen opties aan te bieden, maar verstandige standaardwaarden te kiezen als ze niet worden opgegeven. Een beginner kan beginnen met een commando zo eenvoudig alsnmap <target>.Ondertussen specificeren gevorderde gebruikers soms zo veel opties dat hun terminalregel ronddraait.

Een soortgelijke balans moet worden gevonden met de uitvoer van commando’s. De belangrijkste resultaten moeten opvallen, zelfs voor de occasionele gebruiker die niet eens de man page heeft gelezen. Toch moet de uitvoer uitgebreid en beknopt genoeg zijn voor professionele penetratietesters die Nmap dagelijks op duizenden machines uitvoeren. Gebruikers die slim genoeg zijn om dit boek of de Nmap broncode te lezen, profiteren van een grotere controle over de scanner en krijgen inzicht in wat de uitvoer van Nmap werkelijk betekent.

Deze handleiding demonstreert enkele veelvoorkomende scanscenario’s voor Nmap poorten en legt de uitvoer uit. Het doel is niet om uitgebreid te worden, maar om nieuwe gebruikers goed genoeg te laten kennismaken om de rest van dit hoofdstuk te begrijpen.

Het eenvoudigste Nmap-commando is gewoon nmap zelf. Dit is een spiekbriefje met veelgebruikte Nmap opties en syntax. Een interessanter commando is nmap<target>, dat het volgende doet:

  1. Converteert <target> van een hostnaam naar een IPv4-adres met behulp van DNS. Als een IP-adres is opgegeven in plaats van een hostnaam, wordt deze zoekactie overgeslagen.

  2. Pings de host, standaard met een ICMP-echo request-pakket en een TCP ACK-pakket naar poort 80, om te bepalen of deze actief en actief is. Zo niet, dan rapporteert Nmap dat feit en sluit af. Ik had -Pn kunnen specificeren om deze test over te slaan. Zie hoofdstuk 3, Host Discovery (“Ping Scanning”).

  3. Zet het IP-adres van het doel om in de naam met behulp van een reverse-DNS-query. Door de manier waarop DNS werkt, is de omgekeerde naam mogelijk niet dezelfde als de <target> die op de opdrachtregel is opgegeven. Deze query kan worden overgeslagen met de optie -n om de snelheid en stealthiness te verbeteren.

  4. Lanceert een TCP-poortscan van de populairste 1000 poorten die zijn opgenomen in nmap-services. Meestal wordt een SYN stealth scan gebruikt, maar in plaats daarvan wordt een connect scan gebruikt voor niet-root Unix-gebruikers die niet over de vereiste rechten beschikken om ruwe pakketten te verzenden.

  5. Print de resultaten naar de standaarduitvoer in een normaal, door mensen leesbaar formaat, en sluit af. Andere uitvoerformaten en -locaties (bestanden) kunnen worden opgegeven, zoals beschreven in Hoofdstuk 13, Nmap Uitvoerformaten. Voorbeeld 4.2 toont de resultaten wanneer scanme.nmap.org wordt gebruikt als <target>.

Voorbeeld 4.2. Eenvoudige scan: nmap scanme.nmap.org

# Starting Nmap ( http://nmap.org )Nmap scan report for scanme.nmap.org (64.13.134.52)Not shown: 994 filtered portsPORT STATE SERVICE22/tcp open ssh25/tcp closed smtp53/tcp open domain70/tcp closed gopher80/tcp open http113/tcp closed authNmap done: 1 IP address (1 host up) scanned in 4.99 seconds

De eerste uitvoerregel in Voorbeeld 4.2 geeft eenvoudigweg de URL voor het downloaden van Nmap. Het tijdstip waarop Nmap is gestart en het versienummer worden normaal gesproken ook gegeven, hoewel deze in dit boek meestal zijn verwijderd omwille van de consistentie en om linewrapping te voorkomen.

De volgende regel geeft het IP-adres van het doel (IPv4 in dit geval), en de omgekeerde DNS-naam (ook bekend als het PTR-record) als deze beschikbaar is. Nmap belooft de “interessante poorten” te tonen, hoewel alle gescande poorten worden meegenomen. De poorten die het meest interessant worden geacht omdat ze open zijn of in een zelden geziene toestand voor die host, worden afzonderlijk vermeld. Wanneer vele poorten in een enkele niet-geopende toestand zijn, worden ze beschouwd als een standaard toestand, en samengevoegd op een enkele lijn om te vermijden dat de resultaten verwateren met duizenden oninteressante entries. In dit geval merkt Nmap op dat 994 poorten gefilterd zijn.

De interessante poorten tabel komt daarna, en geeft de keyscan resultaten. De kolommen variëren afhankelijk van de gebruikte opties, maar geven in dit geval het poortnummer en protocol, status, en serviceprotocol voor elke poort. De service hier is slechts een gok door de poort op te zoeken in nmap-services. De service zou worden vermeld als unknown als een van de poorten geen naam had die in dat bestand is geregistreerd. Drie van deze poorten zijn open en drie zijn gesloten.

Ten slotte rapporteert Nmap enkele basis timing-statistieken voordat het afsluit. Deze statistieken zijn het aantal gespecificeerde doelen, het aantal dat de ping-scan omhoog vond, en de totale tijd die nodig was.

Hoewel dit eenvoudige commando vaak alles is wat nodig is, gaan gevorderde gebruikers vaak veel verder. In Voorbeeld 4.3, wordt de scan aangepast met vier opties. -p0- vraagt Nmap om elke mogelijkeTCP-poort te scannen, -v vraagt Nmap om hier verbose over te zijn, -A schakelt agressieve tests in zoals remote OSdetectie, service/versie detectie, en de Nmap Scripting Engine (NSE). Tenslotte, -T4 maakt een meer agressieve timingpolicy mogelijk om de scan te versnellen.

Example 4.3. Complexer: nmap -p0- -v -A -T4 scanme.nmap.org

# Starting Nmap ( http://nmap.org )Completed Ping Scan at 00:03, 0.01s elapsed (1 total hosts)Scanning scanme.nmap.org (64.13.134.52) Discovered open port 22/tcp on 64.13.134.52Discovered open port 53/tcp on 64.13.134.52Discovered open port 80/tcp on 64.13.134.52SYN Stealth Scan Timing: About 6.20% done; ETC: 00:11 (0:07:33 remaining)Completed SYN Stealth Scan at 00:10, 463.55s elapsed (65536 total ports)Completed Service scan at 00:10, 6.03s elapsed (3 services on 1 host)Initiating OS detection (try #1) against scanme.nmap.org (64.13.134.52)Initiating Traceroute at 00:1064.13.134.52: guessing hop distance at 9Completed SCRIPT ENGINE at 00:10, 4.04s elapsedHost scanme.nmap.org (64.13.134.52) appears to be up ... good.Nmap scan report for scanme.nmap.org (64.13.134.52)Not shown: 65530 filtered portsPORT STATE SERVICE VERSION22/tcp open ssh OpenSSH 4.3 (protocol 2.0)25/tcp closed smtp53/tcp open domain ISC BIND 9.3.470/tcp closed gopher80/tcp open http Apache httpd 2.2.2 ((Fedora))|_HTML title: Go ahead and ScanMe!113/tcp closed authDevice type: general purposeRunning: Linux 2.6.XOS details: Linux 2.6.20-1 (Fedora Core 5)Uptime guess: 2.457 days (since Thu Sep 18 13:13:24 2008)TCP Sequence Prediction: Difficulty=204 (Good luck!)IP ID Sequence Generation: All zerosTRACEROUTE (using port 80/tcp)HOP RTT ADDRESS9 10.36 metro0.sv.svcolo.com (208.185.168.173)10 10.29 scanme.nmap.org (64.13.134.52)Nmap done: 1 IP address (1 host up) scanned in 477.23 seconds Raw packets sent: 131432 (5.783MB) | Rcvd: 359 (14.964KB)

Nmap heeft in Voorbeeld 4.3 zeker de gevraagde verbositeit geleverd! Gelukkig is de extraoutput gemakkelijk te begrijpen. De eerste 13 nieuwe regels zijn runtime-informatie die de gebruiker laat weten wat er gebeurt terwijl ze verwachtingsvol naar de terminal staart, hopend op goed nieuws. Wat goed nieuws is hangt af van het feit of ze een systeembeheerder is die problemen moet oplossen, een pentester die problemen moet rapporteren, of een black-hat cracker die ze probeert uit te buiten. Ongeveer een dozijn soortgelijke regels zijn verwijderd om het kort te houden. De “ontdekte open poorten” regels geven direct melding van open poorten, zodat ze er al op kan gaan slaan voordat de scan klaar is. De “scan timing” regel geeft een schatting van de voltooiingstijd, zodat ze weet of ze naar het scherm moet blijven staren of moet gaan lunchen. Omdat netwerk condities (latency, congestie, bandbreedte, etc.) en pakket filter regels zo veel verschillen, kan het 30 seconden duren om dezelfde scan opties te voltooien tegen de ene host en 45 minuten tegen een andere. Als u tijdens het scannen een schatting van de huidige tijd wilt, drukt u gewoon op Enter.

De poortentabel toont geen nieuwe poorten. Alle extra gescande poorten zijn gefilterd, waardoor het totaal aantal gefilterde poorten stijgt van 994 naar 65.530. Hoewel er geen nieuwe gespecificeerde poorten zijn, zijn de ingangen wel veranderd. Een nieuwe VERSION kolom geeft de applicatienaam en versie details voor de luisterende service. Dit komt van service detectie, een van de mogelijkheden die de -A optie biedt. Een ander kenmerk van service detectie is dat alle service protocollen in de SERVICE kolom nu daadwerkelijk zijn geverifieerd. In de vorige scan waren ze gebaseerd op de relatief zwakke heuristiek van een nmap-services poortnummer lookup. Die tabel lookup was deze keer toevallig correct, maar dat zal niet altijd zo zijn.

Een andere functie toegevoegd door -A is de NmapScripting Engine, die diepgaand wordt besproken in Hoofdstuk 9, Nmap Scripting Engine. Het enige script dat hier wordt getoond is HTMLtitle. Er bestaan nog tientallen andere scripts, maar geen enkele vond bruikbare output voor deze machine. De tracerouteresultaten zijn ook toegevoegd door -A. Deze optie is efficiënter en krachtiger dan de meeste traceroute programma’s, omdat de probes parallel worden uitgevoerd en Nmap de scan resultaten gebruikt om een gunstig probetype te bepalen (TCP pakketten naar poort 80 in dit geval).

De meeste van de overgebleven nieuwe regels komen van OS detectie (ook ingeschakeld door -A), wat diepgaand besproken wordt in Hoofdstuk 8, Remote OS Detectie. De laatste regel laat zien dat al deze extra informatie een prijs had: de scan duurde bijna 100 keer langer dan Voorbeeld 4.2, “Eenvoudige scan: nmap scanme.nmap.org” om te voltooien (477 seconden vergeleken met 5).

Similar Posts

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.