Jak wykryć komputer w sieci przy pomocy nmap

Spis treści

Opisywane jakiś czas temu przeze mnie ekstendery powerline, tak bardzo mi przypadły do gustu, że korzystam z nich praktycznie bez przerwy. Po skonfigurowaniu roamingu sieci WiFi w linux'ie, mój laptop w nieodczuwalny dla mnie w sposób rekonfiguruje połączenie w obrębie sieci domowej. Sygnał jest na prawdę bardzo dobrej jakości w każdym zakątku domu, przez co w ogóle zapomniałem o istnieniu tych transmiterów sieciowych. Chciałem przenieść jeden z ekstenderów z kanału 1 (domyślny), na kanał 6, który jest najmniej zatłoczony. Problem w tym, że zapomniałem jakim adresem IP dysponuje AP tego urządzenia. Przestrzeń adresowa tej sieci to 192.168.1.0/24, czyli adresów jest 254 (192.168.1.0, 192.168.0.255 zarezerwowane dla broadcast). Nie uśmiechało mi się wpisywanie każdego z tych adresów w przeglądarce, by ten panel admina odszukać metodą na chybił trafił. Na szczęście są o wiele szybsze metody szukania maszyn w sieci, np. zapytania o adres IP w protokole ARP. A przy pomocy skanera nmap możemy w parę sekund ustalić adres IP wszystkich aktualnie podłączonych komputerów do sieci.

Nmap i protokół ARP

Każdy host podłączony do sieci TCP/IP musi mieć przypisany jakiś adres IP. By taki adres IP otrzymać, karta sieciowa takiego komputera musi posiadać adres MAC, który zwykle jest unikatowy dla danego urządzenia. Rozwiązywanie adresów IP na MAC jest przeprowadzane za pomocą protokołu ARP przed wysłaniem każdego pakietu.

Każdy host w sieci utrzymuje swoją tablicę IP-MAC. Wpisy w niej są dodawane po rozwiązaniu adresu IP na MAC. Są one ważne przez jakiś czas i są regularnie odświeżane. Przy takim odświeżeniu, stare i nieaktualne powiązania adresów są usuwane, przez co zwalniana jest zajmowana przez nie pamięć operacyjna RAM.

Komunikacja w sieci odbywa się w oparciu o adres IP. Nasza maszyna przed wysłaniem pakietu sieciowego musi znać ten adres IP. A w przypadku tych ekstenderów powerline właśnie adres nie jest znany. Jak zatem ustalić gdzie znajduje się panel administracyjny? Możemy to zrobić odpytując każdy pojedynczy host w sieci (ostatni oktet z zakresu 1-254). Nie będziemy tego robić ręcznie, bo zajęłoby nam to sporo czasu. Możemy zapuścić nmap i niech on za nas odpyta wszystkie te hosty w sieci. Zainstalujmy zatem w systemie pakiet nmap .

Skanowanie pod kątem obecności hostów w sieci możemy przeprowadzić z grubsza na dwa sposoby. Pierwszym z nich jest wysłanie zapytań ARP pod każdy adres IP z naszej sieci. Drugim zaś wykonanie pełnego skanu, w skład którego domyślnie wchodzi wysłanie pakietów ICMP echo request, TCP SYN na port 443, TCP ACK na port 80 oraz ICMP timestamp request. Ten drugi sposób zajmuje o wiele więcej czasu. Do skanowania maszyn w lokalnej sieci zwykle wykorzystuje się jedynie zapytania w protokole ARP. Poniżej są przykłady obu tych skanów.

Skanowanie ARP

W przypadku żądań ARP, w terminalu wpisujemy polecenie nmap -sn 192.168.1.0/24 . Czas skanowania zamknął się w granicach 3 sekund:

wykrywanie-komputer-host-siec-arp-nmap

Poniżej jest jeszcze fotka z wireshark'a, która obrazuje cały proces:

wykrywanie-komputer-host-siec-arp-wireshark

Jak widać, każdy pojedynczy adres IP został przez nmap odpytany. Z adresów, które są aktualnie wykorzystywane w sieci, zostaje zwrócona odpowiedź, tak jak to widzimy w jednym przypadku wyżej na fotce.

Pełne skanowanie

Jeśli chcielibyśmy wykonać pełen skan wszystkich hostów w sieci, to w terminalu wydajemy polecenie nmap -sn --send-ip 192.168.1.0/24 . I tutaj już ten proces trwał ponad 20 sekund:

wykrywanie-komputer-host-siec-nmap-pelny-skan

Poniżej jest zaś fotka z wireshark'a, która pokazuje ruch do jednego hosta przy korzystaniu z tego typu skanowania:

wykrywanie-komputer-host-siec-wireshark-pelny-skan-nmap

Wykryte hosty w sieci

Jak widać, aktualnie w sieci są zalogowane cztery urządzenia. Jedno, z którego zostało wysłane zapytanie, oraz trzy znalezione za sprawą protokołu ARP i pełnego skanowania. Znamy ich adresy MAC oraz przypisane im adresy IP. Szukany transmiter sieciowy ma adres 192.168.1.11 i to ten adres trzeba było wpisać w przeglądarce, by dostać się do panelu administracyjnego w celu przeniesienia AP na inny kanał:

siec-wifi-skan-smartfon

Mikhail Morfikov avatar
Mikhail Morfikov
Po ponad 10 latach spędzonych z różnej maści linux'ami (Debian/Ubuntu, OpenWRT, Android) mogę śmiało powiedzieć, że nie ma rzeczy niemożliwych i problemów, których nie da się rozwiązać. Jedną umiejętność, którą ludzki umysł musi posiąść, by wybrnąć nawet z tej najbardziej nieprzyjemniej sytuacji, to zdolność logicznego rozumowania.