Internet Windows Android

Omul în atacuri. Întrebări frecvente tehnice

Aproape întotdeauna puteți obține rezultatul dorit în mai multe moduri. Acest lucru este valabil și în domeniul securității informațiilor. Uneori, pentru a atinge obiectivul, poți să faci brute, să cauți în mod independent găuri și să dezvolți sloits sau să asculți ceea ce se transmite prin rețea. Ultima opțiune este adesea cea mai bună. De aceea astăzi vom vorbi despre instrumente care ne vor ajuta să prindem informații valoroase pentru noi din traficul de rețea, folosind atacurile MITM pentru aceasta.

MITMf

Să începem cu unul dintre cei mai interesanți candidați. Acesta este un întreg cadru pentru atacurile man-in-the-middle, construit pe sergio-proxy. Recent inclus în Kali Linux. Pentru a-l instala singur, doar clonați depozitul și rulați câteva comenzi:

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

Are o arhitectură care poate fi extinsă prin plug-in-uri. Printre principalele sunt următoarele:

  • Spoof - vă permite să redirecționați traficul folosind ARP / DHCP spoofing, redirecționări ICMP și să modificați interogările DNS;
  • Sniffer - acest plugin monitorizează încercările de conectare pentru diferite protocoale;
  • BeEFAutorun - vă permite să rulați automat module BeEF în funcție de tipul de sistem de operare și browser-ul client;
  • AppCachePoison - efectuează un atac de otrăvire a cache-ului;
  • SessionHijacking - deturnează sesiunile și salvează cookie-urile primite în profilul firelis;
  • BrowserProfiler - încearcă să obțină o listă de pluginuri utilizate de browser;
  • FilePwn - vă permite să înlocuiți fișierele trimise prin HTTP folosind Backdoor Factory și BDFProxy;
  • Injectare - injectează conținut arbitrar într-o pagină HTML;
  • jskeylogger - Injectează un keylogger JavaScript în paginile clientului.

Dacă această funcționalitate nu este suficientă pentru tine, atunci o poți adăuga oricând pe a ta prin implementarea extensiei corespunzătoare.

călăreț de chit

O altă utilitate demnă de remarcat. Adevărat, spre deosebire de toate celelalte instrumente considerate astăzi, este foarte restrâns specializat. După cum spune însuși autorul proiectului, el a fost inspirat să creeze un astfel de utilitar de faptul că în timpul testelor de penetrare cele mai importante date erau localizate pe serverele Linux / UNIX, la care administratorii se conectau prin SSH / Telnet / rlogin. Și în majoritatea cazurilor, accesarea mașinii administratorilor a fost mult mai ușoară decât accesarea serverului țintă. După ce a pătruns în mașina administratorului de sistem, tot ce rămâne este să vă asigurați că PuTTY rulează și să utilizați acest instrument pentru a construi o punte inversă către atacator.


Utilitarul permite nu numai adulmecarea „comunicației” dintre administrator și un server la distanță (inclusiv parole), dar și executarea unor comenzi shell arbitrare într-o anumită sesiune. Și toate acestea se vor întâmpla în mod absolut transparent pentru utilizator (administrator). Dacă sunteți interesat de detalii tehnice, de exemplu, cum este implementată implementarea procesului PuTTY, vă recomand să citiți prezentarea autorului.


O utilitate destul de veche care s-a născut în urmă cu mai bine de opt ani. Conceput pentru a clona sesiuni prin furtul cookie-urilor. Pentru deturnarea sesiunii, el are abilități de bază în detectarea gazdelor (în cazul conectării la o rețea sau hub fără fir deschis) și la efectuarea otrăvirii ARP. Singura problemă este că astăzi, spre deosebire de acum opt ani, aproape toate companiile mari precum Yahoo sau Facebook folosesc criptarea SSL, ceea ce face ca acest instrument să fie complet inutil. În ciuda acestui fapt, există încă suficiente resurse pe Web care nu folosesc SSL, așa că este prea devreme pentru a anula utilitarul. Avantajele sale includ faptul că se integrează automat în Firefox și creează un profil separat pentru fiecare sesiune interceptată. Codul sursă este disponibil în depozit și îl puteți construi singur folosind următoarea secvență de comenzi:

# 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 hoț de sesiune

Proxy Fuzz

ProzyFuzz nu are nimic de-a face direct cu atacurile MITM. După cum puteți ghici din nume, instrumentul este proiectat pentru fuzzing. Acesta este un mic fuzzer de rețea nedeterminist implementat în python care modifică aleatoriu conținutul pachetelor de trafic de rețea. Suportă protocoale TCP și UDP. Poate fi configurat să fuzz doar pe o parte. Util atunci când trebuie să testați rapid o aplicație de rețea (sau un protocol) și să dezvoltați un PoC. Exemplu de utilizare:

Python proxyfuzz -l -r -p

Lista de opțiuni include:

  • w - setează numărul de cereri trimise înainte de începerea fuzzing-ului;
  • c - fuzz doar clientul (altfel ambele părți);
  • s - fuzz doar serverul (altfel ambele părți);
  • u - protocol UDP (în caz contrar se utilizează TCP).

Mijlocul

Prezentat la conferința DEF CON, un utilitar pentru efectuarea de atacuri MITM pe diverse protocoale. Versiunea alfa a acceptat protocolul HTTP și avea trei plugin-uri interesante în arsenalul său:

  • plugin-beef.py - injectează Browser Exploitation Framework (BeEF) în orice solicitare HTTP care vine din rețeaua locală;
  • plugin-metasploit.py - injectează în solicitări necriptate (HTTP) un IFRAME care încarcă exploatările browserului de la Metasploit;
  • plugin-keylogger.py - Injectează un handler de evenimente JavaScript onKeyPress pentru toate câmpurile de text care vor fi trimise prin HTTPS, determinând browser-ul să trimită parola utilizatorului caracter cu caracter către serverul atacatorului înainte de trimiterea întregului formular.

Middler nu numai că analizează automat traficul de rețea și găsește cookie-uri în ea, dar și le solicită independent de la client, adică procesul este automatizat la maximum. Programul garantează colectarea tuturor conturilor neprotejate din rețeaua de calculatoare (sau hotspot public), la traficul căruia are acces. Pentru ca programul să funcționeze corect, pe sistem trebuie instalate următoarele pachete: Scapy, libpcap, readline, libdnet, python-netfilter. Din păcate, depozitul nu a fost actualizat de mult timp, așa că va trebui să adăugați singuri noi funcționalități.

Un utilitar de consolă care vă permite să examinați și să modificați interactiv traficul HTTP. Datorită unor astfel de abilități, utilitarul este folosit nu numai de testerii de penetrare/hackeri, ci și de dezvoltatorii obișnuiți care îl folosesc, de exemplu, pentru a depana aplicațiile web. Poate fi folosit pentru a obține informații detaliate despre ce solicitări face aplicația și ce răspunsuri primește. De asemenea, mitmproxy vă poate ajuta să aflați cum funcționează unele API-uri REST, în special cele slab documentate.

Instalarea este extrem de simplă:

$ sudo aptitude install mitmproxy

$ pip install mitmproxy

$ easy_install mitmproxy

Este de remarcat faptul că mitmproxy vă permite, de asemenea, să interceptați traficul HTTPS prin emiterea unui certificat autosemnat către client. Un bun exemplu despre cum să configurați interceptarea și modificarea traficului poate fi găsit.


Intercepter-NG

Ar fi ciudat dacă acest instrument legendar nu ar fi inclus în recenzia noastră. Chiar dacă nu l-ați folosit niciodată, probabil ați auzit de el (și trebuie doar să îl cunoașteți mai bine) – este destul de comun pe paginile revistei. Nu voi descrie pe deplin funcționalitatea sa - în primul rând, ne interesează MITM și, în al doilea rând, o astfel de descriere va ocupa întregul articol.

Este disponibil în continuare numai pentru membri

Opțiunea 1. Alăturați-vă comunității „site” pentru a citi toate materialele de pe site

Calitatea de membru al comunității în perioada specificată vă va oferi acces la TOATE materialele Hacker, vă va crește reducerea cumulativă personală și vă va permite să acumulați un rating profesional Xakep Score!

Un atac man-in-the-middle este un nume generic pentru diferite tehnici care vizează obținerea accesului la trafic ca intermediar. Datorită varietății mari a acestor tehnici, este problematică implementarea unui singur instrument pentru detectarea acestor atacuri care să funcționeze în toate situațiile posibile. De exemplu, într-un atac de tip „man-in-the-middle” asupra unei rețele locale, spoofing-ul ARP (otrăvire) este folosit în mod obișnuit. Și multe instrumente de detectare a atacurilor „man-in-the-middle” urmăresc modificările perechilor de adrese Ethernet/sau raportează activități ARP suspecte prin monitorizarea pasivă a cererilor/răspunsurilor ARP. Dar dacă acest atac este folosit pe un server proxy configurat în mod rău intenționat, VPN sau alte opțiuni atunci când nu se utilizează otrăvirea ARP, atunci astfel de instrumente sunt neajutorate.

Scopul acestei secțiuni este de a analiza câteva tehnici pentru detectarea atacurilor de tip om-in-the-middle, precum și unele instrumente concepute pentru a determina dacă sunteți sub un atac MitM. Datorită varietatii de metodologii și scenarii de implementare, detectarea 100% nu poate fi garantată.

1. Detectarea modificării traficului

După cum sa menționat deja, spoofingul ARP nu este întotdeauna folosit în atacurile de tip man-in-the-middle. Prin urmare, în timp ce detectarea activității la nivel ARP este cea mai populară metodă de detectare, detectarea modificării traficului este o metodă mai generală. Programul mitmcanary ne poate ajuta în acest sens.

Principiul programului este că face cereri de „control” și salvează răspunsurile primite. După aceea, repetă aceleași solicitări la anumite intervale și compară răspunsurile primite. Programul este destul de inteligent și, pentru a evita falsele pozitive, detectează elemente dinamice în răspunsuri și le procesează corect. De îndată ce programul a înregistrat urme ale activității instrumentelor pentru atacurile MitM, raportează despre asta.

Exemple de modul în care unele instrumente pot „moșteni”:

  • MITMf , schimbă implicit toate adresele URL HTTPS din codul HTML în HTTP. Detectat prin compararea conținutului HTTP.
  • Zarp + MITMProxy , MITMProxy are o caracteristică care vă permite să ștergeți compresia HTTP, aceasta este folosită pentru transparența traficului transmis, acest pachet este detectat prin dispariția compresiei prezente anterior
  • Responder , detectat prin modificări bruște în traducerea răspunsului mDNS: răspuns neașteptat; răspunsul este intern, dar extern este de așteptat; răspunsul este diferit de IP-ul așteptat
  • 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 cerere de analiză simplejson datetime git clone https://github.com/CylanceSPEAR/mitmcanary.git cd mitmcanary/

După cum sa menționat deja, activitatea mitmcanary trebuie începută cu cereri de control. Pentru a face acest lucru, accesați directorul

serviciu cd/

Și rulați fișierul setup_test_persistence.py:

Python2 setup_test_persistence.py

Acest lucru va dura ceva timp - așteptați până la sfârșit. Nu ar trebui să fie afișate mesaje de eroare (dacă da, atunci vă lipsesc unele dependențe).

Se va ieși ceva de genul acesta:

[email protected]:~/bin/mitmcanary/service$ python2 setup_test_persistence.py Versiunea mai veche a configurației a fost detectată (0 în loc de 14) Actualizarea configurației în curs. Jurnalul de curățare a fost declanșat. Se analizează... Epurarea s-a încheiat! Înregistrați conectarea /home/mial/.kivy/logs/kivy_16-11-01_0.txt v1.9.1 v2.7.12+ (implicit, 1 septembrie 2016, 20:27:38)

După terminarea acestui proces, în același director, executați (acest lucru va începe un proces de fundal):

Python2 main.py

După aceea, deschideți o nouă fereastră de terminal și treceți la directorul rădăcină cu mitmcanary. Directorul meu este bin/mitmcanary/, așa că intru

cd bin/mitmcanary/

și executați acolo:

Python2 main.py

Prima fereastră va afișa ceva de genul:

[email protected]:~/bin/mitmcanary/service$ python2 main.py Înregistrați conectarea /home/mial/.kivy/logs/kivy_16-11-01_1.txt v1.9.1 v2.7.12+ (implicit, 1 septembrie 2016, 20:27) :38) folosind pentru ascultare prin priză pentru Tuio pe 127.0.0.1:3000 Dormit timp de 60 de secunde Dormit timp de 60 de secunde Dormit timp de 60 de secunde Dormit timp de 60 de secunde Dormit timp de 60 de secunde Dormit timp de 60 de secunde

Acestea. programul face cereri de control o dată pe minut și caută semne ale unui atac de tip om-in-the-middle în ele.

În a doua fereastră există și o ieșire + se deschide o fereastră întunecată, autorii programului numesc această fereastră „interfață grafică”:

Puteți aștepta puțin, navigați pe internet pentru a vă asigura că programul nu face alerte false.

Să încercăm programul clasic Ettercap.

Efectuez un atac obișnuit MitM cu falsificare ARP. mitmcanary nu reacționează la gravarea în sine. Instrumentul mitmcanary generează trafic în sine, adică nu este necesară nicio acțiune a utilizatorului. După ceva timp, apare un singur avertisment, care nu este confirmat în timpul verificărilor ulterioare. Dar același avertisment apare după câteva minute. Fără analize suplimentare, îmi este dificil să spun dacă acesta este un exemplu de fals pozitiv - este foarte asemănător cu acesta. Este posibil ca acest avertisment să fie cauzat de o eroare a conexiunii din cauza necesității ca traficul să treacă prin rute suplimentare sau de particularitățile conexiunii mele slabe la internet.

Deoarece rezultatul nu este evident (mai degrabă „nu” decât „da”), atunci să încercăm programul Bettercap, care are o varietate de module. Nu am nicio îndoială că atunci când folosim diverse plugin-uri Ettercap și/sau programe suplimentare pentru a extinde funcționalitatea, ne-am „aprinde” și pentru mitmcanary.

Pentru puritatea experimentului, repornesc echipamentul, rulez mitmcanary pe mașina atacată și Bettercap pe cea atacantă. În același timp, nu este necesar să faceți din nou solicitări de control pe mașina atacată - acestea sunt salvate într-un fișier din directorul cu programul. Acestea. este suficient să porniți serviciul și interfața grafică.

Și în mașina atacantă, vom rula Bettercap cu analizatorii activați:

Sudocap -X

Apar avertismente separate, care seamănă mai mult cu false pozitive.

Dar rulați această comandă:

sudo bettercap -X --proxy

Pe mașina atacată, provoacă un număr mare de avertismente despre un posibil atac de tip man-in-the-middle:

Așadar, cu cât instrumentul de atac man-in-the-middle este mai funcțional, cu atât lasă mai multe urme în trafic. Pentru utilizarea în practică a mitmcanary, trebuie îndeplinite următoarele condiții:

  • faceți cereri inițiale într-o rețea de încredere atunci când sunteți sigur că nu există intermediar în transmiterea traficului;
  • editați resursele cărora li se fac cereri de verificare, deoarece un atacator profesionist poate adăuga resurse implicite la excepții, ceea ce îl va face invizibil pentru acest instrument.

2. Detectarea falsificării ARP (arp cache intoxicație)

Foarte des, un atac de tip om-in-the-middle asupra unei rețele locale începe cu otrăvirea ARP. De aceea, multe instrumente concepute pentru a detecta atacurile MitM se bazează pe un mecanism de urmărire a modificărilor din memoria cache ARP, în care sunt atribuite corespondențe între Ethernet (adresele MAC) și adresele IP.

Exemple de astfel de programe includ arpwatch , arpalert și un număr mare de programe noi. Programul ArpON nu numai că monitorizează modificările cache-ului ARP, dar îl și protejează de acestea.

De exemplu, să rulăm arpwatch în modul depanare, fără a crea furcături în fundal și a trimite mesaje prin poștă. În schimb, mesajele sunt trimise către stderr (ieșire de eroare standard).

sudo /usr/sbin/arpwatch -d

Pe mașina care atacă, rulați Ettercap și începeți falsificarea ARP. Pe mașina atacată observăm:

Programul arpwatch vă va ajuta să aflați rapid despre noile dispozitive conectate la rețeaua locală, precum și despre modificările aduse memoriei cache ARP.

Un alt instrument pentru detectarea în timp real a falsificării ARP este un plugin denumit Ettercap arp_cop. Pe mașina atacată, rulați Ettercap după cum urmează:

sudo ettercap -TQP arp_cop ///

Și asupra atacatorului, să începem gravarea ARP. Pe mașina atacată încep imediat să apară avertismente:

3. Detectare falsificare DNS

Falsificarea DNS indică faptul că există un intermediar între dvs. și destinație care vă poate modifica traficul. Cum puteți detecta că înregistrările DNS au fost falsificate? Cel mai simplu mod de a face acest lucru este să comparați cu răspunsurile unui server de nume în care aveți încredere. Dar la urma urmei, intrările din răspunsul trimis la cererea dvs. pot fi și ele înlocuite...

Acestea. trebuie să verificați fie printr-un canal criptat (de exemplu, prin Tor), fie să utilizați setări non-standard (un alt port, TCP în loc de UDP). Programul sans de la XiaoxiaoPu este destinat pentru aceasta aproximativ (cel puțin, din câte am înțeles). Am reușit să folosesc acest program pentru a redirecționa interogările DNS prin Tor și prin setări non-standard către serverul meu DNS. Dar nu am reușit niciodată să o fac să-mi arate mesaje despre falsificarea răspunsului DNS. Și fără aceasta, sensul programului se pierde.

Nu am putut găsi alternative mai bune.

În principiu, având în vedere că spoofer-urile DNS monitorizează de obicei doar portul 53 și doar protocolul UDP, chiar și manual este suficient să verificați pur și simplu faptul spoofing-ului DNS, deși acest lucru necesită propriul dvs. server DNS cu o configurație non-standard. De exemplu, pe mașina de atac, am creat fișierul dns.conf cu urmatorul continut:

Local mi-al.ru

Acestea. la solicitarea unei înregistrări DNS pentru site-ul mi-al.ru, în locul IP-ului real, se va trimite IP-ul mașinii atacatorului.

Fug pe mașina de atac:

sudo bettercap --dns dns.conf

Iar la atacat fac două verificări:

Sapă mi-al.ru # și sapă mi-al.ru -p 4560 @185.117.153.79

Rezultate:

[email protected]:~$ dig mi-al.ru ;<<>> DiG 9.10.3-P4-Debian<<>> mi-al.ru ;; opțiuni globale: +cmd ;; am primit raspuns: ;; ->>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 [email protected]:~$ 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 ;; opțiuni globale: +cmd ;; am primit raspuns: ;; ->>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

Se poate observa că pentru o interogare DNS „normală” a fost trimis IP-ul local 192.168.1.48, iar la interogarea DNS pe un port atipic este trimis IP-ul corect al serverului.

Dacă serverul ar fi configurat să funcționeze cu TCP (nu cu UDP), atunci comanda ar arăta astfel:

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

Evident, lipsește un instrument care să urmărească răspunsurile DNS în trafic, să le verifice de două ori față de o sursă alternativă și să tragă o alarmă în caz de falsificare.

Pentru a evita configurarea propriului DNS la distanță, puteți interoga serverul de nume prin Tor. Deoarece tot traficul Tor este criptat, răspunsurile DNS primite în acest fel sunt prea dure pentru un intermediar. Dacă Tor nu este deja instalat, atunci instalați-l.

sudo apt-get install tor

Sudo pacman -S tor

Porniți serviciul:

sudo systemctl start tor

Dacă aveți nevoie, adăugați acest serviciu la pornire:

sudo systemctl enable tor

Deschide fișierul /etc/tor/torrcși adăugați următoarele rânduri acolo:

DNSPort 530 AutomapHostsOnResolve 1 AutomapHostsSuffixes .exit, .onion

Atenție la numărul 530. Acesta este numărul portului, în loc de 530, puteți specifica orice alt port (neocupat). Cel mai important, amintiți-vă.

Din nou verificăm:

Sapă mi-al.ru # și sapă mi-al.ru -p 530 @localhost

Acum specificăm ca server gazdă locală, și scrieți numărul portului așa cum este specificat în /etc/tor/torrc.

După cum puteți vedea din următoarea captură de ecran, este efectuat un atac de falsificare DNS împotriva mașinii pe care a fost efectuată verificarea:

4. Căutați interfețe de rețea în modul promiscuu

Dacă rețeaua dvs. locală are (și mai ales dacă a apărut brusc) echipamente în modul promiscuu, acest lucru este foarte suspect, deși nu indică clar un atac de tip man-in-the-middle.

În acest mod, placa de rețea vă permite să primiți toate pachetele, indiferent cui sunt adresate.

În stare normală, interfața Ethernet folosește filtrarea pachetelor din stratul de legătură și dacă adresa MAC din antetul de destinație al pachetului primit nu se potrivește cu adresa MAC a interfeței de rețea curentă și nu este difuzată, atunci pachetul este aruncat. În modul promiscuu, filtrarea pe interfața de rețea este dezactivată și toate pachetele, inclusiv cele care nu sunt destinate gazdei curente, sunt permise în sistem.

Majoritatea sistemelor de operare necesită drepturi de administrator pentru a activa modul promiscuu. Acestea. punerea unei plăci de rețea în modul promiscuu este un act conștient care poate servi scopului de adulmecare.

Pentru a căuta interfețe de rețea în modul promiscuu, există un plugin Ettercap numit search_promisc.

Exemplu de lansare a pluginului:

sudo ettercap -TQP search_promisc ///

Funcționarea pluginului nu este complet de încredere, pot exista erori în determinarea modului de interfață de rețea.

Concluzie

Unele metode de atac man-in-the-middle lasă o mulțime de urme, iar unele (de exemplu, căutarea pasivă de acreditări pe un proxy) sunt imposibil sau aproape imposibil de detectat.

Attack "man in the middle" (ing. Man in the middle, MitM-attack) - un termen în criptografie, care denotă o situație în care un atacator este capabil să citească și să modifice mesajele schimbate de corespondenți în voie, iar niciunul dintre aceștia din urmă nu poate ghici despre prezența lui în canal.

O metodă de compromitere a unui canal de comunicare, în care un atacator, conectându-se la un canal între contrapărți, intervine activ în protocolul de transmisie, ștergând, denaturând informații sau impunând informații false.

Principiul atacului:

Să presupunem că obiectul „A” plănuiește să trimită unele informații către obiectul „B”. Obiectul „C” are cunoștințe despre structura și proprietățile metodei de transfer de date utilizate, precum și despre faptul transmiterii planificate a informațiilor efective pe care „C” intenționează să le intercepteze.

Pentru a efectua un atac, „C” este „reprezentat” pentru obiectul „A” ca „B”, iar pentru obiectul „B” ca „A”. Obiectul „A”, crezând în mod eronat că trimite informații către „B”, îl trimite obiectului „C”.

Obiectul „C”, după ce a primit informația și după ce a efectuat unele acțiuni cu aceasta (de exemplu, copierea sau modificarea în scopuri proprii) trimite datele către destinatar însuși - „B”; obiectul „B”, la rândul său, consideră că informația a fost primită de acesta direct de la „A”.

Un exemplu de atac MitM:

Să presupunem că Alice are probleme financiare și, folosind un program de mesagerie instantanee, decide să îi ceară lui John o sumă de bani trimițând un mesaj:
Alice: John, salut!
Alice: Vă rugăm să trimiteți cheia de criptare, există o mică solicitare!
Ioan: Buna ziua! Asteapta o secunda!

Dar, la acest moment, domnul X, care, în timp ce analiza traficul cu un sniffer, a observat acest mesaj, iar cuvintele „cheie de criptare”, a stârnit curiozitatea. De aceea a decis să intercepteze următoarele mesaje și să le înlocuiască cu datele de care avea nevoie, iar când a primit următorul mesaj:
Ioan: Iată cheia mea: 1111_D

El a schimbat cheia lui John cu a lui și i-a trimis un mesaj lui Alice:
Ioan: Iată cheia mea: 6666_M

Alice, neștiind și crezând că este cheia lui John, folosind cheia privată 6666_M, trimite mesaje criptate lui John:
Alice: John, am probleme și am nevoie urgent de bani, vă rog să transferați 300 USD în contul meu: Z12345. Mulțumesc. p.s. Cheia mea: 2222_A

După ce a primit mesajul, Mister-X îl decriptează folosind cheia sa, îl citește și, bucurându-se, schimbă numărul de cont și cheia de criptare ale lui Alice cu ale sale, criptează mesajul cu cheia. 1111_Dși îi trimite lui John un mesaj:
Alice: John, am probleme și am nevoie urgent de bani, vă rog să transferați 300 USD în contul meu: Z67890. Mulțumesc. p.s. Cheia mea: 6666_A

După ce a primit mesajul, John îl decriptează folosind cheia. 1111_D, și fără nici măcar îndoială, va transfera bani în cont Z67890...

Și așa că domnul X a câștigat 300 de dolari folosind atacul omului din mijloc, dar Alice acum trebuie să explice că nu a primit banii... Și John? John trebuie să-i demonstreze Alicei că i-a trimis...

Implementare:

Un tip similar de atac este utilizat în unele produse software pentru ascultarea rețelei, de exemplu:
NetStumbler- un program cu ajutorul căruia puteți colecta o mulțime de date utile despre o rețea wireless și puteți rezolva unele probleme asociate cu funcționarea acesteia. NetStumbler vă permite să determinați raza de acțiune a rețelei și vă ajută să direcționați cu precizie antena pentru comunicare pe distanțe lungi. Pentru fiecare punct de acces găsit, puteți afla adresa MAC, raportul semnal-zgomot, numele serviciului și gradul de securitate al acestuia. Dacă traficul nu este criptat, atunci capacitatea programului de a detecta conexiuni neautorizate va fi utilă.

adulmecă- este un set de programe pentru auditul rețelei și verificări de penetrare, asigură monitorizarea pasivă a rețelei pentru căutarea datelor de interes (parole, adrese de e-mail, fișiere etc.), interceptarea traficului de rețea care este în mod normal inaccesibil pentru analiză (de exemplu , pe o rețea comutată), precum și posibilitatea de a organiza atacuri MITM pentru a intercepta sesiunile SSH și HTTPS prin exploatarea deficiențelor PKI.

Cain și Abel- un program gratuit care vă permite să recuperați parolele pierdute pentru sistemele de operare din familia Windows. Sunt acceptate mai multe moduri de recuperare: cracare cu forță brută, selecție de dicționar, vizualizarea parolelor ascunse de asteriscuri etc. Există, de asemenea, opțiuni pentru detectarea parolei prin interceptarea pachetelor de informații și analiza lor ulterioară, înregistrarea conversațiilor în rețea, analiza cache-ului și altele.

Ettercap- este un sniffer, interceptor de pachete și registrator pentru rețelele Ethernet locale, care acceptă analiza activă și pasivă a multor protocoale, precum și „aruncarea” propriilor date într-o conexiune existentă și filtrarea „din mers” fără a perturba sincronizarea conexiunii . Programul vă permite să interceptați SSH1, HTTPS și alte protocoale securizate și oferă posibilitatea de a decripta parolele pentru următoarele protocoale: 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- un set de utilități pentru evaluarea securității clienților wireless, este un sniffer wireless care, ascultând pasiv cadrele 802.11 Probe Request, vă permite să descoperiți clienții și rețelele lor preferate/de încredere. Un punct de acces fals poate fi apoi creat pentru una dintre rețelele solicitate, la care poate fi conectat automat. Serviciile false de nivel înalt pot fi utilizate pentru a fura date personale sau pentru a exploata vulnerabilitățile clientului de pe gazdă.

airjack- un set de programe care, conform experților în domeniul hacking-ului WiFi, este cel mai bun instrument pentru generarea diverselor cadre 802.11. AirJack include o serie de utilitare concepute pentru a detecta un ESSID ascuns, pentru a trimite cadre de terminare a sesiunii cu un MAC fals, pentru a efectua atacuri MitM și pentru a-l modifica.

Opoziţie:

Pentru a evita atacurile de acest tip, este suficient ca abonații „A” și „B” să transfere semnăturile digitale ale cheilor publice de criptare unul altuia folosind un canal de încredere. Apoi, atunci când se compară semnăturile cheilor în sesiunile de criptare, va fi posibil să se stabilească cu ce cheie au fost criptate datele și dacă cheile au fost falsificate.

18.10.2016 | Vladimir Khazov

Planurile FSB, ale Ministerului Telecomunicațiilor și Comunicațiilor de Masă și ale Ministerului Industriei și Comerțului de a implementa prevederile Legii Yarovaya în ceea ce privește interceptarea și decriptarea corespondenței rușilor nu mai sunt doar planuri, ci încep deja să fie pusă în acțiune printr-un ordin de pregătire a unei opinii de expert cu privire la posibilitatea interceptării mesajelor WhatsApp, Viber, Facebook Messenger, Telegram, Skype folosind atacuri MITM și demonstrarea unui prototip al unui astfel de instrument.

Despre schema de organizare a unui atac MITM „legitim” am scris într-un articol anterior. Astăzi ne vom opri în detaliu asupra principiului însuși al unui astfel de atac și asupra modului de implementare a acestuia.

Ce este un atac MITM

Man In The Middle (MITM) se traduce prin „om la mijloc”. Acest termen se referă la un atac de rețea, atunci când un atacator se află între un utilizator de internet și aplicația pe care o accesează. Nu fizic, desigur, ci cu ajutorul unui software special. Este prezentat utilizatorului de către aplicația solicitată (poate fi un site web sau un serviciu de internet), imită lucrul cu acesta, o face în așa fel încât să dea impresia de funcționare normală și schimb de informații.

Ținta atacului sunt datele personale ale utilizatorului, cum ar fi datele de conectare la diferite sisteme, detaliile bancare și numerele de card, corespondența personală și alte informații confidențiale. În cele mai multe cazuri, sunt atacate aplicațiile financiare (clienți bănci, bănci online, servicii de plată și transfer de bani), servicii SaaS ale companiei, site-uri de comerț electronic (magazine online) și alte site-uri unde este necesară autorizarea pentru a intra în sistem.

Informațiile obținute de un atacator pot fi folosite în diverse scopuri, inclusiv transferuri ilegale de bani, schimbarea contului, interceptarea corespondenței personale, cumpărarea pe cheltuiala altcuiva, compromis și șantaj.

În plus, după ce au furat acreditările și au spart sistemul, infractorii pot instala software rău intenționat în rețeaua corporativă pentru a organiza furtul de proprietate intelectuală (brevete, desene, baze de date) și pentru a provoca prejudicii economice prin ștergerea datelor importante.

Un atac MITM poate fi comparat cu un poștaș care, în timpul livrării corespondenței tale, deschide scrisoarea, rescrie conținutul acesteia pentru uz personal sau chiar, falsificând scrisul de mână, adaugă ceva propriu și apoi sigilează plicul și îl livrează. destinatarului de parcă nimic nu s-ar fi întâmplat . Mai mult, dacă ați criptat textul scrisorii și doriți să informați personal destinatarul codului de decriptare, poștașul se va prezenta ca destinatar astfel încât să nu observați nici măcar înlocuirea.

Cum se efectuează un atac MITM

Executarea unui atac MITM constă în două faze: interceptare și decriptare.

  • Interceptare

Prima etapă a atacului este interceptarea traficului de la utilizator la ținta vizată și direcționarea acestuia către rețeaua atacatorului.

Cea mai comună și mai ușoară modalitate de a intercepta este un atac pasiv, atunci când un atacator creează puncte Wi-Fi cu acces gratuit (fără parolă și autorizare). În momentul în care un utilizator se conectează la un astfel de punct, atacatorul are acces la tot traficul care trece prin acesta și poate extrage orice date din acesta pentru interceptare.

A doua metodă este interceptarea activă, care poate fi efectuată prin una dintre următoarele opțiuni:

Falsificarea IP– înlocuirea adresei IP țintă din antetul pachetului cu adresa atacatorului. Drept urmare, utilizatorii, în loc să meargă la adresa URL solicitată, ajung pe site-ul atacatorului.

Falsificarea ARP– înlocuirea adresei MAC reale a gazdei cu adresa atacatorului în tabelul ARP al victimei. Ca urmare, datele trimise de utilizator la adresa IP a nodului necesar ajung la adresa atacatorului.

falsificare DNS - infectarea cache-ului DNS, infiltrarea serverului DNS și falsificarea înregistrării potrivirii adresei site-ului web. Drept urmare, utilizatorul încearcă să acceseze site-ul solicitat, dar primește adresa site-ului atacatorului de la serverul DNS.

  • Decriptare

După interceptare, traficul SSL bidirecțional trebuie decriptat, iar acest lucru trebuie făcut în așa fel încât utilizatorul și resursa solicitată de acesta să nu observe interferența.

Există mai multe metode pentru aceasta:

Falsificarea HTTPS– un certificat fals este trimis către browserul victimei atunci când se stabilește o conexiune la site prin protocolul HTTPS. Acest certificat conține semnătura digitală a aplicației compromise, ceea ce face ca browserul să accepte conexiunea cu atacatorul ca fiind de încredere. Odată ce o astfel de conexiune este stabilită, atacatorul are acces la orice date introduse de victimă înainte de a fi transmise aplicației.

SSL BEAST(exploatare browser împotriva SSL/TLS) – atacul exploatează o vulnerabilitate SSL în versiunile TLS 1.0 și 1.2. Computerul victimei este infectat cu JavaScript rău intenționat care interceptează cookie-urile criptate trimise către aplicația web. Acest lucru compromite modul de criptare „înlănțuire a blocurilor de text cifrat” în așa fel încât atacatorul obține cookie-urile decriptate și cheile de autentificare.

Deturnarea SSL– transmiterea cheilor de autentificare false către utilizator și aplicație la momentul începerii sesiunii TCP. Acest lucru dă aspectul unei conexiuni sigure, când de fapt „omul din mijloc” deține controlul sesiunii.

Striping SSL- Degradează conexiunea de la HTTPS securizat la HTTP simplu prin interceptarea autentificării TLS trimisă de aplicație către utilizator. Atacatorul oferă utilizatorului acces necriptat la site, în timp ce el însuși menține o sesiune securizată cu aplicația, câștigând posibilitatea de a vedea datele transmise de victimă.\

Protecție împotriva atacurilor MITM

O protecție fiabilă împotriva atacurilor MITM este posibilă atunci când utilizatorul ia mai multe acțiuni preventive și utilizează o combinație de metode de criptare și autentificare de către dezvoltatorii de aplicații web.

Acțiuni ale utilizatorului:

  • Evitați conectarea la hotspot-uri Wi-Fi care nu au protecție prin parolă. Opriți conexiunea automată la punctele de acces cunoscute - un atacator vă poate deghiza Wi-Fi-ul drept legitim.
  • Acordați atenție notificării browserului despre trecerea la un site nesigur. Un astfel de mesaj poate indica faptul că ați fost dus pe un site fals al unui atacator sau că există probleme cu protecția unui site legitim.
  • Încheiați sesiunea cu aplicația (logout) dacă nu este în uz.
  • Nu utilizați rețele publice (cafenea, parc, hotel etc.) pentru tranzacții confidențiale (corespondență comercială, tranzacții financiare, achiziții în magazine online etc.).
  • Utilizați un antivirus actualizat pe computer sau laptop, acesta vă va ajuta să vă protejați împotriva atacurilor care folosesc software rău intenționat.

Dezvoltatorii de aplicații web și site-uri web ar trebui să utilizeze protocoalele securizate TLS și HTTPS, care complică foarte mult atacurile de falsificare prin criptarea datelor transmise. De asemenea, utilizarea lor previne interceptarea traficului pentru a obține parametri de autorizare și chei de acces.

Este considerată o bună practică protejarea TLS și HTTPS nu numai pentru paginile de autorizare, ci și pentru toate celelalte secțiuni ale site-ului. Acest lucru reduce șansa ca un atacator să fure cookie-urile unui utilizator în timp ce navighează prin pagini nesigure după conectare.

Protecția împotriva atacurilor MITM este responsabilitatea utilizatorului și a operatorului de telecomunicații. Pentru utilizator, cel mai important lucru este să nu-și piardă vigilența, să folosească doar metode dovedite de acces la Internet și să aleagă site-uri cu criptare HTTPS pentru a transfera datele personale. Operatorilor de telecomunicații li se poate recomanda să utilizeze sistemele Deep Packet Inspection (DPI) pentru a detecta anomalii în rețelele de date și pentru a preveni atacurile de falsificare.

Agențiile guvernamentale plănuiesc să folosească atacul MITM pentru a proteja cetățenii și nu pentru a provoca pagube, spre deosebire de atacatori. Interceptarea mesajelor personale și a altor traficuri de utilizatori se realizează în cadrul legislației în vigoare, se realizează prin decizia autorităților judiciare de combatere a terorismului, traficului de droguri și a altor activități interzise. Pentru utilizatorii obișnuiți, atacurile MITM „legitime” nu sunt periculoase.

MTProto folosește o metodă originală pentru a obține fiabilitatea în conexiunea mobilă acum vulnerabilă și viteza în livrarea fișierelor mari (de exemplu, fotografii, videoclipuri și documente de până la 1 GB). Acest document are scopul de a explica detaliile sistemului nostru și de a acoperi elemente care sunt greu de înțeles la prima vedere.

Documentația detaliată a protocolului este disponibilă pe această pagină. Dacă aveți întrebări - scrieți la Stare de nervozitate.

Notă: Fiecare mesaj criptat cu MTProto conține întotdeauna următoarele date, care vor fi verificate în timpul decriptării pentru a asigura securitatea sistemului împotriva problemelor cunoscute:

  • identificator de sesiune - ID de sesiune;
  • lungimea mesajului - lungimea mesajului;

Nota 2: Vedeți comentarii suplimentare despre utilizarea , și modificat schema .

De ce nu folosești X [alegerea ta]

În timp ce există, fără îndoială, alte modalități de a atinge aceleași obiective criptografice, credem că soluția actuală este atât sigură, cât și reușește în obiectivul nostru secundar de a depăși mesagerii nesiguri în ceea ce privește viteza de livrare și stabilitate.

De ce te bazezi pe criptoalgoritmi clasici?

Preferăm să folosim algoritmi bine-cunoscuți din zilele în care debitul și puterea de procesare erau rare să se împerecheze. Acești algoritmi sunt cei care au un impact semnificativ asupra dezvoltării de astăzi a aplicațiilor pentru dispozitive mobile, obligându-i pe autorii lor să scape de deficiențele cunoscute. Punctele slabe ale unor astfel de algoritmi sunt de asemenea bine cunoscute și au fost exploatate de atacatori de zeci de ani. Folosim acești algoritmi în această implementare deoarece, după cum credem, ei duc orice atac cunoscut la eșec. Cu toate acestea, ne-am bucura să vedem orice dovadă contrarie (până în prezent nu au existat astfel de cazuri) pentru a ne îmbunătăți sistemul.

Sunt expert în securitate și cred că protocolul tău este nesigur.

Puteți participa la concursul nostru: Pavel Durov oferă 200.000 USD în bitcoin primei persoane care a spart MTProto. Puteți citi anunțul și Întrebările frecvente ale concursului. Dacă aveți alte comentarii, ne-ar plăcea să le auzim [email protected].

Protecție împotriva atacurilor cunoscute

Atacurile cunoscute în text simplu

Conform definiției, un atac de text simplu este un tip de atac criptoanalitic în care atacatorul are ambele versiuni ale textului: criptat și original. AES IGE utilizat în MTProto este rezistent la astfel de atacuri. În plus, textul simplu din MTProto conține întotdeauna sarea serverului și ID-ul sesiunii.

Atac adaptiv de text simplu

Conform definiției, un atac de text simplu ales adaptiv este un tip de atac în criptoanaliza care presupune că criptoanalistul poate alege textul simplu și obține textul cifrat corespunzător. MTProto folosește AES în modul IGE, care este sigur împotriva unor astfel de atacuri. Se știe că IGE este vulnerabil la atacurile adaptive la bloc, dar MTProto remediază acest lucru în felul următor. Fiecare mesaj text simplu care trebuie criptat conține următoarele date, care sunt verificate în timpul decriptării:

  • sare de server (64 de biți) - sare de server (64 de biți);
  • numărul de ordine al mesajului - numărul de ordine al mesajului;
  • timpul de trimitere a mesajului - ora.

În plus, pentru a înlocui textul simplu, trebuie să utilizați și cheia AES corectă și vectorul de inițializare dependent de auth_key . Acest lucru face ca MTProto să fie rezistent împotriva atacurilor adaptive-plaintext.

Atacurile alese cu text cifrat

Prin definiție, un atac cu text cifrat este un atac criptografic în care un criptoanalist adună informații despre un cifru ghicind textul cifrat și decriptându-l cu o cheie necunoscută. Într-un astfel de atac, un atacator poate introduce unul sau mai multe texte cifrate cunoscute în sistem și poate obține texte clare. Cu aceste date, un atacator poate încerca să recupereze cheia folosită pentru decriptare. În MTProto, de fiecare dată când un mesaj este decriptat, se face o verificare pentru a vedea dacă msg_key se potrivește cu SHA-1 al datelor decriptate. Textul simplu (date decriptate) conține întotdeauna informații despre lungimea mesajului, numărul său de secvență și sarea serverului. Acest lucru anulează atacurile cu text cifrat.

Reluarea atacurilor

Atacurile de reluare sunt imposibile deoarece fiecare mesaj text simplu conține o sare de server, un ID unic de mesaj și un număr de secvență.

Atacul „Omul din mijloc” (MitM)

Telegram are două moduri de comunicare: chat-uri obișnuite care utilizează criptarea client-server și chat-uri secrete care utilizează criptare end-to-end și sunt protejate de atacurile man-in-the-middle. Transferul de date între client și server este protejat de astfel de atacuri în timpul generării cheilor Diffie-Hellman datorită algoritmului de cheie publică RSA care este încorporat în clienții Telegram. După aceea, dacă clienții interlocutorilor au încredere în software-ul serverului, discuțiile secrete dintre ei sunt protejate de server de atacurile de tip man-in-the-middle. Mai ales pentru cei care Nu are încredere în server, o comparație a codurilor secrete este disponibilă în aplicație. Cheile sunt redate ca imagini. Comparând cheile randate, utilizatorii pot verifica dacă nu a avut loc un atac de tip man-in-the-middle.

Criptare

Folosești IGE? A fost spart!

Da, folosim IGE, dar în implementarea noastră totul este în regulă. Faptul că nu folosim IGE împreună cu alte elemente ale sistemului nostru în același mod în care face MAC, face inutil să încercăm să piratam IGE. IGE, la fel ca modul obișnuit de înlănțuire a blocurilor de text cifrat (CBC), este supus atacurilor adaptative la blocuri. Dar atacurile adaptive sunt doar o amenințare atunci când aceeași cheie este utilizată în mai multe mesaje (ceea ce nu este cazul).

Atacurile adaptive sunt chiar și teoretic imposibile în MTProto, deoarece pentru a decripta mesajele, acestea trebuie mai întâi să fie complet tastate, deoarece cheia mesajului depinde de conținutul acestuia. În ceea ce privește atacurile CPA dezadaptative, IGE este protejat de ele, la fel ca și CBC.