A középső támadás a forgalomhoz közvetítőként való hozzáférést célzó különféle technikák általános neve. A technikák sokfélesége miatt problémás egyetlen olyan eszközt megvalósítani e támadások észlelésére, amely minden lehetséges helyzetben működne. Például egy helyi hálózat elleni ember a középső támadás során az ARP-hamisítást (mérgezést) gyakran használják. És sok közbeeső támadásészlelő eszköz figyeli az Ethernet-címpár változásait / vagy gyanús ARP-tevékenységet jelent az ARP-kérések/válaszok passzív figyelésével. De ha ezt a támadást rosszindulatúan konfigurált proxyszerveren, VPN-en vagy más lehetőségeken használják, amikor nincs ARP-mérgezés, akkor az ilyen eszközök tehetetlenek.

Ennek a szakasznak az a célja, hogy megvizsgáljon néhány technikát a köztes támadások észlelésére, valamint néhány eszközt, amelyek célja annak megállapítása, hogy Ön MitM támadás alatt áll-e. A különféle módszerek és megvalósítási forgatókönyvek miatt a 100%-os észlelés nem garantálható.

1. Forgalommódosítás észlelése

Mint már említettük, az ARP-hamisítást nem mindig használják a köztes támadásoknál. Ezért, míg az ARP szintű tevékenységészlelés a legnépszerűbb észlelési módszer, a forgalommódosítások észlelése általánosabb módszer. Ebben segíthet nekünk a mitmcanary program.

A program elve az, hogy "ellenőrzési" kéréseket hajt végre, és a kapott válaszokat elmenti. Ezt követően meghatározott időközönként megismétli ugyanazokat a kéréseket, és összehasonlítja a kapott válaszokat. A program meglehetősen intelligens, és a hamis pozitívumok elkerülése érdekében észleli a dinamikus elemeket a válaszokban, és helyesen dolgozza fel azokat. Amint a program rögzítette a MitM támadásokhoz használt eszközök tevékenységének nyomait, beszámol róla.

Példák arra, hogy egyes eszközök hogyan „örökölhetnek”:

  • A MITMf alapértelmezés szerint a HTML-kódban lévő összes HTTPS URL-t HTTP-re változtatja. HTTP-tartalom összehasonlításával észlelve.
  • Zarp + MITMProxy , MITMProxy rendelkezik egy olyan funkcióval, amely lehetővé teszi a HTTP-tömörítés törlését, ez az átvitt forgalom átláthatóságára szolgál, ezt a köteget a korábban meglévő tömörítés eltűnése észleli.
  • Responder , az mDNS-válasz fordításának hirtelen változásai által észlelt: váratlan válasz; a válasz belső, de külső várható; a válasz eltér a várt IP-től
  • MITMCanary vs MITMF:

  • MITMCanary vs Responder:

  • MITMCanary vs Zarp + MITMProxy:

sudo pip install Cython sudo apt-get install python-kivy python-dbus sudo pip install plyer uuid urlopen elemzési kérés simplejson datetime git klón https://github.com/CylanceSPEAR/mitmcanary.git cd mitmcanary/

Mint már említettük, a mitmcanary munkáját ellenőrzési kérésekkel kell kezdeni. Ehhez lépjen a könyvtárba

cd szerviz/

És futtassa a fájlt setup_test_persistence.py:

Python2 setup_test_persistence.py

Ez eltart egy ideig – várja meg a végét. Nem szabad hibaüzenetet megjeleníteni (ha igen, akkor hiányzik néhány függőség).

Valami ehhez hasonló lesz a kimenet:

[e-mail védett]:~/bin/mitmcanary/service$ python2 setup_test_persistence.py Régebbi konfigurációs verzió észlelve (14 helyett 0) A konfiguráció frissítése folyamatban van. Tisztítónapló kilőve. Elemzés... A tisztítás befejeződött! Bejelentkezés rögzítése /home/mial/.kivy/logs/kivy_16-11-01_0.txt v1.9.1 v2.7.12+ (alapértelmezett, 2016. szeptember 1., 20:27:38)

A folyamat befejezése után ugyanabban a könyvtárban hajtsa végre a következőt (ez elindít egy háttérfolyamatot):

Python2 main.py

Ezután nyisson meg egy új terminálablakot, és váltson át a gyökérkönyvtárra a mitmcanary segítségével. A könyvtáram a bin/mitmcanary/, ezért belépek

cd bin/mitmcanary/

és ott hajtsd végre:

Python2 main.py

Az első ablakban valami ilyesmi jelenik meg:

[e-mail védett]:~/bin/mitmcanary/service$ python2 main.py Bejelentkezés rögzítése /home/mial/.kivy/logs/kivy_16-11-01_1.txt v1.9.1 v2.7.12+ (alapértelmezett, 2016. szeptember 1., 20:27 :38) segítségével aljzathallgatáshoz Tuio 127.0.0.1:3000 Alvás 60 másodpercig Alvás 60 másodpercig Alvás 60 másodpercig Alvás 60 másodpercig Alvás 60 másodpercig Alvás 60 másodpercig

Azok. a program percenként egyszer vezérlési kérelmet ad le, és keresi bennük a köztes támadás jeleit.

A második ablakban is van egy kimenet + egy sötét ablak nyílik meg, a program szerzői ezt az ablakot „grafikus felületnek” nevezik:

Várhat egy kicsit, böngészhet az interneten, hogy megbizonyosodjon arról, hogy a program nem ad téves riasztásokat.

Próbáljuk ki a klasszikus Ettercap programot.

Rendszeres MitM támadást futtatok ARP hamisítással. A mitmcanary magára a maratásra nem reagál. A mitmcanary eszköz maga generálja a forgalmat, azaz nincs szükség felhasználói beavatkozásra. Egy idő után egyetlen figyelmeztetés jelenik meg, amelyet a következő ellenőrzések során nem erősítenek meg. De néhány perc múlva ugyanaz a figyelmeztetés jelenik meg. További elemzés nélkül nehéz megmondani, hogy ez egy téves pozitív példa-e – nagyon hasonlít ehhez. Lehetséges, hogy ezt a figyelmeztetést egy kapcsolathiba okozza, amely a forgalomnak további útvonalakon való áthaladásának szükségessége miatt, vagy a rossz internetkapcsolat sajátosságai miatt következik be.

Mivel az eredmény nem egyértelmű (inkább "nem", mint "igen"), akkor próbáljuk ki a Bettercap programot, amely többféle modullal rendelkezik. Nincs kétségem afelől, hogy különböző Ettercap bővítmények és/vagy további programokat a funkcionalitás bővítése érdekében a mitmcanaryra is "világítanánk".

A kísérlet tisztasága érdekében újraindítom a berendezést, futtatom a Mitmcanary-t a támadott gépen, a Bettercap-et pedig a támadón. Ugyanakkor a megtámadott gépen nem szükséges újból vezérlési kéréseket végrehajtani - a program a könyvtáron belül egy fájlba menti őket. Azok. elég elindítani a szolgáltatást és a grafikus felületet.

A támadógépben pedig a Bettercap-et fogjuk futtatni úgy, hogy az elemzők engedélyezettek:

Sudocap -X

Külön figyelmeztetések jelennek meg, amelyek szintén inkább hamis pozitívnak tűnnek.

De futtassa ezt a parancsot:

sudo bettercap -X --proxy

A megtámadott gépen nagyszámú figyelmeztetést ad egy lehetséges ember a közepén támadásról:

És akkor mi van funkcionálisabb eszköz egy ember a középső támadásnál annál több lábnyomot hagy a forgalomban. A mitmcanary gyakorlati használatához a következő feltételeknek kell teljesülniük:

  • első kéréseket küldjön egy megbízható hálózaton, ha biztos abban, hogy nincs közvetítő a forgalom továbbításában;
  • szerkessze azokat az erőforrásokat, amelyekhez az ellenőrzési kérelmeket küldik, mivel a professzionális támadó alapértelmezett erőforrásokat adhat hozzá a kivételekhez, ami láthatatlanná teszi őt az eszköz számára.

2. ARP-hamisítás (ARP-gyorsítótár-mérgezés) észlelése

A helyi hálózat ellen elkövetett köztes támadás nagyon gyakran ARP-mérgezéssel kezdődik. Ez az oka annak, hogy sok MitM-támadások észlelésére tervezett eszköz az ARP-gyorsítótár változásainak nyomon követésére szolgáló mechanizmuson alapul, amelyben az Ethernet (MAC-címek) és az IP-címek közötti megfelelések vannak hozzárendelve.

Ilyen programok például az arpwatch , az arpalert és számos új program. Az ArpON program nemcsak figyeli az ARP gyorsítótár változásait, hanem meg is védi azokat.

Példaként futtassuk az arpwatch-ot hibakeresési módban anélkül, hogy a háttérben elágazásokat hoznánk létre, és nem küldenénk üzeneteket e-mailben. Ehelyett az üzenetek az stderr-nek (normál hibakimenet) kerülnek elküldésre.

sudo /usr/sbin/arpwatch -d

A támadó gépen futtassa az Ettercap-et, és indítsa el az ARP-hamisítást. A megtámadott gépen megfigyeljük:

Az arpwatch program segít gyorsan tájékozódni az új csatlakoztatott eszközökről helyi hálózat, valamint az ARP gyorsítótár változásai.

Egy másik eszköz a valós idejű ARP-hamisítás észlelésére maga az Ettercap által nevezett plugin arp_cop. A megtámadott gépen futtassa az Ettercap programot a következőképpen:

sudo ettercap -TQP arp_cop ///

És a támadón kezdjük el az ARP-maratást. A megtámadott gépen azonnal megjelennek a figyelmeztetések:

3. DNS-hamisítás észlelése

A DNS-hamisítás azt jelzi, hogy van egy közvetítő Ön és a cél között, aki módosíthatja a forgalmat. Hogyan állapítható meg, hogy a DNS-rekordokat hamisították? Ennek legegyszerűbb módja, ha összehasonlítja egy megbízható névszerver válaszait. De végül is a kérésére küldött válasz bejegyzései is helyettesíthetők ...

Azok. vagy titkosított csatornán (például Toron keresztül) kell ellenőriznie, vagy nem szabványos beállításokat kell használnia (egy másik port, TCP az UDP helyett). A XiaoxiaoPu sans programja hozzávetőlegesen erre szolgál (legalábbis, ahogy én értem). Ezzel a programmal sikerült átirányítanom a DNS-lekérdezéseket Toron keresztül és nem szabványos beállításokon keresztül a DNS-kiszolgálómra. De soha nem tudtam rávenni, hogy mutasson üzeneteket a DNS-válaszok hamisításáról. E nélkül pedig elveszik a program értelme.

Nem találtam jobb alternatívát.

Elvileg, tekintettel arra, hogy a DNS-hamisítók általában csak az 53-as portot és csak az UDP-protokollokat figyelik, még manuálisan is elegendő egyszerűen ellenőrizni a DNS-hamisítás tényét, bár ehhez saját DNS-kiszolgáló szükséges, nem szabványos konfigurációval. Például a támadó gépen létrehoztam a fájlt dns.conf a következő tartalommal:

Helyi mi-al.ru

Azok. DNS-rekord kérésekor a mi-al.ru webhelyhez a valódi IP helyett a támadó gépének IP-címe kerül elküldésre.

A támadógépen futok:

sudo bettercap --dns dns.conf

A megtámadottakon pedig két ellenőrzést végzek:

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

Eredmények:

[e-mail védett]:~$ dig mi-al.ru ;<<>> DiG 9.10.3-P4-Debian<<>> mi-al.ru ;; globális beállítások: +cmd ;; választ kaptam: ;; ->>Fejléc<<- 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 [e-mail védett]:~$ 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ális beállítások: +cmd ;; választ kaptam: ;; ->>Fejléc<<- 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

Látható, hogy „normál” DNS-lekérdezéshez a 192.168.1.48 helyi IP-t küldték el, a DNS lekérdezésekor pedig egy atipikus porton a megfelelő szerver IP-t küldik.

Ha a szerver TCP-vel (nem UDP-vel) való együttműködésre lett beállítva, akkor a parancs így néz ki:

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

Nyilvánvalóan hiányzik egy olyan eszköz, amely magában a forgalomban nyomon követné a DNS-válaszokat, még egyszer ellenőrizné azokat egy alternatív forráshoz képest, és hamisítás esetén riasztást adna.

A saját távoli DNS beállításának elkerülése érdekében lekérdezheti a névszervert a Toron keresztül. Mivel az összes Tor-forgalom titkosított, az így kapott DNS-válaszok túl kemények egy közvetítő számára. Ha a Tor még nincs telepítve, akkor telepítse.

sudo apt-get install tor

Sudo pacman -S tor

Indítsa el a szolgáltatást:

sudo systemctl start tor

Ha szüksége van rá, adja hozzá ezt a szolgáltatást az induláshoz:

sudo systemctl enable tor

Fájl megnyitása /etc/tor/torrcés add hozzá a következő sorokat:

DNSPort 530 AutomapHostsOnResolve 1 AutomapHostsSuffixes .exit, .onion

Ügyeljen az 530-as számra. Ez a portszám, 530 helyett bármilyen más (nem foglalt) portot megadhat. A legfontosabb, hogy emlékezzen rá.

Ismét ellenőrizzük:

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

Most megadjuk szerverként helyi kiszolgáló, és írja be a portszámot az /etc/tor/torrc fájlban megadottak szerint.

Amint az a következő képernyőképen látható, DNS-hamisítási támadást hajtanak végre azon a gépen, amelyen az ellenőrzést elvégezték:

4. Keressen hálózati interfészeket promiscuous módban

Ha a helyi hálózaton van (és különösen, ha hirtelen megjelent) a berendezés promiszkuális módban, ez nagyon gyanús, bár nem utal egyértelműen a köztes támadásra.

Ebben az üzemmódban a hálózati kártya lehetővé teszi az összes csomag fogadását, függetlenül attól, hogy kinek szól.

Normál állapotban az Ethernet interfész kapcsolati rétegű csomagszűrést használ, és ha a fogadott csomag célfejlécében szereplő MAC-cím nem egyezik az aktuális hálózati interfész MAC-címével, és nem kerül szórásra, akkor a csomag eldobásra kerül. Promiscuous módban a szűrés a hálózati interfészen le van tiltva, és minden csomag, beleértve azokat is, amelyeket nem az aktuális gazdagépnek szánt, bekerül a rendszerbe.

A legtöbb operációs rendszer rendszergazdai jogosultságokat igényel a promiszkuális mód engedélyezéséhez. Azok. a hálózati kártya promiszkuális üzemmódba állítása tudatos cselekedet, amely a szippantás célját szolgálhatja.

Hálózati interfészek kereséséhez promiscuous módban van egy Ettercap beépülő modul search_promisc.

Példa a beépülő modul indítására:

sudo ettercap -TQP search_promisc ///

A beépülő modulok működése nem teljesen megbízható, előfordulhatnak hibák a hálózati interfész mód meghatározásában.

Következtetés

Egyes „man-in-the-middle” támadási módszerek sok nyomot hagynak maguk után, míg néhányat (például a hitelesítő adatok passzív keresése egy proxy-n) lehetetlen vagy szinte lehetetlen észlelni.

Szinte mindig többféleképpen is elérheti a kívánt eredményt. Ez vonatkozik az információbiztonság területére is. Néha a cél elérése érdekében brutálisan kereshet, önállóan kereshet lyukakat és szagokat fejleszthet, vagy meghallgathatja a hálózaton keresztül továbbított tartalmat. Az utóbbi lehetőség gyakran a legjobb. Éppen ezért ma olyan eszközökről fogunk beszélni, amelyek segítenek számunkra értékes információkat fogni a hálózati forgalomból, ehhez MITM támadásokat használva.

MITMf

Kezdjük az egyik érdekesebb jelölttel. Ez egy teljes keret a középső támadásokhoz, a sergio-proxyra épülve. Nemrég bekerült a Kali Linuxba. A telepítéshez csak klónozza a tárolót, és futtassa néhány parancsot:

# setup.sh # pip install -r követelmények.txt

Beépülő modulokkal bővíthető architektúrája van. A főbbek közé tartoznak a következők:

  • Spoof - lehetővé teszi a forgalom átirányítását ARP / DHCP hamisítással, ICMP átirányításokkal és DNS-lekérdezések módosításával;
  • Sniffer – ez a bővítmény figyeli a különböző protokollok bejelentkezési kísérleteit;
  • BeEFAutorun - lehetővé teszi a BeEF modulok automatikus futtatását az operációs rendszer és a kliens böngésző típusa alapján;
  • AppCachePoison - gyorsítótár-mérgezési támadást hajt végre;
  • SessionHijacking – eltéríti a munkameneteket, és elmenti a fogadott sütiket a firelis profilba;
  • BrowserProfiler - megpróbálja lekérni a böngésző által használt bővítmények listáját;
  • FilePwn - lehetővé teszi a HTTP-n keresztül küldött fájlok cseréjét a Backdoor Factory és a BDFProxy használatával;
  • Inject – tetszőleges tartalmat szúr be egy HTML oldalba;
  • jskeylogger – JavaScript keyloggert szúr be az ügyféloldalakba.

Ha ez a funkció nem elegendő az Ön számára, akkor a megfelelő kiterjesztéssel bármikor hozzáadhatja a sajátját.

putty rider

Egy másik figyelemre méltó segédprogram. Igaz, az összes többi manapság figyelembe vett eszközzel ellentétben ez nagyon szűken specializálódott. Amint a projekt szerzője maga mondja, egy ilyen segédprogram létrehozásához az inspirálta, hogy a penetrációs tesztek során a legfontosabb adatok a Linux / UNIX szervereken találhatók, amelyekhez az adminisztrátorok SSH / Telnet / rlogin segítségével csatlakoztak. És a legtöbb esetben a rendszergazdák gépéhez való hozzáférés sokkal könnyebb volt, mint a célszerver elérése. Miután behatoltak a rendszergazda gépébe, nem kell mást tenni, mint megbizonyosodni arról, hogy a PuTTY fut, és ezzel az eszközzel visszafelé hidat építeni a támadó felé.


A segédprogram nem csak az adminisztrátor és a távoli szerver közötti "kommunikáció" (beleértve a jelszavakat) szimatolását teszi lehetővé, hanem tetszőleges shell-parancsok végrehajtását is egy adott munkameneten belül. És mindez a felhasználó (adminisztrátor) számára abszolút átláthatóan fog megtörténni. Ha érdeklik a technikai részletek, például, hogyan valósul meg a PuTTY folyamat megvalósítása, ajánlom figyelmébe a szerző előadását.


Egy meglehetősen régi segédprogram, amely több mint nyolc éve született. Úgy tervezték, hogy a munkameneteket cookie-k ellopásával klónozza. A munkamenet-eltérítéshez alapvető készségekkel rendelkezik a gazdagépek észlelésében (nyitott vezeték nélküli hálózathoz vagy hubhoz való csatlakozás esetén) és az ARP-mérgezés végrehajtásában. A probléma csak az, hogy ma, ellentétben a nyolc évvel ezelőttivel, szinte minden nagyvállalat, mint a Yahoo vagy a Facebook, használ SSL titkosítást, ami teljesen használhatatlanná teszi ezt az eszközt. Ennek ellenére még mindig van elég olyan erőforrás a weben, amely nem használ SSL-t, így még korai lenne leírni a segédprogramot. Előnyei közé tartozik, hogy automatikusan integrálódik a Firefoxba, és külön profilt hoz létre minden elfogott munkamenethez. A forráskód elérhető a tárolóban, és saját maga is elkészítheti a következő parancsok segítségével:

# 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 üléstolvaj

Proxy Fuzz

A ProzyFuzznak semmi köze közvetlenül a MITM támadásokhoz. Ahogy a névből is sejthető, az eszközt fuzzingra tervezték. Ez egy pythonban megvalósított kis, nem determinisztikus hálózati fuzzer, amely véletlenszerűen változtatja meg a hálózati forgalmi csomagok tartalmát. Támogatja a TCP és UDP protokollokat. Konfigurálható úgy, hogy csak az egyik oldalon fuzz. Hasznos, ha gyorsan kell tesztelnie néhány hálózati alkalmazást (vagy protokollt), és ki kell fejlesztenie egy PoC-t. Használati példa:

Python proxyfuzz -l -r -o

Az opciók listája a következőket tartalmazza:

  • w - beállítja a fuzzing megkezdése előtt elküldött kérések számát;
  • c - csak az ügyfelet fuzzolja meg (egyébként mindkét oldalt);
  • s - csak a szerver fuzz-ja (egyébként mindkét oldal);
  • u - UDP protokoll (egyébként TCP-t használnak).

A Középső

A DEF CON konferencián bemutatott segédprogram különféle protokollok elleni MITM támadások végrehajtására. Az alfa verzió támogatta a HTTP protokollt, és három nagyszerű bővítményt tartalmazott az arzenáljában:

  • plugin-beef.py – beilleszti a Böngésző Kihasználási Keretrendszert (BeEF) a helyi hálózatról érkező HTTP-kérésekbe;
  • plugin-metasploit.py – titkosítatlan (HTTP) kérésekbe injektál egy IFRAME-et, amely betölti a böngésző exploitjait a Metasploitból;
  • plugin-keylogger.py – JavaScript onKeyPress eseménykezelőt szúr be minden HTTPS-en keresztül küldött szövegmezőbe, így a böngésző karakterenként elküldi a felhasználó jelszavát a támadó szerverének, mielőtt a teljes űrlapot elküldené.

A Middler nemcsak automatikusan elemzi a hálózati forgalmat és talál benne cookie-kat, hanem önállóan is kéri azokat a klienstől, vagyis a folyamat maximálisan automatizált. A program garantálja az összes nem védett fiók begyűjtését a számítógépes hálózaton (vagy nyilvános hotspoton), amelyek forgalmához hozzáfér. A program megfelelő működéséhez a következő csomagokat kell telepíteni a rendszerre: Scapy, libpcap, readline, libdnet, python-netfilter. Sajnos az adattárat hosszú ideje nem frissítették, így Önnek kell új funkciókat hozzáadnia.

Konzolsegédprogram, amely lehetővé teszi a HTTP-forgalom interaktív vizsgálatát és módosítását. Az ilyen készségeknek köszönhetően a segédprogramot nem csak a penetrációs tesztelők / hackerek használják, hanem a hétköznapi fejlesztők is, akik például webes alkalmazások hibakeresésére használják. Segítségével részletes információkat kaphat arról, hogy az alkalmazás milyen kéréseket küld, és milyen válaszokat kap. Ezenkívül a mitmproxy segíthet megtanulni egyes REST API-k működését, különösen a rosszul dokumentáltakat.

A telepítés rendkívül egyszerű:

$ sudo aptitude install mitmproxy

$ pip mitmproxy telepítése

$ easy_install mitmproxy

Érdemes megjegyezni, hogy a mitmproxy lehetővé teszi a HTTPS-forgalom lehallgatását is azáltal, hogy önaláírt tanúsítványt ad ki az ügyfélnek. Jó példa található a forgalom elfogásának és módosításának beállítására.


Elfogó-NG

Furcsa lenne, ha ez a legendás hangszer nem szerepelne értékelésünkben. Még ha soha nem is használtad, valószínűleg hallottál róla (és csak jobban meg kell ismerned) – ez elég gyakori a magazin oldalain. Nem fogom teljesen leírni a funkcióját - először is érdekel minket a MITM, másodszor pedig egy ilyen leírás az egész cikket felöleli.

Továbbra is csak a tagok számára elérhető

1. lehetőség: Csatlakozzon a "webhely" közösséghez, hogy elolvassa az oldalon található összes anyagot

A meghatározott időszakban a közösséghez való tagság hozzáférést biztosít az ÖSSZES Hacker anyaghoz, növeli a személyes kumulatív kedvezményt, és lehetővé teszi, hogy professzionális Xakep Score értékelést gyűjtsön!

Szinte mindig többféleképpen is elérheti a kívánt eredményt. Ez vonatkozik az információbiztonság területére is. Néha a cél elérése érdekében brutálisan kereshet, önállóan kereshet lyukakat és szagokat fejleszthet, vagy meghallgathatja a hálózaton keresztül továbbított tartalmat. Az utóbbi lehetőség gyakran a legjobb. Éppen ezért ma olyan eszközökről fogunk beszélni, amelyek segítenek számunkra értékes információkat fogni a hálózati forgalomból, ehhez MITM támadásokat használva.

MITMf

Kezdjük az egyik érdekesebb jelölttel. Ez egy teljes keret a középső támadásokhoz, a sergio-proxyra épülve. Nemrég bekerült a Kali Linuxba. A telepítéshez csak klónozza a tárolót, és futtassa néhány parancsot:

# setup.sh # pip install -r követelmények.txt

# pip install -r követelmények.txt

Beépülő modulokkal bővíthető architektúrája van. A főbbek közé tartoznak a következők:

  • Spoof - lehetővé teszi a forgalom átirányítását ARP / DHCP hamisítással, ICMP átirányításokkal és DNS-lekérdezések módosításával;
  • Sniffer – ez a bővítmény figyeli a különböző protokollok bejelentkezési kísérleteit;
  • BeEFAutorun - lehetővé teszi a BeEF modulok automatikus futtatását az operációs rendszer és a kliens böngésző típusa alapján;
  • AppCachePoison - gyorsítótár-mérgezési támadást hajt végre;
  • SessionHijacking – eltéríti a munkameneteket, és elmenti a fogadott sütiket a firelis profilba;
  • BrowserProfiler - megpróbálja lekérni a böngésző által használt bővítmények listáját;
  • FilePwn - lehetővé teszi a HTTP-n keresztül küldött fájlok cseréjét a Backdoor Factory és a BDFProxy használatával;
  • Inject – tetszőleges tartalmat szúr be egy HTML oldalba;
  • jskeylogger – JavaScript keyloggert szúr be az ügyféloldalakba.

Ha ez a funkció nem elegendő az Ön számára, akkor a megfelelő kiterjesztéssel bármikor hozzáadhatja a sajátját.

putty rider

Egy másik figyelemre méltó segédprogram. Igaz, az összes többi manapság figyelembe vett eszközzel ellentétben ez nagyon szűken specializálódott. Amint a projekt szerzője maga mondja, egy ilyen segédprogram létrehozásához az inspirálta, hogy a penetrációs tesztek során a legfontosabb adatok a Linux / UNIX szervereken találhatók, amelyekhez az adminisztrátorok SSH / Telnet / rlogin segítségével csatlakoztak. És a legtöbb esetben a rendszergazdák gépéhez való hozzáférés sokkal könnyebb volt, mint a célszerver elérése. Miután behatoltak a rendszergazda gépébe, nem kell mást tenni, mint megbizonyosodni arról, hogy a PuTTY fut, és ezzel az eszközzel visszafelé hidat építeni a támadó felé.

A segédprogram nem csak az adminisztrátor és a távoli szerver közötti "kommunikáció" (beleértve a jelszavakat) szimatolását teszi lehetővé, hanem tetszőleges shell-parancsok végrehajtását is egy adott munkameneten belül. És mindez a felhasználó (adminisztrátor) számára abszolút átláthatóan fog megtörténni. Ha érdeklik a technikai részletek, például, hogyan valósul meg a PuTTY folyamat megvalósítása, ajánlom figyelmébe a szerző előadását.

Egy meglehetősen régi segédprogram, amely több mint nyolc éve született. Úgy tervezték, hogy a munkameneteket cookie-k ellopásával klónozza. A munkamenet-eltérítéshez alapvető készségekkel rendelkezik a gazdagépek észlelésében (nyitott vezeték nélküli hálózathoz vagy hubhoz való csatlakozás esetén) és az ARP-mérgezés végrehajtásában. A probléma csak az, hogy ma, ellentétben a nyolc évvel ezelőttivel, szinte minden nagyvállalat, mint a Yahoo vagy a Facebook, használ SSL titkosítást, ami teljesen használhatatlanná teszi ezt az eszközt. Ennek ellenére még mindig van elég olyan erőforrás a weben, amely nem használ SSL-t, így még korai lenne leírni a segédprogramot. Előnyei közé tartozik, hogy automatikusan integrálódik a Firefoxba, és külön profilt hoz létre minden elfogott munkamenethez. A forráskód elérhető a tárolóban, és saját maga is elkészítheti a következő parancsok segítségével:

# 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 üléstolvaj

# 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

Proxy Fuzz

A ProzyFuzznak semmi köze közvetlenül a MITM támadásokhoz. Ahogy a névből is sejthető, az eszközt fuzzingra tervezték. Ez egy pythonban megvalósított kis, nem determinisztikus hálózati fuzzer, amely véletlenszerűen változtatja meg a hálózati forgalmi csomagok tartalmát. Támogatja a TCP és UDP protokollokat. Konfigurálható úgy, hogy csak az egyik oldalon fuzz. Hasznos, ha gyorsan kell tesztelnie néhány hálózati alkalmazást (vagy protokollt), és ki kell fejlesztenie egy PoC-t. Használati példa:

Python proxyfuzz -l -r -o

python proxyfuzz -l -r -o

Az opciók listája a következőket tartalmazza:

  • w - beállítja a fuzzing megkezdése előtt elküldött kérések számát;
  • c - csak az ügyfelet fuzzolja meg (egyébként mindkét oldalt);
  • s - csak a szerver fuzz-ja (egyébként mindkét oldal);
  • u - UDP protokoll (egyébként TCP-t használnak).

A Középső

A DEF CON konferencián bemutatott segédprogram különféle protokollok elleni MITM támadások végrehajtására. Az alfa verzió támogatta a HTTP protokollt, és három nagyszerű bővítményt tartalmazott az arzenáljában:

  • plugin-beef.py – beilleszti a Böngésző Kihasználási Keretrendszert (BeEF) a helyi hálózatról érkező HTTP-kérésekbe;
  • plugin-metasploit.py – titkosítatlan (HTTP) kérésekbe injektál egy IFRAME-et, amely betölti a böngésző exploitjait a Metasploitból;
  • plugin-keylogger.py – JavaScript onKeyPress eseménykezelőt szúr be minden HTTPS-en keresztül küldött szövegmezőbe, így a böngésző karakterenként elküldi a felhasználó jelszavát a támadó szerverének, mielőtt a teljes űrlapot elküldené.

A Middler nemcsak automatikusan elemzi a hálózati forgalmat és talál benne cookie-kat, hanem önállóan is kéri azokat a klienstől, vagyis a folyamat maximálisan automatizált. A program garantálja az összes nem védett fiók begyűjtését a számítógépes hálózaton (vagy nyilvános hotspoton), amelyek forgalmához hozzáfér. A program megfelelő működéséhez a következő csomagokat kell telepíteni a rendszerre: Scapy, libpcap, readline, libdnet, python-netfilter. Sajnos az adattárat hosszú ideje nem frissítették, így Önnek kell új funkciókat hozzáadnia.

Konzolsegédprogram, amely lehetővé teszi a HTTP-forgalom interaktív vizsgálatát és módosítását. Az ilyen készségeknek köszönhetően a segédprogramot nem csak a penetrációs tesztelők / hackerek használják, hanem a hétköznapi fejlesztők is, akik például webes alkalmazások hibakeresésére használják. Segítségével részletes információkat kaphat arról, hogy az alkalmazás milyen kéréseket küld, és milyen válaszokat kap. Ezenkívül a mitmproxy segíthet megtanulni egyes REST API-k működését, különösen a rosszul dokumentáltakat.

A telepítés rendkívül egyszerű:

$ sudo aptitude install mitmproxy

Érdemes megjegyezni, hogy a mitmproxy lehetővé teszi a HTTPS-forgalom lehallgatását is azáltal, hogy önaláírt tanúsítványt ad ki az ügyfélnek. Jó példa található a forgalom elfogásának és módosításának beállítására.

Dsniff

Nos, ez a segédprogram általában az egyik első dolog, ami eszébe jut, amint meghallja
"MITM támadás". Az eszköz meglehetősen régi, de továbbra is aktívan frissítik, ami jó hír. Nincs értelme részletesen beszélni képességeiről, fennállásának tizennégy éve alatt nem egyszer került rá a hálózat. Például egy ilyen útmutatóban:

vagy utasításokat a weboldalunkról:

Végül..

Szokás szerint nem az összes segédprogramot vettük figyelembe, csak a legnépszerűbbeket, sok kevéssé ismert projekt van még, amelyekről talán egyszer beszélhetünk. Mint látható, a MITM támadások végrehajtására szolgáló eszközökből nincs hiány, és ami nem olyan gyakran fordul elő, az egyik menő eszköz Windows alatt valósul meg. Nincs mit mondanunk a nix rendszerekről – egész sokféleség. Szóval azt hiszem, mindig megtalálja a megfelelő gépeltérítő eszközt.
valaki más hitelesítő adatait. Hoppá, mármint tesztelési céllal.

A TCP munkamenet indításának folyamata, amely három lépésből áll. A kliens SYN jelzővel ellátott csomagot küld a szervernek. Miután megkapta a SYN jelzővel ellátott csomagot a klienstől, a szerver válaszul egy SYN+ACK jelzővel ellátott csomagot küld, és átvált az ESTABLISHED állapotba. Miután megkapta a megfelelő választ a kiszolgálótól, a kliens egy ACK jelzővel ellátott csomagot küld, és ESTABLISHED állapotba kerül.

Tiltási lista

Azon ügyfelek listája, akiknek nincs joguk bizonyos műveletekhez. A tiltólista segítségével általában korlátozottak a botok képességei, ha DDoS támadást észlelnek. A játékszerverek valóságában ezen a listán olyan játékosok is szerepelnek, akik rossz hírnévvel rendelkeznek, csaló kódokat használnak vagy illegális akciókat követnek el.

Bot

A számítógép "valódi" forgalommal DDoS támadást hajtott végre. A legtöbb esetben ez egy közönséges felhasználó vírussal fertőzött számítógépe. A felhasználó gyakran nem veszi észre, hogy számítógépe fertőzött, és illegális célokra használják.

web szerver

Egy hálózaton lévő számítógép, amely fogadja a HTTP-kéréseket az ügyfelektől, általában webböngészőktől, és HTTP-válaszokat biztosít számukra. A webszerver általában a HTTP-válasz mellett egy HTML-oldallal, képpel, médiafolyammal vagy egyéb adatokkal válaszol.

webes szolgáltatás

A webszolgáltatások az interneten nyújtott szolgáltatások. Ha ezt a kifejezést használjuk, akkor ez a keresésre, webes levelezésre, dokumentumok, fájlok, könyvjelzők tárolására stb. vonatkozhat. Általában a webszolgáltatások a számítógéptől, a böngészőtől vagy az internet-hozzáférés helyétől függetlenül használhatók.

Tartomány

A "Domain" fogalma különböző kontextusokban használható a hálózati technológiák terén. A domain alatt leggyakrabban a webhely domain nevét jelentik. A domainek különböző szintekre vannak osztva, például az example.com-ban a com az első szintű tartomány, a példa pedig a második szintű tartomány. A kommunikáció megkönnyítése érdekében az emberek az "aldomain" kifejezést olyan tartományra is használják, amely két szintnél nagyobb. Például a mail.example.com tartományban a levelezés egy aldomain.

Keresőrobot

Keresőszolgáltatás új oldalak felfedezéséhez az interneten és a meglévők megváltoztatásához. A működési elve hasonló a böngészőhöz. Az oldal tartalmát elemzi, valamilyen speciális formában tárolja a hozzá tartozó kereső szerverén, és elküldi a következő oldalakra mutató hivatkozásokra.

Sávszélesség

Az egységnyi idő alatt továbbított adatok maximális lehetséges mennyisége. Gyakran az internetszolgáltatók, akik nagy sebességű internet-hozzáférést ígérnek, nem teljesítik ígéreteiket. A legtöbb esetben ez a teljes sávszélesség-használatnak köszönhető.

Ebben a cikkben megpróbáljuk kitalálni az ember a középső támadások elméletét, és néhány gyakorlati pontot, amelyek segítenek megelőzni az ilyen típusú támadásokat. Ez segít megértenünk, milyen kockázatot jelentenek az ilyen jellegű behatolások a magánéletünkre nézve, mivel a MitM támadások lehetővé teszik számunkra, hogy beavatkozzunk a kommunikációba és meghallgassuk beszélgetéseinket.

Az internet működésének megértése

A középső támadás megértéséhez először meg kell értenie magának az internetnek a működését. A fő interakciós pontok: kliensek, útválasztók, szerverek. A kliens és a szerver közötti leggyakoribb kommunikációs protokoll a HTTP (Hypertext Transfer Protocol) protokoll. Internetezés böngészővel, e-mailezés, azonnali üzenetküldés – mindez HTTP-n keresztül történik.

Amikor beírja a böngésző címsorába, az ügyfél (Ön) kérést küld a szervernek egy weboldal megjelenítésére. A csomag (HTTP GET kérés) több útválasztón keresztül kerül elküldésre a szervernek. A szerver ezután egy weblappal válaszol, amelyet elküld a kliensnek, és megjelenik a monitorján. A HTTP-üzeneteket biztonságos módban kell továbbítani a titkosság és az anonimitás biztosítása érdekében.

1. ábra Kliens-szerver interakció

A kommunikációs protokoll biztonsága

A biztonságos kommunikációs protokollnak rendelkeznie kell a következő tulajdonságok mindegyikével:

  1. magánélet- Csak a címzett olvashatja el az üzenetet.
  2. Hitelesség- a kölcsönhatásban részt vevő felek azonossága bizonyítva.
  3. Sértetlenség- annak megerősítése, hogy az üzenet nem módosult továbbítás közben.

Ha ezek közül a szabályok közül legalább egyet nem követnek, az egész protokoll sérül.

Man-in-the-middle támadás HTTP protokollon keresztül

A támadó könnyen végrehajthat egy ember a közepén támadást az ARP hamisításnak nevezett technikával. A Wi-Fi hálózaton bárki küldhet hamis ARP-csomagot, aminek következtében Ön tudtán kívül az összes forgalmat egy támadón keresztül küldi útválasztó helyett.

Ezt követően a támadó teljes mértékben átveszi az irányítást a forgalom felett, és figyelheti a mindkét irányba küldött kéréseket.

2. ábra: Man-in-the-middle támadási séma


Az ilyen támadások megelőzése érdekében létrehozták a HTTP protokoll biztonságos verzióját. A Transport Layer Security (TLS) és elődje, a Secure Socket Layer (SSL) olyan kriptográfiai protokollok, amelyek biztonságos kommunikációt biztosítanak a hálózaton keresztül. Ezért a biztonságos protokoll neve HTTPS lesz. A biztonságos protokoll működését megtekintheti, ha beírja a böngésző címsorába (figyelje meg az S betűt a https-ben).

Man-in-the-middle támadás a rosszul megvalósított SSL ellen

A modern SSL jó titkosítási algoritmust használ, de nem számít, ha nincs megfelelően implementálva. Ha egy hacker el tudja hárítani a kérést, megváltoztathatja azt az "S" betű eltávolításával a kért URL-ből, ezáltal megkerülve az SSL-t.

Észrevehető a kérés ilyen elfogása és módosítása. Ha például a https://login.yahoo.com/ címet kéri, és a válasz a http://login.yahoo.com/ , ez gyanút kelthet. A cikk írásakor egy ilyen támadás valójában a Yahoo e-mail szolgáltatáson működik.

3. ábra Kérelem elfogása és módosítása


Az ilyen támadások megelőzése érdekében a szerverek bevezethetik a HTTP Strict Transport Security (HSTS) rendszert, amely a HTTPS protokollon keresztül kényszerített biztonságos kapcsolatot kényszerít ki. Ebben az esetben, ha egy támadó úgy módosítja a kérést, hogy eltávolítja az „S” betűt az URL-ből, a szerver továbbra is 302-es átirányítással átirányítja a felhasználót egy biztonságos protokollt használó oldalra.

4. ábra HSTS működési séma


Az SSL megvalósításának ez a módja ki van téve egy másik típusú támadásnak – a támadó SSL-kapcsolatot hoz létre a szerverrel, de ráveszi a felhasználót a HTTP használatára.

5. ábra: HSTS támadási séma


Az ilyen támadások megelőzése érdekében a modern böngészők, például a Chrome, a Firefox és a Tor figyelik a HSTS-t használó webhelyeket, és ügyféloldali SSL-kapcsolatot kényszerítenek ki velük. Ebben az esetben egy ember a középső támadást végrehajtó támadónak SSL-kapcsolatot kell létrehoznia az áldozattal.

6. ábra: A támadás sémája, ahol a támadó SSL kapcsolatot létesít az áldozattal


Az SLL-kapcsolat biztosításához a támadónak tudnia kell, hogyan viselkedjen szerverként. Ismerjük meg az SSL technikai vonatkozásait.

Az SSL megértése

A hackerek szemszögéből bármilyen kommunikációs protokoll kompromittálása a fent felsorolt ​​összetevők (adatvédelem, hitelesség és integritás) közötti gyenge láncszem megtalálásához vezet.

Az SSL aszimmetrikus titkosítási algoritmust használ. A szimmetrikus titkosításnál az a probléma, hogy ugyanazt a kulcsot használják az adatok titkosításához és visszafejtéséhez, ez a megközelítés nem fogadható el az internetes protokolloknál, mivel a támadó ezt a kulcsot tudja nyomon követni.

Az aszimmetrikus titkosítás viszont mindkét oldalon 2 kulcsot tartalmaz: a titkosításhoz használt nyilvános kulcsot és az adatok visszafejtéséhez használt privát kulcsot.

7. ábra: Nyilvános és privát kulcsok működése

Hogyan biztosítja az SSL a biztonságos kommunikációhoz szükséges három tulajdonságot?

  1. Mivel aszimmetrikus titkosítást használnak az adatok titkosításához, az SSL privát kapcsolatot biztosít. Ezt a titkosítást nem olyan könnyű feltörni és észrevétlen maradni.
  2. A szerver azzal bizonyítja legitimitását, hogy elküldi a kliensnek egy tanúsító hatóság, megbízható harmadik fél által kiadott SSL-tanúsítványt.

Ha egy támadónak valahogy sikerül megszereznie a tanúsítványt, megteremtheti a feltételeket egy ember a közepén támadáshoz. Így 2 kapcsolatot hoz létre - a szerverrel és az áldozattal. A szerver ebben az esetben úgy gondolja, hogy a támadó egy normál kliens, és az áldozatnak nincs módja azonosítani a támadót, mivel tanúsítványt adott, amely igazolja, hogy szerver.

Az Ön üzenetei titkosított formában jutnak el és érkeznek meg, de a láncon keresztül a kiberbűnöző számítógépén haladnak át, ahol teljes ellenőrzést gyakorol.

8. ábra: A támadás sémája, ha a támadó rendelkezik tanúsítvánnyal


A tanúsítványt nem kell hamisítani, ha a támadó képes feltörni az áldozat böngészőjét. Ebben az esetben beszúrhat egy önaláírt tanúsítványt, amely alapértelmezés szerint megbízható lesz. Így valósul meg a legtöbb ember a közepén támadás. Bonyolultabb esetekben a hackernek más utat kell választania - hamisítania kell a tanúsítványt.

A tanúsító hatóságok problémái

A szerver által küldött tanúsítványt egy tanúsító hatóság állítja ki és írja alá. Minden böngészőben megtalálható a megbízható hitelesítésszolgáltatók listája, és ezeket hozzáadhatja vagy eltávolíthatja. A probléma itt az, hogy ha úgy dönt, hogy eltávolítja a nagy jogosultságokat, akkor nem fogja tudni felkeresni azokat a webhelyeket, amelyek ezen hatóságok által aláírt tanúsítványokat használják.

A tanúsítványok és a CA-k mindig is a leggyengébb láncszemek voltak a HTTPS-kapcsolatban. Még akkor is, ha mindent helyesen hajtottak végre, és minden tanúsító hatóság szilárd jogosultsággal rendelkezik, akkor is nehéz megbékélni azzal a ténnyel, hogy sok harmadik félben kell megbíznia.

Ma több mint 650 szervezet képes tanúsítványok kiállítására. Ha egy támadó feltöri bármelyiket, megkapja a kívánt tanúsítványokat.

Még akkor is, amikor csak egy hitelesítési hatóság, a VeriSign volt, volt egy probléma – azok az emberek, akiknek meg kellett volna akadályozniuk a köztes támadásokat, lehallgatási szolgáltatásokat árultak.

Ezenkívül sok tanúsítványt a tanúsító hatóságok feltörése hozott létre. Különféle technikákat és trükköket alkalmaztak arra, hogy a megtámadott felhasználót arra kényszerítsék, hogy bízzon a csaló tanúsítványokban.

Kriminalistika

Mivel a támadó hamis ARP-csomagokat küld, Ön nem láthatja az IP-címét. Ehelyett figyelni kell a MAC-címre, amely a hálózat minden eszközére jellemző. Ha ismeri az útválasztó MAC-címét, összehasonlíthatja azt az alapértelmezett átjáró MAC-címével, hogy megtudja, valóban az útválasztóról van-e szó, vagy behatolóról van-e szó.

Például Windows rendszeren használhatja az ipconfig parancsot a parancssorban (CMD) az alapértelmezett átjáró IP-címének megtekintéséhez (utolsó sor):

9. ábra Az ipconfig parancs használata


Ezután az arp -a paranccsal megtudhatja ennek az átjárónak a MAC-címét:

10. ábra. Az arp –a parancs használata


De van egy másik módja is a támadás észlelésének – ha figyeli a hálózati tevékenységet annak indulásakor, és figyeli az ARP-csomagokat. Például erre a célra használhatja a Wiresharkot, ez a program értesít, ha az alapértelmezett átjáró MAC címe megváltozott.

Megjegyzés: Ha egy támadó helyesen hamisítja meg a MAC-címeket, nagy probléma lesz a felkutatása.

Következtetés

Az SSL egy olyan protokoll, amely sok munkára kényszeríti a támadót a támadás végrehajtása érdekében. De nem véd meg a kormány által szponzorált támadásoktól vagy a minősített hackerszervezetektől.

A felhasználó feladata a böngésző és a számítógép védelme annak érdekében, hogy megakadályozza a hamis tanúsítvány beszúrását (nagyon elterjedt technika). Ügyeljen a megbízható tanúsítványok listájára is, és távolítsa el azokat, amelyekben nem bízik.