Šta je čovek u sredini. Otkrivanje napada čovjeka u sredini (MitM napadi)

15.05.2022

Čovjek u srednjem napadu (MitM napad) je termin u kriptografiji koji se odnosi na situaciju u kojoj napadač može po želji čitati i mijenjati poruke koje se razmjenjuju između dopisnika, a niko od potonjih ne može pogoditi njegov identitet na kanalu .

Metoda kompromitovanja komunikacijskog kanala, u kojoj napadač, nakon povezivanja na kanal između stranaka, aktivno ometa protokol prijenosa, briše, iskrivljuje informacije ili nameće lažne informacije.

Princip napada:

Pretpostavimo da objekat "A" planira prenijeti neke informacije objektu "B". Objekat "C" ima znanja o strukturi i svojstvima korišćenog metoda prenosa podataka, kao i o činjenici planiranog prenosa stvarnih informacija koje "C" planira da presretne.

Da bi izvršio napad, "C" izgleda kao objekt "A" kao "B", a objekt "B" kao "A". Objekt "A", pogrešno vjerujući da šalje informaciju "B", šalje je objektu "C".

Objekt "C", nakon što je primio informaciju i izvršio neke radnje s njom (na primjer, kopirao ili modificirao je za svoje potrebe), šalje podatke samom primaocu - "B"; objekat "B", zauzvrat, smatra da je informacija dobijena direktno od "A".

Primjer MitM napada:

Recimo da Alice ima finansijskih problema i, koristeći program za razmenu trenutnih poruka, odluči da zatraži od Džona sumu novca slanjem poruke:
Alice: John, zdravo!
Alice: Molim vas, pošaljite mi ključ za šifriranje, imam mali zahtjev!
John: Zdravo! Čekaj malo!

Ali, u to vrijeme, gospodin X, koji je analizirajući promet pomoću njuškala, primijetio je ovu poruku, a riječi "ključ za šifriranje" izazvale su radoznalost. Zato je odlučio presresti sljedeće poruke i zamijeniti ih podacima koji su mu bili potrebni, a kada je dobio sljedeću poruku:
John: Evo mog ključa: 1111_D

Promenio je Džonov ključ u svoj i poslao poruku Alisi:
John: Evo mog ključa: 6666_M

Alice, nesvjesna i misli da je to Johnov ključ, koristeći privatni ključ 6666_M, šalje šifrovane poruke Johnu:
Alice: Johne, imam problema i hitno mi treba novac, molim te prebaci $300 na moj račun: Z12345. Hvala. p.s. Moj ključ: 2222_A

Nakon što je primio poruku, gospodin X je dešifruje pomoću svog ključa, čita je i, radujući se, menja Alisin broj računa i ključ za šifrovanje u svoje, šifruje poruku ključem 1111_D, i šalje Johnu poruku:
Alice: Johne, imam problema i hitno mi treba novac, molim te prebaci $300 na moj račun: Z67890. Hvala. p.s. Moj ključ: 6666_A

Nakon što primi poruku, John je dešifruje pomoću ključa 1111_D, i bez oklijevanja će prebaciti novac na račun Z67890...

I tako je gospodin X, koristeći napad čovjeka u sredini, zaradio 300 dolara, ali Alice će sada morati da objašnjava da nije primila novac... A John? Džon mora da dokaže Alis da ih je poslao...

Implementacija:

Ova vrsta napada se koristi kod nekih softverskih proizvoda za slušanje mreže, na primjer:
NetStumbler- program sa kojim možete prikupiti mnogo korisnih podataka o bežičnu mrežu i riješiti neke probleme povezane s njegovim radom. NetStumbler vam omogućava da odredite domet vaše mreže i pomaže vam da precizno usmjerite svoju antenu za komunikaciju na daljinu. Za svaku pronađenu pristupnu tačku možete saznati MAC adresu, odnos signal-šum, naziv usluge i stepen njene sigurnosti. Ako promet nije šifriran, tada će biti korisna sposobnost programa da otkrije neovlaštene veze.

dsniff- je skup programa za reviziju mreže i testiranje penetracije, koji omogućava pasivno praćenje mreže za traženje podataka od interesa (lozinke, adrese email, datoteke, itd.), presretanje mrežnog saobraćaja koji bi inače bio nepristupačan za analizu (na primjer, u komutiranoj mreži), kao i mogućnost organiziranja MITM napada za presretanje SSH i HTTPS sesija iskorištavanjem PKI nedostataka.

Cain & Abel - besplatni program, koji vam omogućava da povratite izgubljene lozinke za operativni sistemi Windows porodica. Podržano je nekoliko načina oporavka: brute force hakovanje, odabir rječnika, pregled lozinki skrivenih zvjezdicama itd. Postoje i opcije za identifikaciju lozinke presretanjem informacijskih paketa i njihovom naknadnom analizom, snimanjem mrežnih razgovora, analizom keš memorije i drugim.

Ettercap- je njuškalo, presretač paketa i snimač za lokalne Ethernet mreže, koji podržava aktivnu i pasivnu analizu više protokola, a moguće je i "baciti" vlastite podatke u postojeću vezu i filtrirati "u hodu" bez prekida veze sinhronizacija. Program vam omogućava da presretnete SSH1, HTTPS i druge sigurne protokole i pruža mogućnost dešifriranja lozinki za sljedeće protokole: TELNET, ftp, POP, RLOGIN, SSH1, icq, SMB, Mysql, HTTP, NNTP, X11, NAPSTER, IRC , RIP, BGP, SOCKS 5, IMAP 4, VNC, LDAP, NFS, SNMP, HALF LIFE, QUAKE 3, MSN, YMSG.

KARMA– skup uslužnih programa za procjenu sigurnosti bežičnih klijenata, je bežični sniffer koji, pasivnim slušanjem okvira 802.11 Probe Request, omogućava da otkrijete klijente i njihove preferirane/pouzdane mreže. Lažna pristupna tačka se tada može kreirati za jednu od traženih mreža, na koju se može automatski povezati. Lažne usluge visokog nivoa mogu se koristiti za krađu ličnih podataka ili iskorištavanje ranjivosti klijenta na hostu.

AirJack- skup programa koji, prema mišljenju stručnjaka iz oblasti WiFi hakovanja, jeste najbolji alat za generiranje različitih 802.11 okvira. AirJack uključuje brojne uslužne programe dizajnirane za otkrivanje skrivenih ESSID-ova, slanje okvira za završetak sesije s lažnim MAC-om, izvođenje MitM napada i njegovo modificiranje.

Protivljenje:

Da bi izbjegli napade ovog tipa, pretplatnici "A" i "B" trebaju samo međusobno prenositi putem pouzdanog kanala digitalni potpisi javni ključevi za šifriranje. Zatim, kada se porede potpisi ključeva u sesijama šifrovanja, biće moguće utvrditi koji ključ je korišten za šifrovanje podataka i da li su ključevi zamenjeni.

Gotovo uvijek postoji nekoliko načina da se postigne željeni rezultat. Ovo se takođe odnosi i na oblast informacione bezbednosti. Ponekad, da biste postigli cilj, možete koristiti grubu silu, tražiti rupe i sami razvijati eksploatacije ili slušati šta se prenosi preko mreže. Štaviše zadnja opcija je često optimalna. Zato ćemo danas govoriti o alatima koji će nam pomoći da uhvatimo informacije koje su nam vrijedne iz mrežnog prometa, koristeći za to MITM napade.

MITMf

Počnimo s jednim od najzanimljivijih kandidata. Ovo je čitav okvir za dirigovanje napadi čovjeka u sredini, izgrađen na vrhu sergio-proxy. Nedavno uključeno u Kali Linux. Da ga sami instalirate, samo klonirajte spremište i pokrenite nekoliko naredbi:

# setup.sh # pip install -r requirements.txt

# pip install -r zahtjevi.txt

Ima arhitekturu koja je proširiva preko dodataka. Među glavnima su sljedeće:

  • Spoof - omogućava vam da preusmjerite promet koristeći ARP/DHCP lažiranje, ICMP preusmjerava i modificira DNS upite;
  • Sniffer - ovaj dodatak prati pokušaje prijave za različite protokole;
  • BeEFAutorun - omogućava vam da automatski pokrenete BeEF module na osnovu tipa OS-a i klijentskog pretraživača;
  • AppCachePoison - izvodi napad trovanja keša;
  • SessionHijacking - otima sesije i pohranjuje rezultirajuće kolačiće u Firefly profil;
  • BrowserProfiler - pokušava da dobije listu dodataka koje koristi pretraživač;
  • FilePwn - omogućava vam zamjenu datoteka poslanih putem HTTP-a koristeći Backdoor Factory i BDFProxy;
  • Ubaci - ubacuje proizvoljan sadržaj u HTML stranicu;
  • jskeylogger - ugrađuje JavaScript keylogger u klijentske stranice.

Ako vam se ova funkcionalnost čini nedovoljnom, uvijek možete dodati vlastitu implementacijom odgovarajuće ekstenzije.

PuttyRider

Još jedan uslužni program vrijedan pažnje. Istina, za razliku od svih drugih alata koji se danas razmatraju, vrlo je usko specijalizovan. Kako sam autor projekta kaže, na kreiranje ovakvog uslužnog programa inspirisala ga je činjenica da su se tokom testova penetracije najvažniji podaci nalazili na Linux/UNIX serverima na koje su se administratori povezivali preko SSH/Telnet/rlogin-a. Štaviše, u većini slučajeva bilo je mnogo lakše dobiti pristup administratorskoj mašini nego ciljnom serveru. Nakon prodora u mašinu administratora sistema, ostaje samo da se uverimo da je PuTTY pokrenut i da, koristeći ovaj alat, izgradimo zadnji most ka napadaču.

Uslužni program vam omogućava ne samo snimanje "komunikacije" između administratora i udaljeni server(uključujući lozinke), ali i izvršavanje proizvoljnih komandi ljuske unutar date sesije. Štaviše, sve će se to dogoditi apsolutno transparentno za korisnika (administratora). Ako vas zanimaju tehnički detalji, na primjer, kako se PuTTY implementira u proces, preporučujem da pročitate prezentaciju autora.

Prilično staro uslužno sredstvo, rođeno prije više od osam godina. Namijenjeno za kloniranje sesija krađom kolačića. Za otmicu sesija, on ima osnovne vještine u otkrivanju hostova (ako je povezan na otvorenu bežičnu mrežu ili čvorište) i provođenja ARP trovanja. Jedini problem je što danas, za razliku od prije osam godina, gotovo sve velike kompanije poput Yahooa ili Facebooka koriste SSL enkripciju, što ovaj alat čini potpuno beskorisnim. Unatoč tome, na Internetu još uvijek ima dovoljno resursa koji ne koriste SSL, pa je prerano otpisivati ​​uslužni program. Njegove prednosti uključuju činjenicu da se automatski integrira u Firefox i kreira poseban profil za svaku presretnutu sesiju. Izvorni kod je dostupan u spremištu i možete ga sami napraviti koristeći sljedeći niz naredbi:

# 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=e sessionthief

# 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 nema nikakve veze direktno sa provođenjem MITM napada. Kao što možete pretpostaviti iz imena, alat je dizajniran za fuzzing. Ovo je mali nedeterministički mrežni fuzzer, implementiran u Python-u, koji nasumično mijenja sadržaj paketa mrežnog saobraćaja. Podržava TCP protokoli i UDP. Možete ga konfigurirati da fuzz samo jednu stranu. To je korisno kada trebate brzo testirati neku mrežnu aplikaciju (ili protokol) i razviti PoC. Primjer upotrebe:

Python proxyfuzz -l -r -p

python proxyfuzz -l -r -p

Lista opcija uključuje:

  • w - specificira broj zahtjeva poslatih prije početka fuzinga;
  • c - fuzz samo klijenta (inače obe strane);
  • s - fuzz samo server (inače obje strane);
  • u - UDP protokol (inače se koristi TCP).

The Middler

Uslužni program za izvođenje MITM napada na različite protokole predstavljen na DEF CON konferenciji. Alfa verzija podržava HTTP protokol i ima tri cool dodatka u svom arsenalu:

  • plugin-beef.py - ubacuje okvir za eksploataciju pretraživača (BeEF) u bilo koji HTTP zahtjev koji dolazi iz lokalne mreže;
  • plugin-metasploit.py - ugrađuje IFRAME u nešifrovane (HTTP) zahtjeve, što učitava eksploatacije pretraživača iz Metasploita;
  • plugin-keylogger.py - ugrađuje JavaScript onKeyPress obrađivač događaja za sva tekstualna polja koja će biti poslana preko HTTPS-a, uzrokujući da pretraživač pošalje lozinku koju je korisnik unio znak po znak serveru napadača prije nego što se cijeli obrazac pošalje.

Middler ne samo da automatski analizira mrežni promet i u njemu pronalazi kolačiće, ali ih i samostalno zahtijeva od klijenta, odnosno proces je maksimalno automatiziran. Program garantuje prikupljanje svih nezaštićenih naloga u računarsku mrežu(ili javna pristupna tačka) čijem saobraćaju ima pristup. Da bi program ispravno radio, na sistemu moraju biti instalirani sljedeći paketi: Scapy, libpcap, readline, libdnet, python-netfilter. Nažalost, spremište nije ažurirano već duže vrijeme, tako da ćete morati sami dodati novu funkcionalnost.

Uslužni program za konzolu koji vam omogućava da interaktivno ispitujete i modificirate HTTP promet. Zahvaljujući takvim vještinama, uslužni program koriste ne samo pentesteri/hakeri, već i obični programeri koji ga koriste, na primjer, za otklanjanje grešaka u web aplikacijama. Uz njegovu pomoć možete primati detaljne informacije o tome koje zahtjeve aplikacija postavlja i koje odgovore dobija. Takođe, mitmproxy može pomoći u proučavanju posebnosti funkcionisanja nekih REST API-ja, posebno onih koji su slabo dokumentovani.

Instalacija je izuzetno jednostavna:

$ sudo aptitude install mitmproxy

Vrijedi napomenuti da vam mitmproxy također omogućava presretanje HTTPS prometa izdavanjem samopotpisanog certifikata klijentu. Dobar primjer Možete naučiti kako konfigurirati presretanje i modificiranje prometa.

Dsniff

Pa, ovaj uslužni program je općenito jedna od prvih stvari koje bi vam trebale pasti na pamet čim čujete
"MITM napad". Alat je prilično star, ali nastavlja da se aktivno ažurira, što je dobra vijest. Nema smisla detaljnije govoriti o njegovim mogućnostima tokom četrnaest godina postojanja, više puta je obrađen na internetu. Na primjer, u ovakvom vodiču:

ili upute sa naše web stranice:

Na kraju..

Kao i obično, nismo pogledali sve uslužne programe, već samo one najpopularnije, postoje i mnogi malo poznati projekti o kojima bismo jednog dana mogli razgovarati. Kao što vidite, alata za izvođenje MITM napada ne nedostaje, a, što se ne dešava često, jedan od kul alata implementiran je za Windows. Nema se šta reći o nix sistemima – čitav niz. Tako da mislim da uvijek možete pronaći pravi alat za krađu
tuđe akreditive. Ups, odnosno za testiranje.

Princip napada

Napad obično počinje prisluškivanjem komunikacijskog kanala i završava tako što kriptoanalitičar pokušava zamijeniti presretnutu poruku i izdvojiti korisne informacije, preusmjerite ga na neki vanjski resurs.

Pretpostavimo da objekt A planira prenijeti neke informacije objektu B. Objekt C ima znanja o strukturi i svojstvima korištene metode prijenosa podataka, kao i o činjenici planiranog prijenosa stvarnih informacija koje C planira presresti. Da bi izvršio napad, C se „izgleda“ objektu A kao B, a objektu B kao A. Objekt A, pogrešno vjerujući da šalje informaciju B, šalje je objektu C. Objekt C, nakon što je primio informaciju, i obavlja neke radnje s njim (na primjer, kopiranje ili modificiranje u vlastite svrhe) prosljeđuje podatke samom primaocu - B; objekat B zauzvrat vjeruje da je informacija primljena direktno od A.

Primjer napada

Ubacivanje zlonamjernog koda

Napad čovjeka u sredini omogućava kriptoanalitičaru da ubaci svoj kod emails, SQL izraze i web stranice (odnosno, dozvoljava SQL injekcije, HTML/script injekcije ili XSS napade), pa čak i modificiraju korisničke binarne datoteke kako bi se pristupilo račun korisnika ili promijeniti ponašanje programa koji je korisnik preuzeo sa Interneta.

Downgrade Attack

Izraz “napad na smanjenje nivoa” odnosi se na napad u kojem kriptoanalitičar prisiljava korisnika da koristi manje sigurne funkcije, protokole koji su još uvijek podržani iz razloga kompatibilnosti. Ova vrsta napada može se izvesti na SSH, IPsec i PPTP protokole.

SSH V1 umjesto SSH V2

Napadač može pokušati promijeniti parametre veze između servera i klijenta kada se uspostavi veza između njih. Prema govoru održanom na Blackhat Conference Europe 2003, kriptoanalitičar može "natjerati" klijenta da započne SSH1 sesiju umjesto SSH2 promjenom broja verzije "1.99" za SSH sesiju u "1.51", što znači korištenje SSH V1 . SSH-1 protokol ima ranjivosti koje kriptoanalitičar može iskoristiti.

IPsec

U ovom scenariju napada, kriptoanalitičar dovodi svoju žrtvu u zabludu da misli da IPsec sesija ne može početi na drugom kraju (serveru). Ovo dovodi do toga da se poruke šalju eksplicitno ako host mašina radi u režimu vraćanja nazad.

PPTP

U fazi pregovaranja o parametrima PPTP sesije, napadač može natjerati žrtvu da koristi manje sigurnu PAP autentifikaciju, MSCHAP V1 (odnosno, „vrati se“ sa MSCHAP V2 na verziju 1) ili da uopće ne koristi enkripciju.

Napadač može natjerati svoju žrtvu da ponovi fazu pregovaranja o parametrima PPTP sesije (pošalje Terminate-Ack paket), ukrade lozinku iz postojećeg tunela i ponovi napad.

Hoće li šifriranje pomoći?

Razmotrimo slučaj standardne HTTP transakcije. U ovom slučaju, napadač može vrlo lako podijeliti originalnu TCP vezu na dvije nove: jednu između sebe i klijenta, drugu između sebe i servera. To je prilično lako učiniti, jer je veza između klijenta i servera vrlo rijetko direktna, a u većini slučajeva su povezani preko više posrednih servera. MITM napad se može izvesti na bilo kojem od ovih servera.

Međutim, ako klijent i server komuniciraju pomoću HTTPS-a, protokola koji podržava enkripciju, može se izvršiti i napad čovjek u sredini. Ova vrsta veze koristi TLS ili SSL za šifriranje zahtjeva, što bi činilo kanal zaštićenim od njuškanja i MITM napada. Napadač može kreirati dvije nezavisne SSL sesije za svaku TCP vezu. Klijent uspostavlja SSL vezu sa napadačem, koji zauzvrat stvara vezu sa serverom. U takvim slučajevima pretraživač obično upozorava da sertifikat nije potpisan od strane pouzdanog sertifikacionog tela, ali prosečan korisnik lako ignoriše ovo upozorenje. Osim toga, napadač može imati certifikat potpisan od strane certifikacijskog tijela. Stoga se HTTPS protokol ne može smatrati sigurnim od MITM napada.

MITM detekcija napada

Da biste otkrili napad čovjeka u sredini, morate analizirati mrežni promet. Na primjer, da biste otkrili SSL napad, obratite pažnju na sljedeće parametre:

  • IP adresa servera
  • DNS server
  • X.509 - certifikat servera
    • Da li je certifikat samopotpisan?
    • Da li je sertifikat potpisan?
    • Da li je certifikat opozvan?
    • Da li se certifikat nedavno promijenio?
    • Da li su drugi klijenti na Internetu dobili isti certifikat?

Implementacije MITM napada

Navedeni programi se mogu koristiti za izvođenje napada tipa čovjek u sredini, kao i za njihovo otkrivanje i testiranje sistema na ranjivosti.

Primjer u literaturi

Jasan književni primjer može se vidjeti u "Priči o caru Saltanu" A. S. Puškina, gdje se pojavljuju tri "ljudi u sredini": tkalja, kuharica i Babariha. Oni su ti koji zamjenjuju pisma upućena caru i njegovu odgovornu prepisku.

Vidi također

  • Aspidistra (engleski) - Britanski radio predajnik korišćen tokom Drugog svetskog rata "invazije", varijanta MITM napada.
  • Babingtonska zavjera (engleski) - zavjera protiv Elizabete I, tokom koje je Walsingham presreo prepisku.

Drugi napadi

  • “Čovjek u pretraživaču” je vrsta napada u kojoj napadač može trenutno promijeniti parametre transakcije i promijeniti stranice koje su potpuno transparentne za žrtvu.
  • Meet-in-the-middle napad je kriptografski napad koji, kao i rođendanski napad, iskorištava kompromis između vremena i pamćenja.
  • “Promašaj u srednjem napadu” - efikasan metod takozvana nemoguća diferencijalna kriptanaliza.
  • Relejni napad je varijanta MITM napada zasnovanog na prosljeđivanju presretnute poruke važećem primaocu, ali ne i onome kome je poruka namijenjena.
  • Rutkit je program dizajniran da sakrije tragove prisustva napadača.

Književnost

Linkovi


Wikimedia Foundation.

2010.

    Pogledajte šta je "Čovjek u sredini" u drugim rječnicima:

Gotovo uvijek postoji nekoliko načina da se postigne željeni rezultat. Ovo se takođe odnosi i na oblast bezbednosti informacija. Ponekad, da biste postigli cilj, možete koristiti grubu silu, tražiti rupe i sami razvijati eksploatacije ili slušati šta se prenosi preko mreže. Štoviše, posljednja opcija je često optimalna. Zato ćemo danas govoriti o alatima koji će nam pomoći da uhvatimo informacije koje su nam vrijedne iz mrežnog prometa, koristeći za to MITM napade.

MITMf

Počnimo s jednim od najzanimljivijih kandidata. Ovo je cijeli okvir za provođenje napada čovjek u sredini, izgrađen na bazi sergio-proxy. Nedavno uključen u Kali Linux. Da ga sami instalirate, samo klonirajte spremište i pokrenite nekoliko naredbi:

# setup.sh # pip install -r requirements.txt

Ima arhitekturu koja je proširiva preko dodataka. Među glavnima su sljedeće:

  • Spoof - omogućava vam da preusmjerite promet koristeći ARP/DHCP lažiranje, ICMP preusmjerava i modificira DNS upite;
  • Sniffer - ovaj dodatak prati pokušaje prijave za različite protokole;
  • BeEFAutorun - omogućava vam da automatski pokrenete BeEF module na osnovu tipa OS-a i klijentskog pretraživača;
  • AppCachePoison - izvodi napad trovanja keša;
  • SessionHijacking - otima sesije i pohranjuje rezultirajuće kolačiće u Firefly profil;
  • BrowserProfiler - pokušava da dobije listu dodataka koje koristi pretraživač;
  • FilePwn - omogućava vam zamjenu datoteka poslanih putem HTTP-a koristeći Backdoor Factory i BDFProxy;
  • Ubaci - ubacuje proizvoljan sadržaj u HTML stranicu;
  • jskeylogger - ugrađuje JavaScript keylogger u klijentske stranice.

Ako vam se ova funkcionalnost čini nedovoljnom, uvijek možete dodati vlastitu implementacijom odgovarajuće ekstenzije.

PuttyRider

Još jedan uslužni program vrijedan pažnje. Istina, za razliku od svih drugih alata koji se danas razmatraju, vrlo je usko specijalizovan. Kako sam autor projekta kaže, na kreiranje ovakvog uslužnog programa inspirisala ga je činjenica da su se tokom testova penetracije najvažniji podaci nalazili na Linux/UNIX serverima na koje su se administratori povezivali preko SSH/Telnet/rlogin-a. Štaviše, u većini slučajeva bilo je mnogo lakše dobiti pristup administratorskoj mašini nego ciljnom serveru. Nakon prodora u mašinu administratora sistema, ostaje samo da se uverimo da je PuTTY pokrenut i da, koristeći ovaj alat, izgradimo zadnji most ka napadaču.


Uslužni program vam omogućava ne samo da uhvatite „komunikaciju“ između administratora i udaljenog servera (uključujući lozinke), već i da izvršite proizvoljne naredbe ljuske unutar date sesije. Štaviše, sve će se to dogoditi apsolutno transparentno za korisnika (administratora). Ako vas zanimaju tehnički detalji, na primjer, kako se PuTTY implementira u proces, preporučujem da pročitate autorovu prezentaciju.


Prilično staro uslužno sredstvo, rođeno prije više od osam godina. Namijenjeno za kloniranje sesija krađom kolačića. Za otmicu sesija, on ima osnovne vještine u otkrivanju hostova (ako je povezan na otvorenu bežičnu mrežu ili čvorište) i provođenja ARP trovanja. Jedini problem je što danas, za razliku od prije osam godina, gotovo sve velike kompanije poput Yahooa ili Facebooka koriste SSL enkripciju, što ovaj alat čini potpuno beskorisnim. Unatoč tome, na Internetu još uvijek ima dovoljno resursa koji ne koriste SSL, pa je prerano otpisivati ​​uslužni program. Njegove prednosti uključuju činjenicu da se automatski integrira u Firefox i kreira poseban profil za svaku presretnutu sesiju. Izvorni kod je dostupan u spremištu, a možete ga sami napraviti koristeći sljedeći niz naredbi:

# 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=e sessionthief

ProxyFuzz

ProzyFuzz nema nikakve veze direktno sa provođenjem MITM napada. Kao što možete pretpostaviti iz imena, alat je dizajniran za fuzzing. Ovo je mali nedeterministički mrežni fuzzer, implementiran u Python-u, koji nasumično mijenja sadržaj paketa mrežnog saobraćaja. Podržava TCP i UDP protokole. Možete ga konfigurirati da fuzz samo jednu stranu. To je korisno kada trebate brzo testirati neku mrežnu aplikaciju (ili protokol) i razviti PoC. Primjer upotrebe:

Python proxyfuzz -l -r -p

Lista opcija uključuje:

  • w - specificira broj zahtjeva poslatih prije početka fuzinga;
  • c - fuzz samo klijenta (inače obe strane);
  • s - fuzz samo server (inače obje strane);
  • u - UDP protokol (inače se koristi TCP).

The Middler

Uslužni program za izvođenje MITM napada na različite protokole predstavljen na DEF CON konferenciji. Alfa verzija podržava HTTP protokol i ima tri cool dodatka u svom arsenalu:

  • plugin-beef.py - ubacuje okvir za eksploataciju pretraživača (BeEF) u bilo koji HTTP zahtjev koji dolazi iz lokalne mreže;
  • plugin-metasploit.py - ugrađuje IFRAME u nešifrovane (HTTP) zahtjeve, što učitava eksploatacije pretraživača iz Metasploita;
  • plugin-keylogger.py - ugrađuje JavaScript onKeyPress obrađivač događaja za sva tekstualna polja koja će biti poslana preko HTTPS-a, uzrokujući da pretraživač pošalje lozinku koju je korisnik unio znak po znak serveru napadača prije nego što se cijeli obrazac pošalje.

Middler ne samo da automatski analizira mrežni promet i pronalazi kolačiće u njemu, već ih i samostalno zahtijeva od klijenta, odnosno proces je maksimalno automatiziran. Program garantuje prikupljanje svih nezaštićenih naloga na računarskoj mreži (ili javnom hotspotu) čijem saobraćaju ima pristup. Da bi program ispravno radio, na sistemu moraju biti instalirani sljedeći paketi: Scapy, libpcap, readline, libdnet, python-netfilter. Nažalost, spremište nije ažurirano već duže vrijeme, tako da ćete morati sami dodati novu funkcionalnost.

Uslužni program za konzolu koji vam omogućava da interaktivno ispitujete i modificirate HTTP promet. Zahvaljujući takvim vještinama, uslužni program koriste ne samo pentesteri/hakeri, već i obični programeri koji ga koriste, na primjer, za otklanjanje grešaka u web aplikacijama. Uz njegovu pomoć možete dobiti detaljne informacije o tome koje zahtjeve aplikacija postavlja i koje odgovore dobiva. mitmproxy takođe može pomoći u proučavanju posebnosti funkcionisanja nekih REST API-ja, posebno onih koji su slabo dokumentovani.

Instalacija je izuzetno jednostavna:

$ sudo aptitude install mitmproxy

$ pip install mitmproxy

$easy_install mitmproxy

Vrijedi napomenuti da vam mitmproxy također omogućava presretanje HTTPS prometa izdavanjem samopotpisanog certifikata klijentu. Dobar primjer kako postaviti presretanje i modificiranje prometa možete pronaći ovdje.


Intercepter-NG

Bilo bi čudno da ovaj legendarni instrument nije uključen u našu recenziju. Čak i ako ga nikada niste koristili, vjerovatno ste čuli za njega (i jednostavno ga morate bolje upoznati) - pojavljuje se prilično često na stranicama časopisa. Neću u potpunosti opisivati ​​njegovu funkcionalnost - prvo, zanima nas MITM, a drugo, takav opis će zauzeti cijeli članak.

Nastavak je dostupan samo članovima

Opcija 1. Pridružite se zajednici "site" da pročitate sve materijale na stranici

Članstvo u zajednici u navedenom periodu će vam omogućiti pristup SVIM Hakerskim materijalima, povećati vaš lični kumulativni popust i omogućiti vam da sakupite profesionalnu ocjenu Xakep Score!

Napad čovjeka u sredini je generički naziv za različite tehnike koje imaju za cilj da dobiju pristup prometu kao posrednik. Zbog velike raznolikosti ovih tehnika, problematično je implementirati jedan alat za otkrivanje ovih napada koji bi funkcionirao u svim mogućim situacijama. Na primjer, u napadu čovjeka u sredini na lokalnu mrežu obično se koristi ARP lažiranje (trovanje). Mnogi alati za otkrivanje napada „čovjek u sredini“ prate promjene u parovima Ethernet adresa/ili prijavljuju sumnjivu ARP aktivnost pasivnim praćenjem ARP zahtjeva/odgovora. Ali ako se ovaj napad koristi na zlonamjerno konfigurisanom proxy serveru, VPN-u ili drugim opcijama koje ne koriste ARP trovanje, onda su takvi alati bespomoćni.

Svrha ovog odjeljka je da pregleda neke tehnike za otkrivanje napada čovjeka u sredini, kao i neke alate dizajnirane da utvrde da li ste na meti MitM napada. Zbog različitih metodologija i scenarija implementacije, 100% otkrivanje se ne može garantirati.

1. Detekcija modifikacije saobraćaja

Kao što je već spomenuto, napadi čovjeka u sredini ne koriste uvijek ARP lažiranje. Stoga, iako je detekcija aktivnosti na nivou ARP najpopularnija metoda detekcije, više na univerzalan način je detekcija modifikacije saobraćaja. U tome nam može pomoći program mitmcanary.

Princip rada programa je da postavlja "kontrolne" zahtjeve i pohranjuje primljene odgovore. Nakon toga ponavlja iste zahtjeve u određenim intervalima i upoređuje odgovore koje dobije. Program je prilično inteligentan i, kako bi izbjegao lažne pozitivne rezultate, identificira dinamičke elemente u odgovorima i pravilno ih obrađuje. Čim program otkrije tragove aktivnosti MitM alata za napad, to prijavljuje.

Primjeri kako neki alati mogu "naslijediti":

  • MITMf, prema zadanim postavkama, mijenja sve HTTPS URL-ove u HTML kodu u HTTP. Otkriveno poređenjem HTTP sadržaja.
  • Zarp + MITMProxy, MITMProxy ima funkcionalnost koja vam omogućava da obrišete HTTP kompresiju, ovo se koristi za transparentnost prenesenog saobraćaja, ova kombinacija se detektuje nestankom prethodno prisutne kompresije
  • Odgovornik, identifikovan naglim promenama u transformaciji mDNS odgovora: neočekivani odgovor; odgovor je interni, ali se očekuje eksterni; odgovor se razlikuje od očekivanog IP-a
  • 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 analiza zahtjeva simplejson datetime git clone https://github.com/CylanceSPEAR/mitmcanary.git cd mitmcanary/

Kao što je već spomenuto, mitmcanary treba početi raditi s kontrolnim upitima. Da biste to učinili, idite na imenik

CD servis/

I pokrenite datoteku setup_test_persistence.py:

Python2 setup_test_persistence.py

Ovo će potrajati – pričekajte da se završi. Ne bi trebalo biti poruka o grešci (ako je tako, onda vam nedostaju neke zavisnosti).

Izlaz će biti otprilike ovako:

Mial@HackWare:~/bin/mitmcanary/service$ python2 setup_test_persistence.py Otkrivena starija verzija konfiguracije (0 umjesto 14) Nadogradnja konfiguracije je u toku. Otpušten dnevnik čišćenja. Analiza... Čišćenje je završeno!

Snimi prijavu /home/mial/.kivy/logs/kivy_16-11-01_0.txt v1.9.1 v2.7.12+ (podrazumevano, 1. septembar 2016, 20:27:38)

Nakon što se ovaj proces završi, u istom direktoriju izvršite (ovo će pokrenuti pozadinski proces):

Python2 main.py

Nakon toga otvorite novi prozor terminala i idite na krajnji direktorij sa mitmcanary. Moj imenik je bin/mitmcanary/, pa ulazim

Cd bin/mitmcanary/

Nakon što se ovaj proces završi, u istom direktoriju izvršite (ovo će pokrenuti pozadinski proces):

i uradi tamo:

Prvi prozor prikazuje nešto poput: Mial@HackWare:~/bin/mitmcanary/service$ python2 main.py Zabilježite prijavu /home/mial/.kivy/logs/kivy_16-11-01_1.txt v1.9.1 v2.7.12+ (podrazumevano, 1. septembra 2016, 20:27:38) koristeći

za slušanje utičnice za Tuio na 127.0.0.1:3000 Spavanje 60 sekundi Spavanje 60 sekundi Spavanje 60 sekundi Spavanje 60 sekundi Spavanje 60 sekundi Spavanje 60 sekundi

One. Program šalje kontrolne zahtjeve jednom u minuti i traži znakove napada čovjeka u sredini.

Drugi prozor takođe sadrži izlaz + otvara se tamni prozor, koji autori programa nazivaju „grafički interfejs“:

Možete pričekati neko vrijeme i surfati Internetom kako biste bili sigurni da program ne izdaje lažna upozorenja. Hajde da probamo klasičan program

Pokrećem običan MitM napad sa ARP lažiranjem. mitmcanary ne reaguje na samo urezivanje. Alat mitmcanary sam generira promet, tj. nije potrebna nikakva radnja korisnika. Nakon nekog vremena pojavljuje se jedno jedino upozorenje, koje se ne potvrđuje pri narednim provjerama. Ali slično upozorenje se pojavljuje nakon nekoliko minuta. Bez daljnje analize, teško mi je reći da li je ovo primjer lažno pozitivnog - vrlo liči na to. Sasvim je moguće da je ovo upozorenje uzrokovano kvarom u komunikaciji zbog potrebe da promet prolazi dodatnim rutama ili zbog posebnosti moje nekvalitetne internetske veze.

Budući da rezultat nije očigledan (vjerovatnije "ne" nego "da"), hajde da isprobamo Bettercap program, koji ima niz modula. Ne sumnjam da kada koristite razne Ettercap i/ili dodatke dodatni programi da proširimo funkcionalnost, takođe bismo "upalili" za mitmcanary.

Radi čistoće eksperimenta, ponovo pokrećem opremu, pokrećem mitmcanary na napadnutoj mašini i Bettercap na napadnoj. U isto vrijeme, nije potrebno ponovo postavljati kontrolne zahtjeve na napadnutom stroju - oni se pohranjuju u datoteku unutar direktorija s programom. One. Samo pokrenite servis i grafički interfejs.

A u napadačkoj mašini ćemo pokrenuti Bettercap sa uključenim parserima:

Sudo bettercap -X

Pojavljuju se pojedinačna upozorenja, koja također više liče na lažno pozitivna.

Ali pokretanje ove naredbe:

Sudo bettercap -X --proxy

Na napadnutu mašinu poziva veliki broj upozorenja o mogućem napadu čovjeka u sredini:

Dakle, što je moćniji alat za napad "čovjek u sredini", to ostavlja više tragova u prometu. Za praktičnu upotrebu mitmcanaryja moraju biti ispunjeni sljedeći uslovi:

  • napravite početne zahtjeve na pouzdanoj mreži kada ste sigurni da nema posrednika u prijenosu saobraćaja;
  • uredite resurse na koje se upućuju zahtjevi za verifikaciju, budući da profesionalni napadač može dodati zadane resurse izuzecima, što će ga učiniti nevidljivim za ovaj alat.

2. Otkrivanje ARP lažiranja (trovanja ARP keš memorije)

Vrlo često, napad čovjeka u sredini na lokalnu mrežu počinje trovanjem ARP-om. Zbog toga su mnogi alati dizajnirani za otkrivanje MitM napada zasnovani na mehanizmu za praćenje promjena u ARP kešu, koji dodjeljuje korespondenciju između Ethernet (MAC adresa) i IP adresa.

Kao primjer ovakvih programa možemo podsjetiti arpwatch, arpalert i veliki broj novih programa. Program ArpON ne samo da prati promjene u ARP kešu, već ga i štiti od njih.

Kao primjer, pokrenimo arpwatch u modu za otklanjanje grešaka, bez kreiranja forksova u pozadini i slanja poruka poštom. Umjesto toga, poruke se šalju na stderr (standardni izlaz greške).

Sudo /usr/sbin/arpwatch -d

Pokrenimo Ettercap na mašini koja napada i započnemo ARP lažiranje. Na napadnutoj mašini vidimo:

Program arpwatch će vam pomoći da brzo saznate o novim uređajima koji su povezani na vaš lokalna mreža, kao i promjene u ARP kešu.

Još jedan alat za otkrivanje ARP lažiranja u realnom vremenu je dodatak iz samog Ettercap-a, koji se zove arp_cop. Na napadnutoj mašini pokrenite Ettercap na sledeći način:

Sudo ettercap -TQP arp_cop ///

A napadača ćemo započeti trovanje ARP-om. Na napadnutoj mašini odmah počinju da se pojavljuju upozorenja:

3. Otkrivanje DNS lažiranja

DNS lažiranje ukazuje na to da postoji posrednik između vas i vašeg odredišta koji može izmijeniti vaš promet. Kako možete otkriti da su DNS zapisi lažirani? Najlakši način da to učinite je da uporedite s odgovorima servera imena kojem vjerujete. Ali unosi u odgovoru koji je poslat na vaš zahtjev također se mogu zamijeniti...

One. morate provjeriti ili putem šifriranog kanala (na primjer, kroz Tor) ili koristiti nestandardna podešavanja (drugi port, TCP umjesto UDP). Otprilike za to je dizajniran sans program iz XiaoxiaoPu (bar kako ja razumijem). Uspio sam koristiti ovaj program za preusmjeravanje DNS zahtjeva preko Tor-a i preko nestandardnih postavki na moje DNS server. Ali nisam je mogao natjerati da mi pokaže poruke o lažiranju DNS odgovora. Bez toga se gubi smisao programa.

Nisam mogao da nađem vrednije alternative.

U principu, s obzirom da DNS spooferi obično prate samo port 53, i to samo UDP protokol, čak je i ručno dovoljno jednostavno provjeriti činjenicu DNS spoofinga, iako je za to potreban vlastiti DNS server sa nestandardnom konfiguracijom. Na primjer, na napadačkoj mašini sam napravio fajl dns.conf sa sljedećim sadržajem:

Lokalni mi-al.ru

One. kada se traži DNS zapis za web stranicu mi-al.ru, umjesto pravog IP-a bit će poslana IP adresa napadačeve mašine.

Trčim na napadačkoj mašini:

Sudo bettercap --dns dns.conf

A na napadnutom radim dvije provjere:

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

Rezultati:

Mial@HackWare:~$ dig mi-al.ru ;<<>> DiG 9.10.3-P4-Debian<<>> mi-al.ru ;; globalne opcije: +cmd ;; Dobio odgovor: ;; ->>HEADER<<- 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 ;; globalne opcije: +cmd ;; Dobio odgovor: ;; ->>HEADER<<- 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

Vidi se da je za “običan” DNS zahtjev poslat lokalni IP 192.168.1.48, a pri zahtjevu za DNS na netipičnom portu ispravan IP servera.

Ako je server konfiguriran da koristi TCP (a ne UDP), tada bi naredba izgledala ovako:

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

Jasno je da nedostaje alat koji bi sam nadgledao DNS odgovore u prometu, dvaput ih provjerio u odnosu na alternativni izvor i podigao alarm u slučaju lažiranja.

Da biste izbjegli postavljanje vlastitog udaljenog DNS-a, možete napraviti upite servera imena putem Tor-a. Pošto je sav Tor saobraćaj šifrovan, DNS odgovori dobijeni na ovaj način su izvan mogućnosti posrednika. Ako Tor već nije instaliran, instalirajte ga.

Sudo apt-get install tor

Sudo pacman -S tor

Pokrenite uslugu:

Sudo systemctl start tor

Ako vam je potrebna, dodajte ovu uslugu za pokretanje:

Sudo systemctl omogući tor

Otvorite fajl /etc/tor/torrc i dodajte sljedeće redove tamo:

DNSPort 530 AutomapHostsOnResolve 1 AutomapHostsSufiksi .exit,.onion

Obratite pažnju na broj 530. Ovo je broj porta umjesto 530, možete odrediti bilo koji drugi (nekorišteni) port. Glavna stvar je zapamtiti to.

Provjeravamo ponovo:

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

Sada navodimo kao server localhost, i napišite broj porta koji ste naveli u /etc/tor/torrc postavkama.

Kao što možete vidjeti iz sljedećeg snimka ekrana, DNS lažni napad se izvodi na mašini na kojoj je izvršena provjera:

4. Potražite mrežna sučelja u promiskuitetnom načinu

Ako na vašoj lokalnoj mreži postoji (a pogotovo ako se iznenada pojavila) oprema u promiskuitetnom modu, to je vrlo sumnjivo, iako ne ukazuje jasno na napad čovjeka u sredini.

U ovom načinu rada mrežna kartica vam omogućava da primate sve pakete bez obzira na to kome su adresirani.

U normalnom stanju, Ethernet sučelje koristi filtriranje paketa sloja veze i ako MAC adresa u odredišnom zaglavlju primljenog paketa ne odgovara MAC adresi trenutnog mrežnog sučelja i nije emitirana, tada se paket odbacuje. U "promiskuitetnom" načinu rada, filtriranje na mrežnom sučelju je onemogućeno i svi paketi, uključujući i one koji nisu namijenjeni trenutnom čvoru, su dozvoljeni u sistem.

Većina operativnih sistema zahtijeva administratorska prava da bi omogućili promiskuitetni način rada. One. Postavljanje mrežne kartice na promiskuitetni način rada je namjerna radnja koja može poslužiti u svrhe njuškanja.

Za traženje mrežnih sučelja u promiskuitetnom načinu postoji dodatak koji se zove Ettercap search_promisc.

Primjer pokretanja dodatka:

Sudo ettercap -TQP search_promisc ///

Rad dodatka nije u potpunosti pouzdan pri određivanju načina rada mrežnog interfejsa.

Zaključak

Neke metode napada "čovjek u sredini" ostavljaju mnogo tragova, a neke (poput pasivnog proxy pretraživanja vjerodajnica) je nemoguće ili gotovo nemoguće otkriti.