Jeste li znali da možete saznati koji operativni sustav umreženi uređaj radi samo gledajući način na koji komunicira na mreži? Pogledajmo kako možemo otkriti koji operativni sustav funkcioniraju naši uređaji.
Utvrđivanje operativnog sustava na stroju ili uređaju može biti korisno iz više razloga. Prvo vam omogućuje da pogledate svakodnevnu perspektivu, zamislite da se želite prebaciti na novog ISP-a koji nudi neobuzdan internet za 50 dolara mjesečno kako biste proveli probnu verziju svoje usluge. Korištenjem otisaka prstiju OS-a uskoro ćete otkriti da imaju routere za otpad i nude PPPoE uslugu koja se nudi na hrpi Windows Server 2003 strojeva. Više ne zvuči tako dobar posao, ha?
Druga upotreba za to, iako nije tako etično, jest činjenica da su sigurnosne rupe OS specifične. Na primjer, skeniranje portova i otvaranje priključka 53, a stroj je pokrenuo zastarjelu i ranjivu verziju veze, imate SINGLE priliku za iskorištavanje sigurnosne rupice jer će neuspjeli pokušaj pasti daemon.
Prilikom provođenja pasivne analize trenutačnog prometa ili čak gledanja na snimanje starih paketa, jedan od najjednostavnijih, učinkovitijih načina rada za Fingerprinting je jednostavno gledanje veličine prozora TCP i Time to Live (TTL) u IP zaglavlju prvog paket u TCP sesiji.
Evo vrijednosti za najpopularnije operacijske sustave:
Operacijski sustav | Vrijeme za život | Veličina prozora TCP-a |
Linux (Kernel 2.4 i 2.6) | 64 | 5840 |
Google Linux | 64 | 5720 |
FreeBSD | 64 | 65535 |
Windows XP | 128 | 65535 |
Windows Vista i 7 (poslužitelj 2008) | 128 | 8192 |
iOS 12.4 (Cisco usmjerivači) | 255 | 4128 |
Glavni razlog zbog kojeg operativni sustavi imaju različite vrijednosti je činjenica da RFC-ovi za TCP / IP ne određuju zadane vrijednosti. Druga važna stvar koju treba zapamtiti jest da se TTL vrijednost neće uvijek podudarati s jednim u tablici, čak i ako vaš uređaj pokreće jedan od navedenih operacijskih sustava, vidjet ćete kada šaljete IP paket preko mreže operativni sustav za slanje postavlja TTL na zadani TTL za taj operacijski sustav, ali kako paket prelazi usmjerivače, TTL se spušta za 1. Stoga, ako vidite TTL od 117, to se može očekivati da je paket koji je poslan s TTL od 128 i je prešao 11 usmjerivača prije nego što je zarobljen.
Upotreba tshark.exe najlakši je način da se prikažu vrijednosti tako da nakon što dobijete paketno snimanje, provjerite jeste li instalirali Wireshark, a zatim prijeđite na:
C: \ Program Files \
Sada držite gumb za pomicanje i kliknite desnom tipkom miša na mapu Wireshark i odaberite otvoreni prozor naredbi ovdje iz kontekstnog izbornika
Sada upišite:
tshark -r "C: \ Korisnici \ Taylor Gibb \ Desktop \ blah.pcap" "tcp.flags.syn eq 1" -T polja -e ip.src -e ip.ttl -e tcp.window_size
Obavezno zamijenite "C: \ Korisnici \ Taylor Gibb \ Desktop \ blah.pcap" s apsolutnim putem do hvatanja paketa. Nakon što pritisnete Enter, bit će prikazan sve SYN pakete iz vašeg hvatanja lakši za čitanje tabličnog formata
Sada je ovo slučajno hvatanje paketa koje sam napravio od mene, povezujući se s How-To Geek Web-mjestom, među svim ostalim glasovima koje Windows radi. Svakako vam mogu reći dvije stvari:
Ako pogledate prvu liniju tablice vidjet ćete da ne lažem, moja IP adresa je 192.168.0.84 moj TTL je 128, a TCP Window Size je 8192, što odgovara vrijednostima za Windows 7.
Sljedeća stvar koju vidim je adresa 74.125.233.24 s TTL od 44 i TCP prozor veličine 5720, ako pogledam na moj stol nema OS sa TTL od 44, no on kaže da je Linux koji Googleovi poslužitelji pokrenite veličinu prozora TCP 5720. Nakon brzog pretraživanja weba IP adrese vidjet ćete da je riječ o Google poslužitelju.
Što još upotrebljavate tshark.exe, recite nam u komentarima.