Știați că puteți afla ce sistem de operare rulează un dispozitiv în rețea doar dacă vă uitați la modul în care acesta comunică în rețea? Să aruncăm o privire la modul în care putem descoperi ce sistem de operare funcționează dispozitivele noastre.
Stabilirea sistemului de operare pe care îl rulează o mașină sau dispozitiv poate fi util din mai multe motive. Mai întâi vă permite să aruncați o privire la o perspectivă cotidiană, imaginați-vă că doriți să treceți la un nou ISP care oferă un acces neautorizat la internet de 50 de dolari pe lună, astfel încât să faceți o încercare a serviciului. Prin utilizarea amprentelor OS veți descoperi curând că au routere pentru gunoi și oferă un serviciu PPPoE oferit pe o grămadă de mașini Windows Server 2003. Nu mai suna așa ceva, nu?
O altă utilizare pentru acest lucru, deși nu etică, este faptul că găurile de securitate sunt specifice sistemului de operare. De exemplu, faceți o scanare a portului și găsiți portul 53 deschis și mașina rulează o versiune depășită și vulnerabilă a Bind, aveți o singură șansă de a exploata gaura de securitate, deoarece o încercare eșuată ar daunui daemonului.
Atunci când faceți o analiză pasivă a traficului curent sau chiar vă uitați la capturile vechi de pachete, una dintre cele mai ușoare și eficiente metode de a face Fingerprinting OS este doar căutați dimensiunea ferestrei TCP și Time To Live (TTL) în antetul IP al primei pachet într-o sesiune TCP.
Iată valorile pentru sistemele de operare mai populare:
Sistem de operare | Timpul sa traiesti | Dimensiunea ferestrei TCP |
Linux (Kernel 2.4 și 2.6) | 64 | 5840 |
Google Linux | 64 | 5720 |
FreeBSD | 64 | 65535 |
Windows XP | 128 | 65535 |
Windows Vista și 7 (Server 2008) | 128 | 8192 |
iOS 12.4 (Routere Cisco) | 255 | 4128 |
Principalul motiv pentru care sistemele de operare au valori diferite se datorează faptului că RFC-urile pentru TCP / IP nu prevăd valori implicite. Alt lucru important de reținut este faptul că valoarea TTL nu se va potrivi întotdeauna până la unul în tabel, chiar dacă dispozitivul dvs. rulează unul dintre sistemele de operare listate, vedeți când trimiteți un pachet IP prin rețea, sistemul de operare al dispozitivului de trimitere stabilește TTL la TTL implicit pentru acel sistem de operare, dar când pachetul traversează routerele, TTL este redus cu 1. Prin urmare, dacă vedeți un TTL de 117, se poate aștepta ca acesta să fie un pachet trimis cu un TTL de 128 și a traversat 11 routere înainte de a fi capturat.
Utilizarea tshark.exe este cel mai simplu mod de a vedea valorile astfel încât, odată ce ați primit o captură de pachete, asigurați-vă că ați instalat Wireshark, apoi navigați la:
C: \ Program Files \
Acum mențineți butonul de schimbare și faceți clic dreapta pe folderul wireshark și selectați fereastra de deschidere a comenzii aici din meniul contextual
Acum tastați:
tshark -r "C: \ Utilizatori \ Taylor Gibb \ Desktop \ blah.pcap" "tcp.flags.syn eq 1" -T câmpuri -e ip.src -e ip.ttl -e tcp.window_size
Asigurați-vă că înlocuiți "C: \ Users \ Taylor Gibb \ Desktop \ blah.pcap" cu calea absolută de captare a pachetelor. Odată ce ați apăsat pe Enter, vor fi afișate toate pachetele SYN din captura dvs. un format de tabel mai ușor de citit
Acum, aceasta este o captură de pachete aleatoare pe care am făcut-o de la mine conectându-mă la site-ul How-To Geek, printre toate celelalte probleme pe care Windows le face, vă pot spune două lucruri cu siguranță:
Dacă te uiți la prima linie a tabelului, vei vedea că nu minte, adresa mea IP este 192.168.0.84 TTL-ul meu este 128 și mărimea ferestrei TCP este 8192, care se potrivește până la valorile pentru Windows 7.
Următorul lucru pe care îl văd este o adresă de 74.125.233.24 cu un TTL de 44 și o dimensiune TCP Window de 5720, dacă mă uit la masa mea nu există nici un OS cu un TTL de 44, cu toate acestea se spune că Linux-ul serverele Google rulați un TCP Window Size 5720. După ce faceți o căutare rapidă pe web a adresei IP, veți vedea că este de fapt un server Google.
Ce altceva folosiți pentru tshark.exe, spuneți-ne în comentarii.