Hacker Geek Fingerprinting cu TTL și TCP ferestre Dimensiuni
Ș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 comunică în rețea? Să aruncăm o privire asupra modului în care putem descoperi ce sistem de operare funcționează dispozitivele noastre.
De ce ai face asta??
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ă de zi cu zi, imaginați-vă că doriți să treceți la un nou ISP care oferă uncaped internet pentru 50 de dolari pe lună, astfel încât să luați un proces de încercare a serviciului lor. 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 sună ca o afacere bună, nu-i așa??
O altă utilizare pentru acest lucru, deși nu este atât de etică, este faptul că găurile de securitate sunt specifice sistemului de operare. De exemplu, faceți o scanare port și găsiți portul 53 deschis și aparatul 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 da naștere unui daemon.
Cum funcționează amprenta OS??
Atunci când faceți o analiză pasivă a traficului curent sau chiar căutați vechile capturi de pachete, una dintre cele mai ușoare și eficiente metode de a face Fingerprinting OS este doar căutarea dimensiunii 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. Un alt lucru important de reținut este faptul că valoarea TTL nu se va potrivi întotdeauna până la unul din tabel, chiar dacă dispozitivul dvs. rulează unul dintre sistemele de operare listate, vedeți când trimiteți un pachet IP în rețea, sistemul de operare al dispozitivului de trimitere stabilește TTL la TTL implicit pentru acel OS, dar pe măsură ce 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 care a fost 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 captura 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ă pentru capturarea 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 chestii pe care Windows le face, vă pot spune două lucruri cu siguranță:
- Rețeaua mea locală este 192.168.0.0/24
- Sunt pe o cutie Windows 7
Dacă te uiți la prima linie a tabelului, vei vedea că nu mint, adresa mea IP este 192.168.0.84 TTL-ul meu este 128 și mărimea ferestrei TCP este de 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 a ferestrei TCP 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 executați o fereastră TCP 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.