28Aug

Hacker Geek: OS-vingerafdrukken met TTL- en TCP-vensterformaten

click fraud protection

Wist u dat u erachter kunt komen welk besturingssysteem een ​​netwerkapparaat gebruikt, gewoon door te kijken naar de manier waarop het op het netwerk communiceert? Laten we eens kijken hoe we kunnen ontdekken welk besturingssysteem onze apparaten gebruiken.

Waarom zou u dit doen?

Het bepalen van welk besturingssysteem een ​​apparaat of apparaat gebruikt, kan om verschillende redenen nuttig zijn. Laten we eerst eens kijken naar een alledaags perspectief, stel je voor dat je wilt overstappen op een nieuwe ISP die voor 50 dollar korting biedt op $ 50 per maand, zodat je een proef kunt doen met hun service. Door gebruik te maken van OS-vingerafdrukken, zult u snel ontdekken dat ze afvalrouters hebben en een PPPoE-service aanbieden die wordt aangeboden op een groot aantal Windows Server 2003-machines. Klinkt niet meer zo goed, huh?

Een ander gebruik hiervan, hoewel niet zo ethisch, is het feit dat veiligheidslekken OS-specifiek zijn. U doet bijvoorbeeld een poortscan en vindt poort 53 open en de machine voert een verouderde en kwetsbare versie van Binding uit, u heeft een ENKELE kans om het beveiligingslek te misbruiken, omdat een mislukte poging de daemon zou laten crashen.

instagram viewer

Hoe werkt de vingerafdrukken van OS?

Bij passieve analyse van het huidige verkeer of zelfs bij het bekijken van oude packet-captures, is een van de eenvoudigste en meest effectieve manieren om OS Fingerprinting uit te voeren, eenvoudigweg door te kijken naar de TCP-venstergrootte en Time To Live( TTL) in de IP-header van deeerste pakket in een TCP-sessie.

Hier zijn de waarden voor de meer populaire besturingssystemen:

besturingssysteem Tijd om te leven TCP Window Size
Linux( Kernel 2.4 en 2.6) 64 5840
Google Linux 64 5720
FreeBSD 64 65535
Windows XP 128 65535
Windows Vista en 7( Server 2008) 128 8192
iOS12.4( Cisco-routers) 255 4128

De belangrijkste reden dat de besturingssystemen verschillende waarden hebben, is te wijten aan het feit dat de RFC's voor TCP / IP geen standaardwaarden bepalen. Het is ook belangrijk om te onthouden dat de TTL-waarde niet altijd overeenkomt met één in de tabel, zelfs als op uw apparaat een van de vermelde besturingssystemen wordt uitgevoerd. U ziet wanneer u een IP-pakket via het netwerk verzendt naar het besturingssysteem van het verzendende apparaatstelt de TTL in op de standaard TTL voor dat besturingssysteem, maar als het pakket de routers doorkruist, wordt de TTL met 1 verlaagd. Als u dus een TTL van 117 ziet, kan dit naar verwachting een pakket zijn dat is verzonden met een TTL van 128 enheeft 11 routers doorlopen voordat ze werden vastgelegd.

Het gebruik van tshark.exe is de gemakkelijkste manier om de waarden te zien, dus als je eenmaal een packet-capture hebt, zorg dan dat Wireshark geïnstalleerd is, navigeer dan naar:

C: \ Program Files \

Houd nu de shift-knop ingedrukt en klik met de rechtermuisknopin de wireshark map en selecteer hier open commandovenster vanuit het contextmenu

Typ nu:

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

Zorg ervoor dat u "C: \ Users \ Taylor Gibb \ Desktop \ blah.pcap" vervangt door het absolute pad naar uw pakketopname. Zodra je op enter hebt gedrukt, worden alle SYN-pakketten uit je opname getoond en lees je een eenvoudiger tabel

Dit is een willekeurige pakketopname die ik maakte van het maken van een verbinding met de How-To Geek-website, tussen al het andere gebabbel dat Windows aan het doen isIk kan u twee dingen zeker vertellen:

  • Mijn lokaal netwerk is 192.168.0.0/24
  • Ik ben op een Windows 7-doos

Als u naar de eerste regel van de tabel kijkt, ziet u dat ik niet lieg, mijn IP-adres is192.168.0.84 mijn TTL is 128 en mijn TCP Window Size is 8192, wat overeenkomt met de waarden voor Windows 7.

Het volgende dat ik zie is een 74.125.233.24 adres met een TTL van 44 en een TCP Window Size van 5720,als ik naar mijn tafel kijk, is er geen OS met een TTL van 44, maar er staat wel dat de Linux die door de Google-servers wordt uitgevoerd een TCP Window Size 5720 heeft. Na een snelle zoekopdracht op internet van het IP-adres zul je zien dat hetin feite een Google-server.

Waar anders gebruik je tshark.exe voor, vertel het ons in de reacties.