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.
Określanie, na jakim systemie operacyjnym działa 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 systemu pobierania odcisków palców, 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, co?
Innym zastosowaniem, 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 wrażliwa wersja Bind, masz MOŻLIWOŚĆ wykorzystania luki bezpieczeństwa, ponieważ nieudana próba spowoduje awarię demona.
Podczas wykonywania pasywnej analizy bieżącego ruchu lub nawet przeglądania starych przechwyconych pakietów jednym z najprostszych i najskuteczniejszych sposobów wykonywania odcisków palców w systemie operacyjnym 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 najprostszym sposobem, aby zobaczyć 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 folder Wireshark prawym przyciskiem myszy 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 ze swojego uchwycenia 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, wśród wszystkich innych wariacji Windows robi, mogę powiedzieć dwie rzeczy na pewno:
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 uzyskać rozmiar okna TCP 5720. Po szybkim wyszukiwaniu adresu IP zobaczysz, że jest to w istocie serwer Google.
Do czego jeszcze używasz tshark.exe, powiedz nam w komentarzach.