i Nmap-dokumentationen anges följande för NULL
FIN
och Xmas
skanningar:
När skanningssystem överensstämmer med denna RFC-text, kommer alla paket som inte innehåller syn -, rst-eller ack-bitar att resultera i en returnerad rst om porten är stängd och inget svar alls om porten är öppen. Så länge ingen av dessa tre bitar ingår, är någon kombination av de andra tre (FIN, PSH och URG) OK. Nmap utnyttjar detta med tre skanningstyper
som du kan se, om porten är öppen skulle inget svar returneras. Detta kan fungera i ideala scenarier, men du kan skanna genom en brandvägg som kan blockera åtkomst till vissa tjänster.
Du har till exempel en webbapplikation på port 80 som ska vara tillgänglig för alla men du vill inte att alla ska kunna komma åt din ssh-port, så konfigurera brandväggen för att släppa paket med SYN
flagga till port 22 om det inte kommer från en auktoriserad IP och svara på ett RST
i det här exemplet använder du en skanning med SYN
flaggan kommer att returnera en RST
vilket innebär att porten är stängd. Istället, om vi använder enNULL
Skanna till exempel – som inte harSYN
flagga – kommer inte att släppas av brandväggen och kommer att returneraRST
om porten är stängd eller ingenting om den är öppen.
hur bestämmer jag när jag ska använda XMAS eller FIN-skanningar när båda har samma svar och samma begränsningar?
i de flesta fall bör dessa skanningar fungera på samma sätt, den enda anledningen till att jag kan tänka mig att välja en över en annan är att kringgå vissa brandväggsfilter. I det föregående exemplet kan brandväggen också släppa paket från en NULL
– skanning eftersom det inte finns några flaggor i det och därför tolkar det som skadat paket. I det här fallet bör du använda en skanning som har vissa flaggor på men att den inte innehåller SYN
flagga, som FIN
eller Xmas
skannar
Observera att du inte kommer att kunna veta om porten faktiskt är öppen om du inte får något svar eftersom det också är möjligt att porten är brandväggen släpper RST
svar när en port är stängd, därför misstolka det som öppet när det inte är. För att den här typen av skanningar ska fungera korrekt bör du ha viss tidigare kunskap om hur servern svarar på den typen av skanningar med hjälp av en port som känner till det exakta tillståndet (i vårt exempel kan det vara port 80) och analysera de olika svaren för varje skanningstyp