Hacker Geek OS prstnih odtisov s TTL in TCP Window Sizes
Ali ste vedeli, da lahko ugotovite, kateri operacijski sistem v omrežni napravi deluje, samo če pogledate, kako komunicira v omrežju? Oglejmo si, kako lahko ugotovimo, kateri operacijski sistem delujejo naše naprave.
Zakaj bi to storili?
Ugotavljanje, kateri operacijski sistem je nameščen v računalniku, je lahko koristno iz več razlogov. Najprej si oglejte vsakodnevno perspektivo, zamislite si, da želite preklopiti na novega ponudnika internetnih storitev, ki ponuja nepovezan internet za 50 $ na mesec, tako da boste lahko poskusili njihovo storitev. Z uporabo prstnih odtisov OS boste kmalu odkrili, da imajo usmerjevalnike smeti in ponujajo storitev PPPoE, ki je na voljo na številnih računalnikih Windows Server 2003. Ne zveni tako dobro, kajne?
Druga uporaba tega, čeprav ne tako etična, je dejstvo, da so varnostne luknje specifične za OS. Na primer, pregledate vrata in odkrijete, da je vrata 53 odprta in da naprava izvaja zastarelo in ranljivo različico Bind, imate možnost SINGLE, da izkoristite varnostno luknjo, ker bi neuspeli poskus zrušil demon.
Kako deluje OS Fingerprinting?
Ko delate pasivno analizo trenutnega prometa ali celo iščete stare pakete, je eden od najlažjih, učinkovitih načinov izvajanja OS Fingerprinting preprosto pogled na velikost okna TCP in čas za življenje (TTL) v glavi IP prvega v seji TCP.
Tu so vrednosti za bolj priljubljene operacijske sisteme:
Operacijski sistem | Čas za življenje | Velikost okna TCP |
Linux (jedro 2.4 in 2.6) | 64 | 5840 |
Google Linux | 64 | 5720 |
FreeBSD | 64 | 65535 |
Windows XP | 128 | 65535 |
Windows Vista in 7 (strežnik 2008) | 128 | 8192 |
iOS 12.4 (usmerjevalniki Cisco) | 255 | 4128 |
Glavni razlog, da imajo operacijski sistemi različne vrednosti, je dejstvo, da RFC za TCP / IP ne določa privzetih vrednosti. Druga pomembna stvar, ki si jo morate zapomniti, je, da se vrednost TTL ne bo vedno ujemala z eno vrednostjo v tabeli, tudi če vaša naprava izvaja enega od navedenih operacijskih sistemov, vidite, ko pošljete paket IP prek omrežja, operacijski sistem pošiljateljske naprave nastavi TTL na privzeti TTL za ta OS, toda, ko paket prečka usmerjevalnike, se TTL zniža za 1. Torej, če vidite TTL 117, se lahko pričakuje, da je paket, ki je bil poslan s TTL 128 in je prečkalo 11 usmerjevalnikov, preden so bili ujeti.
Uporaba tshark.exe je najpreprostejši način, da vidite vrednosti, ko imate zajeti paket, se prepričajte, da imate nameščen Wireshark, nato pa se pomaknite do:
C: Programske datoteke
Zdaj držite gumb za premik in z desno miškino tipko kliknite mapo wireshark in v kontekstnem meniju izberite ukazno okno
Sedaj vnesite:
tshark -r "C: Uporabniki Taylor Gibb Namizje blah.pcap" "tcp.flags.syn eq 1" -T polja -e ip.src -e ip.ttl -e tcp.window_size
Prepričajte se, da ste zamenjali »C: Uporabniki Haylor Gibb Desktop blah.pcap« z absolutno potjo do zajemanja paketa. Ko pritisnete Enter boste prikazani vsi SYN paketi iz vašega zajemanja lažje brati obliki tabele
Zdaj je to naključno zajemanje paketov, ki sem ga naredil tako, da sem se povezal s spletno stranjo How-To Geek.
- Moje lokalno omrežje je 192.168.0.0/24
- Jaz sem na Windows 7 škatli
Če pogledate v prvo vrstico tabele, boste videli, da ne lažem, moj IP naslov je 192.168.0.84, moj TTL je 128 in moj TCP Window Size je 8192, ki se ujema z vrednostmi za Windows 7.
Naslednja stvar, ki jo vidim, je naslov 74.125.233.24 s TTL 44 in TCP Window Size 5720, če pogledam na svojo tabelo, ni OS s TTL 44, vendar pravi, da je Linux, ki ga Googlovi strežniki Zaženite TCP Window Size 5720. Po hitrem spletnem iskanju naslova IP boste videli, da je v resnici Googlov strežnik.
Kaj še uporabljate za tshark.exe, nam to povejte v komentarjih.