28Aug

"Hacker Geek": "OS" pirštų atspaudai su TTL ir TCP langų dydžiais

Ar žinojote, kad galite sužinoti, kuri operacinė sistema veikia tinklo įrenginį, tiesiog žiūrėdami, kaip ji bendrauja tinkle? Pažiūrėkime, kaip mes galime sužinoti, kokia operacinė sistema veikia mūsų įrenginiuose.

Kodėl tu tai darytum?

Nustatant, kokia OS įrenginys ar įrenginys veikia, gali būti naudinga dėl daugelio priežasčių.Pirmiausia leiskite pažvelgti į kasdienę perspektyvą, įsivaizduokite, kad norite pereiti prie naujojo interneto tiekėjo, kuris siūlo neribotą internetą per mėnesį 50 JAV dolerių, kad galėtumėte išbandyti savo paslaugas. Naudodamiesi "OS fingerprinting", jūs netrukus pastebėsite, kad jie turi šiukšlių maršrutizatorių ir siūlo PPPoE paslaugą, siūlomą daugelyje "Windows Server 2003" mašinų.Nejau tarsi toks geras dalykas, ar ne?

Dar vienas, nors ir ne taip etiškas, naudojimas yra tai, kad saugumo skylės yra konkrečios OS.Pavyzdžiui, atliekate uosto nuskaitymą ir atverkite 53 prievadą ir mašina naudoja pasenusią ir pažeidžiamą "Bind" versiją; jūs turite vienintelę galimybę išnaudoti saugumo skylę, nes nesėkmingas bandymas gali sugadinti demoną.

Kaip veikia "OS fingerprinting"?

Atliekant pasyvią dabartinio srauto analizę arba netgi žiūrint į senus paketų fiksavimus, vienas iš paprasčiausių ir veiksmingesnių "OS Fingerprinting" būdų yra tiesiog žiūrint į TCP lango dydį ir "Time To Live"( TTL) IP antraštėjepirmasis paketas per TCP seansą.

Toliau pateikiamos populiariausių operacinių sistemų vertės:

operacinė sistema Laikas gyventi TCP lango dydis
Linux( branduoliai 2.4 ir 2.6) 64 5840
"Google Linux" 64 5720
"FreeBSD 64 65535
" "Windows XP" 128 65535
"Windows Vista" ir 7( "Server 2008") 128 8192
"iOS"12.4( Cisco maršrutizatoriai) 255 4128

Pagrindinė priežastis, kodėl operacinės sistemos turi skirtingas vertes, yra ta, kad TCP / IP RFC nenustato numatytųjų verčių.Kitas svarbus dalykas, kurį reikia atsiminti, yra tai, kad TTL vertė ne visada atitiks iki lentelėje pateiktą, net jei jūsų įrenginyje veikia viena iš išvardytų operacinių sistemų, matysite, kai siunčiate IP paketą tinkle siunčiančiojo įrenginio operacine sistemanustato TTL į tos OS numatytąjį TTL, tačiau, kadangi paketas perkelia maršrutus, TTL sumažėja iki 1. Taigi, jei matysite TTL 117, tai gali būti paketas, kuris buvo išsiųstas su TTL 128 irPrieš užfiksuojant, jis persikėlė 11 maršrutizatorių.

Naudojant tshark.exe paprasčiausias būdas pamatyti reikšmes, taigi, kai jūs gaunate paketų surinkimą, įsitikinkite, kad turite Wireshark įdiegtą, tada eikite į:

C: \ Program Files \

Dabar laikykite pamainos mygtuką ir dešiniuoju pelės mygtuku spustelėkiteaplanke wireshark ir pasirinkite kontekstinio meniu komandų langą iš

Dabar įveskite:

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

Būtinai pakeiskite "C: \ Users \ Taylor Gibb \ Desktop \ blah.pcap" su absoliučiu keliu jūsų paketų surinkimui. Kai paspausite įvesti, bus rodomi visi SYN paketai iš jūsų užfiksuoti lengviau skaityti stalo formatu

Dabar tai yra atsitiktinis paketų surinkimas, kurį aš padariau, prisijungdamas prie "How-To Geek" svetainės, tarp visų kitų "bangų" "Windows" daroGaliu pasakyti du dalykus tikrai:

  • Mano vietinis tinklas yra 192.168.0.0/24
  • Aš esu "Windows 7" dėžėje

Jei pažvelgsite į pirmąją lentelės eilutę, pamatysite, kad aš ne melas, mano IP adresas192.168.0.84 mano TTL yra 128, o mano TCP lango dydis yra 8192, kuris atitinka iki Windows 7 vertes.

Kitas dalykas, kurį aš matau, - tai adresas 74.125.233.24 su TTL 44 ir TCP lango dydis 5720,jei žiūrėsiu į mano stalą, nėra OS su 44 TTL, tačiau ji sako, kad "Linux", kuriame veikia "Google" serveriai, turi TCP lango dydį 5720. Po to, kai atliksite greitą interneto paiešką IP adresu, pamatysite, kad tai yraiš tikrųjų "Google" serveris.

Ką dar naudojate tshark.exe, pasakykite mums į komentarus.