28Aug
Visste du at du kan finne ut hvilket operativsystem en nettverksmaskin kjører bare ved å se på hvordan den kommuniserer på nettverket? La oss ta en titt på hvordan vi kan finne ut hvilket operativsystem våre enheter kjører.
Hvorfor ville du gjøre dette?
Bestemme hvilket operativsystem en maskin eller en enhet kjører, kan være nyttig av mange grunner. Først kan vi se på et dagligdagsperspektiv, forestill deg at du vil bytte til en ny Internett-leverandør som tilbyr ubegrenset internett for $ 50 i måneden, slik at du tar en prøve på tjenesten deres. Ved å bruke OS fingeravtrykk vil du snart oppdage at de har søppelruter og tilbyr en PPPoE-tjeneste som tilbys på en rekke Windows Server 2003-maskiner. Høres ikke ut som en god avtale lenger, va?
En annen bruk for dette, om enn ikke så etisk, er at sikkerhetshull er OS-spesifikk. For eksempel gjør du en portskanning og finner port 53 åpen og maskinen kjører en utdatert og sårbar versjon av Bind, du har en SINGLE sjanse til å utnytte sikkerhetshullet siden et mislykket forsøk ville krasje demonen.
Hvordan virker OS fingeravtrykk?
Når du gjør passiv analyse av nåværende trafikk eller ser på gamle pakkefangster, er en av de enkleste, mest effektive måtene å gjøre OS Fingeravtrykk ved å bare se på TCP-vinduets størrelse og Time To Live( TTL) i IP-header påførste pakke i en TCP-økt.
Her er verdiene for de mer populære operativsystemene:
Operativsystem | Tid til å leve | TCP Window Size |
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årsaken til at operativsystemene har forskjellige verdier skyldes at RFCs for TCP / IP ikke angir standardverdier. En annen viktig ting å huske er at TTL-verdien ikke alltid samsvarer med en i tabellen, selv om enheten kjører et av de oppførte operativsystemene, ser du når du sender en IP-pakke over nettverket, sendingsenhetens operativsystemsetter TTL til standard TTL for det operativsystemet, men når pakken krysser rutere, senkes TTL med 1. Derfor, hvis du ser en TTL på 117, kan dette forventes å være en pakke som ble sendt med en TTL på 128 oghar traversert 11 rutere før de ble fanget.
Bruk tshark.exe er den enkleste måten å se verdiene på, så når du har pakket inn, sørg for at du har installert Wireshark, så naviger til:
C: \ Program Files \
Hold nede skift-knappen og høyreklikkpå wireshark-mappen og velg åpent kommandovindu her fra hurtigmenyen
Nå type:
tshark -r "C: \ Brukere \ Taylor Gibb \ Desktop \ blah.pcap" "tcp.flags.syn eq 1" -T felt -e ip.src -e ip.ttl -e tcp.window_size
Pass på at du erstatter "C: \ Users \ Taylor Gibb \ Desktop \ blah.pcap" med den absolutte banen til pakkeopptaket. Når du har slått inn, vil du bli vist alle SYN-pakkene fra bildet ditt, en enklere å lese tabellformat
Nå er dette en tilfeldig pakkeopptak jeg laget av meg som koblet til How-To Geek-websiden, blant alle de andre snakkene Windows gjørJeg kan fortelle deg to ting sikkert:
- Mitt lokale nettverk er 192.168.0.0/24
- Jeg er på en Windows 7-boks
Hvis du ser på den første linjen 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 opp til verdiene for Windows 7.
Den neste tingen 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å bordet mitt, er det ingen OS med en TTL på 44, men det sier at Linux som Googles servere kjører, har en TCP Window Size 5720. Etter å ha gjort et raskt websøk av IP-adressen, vil du se at det erfaktisk en Google-server.
Hva annet bruker du tshark.exe for, fortell oss i kommentarene.