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.