28Aug

Hacker Geek: Fingerprinting OS s velikostí okna TTL a TCP

Věděli jste, že zjistíte, který operační systém je v síti spuštěn, když se podíváte na způsob komunikace v síti? Podívejme se na to, jak zjistíme, jaký operační systém běží naše zařízení.

Proč jste to udělali?

Určení toho, co OS běží stroj nebo zařízení, může být užitečné z mnoha důvodů.Nejprve se můžete podívat na každodenní perspektivu, představte si, že chcete přepnout na nového poskytovatele internetových služeb, který nabízí měsíc neomezený internet za 50 dolarů, abyste mohli vyzkoušet jejich službu. Pomocí otisky prstů OS brzy zjistíte, že mají směrovače odpadků a nabízejí službu PPPoE, která je nabízena na mnoha počítačích se systémem Windows Server 2003.Zdá se, že to není tak dobrá dohoda, že jo?

Dalším použitím, i když není tak etické, je skutečnost, že bezpečnostní díry jsou specifické pro operační systém. Provedete například kontrolu portů a otevření portu 53 a stroj běží starou a zranitelnou verzí Bind, máte SINGLE šanci využít bezpečnostní otvor, protože selhání pokusu by selhalo démona.

Jak funguje OS Fingerprinting?

Při pasivní analýze stávajícího provozu nebo dokonce při pohledu na staré zachycení paketů je jedním z nejjednodušších a nejúčinnějších způsobů, jak provádět OS Fingerprinting, prostě prohlížet velikost okna TCP a Time To Live( TTL) v hlavičce IPprvní paket v relaci TCP.

Zde jsou hodnoty pro populárnější operační systémy:

Operační systém Čas k životu Velikost okna TCP
Linux( Kernel 2.4 a 2.6) 64 5840
Google Linux 64 5720
FreeBSD 64 65535
Windows XP 128 65535
Windows Vista a 7( Server 2008) 128 8192
iOS12.4( Cisco Routers) 255 4128

Hlavním důvodem, proč mají operační systémy různé hodnoty, je skutečnost, že RFC pro TCP / IP neobsahují výchozí hodnoty. Důležitá věc, kterou je třeba pamatovat, je, že hodnota TTL nebude vždy v tabulce odpovídat až jednomu, a to i v případě, že je v zařízení spuštěn jeden z uvedených operačních systémů, uvidíte při odesílání IP paketu v síti operační systém odesílajícího zařízenínastaví TTL na výchozí TTL pro daný operační systém, ale vzhledem k tomu, že paket prochází směrovači, je TTL snížena o 1. Pokud tedy vidíte TTL 117, lze očekávat, že je to paket, který byl odeslán s TTL 128 aprocházel 11 směrovačů předtím, než byl zachycen.

Pomocí tshark.exe je nejjednodušší způsob zobrazení hodnot, takže jakmile získáte zachycení paketů, ujistěte se, že máte Wireshark nainstalovaný, přejděte na:

C: \ Program Files \

Nyní podržte tlačítko Shift a klepněte pravým tlačítkem myšive složce wireshark a z kontextové nabídky vyberte otevřené okno příkazu

Nyní napište:

tshark -r "C: \ Users \ Taylor Gibb \ Desktop \ blah.pcap" "tcp.flags.syn eq 1" -T pole -e ip.src -e ip.ttl -e tcp.window_size

Nezapomeňte nahradit "C: \ Users \ Taylor Gibb \ Desktop \ blah.pcap" absolutní cestou k zachycení paketů.Jakmile stisknete klávesu ENTER, zobrazí se vám všechny pakety SYN z vašeho snímání a jednodušší čtení formátu tabulky

Nyní je to náhodný zachycení paketů, který jsem se připojil k webu How-To Geek, mezi všemi ostatními chatrčími, které Windows děláMohu vám říct jistě dvě věci:

  • Moje místní síť je 192.168.0.0/24
  • Jsem na poli Windows 7

Pokud se podíváte na první řádek tabulky, uvidíte, že neklamám, má adresa IP192.168.0.84 můj TTL je 128 a můj TCP Window Size je 8192, což odpovídá hodnotám pro Windows 7.

Další věc, kterou vidím, je adresa 74.125.233.24 s TTL 44 a TCP Window Size 5720,pokud se podívám na svůj stůl, neexistuje žádný operační systém s TTL 44, nicméně to říká, že Linux, že servery Google běží mít TCP okno velikost 5720. Po rychlém hledání IP adres IP uvidíte, že jeve skutečnosti server Google.

Co jiného používáte tshark.exe pro, řekněte nám v komentářích.