-sL(Lijstscan)

De lijstscan is een gedegenereerde vorm van host discovery die eenvoudigweg een lijst maakt van elke host van het (de) opgegeven netwerk(en), zonder pakketten naar de doelhosts te sturen. Standaard doet Nmap nog steeds reverse-DNS resolutie op de hosts om hun namen te leren. Het is vaak verrassend hoeveel nuttige informatie eenvoudige hostnamen geven. Bijvoorbeeld, fw.chi is de naam van de Chicago firewall van een bedrijf. Nmap rapporteert ook het totaal aantal IP adressen aan het eind. De lijstscan is een goede controle om er zeker van te zijn dat je de juiste IP adressen hebt voor je doelwitten. Als de hosts sport domeinnamen hebben die u niet herkent, is het de moeite waard om dit verder te onderzoeken om te voorkomen dat u het netwerk van het verkeerde bedrijf scant.

Omdat het idee is om simpelweg een lijst van doelhosts af te drukken, kunnen opties voor functionaliteit op een hoger niveau, zoals het scannen van poorten, OS detectie, of host discovery hier niet mee worden gecombineerd. Als u host discovery wilt uitschakelen en toch dergelijke functionaliteit op een hoger niveau wilt uitvoeren, lees dan over de optie -Pn (host discovery overslaan).

-sn(Geen poortscan)

Deze optie vertelt Nmap om geen poortscan uit te voeren na host discovery, en alleen de beschikbare hosts af te drukken die reageerden op de host discovery sondes. Dit is vaak bekend als een “ping scan”, maar u kunt ook vragen om traceroute en NSE host scripts uit te voeren. Dit is standaard een stap indringender dan de list scan, en kan vaak voor dezelfde doeleinden worden gebruikt. Het maakt een lichte verkenning van een doelnetwerk mogelijk zonder veel aandacht te trekken. Weten hoeveel hosts up zijn is waardevoller voor aanvallers dan de lijst die door de list scan van elk IP en elke hostnaam wordt gegeven.

Systeembeheerders vinden deze optie vaak ook waardevol. Ze kan gemakkelijk worden gebruikt om de beschikbare machines op een netwerk te tellen of de beschikbaarheid van servers te controleren. Dit wordt vaak een ping sweep genoemd, en is betrouwbaarder dan het pingen van het broadcast adres omdat veel hosts niet reageren op broadcast queries.

De standaard host discovery gedaan met -sn bestaat uit een ICMP echo verzoek, TCP SYN naar poort 443, TCP ACK naar poort 80, en standaard een ICMP timestamp verzoek. Wanneer het wordt uitgevoerd door een gebruiker zonder rechten, worden alleen SYN-pakketten verzonden (met een connect-aanroep) naar poort 80 en 443 op het doelwit. Wanneer een geprivilegieerde gebruiker targets op een lokaal ethernet netwerk probeert te scannen, worden ARP verzoeken gebruikt, tenzij --send-ip was gespecificeerd. De -sn optie kan gecombineerd worden met elk van de discovery probe types (de -P* opties) voor meer flexibiliteit. Als een van deze controleregel type en poort nummer opties worden gebruikt, worden de standaard controleregels overschreven. Als er strikte firewalls zijn tussen de bronhost waarop Nmap draait en het doelnetwerk, wordt het gebruik van deze geavanceerde technieken aanbevolen. Anders kunnen hosts worden gemist wanneer de firewall probes of hun antwoorden laat vallen.

In vorige versies van Nmap, -sn was bekend als -sP.

-Pn(Geen ping)

Deze optie slaat de host discovery fase helemaal over. Normaal gesproken gebruikt Nmap deze fase om actieve machines te bepalen voor zwaardere scans en om de snelheid van het netwerk te peilen. Standaard voert Nmap alleen zware sonderingen uit, zoals poortscans, versiedetectie of OS-detectie tegen hosts die actief blijken te zijn. Het uitschakelen van host discovery met -Pn zorgt ervoor dat Nmap de gevraagde scanfuncties tegen elk opgegeven doel-IP adres probeert uit te voeren. Dus als een netwerk van /16 formaat wordt opgegeven op de opdrachtregel, worden alle 65.536 IP-adressen gescand. Correcte host ontdekking wordt overgeslagen zoals bij de lijstscan, maar in plaats van te stoppen en de doellijst af te drukken, gaat Nmap door met het uitvoeren van de gevraagde functies alsof elk doel-IP actief is. Standaard timingparameters worden gebruikt, wat kan resulteren in tragere scans. Om host discovery en poortscan over te slaan, terwijl NSE nog steeds kan worden uitgevoerd, gebruikt u de twee opties -Pn -sn samen.

Voor machines op een lokaal ethernet netwerk, zal ARP scannen nog steeds worden uitgevoerd (tenzij --disable-arp-ping of --send-ip is gespecificeerd) omdat Nmap MAC-adressen nodig heeft om doelhosts verder te scannen. In vorige versies van Nmap, was -Pn -P0 en -PN.

-PS <port list>(TCP SYN Ping)

Deze optie verzendt een leeg TCP-pakket met de SYN-vlag ingesteld. De standaard bestemmingspoort is 80 (configureerbaar tijdens het compileren door DEFAULT_TCP_PROBE_PORT_SPEC in nmap.h te veranderen). Alternatieve poorten kunnen als parameter worden opgegeven. De syntaxis is hetzelfde als voor -p, behalve dat poorttypespecificaties als T: niet zijn toegestaan. Voorbeelden zijn -PS22 en -PS22-25,80,113,1050,35000. Merk op dat er geen spatie mag staan tussen -PS en de poortlijst. Als er meerdere probes zijn gespecificeerd, worden ze parallel verzonden.

De SYN vlag suggereert aan het systeem op afstand dat u een verbinding probeert op te zetten. Normaal zal de bestemmingspoort worden gesloten, en een RST (reset) pakket worden teruggezonden. Als de poort toevallig open is, zal het doel de tweede stap van een TCP three-way-handshake uitvoeren door te antwoorden met een SYN/ACK TCP pakket. De machine die Nmap draait, verbreekt dan de ontluikende verbinding door te antwoorden met een RST in plaats van een ACK pakket te sturen dat de drie-wegs-handdruk zou voltooien en een volledige verbinding tot stand zou brengen. Het RST pakket wordt verzonden door de kernel van de machine waarop Nmap draait als antwoord op de onverwachte SYN/ACK, niet door Nmap zelf.

Nmap geeft er niet om of de poort open of gesloten is. Ofwel de eerder besproken RST of SYN/ACK respons vertelt Nmap dat de host beschikbaar is en reageert.

Op Unix boxen is in het algemeen alleen de gepriviligeerde gebruiker root in staat om ruwe TCP pakketten te verzenden en te ontvangen. Voor gebruikers zonder privileges wordt automatisch een workaround gebruikt waarbij de connect system call wordt gestart tegen elke doelpoort. Dit heeft tot gevolg dat een SYN pakket naar de doelhost wordt gestuurd, in een poging om een verbinding tot stand te brengen. Als connect terugkomt met een snel succes of een ECONNREFUSED-fout, moet de onderliggende TCP-stack een SYN/ACK of RST hebben ontvangen en is de host als beschikbaar gemarkeerd. Als de verbindingspoging blijft hangen totdat een time-out wordt bereikt, wordt de host als down gemarkeerd.

-PA <port list>(TCP ACK Ping)

De TCP ACK ping lijkt veel op de zojuist besproken SYN ping. Het verschil is, zoals je waarschijnlijk al kon raden, dat de TCP ACK vlag gezet wordt in plaats van de SYN vlag. Zo’n ACK pakket beweert data te bevestigen over een opgezette TCP verbinding, maar zo’n verbinding bestaat niet. Dus hosts op afstand zouden altijd moeten antwoorden met een RST pakket, en daarbij hun bestaan onthullen.

De -PA optie gebruikt dezelfde standaard poort als de SYN probe (80) en kan ook een lijst van bestemmingspoorten in hetzelfde formaat aannemen. Als een gebruiker zonder rechten dit probeert, wordt de eerder besproken connect workaround gebruikt. Deze workaround is onvolmaakt omdat connect in feite een SYN pakket stuurt in plaats van een ACK.

De reden om zowel SYN als ACK pingprobes aan te bieden is om de kans op het omzeilen van firewalls te maximaliseren. Veel beheerders configureren routers en andere eenvoudige firewalls om inkomende SYN-pakketten te blokkeren, behalve voor die welke bestemd zijn voor openbare diensten zoals de bedrijfswebsite of de mailserver. Dit voorkomt andere inkomende verbindingen naar de organisatie, terwijl gebruikers ongehinderd uitgaande verbindingen naar het Internet kunnen maken. Deze “non-stateful” benadering neemt weinig middelen in beslag op de firewall/router en wordt op grote schaal ondersteund door hardware- en softwarefilters. De Linux Netfilter/iptables firewall software biedt de gemaksoptie --syn om deze stateless aanpak te implementeren. Wanneer stateless firewall regels zoals deze van kracht zijn, zullen SYN ping probes (-PS) waarschijnlijk worden geblokkeerd wanneer ze naar gesloten doelpoorten worden gestuurd. In zulke gevallen schittert de ACK probe omdat deze dwars door deze regels heen snijdt.

Een ander veel voorkomend type firewall gebruikt stateful regels die onverwachte pakketten laten vallen. Deze eigenschap werd aanvankelijk vooral aangetroffen op high-end firewalls, maar is in de loop der jaren veel gangbaarder geworden. Het Linux Netfilter/iptables systeem ondersteunt dit door de --state optie, die pakketten categoriseert op basis van verbindingsstatus. Een SYN probe zal eerder werken tegen zo’n systeem, aangezien onverwachte ACK pakketten over het algemeen als nep worden herkend en worden gedropt. Een oplossing voor dit dilemma is om zowel SYN als ACK pakketten te sturen door -PS en -PA op te geven.

-PU <port list>(UDP Ping)

Een andere host discovery optie is de UDP ping, die een UDP pakket naar de opgegeven poorten stuurt. Voor de meeste poorten zal het pakket leeg zijn, hoewel sommige een protocol-specifieke payload gebruiken die meer kans heeft om een antwoord te ontlokken. Zie de sectie genaamd “UDP payloads: nmap-payloads” voor een beschrijving van de database van payloads.De inhoud van het pakket kan ook worden beïnvloed met de --data,--data-string, en --data-length opties.

De poortlijst heeft hetzelfde formaat als met de eerder besproken -PS en -PA opties. Als er geen poorten worden opgegeven, is de standaardwaarde 40125. Deze standaardinstelling kan tijdens het compileren worden geconfigureerd door DEFAULT_UDP_PROBE_PORT_SPEC in nmap.h te veranderen. Standaard wordt een zeer ongebruikelijke poort gebruikt omdat verzenden naar open poorten vaak ongewenst is voor dit specifieke scantype.

Als de UDP probe een gesloten poort op de doelmachine raakt, moet deze een ICMP port unreachable pakket terugsturen. Dit geeft aan Nmap aan dat de machine up en beschikbaar is. Vele andere soorten ICMP fouten, zoals host/network unreachables of TTL overschreden zijn indicatief voor een down of onbereikbare host. Een gebrek aan antwoord wordt ook op deze manier geïnterpreteerd. Als een open poort wordt bereikt, negeren de meeste diensten gewoon het lege pakket en geven geen antwoord terug. Dit is de reden waarom de standaard sondeerpoort 40125 is, waarvan het hoogst onwaarschijnlijk is dat die in gebruik is. Enkele diensten, zoals het Character Generator (chargen) protocol, zullen reageren op een leeg UDP pakket, en zo aan Nmap onthullen dat de machine beschikbaar is.

Het primaire voordeel van dit scantype is dat het firewalls en filters omzeilt die alleen TCP screenen. Ik was bijvoorbeeld ooit eigenaar van een Linksys BEFW11S4 draadloze breedband router. De externe interface van dit apparaat filterde standaard alle TCP-poorten, maar UDP-sondes zouden nog steeds port unreachable-berichten ontlokken en zo het apparaat verraden.

-PY <port list>(SCTP INIT Ping)

Deze optie verzendt een SCTP-pakket met een minimale INIT-chunk. De standaard bestemmingspoort is 80 (configureerbaar tijdens het compileren door DEFAULT_SCTP_PROBE_PORT_SPEC in nmap.h te veranderen). Alternatieve poorten kunnen als parameter worden opgegeven. De syntaxis is hetzelfde als voor -p, behalve dat poorttype-specificaties zoals S: niet zijn toegestaan. Voorbeelden zijn -PY22 en -PY22,80,179,5060. Merk op dat er geen spatie kan staan tussen -PY en de poort lijst. Als meerdere probes zijn gespecificeerd zullen ze parallel worden verzonden.

De INIT chunk suggereert aan het remote systeem dat u probeert een associatie op te zetten. Normaal zal de bestemmingspoort gesloten zijn, en een ABORT chunk zal worden teruggezonden. Als de poort toevallig open is, zal het doel de tweede stap van een SCTP four-way-handshake nemen door te antwoorden met een INIT-ACK chunk. Als de machine waarop Nmap draait een functionele SCTP stack heeft, zal deze de beginnende associatie verbreken door te antwoorden met een ABORT chunk in plaats van een COOKIE-ECHO chunk te zenden, wat de volgende stap in de four-way-handshake zou zijn. Het ABORT pakket wordt verzonden door de kernel van de machine waarop Nmap draait als antwoord op de onverwachte INIT-ACK, niet door Nmap zelf.

Nmap maakt het niet uit of de poort open of gesloten is. De eerder besproken ABORT of INIT-ACK respons vertelt Nmap dat de host beschikbaar is en reageert.

Op Unix boxen is in het algemeen alleen de bevoorrechte gebruiker root in staat om ruwe SCTP pakketten te verzenden en te ontvangen. Het gebruik van SCTP INIT Pings is momenteel niet mogelijk voor gebruikers zonder privileges.

-PE;-PP;-PM(ICMP Ping Types)

Naast de ongebruikelijke TCP, UDP en SCTP host discovery types die eerder zijn besproken, kan Nmap de standaard pakketten versturen die door het alomtegenwoordige ping programma worden verzonden. Nmap zendt een ICMP type 8 (echo request) pakket naar de doel IP adressen, en verwacht een type 0 (echo reply) terug van de beschikbare hosts. Jammer genoeg voor netwerkverkenners blokkeren veel hosts en firewalls nu deze pakketten, in plaats van te antwoorden zoals vereist door RFC 1122. Om deze reden zijn ICMP-only scans zelden betrouwbaar genoeg tegen onbekende doelwitten over het Internet. Maar voor systeembeheerders die een intern netwerk monitoren, kunnen ze een praktische en efficiënte aanpak zijn. Gebruik de -PE optie om dit echo verzoek gedrag in te schakelen.

Hoewel echo verzoek de standaard ICMP ping query is, houdt Nmap daar niet op. De ICMP standaarden (RFC 792 en RFC 950 ) specificeren ook tijdstempel verzoek, informatie verzoek, en adresmasker verzoek pakketten als codes 13, 15, en 17, respectievelijk. Hoewel het ogenschijnlijke doel van deze verzoeken is om informatie te verkrijgen zoals adresmaskers en huidige tijden, kunnen ze gemakkelijk worden gebruikt voor host discovery. Een systeem dat antwoordt is up en beschikbaar. Nmap implementeert momenteel geen informatieverzoekpakketten, omdat ze niet algemeen ondersteund worden. RFC 1122 dringt erop aan dat “een host DIENT deze berichten NIET te implementeren”. Tijdstempel en adresmasker vragen kunnen worden verzonden met respectievelijk de -PP en -PM opties. Een antwoord met timestamp (ICMP code 14) of adresmasker (code 18) geeft aan dat de host beschikbaar is. Deze twee queries kunnen waardevol zijn wanneer beheerders specifiek echo request pakketten blokkeren en vergeten dat andere ICMP queries voor hetzelfde doel kunnen worden gebruikt.

-PO <protocol list>(IP Protocol Ping)

Een van de nieuwere host discovery opties is de IP protocol ping, die IP pakketten verstuurt met het gespecificeerde protocolnummer ingesteld in hun IP header. De protocollijst heeft hetzelfde formaat als de poortlijsten in de eerder besproken TCP, UDP en SCTP host discovery opties. Als er geen protocollen worden opgegeven, is de standaardinstelling om meerdere IP-pakketten te verzenden voor ICMP (protocol 1), IGMP (protocol 2) en IP-in-IP (protocol 4). De standaardprotocollen kunnen tijdens het compileren worden geconfigureerd door DEFAULT_PROTO_PROBE_PORT_SPEC in nmap.h te veranderen. Merk op dat voor ICMP, IGMP, TCP (protocol 6), UDP (protocol 17) en SCTP (protocol 132), de pakketten worden verzonden met de juiste protocol headers, terwijl andere protocollen worden verzonden met geen extra gegevens buiten de IP header (tenzij een van de --data, --data-string, of --data-length opties zijn gespecificeerd).

Deze host discovery methode zoekt naar ofwel antwoorden met hetzelfde protocol als een probe, of ICMP protocol unreachable berichten die aangeven dat het gegeven protocol niet wordt ondersteund op de bestemmingshost. Elk type reactie betekent dat de doelhost in leven is.

--disable-arp-ping(Geen ARP of ND Ping)

Nmap doet normaal gesproken ARP of IPv6 Neighbor Discovery (ND) detectie van lokaal verbonden ethernet hosts, zelfs als andere host discovery opties zoals -Pn of -PE worden gebruikt. Om dit impliciete gedrag uit te schakelen, gebruikt u de optie --disable-arp-ping.

Het standaard gedrag is normaal gesproken sneller, maar deze optie is nuttig op netwerken die gebruik maken van proxy ARP, waarbij een router speculatief antwoordt op alle ARP verzoeken, waardoor elk doelwit up lijkt te zijn volgens de ARP scan.

--discovery-ignore-rst

In sommige gevallen kunnen firewalls TCP reset (RST) antwoorden spoofen als reactie op probes naar onbezette of niet-toegestane adressen. Aangezien Nmap gewoonlijk RST antwoorden beschouwt als bewijs dat het doelwit actief is, kan dit leiden tot verspilde tijd bij het scannen van doelen die er niet zijn. Het gebruik van --discovery-ignore-rst zal voorkomen dat Nmap deze antwoorden in overweging neemt tijdens host discovery. Mogelijk moet u extra host discovery opties selecteren om er zeker van te zijn dat u in dit geval geen targets mist.

--traceroute(Traceer pad naar host)

Traceroutes worden na de scan uitgevoerd met behulp van informatie uit de scanresultaten om de poort en het protocol te bepalen die het meest waarschijnlijk het doelwit bereiken. Het werkt met alle scan types behalve connect scans (-sT) en idle scans (-sI). Alle traces gebruiken Nmap’s dynamische timing model en worden parallel uitgevoerd.

Traceroute werkt door het verzenden van pakketten met een lage TTL (time-to-live) in een poging om ICMP Time Exceeded berichten te ontlokken van tussenliggende hops tussen de scanner en de doelhost. Standaard traceroute implementaties beginnen met een TTL van 1 en verhogen de TTL tot de doelhost is bereikt. Nmap’s traceroute begint met een hoge TTL en verlaagt dan de TTL tot deze nul bereikt. Door het omgekeerd te doen kan Nmap slimme caching algoritmes gebruiken om traces over meerdere hosts te versnellen. Gemiddeld verstuurt Nmap 5-10 minder pakketten per host, afhankelijk van de netwerkomstandigheden. Als een enkel subnet wordt gescand (b.v. 192.168.0.0/24) hoeft Nmap misschien maar twee pakketten naar de meeste hosts te sturen.

-n(Geen DNS resolutie)

Vertelt Nmap om nooit omgekeerde DNS resolutie te doen op de actieve IP adressen die het vindt. Aangezien DNS traag kan zijn, zelfs met Nmap’s ingebouwde parallelle stub resolver, kan deze optie de scantijden verkorten.

-R(DNS resolutie voor alle doelwitten)

Traagt Nmap op om altijd reverse DNS resolution te doen op de IP-adressen van het doelwit. Normaal gesproken wordt reverse DNS alleen uitgevoerd tegen responsieve (online) hosts.

--resolve-all(Scan elk opgelost adres)

Als een hostnaam doel naar meer dan een adres resolveert, scan ze dan allemaal. Het standaard gedrag is om alleen het eerste opgeloste adres te scannen. Hoe dan ook, alleen adressen in de juiste adresfamilie zullen worden gescand: IPv4 standaard, IPv6 met -6.

--system-dns(Gebruik systeem DNS resolver)

Standaard zal Nmap IP adressen reverse-resolven door direct queries te sturen naar de nameservers die op uw host zijn geconfigureerd en vervolgens te luisteren naar antwoorden. Vele verzoeken (vaak tientallen) worden parallel uitgevoerd om de prestaties te verbeteren. Specificeer deze optie om in plaats daarvan uw systeemoplosser te gebruiken (één IP per keer via de getnameinfo aanroep). Dit is trager en zelden nuttig tenzij je een bug vindt in de parallelle resolver van Nmap (laat het ons weten als dat het geval is). De systeemoplosser wordt altijd gebruikt voor forward lookups (het verkrijgen van een IP adres uit een hostnaam).

--dns-servers <server1>] (Servers om te gebruiken voor reverse DNS queries)

Nmap bepaalt standaard uw DNS servers (voor rDNS resolutie) vanuit uw resolv.conf bestand (Unix) of het Register (Win32). Als alternatief kunt u deze optie gebruiken om alternatieve servers op te geven. Deze optie wordt niet gehonoreerd als u --system-dns gebruikt. Het gebruik van meerdere DNS servers is vaak sneller, vooral als u gezaghebbende servers kiest voor uw doel IP ruimte. Deze optie kan ook de stealth verbeteren, omdat uw verzoeken kunnen worden afgeketst op zo ongeveer elke recursieve DNS-server op het Internet.

Deze optie komt ook van pas bij het scannen van prive-netwerken. Soms zijn er maar een paar name servers die goede rDNS informatie geven, en je weet misschien niet eens waar ze zijn. U kunt het netwerk scannen op poort 53 (misschien met versie detectie), probeer dan Nmap lijst scans (-sL) waarbij u elke naamserver een voor een specificeert met --dns-servers totdat u er een vindt die werkt.

Deze optie wordt mogelijk niet gehonoreerd als het DNS antwoord groter is dan de grootte van een UDP pakket. In zo’n situatie zal onze DNS-oplosser zijn uiterste best doen om een antwoord uit het afgeknotte pakket te halen, en als dat niet lukt zal hij terugvallen op het gebruik van de systeemoplosser. Ook antwoorden die CNAME-aliassen bevatten, vallen terug op de systeemoplosser.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.