Hacker Geek OS Fingerprinting z TTL i rozmiarami okien TCP
Czy wiesz, że możesz dowiedzieć się, który system operacyjny działa w sieci, sprawdzając sposób, w jaki komunikuje się on w sieci? Rzućmy okiem na to, w jaki sposób możemy odkryć, na jakim systemie operacyjnym działają nasze urządzenia.
Dlaczego miałbyś to zrobić?
Ustalenie, na jakim systemie operacyjnym jest uruchomiona maszyna lub urządzenie, może być przydatne z wielu powodów. Najpierw spójrzmy na codzienną perspektywę, wyobraźmy sobie, że chcesz przejść na nowego dostawcę usług internetowych, który oferuje nieograniczony dostęp do Internetu za 50 USD miesięcznie, więc podejmiesz próbę swojej usługi. Korzystając z pobierania odcisków palców z systemu operacyjnego, wkrótce odkryjesz, że mają one routery do śmieci i oferują usługę PPPoE oferowaną na kilku komputerach z systemem Windows Server 2003. Nie brzmi już tak dobrze, huh?
Innym zastosowaniem tego, choć nie tak etycznym, jest fakt, że luki w zabezpieczeniach są specyficzne dla systemu operacyjnego. Na przykład, skanujesz port i znajdujesz port 53 otwarty, a na maszynie działa przestarzała i podatna na błędy wersja Bind, masz MOŻLIWOŚĆ wykorzystania luki bezpieczeństwa, ponieważ nieudana próba spowoduje awarię demona.
Jak działa pobieranie odcisków palców systemu operacyjnego?
Podczas wykonywania pasywnej analizy bieżącego ruchu, a nawet przyglądania się przechwyceniu starych pakietów, jednym z najprostszych i najskuteczniejszych sposobów wykonywania odcisków palców systemu operacyjnego jest po prostu spojrzenie na rozmiar okna TCP i czas do życia (TTL) w nagłówku IP pierwszego pakiet w sesji TCP.
Oto wartości dla bardziej popularnych systemów operacyjnych:
System operacyjny | Czas żyć | Rozmiar okna TCP |
Linux (jądro 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 (Cisco Routers) | 255 | 4128 |
Głównym powodem, dla którego systemy operacyjne mają różne wartości, jest fakt, że specyfikacja RFC dla protokołu TCP / IP nie określa wartości domyślnych. Inną ważną rzeczą, o której należy pamiętać, jest to, że wartość TTL nie zawsze będzie pasowała do jednej w tabeli, nawet jeśli na twoim urządzeniu działa jeden z wymienionych systemów operacyjnych, zobaczysz, kiedy wysyłasz pakiet IP w sieci do systemu operacyjnego urządzenia wysyłającego ustawia TTL na domyślny TTL dla tego systemu operacyjnego, ale gdy pakiet przechodzi przez routery, TTL jest obniżany o 1. Dlatego, jeśli widzisz TTL 117, można oczekiwać, że będzie to pakiet wysłany z TTL 128 i przeszedł 11 routerów, zanim został przechwycony.
Używanie tshark.exe jest najłatwiejszym sposobem zobaczenia wartości, więc gdy już zrobisz przechwycenie pakietu, upewnij się, że masz zainstalowany Wireshark, a następnie przejdź do:
C: \ Program Files \
Teraz przytrzymaj przycisk Shift i kliknij prawym przyciskiem myszy folder Wireshark i wybierz polecenie Otwórz okno poleceń z menu kontekstowego
Teraz wpisz:
tshark -r "C: \ Users \ Taylor Gibb \ Desktop \ blah.pcap" "tcp.flags.syn eq 1" -T pola -e ip.src -e ip.ttl -e tcp.window_size
Zastąp "C: \ Users \ Taylor Gibb \ Desktop \ blah.pcap" absolutną ścieżką do przechwytywania pakietów. Po naciśnięciu Enter zobaczysz wszystkie pakiety SYN z przechwytywania i łatwiejszy do odczytania format tabeli
Teraz jest to losowe przechwytywanie pakietów, które zrobiłem ze mną, łącząc się z witryną How-To Geek, a wśród wszystkich innych programów, które robi Windows, mogę powiedzieć dwie rzeczy na pewno:
- Moja sieć lokalna to 192.168.0.0/24
- Jestem na pudełku Windows 7
Jeśli spojrzysz na pierwszy wiersz tabeli, zobaczysz, że nie kłamię, mój adres IP to 192.168.0.84 mój TTL wynosi 128, a mój rozmiar okna TCP to 8192, który pasuje do wartości dla Windows 7.
Następną rzeczą, którą widzę jest 74.125.233.24 adres z TTL 44 i Rozmiar okna TCP 5720, jeśli spojrzę na moim stole nie ma systemu operacyjnego z TTL 44, jednak mówi się, że Linux, który serwery Google Uruchom, aby mieć rozmiar okna TCP 5720. Po wykonaniu szybkiego wyszukiwania adresu IP zobaczysz, że jest to w rzeczywistości serwer Google.
Do czego jeszcze używasz tshark.exe, powiedz nam w komentarzach.