Jeżeli chciałbyś nauczyć się programować i poszukujesz do tego odpowiedniego języka to polecam newsletter dla początkujących programistów JAVA.
W przypadku gdy prowadzisz bloga lub stronę internetową i chcesz na tym zarobić polecam program partnerski od Silence on the Wire. Napisałem o tym artykuł dlatego kliknij tutaj i przeczytaj. Nie tracisz nic, prócz chwili czasu, a zyskać możesz naprawdę dużo!
Rozdział 5: Urządzenia w sieci
W jednym z poprzednich rozdziałów poznałeś podstawowe informacje o sieci oraz dowiedziałeś się czym dokładnie jest adres mac i do czego służy. W tym rozdziale nie będę się powtarzać, a materiał tu opisywany ma duży związek z tym co już powinieneś znać. Dlatego zanim zaczniesz czytać ten rozdział, a pominąłeś poprzednie polecam wrócić i zapoznać się z nimi.
5.1. Adres ip
Drugim istotnym elementem po adresie mac jest adres ip. Jak już wiesz adres mac jest adresem danego urządzenia, natomiast adres ip jest to numer nadawany urządzeniom przy pomocy którego komunikują się ze sobą. Dlatego adres mac służy do identyfikacji urządzeń w sieci, natomiast adres ip do komunikowania się między nimi. Jak wygląda nasz adres ip możemy dowiedzieć się przy pomocy wcześniej poznanego narzędzia ifconfig.
sudo ifconfig
eth0: flags=4163 mtu 1500
inet 10.0.2.15 netmask 255.255.255.0 broadcast 10.0.2.255
inet6 fe80::a00:27ff:fe0e:348d prefixlen 64 scopeid 0x20
ether 08:00:27:0e:34:8d txqueuelen 1000 (Ethernet)
RX packets 3 bytes 1240 (1.2 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 17 bytes 1774 (1.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Adres mac odnajdujemy pod nazwą ether natomiast ip pod nazwą inet. Zbiór liczb oddzielonych kropkami czyli 10.0.2.15 jest adresem który został nadany naszemu urządzeniu i pod tym numerem urządzenie jest rozpoznawane w sieci oraz komunikuje się z innymi. Tutaj muszę wspomnieć jeszcze, że powyższy adres reprezentuje nasze urządzenie jedynie w sieci prywatnej. Oznacza to, że w sieci globalnej jesteśmy identyfikowani pod innym numerem ip. Czyli jeżeli skorzystamy z przeglądarki internetowej i wejdziemy na stronę np. google.pl to google rozpoznaje nas pod innym adresem niż ten który wskazuje polecenie ifconfig. Jeżeli chcesz sprawdzić pod jakim adresem ip jesteś rozpoznawany w sieci globalnej możesz wejść na stronę https://moj-ip.pl/.
W tym miejscu można dostać delikatnego mętliku, dlatego pozwolę się chwilę zatrzymać przy temacie różnicy między adresem MAC, a IP.
Adres MAC reprezentuje urządzenie, ale tym urządzeniem niezupełnie jest cały nasz komputer, a jego karta sieciowa lub inne urządzenie dzięki któremu łączymy się z routerem. W związku z tym jeżeli wymienimy obecną kartę sieciową to numer ip możemy otrzymać ten sam (ale nie musimy), natomiast adres MAC karty na pewno będzie inny. Dlatego adres MAC jest unikatowy, natomiast adres ip nie.
Wiemy już, że możemy zmieniać adres MAC i wiemy jak to robić. W sieci mamy możliwość ustawienia dwóm urządzeniom tego samego adresu MAC, ale nie mogą wystąpić dwa takie same adresy ip. Jeżeli chodzi o to po co nam dwa takie same adresy MAC dowiesz się w późniejszym czasie.
5.2. Wypisanie urządzeń w naszej sieci przy pomocy netdiscover
Nasze urządzenie w sieci lokalnej jest rozpoznawane pod adresem 10.0.2.15. Dlatego sieć w której jesteśmy rozpoczyna się od adresu 10.0.2.0 a kończy 10.0.2.254. Posiadając już wiedze o początku i końcu naszej sieci skorzystajmy z oprogramowania netdiscover.
sudo netdiscover -r 10.0.2.1/24
Polecenie nie jest w jakiś sposób skomplikowane i jeżeli znamy podstawy korzystania z konsoli, które opisywałem w kursie o systemie Kali Linux to wystarczy, że skorzystamy z opcji --help. Dzięki temu poznamy wszystkie dostępne opcje wraz z ich opisem. My natomiast korzystamy tylko z jednej, a dokładnie z -r która pozwala określić zakres skanowania w sieci.
Każde urządzenie posiada przypisany adres ip jeżeli jest podłączone do sieci, ale to już wiesz. Początek sieci z której ja korzystam rozpoczyna się od numerów 10.0.2.1. U Ciebie może się to trochę różnić, ale postępuj zgodnie z logiką i na końcu po prostu daj 1. Natomiast /24 jest zakresem skanowania obejmującym całą sieć.
Nie jest to jedyny sposób, możemy również skorzystać z innych zakresów. Zwróćmy uwagę, że /24 skanuje od adresu 10.0.2.1 do 10.0.2.254 natomiast pozostałe robią to jak poniżej:
/16 – od 10.0.0.1 do 10.0.254.254
/8 – od 10.0.0.1 do 10.254.254.254
W większości wypadków wystarczy skanowanie o zakresie /24, chyba że sieć z której korzystamy jest złożona. Dlatego jeżeli nie wyświetla Ci wyników przy zastosowaniu /24 skorzystaj z innej dostępnej opcji.
Opis polecenia mamy za sobą przejdźmy teraz do wyników skanowania które otrzymaliśmy po jego wpisaniu
Currently scanning: Finished! | Screen View: Unique Hosts
5 Captured ARP Req/Rep packets, from 5 hosts. Total size: 300
_____________________________________________________________________________
IP At MAC Address Count Len MAC Vendor / Hostname
-----------------------------------------------------------------------------
10.0.2.1 52:54:00:12:35:00 1 60 Unknown vendor
10.0.2.2 52:54:00:12:35:00 1 60 Unknown vendor
10.0.2.3 08:00:27:13:35:a1 1 60 PCS Systemtechnik GmbH
10.0.2.4 08:00:27:e6:e5:59 1 60 PCS Systemtechnik GmbH
10.0.2.6 08:00:27:de:22:c8 1 60 PCS Systemtechnik GmbH
Spoglądając na wynik skanowania od lewej mamy adres ip oraz adres mac. Pozostałe dwie na tym etapie nie są tak istotne. W ostatniej rubryce netdiscover próbuje określić producenta sprzętu. Nie mylić z rodzajem systemu jaki jest zainstalowany na wykrytej maszynie.
Netdiscover jest prostym i szybkim narzędziem, ale wyświetla tylko podstawowe informacje. Bardziej zaawansowanym skanerem będzie nmap którym zajmę się w jednym z następnym rozdziałów.
5.3. Wypisanie urządzeń w sieci przy pomocy Nois Net Discover
Oprogramowanie zostało napisane przeze mnie w języku Python3 i wzoruje się na wcześniej prezentowanym netdiscover. Program napisałem z myślą o całkowitej prostocie używania, dlatego nie posiada tak rozbudowanych opcji jak wymieniony wcześniej nmap. Jedną z głównych różnic jest to, że w opcji zaawansowanych mamy możliwość wybrania by program spróbował wykryć system z jakiego korzysta dane urządzenie. Dlatego bez większych szczegółów przejdźmy do instalacji oprogramowania.
5.3.1. Instalacja Nois Net Discover
Oprogramowanie znajduje się na platformie github. Dokładny opis instalacji z tej platformy przeprowadziłem w rozdziale 3 dlatego tutaj posłużę się tylko i wyłącznie samymi poleceniami.
cd /opt
sudo git clone https://github.com/noishacking/nois-net-discover.git
cd nois-net-discover/
5.3.2. Pierwsze uruchomienie programu
Program uruchamiamy przy pomocy polecenia sudo python3 nois_net_discover.py. Oczywiście musimy być w katalogu w którym zainstalowaliśmy oprogramowanie lub skorzystać ze ścieżki bezwzględnej. Pamiętajmy również o tym, że program potrzebuje uprawnień administracyjnych dlatego musisz skorzystać dodatkowo z sudo.
Po uruchomieniu wyświetli się informacja:
Wybierz swój język / Choose your language:
1) Polski
2) English
e) exit
Wybieramy odpowiedni język i wciskamy enter.
Wybrałem język Polski dlatego wpisałem 1.
Wybierz w jaki sposób chcesz przeprowadzić skanowanie sieci:
1) Automatycznie przeskanuj całą sieć
2) Ustaw dostępne opcje przed rozpoczęciem skanowania
e) wyjdź
Po wybraniu pierwszej opcji wyświetli się lista z urządzeniami w naszej sieci tak jak poniżej:
----------------------------------------------------------------------
IP MAC
10.0.2.1 52:54:00:12:35:00
10.0.2.2 52:54:00:12:35:00
10.0.2.3 08:00:27:13:35:a1
10.0.2.4 08:00:27:e6:e5:59
10.0.2.6 08:00:27:de:22:c8
----------------------------------------------------------------------
Program wyświetlił adres ip oraz adres mac wszystkich urządzeń dostępnych w sieci.
Uruchom program ponownie i w oknie wcześniej prezentowanym wpisz 2. Zobaczysz informacje jak poniżej:
Wybierz zakres skanowania:
1) 24 (standard)
2) 16
3) 8
Zakres skanowania opisywałem wcześniej w tym rozdziale dlatego w razie wątpliwości przeczytaj ponownie i wróć do tego miejsca. Wybieram opcje 1 i wciskam klawisz enter.
Mod standardowy. Nie zmieniam nic.
Czy chcesz aby program spróbował rozpoznać system danego urządzenia ?
UWAGA! Może to zająć dłuższą chwilę!
1) tak
2) nie
Ze względu na wybranie opcji /24 pojawiła się informacja, że mod jest standardowy i program w tym zakresie nie dokonał żadnych zmian. Zakres /24 jest ustawiony automatycznie, a tutaj mieliśmy możliwość zmiany, ale zdecydowaliśmy się na wykorzystanie standardowego zakresu.
Program pyta czy chcemy aby spróbował rozpoznać system danego urządzenia. Wybierzmy opcję 1 czyli tak. Musimy wiedzieć, że wykrywanie systemu może programowi zająć dłuższa chwilę dlatego uzbrójmy się w cierpliwość i poczekajmy na wyniki. Po jakimś czasie powinniśmy zobaczyć zbliżony wynik do poniższego.
IP MAC SYSTEM
10.0.2.1 52:54:00:12:35:00 can't detect
10.0.2.2 52:54:00:12:35:00 can't detect
10.0.2.3 08:00:27:13:35:a1 can't detect
10.0.2.4 08:00:27:e6:e5:59 can't detect
10.0.2.6 08:00:27:de:22:c8 Linux 2.6.9 – 2.6.33
Mam uruchomione dwie maszyny wirtualne Windows 10 i Metasploitable. Z tego co widać Metaspliotable został wykryty jako system Lunux, niestety pozostałym urządzeniom nie udało się określić ich rodzajów.
Podsumowanie
Skanowaniem sieci zajmiemy się jeszcze w następnym rozdziale przy wykorzystaniu bardzo rozbudowanego narzędzia jakim jest nmap. Obecnie chciałem abyś poznał podstawy skanowania. Czasami podstawowe informacje wystarczą i nie ma konieczności korzystania z bardzo rozbudowanych narządzi. Dlatego warto wiedzieć w jaki sposób uzyskać szybki dostęp do takich informacji.
Jeżeli chciałbyś nauczyć się programować i poszukujesz do tego odpowiedniego języka to polecam newsletter dla początkujących programistów JAVA.
W przypadku gdy prowadzisz bloga lub stronę internetową i chcesz na tym zarobić polecam program partnerski od Silence on the Wire. Napisałem o tym artykuł dlatego kliknij tutaj i przeczytaj. Nie tracisz nic, prócz chwili czasu, a zyskać możesz naprawdę dużo!