Miért tennéd ezt?
A gép vagy eszköz operációs rendszerének meghatározása sok okból hasznos lehet. Először nézzük meg a mindennapi szempontokat, képzeljük el, hogy új internetszolgáltatóra szeretne váltani, aki havonta 50 dollárt kínál fel nem kapható interneten, így próbára teheti szolgáltatását. Az operációs rendszer ujjlenyomatainak használatával hamarosan felfedezheti, hogy szemét routerek, és egy PPPoE szolgáltatást kínálnak egy csomó Windows Server 2003 gépen. Már nem úgy hangzik, mint egy ilyen jó üzlet, mi?
Ennek egy másik, bár nem annyira etikus, felhasználása az a tény, hogy a biztonsági lyukak OS specifikusak. Például portolvasást végez, és az 53-as port megnyílik, és a gép a Bind elavult és sérülékeny verzióját futtatja, egy SINGLE esélye van a biztonsági lyuk kihasználására, mivel egy sikertelen kísérlet összeomlana a démont.
Hogyan működik az operációs rendszer az ujjlenyomat-nyomtatás?
Az aktuális forgalom passzív elemzésénél vagy akár a régi csomagok rögzítésekor az egyik legegyszerűbb és leghatékonyabb módja az OS Fingerprinting egyszerűen a TCP ablak méretének és a Time To Live (TTL) megtekintésének az első IP címsorában csomagot egy TCP munkamenetben.
Íme a népszerűbb operációs rendszerek értékei:
Operációs rendszer | Itt az ideje élni | TCP ablakméret |
Linux (kernel 2.4 és 2.6) | 64 | 5840 |
Google Linux | 64 | 5720 |
FreeBSD | 64 | 65535 |
Windows XP | 128 | 65535 |
Windows Vista és 7 (kiszolgáló 2008) | 128 | 8192 |
iOS 12.4 (Cisco útválasztók) | 255 | 4128 |
A legfontosabb ok, hogy az operációs rendszerek eltérő értékeket mutatnak, az a tény, hogy a TCP / IP RFC-k nem tartalmaznak alapértelmezett értékeket. Más fontos megjegyezni, hogy a TTL-érték nem mindig egyezik meg a táblázatban, még akkor sem, ha az eszköz a felsorolt operációs rendszerek egyikét futtatja, akkor látja, amikor IP-csomagot küld a hálózaton keresztül a küldő eszköz operációs rendszere beállítja a TTL-t az adott operációs rendszer alapértelmezett TTL-értékére, de ahogy a csomag átirányítja az útválasztókat, a TTL-értéket 1-re csökkentik. Ezért ha 117 TTL-t lát, akkor ez várhatóan 128 TTL 11 forgalomirányítót keresztezte, mielőtt elfogták.
A tshark.exe használata a legegyszerűbb módja annak, hogy az értékeket láthassuk, így miután megkaptuk a csomagok letapogatását, győződjön meg arról, hogy telepítve van a Wireshark, majd navigáljon:
C:Program Files
Most tartsa lenyomva a shift gombot, és jobb egérgombbal kattintson a wireshark mappára, és a helyi menüből válassza ki a parancsfájl megnyitását
tshark -r 'C:UsersTaylor GibbDesktoplah.pcap' 'tcp.flags.syn eq 1' -T fields -e ip.src -e ip.ttl -e tcp.window_size
Győződjön meg róla, hogy a "C: Felhasználók Taylor Gibb Desktop blah.pcap" helyére cserélje a csomagkészlet elfogadásának abszolút elérési útját. A beütés után az összes beolvasott SYN csomag megjelenik egy könnyebben olvasható táblázatos formátumban
- A helyi hálózatom 192.168.0.0/24
- Windows 7-es dobozban vagyok
Ha megnézed a táblázat első sorát, látni fogod, hogy nem hazudok, az IP-címem 192.168.0.84, a TTL 128-as és a TCP ablakméret 8192, ami megfelel a Windows 7 értékeinek.
A következő dolog, amit látok, egy 74.125.233.24 cím, TTL 44-es és TCP ablakméret 5720, ha megnézem az asztalom nincs olyan operációs rendszer, amelynek TTL-je 44, de azt mondja, hogy a Linux, hogy a Google szerverei futtatnak egy TCP ablakméretet 5720. Az IP-cím gyors internetes keresés után látni fogja, hogy valóban egy Google-kiszolgáló.