Samy kamkar (egy híres biztonsági kutató, aki különféle kifinomult támadási eszközök, például egy billentyűzár USB-s töltőn történő létrehozásával ismert) új támadási technikát vezetett be, a "NAT slipstreaming" néven.
A támadás lehetővé teszi az oldal böngészőben történő megnyitásakor, hogy kapcsolatot létesítsen a támadó szerveréről a felhasználó rendszerének bármely UDP vagy TCP portjára, amely a címfordító mögött található. Az Attack Toolkit a GitHub oldalon jelent meg.
A módszer az ALG kapcsolatkövetési mechanizmus becsapására támaszkodik (Application Level Gateways) a címfordítókban vagy a tűzfalakban, amely a több hálózati portot (egyet az adatokhoz és egy a vezérléshez) használó protokollok - például SIP - NAT-továbbításának megszervezésére szolgál. H323, IRC DCC és FTP.
A támadás azokra a felhasználókra vonatkozik, akik csatlakoznak a hálózathoz belső címek felhasználásával az intranet tartományból (192.168.xx, 10.xxx), és lehetővé teszi, hogy bármilyen adatot eljusson bármelyik portra (HTTP fejléc nélkül).
Támadás végrehajtására elegendő, ha az áldozat végrehajtja a támadó által készített JavaScript kódotPéldául azzal, hogy megnyit egy oldalt a támadó webhelyén, vagy rosszindulatú hirdetést tekint meg egy törvényes webhelyen.
Az első szakaszban a támadó információt szerez a felhasználó belső címéről, Ezt meghatározhatja a WebRTC, vagy ha a WebRTC le van tiltva, durva erőszakos támadásokkal, válaszidő méréssel rejtett kép kérésekor (a meglévő állomások esetében a képkérés gyorsabb, mint a nem létezőeknél, a visszatérés előtti időtúllépés miatt) egy TCP RST válasz).
A második szakaszban a JavaScript kód az áldozat böngészőjében hajtják végre nagy HTTP POST kérést generál (amely nem fér el egy csomagban) a támadó szerveréhez egy nem szabványos hálózati portszám használatával, hogy megkezdhesse a TCP töredezettségi paramétereinek és az MTU méretének az áldozat TCP veremén történő hangolását.
Válaszul a támadó szervere TCP csomagot ad vissza az MSS opcióval (Maximum segment size), amely meghatározza a fogadott csomag maximális méretét. Az UDP esetében a manipuláció hasonló, de egy nagy WebRTC TURN kérés küldésére támaszkodik az IP-szintű fragmentáció kiváltására.
«A NAT Slipstreaming a NAT, az útválasztók és a tűzfalakba épített Application Level Gateway (ALG) kapcsolatkövetési mechanizmussal együtt használja ki a felhasználó böngészőjét a belső IP-kibontás időzített támadással vagy WebRTC-vel történő láncolásával, az automatizált távoli IP és MTU, TCP töredezett felfedezésével a csomagméret masszírozása, a TURN hitelesítéssel való visszaélés, a csomagkorlátok pontos ellenőrzése és a böngésző visszaéléséből fakadó protokollzavar "- mondta Kamkar elemzésében.
A fő gondolat az hogy a töredezettségi paraméterek ismeretében lehet küldjön egy nagy HTTP kérést, amelynek sora a második csomagra esik. Ugyanakkor a második csomagba kerülő sor úgy van kiválasztva, hogy ne tartalmazzon HTTP fejléceket, és olyan adatokra legyen vágva, amelyek teljesen megfelelnek egy másik protokollnak, amelyhez a NAT bejárása támogatott.
A harmadik szakaszban, a fenti manipulációval, a JavaScript-kód egy speciálisan kiválasztott HTTP-kérést (vagy TURN for UDP-t) generál és küld a támadó szerverének 5060 TCP-portjára, amely a töredezettség után két csomagra oszlik: a csomag HTTP fejlécekkel és az adatok egy részével, valamint egy érvényes SIP csomag az áldozat belső IP-jével.
A kapcsolatok nyomon követésének rendszere a hálózati veremben ezt a csomagot egy SIP munkamenet kezdetének tekinti és lehetővé teszi a támadók továbbítását a támadó által kiválasztott minden portra, feltéve, hogy ezt a portot használják adatátvitelre.
A támadás a használt böngészőtől függetlenül végrehajtható. A probléma megoldása érdekében a Mozilla fejlesztői azt javasolták, hogy blokkolják a HTTP-kérelmek elküldésének lehetőségét az SIP protokollhoz társított 5060 és 5061 hálózati portokra.
A Chromium, a Blink és a WebKit motorok fejlesztői szintén hasonló védelmi intézkedés bevezetését tervezik.
forrás: https://samy.pl