28Aug

Hacker Geek: OS Fingerprinting med TTL og TCP Window størrelser

click fraud protection

Vidste du, at du kan finde ud af hvilket operativsystem en netværksenhed kører, bare ved at se på, hvordan den kommunikerer på netværket? Lad os se på, hvordan vi kan finde ud af, hvilket operativsystem vores enheder kører.

Hvorfor ville du gøre dette?

Det kan være nyttigt af mange årsager at afgøre, hvilket operativsystem en maskine eller enhed kører. Lad os først se på et dagligdags perspektiv, forestil dig at du vil skifte til en ny internetudbyder, der tilbyder ubearbejdet internet for $ 50 om måneden, så du tager en prøve på deres service. Ved at bruge OS-fingeraftryk vil du snart opdage, at de har rubbish-routere og tilbyder en PPPoE-tjeneste, der tilbydes på en flok Windows Server 2003-maskiner. Lyder ikke som en god aftale mere, huh?

En anden brug for dette, omend ikke så etisk, er, at sikkerhedshuller er OS-specifikke. For eksempel gør du en portscanning og finder port 53 åben, og maskinen kører en forældet og sårbar version af Bind, du har en enkelt chance for at udnytte sikkerhedshullet, da et mislykket forsøg ville ødelægge dæmonen.

instagram viewer

Hvordan virker OS Fingerprinting?

Når du foretager passiv analyse af nuværende trafik eller endda ser på gamle pakkefangster, er en af ​​de nemmeste og mest effektive måder at gøre OS Fingerprinting på ved blot at se TCP vinduesstørrelsen og Time To Live( TTL) i IP-overskriften påførste pakke i en TCP-session.

Her er værdierne for de mere populære operativsystemer:

Operativsystem Tid til live TCP Windowstørrelse
Linux( Kernel 2.4 og 2.6) 64 5840
Google Linux 64 5720
FreeBSD 64 65535
Windows XP 128 65535
Windows Vista og 7( Server 2008) 128 8192
iOS12.4( Cisco Routers) 255 4128

Hovedårsagen til, at operativsystemerne har forskellige værdier skyldes, at RFC'erne til TCP / IP ikke angiver standardværdier. Andre vigtige ting at huske er, at TTL-værdien ikke altid matcher op til en i tabellen, selvom din enhed kører et af de angivne operativsystemer, ser du, når du sender en IP-pakke på tværs af netværket, senderens enheds operativsystemsætter TTL'en til standard TTL for det pågældende operativsystem, men når pakken krydser routere sænkes TTL med 1. Derfor, hvis du ser en TTL på 117, kan dette forventes at være en pakke, der blev sendt med en TTL på 128 oghar krydset 11 routere før de blev fanget.

Brug tshark.exe er den nemmeste måde at se værdierne på, så når du har fået en pakkefange, skal du sørge for at Wireshark er installeret, og derefter navigere til:

C: \ Program Files \

Hold nu skift-knappen og højreklikpå wireshark-mappen og vælg åbent kommandovindue her fra kontekstmenuen

Nu type:

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

Sørg for at erstatte "C: \ Users \ Taylor Gibb \ Desktop \ blah.pcap" med den absolutte sti til din pakkefangst. Når du har slået ind, vil du få vist alle SYN-pakkerne fra din optagelse og lettere at læse bordformat

Nu er dette en tilfældig pakkeopsamling, jeg lavede af mig, der forbinder til How-To Geek-webstedet, blandt alle de andre chatter, Windows gørJeg kan fortælle dig to ting sikkert:

  • Mit lokale netværk er 192.168.0.0/24
  • Jeg er på en Windows 7-boks

Hvis du ser på den første linje i tabellen, vil du se, at jeg ikke lyver, min IP-adresse er192.168.0.84 min TTL er 128 og min TCP Window Size er 8192, som matcher op til værdierne for Windows 7.

Den næste ting jeg ser er en 74.125.233.24 adresse med en TTL på 44 og en TCP Window Size på 5720,hvis jeg ser på mit bord, er der ikke noget OS med en TTL på 44, men det siger, at Linux, som Googles servere kører, har en TCP Window Size 5720. Efter at have gjort en hurtig websøgning af IP-adressen vil du se, at det erfaktisk en Google-server.

Hvad mere bruger du tshark.exe til, fortæl os i kommentarerne.