Сами Камкар (познати истраживач безбедности познат по стварању неколико софистицираних уређаја за напад, као што је кејлогер у УСБ пуњачу за телефон) представио је нову технику напада под називом „NAT slipstreaming“.
Напад омогућава, након отварања веб странице у прегледачу, успостављање везе са сервера нападача на било који UDP или TCP порт на корисничком систему који се налази иза преводиоца адреса. Комплет алата за напад је објављен на GitHub-у.
Метода се ослања на обмањивање механизма за праћење конекција ALG (Application Level Gateway) у преводиоцима адреса или заштитним зидовима, који се користи за организовање NAT прослеђивања протокола који користе више мрежних портова (један за податке и један за контролу), као што су SIP, H323, IRC DCC и FTP.
Напад је применљив на кориснике који се повезују на мрежу користећи интерне адресе у интранет опсегу (192.168.xx, 10.xxx) и омогућава слање било којих података на било који порт (без HTTP заглавља).
Да би се извршио напад, довољно је да жртва изврши ЈаваСкрипт код који је припремио нападач , на пример, отварањем странице на веб-сајту нападача или гледањем злонамерног огласа на легитимном веб-сајту.
У првој фази, нападач добија информације о интерној адреси корисника, коју може утврдити WebRTC или, ако је WebRTC онемогућен, нападима грубе силе са мереним временом одзива приликом захтевања скривене слике (за постојеће хостове, покушај захтевања слике је бржи него за непостојеће због времена чекања пре враћања TCP RST одговора).
У другој фази, JavaScript код извршен у прегледачу жртве генерише велики HTTP POST захтев (који не стаје у један пакет) ка серверу нападача користећи нестандардни број мрежног порта како би покренуо подешавање параметара фрагментације TCP-а и величине MTU-а у TCP стеку жртве.
Као одговор, сервер нападача враћа TCP пакет са опцијом MSS (Maximum Segment Size), која одређује максималну величину примљеног пакета. У случају UDP-а, манипулација је слична, али се ослања на слање великог WebRTC TURN захтева да би се покренула фрагментација на нивоу IP адресе.
«НАТ Слипстреаминг користи претраживач корисника заједно са механизмом за праћење везе Апплицатион Левел Гатеваи (АЛГ) уграђеним у НАТ, рутере и заштитне зидове ланчаним интерним издвајањем ИП-а путем ВебРТЦ-а или временским нападом, откривањем фрагментације аутоматизованог даљинског ИП и МТУ, масирање величине ТЦП пакета, злоупотреба ТУРН аутентификације, прецизна контрола ограничења пакета и забуна протокола од злоупотребе прегледача “, рекао је Камкар у анализи.
Главна идеја је да, знајући параметре фрагментације, можете послати велики HTTP захтев, чији ће реп пасти у други пакет . Истовремено, долазни реп другог пакета се бира тако да искључи HTTP заглавља и скраћује се на податке који у потпуности одговарају другом протоколу за који је подржан NAT пролазак.
У трећој фази, користећи горњу манипулацију, ЈаваСцрипт код генерише и шаље посебно одабрани ХТТП захтев (или ТУРН за УДП) на ТЦП порт 5060 сервера нападача, који ће, након фрагментације, бити подељен у два пакета: а пакет са ХТТП заглављима и делом података и важећи СИП пакет са унутрашњом ИП жртве.
Систем за праћење веза у мрежном стеку ће сматрати овај пакет почетком SIP сесије и дозволиће прослеђивање пакета за било који порт који нападач одабере, под претпоставком да се тај порт користи за пренос података.
Напад се може извршити без обзира на коришћени прегледач . Да би решили проблем, програмери Мозиле су предложили блокирање могућности слања HTTP захтева на мрежне портове 5060 и 5061, који су повезани са SIP протоколом.
Програмери Цхромиум, Блинк и ВебКит мотора такође намеравају да примене сличну меру заштите.
Извор: https://samy.pl