Samy Kamkar (en berømt sikkerhedsforsker kendt for at have skabt adskillige sofistikerede angrebsenheder, såsom en keylogger i en USB-telefonoplader) har introduceret en ny angrebsteknik kaldet "NAT slipstreaming".
Angrebet muliggør, når en webside åbnes i en browser, etablering af en forbindelse fra angriberens server til enhver UDP- eller TCP-port på brugerens system, der er placeret bag adresseoversætteren. Angrebsværktøjssættet er offentliggjort på GitHub.
Metoden er baseret på at narre ALG (Application Level Gateway) forbindelsessporingsmekanismen i adresseoversættere eller firewalls, som bruges til at organisere NAT-videresendelse af protokoller, der bruger flere netværksporte (en til data og en til kontrol), såsom SIP, H323, IRC DCC og FTP.
Angrebet gælder for brugere, der opretter forbindelse til netværket ved hjælp af interne adresser i intranetområdet (192.168.xx, 10.xxx), og tillader, at alle data sendes til enhver port (uden HTTP-headere).
For at udføre et angreb er det nok, at offeret udfører den JavaScript-kode, som angriberen har forberedt , for eksempel ved at åbne en side på angriberens hjemmeside eller se en ondsindet annonce på en legitim hjemmeside.
I første fase indhenter angriberen oplysninger om brugerens interne adresse, som kan bestemmes af WebRTC eller, hvis WebRTC er deaktiveret, af brute-force-angreb med målt responstid, når der anmodes om et skjult billede (for eksisterende værter er et forsøg på at anmode om et billede hurtigere end for ikke-eksisterende værter på grund af ventetiden, før der returneres et TCP RST-svar).
I anden fase genererer JavaScript-koden, der udføres i offerets browser, en stor HTTP POST-anmodning (som ikke passer ind i én pakke) til angriberens server ved hjælp af et ikke-standardiseret netværksportnummer for at starte justeringen af TCP-fragmenteringsparametre og MTU-størrelse i offerets TCP-stak.
Som svar returnerer angriberens server en TCP-pakke med MSS- indstillingen (Maximum Segment Size), som bestemmer den maksimale størrelse af den modtagne pakke. I tilfælde af UDP er manipulationen lignende, men den er afhængig af at sende en stor WebRTC TURN-anmodning for at udløse fragmentering på IP-niveau.
«NAT Slipstreaming udnytter brugerens browser i forbindelse med Application Level Gateway (ALG) -forbindelsessporingsmekanismen indbygget i NAT, routere og firewalls ved at kæde intern IP-ekstraktion gennem et tidsangreb eller WebRTC, fragmenteringsopdagelse af automatiseret ekstern IP og MTU, TCP massering af pakkestørrelse, misbrug af TURN-godkendelse, præcis kontrol af pakkegrænser og protokolforvirring fra browsermisbrug, "sagde Kamkar i en analyse.
Hovedideen er, at man, når man kender fragmenteringsparametrene, kan sende en stor HTTP-anmodning, hvis hale vil falde ind i den anden pakke . Samtidig vælges den indgående hale af den anden pakke for at ekskludere HTTP-headere og afkortes til de data, der fuldstændigt svarer til en anden protokol, som NAT-traversal understøttes for.
I den tredje fase, ved hjælp af ovenstående manipulation, genererer og sender JavaScript-koden en specielt udvalgt HTTP-anmodning (eller TURN for UDP) til TCP-port 5060 på angriberens server, som efter fragmentering vil blive opdelt i to pakker: en pakke med HTTP-headers og en del af dataene og en gyldig SIP-pakke med offerets interne IP.
Systemet til sporing af forbindelser i netværksstakken vil betragte denne pakke som starten på en SIP-session og vil tillade pakkevideresendelse for enhver port valgt af angriberen, forudsat at denne port bruges til datatransmission.
Angrebet kan udføres uanset hvilken browser der anvendes . For at løse problemet foreslog Mozilla-udviklere at blokere muligheden for at sende HTTP-anmodninger til netværksportene 5060 og 5061, som er knyttet til SIP-protokollen.
Udviklerne af Chrom-, Blink- og WebKit-motorerne har også til hensigt at gennemføre en lignende beskyttelsesforanstaltning.
Kilde: https://samy.pl