Avancerade användningsområden för Nmap
Efter den första delen i denna serie är det dags att titta på några av de mer avancerade funktionerna i nmap
. Från och med den grundläggande portscanningen är det möjligt att få mer information om skanningen genom att lägga till -vv
flaggan:
nmap -vv 192.168.1.101
Utgången kommer att se ut så här:
I den första delen tittade vi på hur man skannar en rad adresser. Det finns ett sätt att utföra skanningen, men den här gången genom att ange antalet bitar från subnätmasken:
nmap 192.168.1.1/24
Ovanstående kommando kommer att skanna alla värdar från 192.168.1.0 till 192.168.1.255 på ett nätverk som har en nätverksmask av 255.255.255.0. Även om större subnätmasker är möjliga (t.ex. 255.255.0.0 är / 16) skulle detta leda till att nmap
skannar ett stort antal värdar och borde troligtvis undvikas.
För att få nmap
att skapa en lista över värdarna som den ska skanna, använd -sL
flaggan:
nmap-sL 192.168.1.1/24
I det här fallet kommer utmatningen att vara en lista över adresser (en per rad) som börjar vid 192.168.1.0 och slutar vid 192.168.1.255.
Om det finns värdar på ditt nätverk som objektet att skannas (säg servrar med system för intrångsdetektering installerade eller vissa typer av brandväggsapparater) kan du berätta för nmap
att hoppa över en viss adress genom att använda -exclude
flaggan. Följande exempel kommer att skanna alla värdar från .0 till .255 men inte 192.168.1.4:
nmap 192.168.1.1/24 -exclude 192.168.1.4
Smygande
När du letar efter öppna portar kan nmap
använda flera olika typer av avsökningsmetod. Nätverksanslutningar upprättas med hjälp av TCP-protokollet. Det definierar vilka paket av data som ska skickas och vad ska vara svaret. För att upprätta en anslutning skickas ett SYN-paket först till värden. Om porten är öppen och värden är villig att acceptera anslutningar svarar den genom att skicka ett SYN-ACK-paket. Då skickar klienten ett ACK-paket för att slutföra anslutningen. Denna anslutning används sedan högre upp av programvara som webbläsare och e-postprogram. När det åberopas från ett normalt användarkonto är det precis vad nmap
gör för varje port som skannas. Om en anslutning är etablerad, rapporteras porten som öppen.
Men om nmap
åberopas från ett root-konto eller använder sudo
, är det normalt en annan typ av skanning som är känd som halv öppen skanning. I detta scenario skapar nmap
själva TCP-paketen med låg nivå (i stället för att använda det underliggande operativsystemet för att göra det på dess vägnar) och när det tar emot SYN-ACK, svarar det inte med en ACK och så är en fullständig anslutning inte etablerad. Men eftersom värden svarade med en SYN-ACK betyder det att porten är öppen och tillgänglig för en fullständig anslutning. Fördelen med halv öppen skanning är att den är snabbare och det medför inte att serverns programvara lyssnar på porten för att logga in en anslutning.
Du kan se till att halv öppen skanning används med -sS
flaggan. När det kombineras med -vv
, kan du se nmap
rapporterar användningen av en "SYN Stealth Scan" för att sänka värden. Här är det fullständiga kommandot:
sudo nmap-sS-vv 192.168.1.101
Observera också att nmap
nu ger en rapport om nmap
det genererade så att det skulle kunna utföra den halvöppna genomsökningen.
Alla lysde upp som ett julgran
Det finns en enda typ av skanning som är värt att nämna och det är NULL-skanningen och dess vänner - FIN-skanningen och Xmas-scanningen. I TCP-standarden finns en liten sektion som berättar om en TCP-implementering vad man ska göra om det tar emot ett paket med fel flaggor. Det praktiska resultatet av detta "loop-hål" är att alla paket som inte innehåller SYN-, RST- eller ACK-bitarna kommer att resultera i ett returnerat RST-paket om porten är stängd och inget svar alls om porten är öppen. nmap
kan använda detta till sin fördel genom att skicka felaktiga paket och väntar på att se om det finns ett svar.
NULL-skanningen, som åberopas med -sN
ställer inte några bitar i pakethuvudet. FIN-scan, -sF
, sätter TCP FIN-bit och Xmas-scan, -sX
, sätter FIN-, PSH- och URG-flaggor. Det kallas Xmas scan eftersom paketet nu lyser upp som ett julgran!
Om värden svarar med ett RST-paket är porten stängd, ingenting och porten är öppen.
Slutsats
Som vi kan se är nmap
ett kraftfullt verktyg och har utformats lika för smyg eller öppen skanning. Som ett sista experiment, försök följande kommando som ett sätt att upptäcka vilka värdar som lever i ditt lokala nätverk utan att verkligen skanna värdarna utan hellre genom att bara fråga efter deras MAC-adresser:
sudo nmap -PR-vv 192.168.1.1/24
-PR
flaggan kommer att leda till att nmap
frågar efter värdens MAC-adress (med ARP) och markerar värden så levande om den får ett svar.