-sL(Skenování seznamu)

Skenování seznamu je degenerovaná forma zjišťování hostitelů, která jednoduše vypisuje jednotlivé hostitele zadané sítě (sítí), aniž by cílovým hostitelům posílala pakety. Ve výchozím nastavení Nmap stále provádí reverzní překlad DNS hostitelů, aby zjistil jejich jména. Často je překvapivé, kolik užitečných informací poskytují jednoduché názvy hostitelů. Například fw.chi je název firewallu jedné společnosti v Chicagu. Nmap na konci hlásí také celkový počet IP adres. Kontrola seznamu je dobrou kontrolou správnosti, abyste se ujistili, že máte správné IP adresy pro své cíle. Pokud jsou mezi hostiteli sportovní názvy domén, které nepoznáte, stojí za to je dále prozkoumat, abyste předešli skenování sítě nesprávné společnosti.

Jelikož jde o prosté vypsání seznamu cílových hostitelů, nelze s ním kombinovat možnosti pro funkce vyšší úrovně, jako je skenování portů, detekce operačních systémů nebo zjišťování hostitelů. Pokud chcete zakázat zjišťování hostitelů a přitom stále provádět tyto funkce vyšší úrovně, přečtěte si o volbě -Pn (přeskočit zjišťování hostitelů).

-sn(Žádné zjišťování portů)

Tato volba říká programu Nmap, aby po zjišťování hostitelů neprováděl zjišťování portů a vypsal pouze dostupné hostitele, kteří odpověděli na sondy zjišťování hostitelů. Často se tomu říká „ping scan“, ale můžete také požádat o spuštění skriptů traceroute a NSE hostitele. Tento postup je ve výchozím nastavení o krok invazivnější než skenování seznamu a lze jej často použít ke stejným účelům. Umožňuje lehký průzkum cílové sítě, aniž by vzbudil velkou pozornost. Zjištění, kolik hostitelů je v provozu, je pro útočníky cennější než seznam, který poskytuje list scan každé jednotlivé IP adresy a názvu hostitele.

Pro správce systémů je tato možnost také často cenná. Lze ji snadno použít k počítání dostupných počítačů v síti nebo ke sledování dostupnosti serverů. Tento postup se často nazývá ping sweep a je spolehlivější než ping na vysílací adresu, protože mnoho hostitelů na dotazy na vysílání neodpovídá.

Výchozí zjišťování hostitele prováděné pomocí -sn se ve výchozím nastavení skládá z požadavku ICMP echo, TCP SYN na port 443, TCP ACK na port 80 a požadavku ICMP timestamp. Při provedení neprivilegovaným uživatelem jsou na porty 80 a 443 na cíli odeslány pouze pakety SYN (pomocí volání connect). Když se privilegovaný uživatel pokouší skenovat cíle v místní ethernetové síti, použijí se požadavky ARP, pokud nebyl zadán --send-ip. Volbu -sn lze pro větší flexibilitu kombinovat s libovolným typem zjišťovací sondy (volby -P*). Pokud je použita některá z těchto možností typu sondy a čísla portu, jsou výchozí sondy přepsány. Pokud jsou mezi zdrojovým hostitelem se spuštěným programem Nmap a cílovou sítí přísné firewally, doporučuje se použití těchto pokročilých technik. Jinak by mohlo dojít k přehlédnutí hostitelů, když firewall zahodí sondy nebo jejich odpovědi.

V předchozích verzích Nmapu byla volba -sn známá jako -sP.

-Pn(No ping)

Tato volba zcela přeskočí fázi zjišťování hostitele. Za normálních okolností používá Nmap tuto fázi k určení aktivních strojů pro intenzivnější skenování a ke zjištění rychlosti sítě. Ve výchozím nastavení Nmap provádí pouze náročné sondování, jako je skenování portů, detekce verzí nebo detekce operačního systému, proti hostitelům, kteří jsou nalezeni jako aktivní. Zakázání zjišťování hostitelů pomocí -Pn způsobí, že se Nmap pokusí provést požadované funkce skenování proti každé zadané cílové IP adrese. Pokud je tedy na příkazovém řádku zadána síť o velikosti /16, prověří se všech 65 536 IP adres. Řádné zjišťování hostitelů je přeskočeno stejně jako při skenování seznamu, ale místo zastavení a vypsání seznamu cílů pokračuje Nmap v provádění požadovaných funkcí, jako by každá cílová IP adresa byla aktivní. Jsou použity výchozí časové parametry, což může mít za následek pomalejší skenování. Chcete-li přeskočit zjišťování hostitelů a skenování portů a zároveň umožnit spuštění NSE, použijte společně dvě volby -Pn -sn.

U strojů v místní ethernetové síti bude stále prováděno skenování ARP (pokud není zadána --disable-arp-ping nebo --send-ip), protože Nmap potřebuje k dalšímu skenování cílových hostitelů adresy MAC. V předchozích verzích programu Nmap byla -Pn -P0 a -PN.

-PS <port list>(TCP SYN Ping)

Tato volba odešle prázdný paket TCP s nastaveným příznakem SYN. Výchozí cílový port je 80 (konfigurovatelný v době kompilace změnou DEFAULT_TCP_PROBE_PORT_SPEC v nmap.h). Jako parametr lze zadat alternativní porty. Syntaxe je stejná jako u -p s tím rozdílem, že nejsou povoleny specifikátory typu portu jako T:. Příklady jsou -PS22 a -PS22-25,80,113,1050,35000. Všimněte si, že mezi -PS a seznamem portů nesmí být mezera. Pokud je zadáno více sond, budou odesílány paralelně.

Příznak SYN naznačuje vzdálenému systému, že se pokoušíte navázat spojení. Za normálních okolností bude cílový port uzavřen a zpět bude odeslán paket RST (reset). Pokud se stane, že je port otevřený, cíl provede druhý krok třícestného handshake TCP tím, že odpoví paketem SYN/ACK TCP. Stroj se spuštěnou mapou Nmap pak přeruší vznikající spojení tím, že odpoví paketem RST namísto odeslání paketu ACK, který by dokončil třícestný handshake a navázal plné spojení. Paket RST odesílá jádro počítače se spuštěnou mapou Nmap v reakci na neočekávaný SYN/ACK, nikoli samotná mapa Nmap.

Mapě je jedno, zda je port otevřený nebo uzavřený. Buď dříve diskutovaná odpověď RST, nebo SYN/ACK sdělují Nmapu, že hostitel je dostupný a reaguje.

Na unixových boxech může obecně odesílat a přijímat surové pakety TCP pouze privilegovaný uživatel root. U neprivilegovaných uživatelů je automaticky použito řešení, při kterém je proti každému cílovému portu iniciováno systémové volání connect. To má za následek odeslání paketu SYN cílovému hostiteli ve snaze navázat spojení. Pokud se connect vrátí s rychlým úspěchem nebo selháním ECONNREFUSED, musel základní zásobník TCP přijmout SYN/ACK nebo RST a hostitel je označen jako dostupný. Pokud pokus o spojení zůstane viset až do dosažení časového limitu, je hostitel označen jako nefunkční.

-PA <port list>(TCP ACK Ping)

Ping TCP ACK je dosti podobný právě diskutovanému pingu SYN. Rozdíl je, jak jste pravděpodobně uhodli, v tom, že místo příznaku SYN je nastaven příznak TCP ACK. Takový paket ACK údajně potvrzuje data přes navázané spojení TCP, ale žádné takové spojení neexistuje. Vzdálení hostitelé by tedy měli vždy odpovědět paketem RST, čímž prozradí svou existenci.

Volba -PA používá stejný výchozí port jako sonda SYN (80) a může také přijmout seznam cílových portů ve stejném formátu. Pokud se o to pokusí neprivilegovaný uživatel, použije se dříve popsané řešení connect. Toto řešení je nedokonalé, protože connect ve skutečnosti posílá spíše paket SYN než ACK.

Důvodem pro nabídku sond ping SYN i ACK je maximalizovat šance na obejití firewallů. Mnoho správců konfiguruje směrovače a jiné jednoduché firewally tak, aby blokovaly příchozí pakety SYN s výjimkou těch, které jsou určeny pro veřejné služby, jako jsou firemní webové stránky nebo poštovní server. Tím zabrání ostatním příchozím spojením do organizace a zároveň umožní uživatelům nerušeně navazovat odchozí spojení s Internetem. Tento nestatečný přístup zabírá málo prostředků na bráně firewall/směrovači a je široce podporován hardwarovými a softwarovými filtry. Linuxový software brány firewall Netfilter/iptables nabízí pohodlnou volbu --syn pro implementaci tohoto bezstavového přístupu. Pokud jsou zavedena bezstavová pravidla brány firewall, jako je toto, je pravděpodobné, že sondy SYN ping (-PS) budou při odesílání na uzavřené cílové porty blokovány. V takových případech ACK sonda zazáří, protože prochází přímo těmito pravidly.

Další běžný typ firewallu používá stavová pravidla, která zahazují neočekávané pakety. Tato funkce se zpočátku vyskytovala hlavně u špičkových firewallů, i když v průběhu let se stala mnohem běžnější. Linuxový systém Netfilter/iptables ji podporuje prostřednictvím volby --state, která kategorizuje pakety na základě stavu připojení. Sonda SYN má proti takovému systému větší šanci na úspěch, protože neočekávané pakety ACK jsou obecně rozpoznány jako falešné a zahozeny. Řešením této svízelné situace je odesílání sond SYN i ACK zadáním -PS a -PA.

-PU <port list>(UDP Ping)

Další možností zjišťování hostitelů je UDP ping, který odesílá pakety UDP na dané porty. Pro většinu portů bude paket prázdný, ačkoli některé používají užitečné zatížení specifické pro daný protokol, které s větší pravděpodobností vyvolá odpověď. viz část „UDP užitečné zatížení: –data,--data-string a --data-length.

Seznam portů má stejný formát jako u dříve diskutovaných voleb -PS a -PA. Pokud nejsou zadány žádné porty, je výchozí hodnota 40125. Toto výchozí nastavení lze nakonfigurovat při kompilaci změnou DEFAULT_UDP_PROBE_PORT_SPEC v nmap.h. Ve výchozím nastavení je použit velmi neobvyklý port, protože odesílání na otevřené porty je pro tento konkrétní typ skenování často nežádoucí.

Pokud sonda UDP narazí na uzavřený port na cílovém počítači, měla by na oplátku vyvolat paket ICMP port unreachable. To pro Nmap znamená, že je stroj spuštěn a dostupný. Mnoho dalších typů chyb ICMP, například host/network unreachables nebo TTL exceeded, svědčí o nefunkčním nebo nedostupném hostiteli. Tímto způsobem je také interpretována nedostatečná odpověď. Pokud je dosaženo otevřeného portu, většina služeb jednoduše ignoruje prázdný paket a nevrátí žádnou odpověď. Proto je výchozím portem sondy 40125, u kterého je velmi nepravděpodobné, že by byl používán. Několik služeb, například protokol Character Generator (chargen), odpoví na prázdný paket UDP, a tím prozradí Nmapu, že je stroj dostupný.

Primární výhodou tohoto typu skenování je, že obchází firewally a filtry, které kontrolují pouze TCP. Kdysi jsem například vlastnil bezdrátový širokopásmový směrovač Linksys BEFW11S4. Vnější rozhraní tohoto zařízení ve výchozím nastavení filtrovalo všechny porty TCP, ale sondy UDP by přesto vyvolaly zprávy o nedosažitelnosti portů, a tím by zařízení prozradily.

-PY <port list>(SCTP INIT Ping)

Tato možnost odesílá paket SCTP obsahující minimální část INIT. Výchozí cílový port je 80 (konfigurovatelný v době kompilace změnou DEFAULT_SCTP_PROBE_PORT_SPEC v nmap.h). Jako parametr lze zadat alternativní porty. Syntaxe je stejná jako u parametru -p s tím rozdílem, že nejsou povoleny specifikátory typu portu jako S:. Příklady jsou -PY22 a -PY22,80,179,5060. Všimněte si, že mezi -PY a seznamem portů nesmí být mezera. Pokud je zadáno více sond, budou odesílány paralelně.

Chunk INIT naznačuje vzdálenému systému, že se pokoušíte vytvořit asociaci. Za normálních okolností bude cílový port uzavřen a zpět bude odeslán chunk ABORT. Pokud je port náhodou otevřený, cíl provede druhý krok čtyřcestného handshake SCTP tím, že odpoví chunkem INIT-ACK. Pokud má počítač se spuštěnou mapou Nmap funkční zásobník SCTP, zruší vznikající asociaci tím, že odpoví řetězcem ABORT, místo aby poslal řetězec COOKIE-ECHO, který by byl dalším krokem čtyřcestného handhake. Paket ABORT odesílá jádro počítače, na kterém běží Nmap, v reakci na neočekávaný INIT-ACK, nikoli samotný Nmap.

Nmap se nestará o to, zda je port otevřený nebo uzavřený. Buď odpověď ABORT, nebo dříve diskutovaný INIT-ACK sdělují Nmapu, že hostitel je dostupný a reaguje.

Na unixových boxech může obecně odesílat a přijímat surové pakety SCTP pouze privilegovaný uživatel root. Použití SCTP INIT Pingu není v současné době pro neprivilegované uživatele možné.

-PE;-PP;-PM(typy pingů ICMP)

Kromě neobvyklých typů zjišťování hostitelů TCP, UDP a SCTP, o kterých byla řeč dříve, může Nmap odesílat standardní pakety odesílané všudypřítomným programem ping. Nmap posílá na cílové IP adresy pakety ICMP typu 8 (echo request) a očekává na oplátku od dostupných hostitelů typ 0 (echo reply). Bohužel pro průzkumníky sítí mnoho hostitelů a firewallů nyní tyto pakety blokuje, místo aby odpovídaly, jak požaduje RFC 1122. Z tohoto důvodu je skenování pouze pomocí protokolu ICMP zřídkakdy dostatečně spolehlivé proti neznámým cílům v Internetu. Pro správce systému monitorující vnitřní síť však mohou být praktickým a efektivním přístupem. Chcete-li toto chování echo requestu povolit, použijte volbu -PE.

Ačkoli echo request je standardní dotaz ICMP ping, Nmap tím nekončí. Standardy ICMP (RFC 792 a RFC 950 ) také specifikují pakety požadavku na časové razítko, požadavku na informace a požadavku na masku adresy jako kódy 13, 15 a 17 v uvedeném pořadí. Ačkoli zdánlivým účelem těchto dotazů je zjistit informace, jako jsou masky adres a aktuální čas, lze je snadno použít pro zjišťování hostitelů. Systém, který odpoví, je spuštěn a dostupný. Nmap v současné době neimplementuje pakety s požadavky na informace, protože nejsou široce podporovány. RFC 1122 trvá na tom, že „hostitel NEMUSÍ tyto zprávy implementovat“. Dotazy na časové razítko a masku adresy lze odesílat pomocí voleb -PP, respektive -PM. Odpověď na časové razítko (kód ICMP 14) nebo odpověď na masku adresy (kód 18) prozradí, že je hostitel dostupný. Tyto dva dotazy mohou být cenné v případech, kdy správci výslovně blokují pakety echo request a přitom zapomínají, že ke stejnému účelu lze použít i jiné dotazy ICMP.

-PO <protocol list>(IP Protocol Ping)

Jednou z novějších možností zjišťování hostitele je ping protokolu IP, který odesílá pakety IP s nastaveným číslem protokolu v záhlaví IP. Seznam protokolů má stejný formát jako seznamy portů v dříve diskutovaných možnostech zjišťování hostitelů TCP, UDP a SCTP. Pokud nejsou zadány žádné protokoly, je výchozím nastavením odeslání více paketů IP pro protokoly ICMP (protokol 1), IGMP (protokol 2) a IP-in-IP (protokol 4). Výchozí protokoly lze nakonfigurovat při kompilaci změnou DEFAULT_PROTO_PROBE_PORT_SPEC v nmap.h. Všimněte si, že pro protokoly ICMP, IGMP, TCP (protokol 6), UDP (protokol 17) a SCTP (protokol 132) jsou pakety odesílány se správnými hlavičkami protokolů, zatímco ostatní protokoly jsou odesílány bez dalších dat nad rámec hlavičky IP (pokud není zadána některá z možností --data, --data-string nebo --data-length).

Tato metoda zjišťování hostitele hledá buď odpovědi používající stejný protokol jako sonda, nebo zprávy ICMP protocol unreachable, které znamenají, že daný protokol není na cílovém hostiteli podporován. Oba typy odpovědí znamenají, že cílový hostitel žije.

--disable-arp-ping(No ARP or ND Ping)

Nmap normálně provádí zjišťování ARP nebo IPv6 Neighbor Discovery (ND) lokálně připojených ethernetových hostitelů, i když jsou použity jiné možnosti zjišťování hostitelů, například -Pn nebo -PE. Chcete-li toto implicitní chování zakázat, použijte volbu --disable-arp-ping.

Výchozí chování je obvykle rychlejší, ale tato možnost je užitečná v sítích používajících proxy ARP, ve kterých směrovač spekulativně odpovídá na všechny požadavky ARP, takže každý cíl vypadá, že je podle skenování ARP v provozu.

--discovery-ignore-rst

V některých případech mohou firewally podvrhnout odpovědi TCP reset (RST) v reakci na sondy na neobsazené nebo zakázané adresy. Protože Nmap obvykle považuje odpovědi RST za důkaz, že cíl je v provozu, může to vést ke ztrátě času při skenování cílů, které tam nejsou. Použití --discovery-ignore-rst zabrání tomu, aby Nmap tyto odpovědi při zjišťování hostitele bral v úvahu. Možná bude nutné zvolit další možnosti zjišťování hostitele, abyste v tomto případě nezmeškali cíle.

--traceroute(Trace path to host)

Traceroutes se provádí po skenování s využitím informací z výsledků skenování k určení portu a protokolu, který s největší pravděpodobností dosáhne cíle. Funguje u všech typů skenování kromě skenování připojení (-sT) a skenování v nečinnosti (-sI). Všechna sledování používají dynamický časový model Nmapu a jsou prováděna paralelně.

Traceroute funguje tak, že odesílá pakety s nízkým TTL (time-to-live) ve snaze vyvolat zprávy ICMP Time Exceeded (překročení času) z mezilehlých hopů mezi skenerem a cílovým hostitelem. Standardní implementace traceroute začínají s TTL 1 a zvyšují TTL, dokud není dosaženo cílového hostitele. Nmapův traceroute začíná s vysokým TTL a pak snižuje TTL, dokud nedosáhne nuly. Zpětný postup umožňuje Nmapu používat chytré algoritmy ukládání do mezipaměti, které urychlují trasování přes více hostitelů. Nmap odesílá v průměru o 5-10 paketů méně na jednoho hostitele, v závislosti na podmínkách sítě. Pokud se skenuje jediná podsíť (tj. 192.168.0.0/24), může Nmap většině hostitelů poslat pouze dva pakety.

-n(No DNS resolution)

Říká Nmapu, aby nikdy neprováděl reverzní překlad DNS na nalezených aktivních IP adresách. Protože DNS může být pomalé i s vestavěným paralelním stub resolverem Nmapu, může tato volba zkrátit dobu skenování.

-R(DNS resolution for all targets)

Říká Nmapu, aby vždy provedl reverzní DNS resolution na cílových IP adresách. Obvykle se reverzní DNS provádí pouze proti citlivým (online) hostitelům.

--resolve-all(Skenovat každou resolvovanou adresu)

Pokud cíl hostitelského jména resolvuje více než jednu adresu, skenujte je všechny. Výchozí chování je skenovat pouze první resolvovanou adresu. Bez ohledu na to budou skenovány pouze adresy v příslušné rodině adres: IPv4 ve výchozím nastavení, IPv6 s -6.

--system-dns(Použít systémový DNS resolver)

Ve výchozím nastavení provádí Nmap reverzní resolvování IP adres odesláním dotazů přímo na jmenné servery nakonfigurované na vašem hostiteli a následným nasloucháním na odpovědi. Mnoho dotazů (často desítky) je prováděno paralelně, aby se zlepšil výkon. Zadáním této možnosti použijete místo toho systémový překladač (po jedné IP adrese prostřednictvím volání getnameinfo). Tento postup je pomalejší a málokdy je užitečný, pokud nenajdete chybu v paralelním resolveru Nmap (pokud ji najdete, dejte nám prosím vědět). Systémový resolver se vždy používá pro dopředné vyhledávání (získání IP adresy z názvu hostitele).

--dns-servers <server1>] (Servery používané pro reverzní dotazy DNS)

Ve výchozím nastavení určuje Nmap servery DNS (pro překlad rDNS) ze souboru resolv.conf (Unix) nebo z registru (Win32). Případně můžete pomocí této možnosti zadat alternativní servery. Tato možnost není respektována, pokud používáte --system-dns. Použití více serverů DNS je často rychlejší, zejména pokud vyberete autoritativní servery pro cílový IP prostor. Tato volba může také zlepšit utajení, protože vaše požadavky mohou být odraženy od téměř jakéhokoli rekurzivního serveru DNS na internetu.

Tato volba se také hodí při skenování soukromých sítí. Někdy poskytuje správné informace rDNS jen několik jmenných serverů a vy ani nemusíte vědět, kde se nacházejí. Můžete prohledat síť na portu 53 (třeba s detekcí verze) a pak zkusit skenování seznamu Nmap (-sL) se zadáním jednotlivých jmenných serverů postupně pomocí --dns-servers, dokud nenajdete jeden, který funguje.

Tato možnost nemusí být respektována, pokud odpověď DNS překročí velikost paketu UDP. V takové situaci náš DNS resolver vynaloží maximální úsilí na získání odpovědi ze zkráceného paketu, a pokud nebude úspěšný, vrátí se k použití systémového resolveru. Také odpovědi, které obsahují aliasy CNAME, se vrátí k systémovému resolveru.

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.