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

Rozdział 13: Man In The Middle

We wcześniejszych materiałach zapoznaliśmy się z kilkoma sposobami uzyskania dostępu do sieci. Nie omówiłem wszystkiego jak na przykład tworzenia fałszywego punktu dostępu czy też tak zwanego sposobu na bliźniaczą sieć. Tym zajmiemy się w końcowych rozdziałach lub oddzielnej kategorii.

Jesteśmy już w sieci i chcemy uzyskać dane o tym co użytkownik przegląda, jakich haseł w przeglądanych stronach używa, czyli chcemy wiedzieć wszystko czego nie powinniśmy wiedzieć. Dzięki poznanemu poniżej sposobowi jesteśmy w stanie uzyskać dostęp do wymienionych poufnych danych. Nim przejdziemy do konkretów poznajmy w jaki sposób to funkcjonuje i dlaczego tak jest.

Aby wszystko było testowane w sposób bezpieczny wykorzystamy do tego wirtualne maszyny. W rozdziale 4 tego kursu pokazałem w jaki sposób możemy zainstalować Windowsa 10 oraz Metasploitable. Natomiast w rozdziale 4 kursu Kali Linux pokazałem w jaki sposób skonfigurować Virtualboxa aby każda z maszyn była w tej samej sieci. Jeżeli nie zapoznałeś się z wymienionymi materiałami, nadeszła właściwa pora by to zrobić. Testy przeprowadzać będziemy początkowo na systemie Windowsie 10, natomiast w dalszych rozdziałach zajmiemy się również Metasplitable.

13.1. Czym jest MITM attack

Man in the middle jest to atak polegający na przechwyceniu komunikacji pomiędzy dwoma urządzeniami. Komunikacja taka następuje kiedy nasze urządzenie wysyła zapytanie do routera tak, aby na przykład przejrzeć jakąś stronę. Standardowo komunikacja wygląda ja na schemacie poniżej:

O tym wszystkim pisałem już w rozdziale 1 dlatego proponuję zapoznać się z jego treścią przed czytaniem dalej.

Jak już wiesz z wyżej wymienionego rozdziału urządzenia te komunikują się w taki sposób, że komputer przesyła request czyli zapytanie, natomiast router przesyła response czyli odpowiedź. Można to porównać do normalnej rozmowy międzyludzkiej gdzie ktoś przekazuje jakąś treść, drugi słucha i następnie odpowiada. W naszym wypadku urządzenia rozmawiają z routerem, a router im odpowiada.

Teraz naszym zadaniem jest przechwycenie tego co mówi do nas komputer ze schematu, analiza, modyfikacja tego co powiedział i przesłanie tych danych dalej. Następnie przechwycenie odpowiedzi od routera ich modyfikacja lub analiza i przesłanie danych najczęściej w zmienionej formie. Czyli tak jak na poniższym schemacie:

Haker czyli osoba stosująca atak znajduje się na samym środku przesyłu danych w związku z czym jest w stanie zrobić z nimi wszystko co tylko zechce. Jak sam widzisz jest to bardzo poważny atak dzięki któremu można zrobić wiele. Teraz zagłębimy się bardziej jak to funkcjonuje.

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

13.2. Protokół ARP

Jest to bardzo prosty protokół posiadający jedynie dwie możliwości poznane już wcześniej, zapytania i odpowiedzi czyli request i response. Pozwala wysyłać zapytanie do urządzeń w danej sieci typu kto posiada taki adres ip. Odpowiada tylko urządzenie które ma przypisany adres ip taki sam jak zapytaniu, ale w swojej odpowiedzi przesyła również adres mac. Jak już najprawdopodobniej wiesz w sieci urządzenia komunikują się przy pomocy adresu mac oraz co teraz się dowiadujesz protokołu ARP. W związku z tym, że ARP jest powszechnie używany do komunikacji jest też bardzo rzadko blokowany przez oprogramowanie zabezpieczające.

Wpiszmy poniższe polecenie w systemie Linux:

arp -a

Otrzymać powinniśmy odpowiedź:

? (10.0.2.1) at 52:54:00:12:35:00 [ether] on eth0

Dzięki temu poleceniu otrzymaliśmy adres ip routera oraz jego adres mac. Posiadając taki zasób informacji musimy nabrać router, że jesteśmy ofiarą natomiast ofiarę, że jesteśmy routerem. Dlatego podajemy, ofierze, że to my jesteśmy routerem, czyli adres mac routera protokół ARP aktualizuje jako nasz adres mac, natomiast routerowi wysyłamy informacje, że jesteśmy ofiarą. W ten sposób wszystkie dane jakie wysyła ofiara przechodzą przez nas i to my je przekazujemy dalej lub wstrzymujemy.

Taka sytuacja występuje ze względu na to, że pakiety ARP nie są w żaden sposób zabezpieczone, są akceptowane bez jakiejkolwiek weryfikacji. Dlatego zmodyfikowane są akceptowane zarówno przez routery jak i również karty sieciowe, czy też wszelkiego rodzaju adaptery.

13.3. Atak ARP

Zapoznaliśmy się już z tym czym jest ARP jak i również co będziemy musieli zrobić by stać się man in the middle. Nadszedł czas na bardziej praktyczne zastosowanie nabytej wiedzy. Do wykonania tych czynności służy bardzo wiele narzędzi. Niektóre z nich poznamy w dalszych rozdziałach. Natomiast w tym miejscu chciałbym pokazać najprostsze:

sudo arpspoof -i eth0 -t 10.0.2.4 10.0.2.1

Jak się domyślasz korzystać będziemy z oprogramowania noszącego nazwę arpspoof. Wybrałem ten program ze względu na jego dostępność. Otóż możemy z niego korzystać zarówno na systemach Linux, IOS czy też Android. Dlatego uważam, że warto zapoznać się z jego podstawową obsługą.

Nim przejdziemy do konkretnego opisu polecenia w rozdziale 4 pokazałem w jaki sposób można uruchomić jako wirtualną maszynę system Windows 10 całkowicie legalnie. Jeżeli nie wiesz jak to zrobić proszę zajrzyj tam i wykonaj prezentowane czynności krok po kroku.

Niezależnie od tego czy dopiero teraz skonfigurowałeś swojego Windowsa w Virtualbox czy też zrobiłeś to wcześniej niezwłocznie uruchom go pamiętając o tym aby system Kali Linux i Windows był w tej samej sieci NAT. Jak to zrobić pisałem w rozdziale 4 kursu Kali Linux dlatego zajrzyj tam jeżeli masz jakiś problem.

Przejdźmy teraz do opisu samego polecenia.

Dlaczego wybrałem akurat ten program już wiesz teraz po opcji -i musimy podać nazwę interfejsu sieciowego z jakiego korzystamy.

Tutaj chciałbym zauważyć, że większość oprogramowania pod tą literą zapisuje opcję interfejsu sieciowego. Spotkaliśmy się już z tym wcześniej.

W ramach przypomnienia, aby poznać nazwę interfejsu sieciowego z jakiego korzystamy należy wpisać polecenie:

ifconfig

Tym sposobem zajmowaliśmy się w rozdziale 2 dlatego w razie problemów proszę zajrzyj tam.

Kolejnym punktem polecenia jest opcja -t. Tutaj jako pierwsze wpisujemy adres ip naszego celu.

Natomiast w tym momencie najłatwiej jest wejść w linie poleceń systemu Windows czyli cmd. Jak wejść do niej, opisywałem przy okazji korzystania z Hashcata pod systemem Windows w rozdziale 12. W wierszu poleceń systemu Windows wpisujemy:

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

arp -a

Powinniśmy otrzymać na samej górze zbliżoną informację jak poniżej:

Interface: 10.0.2.4 --- 0x5

Oczywiście Ty najprawdopodobniej widzisz inny adres ip pod jakim występuje wirtualna maszyna Windowsa 10. Niezależnie od tego ten adres należy umieścić w pierwszej kolejności po opcji -t.

Jako drugi należy wpisać adres ip routera. Jak go zdobyć pokazałem wyżej w tym rozdziale. W większości sieci występuje on pod pozycją pierwszą, czyli kończy się numerem 1. Tak jak w naszym wypadku.

Dzięki temu poleceniu oszukujemy nasz cel, że jesteśmy routerem. Część wcześniejszych wyjaśnień mamy spełnione. Jeżeli dokładnie wczytałeś się w to co zamierzam tutaj zrobić to zauważyłeś, że brakuje tej części w której nabieramy router, że jesteśmy celem naszego ataku. Aby tego dokonać należy podzielić terminatora na dwie części. W tej drugiej uruchamiamy polecenie gdzie zamieniamy adresy ip jak poniżej:

sudo arpspoof -i eth0 -t 10.0.2.1 10.0.2.4

Czyli w tym wypadku oszukujemy router, że jesteśmy urządzeniem reprezentowanym przez ip 10.0.2.4.

W ten sposób stajemy się man in te middle. Aby udowodnić, że tak się stało w linii poleceń systemu Windows wystarczy, że wpiszemy arp -a i spojrzymy na adres mac routera. Będzie on taki sam jak naszego Kali Linux.

Przechwytujemy cały przepływ danych co jest czymś niesamowitym, a zarazem przerażającym bo w bardzo łatwy sposób tego dokonaliśmy. Jest jednak jeszcze jedno. Jeżeli ktoś spróbuje w systemie w którym kontrolujesz przepływ danych skorzystać z internetu otrzyma informacje o braku połączenia.

Przyczyną tego jest to, że nasz cel ma zablokowany przesył danych do routera i w związku z tym router nie udostępnia mu możliwości dostępu do internetu. Aby odblokować ten dostęp należy skorzystać z polecenia dzieląc terminatora na trzy części:

sudo echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward

W ten sposób odblokowujemy dostęp do internetu który my kontrolujemy. Oznacza to, że jesteśmy w stanie zdobyć loginy, hasła i inne bardzo cenne jak i wrażliwe informacje ponieważ śledzimy każdy ruch jaki w internecie wykona nasz cel.

Podsumowanie

Doszliśmy do bardzo istotnego punktu, jeżeli chodzi o haking sieciowy. Wiesz już w jaki sposób kontrolować cały ruch sieciowy. Wszystkie dane przechodzą przez twój system. Ale na pewno zastanawiasz się co z tym dalej zrobić. Tym jak i innymi sposobami stania się Man In The Middle zajmiemy się w dalszej części kursu dlatego zapraszam do dalszego czytania.

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