En snabb handledning i portscanning

author
8 minutes, 5 seconds Read

En snabb handledning i portscanning

Ett av mina mål med att utveckla Nmap är att hålla den vanligaste användningen enkel, samtidigt som jag behåller flexibiliteten för anpassade och avancerade sökningar. Detta uppnås med kommandoradsgränssnittet genom att erbjuda dussintals alternativ, men välja vettiga standardvärden när de inte är specificerade. En nybörjare kan börja med ett så enkelt kommando somnmap <target>.Samtidigt kan avancerade användare ibland specificera så många alternativ att deras terminalrad blir helt oöverskådlig.

En liknande balans måste uppnås med kommandoutgången. De viktigaste resultaten bör sticka ut även för den enstaka användaren som inte ens har läst manualsidan. Ändå bör utdata vara tillräckligt omfattande och exakt för att passa professionella penetrationstestare som kör Nmap mot tusentals maskiner dagligen. Användare som är smarta nog att läsa den här boken eller Nmap-källkoden får större kontroll över skannern och insikter om vad Nmaps utdata verkligen betyder.

Denna handledning demonstrerar några vanliga scenarier för portskanning med Nmap och förklarar utdata. Målet är inte att försöka vara heltäckande, utan bara att göra nya användare tillräckligt bekanta för att förstå resten av kapitlet.

Det enklaste Nmap-kommandot är bara nmap i sig självt. Detta skriver ut en fusklapp med vanliga Nmap-alternativ och syntax.Ett mer intressant kommando är nmap<target>, som gör följande:

  1. Konverterar <target> från ett värdnamn till en IPv4-adress med hjälp av DNS. Om en IP-adress anges i stället för ett värdnamn hoppas denna sökning över.

  2. Söker värddatorn, som standard med ett ICMP echo request-paket och ett TCP ACK-paket till port 80, för att avgöra om den är igång och fungerar. Om så inte är fallet rapporterar Nmap detta och avslutar. Jag kunde ha angett -Pn för att hoppa över detta test. Se kapitel 3, Host Discovery (”Ping Scanning”).

  3. Konverterar målets IP-adress tillbaka till namnet med hjälp av en reverse-DNS-förfrågan. På grund av hur DNS fungerar kanske det omvända namnet inte är detsamma som det <target> som anges på kommandoraden. Denna förfrågan kan hoppas över med alternativet -n för att förbättra hastighet och smygande.

  4. Startartar en TCP-portskanning av de mest populära 1 000 portarna som anges i nmap-services. Vanligtvis används en SYN stealth scan, men connect scan ersätts istället för icke-root Unix-användare som saknar de privilegier som krävs för att skicka råa paket.

  5. Printar resultaten till standardutmatningen i normalt människoläsbart format och avslutar. Andra utdataformat och platser (filer) kan anges, vilket beskrivs i kapitel 13, Nmap Output Formats. Exempel 4.2 visar resultaten när scanme.nmap.org används som <target>.

Exempel 4.2. Enkel sökning: 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

Den första utdataraden iExempel 4.2 ger helt enkelt URL:en för nedladdning av Nmap. Tidpunkten då Nmap startade och versionsnumret anges normalt också, men dessa togs i allmänhet bort i den här boken för konsekvensens skull och för att undvika radförvrängning.

Nästa rad anger målets IP-adress (IPv4 i det här fallet) och det omvända DNS-namnet (även känt som PTR-posten) om det är tillgängligt. Nmap lovar att visa de ”intressanta portarna”, men alla portar som skannas tas med. De portar som anses vara mest intressanta eftersom de är öppna eller i ett sällan sett tillstånd för det aktuella värdföretaget anges individuellt. När många portar är i ett enda icke öppet tillstånd betraktas de som ett standardtillstånd och sammanställs på en enda rad för att undvika att resultaten späds ut med tusentals ointressanta poster. I det här fallet noterar Nmap att 994 portar är filtrerade.

Tabellen över intressanta portar kommer härnäst och ger resultaten från keyscan. Kolumnerna varierar beroende på vilka alternativ som används, men i det här fallet anges portnummer och protokoll, tillstånd och tjänsteprotokoll för varje port. Tjänsten här är bara en gissning som gjorts genom att söka upp porten i nmap-services. Tjänsten skulle anges som unknown om någon av portarna inte hade något namn registrerat i den filen. Tre av dessa portar är öppna och tre är stängda.

Finally, Nmap reports some basic timing statistics before it exits.These statistics are the number of targets specified, the number of thoseethat the ping scan found to be up, and the total time taken.

While this simple command is often all that is needed, advancedusers often go much more. I exempel 4.3 ändras sökningen med fyra alternativ. -p0- ber Nmap att skanna alla möjligaTCP-portar, -v ber Nmap att vara utförlig om det,-A aktiverar aggressiva tester som fjärrstyrd OS-detektering, tjänste- och versionsdetektering och Nmap Scripting Engine (NSE). Slutligen aktiverar -T4 en mer aggressiv timingpolicy för att påskynda sökningen.

Exempel 4.3. Mer komplicerat: 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 gav verkligen den begärda ordrikedomen i exempel 4.3! Lyckligtvis är den extra utmatningen lätt att förstå. De första 13 nya raderna är körtidsinformation som låter användaren veta vad som händer när hon stirrar förväntansfullt på terminalen och hoppas på goda nyheter. Vad som är goda nyheter beror på om hon är en systemadministratör som måste åtgärda problem, en pen-tester som behöver några problem att rapportera om, eller en black-hat cracker som försöker utnyttja dem. Ett dussintal liknande rader har tagits bort för att göra det kortfattat. Raderna om ”upptäckt öppen port” ger en ”när det händer” anmälan om öppna portar så att hon kan börja slå på dem innan genomsökningen ens är klar. Linjen ”scan timing” ger en uppskattning av hur lång tid det tar att slutföra scanningen, så att hon vet om hon ska fortsätta stirra på skärmen eller äta lunch. Eftersom nätverksförhållandena (latenstid, överbelastning, bandbredd osv.) och reglerna för paketfiltrering varierar så mycket kan det ta 30 sekunder att slutföra samma skanning mot en värd och 45 minuter mot en annan. Om du vill ha den aktuella tidsuppskattningen under skanningen trycker du bara påenter.

Porttabellen visar inga nya portar. Alla extra portar som skannats är i filtrerat tillstånd, vilket ökar antalet filtrerade portar från 994till 65 530. Även om det inte finns några nya portar med detaljerade uppgifter har posterna ändrats. En ny kolumn VERSION ger information om programnamn och version för den lyssnande tjänsten. Detta kommer från tjänstedetektering, en av de funktioner som aktiveras med alternativet -A.En annan funktion för tjänstedetektering är att alla tjänsteprotokoll i kolumnen SERVICE faktiskt har verifierats. I den tidigare genomsökningen baserades de på den relativt svaga heuristiken med en nmap-services portnummeruppslagning.Den tabelluppslagningen råkade vara korrekt den här gången, men det kommer den inte alltid att vara.

En annan funktion som läggs till av -A är NmapScripting Engine, som diskuteras ingående i kapitel 9, Nmap Scripting Engine. Det enda skriptet som visas här är HTMLtitle. Det finns dussintals andra skript, men inget av dem har gett användbar utdata för den här maskinen. Tracerouteresultaten lades också till av -A. Det här alternativet är effektivare och kraftfullare än de flesta traceroute-programmen, eftersom sökningar utförs parallellt och Nmap använder sökningsresultaten för att bestämma en gynnsam probetyp (TCP-paket till port 80 i det här fallet).

De flesta av de återstående nya raderna kommer från OS-detektering (också aktiverad av -A), som diskuteras ingående i kapitel 8, Remote OS Detection (Fjärrstyrd OS-detektering). Den sista raden visar att all denna extra information kom till ett pris – genomsökningen tog nästan 100 gånger längre tid änExempel 4.2, ”Enkel genomsökning: nmap scanme.nmap.org” att slutföra (477 sekunder jämfört med 5).

Similar Posts

Lämna ett svar

Din e-postadress kommer inte publiceras.