NÉV
nmap - Hálózat feltérképező és biztonsági/kapu letapogató eszközÁTTEKINTÉS
nmap
[Letapogatási típus...]
[Beállítások] {
cél meghatározása}
LEÍRÁS
Az Nmap („Network Mapper”) egy hálózatfelderítésre és biztonsági ellenőrzésre használható, nyílt forráskódú eszköz. Nagy hálózatok gyors feltérképezésére tervezték, ennek ellenére jól használható egyetlen számítógép ellenőrzésére is. Az Nmap egy új módon használja a nyers IP csomagokat annak kiderítésére, hogy mely számítógépek érhetők el a hálózaton, ezek a számítógépek milyen szolgáltatásokat (alkalmazás neve és változata) kínálnak fel, milyen operációs rendszert futtatnak (és annak melyik változatát), milyen csomagszűrőt/tűzfalat használnak, valamint számtalan egyéb jellemzőre. Noha az Nmap programot általában biztonsági ellenőrzésekre használják, sok hálózati rendszergazda hasznosnak fogja találni a napi rutinfeladatokban is, mint például a hálózati leltár elkészítésében, a szolgáltatások frissítésének ütemezésében, vagy egy számítógép/szolgáltatás üzemidejének meghatározásában. Az Nmap kimenete egy lista a vizsgált célpontokról, mindegyikről kiegészítő információkkal, melyek részletessége a beállított paraméterektől függ. Ezek közül az információk közül a legfontosabb az „érdekes kapuk táblázata”. Ez a táblázat tartalmazza a kapuszámot és a protokollt, a szolgáltatás nevét és az állapotot. Az állapot lehet nyitott (open), szűrt (filtered), zárt (closed), vagy nem szűrt (unfiltered). A nyitott (open) azt jelenti, hogy a célállomáson egy alkalmazás ezen a kapun kapcsolódásra/csomagokra vár. A szűrt (filtered) azt jelenti, hogy egy tűzfal, szűrő vagy egyéb hálózati akadály lezárja a kaput, így az Nmap nem tudja megmondani, hogy ez nyitott (open) vagy zárt (closed). A zárt (closed) kapukon nincs várakozó alkalmazás, ennek ellenére ezek bármikor nyitva lehetnek. A kapuk akkor kerülnek a szűretlen (unfiltered) kategóriába, ha válaszolnak ugyan az Nmap próbáira, de az Nmap nem tudja meghatározni, hogy nyitottak (open) vagy zártak (closed). Az Nmap a nyitott|szűrt (open|filtered) és a zárt|szűrt (closed|filtered) kombinációt használja, amikor nem tudja meghatározni, hogy a kapu melyik állapotban van. A kaputáblázat tartalmazhatja a figyelő program nevét és változatszámát is, amennyiben a paraméterek között kérte ennek felderítését. Amikor IP protokoll ellenőrzést kér ( -sO), az Nmap a kapuk listája helyett a támogatott IP protokollokról közöl információt. Az érdekes kapuk táblázatának kiegészítéseként az Nmap további információkat tud szolgáltatni a célállomásról, beleértve a fordított DNS neveket, feltételezéseket az operációs rendszerről, az eszközök típusa és a MAC címek. Az 1. példa - Egy jellegzetes Nmap letapogatás feliratú ábrán egy tipikus Nmap letapogatás látható. Ebben a példában csak a -A paramétert használtuk az operációs rendszer és a szolgáltatások érzékelésére, a parancsfájl (script) alapú ellenőrzésre és az útvonal feltárására; a -T4 paramétert a gyorsabb végrehajtásra; végül pedig a két célállomás nevét. 1. példa - Egy jellegzetes Nmap letapogatás# nmap -A -T4 scanme.nmap.org playground Starting nmap ( https://nmap.org ) Interesting ports on scanme.nmap.org (205.217.153.62): (The 1663 ports scanned but not shown below are in state: filtered) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 3.9p1 (protocol 1.99) 53/tcp open domain 70/tcp closed gopher 80/tcp open http Apache httpd 2.0.52 ((Fedora)) 113/tcp closed auth Device type: general purpose Running: Linux 2.4.X|2.5.X|2.6.X OS details: Linux 2.4.7 - 2.6.11, Linux 2.6.0 - 2.6.11 Uptime 33.908 days (since Thu Jul 21 03:38:03 2005) Interesting ports on playground.nmap.org (192.168.0.40): (The 1659 ports scanned but not shown below are in state: closed) PORT STATE SERVICE VERSION 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn 389/tcp open ldap? 445/tcp open microsoft-ds Microsoft Windows XP microsoft-ds 1002/tcp open windows-icfw? 1025/tcp open msrpc Microsoft Windows RPC 1720/tcp open H.323/Q.931 CompTek AquaGateKeeper 5800/tcp open vnc-http RealVNC 4.0 (Resolution 400x250; VNC port: 5900) 5900/tcp open vnc VNC (protocol 3.8) MAC Address: 00:A0:CC:63:85:4B (Lite-on Communications) Device type: general purpose Running: Microsoft Windows NT/2K/XP OS details: Microsoft Windows XP Pro RC1+ through final release Service Info: OSs: Windows, Windows XP Nmap finished: 2 IP addresses (2 hosts up) scanned in 88.392 seconds
MEGJEGYZÉS A FORDÍTÁSHOZ
Az Nmap Referencia Útmutató jelen magyar változatát Mlatilik Zsolt készítette a 6184-es eredeti angol változat[1] alapján <[email protected]>. A fordítást annak reményében készítettem, hogy megkönnyítse a magyar nyelvű felhasználók számára a program használatát. Nem tudom garantálni, hogy ez a leírás olyan teljes vagy naprakész, mint az eredeti angol változat. Ez a fordítás a Creative Commons Attribution License[2] alapján szabadon módosítható és terjeszthető.PARAMÉTER ÖSSZEFOGLALÓ
Ez az összefoglaló akkor jelenik meg, amikor az Nmap programot paraméterek nélkül indítjuk el. A legfrissebb változata a https://nmap.org/data/nmap.usage.txt címen érhető el. Ez a lista segít emlékezni a legáltalánosabb paraméterekre, de nem helyettesíti az útmutatóban található részletes dokumentációt. Néhány rejtett paraméter szintén nem található meg ebben a listában.Nmap 4.53 ( https://nmap.org ) Használat: nmap [Letapogatási típus(ok)] [Paraméterek] {Célpont meghatározások} CÉLPONT MEGHATÁROZÁSOK: Átadhatók állomásnevek, IP címek, hálózatok, stb. Pl.: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254 -iL <fájlnév>: A cél állomásnevek/hálózatok listája -iR <állomások száma>: Véletlen célpontok kiválasztása --exclude <állomás1[,állomás2][,állomás3],...>: Állomások/hálózatok kihagyása --excludefile <fájlnév>: A kivételek listája ÁLLOMÁS FELDERÍTÉSE: -sL: Lista letapogatás - egyszerűen kilistázza a letapogatni kívánt célpontokat -sP: Visszhang letapogatás - meghatározza, hogy egy állomás elérhető-e a hálózaton -PN: Minden állomást elérhetőnek tekint -- átugorja az állomás felderítését -PS/PA/PU [kapulista]: TCP SYN/ACK or UDP felderítés a megadott kapukon -PE/PP/PM: Felderítési próbák ICMP visszhang, időbélyeg és alhálózati maszk kéréssel -PO [protocol lista]: IP protokoll visszhang -n/-R: Soha nem végez DNS feloldást/Mindig végez DNS feloldást [alapérték: esetenként] --dns-servers <kiszolg1[,kiszolg2],...>: Saját DNS kiszolgáló megadása --system-dns: Az operációs rendszer DNS felodóját használja LETAPOGATÁSI TÍPUSOK: -sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon letapogatás -sU: UDP letapogatás -sN/sF/sX: TCP Null, FIN, and Xmas letapogatások --scanflags <jelzőbitek>: A TCP jelzőbitek testreszabása -sI <zombi állomás[:probakapu]>: Üresjárati letapogatás -sO: IP protokoll letapogatás -b <FTP átjátszó állomás>: FTP ugráló letapogatás --traceroute: Útvonal követése minden állomáshoz --reason: Megjeleníti az okot, amiért egy kapu egy adott állapotban van KAPU MEGHATÁROZÁS ÉS LETAPOGATÁSI SORREND: -p <kaputartomány(ok)>: Csak a megadott kapuk letapogatása Pl.: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080 -F: Gyors mód - Az alapértelmezettnél kevesebb kapu letapogatása -r: Kapuk letapogatása sorrendben - nem véletlenszerűen --top-ports <szám>: Csak a <szám> darab leggyakoribb kapu letapogatása --port-ratio <arány>: Az <arány>-nál gyakoribb kapuk letapogatása SZOLGÁLTATÁS/VÁLTOZAT ÉRZÉKELÉS: -sV: A nyitott kapuk próbája a szolgáltatás/változat információ meghatározására --version-intensity <szint>: Beállítás 0 (enyhe) és 9 (az összes proba lefuttatása) között lehetséges --version-light: Csak a legvalószínűbb próbák lefuttatása (2-es intenzitás) --version-all: Minden egyes próba lefuttatása (9-es intenzitás) --version-trace: A letapogatási műveletek részletes megjelenítése (hibakereséshez) PARANCSFÁJL ALAPÚ LETAPOGATÁS: -sC: megfelel a --script=safe paraméternek,tolakodó --script=<Lua parancsfájlok>: A <Lua parancsfájlok paraméter> mappák, parancsfájlok és parancsfájl kategóriák vesszővel elválasztott listája --script-args=<n1=v1,[n2=v2,...]>: paraméterek átadása a parancsfájl(ok)nak --script-trace: Az összes elküldött és fogadott adat megjelenítése --script-updatedb: A parancsfájl adatbázis frissítése. OPERÁCIÓS RENDSZER FELDERÍTÉSE: -O: Engedélyezi az operációs rendszer felderítését --osscan-limit: Az operációs rendszer felderítését csak az ígéretes célpontokra korlátozza --osscan-guess: Agresszívebb operációs rendszer felderítés IDŐZÍTÉS ÉS TELJESÍTMÉNY: Azoknál a paramétereknél, ahol <idő> meghatározás szerepel, az alapértelmezett egység a milliszekundum, kivéve ha az értékhez hozzáfűzi az 's' (másodperc), 'm' (perc), vagy 'h' (óra) módosítót (pl. 30m). -T[0-5]: Időzítési sablon megadása (a nagyobb érték a gyorsabb) --min-hostgroup/max-hostgroup <méret>: A párhuzamosan letapogatható állomások csoportmérete --min-parallelism/max-parallelism <szám>: A párhuzamosan végezhető próbák száma --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <time>: Az egyes próbák időzítésének beállítása. --max-retries <próbák>: Limitálja a kapuletapogatások ismétlését. --host-timeout <idő>: Ennyi idő után abbahagyja az állomás letapogatását --scan-delay/--max-scan-delay <idő>: Az egyes próbák közti idő beállítása TŰZFAL/BEHATOLÁS ÉRZÉKELŐ MEGKERÜLÉS ÉS BECSAPÁS: -f; --mtu <érték>: csomagok tördelése (vagy küldés a megadott MTU értékkel) -D <csali1,csali2[,ME],...>: A letapogatás leplezése csalikkal -S <IP cím>: Forráscím hamisítása -e <csatoló>: Megadott hálózati csatoló használata -g/--source-port <kapuszám>: Megadott kapuszám használata --data-length <szám>: Véletleszerű adat hozzáfűzése az elküldött csomagokhoz --ip-options <paraméterek>: Csomagok küldése meghatározott IP paraméterekkel --ttl <érték>: Az IP csomag time-to-live értékének beállítása --spoof-mac <mac cím/előtag/gyártó neve>: A saját MAC cím hamisítása --badsum: Csomagok küldése hamis TCP/UDP ellenőrző összeggel KIMENET: -oN/-oX/-oS/-oG <fájlnév>: A letapogatás eredményének mentése fájlba normál, XML, s|<rIpt kIddi3, vagy grepelhető formátumban, a megadott fájlnévvel. -oA <bázisnév>: Mentés fájlba a három főbb formátumban egyszerre -v: Bőbeszédű üzemmód beállítása (kétszer használva még több információt ad) -d[szint]: Hibakeresési szint beállítása vagy növelése (maximum 9-ig értelmes) --open: Csak a nyitott (vagy valószínűleg nyitott) kapukat mutatja --packet-trace: Az összes elküldött és fogadott csomagot megjeleníti --iflist: Megjeleníti az állomás hálózati csatolóit és az útvonalakat (hibakereséshez) --log-errors: Hibák/figyelmeztetések rögzítése normál formátumú kimenő fájlba --append-output: Felülírás helyett hozzáfűzi az eredményeket a létező kimeneti fájlhoz --resume <fájlnév>: Megszakított letapogatás folytatása --stylesheet <útvonal/URL>: XSL stíluslap az XML kimenet HTML formátumúra alakításához --webxml: Referencia stíluslap az Insecure.Org weboldalról a hordozhatóbb XML dokumentumokért --no-stylesheet: Nem rendel XSL stíluslapot az XML kimenethez VEGYES: -6: Engedélyezi az IPv6 letapogatást -A: Engedélyezi az operációs rendszer és a változat érzékelését, a parancsfájl alapú letapogatást és az útvonalkövetést --datadir <mappanév>: Saját Nmap adatfájl helyének megadása --send-eth/--send-ip: Adatküldés nyers ethernet keretek vagy IP csomagok használatával --privileged: Feltételezi, hogy a felhasználó teljes jogosultsági szinttel rendelkezik --unprivileged: Feltételezi, hogy a felhasználónak nincs jogosultsága nyers socketek használatára -V: Az Nmap változat kiírása -h: Ennek a rövid összefoglalónak a megjelenítése. PÉLDÁK: nmap -v -A scanme.nmap.org nmap -v -sP 192.168.0.0/16 10.0.0.0/8 nmap -v -iR 10000 -PN -p 80 NÉZD MEG A MAN OLDALAKAT A TOVÁBBI PARAMÉTEREKHEZ, LEÍRÁSOKHOZ ÉS PÉLDÁKHOZ
A CÉLPONT MEGHATÁROZÁSA
Az Nmap parancssorban mindent, ami nem paraméter (vagy paraméter kiegészítés) célpont meghatározásként értelmez. Célpont meghatározása legegyszerűbben IP cím vagy állomásnév megadásával lehetséges. Néha szükség lehet szomszédos állomások teljes hálózatának letapogatására. Ennek érdekében az Nmap támogatja a CIDR stílusú címzést. Hozzáfűzheti aA célpontok kiválasztása
a fájlnév által meghatározott
fájlból. Nagyobb mennyiségű célpont
megadása a parancssorban eléggé kényelmetlen, de
mindennapos feladat. Például az Ön DHCP
kiszolgálója nyilvántart 10,000 aktuális klienst,
melyeket Ön mind le akar tapogatni. Vagy például le
akarja tapogatni a teljes IP tartományt, kivéve a
nyilvántartott címeket, hogy megtalálja azokat az
állomásokat, amelyek érvénytelen statikus IP
címet használnak. Egyszerűen generálja le a
letapogatni kívánt állomások
listáját és adja át a fájlnevet a
-iL paraméteren keresztül az Nmap részére.
A bejegyzések minden olyan formátumban szerepelhetnek, melyet az
Nmap a parancssorán keresztül is elfogad (IP cím,
állomásnév, CIDR, IPv6 vagy oktett tartomány). A
bejegyzések elválasztására használhat a
szóköz, a tabulátor, vagy írhat minden
bejegyzést új sorba. Ha fájlnévként az
elválasztójelet (-) adja meg, akkor az Nmap a célpontok
adatait a standard bemenetről veszi át.
-iR <állomások száma> (Véletlen
célpontok kiválasztása)
A teljes Internetet felölelő
megfigyeléseknél és más kutatásoknál
szükség lehet véletlenszerű célpontok
kiválasztására. Az állomások
száma paraméterrel meghatározhatja, hogy az Nmap
hány IP címet generáljon. A nemkívánatos IP
címek - privát, többesküldéses vagy ki nem
osztott tartományok - automatikusan kikerülnek a
listából. Ha a 0 paramétert adja meg, akkor a
címek generálása a végtelenségig
folytatódik. Vegye figyelembe, hogy néhány
rendszergazdát zavarja, ha a hálózatát
felhatalmazás nélkül vizsgálja és panasszal
élhet. Így ezt a paramétert kizárólag
saját felelősségére használja. Ha egy
esős délutánon unatkozik, próbálja ki ezt a
parancsot: nmap -sS -PS80 -iR 0 -p80. Így
véletlenszerűen keresgélhet eddig ismeretlen
webkiszolgálók után.
--exclude
<állomás1[,állomás2][,állomás3],...>
(Állomások/hálózatok kihagyása)
Azoknak a célpontoknak a
vesszővel elválasztott listája, melyeket ki akar hagyni a
letapogatásból, még ha tagjai is a megadott
hálózati tartománynak. Az átadott lista a
megszokott Nmap szintaxist követi, tehát szerepelhet benne
állomásnév, CIDR tartomány, oktett
tartomány stb. Ez akkor lehet hasznos, ha a letapogatni
kívánt hálózat olyan kritikus
kiszolgálókat vagy rendszereket tartalmaz, melyek nem
várt módon reagálnak a kapuletapogatásra, illetve
ha a letapogatni kívánt hálózat egy
részét más valaki üzemelteti.
--excludefile <fájlnév> (A kivételek
listája)
Ez ugyanazt a funkciót
valósítja meg, mint az --exclude paraméter, csak a
kivételeket nem a parancssorban adja át, hanem a
fájlnév által meghatározott fájlban.
A fájl formátumára ugyanazok érvényesek,
mint a célpontokat tartalmazó fájlra.
ÁLLOMÁS FELDERÍTÉSE
Bármilyen hálózati felderítési feladat legelső lépése, hogy a (sokszor) hatalmas IP tartományt leszűkítsük egy olyan listára, mely csak az aktív vagy érdekes állomásokat tartalmazza. Minden IP cím minden egyes kapujának letapogatása lassú és általában szükségtelen is. Természetesen hogy mi tesz egy állomást érdekessé, az nagymértékben függ a letapogatás céljától. Rendszergazdák érdeklődhetnek csak egy bizonyos szolgáltatást futtató állomások után, míg egy biztonsági ellenőrzésnél érdekes lehet minden berendezés, amelynek IP címe van. Egy rendszergazdának elegendő lehet egy ICMP visszhang alapú letapogatás, hogy felderítse a hálózatán lévő állomásokat, míg egy behatolási teszt során próbák ezreinek különféle csoportjait is be kell vetni egy tűzfal korlátozásainak megkerülésére. Mivel a felderítési igények teljesen különbözőek, ezért az Nmap a használt technikák testreszabásához rengeteg lehetőséget kínál. Az állomás felderítést sokan egyszerűen csak PING letapogatásnak hívják, pedig ez sokkal több, mint egyszerű ICMP visszhang kérés küldése (erre kiválóan alkalmasa a széles körben elterjedt ping eszköz. A felhasználók teljesen kihagyhatják a visszahang kérést a lista alapú letapogatással ( -sL), a visszhang tiltásával (-PN) vagy a hálózathoz kötött, több kapura kiterjedő TCP SYN/ACK, UDP, és ICMP próbák tetszőleges kombinációjával. Ezeknek a próbáknak a célja olyan válaszok kérése, melyek megmutatják, hogy egy adott IP cím aktív-e (használja-e valamely állomás, vagy hálózati eszköz). A legtöbb hálózaton egy megadott időben az IP címeknek csak egy kis része aktív. Ez különösen igaz az RFC1918 által meghatározott privát címekre, mint például a 10.0.0.0/8 hálózat. Ebbe a hálózatba 16 millió IP cím tartozik, mégis a legtöbbször olyan vállalatok használják, melyeknek nincs 1000-nél több gépük. Az állomás felderítéssel ezek az elszórt gépek megtalálhatók az IP címek tengerében. Ha nincs megadva állomás felderítési paraméter, az Nmap minden egyes célpont felé elküld egy TCP ACK csomagot a 80-as kapura, valamint elküld egy ICMP visszhang kérést is. Kivételt képez, ha egy helyi ethernet hálózaton végez ARP letapogatást. Ha nem rendszergazdaként futtatja a programoz, akkor az ACK helyett egy SYN csomag kerül elküldésre a connect() rendszerhíváson keresztül. Ezek az alapértékek ugyanazok, mintha a -PA -PE paramétereket használta volna. A helyi hálózatokon ezek az állomásfelderítési próbák általában elegendőek, azonban egy biztonsági ellenőrzés során javasolt egy sokkal átfogóbb felderítést végezni. A -P* paraméterek (melyekkel a visszhang típusok adhatók meg) kombinálhatóak. Egy szigorú tűzfalon való átjutás esélyét növelheti, ha többféle próbát indít el különböző TCP kapukra, különféle jelzőbeállításokkal és ICMP kódokkal. Figyeljen arra, hogy a helyi ethernet hálózaton lévő célpontok esetén akkor is végrehajtódik egy ARP felderítés ( -PR), ha megad más -P* paramétert, mivel ez szinte minden esetben gyorsabb és sokkal hatékonyabb. Alaphelyzeben az Nmap elvégez egy állomás felderítést és ezután kezdi el az élő állomásoikon a kapuk letapogatását. Ez akkor is igaz, ha egy nem alapértelmezett állomás felderítési módot határozott meg, mint például az UDP próbák ( -PU). Olvassa el a -sP paraméter leírását, ha további információkra kiváncsi arról, hogyan hajthat végre csak állomás felderítést. Használja a -PN paramétert, ha ki akarja hagyni az állomás felderítési lépést és egyből a célpontok kapuletapogatására akar lépni. A következő paraméterekkel vezérelheti az állomások felderítését: -sL (Lista Letapogatás)A lista letapogatás az
állomás felderítés legprimitívebb
módja. Egyszerűen kilistázza a megadott
hálózat(ok)on található állomásokat
anélkül, hogy bármilyen adatcsomagot küldene.
Alaphelyzeben az Nmap még ekkor is elvégez egy fordított
DNS lekérdezést azért, hogy megkapja az
állomások neveit. Gyakran meglepően sok
információval szolgálhat egy egyszerű
állomásnév is. Például az fw.chi egy
vállalat Chicagoban lévő tűzfalának a neve.
A lista végén az Nmap megadja az IP címek
számát is. A lista letapogatással könnyen
ellenőrizhető, hogy a célba vett
állomásokhoz a megfeleő IP címek állnak-e
rendelkezésre. Ha az állomás esetleg ismeretlen
tartománynevet ad vissza, érdemes további
ellenőrzést is elvégezni, nehogy véletlenül
más hálózatot tapogasson le.
Mivel az alapötlet az, hogy egyszerűen nyomtassunk egy
listát a célpontokról, ezért a magasabb
szintű funkciók, mint például a
kapuletapogatás, az operációs rendszer
érzékelése vagy a visszhang letapogatás nem
kombinálható ezzel a funkcióval. Ha szeretné
letiltani a visszhang letapogatást mialatt magasabb szintű
funkciókat használ, olvassa el a -PN paraméter
leírását.
-sP (Visszhang Letapogatás)
Ezzel a paraméterrel arra
utasítja az Nmap programot, hogy kizárólag
visszhang letapogatást (állomás
felderítést) hajtson végre, majd nyomtasson egy
listát azokról az állomásokról, amelyek
válaszoltak a letapogatásra. Semmilyen további teszt
(mint például kapuletapogatás, vagy
operációs rendszer felderítése) nem kerül
végrehajtásra. Ez a lépés némileg
tolakodóbb, mint a lista letapogatás és gyakran
ugyanolyan céllal használják. Ez
lehetőséget biztosít a célhálózat
finom felderítésére anélkül, hogy
túlságosan felkeltené a figyelmet. Egy
támadó számára sokkal hasznosabb azt tudni, hogy
hány élő állomás van a
célhálózatban, mint a lista letapogatás
által visszaadott állomásneveknevek és IP
címek halmaza.
A rendszergazdák szintén hasznosnak fogják találni
ezt a paramétert. Egyszerűen felderíthető vele a
hálózatban elérhető állomások
száma vagy ellenőrizhető egy kiszolgáló
elérhetősége. Gyakran nevezik ezt a funkciót
visszhang pásztázásnak is és sokkal
megbízhatóbb, mint az üzenetszórási
címre küldött viszhang kérés, mivel sok
állomás nem válaszol az
üzenetszórási címre küldött
kérésre.
Az -sP paraméter alapesetben egy ICMP visszhang
kérést küld, valamint egy TCP csomagot a 80-as kapura. Ha
a parancsot nem rendszergazdaként adjuk ki, csak egy SYN csomag
kerül elküldésre (a connect()
rendszerhívásonkeresztül) a
célállomás 80-as kapujára. Ha
rendszergazdaként a helyi hálózaton próbál
állomásokat letapogatni, akkor egy ARP kérés (
-PR) kerül elküldésres, hacsak nem adja meg a
--send-ip paramétert. A nagyobb rugalmasság
érdekében az -sP paraméter
kombinálható bármelyik felderítési
próbával ( -P* paraméterek, kivéve a
-PN paramétert). Ha ezeket a próbatípusokat
használja, akkor az alapértelemzett próbák (ACK
csomag és visszhang kérés) kimaradnak. Ha az Nmap
programot futtató gép és a
célállomás között szigorú
szabályokkal működő tűzfal találhat,
akkor ezeknek a fejlett technikáknak az alkalmazása
mindenképpen ajánlott. Máskülönben
kimaradhatnak állomások, ha a tűzfal eldobálja a
próbákat, vagy a célállomások
válaszait.
-PN (Nincs visszhang)
Ezzel a paraméterrel az Nmap
állomás felderítési lépése teljesen
elhagyható. Normál esetben az Nmap ezt a lépést
használja az aktív állomások
meghatározására a további letapogatás
előtt. Alapesetben az Nmap az erőteljesebb
próbákat (kapuk letapogatása, változat
érzékelés, operációs rebdszer
érzékelése) csak azokon az állomásokon
hajtja végre, amelyeket aktívnak érzékelt. Ha a
-PN paraméterrel letiltja a felderítési
funkciót, az Nmap valamennyi megadott célpont IP
címén végrehajtja a kért letapogatási
műveleteket. Tehát ha egy B osztályú
címtartományt adott meg célpontként (/16), akkor
mind a 65,536 IP cím letapogatásra kerül. Csakúgy,
mint a lista letapogatásnál, a megfelelő
állomás felderítési lépés kimarad,
viszont a célpontok listájának kinyomtatása
és a kilépés helyett az Nmap folytatja a kért
műveletek végrehajtását és
feltételezi, hogy valamennyi célpont aktív. A helyi
ethernet hálózaton lévő gépeken az ARP
letapogatás ekkor is végrehajtásra kerül (hacsak a
--send-ip paramétert meg nem adja), mivel a további
letapogatásokhoz az Nmap-nek szüksége van a MAC
címre. Ennek a paraméternek a régi
meghatározása a P0 volt, de átnevezésre
került, hogy megakadályozható legyen a protokoll
visszhang PO paraméterével való
keveredése.
-PS [kapulista] (TCP SYN visszhang)
Ez a paraméter egy
beállított SYN zászlójú üres TCP
csomagot küld a célpont felé. Az alapértelmezett
célkapu a 80-as (ez fordítási időben
megváltoztatható az nmap.h) fájlban a
DEFAULT_TCP_PROBE_PORT_SPEC paraméterrel. Futásidőben is
megadható más célkapu paraméterként. A
szintaxis ugyanaz, mint a -p paraméternél, kivéve
hogy a kaputípus megadása - mint például a T: -
nem engedélyezett. Néhány példa: -PS22
és -PS22-25,80,113,1050,35000. Figyeljen arra, hogy a -PS
paraméter és a kapulista között nem lehet
szóköz. Ha több kaput is megadott, a próbák
párhuzamosan kerülnek végrehajtásra.
A beállított SYN zászló azt sugallja a
célpontnak, hogy Ön kapcsolatot kíván
kezdeményezni. Normál helyzetben a célkapu zárva
lesz és a célpont egy RST (reset) csomagot küld vissza.
Ha a kapu nyitva van, a célpont végrehajtja a 3
lépéses kapcsolatfelépítés második
lépését és egy SYN/ACK TCP csomagot küld
vissza. Ezután az Nmap-et futtató állomás egy RST
csomag küldésével lebontja az éppen
felépülő kapcsolatot ahelyett, hogy egy ACK csomag
küldésével teljesen felépítené a
kapcsolatot. Az RST csomagot nem az Nmap küldi, hanem a programot
futtató állomás rendszermagja, válaszul a nem
várt SYN/ACK csomagra.
Az Nmap nem foglalkozik azzal, hogy a kapu nyitott vagy zárt. Mind az RST
mind a SYN/ACK válasz azt jelzi, hogy a célállomás
elérhető és válaszol.
Unix rendszereken kizárólag a kiemelt root
felhasználó képes nyers TCP csomagok
küldésre és fogadására. Normál
felhasználók esetén egy kerülő
megoldást alkalmazunk a connect() rendszerhívás
használatakor, minden egyes kapu esetén. Ennek során egy
kapcsolat felépítését kezdeményező
SYN csomagot küldünk a célpont felé. Ha a
connect() sikeresen vagy az ECONNREFUSED hibával tér vissza,
akkor az alsóbb TCP verem vagy SYN/ACK vagy RST csomagot fogadott.
Ilyenkor a célállomás elérhetőnek lesz
jelölve. Ha a kapcsolódási kísérlet az
időzítés lejártáig függőben
marad, a célállomás elérhetetlenként lesz
jelölve. Ugyanez a kerülőút kerül
alkalmazásra az IPv6 kapcsolatok esetén is, mivel jelenleg az
Nmap nem rendelkezik nyers IPv6 csomagok
összeállításának
képességével.
-PA [kapulista] (TCP ACK Visszhang)
A TCP ACK visszhang próba
meglehetősen hasonlít az előzőekben
tárgyalt SYN visszhang próbához. A
különbség annyi, hogy a SYN zászló helyett
az ACK zászló a beállított állapotú.
Az ACK csomag jelzi, hogy a csomagot küldő fél
készen áll az adatok fogadására a
felépített kapcsolaton keresztül. Azonban jelen esetben
nincs ilyen létező kapcsolat. A
célállomások ilyenkor szinte minden esetben egy RST
csomagot küldenek, felfedvén ezzel a jelenlétüket.
A -PA paraméter a SYN próbához hasonlóan
ugyanazt az alapértelmezett kaput használja és ugyanolyan
formátumban adható át neki más célkapuk
listája is. Ha nem kiemelt felhasználó
próbálja használni ezt a funkciót, vagy a
célpont IPv6 formátumú, akkor az előzőekben
már tárgyalt kerülőút kerül
alkalmazásra. Azonban jelen esetben ez nem tökéletes,
mivel a connect() valójában SYN csomagot küld, nem ACK
csomagot.
Azért található meg mind a SYN, mind az ACK próba,
hogy a lehető legjobban megnöveljük az
esélyét a tűzfalak megkerülésének. A
legtöbb rendszergazda úgy állítja be az
útválasztóit és más egyszerű
tűzfalait, hogy a nyilvános szolgáltatások
felé tartó forgalom (pl. céges web- vagy levelező
kiszolgáló) kivételével minden
bejövő SYN csomagot dobjon el. Ez megakadályozza a
bejövő forgalmat a céges hálózatba, viszont
a felhasználók részére zavartalan kimenő
forgalmat biztosít az Internet felé. Ez a
nem-állapottartó megközelítés kevesebb
erőforrást igényel a
tűzfalakon/útválasztókon és széles
körben támogatott. A Linux Netfilter/iptables
tűzfalprogramja a --syn paraméteren keresztül
valósítja meg ezt a nem-állapottartó
működést. Az ilyen állapot nélküli
tűzfalszabályok a SYN visszhang próbákat (
-PS) nagy valószínűséggel
elutasítják, ha azok zárt kaput céloznak. Ilyenkor
az ACK próba sikeresen vágja át magát ezeken a
szabályokon.
Más általánosan használt tűzfalak
állapottartó szabályok használatával
utasítják el a nem várt csomagokat. Kezdetben ez a
jellemző csak a felső kategóriás
tűzfalakban volt megtalálható, de az utóbbi
években egyre inkább elterjed az alsóbb
kategóriákban is. A Linux Netfilter/iptables rendszere a
--state paraméteren keresztül valósítja ezt
meg, melyben a csomagokat a kapcsolat állapota alapján
kategorizálja. Az ilyen rendszerek ellen a SYN próbák
hatásosabbak, mivel a nem várt ACK csomagokat hamisnak tekintik
és eldobják. Ezt a zavart úgy lehet
elhárítani, ha mind a SYN, mind ACK próbát
végrehajtjuk a -PS és -PA paraméterek
megadásával.
-PU [kapulista] (UDP Visszhang)
Egy újabb állomás
felderítési módszer az UDP visszhang próba, mely
során egy üres (hacsak nem adja meg a --data-length
paramétert) UDP csomagot küldünk a megadott kapu
felé. A kapulista formátuma megegyezik az előző
pontokban tárgyalt -PS és -PA
paraméterekével. Ha nem adunk meg kaput, akkor
alapértelmezettként a 31338-as kapu kerül
használatra. Ez fordítási időben
megváltoztatható az nmap.h állomány
DEFAULT_UDP_PROBE_PORT_SPEC paraméterén keresztül.
Ennél a letapogatásnál nem kifejezetten jó, ha egy
nyitott kapuval próbálkozunk, ezért választunk egy
magas számú, nagy valószínűséggel
nem használt kaput.
Ha a célponton egy zárt kaput tapogatunk le az UDP
próbával, a célállomásból
kicsalhatunk egy kapu nem elérhető (port unreachable) ICMP
válaszcsomagot. Ez jelzi az Nmap-nek, hogy a célpont él
és elérhető. Bármilyen más ICMP
hibaüzenet (pl. állomás/hálózat nem
elérhető, TTL élettartam lejárt) azt jelzi, hogy a
célállomás nem érhető el. A válasz
hiányát szintén így értelmezi a program. Ha
nyitott kaput érünk el, a legtöbb
szolgáltatás figyelmen kívül hagyja az üres
csomagot és nem küld vissza semmilyen választ.
Ezért használjuk alapértelmezésként a
31338-as kaput, melyet nagy valószínűséggel nem
használ semmi. Néhány szolgáltatás, mint
például a chargen válaszol az üres csomagokra is,
mely így szintén azt jelzi, hogy a célpont
elérhető.
A legfőbb előnye ennek a letapogatásnak, hogy
megkerüli azokat a szűrőket és
útválasztókat, melyek kizárólag a TCP
forgalmat figyelik. Például a program
készítőjének volt egy Linksys BEFW11S4
vezeték nélküli útválasztója, mely a
külső csatolóján az összes TCP kaput
szűrte. Azonban az UDP próbák ellen védtelen
volt.
-PE; -PP; -PM (ICMP Visszhang Típusok)
Az előzőekben tárgyalt
szokatlan TCP és UDP állomás felderítési
típusok mellett az Nmap képes a széles körben
elterjedt ping program által használt csomagok
küldésére is. Az Nmap egy 8-as típusú
(visszhang kérés) ICMP csomagot küld a cél IP
címre és egy 0-ás típusú (visszhang
válasz) csomagot vár vissza az elérhető
állomásoktól. A hálózati
felderítők bánatára a legtöbb
állomás és tűzfal blokkolja ezeket a csomagokat
ahelyett, hogy az RFC 1122[3] leírás szerint
válaszolna rájuk. Emiatt a kizárólag ICMP
alapú letapogatások ritkán adnak megbízható
eredményt ismeretlen célpontok felderítésekor.
Azonban belső hálózatokat felügyelő
rendszergazdák számára praktikus és hasznos
eszköz lehet. Használja a -PE paramétert a
visszhang kérés engedélyezésére.
Noha a visszhang kérés a szabványos ICMP
kérés, az Nmap ennél tovább megy. Az ICMP
szabvány ( RFC 792[4]) emellett meghatároz még
időbélyeg kérést (13-as kód),
információ kérést (15-ös kód)
és címmaszk kérést (17-es kód) is. Noha
látszólag ezek a kérések arra szolgálnak,
hogy információkat szerezzünk (például
címmaszk vagy időbélyeg), de emellett könnyen
használhatóak állomások
felderítésére is. Amelyik rendszer válaszol az
élő és elérhető. Az Nmap jelenleg nem
támogatja az információ kérés csomagot,
mivel ezt nem támogatják széles körben. Az RFC
1122 ragaszkodik ahhoz, hogy „az állomásoknak nem kellene
támogatniuk ezeket az üzeneteket”. Az
időbélyeg és a címmaszk kérések a
-PP és a -PM paramétereken keresztül
küldhetőek el. Az időbélyeg válasz (14-es
ICMP kód) vagy a címmaszk válasz (18-as kód)
elárulja, hogy az állomás elérhető. Ezek a
kérések különösen akkor válnak
értékessé, ha a rendszergazda letiltotta a visszhang
kéréseket, miközben elfelejtett, hogy más ICMP
kérések is használhatóak erre a
célra.
-PO [protokollista] (IP Protokoll Visszhang)
Egy másik állomás
federítési módszer az IPProto visszhang, amely az IP
fejléc protokoll mezőjében megadott típusú
IP csomagokat küld el. A protokoll lista ugyanolyan
formátumú, mint az előzőekben tárgyal TCP
és UDP felderítési paramétereknél
használ kapulista. Ha nincs megadva protokoll, akkor
alapértelmezettként ICMP (1-es protokoll), IGMP (2-es protokoll
és IP-in-IP (4-es protokoll) csomagok lesznek elküldve. Az
alapértelmezett protokollok fordítási időben
adhatók meg az nmap.h állomány
DEFAULT_PROTO_PROBE_PORT_SPEC változójában. Figyeljen
arra, hogy az ICMP, IGMP, TCP (6-os protokoll és UDP (17-es protokoll)
protokollok esetén a csomagok további fejlécekkel
kerülnek elküldésre, míg más
protokolloknál az IP fejléc mögött más adat
nem kerül elküldésre (kivéve, ha a
--data-length paramétert is megadta).
Ez a felderítési metódus kétféle
választ vár. Vagy az elküldött protokollnak
megfelelő válasz érkezik, vagy egy 'Protocol Unreachable'
ICMP üzenet, mely szerint az állomás nem támogatja
az adott protokollt (mellyel el is árulta a
létezését).
-PR (ARP Visszhang)
Az Nmap egyik leggyakoribb használata a
helyi ethernet hálózat letapogatása. A legtöbb
helyi hálózaton, különösen melyek az
áldott RFC1918 alapú privát címtartományt
használják, az IP címek legnagyobb része
általában nincs használatban. Amikor az Nmap nyers IP
csomagot próbál küldeni (például egy ICMP
visszhang kérést), az operációs rendszernek meg
kell határoznia a célpont IP címe alapján a
hardvercímet (ARP) azért, hogy az ethernet keretet
megfelelően tudja címezni. Ez gyakran lassú és
problémás, mivel az operációs rendszereket nem
úgy tervezik, hogy rövid ídő alatt több
millió ARP kérést küldjenek el elérhetetlen
állomások felé.
Az ARP letapogatásnál az ARP kéréseket az Nmap
program kifinomult algoritmusára bízzuk. Ha itt válasz
érkezik, akkor már nem szükséges az IP
alapú visszhang kérésekkel foglalkozni, mivel a
célpont elérhető. Ezért az ARP letapogatás
sokkal gyorsabb és megbízhatóbb, mint az IP alapú
letapogatások. Ezért ezt a letapogatást az Nmap
alaphelyzetben elvégzi, ha úgy érzékeli, hogy a
célpont a helyi ethernet hálózaton
található. A helyi hálózaton az Nmap még
akkor is az ARP letapogatást fogja végrehajtani, ha más
visszhang alapú letapogatást adtunk meg (mint
például a -PE vagy a -PS). Ha
egyáltalán nem kívánja használni az ARP
letapogatást, adja meg a --send-ip paramétert.
--traceroute (Útvonal nyomkövetése az
állomáshoz)
Az útvonal nyomkövetése a
letapogatás után történik meg, a
letapogatás eredményének figyelembe
vételével. A nyomkövetéshez a célponton
elérhető kapuk és protokollok közül azok
lesznek felhasználva, melyekkel a célpont nagy
valószínűséggel elérhető. A
nyomkövetés a kapcsolódási letapogatás
(connect (-sT)) és az üresjárati letapogatás (idle
(-sI)) kivételével minden letapogatási típussal
működőképes. Minden nyomkövetés az
Nmap dinamikus időzítési modelljét
használja és párhuzamosan kérül
végrehajtásra.
A nyomkövetéskor a csomagokat alacsony élettartam
(time-to-live (TTL)) értékkel küldjük el, hogy az
útvonalon lévő közbenső
állomásokból az Időzítés letelt
(Time Exceeded) ICMP hibaüzenetet tudjunk kicsalni. Alapesetben a
nyomkövetésnél TTL=1 értékkel
kezdünk és addig növeljük a TTL
értékét, amíg el nem érjük a
célállomást. Az Nmap nyomkövetése magas TTL
értékkel indít és egészen nuuláig
csökken. A visszafelé történő
kereséssel és egy ügyes gyorstároló
algoritmussal az Nmap felgyorsítja a több
állomáson keresztül végzett
nyomkövetést. Átlagban az Nmap 5-10 csomaggal kevesebbet
küld el állomásonként, de ez nagyban függ a
hálózat állapotától. Ha csak egy
alhálózat letapogatása történik (pl.
192.168.0.0/24), az Nmap a legtöbb állomáshoz
valószínűleg csak egy csomagot küld.
--reason (Állomás- és kapuállapot oka)
Megjeleníti, hogy az egyes
állomások és kapuk miért lettek a megadott
állapotúnak jelölve. Ez a paraméter
megjeleníti annak a csomagnak a típusát, amely az
állomás vagy kapu állapotát meghatározta.
Például egy RST csomag egy zárt kapuról vagy egy
visszhang válasz egy működő
állomásról. Az Nmap által szolgáltatott
információk a letapogatás vagy a visszhang
típusától függenek. A SYN letapogatás
és a SYN visszhang ( -sS és -PT) eredményei
például nagyon részletesek, míg a TCP
kapcsolódási letapogatás és visszhang (
-sT) eredményei korlátozottak a connect
rendszerhívás megvalósítása miatt. Ezt a
jellemzőt a hibakeresési paraméter ( -d)
automatikusan engedélyezi. Az eredmények egy XML fájlban
tárolódnak akkor is, ha ezt a paramétert nem adja
meg.
-n (Nincs DNS feloldás)
Utasítja az Nmap programot, hogy
soha ne végezzen fordított DNS feloldást az
aktívnak talált IP címeken. Mivel a DNS még az
Nmap beépített párhuzamos DNS feloldójával
is lassú lehet, ennek a paraméternek a megadása
felgyorsíthatja a letapogatást.
-R (DNS feloldás minden célpontra)
Utasítja az Nmap programot, hogy
mindig végezzen fordított DNS feloldást a
célpontok IP címeire. Normál helyzetben csak az
elérhető (online) állomásokon
történik fordított DNS feloldás.
--system-dns (Használja a rendszer DNS feloldóját)
Alaphelyzetben az Nmap a
névfeloldást maga végzi úgy, hogy a rendszeren
beállított névkiszolgáló felé
közvetlenül küldi el a kéréseket és
vár a válaszra. A teljesítmény
javítása érdekében több kérés
kerül elküldésre párhuzamosan (gyakran
többszáz). A rendszer DNS feloldójának
használatához adja meg ezt a paramétert (egyszerre egy IP
a getnameinfo() rendszerhíváson keresztül). Ez sokkal
lassabb és ritkán hasznos, kivéve ha valamilyen
hibát talál az Nmap párhuzamos feloldójában
(kérjük jelezze, ha így van). Az IPv6
letapogatásokhoz mindig a rendszer feloldóját
használja a program.
--dns-servers <server1[,server2],...> (A fordított DNS
feloldáshoz használt kiszolgálók)
Alaphelyzetben az Nmap a DNS
kiszolgálók adatait a resolv.conf fájlból (UNIX)
vagy a regisztrációs adatbázisból (Windows)
próbálja meg kinyerni. Ezzel a paraméterrel Ön
más kiszolgálókat is megadhat. A program nem veszi
figyelembe ezt a paramétert, ha a --system-dns paramétert
használja, vagy IPv6 letapogatást hajt végre. Több
DNS kiszolgáló használat gyakran felgyorsítja a
feloldást, különösen ha a célpont IP
tartományának meghatalmazott kiszolgálóját
használja. Ezzel a paraméterrel fokozható a
rejtőzködés is, mivel a kérések
tküldhetők több rekurzív DNS
kiszolgálón is.
Szintén hasznos lehet ez a paraméter a
magánhálózatok letapogatásakor. Néha csak
néhány névkiszolgáló ad vissza
megfelelő fordított DNS információkat és
nem mindig tudhatja, hogy ezek hol vannak. Letapogathatja a
hálózatot az 53-as kapura keresve (esetleg változat
érzékeléssel együtt), ezután
kipróbálhatja a lista alapú letapogatást (
-sL) egyesével megadva a névkiszolgálókat a
--dns-servers paraméterben addig, amíg meg nem
találja a megfelelőt.
KAPULETAPOGATÁSI ALAPOK
Bár az Nmap funkciói folyamatosan bővültek az évek folyamán, kezdetben még csak egy hatékony kapuletapogató volt és ez is maradt a fő funkciója. Az egyszerű nmap célpont parancs kiadásával több, mint 1660 TCP kaput tapogathatunk le a célpont gépen. Míg a legtöbb kapuletapogató hagyományosan csak nyitott vagy zárt csoportba sorolja a kapukat, az Nmap sokkal finomabban dolgozik. A kapukat hat csoportba sorolja: nyitott, zárt, szűrt, szűretlen, nyitott|szűrt, vagy zárt|szűrt. Ezek nem a kapu valódi állapotát jelzik, hanem azt, hogy az Nmap hogyan látja őket. Például a célponttal egyező hálózatból induló Nmap letapogatás mutathatja a 135/tcp kaput nyitottnak, míg ugyanabban az időben, ugyanolyan paraméterekkel az Internet felől a letapogatás mutathatja a kaput szűrt állapotúnak. Az Nmap által felimert hat kapuállapot nyitottEgy alkalmazás ezen a kapun
aktívan fogadja a TCP kapcsolatokat vagy az UDP csomagokat. A
kapuletapogatás elsődleges célja ezeknek a
felderítése. Biztonság-tudatos emberek tudják,
hogy minden nyitott kapu sugárút egy támadáshoz. A
támadók és a tesztelők szeretnék
kihasználni ezeket a nyitott kapukat, míg a
rendszergazdák megpróbálják lezárni, vagy
tűzfallal védeni őket anélkül, hogy a
jogosult felhasználókat akadályoznák a
használatban. A nyitott kapuk nem csak biztonsági
szempontból lehetnek érdekesek, mivel valamilyen
hálózaton keresztül elérhető
szolgáltatást mutatnak.
zárt
Egy zárt kapu elérhető
(fogadja az Nmap próbacsomagjait és válaszol
rájuk), de nem fut rajta semmilyen alkalmazás.
Segítséget nyújtanak annak
meghatározásában, hogy az IP címhez tartozó
állomás működik (állomás
felderítés, vagy visszhang letapogatás), valamint
felhasználhatók az operációs rendszer
meghatározására is. Mivel a zárt kapuk
elérhetők, érdemes lehet őket később
ismét letapogatni, hátha menet közben nyitottá
válnak. A rendszergazdáknak érdemes figyelni arra, hogy
az ilyen kapukat tűzfallal blokkolják. Ezután ezek a
kapuk szűrt állapotot fognak mutatni, ahogy azt a
következő rész is mutatja.
szűrt
Az Nmap nem tudja meghatározni, hogy a
kapu nyitott-e, mert egy csomagszűrő megakadályozza, hogy
a próbák eljussanak a kapuig. A szűrés
történhet külön tűzfallal,
útválasztó szabályokkal vagy az
állomásra telepített tűzfal programmal. Ezek a
kapuk zavarják a támadókat, mivel nagyon kevés
információt közölnek. Néhány esetben
visszaküldhetnek ICMP hibaüzeneteket (pl. ICMP 3-as típus
13-as kód: a célpont nem érhető el, a
kommunikáció tiltott), de a legáltalánosabb, hogy
a szűrők egyszerűen eldobálják a
próbacsomagokat. Ez arra készteti az Nmap programot, hogy
néhányszor újra megpróbálja a
kapcsolódást, hogy kiszűrhetőek legyenek a
hálózati hiba miatti csomagvesztések. Ez viszont
drámai módon lelassítja a letapogatást.
szűretlen
A szűretlen állapot azt jelenti,
hogy a kapu elérhető, de az Nmap nem tudja meghatározni,
hogy zárt vagy nyitott. Csak a tűzfal szabályok
feltérképezésére használt ACK
letapogatás sorolja a kapukat ebbe a csoportba. A szűretlen
kapuk ismételt letapogatása más módszerekkel (pl.
Window, SYN vagy FIN letapogatás) segíthet a kapu
állapotának pontosabb
meghatározásában.
nyitott|szűrt
Az Nmap akkor sorolja a kapukat ebbe a
csoportba, ha nem tudja meghatározni, hogy nyitott vagy szűrt.
Ez olyan letapogatási típusoknál fordul elő,
amelynél a nyitott kapu nem ad választ. A válasz
hiánya jelentheti azt is, hogy egy csomagszűrő eldobta a
próbacsomagot vagy a visszaadott választ. Így az Nmap nem
tudja bioztosan meghatározni, hogy a kapu nyitott vagy szűrt. Az
UDP, az IP protokoll, a FIN, a Null és az Xmas letapogatás
minősíti így a kapukat.
zárt|szűrt
Ezt az állapotot akkor adja vissza az
Nmap, amikor nem tudja meghatározni, hogy a kapu zárt vagy
szűrt állapotú. Csak az IP ID üresjárati
letapogatásnál használt.
KAPULETAPOGATÁSI TECHNIKÁK
Mint kezdő autószerelő, több órás küzdelmet folytattam azért, hogy a munkához szükséges legelemibb szerszámok (kalapács, ragasztószalag, csavarkulcs stb.) kéznél legyenek. Miután szánalmas kudarcot vallottam, elvontattam a tragacsomat egy igazi szerelőhöz. Ő szintén sokáig kotorászott egy óriási szerszámos ládában de végül előhúzta a megfelelő ketyerét, amivel aztán könnyedén elvégezte a munkát. A kapuletapogatás művészete is hasonló. A szakértők ismerik a letapogatási technikák százait és minden feladathoz a megfelelőt (vagy több kombinációját) használják. Másfelől viszont a gyakorlatlan felhasználók és a szkriptkölykök minden feladathoz az alap SYN letapogatást használják. Mivel az Nmap ingyenesen elérhető, így a mesteri letapogatás egyetlen határa a tudás. Így természetesen legyőzi az autóipart, ahol már annak a meghatározásához is elég sok szaktudás kell, hogy miféle szerszámra lesz szükség. Ráadásul ezt még meg is kell venni egy rakás pénzért. A legtöbb letapogatási technikát kizárólag kiemelt felhasználók érik el. Ez azért van, mert ezek a technikák nyers csomagok küldésével dolgoznak, melyhez rendszergazdai hozzáférés szükséges. Windows rendszereken is ajánlatos rendszergazda szintű felhasználóként használni a programot még akkor is, ha a WinPcap programkönyvtár elérhető az operációs rendszerhez. A rendszergazda szintű használat az Nmap 1997-es megjelenésekor egy komoly korlátozás volt, mivel akkoriban a legtöbb felhasználónak csak korlátozott parancshéj hozzáférése volt. Ma már más a helyzet. A számítógépek olcsóbbak, sokkal több ember kapcsolódik folyamatosan az Internetre és az asztali Unix rendszerek (mint például a Linux és a Mac OS X) is jobban elterjedtek. Ma már elérhető az Nmap Windows környezetben is, így még több gépen használható. Mindezeknek köszönhetően egyre kevesebb helyen kell az Nmap programot korlátozott parancshéj alatt futtani. Ez jó dolog, mivel a kiemelt felhasználóknak nyújtott szolgáltatások teszik a programot erőteljessé és rugalmassá. Bár az Nmap a lehető legpontosabb eredményre törekszik, nem szabad megfeledkezni arról, hogy minden eredménye a célállomás (vagy egy előtte lévő tűzfal) által visszaküldött csomagokon alapul. Ezek lehetnek megbízhatatlan állomások, melyek szándékosan megtévesztő válaszokat küldenek. Meglehetősen elterjedtek az olyan állomások, melyek az Nmap próbáira nem úgy válaszolnak, ahogyan azt az RFC szabványok meghatározzák. A FIN, NULL és Xmas letapogatások különösen érzékenyek az ilyen problémákra. Ezek a problémák erősen kötődnek egyes letapogatási típusokhoz, így a megfelelő letapogatások leírásainál részletesen is foglalkozunk velük. Ebben a szakaszban található az Nmap által támogatott tucatnyi letapogatási technika leírása. Egyszerre csak egyféle technika használható. Kivételt képez az UDP letapogatás ( -sU), mely bármelyik TCP letapogatással kombinálható. A letapogatások típusának megadása a következő formátumban lehetséges: -sC, ahol a C a letapogatás nevének egy kiemelt betűje, általában az első. Az egyetlen kivétel a sokak által utált FTP ugráló letapogatás ( -b). Alapértelmezetten az Nmap egy SYN letapogatást hajt végre. Kivétel, ha a felhasználónak nincs megfelelő jogosultsága nyers csomagok küldésére, vagy a célpont címe IPv6 formátumú. Ilyenkor a hagyományos connect() letapogatás történik. Az ebben a szakaszban felsorolt letapogatásokat csak kiemelt felhasználók hajthatják végre. Normál felhasználók csak a connect() és az FTP ugráló letapogatásra jogosultak. -sS (TCP SYN letapogatás)A SYN letapogatás az
alapértelmezett és a legelterjedtebb letapogatás, nem
véletlenül. Gyorsan végrehajtható, gyors
hálózatokon másodpercenként több ezer kapu
lepróbálható anélkül, hogy tolakodó
tűzfalak zavarnák a folyamatot. A SYN letapogatás
eléggé diszkrét és rejtett, mivel sosem
fejeződik be a TCP kapcsolat felépítése.
Bármelyik megfelelő TCP veremmel működik,
ellentétben a FIN/NULL/Xmas, a Maimon vagy az üresjárati
letapogatással, melyek erősen függnek az egyes
operációs rendszerek egyedi
veremkialakításától. Szintén
előnyös, hogy tisztán
megkülönböztethetők a nyitott, zárt
és szűrt kapuállapotok.
Ezt a technikát gyakran nevezik félig nyitott
letapogatásnak is, mivel sosem jön létre egy teljes TCP
kapcsolat. Egy SYN csomag elküldésével szimuláljuk
egy kapcsolat felépítését és várunk
a válaszra. A SYN/ACK válasz jelzi, hogy a kapu fogadja a
kapcsolódást (nyitott), az RST (reset) pedig azt, hogy nem. Ha
néhány ismétlés után sem érkezik
válasz, a kapu szűrt állapotúként lesz
jelölve. Szintén ezt a jelölést kapja, ha egy ICMP
nem elérhető hibaüzenet (kód 3, típus 1, 2,
3, 9, 10 vagy 13) érkezik.
-sT (TCP connect letapogatás)
Ha a SYN letapogatás nem
érhető el, akkor a TCP connect() letapogatás válik
alapértelmezetté. Ez akkor történik meg, ha a
felhasználónak nincs jogosultsága nyers adatcsomagokkal
dolgozni, vagy ha a célpont IPv6 címet használ. A nyers
csomagok használata helyett az Nmap átadja a célpont
címét és a célkapu számát az
operációs rendszernek, hogy az építse fel a
kapcsolatot a connect() rendszerhívás
segítségével. Ugyanezt a magas szintű
rendszerhívást használják a
böngészők, a P2P kliensek és más
hálózati alkalmazások is a kapcsolatok
felépítéséhez. Ez része a Berkeley Sockets
API néven ismert programozási felületnek. Az Nmap
ilyenkor a nyers válaszcsomagok beolvasása helyett ezt a
felületet használja az egyes kapcsolatok
állapotának lekérdezésére.
Ha a SYN letapogatás elérhető, általában jobb
azt választani. Az Nmap sokkal jobban kézben tudja tartani a
nyers csomagokat, mint a magasabb szintű connect()
rendszerhívást. A SYN letapogatás félig nyitott
kapcsolataival ellentétben a rendszerhívás teljesen
felépíti a kapcsolatot a célponttal. Ez nem csak
tovább tart, de több adatcsomagra is van szükség
ugyanannyi információ megszerzéséhez.
Ráadásula célpont naplózhatja is a
kapcsolódást. Egy rendes behatolás
érzékelő még jelezhet is, bár a
legtöbb gépen nincs ilyen riasztórendszer. Az
átlagos Unix rendszereken a legtöbb szolgáltatás
bejegyzést készit a rendszernaplóba a
kapcsolatról, amit ráadásként még
kiegészíthet egy hibaüzenettel is, ha a kapcsolatot
adatküldés nélkül azonnal megszakítjuk.
Néhány szánalmas szolgáltatás ilyenkor
összeomlik, bár ez nem túl jellemző. Ha egy
rendszergazda rengeteg, azonos helyről érkező
kapcsolódást lát a rendszernaplóban, azonnal tudni
fogja, hogy connect() letapogatás áldozata lett.
-sU (UDP letapogatások)
Bár a legismertebb Internetes
szolgáltatások a TCP protokollt használják,
azért az UDP[5] alapú szolgáltatások is
széles körben elterjedtek. A három legismertebb a DNS, az
SNMP és a DHCP (a használt kapuk: 53, 161/162 és 67/68).
Mivel az UDP letapogatás általában lassabb és
sokkal bonyolultabb, mint a TCP, néhány biztonsági
felülvizsgáló nem is figyel ezekre a kapukra. Ez nagy
hiba, mivel eléggé elterjedtek a kihasználható UDP
alapú szolgáltatások és a támadók
bizonyosan nem hagyják figyelmen kívül ezeket.
Szerencsére az Nmap segít leltárba foglalni az UDP
kapukat is.
Az UDP letapogatás az -sU paraméterrel
indítható. Kombinálható valamilyen TCP
letapogatással, mint például a SYN letapogatás (
-sS), így egyidőben mindkét protokoll
ellenőrizhető.
Az UDP letapogatás úgy működik, hogy egy üres
(adat nélküli) UDP fejlécet küldünk minden
egyes célkapura. Ha ICMP "Kapu nem elérhető"
hiba (3-as típus, 3-as kód) érkezik vissza, a kapu
zárt. Más típusú ICMP "nem
elérhető" hibák esetén (1, 2, 9, 10 vagy 13)
a kapu szűrt. Alkalmanként egy szolgáltatás
valamilyen UDP csomagot küldhet vissza, ezzel jelezve, hogy a kapu
nyitott. Ha néhány megismételt próba után
sem érkezik válasz, a kapu jelölése
nyitott|szűrt. Ez azt jelenti, hogy a kapu lehet nyitott, vagy egy
csomagszűrő blokkolja az átvitelt. A
szolgáltatások verzióletapogatása ( -sV)
segíthet elkülöníteni a ténylegesen nyitott
kapukat a szűrt kapuktól.
Az UDP letapogatás legnagyobb kihívása a gyors
végrehajtás. A nyitott és a szűrt kapuk
ritkán küldenek vissza valamilyen választ, arra
kényszerítve az Nmap programot, hogy az
időzítés lejártáig várakozzon, majd
megismételje a próbát azt feltételezve, hogy a
próba vagy a válasz elveszett. A zárt kapuk gyakran
még nagyobb problémát jelentenek. Ezek
általában egy ICMP "Kapu nem elérhető"
hibaüzenetet küldenek vissza. De az RST csomagokkal
ellentétben, melyeket a zárt TCP kapuk küldenek vissza
válaszként a SYN vagy a connect() letapogatásra, a
legtöbb állomás alapból korlátozza az
elküldhető ICMP "Kapu nem elérhető"
oüzenetek mennyiségét. A Linux és a Solaris
operációs rendszerek különösen
szigorúak ebből a szempontból. Például a
Linux 2.4.20-as rendszermagja a "Célállomás nem
elérhető" üzenetekből csak
másodpercenként egyet enged elküldeni (a net/ipv4/icmp.c
fájlban).
Az Nmap észleli ezt a korlátozást és képes
eléggé lelassítani a próbákat, hogy
megelőzze a hálózat elárasztását
olyan haszontalan csomagokkal, melyeket a célállomás
úgyis eldobna. Sajnos a Linux stílusú, egy
csomag/másodperc korlátozás miatt a teljes 65536 UDP port
letapogatása több,mint 18 óráig tart.
Néhány ötlettel felgyorsítható az UDP
letapogatás: több állomás letapogatása
párhuzamosan, a legáltalánosabb kapuk letapogatása
először, letapogatás tűzfalon
belülről és a lassú állomások
átugrása a --host-timeout paraméter
megadásával.
-sN; -sF; -sX (TCP NULL, FIN és Xmas
letapogatás)
Az Nmap ennek a három
letapogatásnak a segítségével (a
--scanflags paraméter segítségével
még több lehet, erről bővebben a
következő szakaszban) kiaknázza azt a hajszálnyi
rést, mely a TCP RFC[6] leírásban
található és így tesz
különbséget a nyitott és a zárt kapuk
között. A 65-dik oldalon ez áll: „ha a
célkapu ZÁRT .... egy RST bitet nem tartalmazó
bejövő csomagra válaszként egy RST csomagot kell
küldeni.” A következő oldalon azt
tárgyalja, hogy egy nyitott kapura SYN, RST vagy ACK bit
nélküli csomag „valószínűtlen, hogy
érkezne, de ha mégis ez történne, a csomagot el
kell dobni.”
Ha olyan rendszereket tapogatunk le, amelyek megfelelnek ennek az RFC
leírásnak, akkor bármilyen olyan próbacsomag,
amely nem tartalmazza a SYN, ACK vagy RST bitet egy RST választ fog
kiváltani, ha a célkapu zárt és nem vált ki
választ, ha a célkapu nyitott. Amíg ez a három bit
nem szerepel, a másik három bit (FIN, PSH, URG)
tetszőleges kombinációja használható. Az
Nmap ezt három letapogatási típussal használja ki:
NULL letapogatás ( -sN)
Mindhárom letapogatás ugyanúgy viselkedik, az egyetlen
különbség a próbacsomagban
beállított zászlók között van. Ha
válaszként RST csomag érkezik, a kapu besorolása
zárt lesz, míg ha nem érkezik válasz, a
besorolás nyitott|szűrt. Ha válaszként ICMP
"nem elérhető" (kód 3, típus 1, 2, 3, 9,
10 vagy 13) hiba érkezik, a kapu jelölése szűrt
lesz.
Ezeknek a letapogatásoknak a legnagyobb előnye, hogy
könnyen átcsúsznak egyes nem-állapottartó
tűzfalakon és csomagszűrő
útválasztókon. Másik előnyük, hogy
némileg rejtettebbek, mint a hagyományok SYN letapogatás.
Azért sokat ne várjunk - a legtöbb modern
behatolásérzékelő (IDS) képes
észlelni ezt a fajta letapogatást. Nagy hátrány,
hogy nem minden rendszer követi szigorúan az RFC 793
előírásait. Számos rendszer RST csomagot
küld vissza ezekre a letapogatásokra a kapu
állapotától függetlenül. Emiatt az
összes kapu zárt jelölést kap. A
jelentősebb operációs rendszerek, melyek így
tesznek: a Microsoft Windows, több CISCO eszköz, a BSDI
és az IBM OS/400. Ennek ellenére a legtöbb Unix
alapú operációs rendszer ellen használhatók
ezek a letapogatások. Másik hátránya ezeknek a
letapogatásoknak, hogy nemképesek
különbséget tenni a nyitott és a szűrt
kapuk között, így ezek a kapuk a
nyitott|szűrtjelölést kapják.
-sA (TCP ACK letapogatás)
Nem állít be egyetlen bitet sem
(a TCP zászlók értéke 0)
FIN letapogatás ( -sF)
Csak a TCP FIN bitet állítja
be.
Xmas letapogatás ( -sX)
Beállítja a FIN, PSH és
URG zászlókat, így a csomag olyan lesz, mint a
karácsonyfa.
Ez a letapogatás teljesen eltér
az előzőekben tárgyaltaktól, mivel sosem
határozza meg a nyitott (vagy a nyitott|szűrt) kapukat. Arra
használható, hogy kikémleljük egy tűzfal
szabályrendszerét, meghatározva hogy
állapottartó vagy sem és hogy mely kapukat szűri.
Az ACK letapogatás során olyan csomagokat küldünk a
célpont felé, melynek csak az ACK zászlóját
állítjuk be (kivéve, ha a --scanflags
paramétert is használjuk). Szűrés
nélküli rendszereknél mind a nyitott, mind a zárt
kapuk RST csomagot küldenek vissza erre a próbára. Az
Nmap ezeket a kapukat szűretlen jelzéssel látja el,
így jelölve, hogy az ACK csomag eléri a kaput, de annak
nyitott vagy zárt állapota nincs meghatározva. Azok a
kapuk, melyek nem válaszolnak, vagy bizonyos ICMP hibaüzenetet
(kód 3, típus 1, 2, 3, 9, 10 vagy 13) küldenek vissza,
szűrt jelölést kapnak.
-sW (TCP Window letapogatás)
A Window letapogatás megegyezik az ACK
letapogatással. Az egyetlen különbség, hogy
kihasználja egyes rendszerek TCP
megvalósításának jellegzetességét,
így téve különbséget a nyitott és a
zárt kapuk között, ahelyett hogy minden visszakapott RST
csomag esetén a kaput szűretlennek jelölne. Ezt
úgy éri el, hogy megvizsgálja a
visszaküldött RST csomag Window szakaszát.
Néhány rendszernél a nyitott kapu esetén a Window
értéke pozitív, míg zárt kapunál
nulla. Így pozitív Window érték esetén a
kapu nyitott, míg nulla Window érték esetén a kapu
zárt jelölést kap.
Ez a letapogatás az interneten található rendszerek egy kis
részének jellegzetességén alapul, így nem
tekinthető teljesen megbízhatónak. Azoknál a
rendszereknél, melyek nem így működnek az
összes kapu zárt állapotot fog jelezni.
Természetesen lehetséges, hogy a célpontnak nincs
egyetlen nyitott kapuja sem. Ha a legtöbb letapogatott kapu
zárt, de néhány elterjedt kapu (például a
22, 25, 53) szűrt állapotú, a rendszer legalábbis
gyanús. Alkalmanként a rendszerek teljesen ellentétesen
viselkednek. Ha a letapogatás 1000 nyitott és 3 zárt vagy
szűrt kaput jelez, akkor valószínűleg pont az a 3
kapu a nyitott.
-sM (TCP Maimon letapogatás)
A Maimon letapogatás a
felfedezője, Uriel Maimon után kapta a nevét. Ő a
technikát a Phrack Magazine 49-es számában írta le
(1996 November). Az Nmap, mely két számmal később
jelent meg, szintén ismeri ezt a technikát. Az
eljárás ugyanaz, mint a NULL, FIN és Xmas
letapogatásnál, csak itt FIN/ACK csomagot küldünk
el. Az RFC 793 (TCP) szerint egy ilyen csomag beérkezésekor mind
a nyitott, mind a zárt kapunka RST csomagot kell küldenie
válaszként. Uriel észrevette, hogy sok BSD alapú
rendszer nyitott kapuk esetén egyszerűen eldobja ezeket a
csomagokat.
--scanflags (Testreszabott TCP letapogatás)
Az igazán képzett Nmap
felhasználóknak nem kell magukat a programba
beépített letapogatási típusokra
korlátozniuk. A --scanflags paraméterrel saját
letapogatási típusokat tervezhetnek, tetszőleges TCP
zászlók használatával. Engedje szabadon a
fantáziáját, hogy kitérhessen az olyan
behatolásérzékelő rendszerek elől, amelyek
gyártói csak átlapozták az Nmap
leírását a szabályok megadásakor!
A --scanflags paraméterezése történhet
számmal (például 9 (PSH and FIN)) is, de a szimbolikus
nevek használata sokkal könnyebb. Csak keverje össze az
URG, ACK, PSH, RST, SYN és FIN zászlókat
tetszőleges kombinációban. Például a
--scanflags URGACKPSHRSTSYNFIN beállítja az összes
zászlót, bár ez nem túl hasznos. A
zászlók megadásának sorrendje nem lényeges.
A kívánt zászlók megadása mellet megadhatja a
TCP letapogatás típusát is (például
-sA vagy -sF). Ezzel az alaptípussal
meghatározhatja, hogy az Nmap hogyan értelmezze a
válaszokat. Például a SYN letapogatásnál ha
nem érkezik válasz, akkor a kapu állapota szűrt,
míg a FIN letapogatásnál ugyanez nyitott|szűrt
állapotot jelez. Az Nmap ugyanúgy viselkedik, mint az alap
letapogatásnál, csak a próbacsomagban a megadott
zászlókat fogja használni az alap letapogatás
zászlói helyett. Ha nem ad meg alaptípust, a SYN
letapogatást fogja használni.
-sI <zombi állomás[:próbakapu]>
(Üresjárati letapogatás)
Ez a fejlett eljárás egy igazi
vakon végzett TCP letapogatást hajt végre a
célállomáson (ez azt jelenti, hogy a saját IP
címéről semmilyen csomag nem lesz elküldve a
célállomásra). Ehelyett kihasználjuk azt, hogy a
zombi gépen megjósolható az IP
töredezettségmező
sorszámgenerátorának következő
értéke és ezzel az oldaltámadással
szerzünk információt a célgépen
lévő nyitott kapukról. A
behatolásérzékelő rendszerek úgy
látják majd, hogy a letapogatás a zombi
állomás felől érkezett (melynek
élőnek kell lennie és meg kell felelnie bizonyos
követelményeknek). Ez az elbűvölő
letapogatás túl bonyolult ahhoz, hogy ebben a
leírásban részletesen is foglalkozhassunk vele,
ezért írtam egy részletes leírást
róla, mely a https://nmap.org/idlescan.html címen
olvasható.
Amellett, hogy különösen rejtett, ezzel a
letapogatással kihasználható a gépek
közötti, IP alapú bizalmi viszony. A nyitott kapuk ebben
az esetben a zombi gép nézőpontjából
láthatóak nyitottnak. Megpróbálhat letapogatni
egy célállomást több olyan zombi
használatával, melyekről sejthető, hogy a
célpont megbízhatónak tekinti
(útválasztó vagy csomagszűrő
szabályok alapján).
A zombigép nevéhez kettősponttal elválasztva
hozzáadhat egy kapuszámot is, ha le akarja tesztelni az IP ID
változásait a zombigépen. Egyébként az Nmap
a TCP visszhang próbakapuját (80) fogja használni.
-sO (IP protokoll letapogatás)
Az IP protokoll letapogatással
meghatározható, hogy a célállomás mely IP
protokollokat (TCP, ICMP, IGMP stb.) támogatja. Technikai
szempontból ez nem igazán kapuletapogatás, mivel a TCP
és UDP kapuszámok helyett az IP protokoll számokon megy
végig. Ugyanúgy a -p paramétert használja,
csak itt a kapu száma helyett a protokoll számát kell
megadni, az eredményeket ugyanolyan formátumban adja vissza,
mint a kapuletapogatások és ugyanazt a letapogató motort
használja, mint a kapuletapogatás. gy elég közel
áll a kapuletapogatáshoz, hogy ide tartozzon.
Amellett, hogy magában is hasznos, a protokoll letapogatáson
látszik a nyílt forráskódú programok igazi
ereje. Bár az alapötlet meglehetősen egyszerű, nem
gondoltam, hogy bele kéne vennem a programba és nem is
érkezett ilyen kérés felém. Aztán 2000
nyarán Gerhard Rieger fejében megfogalmazódott az
ötlet, készített egy nagyszerű
kiegészítést, melyben megvalósította a
letapogatást és elküldte az nmap-hackers
levelezőlistára. n beillesztettem az Nmap
forrásfájába és másnap kiadtam egy
új változatot a programból. Csak kevés
kereskedelmi programnak vannak olyan lelkes felhasználói, akik
megterveznék és tadnák a saját
fejlesztéseiket!
A protokoll letapogatás az UDP letapogatáshoz hasonlóan
működik. Ahelyett, hogy a kapuszámokat
váltogatná az UDP csomagban, IP fejléceket
küldözget, melyben a 8 bites protokollmező
változtatja. A fejlécek általában üresek,
nem tartalmaznak adatot és egyáltalán nem felelnek meg a
tesztelt protokollnak. Három kivétel van: A TCP, az UDP
és az ICMP. Ezekhez a protokollokhoz létezik a megfelelő
fejléc, mert egyrészt a legtöbb rendszer nem
hajlandó egyébként elküldeni a csomagot,
másrészt az Nmap rendelkezik az
összeállításukhoz szükséges
tudással. Ahelyett, hogy az ICMP "kapu nem
elérhető" üzenetre várakozna, a protokoll
letapogatás az ICMP protokoll nem elérhető
üzenetre vár. Ha az Nmap bármelyik protokollnál
bármilyen választ kap, akkor a protokoll nyitott
jelölést kap. Ha egy ICMP "protokoll nem
elérhető" hiba érkezik (típus 3, kód
2), akkor a protokoll zárt jelölést kap. Más ICMP
hibaüzenetek (típus 3, kód 1, 3, 9, 10 vagy 13)
esetén a protokoll szűrt jelölést kap (bár
ez azt bizonyítja, hogy ugyanakkor az ICMP protokoll nyitott). Ha
néhány ismétlés után sem érkezik
válasz, akkor a protokoll nyitott|szűrt jelölést
kap.
-b <FTP átjátszó állomás> (FTP
ugráló letapogatás)
Az FTP protokoll egy érdekes
lehetősége ( RFC 959[7]) az úgynevezett
megbízott (proxy) FTP kapcsolat. Ez lehetővé teszi a
felhasználónak, hogy csatlakozzon egy FTP
kiszolgálóhoz, majd utasítsa a kiszolgálót,
hogy fájlokat küldjön egy harmadik
kiszolgálónak. Ez a lehetőség olyan sok
visszaélésre alkalmas, hogy a legtöbb
kiszolgáló nem is támogatja. Az egyik
visszaélési lehetőség, hogy az FTP
kiszolgálót kapuletapogatásra lehet használni egy
harmadik állomás ellen. Egyszerűen arra kell
utasítani az FTP kiszolgálót, hogy küldjön
el egy fájlt a célállomás minden egyes
érdekes kapujára. A hibaüzenetek jelzik, hogy a kapu
nyitott, vagy zárt. Ez egy jó módszer a tűzfalak
megkerülésére, mivel a szervezetek FTP
kiszolgálói általában a tűzfalakon
belül vannak, hogy a többi állomásnak szabad
hozzáférése legyen a fájlokhoz. Az Nmap a
-b paraméteren keresztül támogatja az FTP
ugráló letapogatást, melynek formátuma a
következő: felhasználói
név:jelszó@
kiszolgáló:kapu. A kiszolgáló
a kihasználni kívánt FTP kiszolgáló neve,
vagy IP címe. Csakúgy, mint egy hagyományos
URL-nél, itt is elhagyható a felhasználói
név: jelszó páros, ha a névtelen
bejelentkezés engedélyezett (felhasználó:
anonymous jelszó:-wwwuser@). Szintén elhaygható a kapu
megadása (a bevezető kettősponttal együtt),
ilyenkor az alapértelmezett FTP kaput (21) használja a program a
kiszolgálón.
Ez a sérülékenység az Nmap 1997-es
megjelenésekor széles körben elterjedt volt, de
mára már nagyrészt javították. Ennek
ellenére még mindig találhatók
sérülékeny FTP kiszolgálók, tehát
megéri kipróbálni, ha már minden más
kudarcot vallott. Ha egy tűzfal megkerülése a cél,
tapogassa le a célhálózatot nyitott 21-es kaput
után kutatva (vagy bármilyen FTP szolgáltatás
után, ha az összes kaput vizsgálja változat
ellenőrzésse), azután próbálja meg az
ugráló letapogatást ezek használatával. Az
Nmap megadja, hogy az állomás sérülékeny-e
ebből a szempontból. Ha csak a nyomait szeretné
eltakarni, akkor nem szükséges kizárólag a
célhálózatban lévő gépekre
korlátoznia magát. Mielőtt nekiállna
sérülékeny FTP kiszolgálókat keresni az
Interneten, jegyezze meg, hogy a rendszergazdák nem szeretik, ha a
kiszolgálóikat ilyen célból
próbálják kihasználni.
KAPU MEGHATÁROZÁS ÉS LETAPOGATÁSI SORREND
Az előzőekben leírt letapogatási eljárások mellett az Nmap lehetőséget biztosít arra, hogy meghatározza a letapogatni kívánt kapukat és a letapogatás sorrendjét (véletlenszerűen vagy sorban). Alapesetben az Nmap letapogatja az első 1024 kaput, valamint az nmap-services fájlban felsorolt kapukat és protokollokat. -p <kaputartomány(ok)> (Csak a megadott kapu letapogatása)Ezzel a paraméterrel megadhatja a
letapogatni kívánt kapukat, így
felülbírálhatja az alapértelmezést.
Megadhatók egyedi kapuk és kaputartományok
kötőjellel elválasztva (pl. 1-1023). A tartomány
kezdő- és/vagy záróértéke
kimaradhat, ilyenkor az Nmap az 1-et vagy a 65535-öt fogja
használni. Tehát a -p- paraméterben
megadható az is, hogy a letapogatás az 1-65535 intervalumban
történjen meg. A nullás kapu letapogatása is
lehetséges, amennyiben külön megadja. Ha az IP protokoll
letapogatást használja ( -sO), akkor ez a
paraméter a letapogatni kívánt protokoll
számát adja meg (0-255).
Ha mind a TCP, mind az UDP kapukat letapogatja, külön megadhatja a
protokollt a kapuszám előtti T: vagy U:
minősítővel. A minősítő
hatása addig tart, amíg másikat nem ad meg.
Például a -p U:53,111,137,T:21-25,80,139,8080
paraméter megadásával letapogatja az 53,111 és 137
UDP kapukat, majd a listán szereplő megfelelő TCP
kapukat. Ha UDP és TCP letapogatást is akar végezni, meg
kell adnia a -sU paramétert és még legalább
egy TCP letapogatás típusát (például
-sS, -sF, or -sT). Ha nem ad meg protokoll
minősítőt, a kapuszámok minden protokoll
listába bekerülnek.
A kapuk megadhatók azzal a nevükkel is, amellyel az nmap-services
fájlban szerepelnek. A elnevezésekben használható
mind a *, mind a ? helyettesítő karakter. Például
ha le akarja tapogatni az FTP szolgáltatást, valamint az
összes olyan kaput, melynek szolgáltatásneve http-vel
kezdődik, adja meg a -p ftp,http* paramétert.
Vigyázzon a parancsértelmezők kiterjesztéseire
és tegye idézőjelbe a -p utáni
kifejezést, ha bizonytalan.
A kaputartományok bezárhatók szögletes
zárójlebe. Ekkor a megadott tartományból csak
azokat a kapukat tapogatja le, melyek szerepelnek az nmap-services
fájlban. Például a -p [-1024]
megadásával letapogathatja az nmap-services fájlban
lévő összes kaput 1024-el bezárólag.
Vigyázzon a parancsértelmezők kiterjesztéseire
és tegye idézőjelbe a -p utáni
kifejezést, ha bizonytalan.
-F (Gyors letapogatás (kevesebb kapuval) )
Arra utasítja a programot, hogy csak az
nmap-services fájlban (mely a program része) felsorolt kapukat
tapogassa le (vagy a protokollokat, ha az -sO paramétert adja
meg). Ez sokkal gyorsabb, mintha a célpont mind a 65535 kapuját
letapogatnánk. Mivel ez a lista több, mint 1200 kaput tartalmaz,
ezért az alapértelmezett TCP letapogatáshoz képest
(1650-nél több kapu) nem sokkal gyorsabb. Akkor tapasztalhat
jelentős sebesség növekedést, ha
elkészíti saját, testreszabott nmap-services
fájlját a --servicedb vagy a --datadir
paraméterekkel.
-r (Ne keverje a kapukat)
Alaphelyzetben az Nmap
véletlenszerűen tapogatja le a kapukat (kivéve
néhány elterjedten használt kaput, melyet előre
vesz a sorban). Ez a keverés normál esetben
kívánatos, de szükség esetén a -r
paraméter használatával sorrendben is letapogathatja a
kapukat.
SZOLGÁLTATÁS ÉS VÁLTOZAT ÉRZÉKELÉS
Állítsa rá az Nmap programot egy távoli állomásra és megtudhatja, hogy a 25/tcp, 80/tcp és az 53/udp kapuk nyitottak. Az nmap-services adatbázisa alapján kb. 2200 jól ismert szolgáltatás azonosítható, így az előbb felsorolt kapuk valószínűleg egy levelező- (SMTP), web- (HTTP) és névkiszolgálóra (DNS) utalnak. Ez a lekérdezés általában pontos - az esetek jelentős részében a levelezőkiszolgálók a 25-ös TCP kapun figyelnek. Ennek ellenére nem lehet csak erre alapozni a következtetéseinket! Az emberek gyakran futtatnak megszokott szolgáltatásokat furcsa kapukon. Még ha az Nmap helyesen is következtet és a fent említett kiszolgálók valóban SMTP, HTTP és DNS kiszolgálók, ez akkor sem túl so információ. Ha a cége vagy az ügyfelei részére felmérést készít a sebezhetőségekről (vagy csak egy egyszerű hálózati leltárt készít), szüksége lehet a működő levelező- és a DNS kiszolgáló típusára és változatszámára. A pontos változatszám ismeretében sokkal könnyebb meghatározni, hogy az adott kiszolgáló mely sérülékenységekre érzékeny. A változat érzékelés segít kideríteni ezt az információt. Miután valamelyik letapogatási módszer felderítette az elérhető TCP és UDP kapukat, a változat érzékelő kivallatja azokat a rajtuk futó alkalmazásokról. Az nmap-service-probes adatbázis számos próbát és válaszkifejezést tartalmaz a szolgáltatások azonosításához. Az Nmap megpróbálja meghatároznia szolgáltatás protokollját (pl. FTP, SSH, telnet, http), Az alkalmazás nevét (pl. ISC BIND, Apache httpd, Solaris telnetd), a szolgáltatás változatszámát, az állomás nevét, az eszköz típusát (pl. nyomtató, útválasztó), az operációs rendszer családját (pl. Windows, Linux) és néhány kiegészítő részletet (pl. fut-e kapcsolatra váró X kiszolgáló, az SSH milyen protokollverziót használ, vagy a KaZaA felhasználói név). Természetesen a legtöbb szolgáltatás nem adja ki az összes információt. Ha az Nmap programot SSL támogatással fordították, akkor kapcsolódik az SSL kiszolgálókhoz, hogy meghatározza a titkosítási réteg mögött található szolgáltatást. Ha RPC szolgáltatást talált, a program RPC "darálója" ( -sR) automatikusan megpróbálja kideríteni az RPC program típusát és változatát. Néhány UDP kapu nyitott|szűrt állapotban maradhat egy UDP letapogatás után, mivel a program nem tudja pontosan meghatározni az állapotát. A változat érzékelő megpróbál választ kicsalni ezekből a kapukból (csakúgy, mint a nyitott kapukból) és siker esetén nyitottra változtatja a kapu állapotát. A nyitott|szűrt TCP kapukat hasonló módon kezeli. Jegyezze meg, hogy az Nmap -A paramétere más dolgok mellett a változat érzékelést is engedélyezi. A változat érzékelés működéséről, használatáról és paraméterezéséről a https://nmap.org/vscan/ címen talál részletes leírást. Ha az Nmap kap ugyan választ egy szolgáltatástól, de az adatbázis alapján nem tudja azonosítani, kinyomtat egy különleges ujjlenyomatot és egy URL-t. Ha biztos abban, hogy milyen szolgáltatás fut az adott kapun, a megadott címen az ujjlenyomat segítségével megadhatja a szolgáltatás típusát. Szánjon erre pár percet, hogy mindenki élvezhesse az Ön felfedezésének eredményét. Ezeknek az adatoknak köszönhetően az Nmap kb. 3000 mintát ismer több, mint 350 protokollhoz. A változat érzékelés a következő paraméterekkel engedélyezhető és vezérelhető: -sV (Változat érzékelés)Engedélyezi a változat
érzékelést az előbbiekben leírt
módon. Emellett használhatja még a -A
paramétert is, mely a változat érzékelés
mellett más dolgokat is engedélyez.
--allports (Ne hagyjon ki egy kaput sem a változat
érzékelésből)
Alapesetben az Nmap változat
érzékelője átugorja a 9100/TCP kaput, mivel
néhány nyomtató mindent kinyomtat, ami erre a kapura
érkezik. Ez több oldal kinyomtatott http vagy SSL munkamenet
kéréshez vezethet. Ez a viselkedés
megváltoztatható, ha átírja vagy
eltávolítja az Exclude irányelvet az nmap-service-probes
fájlban, vagy ha megadja az --allports paramétert,
amellyel teljesen felülbírálhatja az Exclude
irányelveket.
--version-intensity <intenzitás> (Beállítja a
változat érzékelés erősségi
szintjét)
Amikor változat
érzékelést hajt végre ( -sV), az Nmap egy
sor próbát hajt végre, melyek mindegyikéhez
egy-egy gyakoriság érték van rendelve 1 és 9
között. Az alacsonyabb számú próbák
jól használhatók az általánosan
használt szolgáltatások széles
skálája ellen, míg a magasabb számúak
ritkábban hasznosak. Ezzel a paraméterrel megadhatja, hogy mely
próbák legyenek végrehajtva. Minél magasabb a
szám, annál valószínűbb, hogy a
szolgáltatás azonosítása pontosan sikerül.
Azonban jó tudni, hogy a magasabb intenzitás hosszabb
végrehajtást is jelent. A szintnek 0 és 9
közé kell esnie, az alapérték 7. Ha egy
próba az nmap-service-probes fájlban egy kapuhoz van rendelve a
ports irányelv alatt, akkor ezt a próbát az
intenzitás beállításától
függetlenül végrehajtja a program. Ezzel
biztosítható, hogy a nyitott 53-as kapukon mindig lefutnak a DNS
próbák és a 443-as kapukon az SSl próbák
stb.
--version-light (Tapintatos mód engedélyezése)
Ez egy kényelmesebb megnevezése
a --version-intensity 2 paraméternek. Ezzel a móddal a
változat érzékelés felgyorsítható,
de a szolgáltatások azonosítása is
bizonytalanabbá válik.
--version-all (Minden próba végrehajtása)
A --version-intensity 9
paraméter helyettesítése, mellyel minden kapun minde
próbát elvégez a program.
--version-trace (A változat érzékelés
nyomkövetése)
Ennek a paraméternek a
hatására az Nmap bőséges hibakeresési
információt nyomtat ki az éppen futó
változat érzékelési próbáról.
Ez egy részhalmaza a --packet-trace paraméter
által visszaadott információknak.
-sR (RPC letapogatás)
Ez az eljárás az Nmap
legtöbb kapuletapogatási eljárásával
együtt dolgozik. Veszi az összes nyitva talált TCP/UDP
kaput és elárasztja őket a SunRPC program NULL
parancsaival hogy meghatározza, melyek az RPC kapuk és milyen
programot futtatnak. Így pontosan ugyanazokat az
információkat szerezheti meg, melyeket az rpcinfo -p
paranccsal, még akkor is ha a célpont tűzfal
mögött van (vagy TCP burkoló védi). Az RPC
letapogatáshoz jelenleg nem használhatók
csalétkek. Ez a letapogatás automatikusan lezajlik, ha a
változat érzékelést ( -sV)
engedélyezi. Mivel a változat érzékelés
tartalmazza ezt a letapogatást és sokkal átfogóbb
eredményt ad, ezért a -sR paraméterre
ritkán van szükség.
OPERÁCIÓS RENDSZER ÉRZÉKELÉSE
Az Nmap egyik legjobban ismert tulajdonsága az operációs rendszerek távoli felismerése a TCP/IP verem ujjlenyomata alapján. Az Nmap egy sor TCP és UDP csomagot küld a célpont felé és gyakorlatilag a válaszok minden egyes bitjét kielemzi. Tesztek tucatjainak végrehajtása után - mint például a TCP ISN mintavételezés, a támogatott TCP beállítások, az IP ID mintavételezés és a kezdeti ablakméret ellenőrzése - az Nmap összehasonlítja az eredményeket az nmap-os-db adatbázisban tárolt több, mint 800 ismert ujjlenyomattal és egyezés esetén kiírja az adott operációs rendszer részleteit. Minden ujjlenyomathoz tartozik egy kötetlen formátumú szöveges leírás az operációs rendszerről és egy besorolás, mely megadja a gyártó nevét (pl. SUN), az alap operációs rendszert (pl. Solaris), az operációs rendszer genercióját (pl. 10) és az eszköz típusát (általános célú, útválasztó, kapcsoló, játékkonzol stb.). Ha az Nmap nem tudja kitalálni az operációs rendszer típusát és a feltételek jók (pl. található legalább egy nyitott és egy zárt kapu), az Nmap megad egy webcímet, ahová elküdheti az ujjlenyomatot az operációs rendszer típusával, feltéve ha biztos benne. Ezzel hozzájárulhat az ismert operációs rendszerek adatbázisának bővítéséhez és segíthet az Nmap programot még pontosabbá tenni mindenki számára. Az operációs rendszer érzékelésének során számos olyan adatot is felhasznál a program, melyeket más folyamatok során már begyűjtött. Az egyik az üzemidő felmérése, mely a TCP időbélyeg paramétert használja (RFC 1323) annak kiderítésére, hogy az eszközt mikor indították újra legutoljára. Ez csak azoknál az eszközöknél működik, melyek kiadják ezt az információt. A másik a TCP sorszám megjósolhatóságának osztályozása. Ez azt méri, hogy mennyire nehéz hamisított TCP kapcsolatot felépíteni a célponttal. Ez hasznos lehet a forrás IP cím alapú bizalmi kapcsolatokat (távoli bejelentkezés, tűzfalak, szűrők stb.) kihasználó támadások esetén a támadás valódi forrásának az elrejtésében. Ezeket a megtévesztéseket ma már ritkán használják, de elég sok rendszer sérülékeny velük szemben. Az aktuális bonyolultsági szám egy statisztikai mintavételezés alapján alakul ki és változhat. Általában jobb az angol nyelvű szöveges osztályozást használni, mint például a „méltó kihívás (worthy challenge)” vagy az „egyszerűen vicc (trivial joke)”. EZek csak a bőbeszédű ( -v) üzemmód normál kimenetén jelennek meg. Ha a bőbeszédű üzemmódot a -O paraméter mellett használja, az IP ID sorszám előállításról is jelentést kap. A legtöbb eszköz a „növekményes (incremental)” osztályba tartozik, ami azt jelenti, hogy minden egyes elküldött csomagnál növelik az IP fejléc ID mezőjének értékét. Ez sebezhetővé teszi őket néhány fejlett információ gyűjtési és megtévesztési támadással szemben. Az operációs rendszer érzékelésének működésével, használatával és testreszabásával kapcsolatban a https://nmap.org/osdetect/ címen talál egy leírást. Az operációs rendszer érzékelése és vezérlése a következő paraméterekkel lehetséges: -O (Operációs rendszer érzékelésének engedélyezése)Engedélyezi az operációs
rendszer érzékelését a fentiekben leírt
módon. Választhatja a -A paramétert is, mellyel az
operációs rendszer érzékelése mellett
néhány más dolgot is elvégezhet.
--osscan-limit (Az operációs rendszer
érzékelését csak az ígéretes
állomásokra korlátozza)
Az operációs rendszer
érzékelése sokkal hatékonyabb, ha legalább
egy nyitott és egy zárt TCP kapu található. Ennek
a paraméternek a hatására az Nmap csak azokon a
célpontokon hajtja végre az operációs rendszer
érzékelését, amelyek megfelelnek ennek a
kritériumnak. Ezzel rengeteg idő megtakarítható,
különösen ha -PN letapogatást hajt
végre sok célponton. Ennek csak akkor van
jelentősége, ha a -O vagy a -A paraméterrel
engedélyezte az operációs rendszer
érzékelését.
--osscan-guess; --fuzzy (Eredmények
találgatása)
Ha az Nmap nem talál pontosan
egyező operációs rendszert, esetenként
felkínálhat lehetséges közelítő
eredményeket. Alaphelyzetben ennek a közelítő
eredménynek nagyon közelinek kell lennie. Ezeknek a
paramétereknek a hatására az Nmap sokkal
agreszívebben próbálja kitalálni az
operációs rendszer típusát. Az Nmap ezután
is jelzi, ha nem talált tökéletes egyezést
és minden találgatás mellé megadja a
valószínűséget is
(százalékosan).
--max-os-tries (Maximális próbálkozások
száma)
Amikor az Nmap operációs
rendszer érzékelést végez egy célponton
és nem talál tökéletes egyezést,
általában ismét tesz egy próbát.
Alaphelyzet az Nmap ötször próbálkozik, ha a
feltételek jók az ujjlenyomat ellenőrzéshez
és kétszer, ha nem jók. Ha alacsonyabb
--max-os-tries értéket ad meg (pl. 1),
felgyorsíthatja a folyamatot, de elmulaszthat egy olyan
próbát, ami esetleg pontosan azonosíthatja az
operációs rendszert. Emellett egy magasabb érték
több próbát tesz lehetővé, ha a
feltételek kedvezőek. Ez ritkán hasznos, kivéve ha
az adatbázis bővítése
céljából szeretne pontosabb ujjlenyomatot
előállítani.
NMAP PARANCSFÁJL MOTOR (NMAP SCRIPTING ENGINE (NSE))
Az Nmap parancsfájl motor (NSE) egyesíti az Nmap hatékony hálózatkezelését a Lua[8] könnyűsúlyú parancsnyelv sokoldalúságával, így kínálva számtalan lehetőséget. A https://nmap.org/nse/ címen bőséges dokumentációt talál az NSE-ről (beleértve a programozói felületet is). Az NSE célja, hogy hatékony környezetet biztosítson az Nmap képességeinek kiterjesztéséhez és a felhasználók számára egyszerűbbé tegye testreszabott tesztek létrehozását. Az NSE felhasználási területei: Kiterjesztett változat érzékelés (kategória version) — Bár az Nmap rendelkezik egy saját szolgáltatás- és változatérzékelő rendszerrel, mely hatékonyságában és működési körében páratlan, egy bonyolultabb próbákat igénylő szolgáltatás felderítésekor ez az erő nem használható ki. Például a Skype-Protocol 2-es változatának azonosításához két független próbacsomagot kell elküldeni, melyre a beépített rendszer nem képes. Egy egyszerű NSE parancsfájl végre tudja hajtani ezt a feladatot és frissíteni tudja a kapukhoz tartozó szolgáltatások információit. Károkozó érzékelés (kategóriák malware és backdoors) - Mind a támadók, mind a féregprogramok gyakran hagynak maguk után hátsó bejáratokat - például a levélszemetek küldői gyakran használnak szokatlan kapukon működő SMTP kiszolgálókat a leveleik továbbítására, vagy a betörők egyfajta FTP kiszolgálót használva próbálnak meg hozzáférni kritikus adatokhoz. Pár sor Lua kóddal ezek a rések könnyen felderíthetők. Sebezhetőség érzékelés (kategória vulnerability)- Az NSE képességeinek kihasználásával könnyen azonosíthat olyan veszélyeket, mint például az alapértelmezett jelszavak, vagy az SMTP kiszolgálók levél-átjátszási képessége tetszőleges tartományokból. Hálózati felderítés és Információgyújtés (kategóriák safe, intrusive és discovery) — Egyrészt a parancsnyelv és a hatékony aszinkron hálózati programfelület, másrészt a korábbi letapogatások során begyűjtött információk segítségével az NSE lehetőséget nyújt ara, hogy a célgépen futó szolgáltatásokhoz ügyfélprogramokat készítsen. Ezekkel az ügyfelekkel olyan információkat is begyűjthet, mint például az elérhető NFS/SMB/RPC megosztások, egy IRC hálózaton lévő csatornák vagy az éppen bejelentkezett felhasználók száma. A különböző felhasználási formák miatt és a megfelelő parancsfájl kiválasztásának leegyszerűsítése érdekében minden parancsfájl tartalmaz egy mezőt, mellyel a fenti kategóriák bármelyikébe (akár több kategóriába is) besorolható. A kategóriák és parancsfájlok kapcsolatának nyilvántartására egy script.db nevű fájl is telepítésre kerül a parancsfájlok mellett. Így például ha egy gépről szeretné megállapítani, hogy fertőzött-e valamilyen féregprogrammal, az Nmap által biztosított egyik parancsfájl segítségével és az nmap --script=malware [célpont] parancs lefuttatásával ezt könnyen kiderítheti. A version kategóriába sorolt parancsfájlok mindig lefutnak, beleértve a parancsfájl letapogatás kiválasztását is. A script.db fájl maga is egy Lua parancsfájl és a --script-updatedb paraméteren keresztül frissíthető. Minden NSE parancsfájl egy darab Lua kód, mely két szakaszból áll: egy teszt, hogy az adott parancsfájl lefuttatható-e egy megadott állomáson vagy kapun (ezek neve hostrule vagy portrule) és egy action szakasz, mely akkor fut le, ha az előző teszt visszatérési értéke igaz. A parancsfájlok az Nmap által korábban összegyűjtött legtöbb információhoz hozzáférnek. Ezek minden állomásnál az IP cím, az állomás neve (ha elérhető) és az operációs rendszer. Ha a parancsfájl célja egy kapu, akkor hozzáfér a kapu számához, a protokollhoz (tcp, udp vagy ssl), a kapu mögött futó szolgáltatás nevéhez és feltételesen a változat érzékeléssel megszerzett információkhoz. Az NSE parancsfájlok hagyományosan rendelkeznek egy nse kiterjesztéssel. Bár jelenleg nem szükséges követnie ezt a szokást, ez a jövőben változhat. Az Nmap figyelmeztetni fogja, ha egy fájlnak más a kiterjesztése. Az NSE-ről további bőséges dokumentációt találhat (beleértve a programozói felület leírását) a https://nmap.org/nse/ címen. -sCvégrehajt egy parancsfájl
alapú letapogatást az alap paransfájl készlettel
(egyenértékű a --script=safe,intrusive
paraméterrel
--script <paransfájl
kategória|könyvtár|fájlnév|all>
Lefuttat egy parancsfájl alapú
letapogatást (mint az -sC) a kiválasztott
parancsfájlokkal. A paraméterek lehetnek parancsfájl
kategóriák, meghatározott parancsfájlok,
parancsfájlokat tartalmazó könyvtárak, melyek a
célpont ellen lesznek kipróbálva. Az Nmap a
paramétereket először kategóriáknak
próbálja értelmezni, azután fájloknak vagy
könyvtáraknak. Abszolút útvonalak
használata egyértelmű, a relatív útvonalak
keresési sorrendje az első találatig: --datadir/;
$(NMAPDIR)/; ~user/nmap/ (Windows alatt nem); NMAPDATADIR/ vagy ./. Ezen
könyvtárak mindegyikében a scripts/
alkönyvtár is ki lesz próbálva. Az all
paraméter megadásával az Nmap adatbázisában
lévő valamennyi parancsfájl végrehajtódik.
Ha egy megadott könyvtárat megtalál, az Nmap betölti
az összes NSE parancsfájlt (minden nse
kiterjesztésű fájlt) a könyvtárból.
A fájloknak nse kiterjesztéssel kell rendelkezniük. Az
Nmap a parancsfájlok keresésekor nem vizsgálja meg az
alkönyvtárakat. Ha egyedi fájlnevet adott meg, akkor nem
kötelező a fájlnak nse kiterjesztéssel
rendelkeznie.
Alaphelyzetben az Nmap parancsfájlok az Nmap
adatkönyvtárának scripts
alkönyvtárában találhatóak. A
scripts/script.db adatbázisban tárolt paranscfájlok
indexeltek. Az adatbázis tartalmazza az összes
kategóriához tartozó összes parancsfájlt.
Egy parancsfájl több kategóriához is
tartozhat.
--script-args=<név1=érték1,név2={név3=érték3},név4=érték4>
Paramétereket adhat át az NSE
parancsfájloknak. A paraméterek név=érték
párokban kerülnek át a parancsfájlokhoz. Az
átadott paraméterek egy Lua táblázatban lesznek
tárolva és feldolgozva, melyhez valamennyi parancsfájl
hozzáfér. A nevek karakterláncként lesznek kezelve
(melyeknek alfanumerikus értékeknek kell lenniük)
és a paraméter táblában kulcsként lesznek
használva. Az értékek lehetnek karakterláncok vagy
maguk is táblázatok (‘{’ és
‘}’ közé zárva. Az
altáblázatok segítségével egyes
parancsfájloknál felülbírálhatók a
paraméterek (mondjuk ha minden parancsfájlhoz más
felhasználói név/jelszó párost akar
használni). Például átadhatók a
következő, vesszővel elválasztott
paraméterek: user=bar,password=foo, és
anonFTP={password=[email protected]}. Ha egy parancsfájl
paramétereit felül akarja bírálni,
használja az altáblázat indexelésére a
parancsfájl azonosítóját (id), mivel a
parancsfájlok csak így szerezhetnek tudomást a
különleges paramétereikről.
--script-trace
Ez a paraméter ugyanazt teszi, mint a
--packet-trace, csak egy ISO szinttel feljebb. Ha megadja ezt a
aparamétert, akkor az összes, parancsfájl által
generált kimenő és bejövő forgalom
nyomtatásra kerül. A megjelenített
információ tartalmazza a kommunikációs protokollt,
a forrást, a célt és az átvitt adatot. Ha az
átvitt adatok több, mint 5%-a nem nyomtatható, akkor a
kimenet hexadecimális alakban jelenik meg.
--script-updatedb
Frissíti a parancsfájl
adatbázist, mely a kategória-cimkék és a
fájlnevek közti kapcsolatokat tárolja. Az
adatbázis egy Lua parancsfájl, mely akkor lesz
értelmezve, amikor a --script paraméterben megadott
kategóriák közül ki kell választani a
szükséges parancsfájl készletet. Akkor kell
lefutatni, amikor megváltozik egy parancsfájl kategória
mezője, ha új parancsfájlokat adott hozzá a
készlethez, vagy ha eltávolított néhány
parancsfájlt a scripts/ könyvtárból.
IDŐZÍTÉS ÉS TELJESÍTMÉNY
Az Nmap fejlesztésének legfontosabb szempontja a teljesítmény. Egy alapértelmezett letapogatás ( nmap gépnév) egy helyi hálózaton lévő gépen nagyjából 0.2 másodpercig tart. Ez épp egy pislogásnyi idő, amely azonban egyre nő, ahogy növekszik a célpontként meghatározott gépek száma. Továbbá bizonyos letapogatási formák, mint például az UDP letapogatás, vagy a változat érzékelés számottevően megnövelik a letapogatás időtartamát. Ugyanilyen hatása van bizonyos tűzfal beállításoknak, különösen ha korlátozták az egységnyi idő alatt kibocsátható válaszok számát. Bár az Nmap ezeknek a letapogatásoknak a felgyorsítására sok párhuzamosítást és fejlett eljárásokat használ, a felhasználó alapjaiban befolyásolhatja az Nmap működését. Szakértő felhasználók gondosan összeállított Nmap parancsokkal rövid idő alatt megszerezhetik a számukra fontos információkat. A letapogatási idő csökkenthetők a nem kritikus tesztek elhagyásával és az Nmap legfrissebb változatának telepítésével (gyakran történnek teljesítményt növelő változtatások). Számottevő javulás érhető el az időzítési paraméterek helyes megválasztásával is. Ezek a paraméterek az alábbiakban találhatóak. Néhány paraméternél használható a time kiegészítés is. Alaphelyzetben ez milliszekundumban értendő, de az érték után írt 's’, ‘m’ vagy ‘h’ karakterekkel megadhat másodperces, perces vagy órás időtartamot is. Például a --host-timeout paraméternek átadott 900000, 900s és 15m értékek mind ugyanazt jelentik. --min-hostgroup <méret>; --max-hostgroup <érték> (A párhuzamosan letapogatható állomások száma)Az Nmap képes kapuletapogatást
és változat érzékelést végezni
egyszerre több állomáson is. Az Nmap ezt úgy
csinálja, hogy az IP tartományt csoportokra osztja és
egyszerre tapogat le egy csoportot. Általában a nagyobb
csoportok hatékonyabbak. A hátránya, hogy az egyes
állomásokhoz tartozó eredmények csak akkor
érhetők el, ha végetért a teljes csoport
letapogatása. Tehát ha az Nmap 50-es csoportmérettel lett
elindítva, a felhasználó addig nem kap semmilyen
eredményt (kivéve a bőbeszédű
üzemmód frissítési információit),
amíg az első 50 állomás letapogatása el nem
készült.
Ennek a konfliktusnak a feloldására az Nmap egy kompromisszumos
megoldást használ. Kezdésként csak egy 5
elemből álló csoportot hoz létre, így az
első eredmények gyorsan megérkeznek. Ezután a
csoportméretet folyamatosan növeli, akár 1024-ig. A
kezdeti csoportméret pontos értéke a megadott
paraméterektől függ. A hatékonyabb
működés érdekében az Nmap nagyobb
csoportokat hoz létre az UDP letapogatásoknál, illetve a
csak néhány TCP kaput érintő
letapogatásoknál.
Ha a --max-hostgroup paraméterben megadta a maximális
csoportméretet, az Nmap ezt nem fogja túllépni. Ha
megadja a --min-hostgroup paramétert, az Nmap
megpróbálja a csoportméretet efölött
tartani. Az Nmap kialakíthat kisebb csoportot is a megadottnál,
ha nem áll rendelkezésre elegendő állomás a
megadott minimális csoportméret
létrehozásához. Megadható mindkét
határérték is, hogy a csoportméret egy
meghatározott sávban maradjon, de erre ritkán van
szükség.
Ezeknek a paramétereknek nincs hatásuk a letapogatásnak
abban a részében, mikor még csak az
állomások felderítése történik. Ebbe
beletartozik az egyszerű visszhang letapogatás is( -sP).
Az állomások felderítése mindig nagy csoportokban
történik a sebesség és a pontosság
növelésének érdekében.
Ezeknek a paramétereknek az elsődleges haszna egy megfelelő
méretű minimális csoprt létrehozása,
így a teljes letapogatás gyorsabban lefut. Egy megszokott
választás a 256-os csoport, így egy hálózat
C osztályú blokkokban tapogatható le. Sok kaput
tartalmazó letapogatásnál ezt a számot nem
célszerű túllépni. Ha a letapogatás csak
néhány kapura korlátozódik, a csoportméret
akár 2048-ig (vagy tovább) is növelhető.
--min-parallelism <szám>; --max-parallelism
<szám> (Párhuzamos próbák
beállítása)
Ezekkel a paraméterekkel
meghatározható, hogy az állomások egy csoportja
felé párhuzamosan hány próba
küldhető. Ez a kapuk letapogatására és az
állomások felderítésér egyaránt
vonatkozik. Alapesetben az Nmap a hálózat
teljesítménye alapján kiszámítja az
ideális - de folyton változó -
párhuzamosság mértékét. Ha az
átvitel során csomagvesztés alakul ki, az Nmap
lassít és kevesebb próbát küld ki. Az
ideális próbaszám a hálózat
minőségének javulása alapján lassan
emelkedik. Ezekkel a paraméterekkel egy minimum és egy maximum
határt szabhat ezeknek az értékeknek. Ha a
hálózat megbízhatatlannak bizonyul, a
párhuzamosság értéke akár 1-re is
csökkenhet, míg tökéletes feltételek
esetén a párszázas értéket is
elérheti.
A legáltalánosabb felhasználás, mikor a
--min-parallelism értékét egynél magasabbra
állítják, hogy felgyorsítsák a
gyengébb teljesítményű állomások
vagy hálózatok letapogatását. Ezzel a
paraméterrel eléggé kockázatos játszani,
mert egy túl magas érték ronthatja a pontosságot.
Ennek a paraméternek az állításával
korlátozzuk az Nmap azon képességét, hogy a
hálózat paraméterei alapján dinamikusan
szabályozza a párhuzamos működést. A 10-es
érték elég jó lehet, de érdemesebb ezt a
paramétert csak a legvégső esetben
beállítani.
A --max-parallelism paraméter szintén
beállítható 1-re, ezzel megakadályozható,
hogy az Nmap egyszerre egynél több próbát
küldjön a célpont felé. Ez jól
használható a --scan-delay paraméterrel
együtt (lásd később), bár ez utóbbi
önmagában is jól használható.
--min-rtt-timeout <idő>, --max-rtt-timeout
<idő>, --initial-rtt-timeout <idő>
(Próbák érvényességi ideje)
Az Nmap kezel egy futó
időzítőt annak meghatározására, hogy
mennyi ideig várjon egy próba esetén a válaszra,
mielőtt feladná vagy újra
megpróbálná. Ennek a kiszámítása
azok alapján történik, hogy az előző
próbákra mennyi idő alatt érkezett válasz.
Ha a hálózati késleltetés jelentős
és folyton változik, ez az érték akár
néhány másodpercre is nőhet. Az
érték indulhat egy magasabb szintről is és egy nem
válaszoló állomás esetén ezen a szinten is
marad.
Az alapértelmezettnél alacsonyabb --max-rtt-timeout
és --initial-rtt-timeout érték jelentősen
lerövidíti a letapogatás idejét. Ez
különösen igaz a visszhang nélküli (
-PN) letapogatásoknál és az erős
tűzfallal védett hálózatoknál. Azonban nem
szabad túl agresszíven gondolkodni. Túl alacsony
értéknél a letapogatási idő meg is
nőhet, mivel a próbák ideje lejár és
ismétlésre kerülnek, mialatt az előző
próbákra adott válaszok még úton vannak
visszafelé.
Ha az összes állomás egy helyi hálózaton
található, 100 milliszekundum --max-rtt-timeout
érték eléggé agresszív. Ha menet
közben útválasztó is található,
érdemesebb először az ICMP ping eszközzel, vagy
más csomagösszeállító programmal
(például hping2) letesztelni a hálózat
minőségét. Válassza ki 10 csomagból a
leghosszabb válaszidejűt. Az --initial-rtt-timeout
értéke lehet ennek a duplája, a --max-rtt-timeout
pedig a három- vagy négyszerese. A maximum RTT
értékét általában nem érdemes 100
milliszekundumnál kisebbre és 1 másodpercnél
nagyobbra választani.
A --min-rtt-timeout egy ritkán használt paraméter,
de hasznos lehet, ha a hálózat annyira megbízhatatlan,
hogy az Nmap alapértékei is túl agresszívnek
bizonyulnak.
--max-retries <próbák> (Hányszor küldje
újra egy kapura a letapogatási próbát)
Ha az Nmap nem kap választ aegy
letapogatási próbára, ez jelentheti azt, hogy a kaput
tűzfallal szűrik, vagy a válasz elveszett a
hálózatban. De jelentheti azt is, hogy a kapu forgalma
limitált és átmenetileg nem tud válaszolni.
Így az Nmap ismét elküldi a próbát. Ha az
Nmap gyenge hálózati teljesítményt
érzékel, ezt többször is megismételheti
mielőtt feladná a próbálkozást. Bár
ez javítja a pontosságot, de egyben elnyújtja a
letapogatás idejét is. Ha a teljesítmény fontos
szempont, a letapogatás felgyorsítható az
újrapróbálkozások számának
korlátozásával. Megadhat akár --max-retries
0 értéket is, hogy megakadályozza az
újrapróbálkozást, azonban ez ritkán
ajánlott.
Az alapérték (ha nem használ -T sablont) 10
ismétlés. Ha a hálózat megbízható
és a célállomás forgalmát nem
szabályozták, az Nmap általában csak egyszer
ismétli meg a próbát. Így a legtöbb
célpont letapogatására nincs hatással, ha a
--max-retries értékét például 3-ra
csökkenti. Ilyen alacsony értékek csak a lassú
(korlátozott) célállomások
letapogatását gyorsítják fel. Mivel adatokat
veszíthet azzal, ha az Nmap korábban feladja egy kapu
letapogatását, ezért hasznosabb a --host-timeout
paraméter időzítésének
lejártát megvárni és elveszteni a
célponttal kapcsolatos valamennyi adatot, mint hiányos adatokkal
dolgozni.
--host-timeout <idő> (Lassú
célpontoknál ennyi idő után feladja a
próbálkozást)
Néhány állomás
letapogatása hosszú idő vesz igénybe. Ezt
okozhatja gyenge vagy megbízhatatlan hálózati
eszköz vagy program, a forgalom szabályozása, vagy egy
szigorú szabályokkal rendelkező tűzfal. A
letapogatott állomások leglassabb néhány
százaléka emésztheti fel a letapogatási idő
nagyrészét. Néha jobb csökkenteni az
időveszteséget és átugrani az ilyen
célpontokat már az elején. Adja meg a
--host-timeout paraméterben azt a maximális időt,
amennyit hajlandó egy-egy állomás válaszára
várni. Hasznos lehet a 30m beállítás, így
az Nmap nem tölt fél óránál többet
egy állomás vizsgálatával. Mivel ezalatt az Nmap
más állomásokat is vizsgálni tud, ezért ez
a fél óra nem tekinthető teljes veszteségnek. Ha
egy állomásnak lejárt az időzítése,
az Nmap kihagyja a listából. Nen készül kapulista,
nincs operációs rendszer felderítés és
változat érzékelés sem.
--scan-delay <idő>; --max-scan-delay
<idő> (A próbák közti
késleltetés)
Ezzel a paraméterrel utasíthatja
az Nmap programot, hogy a célpont felé küldendő
próbák között a megadott időtartamot
várjon. Ez különösen hasznos olyan
célpontok esetében, amelyeknek forgalma szabályozott. A
Solaris állomások (sok mással egyetemben)
például az UDP letapogatási próbákra
másodpercenként csak egy ICMP választ küldenek.
Minden további elküldött próba csak
veszteség. A --scan-delay értékének 1s-os
beállításával az Nmap lelassítható
erre a sebességre. Az Nmap megpróbálja
érzékelni a forgalomszabályzást és pontosan
beállítani a próbák közti
késleltetést, azonban nem okoz gondot az érték
kézzel történő megadása sem.
Amikor az Nmap növeli a próbák közti
késleltetést, hogy megbirkózzon a
forgalomszabályzással, a letapogatás drámaian
lelassul. A --max-scan-delay paraméterrel megadhatja a
két próba közti legnagyobb megengedett
késleltetést. Ha ezt az értéket túl
alacsonyra választja, az feleslegesen újraküldött
csomagokat generál, ami egy szigorú
forgalomkorlátozással működő
állomásnál kihagyott kapukhoz vezethet.
A --scan-delay paraméter másik felhasználása
a küszöbérték figyelés alapján
működő behatolás érzékelő
és megelőző rendszerek (IDS/IPS)
megtévesztése.
--defeat-rst-ratelimit
Sok állomás hosszú
késleltetésű forgalomszabályzást
használ a kiküldhető ICMP hibaüzenetek
(például kapu nem elérhető)
mennyiségének korlátozására.
Néhány rendszer ugyanilyen korlátozásokat
használ az RST (reset) csomagok esetébenis. Ez drámaian
lelassítja az Nmap működését, mivel
megpróbál alkalmazkodni ehhez a korlátozáshoz. A
--defeat-rst-ratelimit paraméterrel utasíthatja az Nmap
programot, hogy hagyja figyelmen kívül az ilyen
korlátozásokat (például a SYN
letapogatásnál, mely a nem válaszoló kapukat nem
nyitott állapotúként kezeli).
Ennek a paraméternek a használata csökkenti a
pontosságot, hiszen néhány kapu elérhetetlennek
bizonyul, mivel az Nmap nem vár eléggé sokáig a
korlátozott RST válaszra. Egy SYN letapogatásnál a
válasz nélküli kapuk jelölése szűrt
lesz ahelyett, hogy az RST csomag megvárásával
zárt jelölést kapna. Ez a paraméter hasznos lehet
akkor, ha csak a nyitott kapuk érdekesek és nem kell
különbséget tenni a zárt és a szűrt
kapuk között.
-T <paranoid|sneaky|polite|normal|aggressive|insane>
(Időzítési sablon)
Bár az előzőekben
tárgyalt időzítési paraméterek
eléggé hatékonyak és eredményesek, de
néhány felhasználó túl bonyolultnak
találhatja őket. Ráadásul a megfelelő
értékek kiválasztása gyakran hosszabb idő
igényel, mint az optimalizálni kívánt
letapogatási művelet maga. Az Nmap felkínál egy
egyszerűbb megközelítést is hat
időzítési sablon segítségével.
Ezeket megadhatja a -T paraméterrel és a számukkal
(0–5) vagy a nevükkel. A sablonok nevei: paranoid (
0), trükkös [sneaky]) ( 1), udvarias
[polite] ( 2), normál [normal] ( 3),
agresszív [aggressive] ( 4) és rült
[insane] ( 5). Az első kettő a
behatolásérzékelők
megtévesztésére szolgál. Az udvarias mód
lassú letapogatást végez kevesebb
sávszélességet, valamint a
célállomáson kevesebb erőforrást
használva. A normál mód az alapértelmezett,
így a -T3 paraméter megadása semmilyen
változást nem idéz elő. Az agresszív
mód felgyorsítja a letapogatást azt feltételezve,
hogy gyors és megbízható hálózatot
használ. Végül az őrült mód azt
feltételezi, hogy egy különösen gyors
hálózatot használ és a sebesség
érdekében hajlandó feláldozni valamennyit a
pontosságból.
Ezekkel a sablonokkal megadható, hogy a letapogatás mennyire
legyen agresszív, de meghagyja a lehetőséget az Nmap
programnak, hogy az időzítéseket maga álltsa be. A
sablonok ezen kívül elvégeznek néhány olyan
sebesség beállítást, melyek
önálló paraméterként jelenleg nem
adhatók meg. Például a -T4 paraméter
megakadályozza, hogy a dinamikusan változó
letapogatásikésleltetés a TCP kapukon meghaladja a 10
milliszekundumot, míg a -T5 paraméter ugyanezt az
értéket 5 milliszekundumra korlátozza. A sablonok mellett
továbbra is használhatóak az egyedi
időzítési paraméterek és ezek minden
esetben felülbírálják a sablonokban
beállított alapértékeket. Modern és
megbízható hálózatok letapogatása
esetén ajánlott a -T4 paraméter használata.
Tartsa meg ezt a paramétert még akkor is, ha egyedi
időzítési paramétereket használ, így
kihasználhatja a sablonban lévő kisebb extra
optimalizációt is.
Ha tisztességes szélessávú vagy ethernet kapcsolatot
használ, javasolt a -T4 paraméter állandó
használata. Néhányan szeretik használni a
-T5 paramétert, ám ez sok esetben túl
agresszív lehet. Vannak akik a -T2 paramétert szeretik
használni, mert azt gondolják, hogy így kisebb
valószínűséggel döntik romba a
célpontot, vagy mert magukat általában udvarias embernek
gondolják. Ők azonban gyakran nem veszik észre, hogy a
-Tpolite valójában milyen lassú. Ez a
letapogatás tízszer hosszabb is lehet, mint egy
alapértelemeztt. Az alapértelmezett
időzítésnél ( -T3) ritkán fordulnak
elő összeomlások vagy sávszélesség
problémák, ezért vatoss letapogatásnál
célszerű ezt használni. Ezeknek a
problémáknak a csökkentésére sokkal
alkalmasabb a változat érzékelés elhagyása,
mint az időzítési paraméterek
állítgatása.
Bár a -T0 és -T1 paraméterek hasznosak a
behatolásérzékelők
megtévesztésére, de sok célgép vagy kapu
esetén a letapogatási idő különösen
elnyújtják. Ilyen hosszú letapogatások
esetén hasznosabb az időzítési paraméterek
kézzel történő beállítása,
mint a -T0 és -T1 paraméterekhez tartozó
konzerv értékek használata.
A T0 fő működési elve a letapogatások
sorbaállítása, így egyszerre csak egy kaput
tapogat le és a minden próba után vár 5 percet. A
T1 és T2 beállításai
hasonlóak, de a próbák között csak 15
másodpercet, illetve 0.4 másodpercet várnak. A T3
az Nmap alapértelmezett beállítása, mely
már használja a párhuzamos működést
is. A T4 paraméter megfelel a --max-rtt-timeout 1250
--initial-rtt-timeout 500 --max-retries 6
beállításoknak és a TCP letapogatási
késleltetést 0.01 másodpercre állítja. A
T5 megfelel a --max-rtt-timeout 300 --min-rtt-timeout 50
--initial-rtt-timeout 250 --max-retries 2 --host-timeout 15m
beállításoknak és a TCP letapogatási
késleltetést 5 milliszekundumra állítja.
TŰZFAL/IDS MEGKERÜLÉS ÉS BECSAPÁS
Az Internet úttörőinek szeme előtt egy teljesen nyitott hálózat lebegett, egy univerzális IP címtartománnyal, melyben bárki bárkivel kapcsolatot létesíthet. Itt bármely állomás információt kérhet és adhat bármely állomásnak. Az emberek a munkahelyükről is elérhetik az otthoni rendszereiket, beállíthatják a légkondicionálót, vagy kinyithatják az ajtó egy korán érkezett vendég előtt. Azonban a címtartomány szűkössége és bizonyos biztonsági megfontolások miatt ennek a látomásnak a megvalósítása nehézkessé vált. Az 1990-es évek elején a cégek tűzfalakat kezdtek telepíteni azzal a kifejezett szándékkal hogy az információ szabad áramlását akadályozzák. Nagyméretű hálózatokat kerítettek le az Internetről alkalmazás szűrőkkel, hálózati címfordítókkal és csomagszűrőkkel. Az információ szabad áramát szigorúan szabályozott csatornákba kényszerítették. A hálózati akadályok, mint például a tűzfalak nagymértékben megnehezítik egy hálózat felderítését. Nehezebbé teszik a hétköznapi hálózati felderítést, mivel éppen ebbőlk a célból tervezik őket. Mindezek ellenére az Nmap számos lehetőséget kínál az ilyen komplex hálózatok megértéséhez és a szűrők működésének ellenőrzéséhez. Arra is lehetőséget biztosít, hogy bizonyos gyengén kivitelezett védelmeket meg tudjunk kerülni. Az egyik legjobb módszer a saját hálózat viselkedésének megértésére, ha megpróbálja legyőzni azt. Helyezze magát a támadó szemszögébe és próbáljon ki néhány technikát ebből a fejezetből a saját hálózata ellen. Indítson el egy FTP ugráló letapogatást, egy üresjárati letapogatást, csomagtöredék alapú támadást vagy próbáljon alagutat létrehozni egy saját proxy kiszolgálón keresztül. Hogy tovább korlátozzák a hálózati aktivitást, a társaságok egyre gyakrabban ellenőrzik a hálózati forgalmat behatolásérzékelő rendszerekkel (IDS). Az összes nagyobb ilyen rendszer olyan szabálykészlettel érkezik, mely képes érzékelni az Nmap letapogatásait, mivel az ilyen letapogatások általában egy közelgő támadás előjelei. A legtöbb ilyen terméket azóta átalakították behatolás megelőző rendszerré (IPS), mivel képesek blokkolni a gyanúsnak ítélt forgalmat. A hálózati rendszergazdák és az IDS rendszerek szállítóinak nagy bánata, hogy a csomagok egyszerű analizálásával nagyon nehéz felismerni a rossz szándékot. A kellő türelemmel és szakértelemmel rendelkező támadók az Nmap egyes paramétereinek a segítségével könnyen megkerülhetik az IDS rendszereket. Ezalatt a rendszergazdáknak meg kell küzdeniük a rengeteg téves jelzéssel, ahol az ártatlan forgalom könnyen válthat ki riasztást vagy okozhatja a forgalom blokkolását. Időnként emberek azt javasolják, hogy az Nmap ne biztosítson lehetőséget a tűzfalak megkerülésére, vagy az IDS rendszerek megtévesztésére. Azzal érvelnek, hogy ezeket sokkal inkább fogja egy támadó rossz szándékkal használni, mint egy rendszergazda a biztonság növelésére. Ezzel a logikával az a probléma, hogy a támadók akkor is ezeket a módszereket fogják használni, legfeljebb más eszközt fognak használni, vagy maguk írják bele azokat az Nmap programba. Eközben a rendszergazdák egyre nehezebben fogják tudni ellátni a munkájukat. Sokkal jobb védekezés egy modern, folyamatosan javított FTP kiszolgálót használni, mint egy FTP ugráló letapogatást megvalósító program terjesztését megakadályozni. Nincs varázsfegyver (vagy Nmap paraméter) a tűzfalak és IDS rendszerek felismerésére és érzékelésére. Ehhez tudás és tapasztalat szükséges. Egy ilyen témájú oktatóanyag meghaladja ennek a leírásnak a kereteit, így csak a kapcsolódó paraméterek felsorolására és működésük rövid leírására szorítkozunk. -f (csomagok tördelése); --mtu (a megadott MTU érték használata)Az -f paraméter
használatakor a megadott letapogatást (beleértve a
visszhang letapogatást is) az Nmap apróra tördelt IP
csomagokkal hajtja végre. Az alapötlet az, hogy osszuk el a TCP
fejlécet több csomagra, így nehezítve meg a
csomagszűrők, behatolás érzékelők
és más zavaró eszközök dolgát a
tevékenységünk felismerésében. Azonban
legyen óvatos! Néhány programnak gondot jelent az ilyen
apró csomagok kezelése. A jó öreg Sniffit
szaglászóprogram az első töredék
vételekor azonnal szegmentációs hibát okoz. Ha
egyszer adja meg ezt a paramétert, az Nmap 8 bájtos vagy kisebb
darabokra tördeli a csomagokat az IP fejléc után.
Így egy 20 bájtos TCP fejlécet 3 csomagra oszt fel, 2
csomag 8 bájtot, egy csomag pedig a maradék 4 bájtot fog
szállítani. Természetesen minden darab tartalmaz egy IP
fejlécet is. Ha ismét megadja az -f paramétert,
akkor 16 bájtos töredékeket fog használni
(csökkentve a töredékek számát). De
megadhat saját eltolási értéket is az --mtu
paraméter használatával. Ne használja egyszerre az
-f és az --mtu paramétert. Az eltolás
értékének mindig oszthatónak kell lennie nyolccal.
Míg egyes csomagszűrőkön és
tűzfalakon nem csúsznak át a töredezett csomagok
(ilyen például a Linux rendszermag bekapcsolt
CONFIG_IP_ALWAYS_DEFRAG paramétere, mely sorba állítja a
töredékeket), addig egyes eszközök nem engedhetik
meg ezt a teljesítmény csökkenést, így
tiltják ezt a lehetőséget. Ismét más
rendszerek azért nem engedélyezik ezt, mert a
töredékek más-más útvonalon
érkezhetnek a hálózatba. Néhány
forrásrendszer a rendszermagon belül állítja
össze a kimenő csomagtöredékeket. Erre
példa a Linux iptables kapcsolatkövetési modulja. Hogy
biztos lehessen abban, hogy a kimenő csomagok töredezettek,
futtasson a letapogatással együtt egy szaglászót
is, mint például a Wireshark. Ha az ön
operációs rendszer ilyen problémákat okoz,
próbálja ki a --send-eth paramétert, így
kikerülheti az IP réteget és nyers ethernet kereteket
küldhet el.
-D <csali1 [,csali2][,ME],...> (Letapogatás
álcázása csalikkal)
Végrehajt egy letapogatást
csalik használatával, így a célpont azt
érzékeli, hogy a csaliként megadott
állomások is letapogatással próbálkoznak.
Így az IDS rendszere egyidőben 5-10 letapogatást is
érzékel, de nem tudja eldönteni, melyik a valós IP
cím és melyik az ártatlan csali. Bár ezek
legyőzhetőek útválasztón keresztüli
nyomkövetéssel, a válasz eldobásával
és más aktív eljárásokkal, de
általánosságban ez egy jó mödszer a
saját IP cím elrejtésére.
A csalikat listáját vesszővel kell elválasztani.
Kiegészítésként használhatja a ME
paramétert a csalik listájában, amely a saját IP
címét jelenti. Ha a ME paramétert a hatodik vagy
későbbi pozícióban használja, a
legtöbb letapogatás érzékelő (mint
például a Solaris Scanlogd) valószínűleg
egyáltalán nem fogja megjeleníteni az IP
címét. Ha nem használja a ME paramétert, az Nmap
véletlen pozícióba teszi az IP címét.
Használhatja az RND paramétert, így
véletlenszerű, nem fenntartott IP címeket
generálhat, vagy az RND:<szám> paramétert,
így a <szám>-nak megfelelő mennyiségű
IP címet kap.
Jegyezze meg, hogy a megadott csaliknak élő
állomásoknak kell lenniük, különben
véletlenül SYN elárasztásnak teheti ki a
célpontokat. Ráadásul eléggé
könnyű kitalálni a támadó
kilétét, ha az IP címek közül csak egy
él a hálózaton. Célszerűbb nevek helyett IP
címeket használni (így a csalik
hálózatában lévő névszerverek
naplóiban nem jelenik meg az Ön IP címe).
A program a csalikat mind a kezdeti visszhang letapogatásnál (az
ICMP, SYN, ACK vagy bármi más használatakor) mind a
későbbi kapuletapogatásoknál használja.
Szintén használja a csalikat a távoli
ooperációs rendszer felderítésekor ( -O).
Nem használ csalikat a változat
érzékeléskor és a TCP kapcsolódási
letapogatásnál.
Nem érdemes túl sok csalit használni, mivel
lelassíthatja a letapogatást és ronthatja a
pontosságot. Ezen kívül néhány
szolgáltató kiszűri a hamisított csomagokat,
bár a legtöbb nem foglalkozik velük
egyáltalán.
-S <IP cím> (Hamis forráscím)
Néhány esetben az Nmap nem tudja
meghatározni az Ön forráscímét (ilyenkor az
Nmap figyelmeztető üzenetet küld). Ilyenkor az -S
paraméter után adja meg annak a hálózati
illesztőnek az IP címét, amelyen keresztül a
csomagokat küldeni szeretné.
Ennek a paraméternek egy másik lehetséges
használata, hogy amikor a célponttal elhiteti, hogy valaki
más próbálja meg letapogatni. Képzelje el,
amikor egy cég azt látja, hogy egy versenytársa
próbálja meg letapogatni! Az ilyen használathoz
általában szükség van az -e és a
-PN paraméterek használatára is. Jegyezze meg,
hogy ilyenkor semmilyen választ nem fog kapni (azok a hamisított
feladóhoz továbbítódnak), így az Nmap sem
tud használható jelentést készíteni.
-e <illesztő> (Megadott illesztő használata)
Megadja, hogy az Nmap melyik illesztőt
használja a csomagok küldésére és
fogadására. Az Nmap ezt automatikusan is képes
érzékelni, de meg is adhatja, ha ez nem történik
meg.
--source-port <kapu száma>; -g <portnumber> (A
forráskapu számának hamisítása)
Az egyik meglepően elterjedt hiba, hogy
a forráskapu alapján bíznak meg egyes
hálózati forgalmakban. Könnyű megérteni,
miért is van ez így. Egy rendszergazda szeretne
beállítani egy új, csillogó tűzfalat.
Azonban a beüzemelés után a felhasználók
elárasztják a panaszaikkal, mivel a programjaik
többé nem működnek. Különösen
a névfeloldással lehetnek problémák, mivel a
külső hálózatból érkező UDP
DNS válaszok többé nem tudnak belépni a
belső hálózatba. Az FTP egy másik
szokványos példa. Aktív FTP átviteleknél a
kiszolgáló megpróbál visszafelé
felépíteni egy kapcsolatot az ügyfél által
kért fájl átviteléhez.
Ezekre a problémákra léteznek biztonságos
megoldások, akár alkalmazásszűrők,
akár protokoll feldolgozó tűzfalmodulok
formájában. Sajnos vannak könnyebb, de
kevésbé biztonságos megoldások is.
Felismervén, hogy a DNS válaszok az 53-as kapuról, az
aktív FTP kapcsolatok pedig a 20-as kapuról érkeznek, a
legtöbb rendszergazda beleesik abba a csapdába, hogy
egyszerűen engedélyezi ezekről a kapukról a
bejövő forgalmat. Gyakran azt feltételezik, hogy a
támadók nem ismerik fel és nem használják
ki ezeket a réseket. Máskor úgy gondolják, hogy ez
csak ideiglenes lesz, amíg egy biztonságosabb megoldást
nem találnak. Aztán elfelejtkeznek róla.
Ám nemcsak a túlterhelt rendszergazdák esnek ebbe a
csapdába. Számos termék érkezik ilyen gyenge
szabályokkal. Különösen a Microsoft
bűnös ebben a körben. A Windows 2000 és Windows XP
rendszerekkel szállított IPsec szűrő tartalamaz
egy hallgatólagos szabályt, mely beenged minden TCP és
UDP forgalmat, mely a 88-as forráskapuról érkezik
(Kerberos). Egy másik, jól ismert eset volt a Zone Alarm
személyi tűzfalakban a 2.1.25-ös változatig
meglévő hiba, mely beengedett minden UDP forgalmat az 53-as
(DNS) vagy a 67-es (DHCP) forráskapukról.
Ezeknek a hibáknak a kihasználásához az Nmap a
-g és a --source-port paramétereket
biztosítja (ezek egyenértékűek). Csak adja meg
kapu számát és amennyiben lehetséges, az Nmap
ezzel a forráskapuval fogja elküldeni a próbákat.
Bizonyos operációs rendszer érzékelési
tesztekhez az Nmap más kaput fog használni a helyes
működéshez. A DNS kérések
végrehajtásakor a --source-port
beállításait nem veszi figyelembe, mivel ezeknek a
kéréseknek a kezelését az Nmap a rendszer
könyvtárain keresztül végzi. A legtöbb TCP
letapogatás, beleértve a SYN letapogatást, valamint az
UDP letapogatás teljes mértékben támogatja ezt a
paramétert.
--data-length <szám> (Véletlen adatok
hozzáfűzése az elküldött csomagokhoz)
Normális esetben az Nmap csak
minimális méretű csomagokat küld, melyek csak a
fejlécet tartalmazzák. Így a TCP csomagjai
általában csak 40, az ICMP visszhang kérései pedig
csak 28 bájt hosszúak. Ennek a paraméternek a
hatására az Nmap a megadott számú véletlen
bájtot fűz hozzá a legtöbb elküdött
csomaghoz. Az operációs rendszer
érzékelésének ( -O) próbacsomagjait
ez nem érinti, mivel a pontosság miatt itt állandó
próbákra van szükség. A legtöbb visszhang
és kapuletapogató csomag azonban támogatja ezt a
paramétert. Ez egy kicsit lelassítja a letapogatást,
viszont kevésbé lesz feltűnő.
--ip-options <S|R [útvonal]|L [útvonal]|T|U ... >;
--ip-options <hexa karakterlánc> (Csomagok
küldése megadott IP paraméterekkel)
Az IP protokoll[9]
leírása felkínál pár paramétert,
melyek a csomagok fejlécében használhatók. Nem
úgy, mint a széles körben használt TCP
paraméterek, az IP paraméterek ritkán
láthatók praktikus és biztonsági
megfontolások miatt. Valójában az Interneten
lévő legtöbb útválasztó blokkolja a
veszélyes paramétereket, mint például a
forrás nyomkövetést. Néhány esetben a
paraméterek hasznosak lehetnek a célpont felé
vezető útvonal felderítésében és
manipulálásában. Például
felhasználhatja az útvonal rögzítése
paramétert a célponthoz vezető útvonal
felderítéséhez még akkor is, ha a
hagyományos traceroute nem jár sikerrel. Vagy ha a csomagokat
bizonyos tűzfalak eldobják, megadhat egy másik
útvonalat a szigorú és a laza
útválasztás paraméterekkel.
Az IP paraméterek megadásának leghatásosabb
módja ha az --ip-options után beírja az
értékeket. A hexadecimális értékeket mindig
\x karakterrek kezdje, majd következik két szám. Bizonyos
karaktereket ismételhet is, ha a karakter után egy csillagot
ír, majd megadja az ismétlések számát.
Például a \x01\x07\x04\x00*36\x01 egy olyan hexadecimális
karaktersorozat, mely 36 darab NULL bájtot tartalmaz.
Az Nmap a paraméterek megadásának egy rövidebb
módját is felkínálja. Az R, T és U
paraméterekkel az útvonal
rögzítését, az időbélyeg
rögzítését, vagy mindkettőt kérheti.
A laza vagy a szigorú útvonalkövetést az L vagy az
S paraméter és az IP címek szóközzel
elválasztott listájának megadásával
kérhet.
Ha szeretné nyomon követni az elküdött és a
beérkezett csomagokban lévő
beállításokat, adja meg a --packet-trace
paramétert. Ha további információkra és
példákra kíváncsi az Nmap programban
használható IP paraméterekkel kapcsolatban,
látogasson el a https://seclists.org/nmap-dev/2006/q3/0052.html
címre.
--ttl <érték> (A time-to-live mező
beállítása)
Beállítja az IPv4 csomag
time-to-live mezőjét a megadott értékre.
--randomize-hosts (Összekeveri a célpontok
sorrendjét)
Utasítja az Nmap programot, hogy a
letapogatás előtt keverje össze a célpontok
csoportjának sorrendjét (maximum 16384 gép). Ez a
letapogatást kevésbé nyilvánvalóvá
teszi a legtöbb hálózati megfigyelő rendszer
számára, különösen ha egy lassú
időzítéssel is kombinálja. Ha nagyobb csoportot
szeretne megkeverni, állítsa be a PING_GROUP_SZ
paramétert az nmap.h fájlban és fordítsa le
újra a programot. Egy másik megoldás lehet, ha a
célpontok címeit egy lista letapogatással szedi
össze ( -sL -n -oN fájlnév),
megkeveri azokat egy Perl parancsfájllal, majd ezt a listát adja
át az Nmap programnak az -iL paraméterrel.
--spoof-mac <MAC cím, előtag vagy gyártó
name> (MAC cím hamisítása)
Arra utasítja az Nmap programot, hogy
az összes elküldött ethernet kerethez a megadott MAC
címet használja. Ehhez a paraméterhez automatikusan
hozzáadódik a --send-eth paraméter is, így
biztosítva, hogy az Nmap valójában ethernet-szintű
csomagokat küldjön. A MAC cím több
formátumban is megadható. Ha a megadott paraméter egy
egyszerű „0”, az Nmap egy teljesen véletlen MAC
címet választ arra munkamenetre. Ha a megadott
karakterlánc páros számú hexadecimális
számból áll (a párok elválaszthatók
kettősponttal), az Nmap ezt a MAC címet fogja használni.
Ha kevesebb, mint 12 számjegyet adott meg, az Nmap a fennmaradó
részt véletlen értékekkel tölti fel. Ha a
megadott érték nem 0 vagy hexadecimális
karakterlánc, az Nmap elvégez egy keresést az
nmap-mac-prefixes fájlban, hogy található-e a megadott
karakterlánccal megegyező nevű gyártó (ez
érzékeny a nagy- és kisbetűkre). Ha talál
egyezést, az Nmap a gyártó OUI mezőjét
fogja használni (3 bájtos előtag), a fennmaradó 3
bájtot pedig véletlen értékekkel tölti fel.
Példák az érvényes --spoof-mac
paraméterre: Apple, 0, 01:02:03:04:05:06, deadbeefcafe, 0020F2
és Cisco.
--badsum (Csomagok küldése hamis TCP/UDP
ellenőrző összeggel)
Az Nmap a csomagokat hamis TCP vagy UDP
ellenőrző összeggel fogja elküldeni a
célpont felé. Mivel elméletileg minden
állomás IP verme az ilyen csomagokat helyesen eldobja,
ezért bármilyen válasz tűzfalra vagy IDS
rendszerre utal, melyek nem foglalkoznak az ellenőrző
összeg vizsgálatával. További részletek
erről a technikáról a https://nmap.org/p60-12.txt
címen.
KIMENET
Bármely biztonsági eszköz csak annyira hasznos, amennyire az általa generált kimenet használható. A bonyolult tesztek és eljárások keveset érnek, ha az eredményt nem áttekinthető és érhető módon szolgáltatják. Az Nmap programot annyiféle módon használják emberek és más programok is, hogy egyféle kimeneti formátum nem lenne megfelelő mindenkinek. Így az Nmap többféle formátumot kínál, beleértve az emberek számára hasznos interaktív módot és a programok által könnyen feldolgozható XML-t. A különböző kimeneti formátumok mellett az Nmap néhány paraméterrel lehetővé teszi mind a kimenet, mind a hibakeresési információk bőbeszédűségének beállítását. A kimenti adatok mind a szabványos kimenetre, mind egy megadott nevű fájlba kerülhetnek. Az Nmap képes a fájlhoz hozzáfűzni, vagy felülírni azt. A kimeneti fájlok alkalmasak még megszakított letapogatások folytatására is. Az Nmap kimenete öt különféle formátumban érhető el. Az alapértelmezett elnevezése az interaktív kimenet amely a szabványos kimenetre kerül (stdout). Létezik még egy normál kimenet is, mely csak annyiban különbözik az interaktívtól, hogy kevesebb futásidejű üzenetet és figyelmeztetést jelenít meg, mivel feltételezi, hogy az adatok elemzésére csak a letapogatás befejezése után kerül sor, nem pedig folyamatosan. Az XML kimenet az egyik legfontosabb kimeneti típus, mivel átalakítható HTML dokumentummá, könnyen feldolgozható más programmal (mint például az Nmap grafikus felülete) és adatbázisba is importálható. A fennmaradó két kimeneti típus közül az egyik az egyszerű grep által feldolgozható kimenet, mely a legtöbb információt jeleníti meg az állomásról egy sorban, a másik a sCRiPt KiDDi3 0utPUt azoknak, akik úgy gondolnak magukra, mint |<-r4d. Míg az alapértelmezett interaktív kimenetnek nincs parancssori kapcsolója, a többi négy formátum ugyanazt a szintaktikát használja. Egyetlen paraméterük van, az eredményt tároló fájl neve. Több formátum is megadható egyszerre, de minden formátum csak egyszer használható. Például ha szeretné később átnézni a normál kimenet eredményét és egyben szeretné programmal is feldolgozni, akkor használhatja az -oX myscan.xml -oN myscan.nmap paramétert. Bár ebben a fejezetben az egyszerűség kedvéért rövid fájlneveket használunk (például myscan.xml), általában ajánlott hosszabb, jelentéssel bíró neveket használni. A nevek kiválasztásakor figyeljünk a személyes igényekre, használhatunk dátumot, vagy egy-két szavas rövid leírást a munka típusáról. Bár ezekkel a paraméterekkel az eredményeket fájlba menthetjük, az Nmap ettől függetlenül az interaktív kimenetet megjeleníti a szabvány kimeneten. Például az nmap -oX myscan.xml célpont parancs az XML kimenetet a myscan.xml fájlba írja és egyben megjeleníti azt az interaktív kimenetet is, amely az -oX paraméter megadása nélkül is megjelent volna. Ez a viselkedés megváltoztatható, ha a kimeneti formátum után egy kötőjelet ad meg paraméterként. Ilyenkor az Nmap kikapcsolja az interaktív kimenetet és ehelyett a szabványos kimeneti adatfolyamba írja a kívánt kimeneti formátumú adatokat. Így az nmap -oX - célpont parancs csak a stdout eszközre küldi el az XML kimenetet. A komoly hibákat továbbra is a normál hibakimenetre, a stderr eszközre írja. Az Nmap más paramétereitől eltérően a naplófájl paraméterjelzője (mint az -oX) és a fájlnév vagy kötőjel között kötelező szóközt hagyni. Ha ezt elhagyja és például az -oG- vagy az -oXscan.xml formátumban adja meg a paramétert, akkor kompatibilitási okoból egy normál formátumú kimeneti fájl jön létre G- és Xscan.xml nevekkel. Ezek közül a paraméterek közül mindegyik támogatja a fájlnevek strftime()-szerű átalakítását. A %H, %M, %S, %m, %d, %y és %Y megadása pontosan azt jelenti, mint az strftime() függvényben. A %T ugyanazt jelenti, mint a %H%M%S, a %R ugyanazt jelenti, mint a %H%M és a %D ugyanazt jelenti, mint a %m%d%y. ha a % jelet bármilyen más karakter követi, akkor azt a karaktert egyszerűen tovább adja (például a %% egy százalékjelet ad tovább). Így az -oX 'scan-%T-%D.xml' paraméter megadása egy XML fájlt hoz létre scan-144840-121307.xml névvel. Az Nmap lehetőséget biztosít a letapogatás részletességének beállítására, valamint arra, hogy az eredményeket hozzáfűzze egy meglévő fájlhoz ahelyett, hogy felülírná. A paraméterek leírása az alábbiakban található. Nmap kimeneti formátumok -oN <fájlnév> (normál kimenet)Ezzel a kéréssel a normál
kimenet a megadott nevű fájlba lesz
átirányítva. Ahogy a fentiekben olvashatta, ez egy kicsit
különbözik az interaktív kimenettől.
-oX <fájlnév> (XML kimenet)
Ezzel a kéréssel az XML kimenet
a megadott nevű fájlba lesz átirányítva. Az
Nmap a fájlhoz hozzáfűz egy dokumentum
típusmeghatározást si (DTD), így az XML
feldolgozók ellenőrizhetik az Nmap XML kimenetét.
Bár ez elsősorban programbeli felhasználásra
készült, de segítséget nyújt az embereknek
is az Nmap XML kimenetének értelmezésében. A DTD
leírja a formátum érvényes elemeit és
gyakran felsorolja a tulajdonságokat és azok
értékeit is. A legfrissebb változat mindig
megtalálható a https://nmap.org/data/nmap.dtd
címen.
XML egy stabil formátumot kínál, mely programból
könnyen feldolgozható. Ingyenes XML feldolgozók az
összes nagyobb programozási nyelvhez elérhetők,
beleértve a C/C++, Perl, Python és Java nyelveket. Az Nmap
kimenetének feldolgozására és
működésének vezérlésére a
legtöbb nyelvhez már készültek
kapcsolódó munkák. Perl CPAN példák
találhatók a Nmap::Scanner[10] és a
Nmap::Parser[11] címeken. A legtöbb esetben az XML az
előnyben részesített formátum.
Az XML kimenet hivatkozik egy XSL stíluslapra, melynek
segítségével az eredmények HTML formátumra
alakíthatók. Ezt a legegyszerűbben úgy
használhatja, hogy az XML kimenetet betölti egy
böngészőbe. Alapesetben ez csak azon a gépen
működik, amelyen az Nmap fut (vagy egy hasonlóan
beálított gépen), mivel az nmap.xsl elérési
útvonala bele van drótozva a programba. A --webxml vagy a
--stylesheet paraméterek megadásával olyan
hordozható XML fájlt hozhat létre, mely bármely
Internetre kötött gépen megjeleníthető HTML
formátumban.
-oS <fájlnév> (Szkriptkölyök kimenet)
A szkriptkölyök kimenet olyan,
mint az interaktív kimenet, csak még átmegy egy
végső feldolgozáson. Így jobban passzol az olyan
hekkerek lelkivilágához, akik előzőleg
lenézték az Nmap egységes
helyesírását és a nagybetűk
használatát. Gyenge humorérzékűek
úgy gondolhatják, hogy ez a paraméter
nevetségessé akarja tenni a szkriptkölyköket
ahelyett, hogy „segítené őket”.
-oG <fájlnév> (grep által feldolgozható
kimenet)
Ez a kimenti formátum maradt a
végére, mivel ez egy elavult formátum. Az XML sokkal
használhatóbb és tapasztalat felhasználók
számára majdnem olyan kényelmes is. Az XML egy
szabvány, melyet feldolgozó programok százai
támogatnak, míg a greppel feldolgozható kimenet csak egy
egyszerű barkácsolás. Az XML könnyen
bővíthető az új Nmap tulajdonságok
támogatásához, míg ezek a
bővítések a helyhiány miatt gyakran kimaradnak a
greppel feldolgozható kimentből.
Mindezek ellenére a greppel feldolgozható kimenet még
mindig nagyon népszerű. Egyszerű formátumú,
mely minden egyes célpont adatait egyetlen sorban adja vissza,
egyszerűen kereshető és feldolgozható olyan alap
Unix eszközökkel, mint a grep, awk, cut, sed, diff, vagy egy
Perl parancsfájl. Emellett használható még
egyszeri tesztek parancssorból történő
elvégzésére. Az összes nyitott SSH kapujú,
vagy Solaris operációs rendszert futtató
állomás megtalálásához elég egy
egyszerű greppel feldolgozható kimenet, melyet az awk vagy a cut
programba átirányítva kinyomtatható a
kívánt információ.
A greppel feldolgozható kimenet megjegyzésekből (#-tel
kezdődő sorok) és a célpont soraiból
áll. A célpont sora 6 címzett mezőt tartalmaz,
tabulátorral elválasztva, kettősponttal a
végén. A mezők nevei: Állomás (Host), Kapuk
(Ports), Protokollok (Protocols), Mellőzött állapot
(Ignored State), Operációs rendszer (OS), Sorozatszám
(Seq Index), IP ID és Állapot (Status).
Ezek közül a mezők közül
általábana legfontosabb a Ports, mely
információkat tartalmaz az összes érdekes
kapuról. Ez egy vesszővel elválasztott lista. Minden
egyes bejegyzés egy-egy kaput jelent és hét
almezőt tartalmaz perjellel (/) elválasztva. Az almezők
nevei: Kapuszám (Port number), Állapot (State), Protokoll
(Protocol), Tulajdonos (Owner), Szolgáltatás (Service), SunRPC
info és Változat (Version info).
Csakúgy, mint az XML kimenet esetében, ez a leírás
ennek a kimenetnek sem tartalmazza a teljes leírását. Az
Nmap greppel feldolgozható kimenetének részletes
leírása a http://www.unspecific.com/nmap-oG-output
címen található.
-oA <alapnév> (Minden kimeneti formátum
használata)
Kényelemből használhatja
az -oA alapnév paramétert, ha a kimenetet
egyszerre akarja normál, XML és greppel feldolgozható
formátumban. Ezek az alapnév.nmap, az
alapnév.xml és az alapnév.gnmap
fájlokban tárolódnak. Mint minden programban, itt is
megadhatja a fájlok tárolásának teljes
útvonalát, mint például ~/nmaplogs/foocorp/ Unix
vagy c:\hacking\sco Windows rendszereknél.
Részletezés és hibakeresési
paraméterek
-v (Növeli az adatok részletességét)
Ha növeli a részletességi
szintet, az Nmap több információt jelenít meg a
folyamatban lévő letapogatásról. A nyitott kapu a
megtalálásuk sorrendjében jelennek meg. Ha az Nmap
úgy érzékeli, hogy a letapogatás pár
percnél többet fog igénybe venni, akkor megjelenít
egy várható befejezési időpontot is. Ha még
részletesebb információkra kiváncsi,
használja kétszer a paramétert.
A legtöbb változás csak az interaktív kimenetet
érinti és csak néhány van hatással a
normál és a szkriptkölyök kimenetre. A
többi kimenet gépi feldolgozásra készült,
így ezekben az Nmap alaphelyzetben is részletes
információkat jelenít meg. Ennek ellenére van
pár változás ezekben a módokban, mivel
néhány részlet elhagyása jelentősen
csökkenti a kimenet méretét. Például a
greppel feldolgozható kimenetben a megjegyzések csak a
részletes módban jelennek meg, mivel ezek eléggé
hosszúak lehetnek.
-d [szint] (Növeli vagy beállítja a
hibakeresés szintjét)
Ha a részletes üzemmód
nem ad visza elegendő információt, a hibakeresési
mód képes elárasztani adatokkal! Csakúgy, mint a
részletes üzemmód ( -v), a hibakeresési
üzemmód is egy parancssori kapcsolóval
aktivizálható ( -d), melynek szintje a kapcsoló
többszóri megadásával növelhető.
Emellett a hibakeresés szintjét a -d paraméternek
átadott értékkek is beállíthatja.
Például a -d9 9-es szintet állít be. Ez a
legmagasabb beállítható szint és - hacsak nem egy
egyszerű letapogatás futtat - több száz sornyi
információt fog kinyomtatni.
A hibakeresési kimenet hasznos lehet, ha valamilyen hibát
gyanít az Nmap program működésében, vagy
egyszerűen csak szeretné megérteni, hogy mit és
miért csinál az Nmap. Mivel ez a funkció
elsősorban fejlesztőknek készült, ezért a
legtöbb megjelenő információ nem is
értelmezhető könnyen. Kaphat például egy
ilyen kimenetet: Timeout vals: srtt: -1 rttvar: -1 to: 1000000 delta 14987
==> srtt: 14987 rttvar: 14987 to: 100000. Ha nem ért egy sort
egyszerűen figyelmen kívül hagyhatja, megnézheti a
program forráskódjában vagy segítséget
kérhet a fejlesztői levelező listán (nmap-dev).
Néhány sor könnyen érthető, de a
hibakeresési szint növekedésével az
üzenetek egyre homályosabbá válnak.
--packet-trace (Az elküldött és fogadott csomagok
és adatok követése)
Az Nmap minden elküldött
és fogadott csomagról összegzést
készít. Ezt a legtöbbször csak
hibakeresésre használják, de hasznos lehet olyanoknak is,
akik szeretnék megérteni, hogy mi történik a
színfalak mögött. Hogy elkerülhető legyen
sorok százainak a megjelenítése, érdemes
korlátozni a letapogatni kívánt kapuk
számát például a -p20-30 paraméter
megadásával. Ha csak a változat
érzékelés részleteire kiváncsi,
használja a --version-trace paramétert.
--open (Csak a nyitott (vagy valószínűleg nyitott)
kapukat mutatja)
Néha csak azok a kapuk
érdekesek, amelyekhez kapcsolódni lehet (nyitott) és
nincs szükség agyonzsúfolni a kimenetet a zárt,
szűrt és zárt|szűrt kapukkal. A kimenet
testreszabása általában a letapogatás után
történik a grep, awk vagy Perl használatával, de a
rengeteg kérés hatására ez a
lehetőség is bekerült a programba. Az --open
megadásával csak a nyitott, nyitott|szűrt és a
szűretlen állapotú kapuk kerülnek a kimenetre.
Ezeknek a kapuknak a kezelése ugyanúgy történik,
mint normál esetben, így a nyitott|szűrt és a
szűretlen kapuk csak egy számként jelennek meg, ha
túl sok van belőlük.
--iflist (Illesztők és útvonalak
listázása)
Megjeleníti az Nmap által
érzékelt illesztőket és
rendszerútvonalakat. Ez hasznos lehet az
útválasztási problémák
hibakeresésében vagy az eszközök hibás
kezelésekor (például az Nmap egy PPP kapcsolatot ethernet
kapcsolatnak érzékel).
--log-errors (A hibák/figyelmeztetések
rögzítése a normál módú kimenti
fájlba)
Az nmap által kiírt hibák
és figyelmeztetések általában csak a
képernyőn (interaktív kimenet) jelnnek meg, a
normál formátumú kimenti fájlt
érintetlenül hagyva. Ha szeretné ezeket az
üzeneteket a normál kimenti fájlban is látni, adja
meg ezt a paramétert. Ez hasznos lehet akkor, ha nem figyeli az
interaktív kimenetet vagy valamilyen hibát próbál
megtalálni. Az üzenetek az interaktív kimeneten
ezután is megjelennek. Ez a paraméter nem működik
azokkal a hibákkal, melyek a hibásan megadott parancssori
kapcsolókkal függnek össze, mivel az Nmap ilyenkor
még nem készítette elő a kimenti fájlt.
Ráadásként néhány NMap
hiba/figyelmeztetés más rendszert használ és nem
támogatja ezt a paramétert. Ennek a paraméternek az
alternatívája lehet az interaktív kimenet
(beleértve a szabvány hibakimenetet)
átirányítása egy fájlba. Míg a
legtöbb Unix parancshéj ezt könnyen
lehetővé teszi, Windows alatt ez egy kissé bonyolult
lehet.
Vegyes kimeneti paraméterek
--append-output (Felülírás helyett
hozzáfűzés a kimenti fájlhoz)
Ha megad egy fájlnevet egy kimeneti
paraméterhez (mint például az -oX vagy az
-oN), akkor a program alapértelmezettként
felülírja a meglévő fájlt. Ha
szeretné megtartani a fájl tartalmát és
hozzáfűzni az új eredményeket, adja meg az
--append-output paramétert. Így futtatva az Nmap
programot az összes megadott fájlhoz hozzáfűzi az
új eredményeket a felülírás helyett. Ez az
XML kimenettel ( -oX) nem működik jól
együtt, így ez - a fájl kézzel
történő javításáig -
feldolgozási problémát okozhat.
--resume <fájlnév> (Megszakított
letapogatás folytatása)
Néhány kiterjedt NMap
letapogatás nagyon hosszú időt vehet igénybe -
néha napokig tarthat. Néhány letapogatás nem
mindig fut le a befejezésig. Bizonyos korlátozások
megakadályozhatják, hogy az Nmap munkaidő alatt fusson,
leállhat a hálózat, az Nmap programot futtató
gép elszenvedhet egy nem várt újraindítást,
de maga az Nmap is összeomolhat. Az Nmap futását a
rendszergazda is megszakíthatja a ctrl-C lenyomásával. A
teljes letapogatás újraindítása a
kezdetektől nem éppen egy kívánt állapot.
Szerencsére ha a normál ( -oN) vagy a greppel
feldolgozható ( -oG) naplófájl megmaradt, a
felhasználó utasíthatja az Nmap programot, hogy folytassa
a letapogatást a megszakítás pontjánál.
Egyszerűen adja meg a --resume kapcsolót és a
normál/greppel feldolgozható kimeneti fájl nevét.
Más paraméter nem adható meg, mivel az Nmap a kimeneti
fájl feldolgozásával visszaállítja az
eredeti paramétereket. Egyszerűen írja be az nmap
--resume fájlnév parancsot. Az Nmap az
új adatokat hozzáfűzi az előző
futtatás során megadott fájlhoz. Az XML kimeneti
formátumnál a folytatás nem támogatott, mivel a
két futtatás eredményének egy fájlba
történő összevonása eléggé
bonyolult lehet.
--stylesheet <útvonal vagy cím> (XSL stíluslap
beállítása az XML kimenet
átalakításhoz)
Az XML fájlok
megtekintéséhez és
átalakításához HTML formátumra az Nmap
rendelkezik egy saját XSL stíluslappal nmap.xsl néven. Az
XML kimenet tartalmaz egy xml-stylesheet irányelvet, mely az Nmap
programmal eredetileg telepített nmap.xml fájlra hivatkozik
(Windowson az aktuális munkakönyvtárra).
Egyszerűen töltse be az XML kimenetet egy modern
webböngészőbe és az automatikusan betölti
az nmap.xsl fájlt és megjeleníti az eredményeket.
Ha más stíluslapot akar használni, adja meg azt a
--stylesheet kapcsoló után. A teljes útvonalat
vagy címet meg kell adnia. Egy megszokott hivatkozás a
--stylesheet https://nmap.org/data/nmap.xsl. Ez arra utasítja a
böngészőt, hogy az Insecure.org címről
töltse be a legfrissebb stíluslapot. A --webxml
paraméterrel ugyanezt a hatást érheti el, csak kevesebbet
kell gépelni és megjegyezni. Az Insecure.org
címről letöltött stíluslap
segítségével olyan gépen is megtekintheti az
eredményeket, melyen nincs telepítve az Nmap (és
így az nmap.xsl sem). Gyakran a cím megadása sokkal
hasznosabb, de biztonsági okokból az alapértelmezett a
helyi fájlrendszeren lévő nmap.xsl
használata.
--webxml (Stíluslap betöltése az Insecure.Org
oldalról)
Ez egy kényelmesebb
megvalósítása a --stylesheet
https://nmap.org/data/nmap.xsl kapcsolónak.
--no-stylesheet (Kihagyja az XSL stíluslap
meghatározását az XML fájlból)
Megakadályozza, hogy az Nmap az XML
kimeneti fájlban stíluslap bejegyzést hozzon
létre. Kimarad az xml-stylesheet irányelv.
VEGYES PARAMÉTEREK
Ebben a szakaszban néhány olyan fontos (és kevésbé fontos) paraméter leírása található, melyek nem igazán illenek más fejezetekbe. -6 (IPv6 letapogatás engedélyezése)2002 óta az Nmap
legnépszerűbb tulajdonsága az IPv6
támogatás. A visszhang letapogatás (csak TCP), a
kapcsolódási letapogatás és a változat
érzékelés támogatott IPv6 formátumban is. A
parancs leírása megegyezik az általánossal, a
különbség annyi, hogy a -6 kapcsolót is meg
kell adnia. Természetesen IPv6 formátumú címet
kell megadnia, ha nem állomásnevet akar használni. Egy
cím például így nézhet ki:
3ffe:7501:4819:2000:210:f3ff:fe03:14d0, tehát javasolt inkább az
állomásnév használata. A kimenet ugyanúgy
néz ki, mint általában, az egyetlen
különbség az „érdekes
kapuknál” látható IPv6 cím.
Bár az IPv6 nem terjedt el viharos gyorsasággal a világban,
egyes országokban (általában Ázsiában)
egyre inkább ezt használják és a legtöbb
modern operációs rendszer támogatja. Ha az Nmap programot
IPv6 támogatással akarja használni, akkor mind a
forrás- mind a célgépnek IPv6
beállítást kell használnia. Ha az Ön
szolgáltatója (mint a legtöbb általában)
nem biztosít Önnek IPv6 címet, igénybe vehet
ingyenes alagút szolgáltatókat, melyek
kiválóan működnek együtt az Nmap
programmal. Az egyik legjobb ezek közül a BT Exact.
Szintén jól használható még a Hurricane
Electric nevű szolgáltató http://ipv6tb.he.net/.
Szintén népszerűek az Ipv6-ról Ipv4-re alagutat
biztosító szolgáltatók is.
-A (Agresszív letapogatási paraméterek)
Ez a paraméter további
agresszív és fejlett tulajdonságokat engedélyez.
Jelenleg engedélyezi az operációs rendszer
érzékelést ( -O), a változat
érzékelést ( -sV), a parancsfájl
alapú letapogatást ( -sC) és az
útvonalkövetést ( --traceroute). A
jövőben további funkciók is bekerülhetnek a
körbe. A cél az, hogy a felhasználók
számára egy átfogó letapogatási
készletet biztosítson anélkül, hogy rengeteg
paramétert kelljen megjegyezni. Ez a paraméter csak a
tulajdonságokat engedélyezi. Nincs hatással az
időzítési paraméterekre (mint a -T4) vagy a
részletességi paraméterekre ( -v), melyeket
külön be kell állítani.
--datadir <könyvtárnév> (Saját Nmap
adatfájl helyének megadása)
Az Nmap futás közben az
alábbi fájlokból szerez be speciális
információkat: nmap-service-probes, nmap-services,
nmap-protocols, nmap-rpc, nmap-mac-prefixes és nmap-os-db. Ha ezek
közül bármelyik fájlnak külön
megadja az elérhetőséggét (a --servicedb
vagy a --versiondb paraméterrel), akkor ezt a fájlt ezen
a helyen fogja keresni. Ezután az NMap ezeket a fájlokat a
--datadir paraméterben megadott könyvtárban fogja
keresni (ha megadta). Azokat a fájlokat, melyeket ott nem talál
meg, az NMAPDIR környezeti változóban megadott
könyvtárban fogja keresni. Ezután következik az
~/.nmap fájl (csak POSIX rendszereknél) vagy az Nmap
futtatható állomány helye (csak Win32
rendszereknél), majd a fordításnál megadott
helyek, mint például az /usr/local/share/nmap vagy az
/usr/share/nmap. Legvégső próbaként az Nmap
körülnéz az aktuális
könyvtárban.
--servicedb <szolgáltatásfájl> (Saját
szolgáltatásfájl megadása)
Arra utasítja az Nmap programot, hogy a
megadott szolgáltatásfájlt használja a programmal
szállított nmap-services fájl helyett. Ennek a
paraméternek a használata gyors letapogatást ( -F)
eredményez. További információkért
nézze meg a --datadir paraméter
leírását.
--versiondb <szolgáltatás próbafájl>
(Saját szolgáltatás próbafájl
megadása)
Arra utasítja az Nmap programot, hogy a
megadott szolgáltatás próbafájlt használja
a programmal szállított nmap-service-probes fájl helyett.
További információkért nézze meg a
--datadir paraméter leírását.
--send-eth (Nyers ethernet keretek küldése)
Arra utasítja az Nmap programot, hogy a
csomagokat az ethernet (adatkapcsolati) rétegen keresztül
küldje a magasabb IP (hálózati) réteg helyett.
Alaphelyzetben a Nmap a futattó környezethez legjobban
illeszkedő megoldást választja. Unix rendszereken
általában a nyers csatolók (IP réteg) adják
a leghatékonyabb eredményt, míg a Windows
rendszereknél szükség van az ethernet keretekre, mivel a
Microsoft tiltja a nyers csatolók használatának
támogatását. Unix rendszereken az Nmap ennek a
paraméternek a megadása ellenére is a nyers IP csomagokat
fogja használni, ha nem talál más
választási lehetőséget (például
nincs ethernet kapcsolat).
--send-ip (Küldés az IP rétegen keresztül)
Arra utasítja az Nmap programot, hogy a
csomagokat IP csatolókon keresztül küldje az alacsonyabb
szintű ethernet keretek helyett. Ez az előzőekben
tárgyalt --send-eth paraméter
kiegészítője.
--privileged (Feltételezi, hogy a felhasználó teljes
jogosultsággal rendelkezik)
Az Nmap feltételezi, hogy a
felhasználó elegendő jogosultsággal rendelkezik
olyan műveletek elvégzéséhez, mint az
adatküldés nyers csatolókon keresztül, csomagok
fürkészése és más olyan műveletek,
melyek általában rendszergazdai jogosultságokat
igényelnek a Unix rendszereken. Alapesetben az Nmap kilép, ha
ilyen műveletre utasítják és a geteuid()
függvény nem nullát ad vissza. A --privileged
paraméter jól használható a Linux rendszermag
képességeivel és olyan rendszerekkel, amelyek
lehetővé teszik, hogy alacsonyabb jogosultságú
felhasználók nyers csomagokat küldjenek. Figyeljen arra,
hogy ezt a paramétert még a jogosultságot
igénylő műveletek (SYN letapogatás,
operációs rendszer érzékelés stb.)
paraméterei előtt meg kell adnia. A --privileged
paraméterrel egyenértékű az NMAP_PRIVILEGED
környezeti változó beállítása.
--unprivileged (Feltételezi, hogy a felhasználónak
nincs elegendő jogosultsága)
Ez a --privileged paraméter
ellentéte. Az Nmap úgy kezeli a felhasználót, mint
akinek nincs jogosultsága nyers csatolók
használatára és csomagok
kifürkészésére. Hasznos lehet
tesztelésnél, hibakeresésnél vagy amikor az
operációs rendszer nyers hálózati funkciói
sérültek. Az --unprivileged paraméterrel
egyenértékű az NMAP_UNPRIVILEGED környezeti
változó beállítása.
--release-memory (Kilépés előtt felszabadítja
a memóriát)
Ez a paraméter csak a
memóriaszivárgási hibák keresésekor
hasznos. Arra utasítja az Nmap programot, hogy a kilépés
előtt szabadítsa fel a lefoglalt memóriát,
így a memóriaszivárgás könnyen
felderíthető. Normál helyzetben az Nmap átugorja
ezt, mivel a program leállításakor az
operációs rendszert ezt amúgy is
végrehajtja.
-V; --version (Programváltozat megjelenítése)
Megjeleníti az Nmap program
változatszámát és kilép.
-h; --help (Súgólap megjelenítése)
Megjelenít egy rövid
súgót a leggyakrabban használt parancsokról
és paraméterekről. Ugyanezt a képernyőt
kapja, ha az Nmap parancsot paraméterek nélkül futtatja
le.
FUTÁSIDEJŰ KAPCSOLAT
Az Nmap program futása alatt minden billentyű lenyomása rögzítésre kerül. Így kapcsolat létesíthető a programmal anélkül, hogy le kellene állítani majd újraindítani azt. Bizonyos billentyűkkel módosíthat egyes paramétereket, míg a többi billentyű lenyomásával egy állapotjelentés jelenik meg az éppen futó letapogatásról. ltalános szabály, hogy a kisbetűk növelik a megjelenített információ mennyiségét, míg a nagybetűk csökkentik azt. Segítségért használja a ‘ ?’ billentyűt. v / VNöveli / csökkenti a
megjelenített információk mennyiségét
d / D
Növeli / csökkenti a
hibakeresési adatok mennyiségét
p / P
Bekapcsolja / kikapcsolja a csomagok
nyomkövetését
?
Megjeleníti a futásidejű
súgót
Bármely más billentyű
Megjelenít egy hasonló
állapotjelentést:
Stats: 0:00:08 elapsed; 111 hosts completed (5 up), 5 undergoing Service Scan
Service scan Timing: About 28.00% done; ETC: 16:18 (0:00:15 remaining)
PÉLDÁK
Ebben a fejezetben néhány példa következik az Nmap használatára, az egyszerűbb rutinfeladatoktól a bonyolultabb, beavatottabbak számára valókig. Néhány IP cím és tartománynév azért került be a példákba, hogy a dolgok eléggé konkrétak legyenek. Ezeket helyettesítse olyan IP címekkel és nevekkel, melyek a saját hálózatából származnak. A program készítői nem hiszik, hogy a kapuletapogatás valójában illegális vagy illegális lehet. Ennek ellenére néhány rendszergazda nem veszi szívesen a kéretlen letapogatásokat és panaszt emelhet. A legjobb előzetesen megszerezni a szükséges engedélyeket. Tesztelési célból kipróbálhatja a scanme.nmap.org állomást. Ez az engedély kizárólag az Nmap programmal történő letapogatásra vonatkozik és nem terjed ki ártó kódok kipróbálására vagy szolgáltatásmegtagadási (DOS) támadások végrehajtására. A hálózat kapacításának megőrzése érdekében kérjük, hogy ne indítson napi néhány tucatnál több letapogatást. Ha valaki visszaélne ezzel az ingyenes tesztelési lehetőséggel, a tulajdonosok leállítják a rendszert és az Nmap a következő hibaüzenettel fog visszatérni: Failed to resolve given hostname/IP:scanme.nmap.org. Ugyanezek az engedélyek vonatkoznak a scanme2.nmap.org, scanme3.nmap.org és a további állomásokra is, bár ezek jelenleg még nem üzemelnek. nmap -v scanme.nmap.org Ezzel a paranccsal letapogatható az összes foglalt TCP kapu a scanme.nmap.org állomáson. A -v paraméter engedélyezi a bőbeszédű üzemmódot. nmap -sS -O scanme.nmap.org/24 Elindít egy lopakodó SYN letapogatást minden olyan állomáson, mely a Scanme állomás „C osztályú” címterében található és elérhető. Emelett megpróbálja kideríteni, hogy az elérhető állomások milyen operációs rendszert futtatnak. A SYN letapogatás és az operációs rendszer felderítése miatt ennek a parancsnak a futtatásához rendszergazdai jogosultságok szükségesek. nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127 Felderíti az állomásokat a 198.116-os B osztályú hálózat mind a 255 8 bites alhálózatának alsó felében és végrehajt rajtuk egy TCP letapogatást. Ellenőrzi, hogy a rendszereken fut-e SSH, DNS, POP3 vagy IMAP szolgáltatás a szabványos kapukon, illetve fut-e bármilyen szolgáltatás a 4564-os kapun. Ha bármely kapu nyitva található, egy változat érzékeléssel meghatározzuk az azon futó alkalmazás típusát. nmap -v -iR 100000 -PN -p 80 Arra utasítja az Nmap programot, hogy válasszon ki véletlenszerűen 100 000 állomást és keressen rajtuk webkiszolgálót (80-as kapu). Az állomások felderítését a -PN paraméterrel kikapcsoljuk, mivel egy kapu letapogatásakor felesleges először néhány próbával kideríteni, hogy az állomás elérhető-e. nmap -PN -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20 Visszhang próbák nélkül letapogat 4096 IP címet webkiszolgáló után kutatva, a kimenetet pedig elmenti greppel feldolgozható és XML formátumban.HIBÁK
Akárcsak a program készítője, az Nmap sem tökéletes. De segíthet jobbá tenni, ha elküldi a felfedezett hibák leírását, vagy javítást készít hozzájuk. Ha az Nmap nem az elvárásai szerint működik, először mindig szerezze be a legfrissebb változatot a https://nmap.org címről. Ha a probléma továbbra is fennáll, nézzen utána, hogy felfedezték-e már mások is. Keressen rá a Google-ban a hibaüzenetre vagy böngéssze át az Nmap fejlesztői listát a https://seclists.org/ címen. Olvassa végig ezt a leírást is. Ha nem talál semmit, küldjön egy hibajelentést az <[email protected]> címre. Írjon le mindent, amit a hibával kapcsolatban tapasztalt. Adja meg pontosan a használt Nmap változatot és a futtató operációs rendszer változatát is. Az [email protected] címre küldött hibajelzések és az Nmap használatával kapcsolatos kérdések valószínűleg gyorsabban megválaszolásra kerülnek, mintha azokat közvetlenül a program készítőjének (Fyodor) küldené. A hibajavítások sokkal hasznosabbak, mint a hibajelentések. A hibajavítások elkészítésével kapcsolatban tanácsokat kaphat a https://nmap.org/data/HACKING címen. A hibajavítások elküldhetők az nmap-dev listára (ez a javasolt), vagy közvetlenül a készítőnek is.SZERZŐ
Fyodor <[email protected]> ( https://insecure.org) Az évek során emberek százai járultak hozzá értékes munkájukkal az Nmap programhoz. Ezek részletezése megtalálható a CHANGELOG fájlban, mely az Nmap program terjesztése mellett elérhető a https://nmap.org/changelog.html címen is.JOGI NYILATKOZAT
Nmap szerzői jog és licenc
Nmap Biztonsági letapogató (C) 1996-2007 Insecure.Com LLC. Az Nmap az Insecure.Com LLC bejegyzett védjegye. Ez egy szabad program; szabadon továbbadható és/vagy módosítható a Szabad Szoftver Alapítvány által kiadott GNU General Public License 2-es változatának irányelvei szerint. Ez biztosítja Önnek a jogot, hogy bizonyos feltételek esetén ezt a programot használja, módosítsa és továbbadja. Ha az Nmap technológiáját üzleti célú programba kívánja beágyazni, más licencre van szüksége (írjon a <[email protected]> címre). Több, biztonsági letapogatót forgalmazó cég kapott ilyen licencet az Nmap technológiájának használatára az állomás felderítés, kapupásztázás, operációs rendszer érzékelés és szolgáltatás/változat érzékelés területén. A GPL fontos korlátozásokat alkalmaz a „származtatott munkákkal” kapcsolatban, bár jelenleg a kifejezés nincs részletesen meghatározva. A félreértések elkerülése érdekében - és a GPL szándékait szem előtt tartva - a készítők úgy vélik, hogy egy alkalmazás akkor tekinthető „származtatott munkának”, ha az alábbiak közül bármelyik teljesül:•Tartalmazza az Nmap
forráskódját, vagy annak részletét
•Olvassa vagy felhasználja az
Nmap jogvédett adatfájljait, mint az nmap-os-fingerprints vagy
az nmap-service-probes.
•Futtatja az Nmap programot és
feldolgozza az eredményt (ellentétben a tipikus
parancshéj vagy végrehajtási menü
alkalmazásokkal, melyek csak megjelenítik az Nmap nyers
kimenetét, így nem tekinthetők származtatott
munkának.)
•Integrálja/beépíti
az Nmap programot egy üzleti célú futtatható
telepítő programba, mint amilyen például az
InstallShield.
•Kapcsolódik olyan
programkönyvtárhoz, vagy futtat olyan programot mely az
előbbiek közül bármelyiket teszi.
Az „Nmap” kifejezés felhasználható az Nmap
programból származtatott munkák bármely
részére. A fenti lista nem kizárólagos, csak
néhány példán keresztül
megpróbálja tisztázni az Nmap
készítőinek értelmezését a
származtatott munkákkal kapcsolatban. Ezek a
korlátozások kizárólag akkor
érvényesek, ha Ön valójában
továbbértékesíti az Nmap programot.
Például semmi nem tiltja, hogy Ön kezelő
felületet készítsen az Nmap programhoz és azt
üzleti céllal forgalmazza. Terjessze a programot
önállóan és hívja fel a
felhasználók figyelmét, hogy az Nmap programot
külön kell letölteniük a https://nmap.org
címről.
A program készítői nem gondolják, hogy a fentiek
további korlátozásokat adnának a GPL-hez,
kizárólag annak tisztázására
szolgálnak, hogyan értelmezik a „származtatott
munkák” fogalmát a GPL engedély alatt terjesztett
Nmap programmal kapcsolatban. Ez hasonló ahhoz, ahogyan Linus Torvalds
kifejtette a véleményét a Linux rendszermag-modulokhoz
kapcsolódó „származtatott munkákkal”
kapcsolatban. A készítők értelmezése
kizárólag az Nmap programra vonatkozik - nem vonatkozik
más GPL termékekre.
A készítők örömmel segítenek a GPL
korlátozásainak értelmezésében, ha az Nmap
programot nem GPL licenc alatt terjesztett munkában
kívánja felhasználni és bármilyen
kérdése merülne fel ezzel kapcsolatban. Ahogy a
fentiekben már szóba került, a
készítőktől más licenc is
beszerezhető, ha az Nmap programot üzleti célú
alkalmazásban vagy eszközben kívánja
felhasználni. Több biztonsági eszköz
szállítója kötött ilyen
szerződést, amely általában tartalmaz egy
állandó licencet az Nmap használatára, kiemelt
támogatást és frissítést. Emellett
segít fedezni az Nmap technológiájának folyamatos
fejlesztésével járó költségeket is.
További információkat a <[email protected]>
címre küldött levélben kérhet.
A GPL előírásaihoz képest különleges
kivételként az Insecure.Com LLC
hozzájárulását adja, hogy a program
kódjához az OpenSSL könyvtár bármely
változatát hozzákapcsolják. Ezt a
könyvtárat külön licenc alatt terjesztik, melynek
leírása megtalálható a Copying.OpenSSL
fájlban, vagy a program saját copyright fájljához
csatolva. Az OpenSSL kivételével Önnek minden
használt kód esetében engedelmeskednie kell a GNU GPL
előírásainak. Ha módosítja ezt a
fájlt, kiterjesztheti ezt a kivételt a saját
változatára, de erre semmi sem kötelezi.
Ha Ön ezeket a fájlokat egy írott licenc
megállapodással, vagy olyan szerződéssel kapja,
mely a fentiektől eltérő kitételeket tartalmaz,
akkor ezek a megállapodások elsőbbséget
élveznek a fentiekkel szemben.
Creative Commons License ehhez az Nmap Útmutatóhoz
Nmap Referencia Útmutató (C) 2005 Insecure.Com LLC. Ez az útmutató a Creative Commons Attribution License[2] 2.5-ös változata alatt jelenik meg. Ez lehetővé teszi az Ön számára, hogy szabadon terjessze és módosítsa saját igényei szerint mindaddig, amíg hivatkozik az eredeti forrásra. Alternatív megoldásként kezelheti úgy is ezt a dokumentumot, mintha az Nmap programmal azonos licenc alá tartozna (az előzőek szerint).Unofficial Translation Disclaimer / Nem hivatalos fordítói nyilatkozat
This is an unnofficial translation of the Nmap license details[12] into hungarian. It was not written by Insecure.Com LLC, and does not legally state the distribution terms for Nmap -- only the original English text does that. However, we hope that this translation helps hungarian speakers understand the Nmap license better. Ez az Nmap licenc részletek[12] nem hivatalos magyar fordítása. Ezt nem az Insecure.Com LLC készítette és nem tartalmazza az Nmap hivatalos terjesztési irányelveit. Ezeket kizárólag az eredeti angol nyelvű szöveg tartalmazza. Azonban reméljük, hogy ez a fordítás segít a magyarul beszélőknek jobban megérteni az Nmap licencét.A forráskód elérhetősége és a közösségi hozzájárulás
Azért biztosítjuk a hozzáférést a program forráskódjához, mert hiszünk abban, hogy a felhasználónak jogában áll megismerni a program működését annak elindítása előtt. Emellett a program esetleges biztonsági rései is vizsgálhatóak (régóta nem találtak egyet sem). A forráskód segítségével az Nmap átvihető új rendszerekre, kijavíthatók a hibák és új képességekkel is bővíthető a program. Bátorítunk mindenkit, hogy az általa készített változtatásokat küldje el a <[email protected]> címre, hogy azok bekerülhessenek a fő terjesztésbe. Azzal, hogy ezeket a módosításokat elküldi Fyodornak vagy valamely Insecure.Org fejlesztői listának, Ön korlátozás nélküli, nem-kizárólagos jogot biztosít Fyodornak és az Insecure.Com LLC-nek a kód újrafelhasználásához, módosításához és új licenc alatti kibocsátásához. Bár az Nmap mindig elérhető lesz nyílt forrásúként, de ha nincs lehetőség a kód új licenc alatti kibocsátására, ez számos szabad program szempontjából katasztrofális. Alkalmanként harmadik fél számára is új licenc alatt engedélyezzük a kód használatát a fentiek szerint. Ha a saját kódját különleges licenc alatt szeretné engedélyezni, kérjük jelezze azt az elküldéssel egyidőben.Nincs garancia
A programot annak reményében terjesztjük, hogy hasznos lesz, de MINDENFÉLE GARANCIA NÉLKÜL; beleértve az ELADHATÓSÁGRA vagy EGY ADOTT CÉLRA VALÓ MEGFELELŐSÉGRE vonatkozó garanciát. További részletekért látogasson el a http://www.gnu.org/copyleft/gpl.html címre, vagy olvassa el az Nmap programmal terjesztett COPYING fájlt. Szükséges megjegyezni, hogy alkalmanként az Nmap miatt öszeomolhatnak bizonyos gyengén megírt alkalmazások, TCP/IP vermek és operációs rendszerek is. Bár ezek nagyon ritkán fordulnak elő, fontos észben tartani. Soha ne használja az Nmap programot kritikus feladatot ellátó rendszer letapogatására addig, míg fel nem készült egy esetleges leállás minden következményére. A készítők elismerik, hogy az Nmap okozhatja egyes rendszerek vagy hálózatok összeomlását és elutasítanak minden felelősséget az Nmap által esetleg okozott kárral vagy problémákkal kapcsolatban.Helytelen használat
Az esetleges összeomlások kockázata miatt és mert rossz szándékű behatolók előzetes felderítésre használják az Nmap programot, egyes rendszergazdák idegesen reagálnak a legkisebb letapogatásra is és hajlamosak panasszal élni. Így a legkisebb letapogatás előtt is célszerű a rendszer tulajdonosától engedélyt kérni. Biztonsági okokból az Nmap programot soha nem szabad különleges jogosultságokkal (pl. suid root) telepíteni.Harmadik féltől származó programok
Ez a program az Apache Software Foundation[13] által fejlesztett programrészeket tartalmaz. Az Nmap programmal együtt a Libpcap hordozható csomagelfogó könyvtár[14] egy módosított változata is terjesztésre kerül. Az Nmap Windowos változata a Libpcap könyvtárból származó WinPcap könyvtárral[15] kerül terjesztésre. A szabályos kifejezések támogatását a PCRE könyvtár[16] biztosítja, mely egy nyílt forráskódú program és Philip Hazel munkája. Egyes nyers hálózati funkciók a Libdnet[17] hálózati könyvtárat használják, mely Dug Song munkája. Az Nmap programmal ennek egy módosított változata érkezik. Igény esetén az Nmap felkészíthető az SSL változat érzékelésre az OpenSSL titkosító eszköztár[18] segítségével. Az Nmap Parancsfájl motor a Lua programozási nyelv[19] egy beágyazott változatát használja. Az ebben a szakaszban szereplő valamennyi harmadik féltől származó program szabadon újra terjeszthető a BSD stílusú programlicencek alapján.USA export korlátozások
USA export korlátozás: az Insecure.Com LLC úgy véli, hogy az Nmap a US ECCN (export control classification number) 5D992 alá tartozik. Ennek a kategóriának az elnevezése: „Az 5D002 alá nem tartozó információbiztonsági program”. Ennek a besorolásnak egyetlen korlátozása a terrorizmus ellenesség, mely minden árura vonatkozik és megtiltja ezek exportálását olyan terrorista államoknak, mint Irán és Észak Korea. Így az Nmap exportálásához nem szükséges különleges engedély, hozzájárulás vagy kormányzati felhatalmazás.MEGJEGYZÉSEK
- 1.
- eredeti angol változat
- 2.
- Creative Commons Attribution License
- 3.
- RFC 1122
- 4.
- RFC 792
- 5.
- UDP
- 6.
- TCP RFC
- 7.
- RFC 959
- 8.
- Lua
- 9.
- IP protokoll
- 10.
- Nmap::Scanner
- 11.
- Nmap::Parser
- 12.
- Nmap license details
- 13.
- Apache Software Foundation
- 14.
- Libpcap hordozható csomagelfogó könyvtár
- 15.
- WinPcap könyvtárral
- 16.
- PCRE könyvtár
- 17.
- Libdnet
- 18.
- OpenSSL titkosító eszköztár
- 19.
- Lua programozási nyelv
31/08/2022 | [FIXME: source] |