Nse-skript. Nmap Reference Manual (Man Page). Hitta aktiva datorer i nätverket

Nmap är en kultskanner som nästan ingen hackare klarar sig utan, så frågan om att utöka dess möjligheter tror jag är av intresse för många. Att använda andra verktyg i samband med Nmap är en vanlig praxis. Den här artikeln kommer att prata om hur du enkelt automatiserar Nmap med dina favoritverktyg. Det är bekvämare att "trycka på en knapp" och få resultatet än att hela tiden göra samma sekvens av åtgärder. Att använda skript i Nmap kan hjälpa hackare att hacka system mer automatiskt, och systemadministratörer kan kontrollera system för standardhål och fixa dem i tid.

Några ord om Nmap

Jag är säker på att de flesta läsare av tidningen Hacker vet vad Nmap är och förmodligen har använt det mer än en gång för att utforska nätverket och samla in information. För de som har glömt eller inte vet, för säkerhets skull, låt mig påminna er:

  • Nmap är ett plattformsoberoende verktyg för att skanna nätverket, kontrollera dess säkerhet, bestämma OS-versioner och olika tjänster och mycket mer. Detta är ett mycket flexibelt och lätt utbyggbart verktyg, och NSE-skriptmotorn gör det så;
  • NSE (Nmap Scripting Engine) är en kraftfull Nmap-komponent som låter användare skriva skript för att automatisera ett brett utbud av nätverksuppgifter: mer flexibel interaktion med befintliga Nmap-funktioner, upptäckt och exploatering av sårbarheter med mera. NSE är baserad på Lua-språktolken;
  • Lua är ett skriptspråk som liknar JavaScript.

Formulering av problemet

Som redan nämnts kommer vi idag att utöka funktionaliteten hos Nmap genom att skriva våra egna skript. Varje hack/pentest börjar vanligtvis med spaning och datainsamling. En av de första kontrollerna är närvaron av öppna portar på värden som studeras och identifieringen av körande tjänster. Det bästa verktyget att samla in sådan information än Nmap, kanske inte. Nästa steg efter skanning är vanligtvis att antingen söka efter en sploit för den hittade sårbara tjänsten, eller välja ett login:lösenord-par med brute force-metoden.

Låt oss säga att du aktivt använder THC-Hydra brute-forcer för att gissa lösenorden för flera tjänster (till exempel HTTP-Basic, SSH, MySQL). I det här fallet måste du ställa in hydran på varje tjänst separat, du måste komma ihåg funktionerna i tjänsterna och de flaggor som krävs för att starta hydran. Och om det blir nödvändigt att brute mycket mer än fem tjänster? .. Varför inte automatisera det?

Låt oss därför skriva ett enkelt skript som kommer att automatisera processen att starta Hydra för att välja inloggningar/lösenord för en tjänst (till exempel PostgreSQL). För detta behöver vi följande verktyg:

Om du inte redan har Nmap och/eller Hydra installerat, fixa det omedelbart:

$ sudo apt-get installera nmap hydra

Okej, låt oss börja. Skripten för Nmap är de vanliga textfiler med *.nse förlängning. Så öppna din favorittextredigerare och skapa ny fil. Jag kommer att använda Vim:

$ vim hydra.nse

NSE-skriptstruktur

Innan man går vidare till skrivandet måste man säga att alla manus har en viss struktur. Förutom själva koden, som automatiserar vissa åtgärder, innehåller den en beskrivning av skriptet (vad det är avsett för och hur man använder det), information om författaren, licenser, beroende av andra skript, kategorier som skriptet tillhör. , och så vidare. Låt oss ta en närmare titt på var och en av dessa delar.

Beskrivning av manuset (beskrivning)

Det här avsnittet innehåller en beskrivning av skriptet, kommentarer från författaren, ett exempel på att visa resultatet av skriptkörningen på skärmen och ytterligare funktioner.

För vårt skript som väljer inloggningar/lösenord för PostgeSQL kommer beskrivningen att se ut så här:

Beskrivning = [[ Brute force alla tjänster som körs på en målvärd. Resultaten returneras i en tabell med varje sökväg, upptäckt metod, inloggning och/eller lösenord. ]] --- -- @användning -- nmap --script hydra [--script-args "lpath= , ppath= "] -- -- @output -- PORT STATE SERVICE -- 80/tcp öppen http -- | hydra: -- | sökväg metod inloggningslösenord -- | 127.0.0.1/private/index.html Sammandrag loggpass -- |_ 127.0.0.1/simple/index.txt Grundläggande användare qwerty -- -- @args hydra.lpath: sökvägen till filen med inloggningar. Till exempel, -- nmap --script hydra --script-args="lpath=/home/my_logins.txt" -- @args hydra.ppath: sökvägen till filen med lösenord. Till exempel, -- nmap --script hydra --script-args="ppath=/home/my_pass.txt"

Kommentar; -- - kommentar med flera rader; @användning, @output, @args - ett exempel på anrop av ett skript, visning av resultatet på skärmen, nödvändiga argument vid anrop.

Ovan i @användning ser vi skriptstartsformatet. I det här fallet anges endast namnet på skriptet (hydra). Detta blir möjligt om skriptet placeras i katalogen / /nmap/scripts/ , annars måste du ange en absolut eller relativ sökväg till den. I framtiden kommer vi att göra det möjligt att ställa in argument när man startar skriptet. Argument sätts med flaggan --script-args " " . I vårt fall kommer vi att ställa in sökvägen till inloggningsfilen (lpath) och till lösenordsfilen (ppath). Argumenten är valfria: som standard kommer vi att leta efter filer med namnet login.txt och password.txt i aktuell katalog.

Kategorier där skriptet finns (kategorier)

När du skriver ett NSE-skript kan du ange dess kategori (eller flera kategorier). Detta är användbart när Nmap-användaren inte vill använda ett specifikt skript, utan en uppsättning skript som är i samma kategori. Exempel på några kategorier:

  • auth - en kategori där skript definierar autentiseringsdata för målvärden;
  • brute - en kategori vars skript hjälper till att bestämma inloggningar och lösenord för olika tjänster;
  • default - en kategori som innehåller huvudskripten. Det finns några kriterier som avgör om ett skript tillhör denna kategori: skanningshastighet, användbarhet, tillförlitlighet, konfidentialitet, visuell utdata;
  • skadlig programvara – en kategori som hjälper till att identifiera skadlig programvara.

Till exempel, om du behöver köra alla skript från auth-kategorin, kommer kommandot att se ut så här:

$ nmap --script=auth exempel.com

I det här fallet kommer skripten i denna kategori att köras i tur och ordning för den angivna värden. Vårt manus tillhör kategorin brute. Låt oss lägga till följande rad i filen:

Kategorier = ("brute")

Information om författaren (författaren)

Varje manus innehåller information om dess författare. I mitt fall:

Författare = "Olga Barinova"

Information om licensen som används (licens)

Nmap välkomnar all användarutveckling och uppmuntrar delning, inklusive NSE-skript. När du anger en licens bekräftar du rätten att dela skriptet med communityn. Standardlicensen för Nmap ser ut så här:

Licens = "Samma som Nmap--Se http://nmap.org/book/man-legal.html"

Låt oss lägga till den här raden i vårt manus också.

Beroenden av andra skript (beroenden)

Det här området innehåller namnen på NSE-skript som måste köras innan detta skript kan köras för att erhålla nödvändig information. Till exempel,

Beroenden = ("smb-brute").

I vårt fall kommer den här funktionen inte att behövas, så vi kommer inte att lägga till beroenden.

Värd och port (värd och port)

Nmap behöver veta för vilka tjänster och på vilka portar skriptet ska köras. Det finns särskilda regler för detta:

  • prerule() - skriptet körs en gång innan någon värd skannas, som används för vissa nätverksoperationer;
  • hostrule(host) - skriptet exekveras för varje värd från tabellen, vilket det tar som ett argument;
  • portrule(värd, port) - skriptet körs för varje värd och för varje port från tabellerna som det tar som argument;
  • postrule() - skriptet körs en gång efter att ha skannat en värd. Den används främst för att bearbeta resultaten, sammanfatta statistik och liknande.

Det finns bibliotek för bildandet av sådana regler. Vårt skript behöver bara ange portnumret (5432) och tjänstens namn (postgresql), och då fungerar det bara för denna hamn och service. Det finns ett ganska populärt shortport-bibliotek inbyggt i NSE som inkluderar olika metoder. Vi kommer att använda metoden

Port_or_service (portar, tjänster, protos, stater)

där portar är portnummer, tjänster är tjänstenamn, protos är protokollnamn (till exempel udp), tillstånd är tillstånd.

Denna metod returnerar true om tjänsten som för närvarande analyseras finns på en av portarna i portlistan eller matchar någon tjänst i tjänstelistan, och protokollet och statusen kontrolleras för en matchning, annars returneras false.
För att få vårt skript att fungera med PostgreSQL måste vi lägga till portnumret och tjänstens namn:

Portrule = shortport.port_or_service((5432), ("postgresql"))

Ansluta bibliotek

Låt oss för en sekund avvika från skriptets struktur och överväga hur externa bibliotek är anslutna, vars funktionalitet vi behöver komma åt.

Fortsatt tillgänglig endast för medlemmar

Alternativ 1. Gå med i "site"-gemenskapen för att läsa allt material på sajten

Medlemskap i communityn under den angivna perioden ger dig tillgång till ALLT hackermaterial, ökar din personliga kumulativa rabatt och låter dig samla ett professionellt Xakep-poängbetyg!

Nmap är en mycket populär nätverksskanner med öppen källkod som kan användas på både Windows och Linux. Nmap eller Network Mapper har utvecklats av Gordon Luon och används för närvarande av säkerhetspersonal och systemadministratörer runt om i världen.

Det här programmet hjälper systemadministratörer att mycket snabbt förstå vilka datorer som är anslutna till nätverket, ta reda på deras namn och även se vilken programvara som är installerad på dem, vilket operativsystem och vilka typer av filter som används. Funktionaliteten i programmet kan utökas med ett eget skriptspråk, vilket gör att administratörer kan automatisera många åtgärder.

Till exempel kan skript automatiskt upptäcka nya säkerhetsbrister i ditt nätverk. Namp kan användas med goda eller dåliga avsikter, var försiktig så att du inte använder nmap mot lagen. I den här handledningen kommer vi att titta på hur man använder namp för att skanna portar i operativ system linux. Men först måste du försöka förstå hur det här verktyget fungerar.

dator nätverk Alla anslutna enheter har sin egen IP-adress. Varje dator stöder ping-protokollet, som kan användas för att avgöra om den är ansluten till nätverket. Vi skickar helt enkelt en ping-förfrågan till datorn, och om den svarar antar vi att den är ansluten. Nmap tar ett lite annorlunda tillvägagångssätt. Datorer reagerar också på ett visst sätt på vissa nätverkspaket, verktyget skickar helt enkelt de nödvändiga paketen och tittar på vilka värdar som skickat svaret.

Men du vet förmodligen redan om detta. Mer intressant är hur Nmap vet vilka tjänster som körs på maskinen. Kärnan i arbetet med alla nätverksprogram är baserat på portar. För att ta emot ett meddelande från nätverket måste programmet öppna en port på din dator och vänta på inkommande anslutningar. Och för att skicka ett meddelande över nätverket måste du ansluta till en annan programport (destination). Programmet kommer då att behöva öppna en port där det väntar på svar.

Verktyget nmap itererar genom det tillgängliga utbudet av portar under en nätverksskanning och försöker ansluta till var och en av dem. Om anslutningen lyckas, i de flesta fall, genom att överföra flera paket, kan programmet till och med ta reda på versionen programvara, som väntar på anslutningar på den här porten. Nu när vi har täckt grunderna, låt oss titta på hur man använder nmap för port- och nätverksskanning.

Nmap-syntax

Nmap-startkommandot är väldigt enkelt, skicka bara in mål-IP-adressen eller nätverket i parametrarna och ange alternativen om det behövs:

$ nmap adressalternativ

Låt oss nu titta på de viktigaste alternativen som vi behöver i den här artikeln.

  • -sl- skapa bara en lista över körande värdar, men skanna inte nmap-portar;
  • -sP- kontrollera bara om värden är nåbar med ping;
  • -PN- överväg alla värdar som är tillgängliga, även om de inte svarar på ping;
  • -sS/sT/sA/sW/sM- TCP-skanning;
  • -sU- UDP-skanning nmap;
  • -sN/sF/sX- TCP NULL och FIN skanning;
  • -sC- kör standardskriptet;
  • -si- lat indle scanning;
  • -s- specificera utbudet av portar som ska kontrolleras;
  • -sV- En detaljerad studie av hamnar för att fastställa versionerna av tjänsterna.
  • -O- bestämma operativsystemet;
  • -T- skanningshastighet, ju mer, desto snabbare;
  • -D- maskskanning med fiktiva IP-adresser;
  • -S- ändra din IP-adress till den angivna;
  • -e- använda ett specifikt gränssnitt;
  • --spoof-mac- ställ in din MAC-adress;
  • -A- detektering av operativsystemet med hjälp av skript.

Nu när vi har täckt alla grundläggande alternativ, låt oss prata om hur nmap-portskanningar fungerar.

Hur man använder Nmap för att skanna portar i Linux

Låt oss titta på nmap-exempel härnäst. Låt oss först titta på hur man hittar alla enheter som är anslutna till nätverket, för detta räcker det med att använda alternativet -sL och ange vår nätverksmask. i mitt fall är det 192.168.1.1/24. din mask lokalt nätverk du kan hitta genom att köra kommandot:

Från utgången för det använda gränssnittet, ta numret efter snedstrecket, och före snedstrecket, ange IP-adressen för din router. Kommandot nmap nätverksskanning kommer att se ut så här:

nmap -sL 192.168.1.1/24

Ibland kanske den här skanningen inte ger några resultat eftersom vissa operativsystem har portskanningsskydd. Men detta kan kringgås genom att helt enkelt använda ping för att skanna alla ip-adresser på nätverket, för detta finns alternativet -sn:

nmap -sn 192.168.1.1/24

Som du kan se har programmet nu upptäckt aktiva enheter på nätverket. Därefter kan vi skanna nmap-portar för önskad värd genom att köra verktyget utan alternativ:

sudo nmap 192.168.1.1

Nu kan vi se att vi har flera portar öppna, alla används av någon tjänst på målmaskinen. Var och en av dem kan vara potentiellt sårbara, så det är inte säkert att ha många öppna portar på en maskin. Men detta är inte allt du kan göra, vidare kommer du att lära dig hur du använder nmap.

Att veta mer detaljerad information om maskinen och tjänsterna som körs på den kan du använda alternativet -sV. Verktyget kommer att ansluta till varje port och fastställa all tillgänglig information:

sudo nmap -sV 192.168.1.1

Vi har ftp igång på vår maskin, så vi kan försöka utforska den här tjänsten mer i detalj med hjälp av standard nmap-skript. Skript låter dig kontrollera porten mer detaljerat, hitta möjliga sårbarheter. För att göra detta, använd alternativet -sC och -p för att ställa in porten:

sudo nmap -sC 192.168.56.102 -p 21

Vi körde standardskriptet, men det finns andra skript, till exempel kan du hitta alla skript för ftp med kommandot:

sudo hitta /usr/share/nmap/scripts/ -namn "*.nse" | grep ftp

Sedan kommer vi att försöka använda en av dem, för detta räcker det att specificera det med alternativet --script. Men först kan du titta på informationen om skriptet:

sudo nmap --script-help ftp-brute.nse

Det här skriptet kommer att försöka fastställa FTP-inloggningen och lösenordet på fjärrvärden. Kör sedan skriptet:

sudo nmap --script ftp-brute.nse 192.168.1.1 -p 21

Som ett resultat hämtade skriptet inloggningen och lösenordet, admin/admin. Det är därför du inte behöver använda standardinloggningsalternativen.

Du kan också köra verktyget med alternativet -A, som aktiverar ett mer aggressivt läge för verktyget, med vilket du får det mesta av informationen med ett kommando:

sudo nmap -A 192.168.1.1

Observera att nästan all information vi har sett tidigare finns med här. Den kan användas för att öka försvaret av denna maskin.

Slutsatser

I den här artikeln tittade vi på hur nmap-portskanning utförs, samt några enkla exempel på hur du använder det här verktyget. Dessa nmap-kommandon kan vara användbara för många systemadministratörer för att förbättra säkerheten för sina system. Men detta är inte alla möjligheterna med verktyget. Fortsätt att experimentera med verktyget för att ta reda på mer, bara inte på andras nätverk!

Om författaren

Grundare och webbplatsadministratör, förtjust i programvara med öppen källkod och drift Linux-system. Jag använder för närvarande Ubuntu som mitt huvudoperativsystem. Förutom Linux är jag intresserad av allt som rör informationsteknologi och modern vetenskap.

  • Upptäckt av tjänster och deras versioner
  • OS definition
  • Alternativ för tids- och prestationshantering
  • Olika alternativ
  • Interaktion under körning
  • Exempel
  • Information om Nmap-skript (på engelska):

    Dold för gäster


    Den senaste versionen av Nmap-dokumentationen (på engelska):

    Dold för gäster


    Den officiella boken om Nmap från skaparna av Nmap (på engelska):

    Dold för gäster

    Inledning

    nmap - Verktyg för nätverksutforskning och portskanner

    Nmap ("Network Mapper") är ett nätverksutforsknings- och säkerhetsverktyg med öppen källkod. Den designades för att snabbt skanna stora nätverk, även om den också fungerar bra för enstaka mål. Nmap använder rå IP-paket på ursprungliga sätt för att avgöra vilka värdar som är tillgängliga på nätverket, vilka tjänster (applikationsnamn och version) de erbjuder, vilka operativsystem (och OS-versioner) de använder, vilka typer av paketfilter/brandväggar som används, och dussintals andra egenskaper. . Medan Nmap ofta används för säkerhetskontroller, är många nätverk och systemadministratörer tycker att det är användbart för vanliga uppgifter som att övervaka strukturen i ett nätverk, hantera scheman för uppstart av tjänster och hålla reda på värdens eller tjänstens drifttid.

    Utdata från Nmap är en lista över skannade mål, med ytterligare information om varje beroende på vilka alternativ som ges. Nyckelinformationär tabellen "viktiga portar". Den här tabellen innehåller portnummer, protokoll, tjänstnamn och status. Statusen kan vara öppen (öppen), filtrerad (filtrerad), stängd (stängd) eller ofiltrerad (ej filtrerad). Open betyder att applikationen på måldatorn är redo att ansluta/ta emot paket på denna port. Filtrerad betyder att en brandvägg, nätverksfilter eller något annat nätverkshinder blockerar porten och Nmap kan inte avgöra om porten är öppen eller stängd. Stängda portar är inte associerade med någon applikation, så de kan öppnas när som helst. Portar anses ofiltrerade när de svarar på Nmap-förfrågningar, men Nmap kan inte avgöra om de är öppna eller stängda. Nmap utfärdar öppna|filtrerade och stängda|filtrerade kombinationer när den inte kan avgöra vilket av de två tillstånden porten beskriver. Den här tabellen kan också ge information om programversionen om så begärs. Vid skanning över IP-protokoll (-sO) ger Nmap information om IP-protokoll som stöds, inte om öppna portar.

    Förutom en tabell över viktiga portar kan Nmap ge ytterligare målinformation: lösta DNS-namn, operativsystemgissning, enhetstyper och MAC-adresser.

    En typisk genomsökning med Nmap visas i exempel 1. De enda argument som används i detta exempel är -A, för att bestämma OS-versionen, skriptsökning och spårning; -T4 för snabbare utförande; sedan två målvärdar.

    Exempel 1. Ett typiskt exempel på skanning med Nmap:

    # nmap -A -T4 scanme.nmap.org lekplats Startar Nmap (https://nmap.org/) Intressanta portar på scanme.nmap.org (64.13.134.52): (De 1663 portarna som skannats men som inte visas nedan är i tillstånd : filtrerad) PORT STATE SERVICE VERSION 22/tcp öppen ssh OpenSSH 3.9p1 (protokoll 1.99) 53/tcp öppen domän 70/tcp stängd gopher 80/tcp öppen http Apache httpd 2.0.52 ((Fedora/Device) 113 stängd autentisering typ: allmänt ändamål Kör: Linux 2.4.X|2.5.X|2.6.X OS-detaljer: Linux 2.4.7 - 2.6.11, Linux 2.6.0 - 2.6.11 Intressanta portar på playground.nmap.org (192.168.0.40 ): (De 1659 portarna som skannats men som inte visas nedan är i tillståndet: stängda) PORT STATE SERVICE VERSION 135/tcp öppen msrpc Microsoft Windows RPC 139/tcp öppen netbios-ssn 389/tcp öppen ldap? 445/tcp öppna microsoft-ds Microsoft Windows XP microsoft-ds 1002/tcp öppna windows-icfw? 1025/tcp öppen msrpc Microsoft Windows RPC 1720/tcp öppen H.323/Q.931 CompTek AquaGateKeeper 5800/tcp öppen vnc-http RealVNC 4.0 (Upplösning 400x250; VNC-port: 59000/VNC öppen) 59000/vcNCn protokoll (VNC) Adress: 00:A0:CC:63:85:4B (Lite-on Communications) Enhetstyp: allmänt bruk Kör: Microsoft Windows NT/2K/XP OS-detaljer: Microsoft Windows XP Pro RC1+ till och med slutlig utgåva Serviceinfo: OS: Windows , Windows XP Nmap klar: 2 IP-adresser (2 värdar upp) skannade på 88,392 sekunder

    Sammanfattning av alternativ

    Användande:
    nmap [Skanningstyp(er)] [Alternativ] (specificerade_mål)

    BESTÄMNING AV SKANNINGSSYFTE:

    Kan arbeta med värdnamn, IP-adresser, nätverk, etc.
    Till exempel: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254
    -il<ввести_имя_файла>: Importera från värd-/nätverkslistan
    -iR<количество хостов>: Slumpmässigt val av mål
    --utesluta : Exkludera värdar/nätverk
    --excludefile<файл_с_исключениями>: Exkludera lista från filen

    VÄRDUPPTÄCKT:

    SL: Skanna till lista - gör bara en lista över mål att skanna
    -sn: Ping-skanning - lätt att avgöra om värden är uppe
    -Pn: Behandla alla värdar som upp - hoppa över värdupptäckt
    -PS/PA/PU/PY [portlista]: TCP SYN/ACK, UDP eller SCTP ping givna värdar
    -PE/PP/PM: Pinga med ICMP-ekoförfrågningar, tidsstämpel och nätmaskförfrågningar
    -PO[lista över protokoll]: Pinga med IP-protokoll
    -n/-R: Lös aldrig DNS/Lös alltid [standard: ibland]
    –dns-servrar<сервер1[,сервер2],…>: Ställ in dina egna DNS-servrar
    --system-dns: Använd systemets DNS-resolver
    --traceroute: Spåra (sökväg) till varje värd

    OLIKA SKANNINGSTEKNIKER:

    SS/sT/sA/sW/sM: TCP SYN/med anropssökningen Connect()/ACK/Window/Maimon
    -sU: UDP-skanning
    -sN/sF/sX: TCP Null, FIN och Xmas skanningar
    --scanflaggor<флаги>: Ställ in anpassade TCP-flaggor
    -si<зомби_хост[:порт]>: Inaktiv skanning
    -sY/sZ: SCTP INIT/COOKIE-ECHO scan
    -sO: IP-protokollskanning
    -b : FTP-studssökning

    DEFINITION AV HAMNAR OCH SKANNINGSORDNING:

    P<диапазон_портов>: Skanna endast specifika portar
    Exempel: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
    -F: Fast Scan - Skanna ett begränsat antal portar
    -r: Skanna portar sekventiellt - randomisera inte portar
    --topportar<количество_портов>: Skanna<количество_портов>vanligaste portarna
    --port-förhållande<рейтинг>: Skanna portar med en rating högre än<рейтинг>

    DEFINITION AV TJÄNSTER OCH DERAS VERSIONER:

    SW: Utforska öppna portar för att definiera tjänst/versionsinformation
    --versionsintensitet<уровень>: Ställ in från 0 (lätt) till 9 (prova alla förfrågningar)
    --version-light: Begränsa till lättaste frågor (vikt 2)
    --version-all: Använd varje enskild begäran (kurs 9)
    --version-trace: Skriv ut detaljerad information om skanningsprocessen (för felsökning)

    SKANNA MED SKRIP:

    SC: motsvarar --script=standardalternativ
    --script= : är en kommaseparerad lista över kataloger, skriptfiler eller skriptkategorier
    --script-args=<имя1=значение1,[имя2=значение2,…]>: Överför argument till skript
    --script-args-fil=filnamn: Skicka NSE-filargument till skript
    --script-trace: Skriv ut alla mottagna och skickade data
    --script-updatedb: Uppdatera skriptdatabas
    --script-help= : Visa hjälp om skript. en kommaseparerad lista med skript eller en lista med skriptkategorier.

    OS DEFINITION:

    O: Aktivera OS-detekteringsfunktionen
    --osscan-limit: Använd endast OS-detektion för "lovande" värdar
    --osscan-guess: Gissa OS-detekteringsresultat

    ALTERNATIV FÖR HANTERING AV TID OCH PRESTANDA:

    Alternativ som tar ett argument<время>, är i millisekunder, tills du lägger till "s" (sekunder), "m" (minuter) eller "h" (timmar) till värdet (t.ex. 30m).
    -T<0-5>: Ställ in tidshanteringsförinställning (större är snabbare)
    --min-hostgroup/max-hostgroup<кол_хостов>: Ställ in storlek på grupper för parallell skanning
    --min-parallellism/max-parallelism<кол_хостов>: Styr frågeparallellism
    --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout<время>: Justerar tiden för att vänta på svar på en förfrågan
    --max-försök igen<количество_попыток>: Anger maximalt antal förfrågningar igen
    --värd-timeout<время>: Slutar skanna långsamma mål
    --scan-delay/-max-scan-delay<время>: Justerar fördröjningen mellan förfrågningar
    –min-hastighet<число>: Skicka förfrågningar med en hastighet som inte är lägre än<число>per sekund
    --max-hastighet<число>: Skicka förfrågningar med en hastighet som inte är högre än<число>per sekund

    ATT KNIGA BRANDVÄGGAR/IDS:

    F; -mtu<значение>: Fragmentpaket (valfritt med inställt MTU-värde)
    -D<фикт_хост1,фикт_хост2[,ME],…>: Maskeringsskanningar med falska värdar
    -S : Ändra källadress
    -e<интерфейс>: Använd specifikt gränssnitt
    -g/-source-port<номер_порта>: Använd det angivna portnumret
    -ombud : Reläanslutningar via HTTP/SOCKS4-proxy
    --data-längd<число>: Lägg till godtyckliga data till skickade paket
    --ip-alternativ<опции>: Skicka paket med givna ip-alternativ
    -ttl<значение>: Ställ in IP-fältets tid att leva
    --spoof-mac : Ställ in din egen MAC-adress
    --badsum: Skicka paket med falska TCP/UDP/SCTP-kontrollsummor

    RESULTATUTKAST:

    ON/-oX/-oS/-oG Utgång normal, XML, s| -oA<базовове_имя_файла>: Använd tre huvudsakliga utdataformat samtidigt
    -v: Öka detaljeringsnivån (ange två eller fler gånger för att öka effekten)
    -d: Öka eller ställ in felsökningsnivån (upp till 9)
    --reason: Visa anledningen till att porten är i ett visst tillstånd
    --open: Visa endast öppna (eller möjligen öppna) portar
    --packet-trace: Spåra mottagna och överförda paket
    --iflist: Lista gränssnitt och routrar (för felsökning)
    --log-errors: Logga fel/varningar till utdatafilen i normalläge
    --append-output: Lägg till i istället för att skriva över utdatafiler
    -återuppta<имя_файла>: Återuppta avbruten skanning
    --stilmall<путь/URL>: Ställer in en XSL-formatmall för att konvertera XML-utdata till HTML
    --webxml: Laddar stilmallen från Nmap.Org
    --no-stylesheet: Ta bort XSL-stilmallsdeklaration från XML

    OLIKA ALTERNATIV:

    6: Aktivera IPv6-skanning
    -A: Aktivera OS och versionsidentifiering, skriptad skanning och spårning
    --datadir<имя_директории>: Anger platsen för Nmap-filer
    --send-eth/ --send-ip: Använd rå ethernet/IP-lager
    --privileged: Antag att användaren har alla privilegier
    --unprivileged: Antag att användaren inte har behörighet att använda råa sockets
    -V: Visa versionsnummer
    -h: Visa denna hjälpsida

    INTERAKTIVA KOMMANDON:

    HJÄLP: Fungerar inte med "sudo nmap" så använd "sudo -i"
    Under drift kan du fråga nmap med följande växlar:
    ? Visa denna information
    v/V öka/minska verbosity
    d/D ökar/minskar felsökning
    p/P aktivera/avaktivera paketspårning
    och andra nycklar som ska skrivas ut i status

    EXEMPEL:
    Bestämma syftet med skanningen

    På kommandoraden Nmap behandlas allt som inte är ett alternativ (eller ett alternativargument) som ett skanningsmål. I det enklaste fallet används IP-adressen eller nätverksnamnet för målmaskinen för skanning.

    Ibland behöver du skanna ett helt nätverk. För att göra detta stöder Nmap CIDR-adressering. Du kan lägga till /<кол-во бит>till en IP-adress eller nätverksnamn, och Nmap kommer att skanna varje IP-adress som den första<кол-во бит>samma som den givna värden. Till exempel kommer 192.168.10.0/24 att skanna 256 värdar mellan 192.168.10.0 (binärt: 11000000 10101000 00001010 00000000) och 192.168.10.010 i 0100010100000000 192.168.10.40/24 kommer att göra exakt samma sak. Genom att veta att IP-adressen för scanme.nmap.org är 64.13.134.52 kommer en post som scanme.nmap.org/16 att skanna 65 536 IP-adresser mellan 64.13.0.0 och 64.13.255.255. Det minsta tillåtna värdet är /0, vilket kommer att skanna hela Internet. Det högsta värdet är /32, där endast den angivna värden eller IP-adressen kommer att skannas. alla adressbitar är inaktiverade.

    CIDR-notation är kort, men inte alltid tillräckligt flexibel. Till exempel vill du skanna 192.168.0.0/16 men hoppa över alla IP-adresser som slutar på .0 eller .255 eftersom vanligtvis är dessa sändningsadresser. Nmap kan göra denna skanning genom att ange intervall i oktetter. Istället för att ange en vanlig IP-adress kan du ange antingen en kommaseparerad lista med siffror eller ett intervall för varje oktett. Till exempel kommer 192.168.0-255.1-254 att hoppa över alla adresser i intervallet som slutar på .0 och .255. Områden behöver inte specificeras endast i de sista oktetterna: att skriva 0-255.0-255.13.37 kommer att skanna alla internetadresser som slutar på 13.37. Denna typ av skanning kan vara användbar för att surfa på Internet och olika studier.

    IPv6-adresser kan endast anges i en form som helt överensstämmer med korrekt notation för IPv6-adresser. CIDR och användningen av intervall i oktetter gäller inte för IPv6-adresser, som de används sällan.

    Du kan skicka flera måldefinitioner på kommandoraden Nmap, inte nödvändigtvis samma typ. Team nmap scanme.nmap.org 192.168.0.0/16 10.0.0,1,3-7.0-255 kommer att göra vad du förväntar dig.

    Skanningsmål ställs vanligtvis in på kommandoraden, och det finns olika alternativ för att styra valet av mål:

    IL<имя_файла>(Ange från listan)

    Läser mål från<имя_файла>. Även om det är vanligt att skicka en stor lista med värdar för skanning, är detta inte bekvämt. Till exempel, din DHCP-server ger dig en lista med 10 000 adresser som den använder för närvarande, och du vill skanna den. Eller så kanske du vill skanna alla IP-adresser utom de som skickas till dem för att upptäcka obehörig användning av statiska IP-adresser. Skapa helt enkelt en lista med värdar för att skanna och skicka filnamnet till Nmap som ett argument till alternativet -iL. Posterna i filen kan vara i vilken form som helst som är acceptabel för Nmap (IP-adresser, nätverksnamn, CIDR, IPv6 eller oktettintervall). Varje post måste separeras med ett mellanslag eller flera mellanslag, flikar eller rader. Du kan skicka ett bindestreck (-) som ett filnamnsargument om du vill att Nmap ska läsa listan över värdar från standardinmatning snarare än från en fil.

    IR<кол-во хостов>(Väljer godtyckliga mål)

    För att skanna över hela Internet eller någon form av forskning kan du behöva välja mål slumpmässigt. Argument<кол-во хостов>bestämmer hur många IP-adresser som ska genereras. Olämpliga IP-adresser som privata, broadcast- eller icke-lokaliserade adressintervall hoppas över automatiskt. Argument 0 kan skickas för en oändlig skanning. Var medveten om att vissa systemadministratörer kanske inte gillar obehöriga genomsökningar av sina nätverk och kan klaga. Använd detta alternativ på egen risk! Om du blir uttråkad en regnig dag, prova nmap -sS -PS80 -iR 0 -p 80 för att skanna godtyckliga webbservrar.

    --utesluta<хост1>[,<хост2>[,...]] (Uteslut värdar/nätverk)

    Anger en kommaseparerad lista över mål som ska uteslutas från skanningen, även om de är en del av det skanningsintervall du anger. Den godkända listan använder standard Nmap-syntax, så den kan innehålla nätverksnamn, CIDR-adressering, intervall i oktetter och så vidare. Det här alternativet kan vara användbart om nätverket du vill skanna innehåller servrar eller system som inte svarar bra på portskanningar, eller undernät som administreras av andra personer.

    --excludefile<имя_файла>(Uteslut lista från fil)

    Det här alternativet gör samma sak som --exclude, förutom att målen som ska uteslutas är åtskilda av mellanslag, tabbar eller rader<файле>, inte på kommandoraden.

    nmap[ <Тип сканирования> ...] [ <Опции> ] { <цель сканирования> }

    Beskrivning

    nmap(" Nätverksmappare ») är ett nätverksutforsknings- och säkerhetsverktyg med öppen källkod. Den designades för att snabbt skanna stora nätverk, även om den också fungerar bra för enstaka mål. Nmap använder rå IP-paket på ett originellt sätt för att avgöra vilka värdar som är tillgängliga på nätverket, vilka tjänster (applikationsnamn och version) de erbjuder, vilka operativsystem (och OS-versioner) de använder, vilka typer av paketfilter/brandväggar som används , och många fler andra egenskaper. Även om Nmap ofta används för säkerhetskontroller, tycker många systemadministratörer att det är användbart för vanliga uppgifter som att övervaka nätverksstruktur, hantera scheman för uppstart av tjänster och hålla reda på värd- eller tjänstdrifttid.

    Utdata från Nmap är en lista över skannade mål, med ytterligare information om varje mål beroende på de alternativ som ges. Nyckelinformationen är « viktig porttabell» . Den här tabellen innehåller portnummer, protokoll, tjänstnamn och status. Statusen kan vara öppen (öppen), filtrerad (filtrerad), stängd (stängd) eller ofiltrerad (ej filtrerad). Open betyder att applikationen på måldatorn är redo att ansluta/ta emot paket på denna port. Filtrerad betyder att en brandvägg, nätverksfilter eller någon annan nätverksstörning blockerar porten och Nmap kan inte avgöra om porten är öppen eller stängd. Stängda portar är inte associerade med någon applikation, men kan öppnas när som helst. Portar anses ofiltrerade när de svarar på Nmap-förfrågningar, men Nmap kan inte säga om de är öppna eller stängda. Nmap utfärdar öppna|filtrerade och stängda|filtrerade kombinationer när den inte kan avgöra vilket av de två tillstånden porten beskriver. Den här tabellen kan också ge information om programversionen om så begärs. Vid skanning över IP-protokoll (-sO) ger Nmap information om protokoll som stöds, inte om öppna portar.

    Förutom en tabell över viktiga portar kan Nmap ge ytterligare målinformation: lösta DNS-namn, operativsystemgissning, enhetstyper och MAC-adresser.

    En typisk skanning med Nmap visas i exempel 1. De enda argument som används i det här exemplet är -A , för OS-version, scripted scanning och tracing; -T4 för snabbare utförande; sedan två målvärdar.

    Exempel 1. Ett typiskt exempel på skanning med Nmap

    # nmap -A -T4 scanme..org) Intressanta portar på scanme.site (64.13.134.52): (De 1663 portar som skannats men som inte visas nedan är i tillstånd: filtrerade) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 3.9p1 (protokoll 1.99) 53/tcp öppen domän 70/tcp stängd gopher 80/tcp öppen http Apache httpd 2.0.52 ((Fedora)) 113/tcp stängd auth Enhetstyp: allmänt ändamål Kör: Linux 2.4.X|2.5.X| 2.6.X OS-detaljer: Linux 2.4.7 - 2.6.11, Linux 2.6.0 - 2.6.11 Intressanta portar på lekplatsen..168.0.40): (De 1659 portarna som skannas men inte visas nedan är i tillstånd: stängda) PORT STATE SERVICE VERSION 135/tcp öppen msrpc Microsoft Windows RPC 139/tcp öppen netbios-ssn 389/tcp öppen ldap? 445/tcp öppna microsoft-ds Microsoft Windows XP microsoft-ds 1002/tcp öppna windows-icfw? 1025/tcp öppen msrpc Microsoft Windows RPC 1720/tcp öppen H.323/Q.931 CompTek AquaGateKeeper 5800/tcp öppen vnc-http RealVNC 4.0 (Upplösning 400x250; VNC-port: 59000/VNC öppen) 59000/vcNCn protokoll (VNC) Adress: 00:A0:CC:63:85:4B (Lite-on Communications) Enhetstyp: allmänt bruk Kör: Microsoft Windows NT/2K/XP OS-detaljer: Microsoft Windows XP Pro RC1+ till och med slutlig utgåva Serviceinfo: OS: Windows , Windows XP Nmap klar: 2 IP-adresser (2 värdar upp) skannade på 88,392 sekunder


    Den senaste versionen av Nmap kan laddas ner från