meta: kali, linux, system, hacking, testy penetracyjne, mitm, man in the middle, arp, arpspoof, bettercap

Rozdział 14: Podstawy Bettercap

W poprzednim rozdziale poznaliśmy bardzo proste narzędzie jakim jest arpspoof. Wymieniony program wybrałem ze względu na jego prostotę jak i również ogólną dostępność na innych systemach operacyjnych.

W tym rozdziale poznamy bardziej rozbudowane narzędzie jakim jest Bettercap. Pozwala on na wykonanie poznanych czynności w o wiele łatwiejszy sposób jak i zawiera opcje które umożliwią analizę oraz modyfikację wszystkich otrzymanych danych.

W tej części pokażę wszystko to co poznaliśmy w rozdziale 13, ale tym razem z wykorzystaniem bettercapa, a w następnych jego bardziej rozbudowane możliwości.

14.1. Od czego zacząć?

Jak w każdym programie przed jego uruchomieniem warto zapoznać się z dostępnymi opcjami. Wszystkie tego typu informacje w tym i w innych programach linuksowych jesteśmy w stanie otrzymać przy pomocy parametru --help:

bettercap --help

Warto poświęcić chwilę, aby poznać dostępne funkcje programu ponieważ mogą pomóc przyspieszyć uruchomienie z już skonfigurowanymi opcjami do działania w sposób przez nas oczekiwany.

Jeżeli po wpisaniu polecenia jak powyżej otrzymałeś informacje:

Command 'bettercap' not found, but can be installed with: sudo apt install bettercap Do you want to install it? (N/y)

Oznacza to że twój system nie posiada zainstalowanego bettercapa. W Kali to oprogramowanie nie jest automatycznie zainstalowane dlatego przyciskamy y i czekamy na instalację, po czym ponawiamy polecenie z opcją help.

14.2. Pierwsze uruchomienie

Jeżeli choć trochę poświęciłeś czasu na poczytanie o dostępnych opcjach programu mogłeś zwrócić uwagę na jedną z nich, a mianowicie:

-iface string - Network interface to bind to, if empty the default interface will be auto selected.

Jeżeli znasz trochę angielski to wyczytasz, że opcja służy do określenia interfejsu sieciowego z którego ma korzystać. W ramach wyjaśnień my mamy wszystkie urządzenia zamontowane wirtualnie. Korzystają one z tej samej sieci NAT, a przypisanym interfejsem jest ten kablowy, występujący najczęściej pod nazwą eth0 w systemach uruchamianych wirtualnie.

Aby sprawdzić pod jaką nazwą występuje nasz interfejs sieciowy skorzystać możemy z wcześniej poznanego polecenia ifconfig. Wiem, że piszę o tym już któryś raz z kolei, ale sama nazwa niestety nie jest intuicyjna dlatego zamiast odsyłać Cię do materiału wolę o tym po prostu wspomnieć.

Jeżeli nie wybierzemy wyżej wymienionej opcji to interfejs zostanie automatycznie ustalony. W przypadku kiedy posiadamy tylko jeden nie ma to żadnego znaczenia, ale jeżeli jest ich kilka lub chociaż więcej niż jeden to może zostać wybrany ten niewłaściwy.

meta: kali, linux, system, hacking, testy penetracyjne, mitm, man in the middle, arp, arpspoof, bettercap

Dlaczego jest to tak ważne?

Przyczyną problemu z tym związanym jest to, że wcale nie musisz posiadać jednego interfejsu sieciowego. Możesz mieć dwie karty sieciowe, adapter bezprzewodowy co wiąże się z powiększeniem ich ilości. Dlatego czy na pewno zostanie wybrany ten właściwy?

I tak i nie…

Jeżeli nie korzystasz z żadnego adaptera bezprzewodowego i posiadasz tylko jeden interfejs to możesz pominąć tę opcję. W praktyce, co zostało zaprezentowane we wcześniejszych rozdziałach, najczęściej w obecnych czasach jeżeli ktoś chce się włamać to korzysta z adaptera bezprzewodowego dlatego interfejs sieciowy jaki powinieneś w tym przypadku wybrać najczęściej nosi nazwę wlan0.

W przypadku jeżeli masz połączenie kablowe oraz skorzystałeś z interfejsu bezprzewodowego łącząc się z siecią to które z nich myślisz, że bettercap wybierze?

I tu tkwi główny problem.

Jeżeli masz adapter bezprzewodowy to warto poświęcić chwilę na tak zwaną zabawę i sprawdzić jak zachowa się bettercap w przypadku kilku interfejsów sieciowych.

Ze swojej strony dopowiem, że zawsze określam interfejs z którego chcę skorzystać dla własnego bezpieczeństwa. Wiem wtedy na pewno, że to co chcę przetestować robię na sieci do której otrzymałem takie prawo. Natomiast w przypadku losowości, jak w życiu, można się niemile zaskoczyć.

Dlatego moim zdaniem powinniśmy uruchamiać bettercapa w następujący sposób

sudo bettercap -iface eth0

Otrzymamy podobny wynik jak ten prezentowany poniżej:

sudo bettercap -iface eth0 [sudo] password for kali: bettercap v2.32.0 (built for linux amd64 with go1.15.15) [type 'help' for a list of commands] 10.0.2.0/24 > 10.0.2.15 » [15:37:25] [sys.log] [inf] gateway monitor started ... 10.0.2.0/24 > 10.0.2.15 »

W ten oto sposób pierwszy raz uruchomiliśmy bettercapa.

meta: kali, linux, system, hacking, testy penetracyjne, mitm, man in the middle, arp, arpspoof, bettercap

14.3. Konfiguracja bettercapa

Jeżeli wczytałeś się w to co zostało wyświetlone w poprzednim przykładzie na pewno zauważyłeś informację, że po wpisaniu słowa „help” otrzymasz listę poleceń. Dlatego bez żadnej zwłoki zróbmy to co podpowiada instrukcja:

help MODULE : List available commands or show module specific help if no module name is provided. active : Show information about active modules. quit : Close the session and exit. sleep SECONDS : Sleep for the given amount of seconds. get NAME : Get the value of variable NAME, use * alone for all, or NAME* as a wildcard. set NAME VALUE : Set the VALUE of variable NAME. read VARIABLE PROMPT : Show a PROMPT to ask the user for input that will be saved inside VARIABLE. clear : Clear the screen. include CAPLET : Load and run this caplet in the current session. ! COMMAND : Execute a shell command and print its output. alias MAC NAME : Assign an alias to a given endpoint given its MAC address. Modules any.proxy > not running api.rest > not running arp.spoof > not running ble.recon > not running c2 > not running caplets > not running dhcp6.spoof > not running dns.spoof > not running events.stream > running gps > not running hid > not running http.proxy > not running http.server > not running https.proxy > not running https.server > not running mac.changer > not running mdns.server > not running mysql.server > not running ndp.spoof > not running net.probe > not running net.recon > not running net.sniff > not running packet.proxy > not running syn.scan > not running tcp.proxy > not running ticker > not running ui > not running update > not running wifi > not running wol > not running

Większość z oprogramowania służącemu ogólnie nazywanemu hakingowi posiada szereg możliwości konfiguracyjnych. Jak widać bettercap nie odbiega w żaden sposób od tego schematu. Prezentowana lista konfiguracyjna podzielona jest na dwa elementy, polecenia oraz moduły. W przypadku tego materiału poznamy tylko te dzięki którym wykonany wszystko to co poznaliśmy w kilku wcześniejszych rozdziałach.

meta: kali, linux, system, hacking, testy penetracyjne, mitm, man in the middle, arp, arpspoof, bettercap

14.4. Ważne opcje bettercapa

Możesz się teraz zastanawiać po co robić to samo skoro już poznaliśmy do tego działające bardzo dobrze narzędzie. Otóż arpspoof jest jak najbardziej bardzo pożytecznym i funkcjonalnym oprogramowaniem szczególnie, że posiada wersję na wiele platform. Natomiast sposób w jaki musimy z niego korzystać jest dość niewygodny jak i również funkcjonalność ogranicza się głównie do dwóch czynności. Natomiast bettercap posiada szereg modułów które służą do przeróżnych celów w związku z tym mamy jedno narzędzie służące do prawie wszystkiego, niż kilka oddzielnych.

Wstęp mamy już za sobą teraz z bardziej istotnych poleceń na pierwszy rzut idzie polecenie help MODULE. Dzięki niemu po wpisaniu nazwy modułu poznamy szczegółowe informacje do czego służy. Przykładowo wpiszmy:

help net.probe

Nie wklejam całej zawartości ze względu na to, że masz ją przed oczami, a nie chcę robić sztucznej ilości tekstu tylko po to by pochwalić się jego obszernością.

Z tego co czytamy moduł służy do wypisania wszystkich dostępnych nowo podłączonych urządzeń w danej sieci. Wykorzystuje do tego protokół UDP.

Myślę, że brzmi znajomo?

Zajmowaliśmy się tym w rozdziale 5 i wykorzystywaliśmy do tego celu program netdiscover. Jako pojedyncze narzędzie do szybkiego uzyskania mapy sieci jest wystarczające, natomiast jeżeli chcemy sprawnie i szybko pozyskać dane z urządzenia naszego celu opcja uruchamiania kilku programów może okazać się problematyczna.

Do innych ważnych poleceń należy zaliczyć exit którego nie muszę chyba opisywać, a ostatnim clear które czyści konsolę.

Nadeszła pora zapoznać się z modułami.

meta: kali, linux, system, hacking, testy penetracyjne, mitm, man in the middle, arp, arpspoof, bettercap

14.5. Moduły bettercapa

Modułów jest bardzo wiele. W tym rozdziale zajmiemy się tymi które dają te same możliwości co poznane w kursie dotychczas. Oczywiście nie piszę tutaj o oprogramowaniu do łamania haseł jakim jest poznany hashcat tylko poznamy potrzebne moduły do przeprowadzenia ataku Man in the Middle.

14.5.1. Urządzenia w sieci

We wcześniejszym paragrafie poznałeś moduł net.probe. Jeżeli powrócisz do listy modułów zauważysz, że nie jest on automatycznie uruchamiany. Do czego służy poznałeś poprzednio dlatego teraz nauczmy się włączać moduły:

net.probe on

W taki sposób uruchomimy każdy. Jak sam widzisz nie jest to nic skomplikowanego. Po prawidłowym włączeniu powinna zostać wyświetlona lista zalogowanych urządzeń w sieci.

10.0.2.0/24 > 10.0.2.15 » net.probe on [14:31:59] [sys.log] [inf] net.probe starting net.recon as a requirement for net.probe 10.0.2.0/24 > 10.0.2.15 » [14:31:59] [sys.log] [inf] net.probe probing 256 addresses on 10.0.2.0/24 10.0.2.0/24 > 10.0.2.15 » [14:31:59] [endpoint.new] endpoint 10.0.2.1 detected as 52:54:00:12:35:00 (Realtek (UpTech? also reported)). 10.0.2.0/24 > 10.0.2.15 » [14:31:59] [endpoint.new] endpoint 10.0.2.3 detected as 08:00:27:7a:9a:b0 (PCS Computer Systems GmbH). 10.0.2.0/24 > 10.0.2.15 » [14:32:00] [endpoint.new] endpoint 10.0.2.4 detected as 08:00:27:e6:e5:59 (PCS Computer Systems GmbH).

Jak można wywnioskować z powyższego przykładu została wyświetlona zbliżona lista jak w przypadku netdiscover. Działa na podobnej zasadzie czyli jak zaloguje się nowe urządzenie zostanie automatycznie dodane do listy i wyświetlone. Jedną z różnic jest to, że my nadal mamy możliwość włączania kolejnych modułów.

W przypadku net.probe automatycznie zostanie uruchomiony moduł net.recon. Dzięki niemu uaktualniana jest lista urządzeń w sieci. Jeżeli skorzystasz ponownie z polecenia help zauważysz, że przy nazwie tego modułu znajduje się wyraz „running” czyli uruchomiony / działający.

Lista jest uaktualniania oraz nowe urządzenie pojawią się na ekranie po podłączeniu, ale w większości wypadków wygodniej jest wyświetlić całą listę zamiast szukać informacji przy pomocy suwaka.

Aby wyświetlić kompletną listę urządzeń podłączonych do danej sieci musimy skorzystać z polecenia:

net.show

Wyświetlona zostanie kompletna lista z dostępnymi urządzeniami, a nawet z informacją z jakiego systemu korzysta o ile jest to możliwe.

14.5.2. Man in The Middle

Wspominałem kilkukrotnie o tym, że narzędzie arpspoof może się okazać trochę niewygodne, szczególnie, że musimy uruchomić dwa polecenia w oddzielnych konsolach. W bettercapie moduł odpowiedzialny za MiTM nosi nazwę arp.spoof. Nim go włączymy spójrzmy do pomocy czyli wpiszmy:

help arp.spoof

Myślę że pamiętasz o tym jak ustawialiśmy arpspoofa dlatego jeżeli choć trochę wczytasz się w informacje z pomocy zauważysz, że tutaj też takie funkcje są również dostępne i należy je ustawić, aby wszystko działało tak jak powinno.

Pierwszym elementem na jaki należy zwrócić uwagę jest arp.spoof.fullduplex. Zgodnie z opisem jeżeli opcja ta będzie ustawiona na true to działa tak samo jak arpspoof dlatego uruchamiamy ją przy pomocy polecenia:

set arp.spoof.fullduplex true

Jeżeli wszystko poszło pomyśle nie zostanie wyświetlona żadna informacja zwrotna tylko od razu będziemy mogli skorzystać z kolejnego polecenia.

Czyli mamy ustawione, że będziemy przechwytywali ruch sieciowy w obie strony. Następnym punktem jest określenie adresu ip celu. Za to odpowiada opcja arp.spoof.targets. Przy jej pomocy jesteśmy w stanie poddać atakowi nie jedno, a nawet kilka urządzeń.

Mam obecnie uruchomiony Kali Linux który wykorzystuję do bettercapa, jak i również system Windows 10 będący naszym celem. System Windows znajduje się pod adresem ip 10.0.2.4 i chcę przeprowadzić atak tylko i wyłącznie na tym urządzeniu dlatego wpisuję polecenie w następujący sposób:

meta: kali, linux, system, hacking, testy penetracyjne, mitm, man in the middle, arp, arpspoof, bettercap

set arp.spoof.targets 10.0.2.4

W taki oto sposób wykonaliśmy wszystkie podstawowe ustawienia. Teraz należy uruchomić moduł. Robimy to w taki sam sposób jak każdy inny czyli:

arp.spoof on

Aby sprawdzić czy wszystko działa właściwie wystarczy przejść do systemu Windows, wpisać w linii poleceń arp -a gdzie adres mac naszego systemu Kali Linux i routera powinien być taki sam. Oznacza to, że atak powiódł się i teraz istotne jest, że bettercap automatycznie udostępnia połączenie z internetem. Nie musimy do tego korzystać z żadnego dodatkowego polecenia.

Śmiało można powiedzieć, że wszystko to co robi netdiscover, oraz arpspoof czyli pięć poleceń wykonaliśmy przy pomocy jednego programu.

Czy tak nie jest lepiej?

14.6. Problemy z jakimi możemy się spotkać.

Czy przy programowaniu czy też przy testach penetracyjnych zawsze napotkamy na jakieś problemy które musimy rozwiązać. Na tym polega urok tych dwóch czynności.

14.6.1. Could not find mac for 10.0.2.1

Błąd często pojawia się w przypadku kiedy uruchomimy bettercapa, a żaden inny system oprócz naszego nie jest obecnie w sieci. W przypadku pojawiania się innego urządzenia po jakimś czasie niestety większość modułów nie działa. W celu rozwiązania problemu należy uruchomić ponownie bettercapa, aż wymieniony błąd nie pojawi się ponownie.

Niestety na obecną chwilę nie udało mi się odnaleźć lepszego rozwiązania bądź powodu wystąpienia tego problemu. W przypadku gdy sieć nie jest pusta, posiada przynajmniej jedno zalogowane urządzenie, wszystko działa bez zarzutu.

14.6.2. „full duplex spoofing enabled, if the router has ARP spoofing mechanisms, the attack will fail”.

Jeżeli router ma skonfigurowaną blokadę dwustronnego spoofingu to prezentowany atak się nie powiedzie. Należy wtedy opcji arp.spoof.fullduplex nie włączać i ustawić jedynie cel ataku.

Podsumowanie

Jak zauważyliście dzięki bettercapowi jesteśmy w stanie osiągnąć to samo w szybszy sposób. W następnym rozdziale zajmiemy się pozyskiwaniem danych takimi jak hasła oraz jeszcze bardziej zautomatyzujemy wykonywanie poznanych czynności. Da nam to naprawdę ogromne możliwości dlatego bez dalszego rozpisywania się zapraszam do dalszej części.

meta: kali, linux, system, hacking, testy penetracyjne, mitm, man in the middle, arp, arpspoof, bettercap