Útok typu man-in-the-middle je obecný název pro různé techniky zaměřené na získání přístupu k provozu jako prostředníka. Vzhledem k široké škále těchto technik je problematické implementovat jediný nástroj pro detekci těchto útoků, který by fungoval pro všechny možné situace. Například při útoku typu man-in-the-middle na lokální síť se obvykle používá ARP spoofing (otrava). A mnoho nástrojů pro detekci útoků typu man-in-the-middle monitoruje změny v párech ethernetových adres/nebo hlásí podezřelou aktivitu ARP pasivním sledováním požadavků/odpovědí ARP. Ale pokud je tento útok použit na zlomyslně nakonfigurovaný proxy server, VPN nebo jiné možnosti, které nepoužívají otravu ARP, pak jsou takové nástroje bezmocné.

Účelem této části je přezkoumat některé techniky pro detekci útoků typu man-in-the-middle a také některé nástroje určené k určení, zda jste cílem útoku MitM. Vzhledem k rozmanitosti metodologií a implementačních scénářů nelze zaručit 100% detekci.

1. Detekce změny provozu

Jak již bylo zmíněno, útoky typu man-in-the-middle ne vždy používají spoofing ARP. Takže zatímco detekce aktivity na vrstvě ARP je nejoblíbenější metodou detekce, obecnější metodou je detekce změn provozu. S tím nám může pomoci program mitmcanary.

Princip fungování programu spočívá v tom, že vytváří „kontrolní“ požadavky a ukládá přijaté odpovědi. Poté opakuje stejné požadavky v určitých intervalech a porovnává odpovědi, které obdrží. Program je poměrně inteligentní a aby se vyhnul falešným poplachům, identifikuje dynamické prvky v odpovědích a správně je zpracovává. Jakmile program zaznamená stopy aktivity nástrojů pro útoky MitM, oznámí to.

Příklady toho, jak mohou některé nástroje „zdědit“:

  • MITMf ve výchozím nastavení změní všechny adresy URL HTTPS v kódu HTML na HTTP. Zjištěno porovnáním obsahu HTTP.
  • Zarp + MITMProxy, MITMProxy má funkcionalitu, která umožňuje vymazat kompresi HTTP, používá se pro transparentnost přenášeného provozu, tato kombinace je detekována vymizením dříve přítomné komprese
  • Responder, identifikovaný náhlými změnami v transformaci odpovědí mDNS: neočekávaná odpověď; odpověď je vnitřní, ale očekává se vnější; odezva se liší od očekávané IP
  • MITMCanary vs MITMf:

  • MITMCanary vs Responder:

  • MITMCanary vs Zarp + MITMProxy:

Instalace sudo pip Cython sudo apt-get install python-kivy python-dbus sudo pip install plyer uuid požadavek na analýzu urlopen simplejson datetime git clone https://github.com/CylanceSPEAR/mitmcanary.git cd mitmcanary/

Jak již bylo zmíněno, mitmcanary potřebuje začít pracovat s kontrolními dotazy. Chcete-li to provést, přejděte do adresáře

CD servis/

A spusťte soubor setup_test_persistence.py:

Python2 setup_test_persistence.py

Bude to chvíli trvat - počkejte, až to skončí. Neměly by se objevit žádné chybové zprávy (pokud ano, pak vám chybí některé závislosti).

Výstup bude něco takového:

Mial@HackWare:~/bin/mitmcanary/service$ python2 setup_test_persistence.py Zjištěna starší verze konfigurace (0 místo 14) Probíhá aktualizace konfigurace. Spuštěn záznam o čištění. Analýza... Čištění dokončeno! Záznam přihlášení /home/mial/.kivy/logs/kivy_16-11-01_0.txt v1.9.1 v2.7.12+ (výchozí, 1. září 2016, 20:27:38)

Po dokončení tohoto procesu ve stejném adresáři spusťte (tím se spustí proces na pozadí):

Python2 main.py

Poté otevřete nové okno terminálu a přejděte do koncového adresáře s mitmcanary. Můj adresář je bin/mitmcanary/, takže zadám

Cd bin/mitmcanary/

a udělej tam:

Python2 main.py

První okno zobrazuje něco jako:

Mial@HackWare:~/bin/mitmcanary/service$ python2 main.py Přihlášení k záznamu /home/mial/.kivy/logs/kivy_16-11-01_1.txt v1.9.1 v2.7.12+ (výchozí, 1. září 2016, 20:27:38) pomocí pro poslech ze zásuvky pro Tuio na 127.0.0.1:3000 Spánek 60 sekund Spánek 60 sekund Spánek 60 sekund Spánek 60 sekund Spánek 60 sekund Spánek 60 sekund

Tito. Program provádí kontrolní požadavky jednou za minutu a hledá známky útoku typu man-in-the-middle.

Druhé okno obsahuje také výstup + otevře se tmavé okno, autoři programu toto okno nazývají „grafické rozhraní“:

Můžete chvíli počkat a surfovat po internetu, abyste se ujistili, že program nevydává žádná falešná varování.

Vyzkoušíme klasický program Ettercap.

Spouštím běžný útok MitM s ARP spoofingem. mitmcanary nereaguje na samotné leptání. Nástroj mitmcanary generuje provoz sám, to znamená, že není vyžadována žádná akce uživatele. Po nějaké době se objeví jediné varování, které se při následných kontrolách nepotvrdí. Ale podobné varování se objeví po několika minutách. Bez dalšího rozboru je pro mě těžké říci, zda se jedná o příklad falešně pozitivního výsledku – hodně se tomu podobá. Je docela možné, že toto varování je způsobeno výpadkem komunikace kvůli nutnosti projíždění dalších tras nebo kvůli zvláštnostem mého nekvalitního internetového připojení.

Protože výsledek není zřejmý (spíše „ne“ než „ano“), zkusme program Bettercap, který má různé moduly. Nepochybuji o tom, že při použití různých Ettercap a/nebo pluginů doplňkové programy pro rozšíření funkčnosti bychom si "posvítili" i na mitmcanary.

Pro čistotu experimentu restartuji zařízení, spustím mitmcanary na napadeném stroji a Bettercap na útočícím. Zároveň není nutné na napadeném stroji znovu zadávat kontrolní požadavky - jsou uloženy v souboru uvnitř adresáře s programem. Tito. Stačí spustit službu a grafické rozhraní.

A v útočícím stroji spustíme Bettercap s povolenými analyzátory:

Sudo bettercap -X

Objevují se jednotlivá varování, která také vypadají spíše jako falešně pozitivní.

Ale spuštění tohoto příkazu:

Sudo bettercap -X --proxy

Na napadeném počítači se generuje velké množství varování o možném útoku typu man-in-the-middle:

No a co funkčnější nástroj u útoku typu man-in-the-middle platí, že čím více stop zanechá v provozu. Pro praktické použití mitmcanary musí být splněny následující podmínky:

  • provádět počáteční požadavky v důvěryhodné síti, když jste si jisti, že při přenosu provozu není žádný prostředník;
  • upravovat zdroje, na které jsou zadávány požadavky na ověření, protože profesionální útočník může k výjimkám přidat výchozí zdroje, díky nimž bude pro tento nástroj neviditelný.

2. Detekce ARP spoofingu (ARP cache poisoning)

Útok typu man-in-the-middle na místní síť velmi často začíná otravou ARP. Proto je mnoho nástrojů určených k detekci útoků MitM založeno na mechanismu sledování změn v ARP cache, který přiřazuje korespondenci mezi Ethernet (MAC adresami) a IP adresami.

Jako příklad takových programů můžeme připomenout arpwatch, arpalert a velké množství nových programů. Program ArpON změny v ARP cache nejen sleduje, ale také ji před nimi chrání.

Jako příklad spusťte arpwatch v režimu ladění, bez vytváření fork na pozadí a odesílání zpráv poštou. Místo toho jsou zprávy odesílány na stderr (standardní chybový výstup).

Sudo /usr/sbin/arpwatch -d

Spustíme Ettercap na útočící stroj a spustíme ARP spoofing. Na napadeném stroji pozorujeme:

Program arpwatch vám pomůže rychle zjistit nová zařízení připojená k vašemu lokální síť a také změny mezipaměti ARP.

Dalším nástrojem pro detekci ARP spoofingu v reálném čase je plugin Ettercap nazvaný arp_cop. Na napadeném stroji spusťte Ettercap následovně:

Sudo ettercap -TQP arp_cop ///

A na útočníkovi spustíme otravu ARP. Na napadeném stroji se okamžitě začnou objevovat varování:

3. Detekce DNS spoofingu

DNS spoofing znamená, že mezi vámi a vaším cílem existuje prostředník, který může upravit váš provoz. Jak můžete zjistit, že záznamy DNS byly podvrženy? Nejjednodušší způsob, jak to udělat, je porovnat s odpověďmi z jmenného serveru, kterému důvěřujete. Ale položky v odpovědi zaslané na vaši žádost lze také nahradit...

Tito. musíte zkontrolovat buď přes šifrovaný kanál (například přes Tor), nebo použít nestandardní nastavení (jiný port, TCP místo UDP). Zhruba na to je určen sans program od XiaoxiaoPu (alespoň jak já to chápu). Pomocí tohoto programu jsem byl schopen přesměrovat DNS požadavky přes Tor a přes nestandardní nastavení na můj DNS server. Ale nemohl jsem ji přimět, aby mi zobrazovala zprávy o falšování odpovědi DNS. Bez toho se smysl programu ztrácí.

Nenašel jsem žádné hodnotnější alternativy.

V zásadě, vzhledem k tomu, že DNS spoofers obvykle monitoruje pouze port 53 a pouze protokol UDP, stačí i ručně jednoduše zkontrolovat skutečnost DNS spoofingu, ačkoli to vyžaduje vlastní DNS server s nestandardní konfigurací. Například na útočícím stroji jsem vytvořil soubor dns.conf s následujícím obsahem:

Místní mi-al.ru

Tito. při požadavku na DNS záznam pro web mi-al.ru bude místo skutečné IP odeslána IP útočníkova počítače.

Běžím na útočícím stroji:

Sudo bettercap --dns dns.conf

A na napadeném dělám dvě kontroly:

Dig mi-al.ru # a dig mi-al.ru -p 4560 @185.117.153.79

Výsledek:

Mial@HackWare:~$ dig mi-al.ru ;<<>> DiG 9.10.3-P4-Debian<<>> mi-al.ru ;; globální možnosti: +cmd ;; Dostal odpověď: ;; ->>HLAVIČKA<<- opcode: QUERY, status: NOERROR, id: 51993 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;mi-al.ru. IN A ;; ANSWER SECTION: mi-al.ru. 86400 IN A 192.168.1.48 ;; Query time: 2 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Wed Nov 02 09:25:20 MSK 2016 ;; MSG SIZE rcvd: 42 mial@HackWare:~$ dig mi-al.ru -p 4560 @185.117.153.79 ; <<>> DiG 9.10.3-P4-Debian<<>> mi-al.ru -p 4560 @185.117.153.79;; globální možnosti: +cmd ;; Dostal odpověď: ;; ->>HLAVIČKA<<- opcode: QUERY, status: NOERROR, id: 401 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;mi-al.ru. IN A ;; ANSWER SECTION: mi-al.ru. 3799 IN A 185.26.122.50 ;; Query time: 304 msec ;; SERVER: 185.117.153.79#4560(185.117.153.79) ;; WHEN: Wed Nov 02 09:25:27 MSK 2016 ;; MSG SIZE rcvd: 53

Je vidět, že pro „běžný“ DNS požadavek byla odeslána lokální IP 192.168.1.48 a při požadavku DNS na atypickém portu byla odeslána správná IP serveru.

Pokud byl server nakonfigurován pro použití TCP (spíše než UDP), příkaz by vypadal takto:

Dig mi-al.ru -p 4560 + tcp @ 185.117.153.79

Zjevně chybí nástroj, který by sám sledoval odpovědi DNS v provozu, dvakrát je porovnal s alternativním zdrojem a spustil poplach v případě falšování.

Abyste se vyhnuli nastavování vlastního vzdáleného DNS, můžete dotazy na jmenný server provádět přes Tor. Vzhledem k tomu, že veškerý provoz Tor je šifrovaný, odpovědi DNS získané tímto způsobem jsou mimo možnosti zprostředkovatele. Pokud Tor ještě není nainstalován, nainstalujte jej.

Sudo apt-get instalační tor

Sudo pacman -S tor

Spusťte službu:

Sudo systemctl spustit tor

Pokud ji potřebujete, přidejte tuto službu do spuštění:

Sudo systemctl povolit tor

Otevřete soubor /etc/tor/torrc a přidejte tam následující řádky:

DNSPort 530 AutomapHostsOnResolve 1 AutomapHostsSuffixes .exit,.onion

Pozor na číslo 530. Jedná se o číslo portu, místo 530 můžete zadat jakýkoli jiný (nepoužitý) port. Hlavní je si to zapamatovat.

Znovu kontrolujeme:

Dig mi-al.ru # a dig mi-al.ru -p 530 @localhost

Nyní zadáme jako server localhost a napište číslo portu, které jste zadali v nastavení /etc/tor/torrc.

Jak můžete vidět na následujícím snímku obrazovky, na počítači, na kterém byla provedena kontrola, je proveden útok DNS spoofing:

4. Vyhledejte síťová rozhraní v promiskuitním režimu

Pokud se ve vaší lokální síti nachází (a zvláště pokud se náhle objevilo) zařízení v promiskuitním režimu, je to velmi podezřelé, i když to jasně nenaznačuje útok typu man-in-the-middle.

V tomto režimu vám síťová karta umožňuje přijímat všechny pakety bez ohledu na to, komu jsou určeny.

V normálním stavu používá ethernetové rozhraní filtrování paketů linkové vrstvy a pokud MAC adresa v cílové hlavičce přijatého paketu neodpovídá MAC adrese aktuálního síťového rozhraní a není vysílána, paket je zahozen. V „promiskuitním“ režimu je filtrování na síťovém rozhraní zakázáno a všechny pakety, včetně těch, které nejsou určeny pro aktuální uzel, jsou povoleny do systému.

Většina operačních systémů vyžaduje k aktivaci promiskuitního režimu administrátorská práva. Tito. Nastavení síťové karty do promiskuitního režimu je záměrná akce, která může sloužit k čichacím účelům.

Pro vyhledávání síťových rozhraní v promiskuitním režimu existuje plugin nazvaný Ettercap search_promisc.

Příklad spuštění pluginu:

Sudo ettercap -TQP search_promisc ///

Činnost pluginu není zcela spolehlivá, při určování režimu síťového rozhraní může docházet k chybám.

Závěr

Některé metody útoku typu man-in-the-middle zanechávají mnoho stop a některé (jako pasivní vyhledávání pověření proxy) je nemožné nebo téměř nemožné odhalit.

Téměř vždy existuje několik způsobů, jak dosáhnout požadovaného výsledku. To platí i pro oblast informační bezpečnosti. Někdy můžete k dosažení cíle použít hrubou sílu, hledat díry a vyvíjet exploity sami, nebo poslouchat, co se přenáší přes síť. Navíc poslední možnost je často optimální. Proto si dnes povíme něco o nástrojích, které nám pomohou zachytit pro nás cenné informace ze síťového provozu pomocí útoků MITM.

MITMf

Začněme jedním z nejzajímavějších kandidátů. Toto je celý rámec pro provádění útoků typu man-in-the-middle, postavený na bázi sergio-proxy. Nedávno zahrnuto do Kali Linuxu. Chcete-li jej nainstalovat sami, stačí naklonovat úložiště a spustit několik příkazů:

# setup.sh # pip install -r požadavky.txt

Má architekturu, která je rozšiřitelná pomocí pluginů. Mezi hlavní patří následující:

  • Spoof – umožňuje přesměrovat provoz pomocí spoofingu ARP/DHCP, přesměrování ICMP a úpravy DNS dotazů;
  • Sniffer - tento plugin sleduje pokusy o přihlášení pro různé protokoly;
  • BeEFAutorun - umožňuje automaticky spouštět moduly BeEF na základě typu OS a klientského prohlížeče;
  • AppCachePoison - provede útok otravy mezipamětí;
  • SessionHijacking – unese relace a uloží výsledné soubory cookie do profilu Firefly;
  • BrowserProfiler – pokusí se získat seznam pluginů používaných prohlížečem;
  • FilePwn - umožňuje nahradit soubory odeslané přes HTTP pomocí Backdoor Factory a BDFProxy;
  • Vložit - vloží libovolný obsah do stránky HTML;
  • jskeylogger - vloží JavaScript keylogger do klientských stránek.

Pokud se vám tato funkce zdá nedostatečná, můžete si vždy přidat vlastní implementací příslušného rozšíření.

PuttyRider

Další nástroj, který stojí za pozornost. Pravda, na rozdíl od všech ostatních dnes uvažovaných nástrojů je velmi úzce specializovaný. Jak sám autor projektu říká, k vytvoření takové utility ho inspirovala skutečnost, že při penetračních testech byla nejdůležitější data umístěna na serverech Linux/UNIX, ke kterým se administrátoři připojovali přes SSH/Telnet/rlogin. Navíc ve většině případů bylo mnohem snazší získat přístup k počítači administrátorů než k cílovému serveru. Po proniknutí do počítače správce systému zbývá pouze ujistit se, že PuTTY běží a pomocí tohoto nástroje vybudovat zadní most k útočníkovi.


Nástroj vám umožňuje nejen zachytit „komunikaci“ mezi správcem a vzdáleným serverem (včetně hesel), ale také provádět libovolné příkazy shellu v rámci dané relace. To vše navíc proběhne naprosto transparentně pro uživatele (administrátora). Pokud vás zajímají technické detaily, například jak je PuTTY implementován do procesu, doporučuji si přečíst autorovu prezentaci.


Docela starý nástroj, narozený před více než osmi lety. Určeno pro klonování relací krádeží souborů cookie. K únosu relací má základní dovednosti v detekci hostitelů (pokud jsou připojeni k otevřené bezdrátové síti nebo rozbočovači) a provádění otravy ARP. Jediným problémem je, že dnes, na rozdíl od doby před osmi lety, téměř všechny velké společnosti jako Yahoo nebo Facebook používají šifrování SSL, díky čemuž je tento nástroj zcela zbytečný. Navzdory tomu je na internetu stále dostatek zdrojů, které nepoužívají SSL, takže je příliš brzy na odepisování nástroje. Mezi jeho výhody patří skutečnost, že se automaticky integruje do Firefoxu a pro každou zachycenou relaci vytvoří samostatný profil. Zdrojový kód je k dispozici v úložišti a můžete si jej vytvořit sami pomocí následující sekvence příkazů:

# apt-get install build-essential libwxgtk2.8-dev libgtk2.0-dev libpcap-dev # g++ $(wx-config --cppflags --libs) -lpcap -o sessionthief *.cpp # setcap cap_net_raw,cap_net_admin=eip zloděj sezení

ProxyFuzz

ProzyFuzz nemá nic společného přímo s prováděním útoků MITM. Jak můžete uhodnout z názvu, nástroj je určen pro fuzzing. Jedná se o malý nedeterministický síťový fuzzer implementovaný v Pythonu, který náhodně mění obsah paketů síťového provozu. Podporuje protokoly TCP a UDP. Můžete jej nakonfigurovat tak, aby rozmazával pouze jednu stranu. Hodí se, když potřebujete rychle otestovat nějakou síťovou aplikaci (nebo protokol) a vyvinout PoC. Příklad použití:

Python proxyfuzz -l -r -p

Seznam možností zahrnuje:

  • w - udává počet požadavků odeslaných před zahájením fuzzingu;
  • c - fuzz pouze klienta (jinak obě strany);
  • s - fuzz pouze server (jinak obě strany);
  • u - protokol UDP (jinak se používá TCP).

Prostředník

Utilita pro provádění MITM útoků na různé protokoly prezentovaná na konferenci DEF CON. Alfa verze podporovala protokol HTTP a měla ve svém arzenálu tři skvělé pluginy:

  • plugin-beef.py - vloží Browser Exploitation Framework (BeEF) do jakéhokoli HTTP požadavku přicházejícího z lokální sítě;
  • plugin-metasploit.py - vkládá IFRAME do nešifrovaných (HTTP) požadavků, které načítají exploity prohlížeče z Metasploitu;
  • plugin-keylogger.py – vkládá obslužnou rutinu události onKeyPress JavaScript pro všechna textová pole, která budou odeslána přes HTTPS, což způsobí, že prohlížeč odešle heslo zadané uživatelem znak po znaku na server útočníka před odesláním celého formuláře.

Middler nejen automaticky analyzuje síťový provoz a nachází v něm soubory cookie, ale také je nezávisle požaduje od klienta, to znamená, že proces je maximálně automatizován. Program garantuje sběr všech nechráněných účtů v počítačové síti (nebo veřejném hotspotu), k jejichž provozu má přístup. Aby program správně fungoval, musí být v systému nainstalovány následující balíčky: Scapy, libpcap, readline, libdnet, python-netfilter. Bohužel úložiště nebylo dlouho aktualizováno, takže si budete muset přidat novou funkcionalitu sami.

Nástroj konzoly, který umožňuje interaktivně zkoumat a upravovat provoz HTTP. Díky takovým dovednostem utilitu využívají nejen pentesteri/hackeři, ale i běžní vývojáři, kteří ji využívají například k ladění webových aplikací. S jeho pomocí můžete získat podrobné informace o tom, jaké požadavky aplikace vznáší a jaké odpovědi dostává. Také mitmproxy může pomoci při studiu zvláštností fungování některých REST API, zejména těch, která jsou špatně zdokumentována.

Instalace je velmi jednoduchá:

$ sudo aptitude install mitmproxy

$ pip install mitmproxy

$easy_install mitmproxy

Za zmínku stojí, že mitmproxy také umožňuje zachytit HTTPS provoz vydáním certifikátu s vlastním podpisem klientovi. Dobrý příklad, jak nastavit zachycení a úpravu dopravy, najdete zde.


Intercepter-NG

Bylo by zvláštní, kdyby tento legendární nástroj nebyl zařazen do naší recenze. I když jste ho nikdy nepoužili, pravděpodobně jste o něm slyšeli (a prostě ho musíte lépe poznat) – na stránkách časopisu se objevuje poměrně často. Nebudu úplně popisovat jeho funkčnost – za prvé nás MITM zajímá a za druhé takový popis zabere celý článek.

Pokračování je dostupné pouze pro členy

Možnost 1. Připojte se ke komunitě „stránky“ a přečtěte si všechny materiály na stránce

Členství v komunitě ve stanoveném období vám umožní přístup ke VŠEM hackerským materiálům, zvýší vaši osobní kumulativní slevu a umožní vám nashromáždit profesionální hodnocení Xakep Score!

Téměř vždy existuje několik způsobů, jak dosáhnout požadovaného výsledku. To platí i pro oblast informační bezpečnosti. Někdy můžete k dosažení cíle použít hrubou sílu, hledat díry a vyvíjet exploity sami, nebo poslouchat, co se přenáší přes síť. Navíc poslední možnost je často optimální. Proto si dnes povíme něco o nástrojích, které nám pomohou zachytit pro nás cenné informace ze síťového provozu pomocí útoků MITM.

MITMf

Začněme jedním z nejzajímavějších kandidátů. Toto je celý rámec pro provádění útoků typu man-in-the-middle, postavený na bázi sergio-proxy. Nedávno zahrnuto do Kali Linuxu. Chcete-li jej nainstalovat sami, stačí naklonovat úložiště a spustit několik příkazů:

# setup.sh # pip install -r požadavky.txt

# pip install -r requirements.txt

Má architekturu, která je rozšiřitelná pomocí pluginů. Mezi hlavní patří následující:

  • Spoof – umožňuje přesměrovat provoz pomocí spoofingu ARP/DHCP, přesměrování ICMP a úpravy DNS dotazů;
  • Sniffer - tento plugin sleduje pokusy o přihlášení pro různé protokoly;
  • BeEFAutorun - umožňuje automaticky spouštět moduly BeEF na základě typu OS a klientského prohlížeče;
  • AppCachePoison - provede útok otravy mezipamětí;
  • SessionHijacking – unese relace a uloží výsledné soubory cookie do profilu Firefly;
  • BrowserProfiler – pokusí se získat seznam pluginů používaných prohlížečem;
  • FilePwn - umožňuje nahradit soubory odeslané přes HTTP pomocí Backdoor Factory a BDFProxy;
  • Vložit - vloží libovolný obsah do stránky HTML;
  • jskeylogger - vloží JavaScript keylogger do klientských stránek.

Pokud se vám tato funkce zdá nedostatečná, můžete si vždy přidat vlastní implementací příslušného rozšíření.

PuttyRider

Další nástroj, který stojí za pozornost. Pravda, na rozdíl od všech ostatních dnes uvažovaných nástrojů je velmi úzce specializovaný. Jak sám autor projektu říká, k vytvoření takové utility ho inspirovala skutečnost, že při penetračních testech byla nejdůležitější data umístěna na serverech Linux/UNIX, ke kterým se administrátoři připojovali přes SSH/Telnet/rlogin. Navíc ve většině případů bylo mnohem snazší získat přístup k počítači administrátorů než k cílovému serveru. Po proniknutí do počítače správce systému zbývá pouze ujistit se, že PuTTY běží a pomocí tohoto nástroje vybudovat zadní most k útočníkovi.

Nástroj vám umožňuje nejen zachytit „komunikaci“ mezi správcem a vzdáleným serverem (včetně hesel), ale také provádět libovolné příkazy shellu v rámci dané relace. To vše navíc proběhne naprosto transparentně pro uživatele (administrátora). Pokud vás zajímají technické detaily, například jak je PuTTY implementován do procesu, doporučuji si přečíst autorovu prezentaci.

Docela starý nástroj, narozený před více než osmi lety. Určeno pro klonování relací krádeží souborů cookie. K únosu relací má základní dovednosti v detekci hostitelů (pokud jsou připojeni k otevřené bezdrátové síti nebo rozbočovači) a provádění otravy ARP. Jediným problémem je, že dnes, na rozdíl od doby před osmi lety, téměř všechny velké společnosti jako Yahoo nebo Facebook používají šifrování SSL, díky čemuž je tento nástroj zcela zbytečný. Navzdory tomu je na internetu stále dostatek zdrojů, které nepoužívají SSL, takže je příliš brzy na odepisování nástroje. Mezi jeho výhody patří skutečnost, že se automaticky integruje do Firefoxu a pro každou zachycenou relaci vytvoří samostatný profil. Zdrojový kód je k dispozici v úložišti a můžete si jej vytvořit sami pomocí následující sekvence příkazů:

# apt-get install build-essential libwxgtk2.8-dev libgtk2.0-dev libpcap-dev # g++ $(wx-config --cppflags --libs) -lpcap -o sessionthief *.cpp # setcap cap_net_raw,cap_net_admin=eip zloděj sezení

# apt-get install build-essential libwxgtk2.8-dev libgtk2.0-dev libpcap-dev

# g++ $(wx-config --cppflags --libs) -lpcap -o sessionthief *.cpp

# setcap cap_net_raw,cap_net_admin=eip sessionthief

ProxyFuzz

ProzyFuzz nemá nic společného přímo s prováděním útoků MITM. Jak můžete uhodnout z názvu, nástroj je určen pro fuzzing. Jedná se o malý nedeterministický síťový fuzzer implementovaný v Pythonu, který náhodně mění obsah paketů síťového provozu. Podporuje protokoly TCP a UDP. Můžete jej nakonfigurovat tak, aby rozmazával pouze jednu stranu. Hodí se, když potřebujete rychle otestovat nějakou síťovou aplikaci (nebo protokol) a vyvinout PoC. Příklad použití:

Python proxyfuzz -l -r -p

python proxyfuzz -l -r -p

Seznam možností zahrnuje:

  • w - udává počet požadavků odeslaných před zahájením fuzzingu;
  • c - fuzz pouze klienta (jinak obě strany);
  • s - fuzz pouze server (jinak obě strany);
  • u - protokol UDP (jinak se používá TCP).

Prostředník

Utilita pro provádění MITM útoků na různé protokoly prezentovaná na konferenci DEF CON. Alfa verze podporovala protokol HTTP a měla ve svém arzenálu tři skvělé pluginy:

  • plugin-beef.py - vloží Browser Exploitation Framework (BeEF) do jakéhokoli HTTP požadavku přicházejícího z lokální sítě;
  • plugin-metasploit.py - vkládá IFRAME do nešifrovaných (HTTP) požadavků, které načítají exploity prohlížeče z Metasploitu;
  • plugin-keylogger.py – vkládá obslužnou rutinu události onKeyPress JavaScript pro všechna textová pole, která budou odeslána přes HTTPS, což způsobí, že prohlížeč odešle heslo zadané uživatelem znak po znaku na server útočníka před odesláním celého formuláře.

Middler nejen automaticky analyzuje síťový provoz a nachází v něm soubory cookie, ale také je nezávisle požaduje od klienta, to znamená, že proces je maximálně automatizován. Program garantuje sběr všech nechráněných účtů v počítačové síti (nebo veřejném hotspotu), k jejichž provozu má přístup. Aby program správně fungoval, musí být v systému nainstalovány následující balíčky: Scapy, libpcap, readline, libdnet, python-netfilter. Bohužel úložiště nebylo dlouho aktualizováno, takže si budete muset přidat novou funkcionalitu sami.

Nástroj konzoly, který umožňuje interaktivně zkoumat a upravovat provoz HTTP. Díky takovým dovednostem utilitu využívají nejen pentesteri/hackeři, ale i běžní vývojáři, kteří ji využívají například k ladění webových aplikací. S jeho pomocí můžete získat podrobné informace o tom, jaké požadavky aplikace vznáší a jaké odpovědi dostává. Také mitmproxy může pomoci při studiu zvláštností fungování některých REST API, zejména těch, která jsou špatně zdokumentována.

Instalace je velmi jednoduchá:

$ sudo aptitude install mitmproxy

Za zmínku stojí, že mitmproxy také umožňuje zachytit HTTPS provoz vydáním certifikátu s vlastním podpisem klientovi. Dobrý příklad, jak nastavit zachycení a úpravu dopravy, najdete zde.

Dsniff

Tato utilita je obecně jednou z prvních věcí, které by vás měly napadnout, jakmile uslyšíte
„útok MITM“. Nástroj je poměrně starý, ale stále se aktivně aktualizuje, což je dobrá zpráva. O jeho schopnostech nemá cenu podrobně mluvit, za čtrnáct let existence se na internetu probral nejednou. Například v průvodci, jako je tento:

nebo pokyny z našeho webu:

Konečně..

Jako obvykle jsme se nepodívali na všechny nástroje, ale pouze na ty nejoblíbenější; existuje také mnoho málo známých projektů, o kterých bychom mohli někdy mluvit. Jak vidíte, nástroje pro provádění MITM útoků nechybí, a což se nestává příliš často, jeden ze skvělých nástrojů je implementován pro Windows. O nixových systémech není co říci - celá řada. Takže si myslím, že vždy můžete najít ten správný nástroj pro krádež
pověření jiných lidí. Jejda, tedy na testování.

Proces sestávající ze tří kroků pro zahájení relace TCP. Klient odešle na server paket s příznakem SYN. Po přijetí paketu s příznakem SYN od klienta server odpoví odesláním paketu s příznakem SYN+ACK a přejde do stavu ESTABLISHED. Po obdržení správné odpovědi ze serveru klient odešle paket s příznakem ACK a přejde do stavu ESTABLISHED

Seznam zákazů

Seznam klientů, kteří nemají práva na určité akce. Pomocí seznamu zákazů obvykle omezíte možnosti botů, když je detekován DDoS útok. V realitě herních serverů jsou do tohoto seznamu zahrnuti i hráči se špatnou pověstí, kteří používají cheat kódy nebo se dopouštějí nezákonných akcí.

Bot

Počítač použitý k provedení DDoS útoku se „skutečným“ provozem. Ve většině případů se jedná o počítač běžného uživatele napadený virem. Uživatel si často nemůže všimnout, že jeho počítač je infikován a je používán k nelegálním účelům

webový server

Počítač v síti, který přijímá požadavky HTTP od klientů, obvykle webových prohlížečů, a poskytuje jim odpovědi HTTP. Webový server obvykle spolu s odpovědí HTTP odpoví stránkou HTML, obrázkem, mediálním proudem nebo jinými daty

webová služba

Webové služby jsou služby poskytované na internetu. Při použití tohoto pojmu můžeme hovořit o vyhledávání, webové poště, ukládání dokumentů, souborů, záložek atd. Obvykle lze webové služby používat bez ohledu na počítač, prohlížeč nebo místo, kde k internetu přistupujete.

Doména

Pojem „doména“ lze použít v různých kontextech, když se mluví o síťových technologiích. Nejčastěji se doménou rozumí název domény webové stránky. Domény jsou rozděleny do různých úrovní, například v doméně example.com je com doména první úrovně a example je doména druhé úrovně. Pro usnadnění komunikace lidé také používají termín „subdoména“, což znamená doménu, která je hluboká více než dvě úrovně. Například v doméně mail.example.com je pošta subdoménou.

Vyhledávací robot

Služba vyhledávače pro objevování nových stránek na internetu a změnu těch stávajících. Princip fungování je podobný jako u prohlížeče. Analyzuje obsah stránky, ukládá jej v nějaké speciální podobě na server vyhledávače, ke kterému patří, a posílá odkazy na další stránky.

Šířka pásma

Maximální možné množství dat přenesených za jednotku času. Poskytovatelé internetu, kteří slibují vyšší rychlost přístupu k internetu, často své sliby neplní. Ve většině případů je to kvůli úplnému obsazení šířky pásma.

V tomto článku se pokusíme pochopit teorii útoků typu man-in-the-middle a některé praktické body, které pomohou těmto typům útoků předcházet. To nám pomůže porozumět riziku, které takové narušení představuje pro naše soukromí, protože útoky MitM nám umožňují narušovat komunikaci a odposlouchávat naše konverzace.

Pochopení toho, jak funguje internet

Abychom pochopili princip útoku typu man-in-the-middle, stojí za to nejprve pochopit, jak funguje samotný internet. Hlavní body interakce: klienti, routery, servery. Nejběžnějším komunikačním protokolem mezi klientem a serverem je Hypertext Transfer Protocol (HTTP). Surfování na internetu pomocí prohlížeče, e-mailu, instant messagingu – to vše probíhá přes HTTP.

Když zadáte do adresního řádku prohlížeče, klient (vy) odešle serveru požadavek na zobrazení webové stránky. Paket (požadavek HTTP GET) je přenášen přes několik směrovačů na server. Server poté odpoví webovou stránkou, která je odeslána klientovi a zobrazena na jeho monitoru. Zprávy HTTP musí být přenášeny bezpečně, aby byla zajištěna důvěrnost a anonymita.

Obrázek 1. Interakce klient-server

Zabezpečení komunikačního protokolu

Zabezpečený komunikační protokol musí mít každou z následujících vlastností:

  1. Soukromí- zprávu si může přečíst pouze určený příjemce.
  2. Pravost- byla prokázána totožnost spolupracujících stran.
  3. Integrita- potvrzení, že zpráva nebyla při přenosu změněna.

Pokud není dodrženo některé z těchto pravidel, je ohrožen celý protokol.

Man-in-the-middle útok přes HTTP protokol

Útočník může snadno provést útok typu man-in-the-middle pomocí techniky zvané ARP spoofing. Kdokoli ve vaší síti Wi-Fi vám může poslat podvržený paket ARP, což způsobí, že veškerý provoz nevědomky pošlete přes útočníka místo vašeho routeru.

Poté má útočník plnou kontrolu nad provozem a může sledovat požadavky odeslané oběma směry.

Obrázek 2. Vzor útoku typu Man-in-the-middle


Aby se takovým útokům zabránilo, byla vytvořena zabezpečená verze protokolu HTTP. Transport Layer Security (TLS) a jeho předchůdce Secure Socket Layer (SSL) jsou kryptografické protokoly, které poskytují zabezpečení přenosu dat po síti. Proto se zabezpečený protokol bude nazývat HTTPS. Jak funguje zabezpečený protokol, můžete vidět zadáním do adresního řádku prohlížeče (všimněte si S v https).

Man-in-the-Middle útok na špatně implementované SSL

Moderní SSL používá dobrý šifrovací algoritmus, ale to nevadí, pokud není implementován správně. Pokud se hackerovi podaří požadavek zachytit, může jej upravit odstraněním písmene „S“ z požadované adresy URL, a tím obejít SSL.

Takové zachycení a úprava požadavku lze zaznamenat. Pokud například požadujete https://login.yahoo.com/ a odpověď je http://login.yahoo.com/ , mělo by to vyvolat podezření. V době psaní tento útok skutečně funguje na e-mailové službě Yahoo.

Obrázek 3. Žádost o zachycení a úpravu


Aby se takovému útoku zabránilo, mohou servery implementovat HTTP Strict Transport Security (HSTS), mechanismus, který umožňuje vynucené zabezpečené připojení přes protokol HTTPS. V tomto případě, pokud útočník upraví požadavek odstraněním „S“ z adresy URL, server stále přesměruje uživatele pomocí přesměrování 302 na stránku se zabezpečeným protokolem.

Obrázek 4. Schéma činnosti HSTS


Tento způsob implementace SSL je zranitelný vůči jinému typu útoku – útočník vytvoří SSL připojení k serveru, ale pomocí různých triků donutí uživatele použít HTTP.

Obrázek 5. Vzor útoku HSTS


Aby se takovým útokům zabránilo, moderní prohlížeče jako Chrome, Firefox a Tor monitorují stránky pomocí HSTS a vynucují si k nim připojení na straně klienta přes SSL. V tomto případě by útočník provádějící útok typu man-in-the-middle musel vytvořit SSL spojení s obětí.

Obrázek 6. Vzor útoku, kdy útočník naváže spojení SSL s obětí


Aby mohl útočník poskytnout uživateli připojení SLL, musí vědět, jak se chovat jako server. Pojďme pochopit technické aspekty SSL.

Porozumění SSL

Z pohledu hackera kompromitace jakéhokoli komunikačního protokolu spočívá v nalezení slabého článku mezi výše uvedenými komponentami (soukromí, autenticita a integrita).

SSL používá asymetrický šifrovací algoritmus. Problém symetrického šifrování spočívá v tom, že k šifrování a dešifrování dat se používá stejný klíč, tento přístup není platný pro internetové protokoly, protože útočník může tento klíč vysledovat.

Asymetrické šifrování zahrnuje 2 klíče pro každou stranu: veřejný klíč používaný k šifrování a soukromý klíč používaný k dešifrování dat.

Obrázek 7. Veřejné a soukromé klíče fungují

Jak SSL poskytuje tři vlastnosti potřebné pro zabezpečenou komunikaci?

  1. Protože se k šifrování dat používá asymetrická kryptografie, SSL poskytuje soukromé připojení. Toto šifrování není tak snadné prolomit a zůstat neodhaleno.
  2. Server potvrdí svou legitimitu zasláním SSL certifikátu klientovi vydaného certifikační autoritou - důvěryhodnou třetí stranou.

Pokud se útočníkovi nějakým způsobem podaří certifikát získat, mohl by otevřít dveře útoku typu man-in-the-middle. Vytvoří tedy 2 spojení – se serverem a s obětí. Server si v tomto případě myslí, že útočníkem je obyčejný klient a oběť nemá jak identifikovat útočníka, protože poskytla certifikát prokazující, že je serverem.

Vaše zprávy přicházejí a přicházejí v zašifrované podobě, ale sledujte řetězec počítačem kyberzločince, kde má plnou kontrolu.

Obrázek 8. Vzor útoku, pokud má útočník certifikát


Certifikát není nutné zfalšovat, pokud má útočník možnost kompromitovat prohlížeč oběti. V takovém případě může vložit certifikát s vlastním podpisem, který bude ve výchozím nastavení důvěryhodný. Takto se provádí většina útoků typu man-in-the-middle. Ve složitějších případech se musí hacker vydat jinou cestou – zfalšovat certifikát.

Problémy s certifikační autoritou

Certifikát zaslaný serverem byl vystaven a podepsán certifikační autoritou. Každý prohlížeč má seznam důvěryhodných certifikačních autorit a můžete je přidat nebo odebrat. Problém je v tom, že pokud se rozhodnete odebrat velké autority, nebudete moci navštěvovat stránky, které používají certifikáty podepsané těmito autoritami.

Certifikáty a certifikační autority byly vždy nejslabším článkem HTTPS připojení. I když bylo vše správně implementováno a každá certifikační autorita má solidní autoritu, je stále těžké smířit se s tím, že musíte důvěřovat mnoha třetím stranám.

Dnes existuje více než 650 organizací schopných vydávat certifikáty. Pokud by některý z nich útočník hacknul, získal by certifikáty, které by chtěl.

I když existovala pouze jedna certifikační autorita, VeriSign, nastal problém – lidé, kteří měli zabránit útokům typu man-in-the-middle, prodávali odposlechové služby.

Také mnoho certifikátů bylo vytvořeno kvůli hackování certifikačních autorit. Byly použity různé techniky a triky, aby přiměly cílového uživatele, aby důvěřoval podvodným certifikátům.

Forenzní

Protože útočník posílá falešné pakety ARP, útočníkovu IP adresu nelze vidět. Místo toho je třeba věnovat pozornost MAC adrese, která je specifická pro každé zařízení v síti. Pokud znáte MAC adresu svého routeru, můžete ji porovnat s MAC adresou výchozí brány a zjistit, zda je to skutečně váš router nebo útočník.

Například v systému Windows můžete pomocí příkazu ipconfig v příkazovém řádku (CMD) zobrazit IP adresu výchozí brány (poslední řádek):

Obrázek 9. Použití příkazu ipconfig


Poté pomocí příkazu arp –a zjistěte MAC adresu této brány:

Obrázek 10. Použití příkazu arp –a


Existuje ale ještě jeden způsob, jak si útoku všimnout – pokud jste sledovali síťovou aktivitu v době, kdy začal, a sledovali pakety ARP. K tomuto účelu můžete použít například Wireshark, tento program vás upozorní, pokud se změnila MAC adresa výchozí brány.

Poznámka: Pokud útočník správně podvrhne MAC adresy, bude jeho sledování velkým problémem.

Závěr

SSL je protokol, který nutí útočníka k provedení útoku. Ale neochrání vás před státem podporovanými útoky ani před zkušenými hackerskými organizacemi.

Úkolem uživatele je chránit svůj prohlížeč a počítač, aby se zabránilo vložení falešného certifikátu (velmi častá technika). Vyplatí se také věnovat pozornost seznamu důvěryhodných certifikátů a odstranit ty, kterým nedůvěřujete.