
हैकसुडो थोर के विरुद्ध ब्लैक-बॉक्स पैठ परीक्षण: Apache mod_cgi के माध्यम से CVE-2014-6271 Shellshock RCE, पूर्ण विशेषाधिकार वृद्धि के लिए sudo गलत कॉन्फ़िगरेशन और bash eval इंजेक्शन के साथ श्रृंखलाबद्ध। इसमें कस्टम CSRF-जागरूक ब्रूट फोर्स टूलिंग और Metasploit RPC स्वचालन शामिल है।
लक्ष्य: VulnHub से HackSudo Thor
उद्देश्य: रूट एक्सेस प्राप्त करना और/root/proof.txtपढ़ना
वातावरण: pfSense फ़ायरवॉल द्वारा विभाजित पृथक VirtualBox लैब
इस रिपॉजिटरी में HackSudo Thor पर आयोजित एक आंशिक ब्लैक-बॉक्स पेनेट्रेशन परीक्षण का दस्तावेजीकरण किया गया है, जो Vishal Waghmare द्वारा VulnHub पर प्रकाशित एक जानबूझकर असुरक्षित वर्चुअल मशीन है। लक्ष्य एक वास्तविक दुनिया के हमले का अनुकरण करना था, जिसमें एक बाहरी हमलावर किसी पृथक आंतरिक सिस्टम से समझौता करने का प्रयास करता है, जिसका प्राथमिक उद्देश्य रूट एक्सेस प्राप्त करना और /root/proof.txt की सामग्री पढ़ना है।
यह मूल्यांकन पूर्ण पेनेट्रेशन परीक्षण जीवनचक्र का अनुसरण करता है: निष्क्रिय टोही, नेटवर्क खोज, एन्यूमरेशन, भेद्यता मूल्यांकन, एक्सप्लॉइटेशन, विशेषाधिकार वृद्धि, पोस्ट-एक्सप्लॉइटेशन और निशानों को मिटाना।
प्राथमिक रूप से उपयोग किए गए उपकरण थे: नेटवर्क स्कैनिंग के लिए Nmap, भेद्यता मूल्यांकन के लिए Nessus, और मुख्य एक्सप्लॉइटेशन तथा पोस्ट-एक्सप्लॉइटेशन प्लेटफ़ॉर्म के रूप में Metasploit Framework। पासवर्ड क्रैकिंग चरण के दौरान John the Ripper, Hashcat और ऑनलाइन Rainbow Tables का उपयोग किया गया, हालाँकि प्रयुक्त हैशिंग एल्गोरिथम की मजबूती के कारण सभी प्रयास अंततः असफल रहे।
वर्चुअल लैब पूरी तरह से VirtualBox में बनाई गई थी और इसे तीन अलग-अलग सुरक्षा क्षेत्रों वाले एक यथार्थवादी एंटरप्राइज़ नेटवर्क का अनुकरण करने के लिए डिज़ाइन किया गया था, जो सभी एक pfSense 2.7.2 फ़ायरवॉल द्वारा प्रबंधित हैं। तीनों NAT नेटवर्क निम्नानुसार कॉन्फ़िगर किए गए थे: एक WAN ज़ोन जो सार्वजनिक इंटरनेट का अनुकरण करता है, जहाँ Kali हमलावर मशीन स्थित है; एक DMZ ज़ोन जो लक्ष्य मशीन को होस्ट करता है; और एक आंतरिक LAN ज़ोन जिसमें दायरे से बाहर की मशीनें शामिल हैं।``` Internet Zone — NatNetwork (10.0.2.0/24) │ │ Kali Linux 2025.4 [attacker] — 10.0.2.9 │ pfSense WAN interface — 10.0.2.8 │ ├── pfSense Firewall (boundary device) │ ├── DMZ Zone — DMZnat (10.0.4.0/24) │ ├── HackSudo Thor [TARGET] — 10.0.4.3 │ └── DVWA — 10.0.4.4 (out of scope) │ └── LAN Zone — LANnat (10.0.3.0/24) ├── Metasploitable 2 — 10.0.3.5 (out of scope) └── Windows XP Cyberlab — 10.0.3.4 (out of scope)

*pfSense द्वारा प्रबंधित तार्किक नेटवर्क टोपोलॉजी सुरक्षा क्षेत्र*
WAN इंटरफ़ेस को DHCP द्वारा `10.0.2.8/24` सौंपा गया था, LAN इंटरफ़ेस को `10.0.3.1/24` पर सेट किया गया था, और OPT1 (DMZ) इंटरफ़ेस को `10.0.4.1/24` पर सेट किया गया था। प्रयोगशाला में जानबूझकर गलत कॉन्फ़िगरेशन पेश करने के लिए, पोर्ट 80 को जानबूझकर pfSense WAN इंटरफ़ेस पर खुला छोड़ दिया गया था, जो एक सामान्य वास्तविक-विश्व एडमिन पैनल एक्सपोज़र का अनुकरण करता था जो आंतरिक नेटवर्क में प्राथमिक प्रवेश बिंदु के रूप में कार्य करता था।
---
## आक्रमण श्रृंखला सारांश```
[Kali Linux — 10.0.2.9]
│
│ CSRF-aware Python brute force → admin / pfsense
▼
[pfSense webConfigurator — 10.0.2.8:80]
│
│ Firewall rules disabled → DMZ and LAN now reachable
▼
[HackSudo Thor — 10.0.4.3]
│
│ Shellshock RCE (CVE-2014-6271)
│ Apache mod_cgi → /cgi-bin/shell.sh
▼
[Meterpreter shell — www-data]
│
│ sudo -u thor /home/thor/hammer.sh
│ Command injection via eval → bash -i payload
▼
[Interactive shell — thor]
│
│ GTFOBins: sudo service ../../bin/bash
▼
[Root shell]
│
├── /root/proof.txt captured ✅
├── /etc/shadow + /etc/passwd exfiltrated
└── SSH RSA backdoor planted
लक्ष्य वातावरण से कोई संपर्क करने से पहले, जानकारी विशेष रूप से सार्वजनिक स्रोतों से एकत्र की गई थी। दो प्राथमिक स्रोत HackSudo Thor के लिए आधिकारिक VulnHub प्रविष्टि पृष्ठ और लेखक की सार्वजनिक GitHub प्रोफ़ाइल थे।
VulnHub पृष्ठ ने पुष्टि की कि लक्ष्य एक Linux-आधारित प्रणाली थी, जिसकी कठिनाई आसान से मध्यम आंकी गई थी, तथा उद्देश्य proof.txt फ़्लैग ढूँढना था। लेखक की GitHub प्रोफ़ाइल की समीक्षा से अतिरिक्त जानकारी मिली। Vishal Waghmare पूरी HackSudo श्रृंखला में विशेषाधिकार वृद्धि (privilege escalation) को मुख्य चुनौती के रूप में रखते हुए लगातार Linux boot-to-root मशीनें डिज़ाइन करते हैं। इसने सक्रिय चरणों में प्रवेश करते समय खतरे के मॉडल को आकार दिया: HTTP और SSH सेवाएँ सबसे संभावित आक्रमण सतह थीं, और अनुमान लगाया गया था कि विशेषाधिकार वृद्धि का मार्ग sudo गलत कॉन्फ़िगरेशन, SUID बाइनरी के दुरुपयोग, या किसी कस्टम सेवा के शोषण से जुड़ा होगा।
इस प्रकार का लेखक पैटर्न विश्लेषण वास्तविक अभियान में भी मायने रखता है। यह समझना कि सिस्टम संभवतः कैसे डिज़ाइन किया गया था और इसका प्रशासक किस श्रेणी की कमज़ोरियों को दोहराने की संभावना रखता है, एक भी पैकेट भेजे जाने से पहले दिशा प्रदान करता है।
इस चरण में वातावरण के साथ सीधा सक्रिय संपर्क शामिल था। उद्देश्य सभी सक्रिय होस्टों की पहचान करना, नेटवर्क सीमा को समझना, और प्राथमिक लक्ष्य पर ध्यान केंद्रित करने से पहले पूर्ण आक्रमण सतह की तस्वीर बनाना था।
सबसे पहले WAN सबनेट (10.0.2.0/24) के विरुद्ध न्यूनतम शोर के साथ सक्रिय होस्टों की खोज के लिए एक हल्का Nmap ping स्वीप (-sn) चलाया गया। तीन होस्टों की पहचान हुई: 10.0.2.1 और 10.0.2.2 मानक VirtualBox इंफ्रास्ट्रक्चर पते थे, जिससे 10.0.2.8 एकमात्र गैर-इंफ्रास्ट्रक्चर होस्ट बचा। वह मशीन तत्काल फोकस बन गई।
10.0.2.8 के विरुद्ध एक पूर्ण SYN स्टील्थ स्कैन से कोई परिणाम नहीं मिला। यह त्रुटि नहीं बल्कि अपेक्षित व्यवहार था। एंटरप्राइज़ फ़ायरवॉल पोर्ट स्कैनिंग के प्रति अनुत्तरदायी रहने के लिए डिज़ाइन किए जाते हैं — वे उत्तर देने के बजाय पैकेटों को चुपचाप गिरा देते हैं। परिणामों की अनुपस्थिति स्वयं इस बात की पुष्टि थी कि यह एक नेटवर्क सीमा डिवाइस थी जो सक्रिय रूप से ट्रैफ़िक को फ़िल्टर कर रही थी।
पैकेट स्कैनिंग पर निर्भर हुए बिना यह पुष्टि करने के लिए कि वास्तव में कौन सी सेवाएँ चल रही हैं, curl का उपयोग करके एक सीधा HTTP अनुरोध भेजा गया। यह दृष्टिकोण इसलिए अपनाया गया क्योंकि एक मानक वेब अनुरोध के स्कैनिंग टूल की तुलना में फ़िल्टर होने की संभावना कहीं कम होती है। प्रतिक्रिया HTTP/1.1 200 OK के रूप में आई, जिसमें Server: nginx और पृष्ठ शीर्षक pfSense था, जिससे पुष्टि हुई कि webConfigurator WAN इंटरफ़ेस से पोर्ट 80 पर सीधे पहुँच योग्य था।
लॉगिन पृष्ठ की पुष्टि होते ही, अगला कदम क्रेडेंशियल्स की पुनर्प्राप्ति का प्रयास था। Hydra को प्रारंभ में ब्रूट फोर्स टूल के रूप में चुना गया, लेकिन यह प्रयास दो कारणों से विफल रहा। पहला कारण व्यावहारिक था: rockyou.txt में 14 मिलियन से अधिक प्रविष्टियाँ हैं, जिससे यह इस मूल्यांकन की समय-सीमा में अव्यावहारिक हो गया। दूसरा कारण तकनीकी और अधिक महत्वपूर्ण था: pfSense 2.7.2 CSRF टोकन सुरक्षा लागू करता है, जो हर पृष्ठ लोड पर एक अद्वितीय क्रिप्टोग्राफ़िक टोकन उत्पन्न करता है जिसे क्रेडेंशियल्स के साथ प्रस्तुत किया जाना चाहिए। Hydra का HTTP POST मॉड्यूल एक स्थिर अनुरोध निकाय प्रस्तुत करता है और उसके पास प्रति प्रयास एक नया टोकन गतिशील रूप से लाने का कोई तंत्र नहीं है, इसलिए पासवर्ड की जाँच होने से पहले ही हर प्रस्तुति अस्वीकार कर दी गई।
इससे निपटने के लिए, पूर्ण ब्राउज़र लॉगिन प्रक्रिया की नकल करने हेतु एक कस्टम Python स्क्रिप्ट लिखी गई। प्रत्येक पासवर्ड प्रयास के लिए, स्क्रिप्ट एक नया सत्र खोलती है, लॉगिन पृष्ठ लोड करती है, HTML फ़ॉर्म से वर्तमान CSRF टोकन निकालती है, और फिर उस टोकन के साथ वैसे ही क्रेडेंशियल्स प्रस्तुत करती है जैसे एक ब्राउज़र करता है। CeWL का उपयोग करके pfSense लॉगिन पृष्ठ को क्रॉल करने और प्रासंगिक शब्द निकालने के लिए एक कस्टम वर्डलिस्ट बनाई गई, फिर ज्ञात डिफ़ॉल्ट क्रेडेंशियल्स को कवर करने के लिए इसे fasttrack.txt के साथ पूरक किया गया।
स्क्रिप्ट ने क्रेडेंशियल्स प्राप्त कर लिए: admin / pfsense, जो अपरिवर्तित डिफ़ॉल्ट थे।
कस्टम Python स्क्रिप्ट द्वारा pfSense क्रेडेंशियल्स की पुनर्प्राप्ति
डैशबोर्ड एक्सेस स्थापित होने के बाद, पूर्ण आंतरिक टोपोलॉजी को समझने के लिए pfSense इंटरफ़ेस कॉन्फ़िगरेशन की समीक्षा की गई। इससे दो सबनेट सामने आए जो WAN से अदृश्य थे: 10.0.3.0/24 पर एक LAN और 10.0.4.0/24 पर एक DMZ। फिर वेब इंटरफ़ेस के माध्यम से WAN फ़ायरवॉल नियम अक्षम कर दिए गए, और हमलावर के IP से दोनों सबनेटों में ट्रैफ़िक की अनुमति देने के लिए दो पास नियम जोड़े गए।
दोनों सबनेटों में Nmap ping स्वीप से छह सक्रिय होस्टों की पहचान हुई। उनमें से चार की आगे गहन जाँच की गई, 10.0.4.1 और 10.0.3.1 को छोड़कर, जो pfSense गेटवे इंटरफ़ेस से संबंधित थे। चारों के विरुद्ध एक साथ संस्करण पहचान, डिफ़ॉल्ट NSE स्क्रिप्ट और OS फ़िंगरप्रिंटिंग के साथ एक संयुक्त सेवा गहन जाँच स्कैन चलाया गया। परिणामों को निष्क्रिय टोही से क्रॉस-रेफरेंस करके टोपोलॉजी में प्रत्येक मशीन की पहचान की गई:
लक्ष्य की पुष्टि 10.0.4.3 के रूप में हुई। आगे की सभी गतिविधियाँ विशेष रूप से इसी मशीन पर केंद्रित थीं।
लक्ष्य की पहचान होने के बाद, आक्रमण सतह का मानचित्रण करने और व्यवहार्य शोषण मार्गों का निर्धारण करने के लिए इसकी सेवाओं का गहन विश्लेषण किया गया। इस चरण के लिए Metasploit Framework को प्राथमिक मंच के रूप में उपयोग किया गया, विशेष रूप से इसलिए क्योंकि इसका PostgreSQL बैकएंड सभी स्कैन परिणामों को सत्रों, होस्टों, सेवाओं और भेद्यताओं में स्थायी रूप से संग्रहीत करता है, जो सभी डेटाबेस में रहते हैं और बाद के चरणों में दोबारा स्कैन किए बिना संदर्भ के लिए उपलब्ध रहते हैं।
शुरू करने से पहले, Metasploit को msfdb init के साथ प्रारंभ किया गया, db_status के साथ डेटाबेस कनेक्शन सत्यापित किया गया, और बाद का सारा कार्य msfconsole के भीतर से किया गया।
db_nmap कमांड का उपयोग 10.0.4.3 के विरुद्ध एक पूर्ण स्कैन चलाने के लिए किया गया — SYN स्टील्थ स्कैन, सेवा संस्करण पहचान, डिफ़ॉल्ट NSE स्क्रिप्ट, OS फ़िंगरप्रिंटिंग और सभी 65,535 TCP पोर्ट। परिणाम स्वचालित रूप से डेटाबेस में संग्रहीत किए गए और hosts तथा services के साथ प्राप्त किए गए। तीन सेवाओं के खुले होने की पुष्टि हुई: पोर्ट 21 पर FTP जिस पर Pure-FTPd चल रहा था, पोर्ट 22 पर SSH जिस पर OpenSSH 7.9p1 चल रहा था, और पोर्ट 80 पर HTTP जिस पर Apache 2.4.38 चल रहा था।
फिर प्रत्येक सेवा की लक्षित Metasploit सहायक मॉड्यूल का उपयोग करके आगे गहन जाँच की गई। HTTP सेवा को सबसे अधिक ध्यान मिला। वेब सर्वर पर सभी सुलभ पथों और एंडपॉइंट्स का मानचित्रण करने के लिए dir_scanner और http_crawler मॉड्यूल का उपयोग किया गया। इससे सबसे महत्वपूर्ण खोज /cgi-bin/ निर्देशिका और shell.sh नामक एक स्क्रिप्ट थी। अलग से, news.php के HTML स्रोत कोड की मैन्युअल समीक्षा में लेखक की ओर से एक छिपी हुई टिप्पणी मिली जो /cgi-bin/ निर्देशिका का संदर्भ देती थी — CGI-आधारित भेद्यता की ओर इशारा करने वाला एक जानबूझकर संकेत। FTP सेवा की अनाम पहुँच के लिए जाँच की गई (अक्षम थी), और CVE क्रॉस-रेफरेंसिंग के लिए संस्करण स्ट्रिंग नोट की गई। इसी उद्देश्य के लिए SSH बैनर भी प्राप्त किया गया।
आक्रमण सतह का पूर्ण मानचित्रण हो जाने पर, दो दृष्टिकोणों का उपयोग करके एक संरचित भेद्यता मूल्यांकन किया गया: एक स्वचालित Nessus स्कैन और प्रत्येक सेवा पर लागू मैन्युअल हमलावर तर्क।
CGI स्कैनिंग और वेब एप्लिकेशन परीक्षण को स्पष्ट रूप से सक्षम करते हुए एक कस्टम Nessus नीति बनाई गई, जो पोर्ट 21, 22 और 80 को लक्षित करती थी। ये सेटिंग्स डिफ़ॉल्ट रूप से सक्षम नहीं होतीं और यहाँ महत्वपूर्ण थीं; इनके बिना CGI एंडपॉइंट का परीक्षण नहीं किया जाता। स्कैन लगभग 11 मिनट तक चला और कुल 41 निष्कर्ष लौटाए। कार्रवाई योग्य निष्कर्ष इस प्रकार थे:
/cgi-bin/shell.sh पर मिले दो Shellshock निष्कर्ष तुरंत प्राथमिकता बन गए। CVE-2014-6271 का CVSS स्कोर 9.8 है और यह बिना प्रमाणीकरण के दूरस्थ कोड निष्पादन सक्षम करता है — स्कैन का सबसे उच्च प्रभाव वाला निष्कर्ष। CVE-2014-6278 उसी भेद्यता का एक अपूर्ण पैच दर्शाता है, जिसका अर्थ है कि आंशिक रूप से पैच किए गए सिस्टम भी शोषण योग्य बने रहते हैं। SSH Terrapin कमज़ोरी का आकलन मैन-इन-द-मिडिल स्थिति के बिना गैर-शोषण योग्य के रूप में किया गया। शेष निष्कर्षों का इस अभियान में कोई सार्थक शोषण मूल्य नहीं था।
शोषण की ओर बढ़ने से पहले, Shellshock निष्कर्ष को Nmap की http-shellshock NSE स्क्रिप्ट का उपयोग करके सीधे /cgi-bin/shell.sh पर लक्षित करके स्वतंत्र रूप से सत्यापित किया गया। शोषण से पहले स्वतंत्र सत्यापन कार्यप्रणाली का एक महत्वपूर्ण चरण है, क्योंकि यह पुष्टि करता है कि भेद्यता वास्तविक है और स्कैनर से मिला झूठा सकारात्मक परिणाम नहीं है, और यह ऐसे शोषण को आज़माने में समय बर्बाद होने से बचाता है जो काम नहीं करेगा। NSE स्क्रिप्ट ने पुष्टि की कि एंडपॉइंट कमज़ोर था, और CVE-2014-6271 को प्राथमिक आक्रमण वेक्टर के रूप में चुना गया।
Shellshock की पुष्टि होने के साथ, शोषण चरण शुरू हुआ। यह भेद्यता इसलिए मौजूद है क्योंकि Apache mod_cgi, CGI स्क्रिप्ट के आह्वान पर HTTP अनुरोध हेडरों को पर्यावरण चर के रूप में Bash को भेजता है। Bash के एक बिना पैच वाले संस्करण में, पर्यावरण चर में विशेष रूप से तैयार किया गया फ़ंक्शन परिभाषा उस परिभाषा के बाद जोड़े गए किसी भी कमांड को तुरंत निष्पादित करने का कारण बनता है। /cgi-bin/shell.sh के अनुरोध के User-Agent हेडर में इस पेलोड को इंजेक्ट करके, बिना किसी प्रमाणीकरण के सर्वर पर मनमाने कमांड निष्पादित किए जा सकते थे।
Metasploit मॉड्यूल exploit/multi/http/apache_mod_cgi_bash_env_exec इसे पूर्णतः स्वचालित करता है। मॉड्यूल को RHOSTS के रूप में 10.0.4.3, TARGETURI के रूप में /cgi-bin/shell.sh, पेलोड के रूप में linux/x86/meterpreter/reverse_tcp सेट करके कॉन्फ़िगर किया गया था, और लिसनर को पोर्ट 4444 पर Kali मशीन की ओर इंगित किया गया था। मॉड्यूल चलाने पर दुर्भावनापूर्ण अनुरोध भेजा गया, सर्वर ने पेलोड निष्पादित किया, और Metasploit ने आने वाले कनेक्शन को प्राप्त किया, जिससे www-data के रूप में एक Meterpreter सत्र स्थापित हुआ।
Shellshock शोषण निष्पादित हुआ और www-data के रूप में Meterpreter रिवर्स शेल स्थापित हुआ
www-data से शुरुआत करते हुए, सिस्टम तक पहुँच की सीमा प्रारंभ में अज्ञात थी। तत्काल प्राथमिकता वर्तमान स्थिति को समझना थी — सक्रिय उपयोगकर्ता कौन था, कौन से अन्य खाते मौजूद थे, और उच्च विशेषाधिकारों की ओर कौन से मार्ग उपलब्ध थे।
Meterpreter सत्र को एक कच्चे सिस्टम शेल में बदल दिया गया, और एक उचित इंटरैक्टिव टर्मिनल बनाने के लिए Python के pty मॉड्यूल का उपयोग करके एक स्यूडो-टर्मिनल प्रारंभ किया गया। /etc/passwd पढ़ने और /home/ की सूची देखने से सिस्टम पर thor नामक उपयोगकर्ता की पुष्टि हुई। प्रारंभिक ls -la /home/thor/ पर अनुमति अस्वीकृत मिली, इसलिए निर्देशिका अनुमतियों की परवाह किए बिना thor के स्वामित्व वाली किसी भी फ़ाइल के लिए find / -user thor 2>/dev/null का उपयोग करके फ़ाइलसिस्टम खोजा गया। इससे /usr/local/sbin/ls पर एक विषम बाइनरी मिली — ls नामक एक फ़ाइल जो मानक सिस्टम बाइनरी नहीं थी। इसकी सामग्री से पता चला कि यह Thor के स्वामित्व वाली एक कस्टम स्क्रिप्ट थी, जिसे बाद की जाँच के लिए नोट कर लिया गया।
वर्तमान उपयोगकर्ता की sudo अनुमतियों की जाँच करने का मानक पोस्ट-एक्सप्लोइटेशन चरण sudo -l के साथ किया गया। इससे पता चला कि www-data को बिना पासवर्ड के उपयोगकर्ता thor के रूप में /home/thor/hammer.sh निष्पादित करने की अनुमति थी — एक NOPASSWD नियम जिसका कोई वैध परिचालन औचित्य नहीं था।
sudo -l पुष्टि करता है कि www-data बिना पासवर्ड के thor के रूप में hammer.sh चला सकता है
hammer.sh को पढ़ने की सीधी पहुँच निर्देशिका अनुमतियों द्वारा अवरुद्ध थी, इसलिए इसका व्यवहार देखने के लिए इसे पहले sudo -u thor /home/thor/./hammer.sh के साथ निष्पादित किया गया। स्क्रिप्ट ने दो इंटरैक्टिव प्रॉम्प्ट प्रस्तुत किए: एक "Secret Key" (गुप्त कुंजी) और एक "Secret Message" (गुप्त संदेश)। पहले प्रॉम्प्ट ने इनपुट को अभिवादन के रूप में प्रतिध्वनित किया। दूसरे ने इनपुट को संसाधित किया और फिर बाहर निकल गया। इन दोनों व्यवहारों के बीच का अंतर महत्वपूर्ण था: यदि दोनों प्रॉम्प्ट केवल इनपुट को प्रतिध्वनित करते, तो न तो कोई दिलचस्प होता। तथ्य यह है कि दूसरे प्रॉम्प्ट ने जवाब देने से पहले इनपुट को संसाधित किया, यह सुझाव देता था कि यह मान को एक शेल कमांड में पारित कर रहा था — एक पैटर्न जो eval स्टेटमेंट के अनुरूप है, जो एक सुप्रलेखित कमांड इंजेक्शन आक्रमण सतह है।
दूसरे निष्पादन पर, पहले प्रॉम्प्ट को एक खाली इनपुट दिया गया। दूसरे प्रॉम्प्ट में इंजेक्शन पेलोड bash -i प्रदान किया गया। इससे thor के रूप में एक इंटरैक्टिव शेल प्रारंभ हुआ।
hammer.sh में bash -i पेलोड इंजेक्ट किया गया
sudo -l को पुनः thor के रूप में चलाया गया। इससे पता चला कि root के रूप में /usr/bin/cat और service दोनों तक अप्रतिबंधित NOPASSWD पहुँच थी। service नियम सबसे महत्वपूर्ण था। GTFOBins की sudo service तकनीक सेवा नाम तर्क के रूप में एक पाथ ट्रैवर्सल स्ट्रिंग पारित करने की अनुमति देती है। ../../bin/bash प्रदान करने से service बाइनरी ट्रैवर्सल को हल करके root विशेषाधिकारों के साथ /bin/bash का आह्वान करती है।```bash
sudo service ../../bin/bash
इससे पूर्ण रूट शेल प्राप्त हुआ।

*GTFOBins sudo service पाथ ट्रैवर्सल के माध्यम से प्राप्त रूट शेल की पुष्टि हुई*
## चरण 7: पोस्ट-एक्सप्लॉइटेशन
रूट पहचान की पुष्टि के बाद, पोस्ट-एक्सप्लॉइटेशन चरण तीन क्षेत्रों पर केंद्रित था: सिस्टम वातावरण को समझना, संवेदनशील डेटा निकालना, और स्थायी पहुँच स्थापित करना।
### सिस्टम जानकारी और फ़्लैग
लक्ष्य की पहचान की पुष्टि करने और सुधार सिफारिशों के लिए संदर्भ तैयार करने हेतु पहले बुनियादी सिस्टम गणना की गई, जिसमें कर्नेल संस्करण, OS रिलीज़ और नेटवर्क कॉन्फ़िगरेशन शामिल थे। सिस्टम की पुष्टि Debian GNU/Linux 10 (Buster) के रूप में हुई, जो `10.0.4.3` पर कर्नेल 4.19.0-17-686-pae चला रहा था।
रूट होम निर्देशिका को सूचीबद्ध किया गया, जिससे `proof.txt` और `root.txt` का पता चला। प्राथमिक फ़्लैग, जो इस अभियान का घोषित उद्देश्य था, को प्राप्त करने के लिए `proof.txt` फ़ाइल पढ़ी गई।

*proof.txt की सामग्री, प्राथमिक फ़्लैग कैप्चर किया गया*
### क्रेडेंशियल निष्कर्षण और पासवर्ड क्रैकिंग
`/etc/shadow` और `/etc/passwd` फ़ाइलों को `/tmp` में कॉपी किया गया और Meterpreter के माध्यम से हमलावर मशीन पर डाउनलोड किया गया। ये दोनों फ़ाइलें मिलकर सिस्टम उपयोगकर्ता खाते और पासवर्ड हैश प्रदान करती हैं, जो ऑफ़लाइन क्रैकिंग के लिए आवश्यक हैं।
कई क्रैकिंग दृष्टिकोण आज़माए गए। John the Ripper ने दोनों हैश को 5,000 पुनरावृत्तियों के लागत कारक के साथ SHA-512crypt के रूप में पहचाना। `rockyou.txt` का उपयोग करने वाला पहला प्रयास बिना किसी परिणाम के घंटों चलने के बाद रोक दिया गया। SHA-512crypt की संगणनात्मक लागत GPU त्वरण के बिना संपूर्ण शब्दकोश हमलों को बहुत धीमा बना देती है। टोही के दौरान एकत्रित खुफिया जानकारी से निर्मित एक कस्टम लक्षित शब्दसूची के साथ दूसरा प्रयास शीघ्र पूरा हुआ लेकिन कोई मेल नहीं मिला।
इसके बाद CrackStation को एक ऑनलाइन रेनबो टेबल सेवा के रूप में आज़माया गया, लेकिन इसने दोनों प्रविष्टियों के लिए एक अपरिचित हैश प्रारूप लौटाया। यह अपेक्षित था; SHA-512crypt हैशिंग से पहले प्रत्येक हैश में एक अद्वितीय यादृच्छिक सॉल्ट जोड़ता है, जिसका अर्थ है कि समान पासवर्ड हर खाते के लिए एक अलग हैश उत्पन्न करता है। रेनबो टेबल ज्ञात पासवर्डों के लिए हैश की पूर्व-गणना करके काम करती हैं, लेकिन प्रत्येक संभावित सॉल्ट मान के लिए एक अलग तालिका की आवश्यकता होगी, जिससे यह दृष्टिकोण सॉल्टेड हैश के विरुद्ध पूरी तरह से अव्यावहारिक हो जाता है।
अंतिम प्रयासों के लिए Hashcat का उपयोग किया गया, जिसमें क्रमिक रूप से तीन शब्दसूचियाँ उपयोग की गईं: `fasttrack.txt` (4 सेकंड में समाप्त), एक कस्टम लक्षित सूची (बिना मेल के समाप्त), और `rockyou.txt` से शीर्ष 100,000 प्रविष्टियाँ (3 मिनट के बाद विफल)। सभी पासवर्ड क्रैकिंग प्रयास असफल रहे। उच्च पुनरावृत्ति गणना के साथ सॉल्टेड SHA-512crypt का उपयोग ही इसका कारण है; एल्गोरिथ्म को जानबूझकर संगणनात्मक रूप से महँगा बनाया गया है, ठीक इस प्रकार के ऑफ़लाइन हमले का प्रतिरोध करने के लिए।
### SSH कुंजी खोज
`find` का उपयोग करके RSA निजी कुंजी फ़ाइलों और PEM प्रमाणपत्रों के लिए एक फाइलसिस्टम खोज भी की गई। मिलने वाली कोई भी निजी कुंजी उन अन्य सिस्टमों तक पहुँच प्रदान कर सकती थी जो संबंधित सार्वजनिक कुंजी पर भरोसा करते हैं, जो एक मूल्यवान पार्श्विक संचलन अवसर है। अन्य सिस्टमों से संबंधित कोई निजी कुंजी नहीं मिली।
### बैकडोर तैनाती
स्थायी पहुँच को रूट खाते की `authorized_keys` फ़ाइल में एक RSA सार्वजनिक कुंजी इंजेक्ट करके कार्यान्वित किया गया। SSH कुंजी-आधारित प्रमाणीकरण को चुना गया क्योंकि यह पासवर्ड पर निर्भर नहीं करता है और जब तक `authorized_keys` फ़ाइल का विशेष रूप से ऑडिट नहीं किया जाता, तब तक इसका पता लगाना कठिन है। Kali मशीन पर एक 4096-बिट RSA कुंजी जोड़ी उत्पन्न की गई, और सही निर्देशिका और फ़ाइल अनुमतियाँ सेट करके सार्वजनिक कुंजी को लक्ष्य पर `/root/.ssh/authorized_keys` में जोड़ा गया। बैकडोर के कार्यात्मक होने की पुष्टि करने के लिए निजी कुंजी का उपयोग करके लक्ष्य पर वापस एक कनेक्शन स्थापित किया गया।

*निजी कुंजी प्रमाणीकरण के माध्यम से स्थायी रूट पहुँच की पुष्टि हुई*
### स्वचालन
संपूर्ण पोस्ट-एक्सप्लॉइटेशन श्रृंखला को स्वचालित करने के लिए एक कस्टम Metasploit RPC Python स्क्रिप्ट (`thor_full_chain.py`) भी विकसित की गई। स्क्रिप्ट एक लाइव Metasploit RPC सत्र से जुड़ती है और पूरे अनुक्रम को संभालती है: `www-data` शेल स्थिरीकरण, thor तक उन्नयन के लिए hammer.sh इंजेक्शन, रूट तक GTFOBins उन्नयन, फ़्लैग कैप्चर, क्रेडेंशियल निष्कर्षण, और टाइमस्टैम्प्ड लॉगिंग के साथ बैकडोर तैनाती, जो एक स्थानीय फ़ाइल में सहेजी जाती है। यह एक अतिरिक्त डिलिवरेबल था जो Metasploit RPC API का उपयोग करके हमले की श्रृंखला स्वचालन की क्षमता प्रदर्शित करता है। पूर्ण कार्यान्वयन के लिए `scripts/thor_full_chain.py` देखें।
## चरण 8: निशान छिपाना
अंतिम चरण में लक्ष्य सिस्टम और Kali हमलावर मशीन दोनों से घुसपैठ के साक्ष्य को हटाना शामिल था। लक्ष्य पर, Apache एक्सेस लॉग को साफ़ करने के लिए सबसे महत्वपूर्ण फ़ाइल थी, क्योंकि इसमें वह कच्चा Shellshock HTTP अनुरोध था जिसने प्रारंभिक शोषण को ट्रिगर किया था। auth लॉग को साफ़ किया गया, क्योंकि इसमें उन्नयन चरण के दौरान उपयोग किए गए प्रत्येक sudo कमांड को संग्रहीत किया गया था। syslog, बाइनरी लॉगिन रिकॉर्ड (`wtmp`, `btmp`, `lastlog`), और `root` और `www-data` दोनों का bash इतिहास सभी को अधिलेखित कर दिया गया और खाली सत्यापित किया गया।
Kali पर, Metasploit वर्कस्पेस को `workspace -d default` के साथ हटा दिया गया, डाउनलोड की गई क्रेडेंशियल फ़ाइलों को हटा दिया गया, SSH कुंजी जोड़ी को नष्ट कर दिया गया, और bash इतिहास को साफ़ कर दिया गया। अगले चरण पर जाने से पहले प्रत्येक चरण को सत्यापित किया गया।
SSH बैकडोर के लिए एक जानबूझकर अपवाद बनाया गया था, और इससे जुड़ी कुंजी फ़ाइलों को लक्ष्य पर बनाए रखा गया और इस चरण में नहीं हटाया गया, क्योंकि मूल्यांकन प्रस्तुति में प्रदर्शन उद्देश्यों के लिए उनकी आवश्यकता थी।
## शोषित कमजोरियाँ
| कमजोरी | CVE | CVSS | घटक | विधि |
|--------------|-----|------|-----------|--------|
| Shellshock RCE | CVE-2014-6271 | 9.8 | Apache mod\_cgi + अनपैच्ड Bash | दुर्भावनापूर्ण User-Agent हेडर के साथ Metasploit |
| डिफ़ॉल्ट क्रेडेंशियल | — | — | pfSense webConfigurator | `admin / pfsense` इंस्टॉलेशन के बाद अपरिवर्तित |
| Sudo गलत विन्यास (www-data) | — | — | `/etc/sudoers` | NOPASSWD `hammer.sh` thor के रूप में निष्पादन योग्य |
| hammer.sh में कमांड इंजेक्शन | — | — | कस्टम bash स्क्रिप्ट | `bash -i` पेलोड के माध्यम से `eval` इंजेक्शन |
| Sudo गलत विन्यास (thor) | — | — | `/etc/sudoers` | रूट के रूप में NOPASSWD अप्रतिबंधित `service` |
---
## उपयोग किए गए उपकरण
| उपकरण | उद्देश्य |
|------|---------|
| Nmap | होस्ट खोज, पोर्ट स्कैनिंग, OS फ़िंगरप्रिंटिंग, NSE Shellshock सत्यापन |
| Metasploit Framework | डेटाबेस-समर्थित गणना, शोषण, Meterpreter, पोस्ट-एक्सप्लॉइटेशन |
| Nessus Essentials | CGI और वेब एप्लिकेशन स्कैनिंग के साथ संरचित कमजोरी मूल्यांकन |
| Hydra | CSRF सुरक्षा के कारण प्रारंभिक pfSense ब्रूट फोर्स प्रयास असफल |
| CeWL | pfSense लॉगिन पृष्ठ को क्रॉल करके कस्टम शब्दसूची निर्माण |
| Python 3 + BeautifulSoup | CSRF-जागरूक pfSense ब्रूट फोर्स स्क्रिप्ट |
| pymetasploit3 | पूर्ण हमले की श्रृंखला स्वचालन के लिए Metasploit RPC API क्लाइंट |
| John the Ripper | ऑफ़लाइन SHA-512crypt हैश क्रैकिंग |
| Hashcat | GPU-त्वरित SHA-512crypt क्रैकिंग प्रयास |
| CrackStation | ऑनलाइन रेनबो टेबल लुकअप |
| GTFOBins | sudo service विशेषाधिकार उन्नयन तकनीक के लिए संदर्भ |
| curl | pfSense WAN के विरुद्ध HTTP सेवा सत्यापन |
---
## सिफारिशें
**Bash को तुरंत पैच करें।** Shellshock भेद्यता इसलिए मौजूद है क्योंकि इस Debian 10 सिस्टम पर Bash को कभी अपडेट नहीं किया गया है। `apt-get update && apt-get upgrade bash` चलाने से भेद्यता समाप्त हो जाती है। पैचिंग के अलावा, यदि CGI स्क्रिप्ट परिचालन रूप से आवश्यक नहीं हैं, तो `/cgi-bin/` निर्देशिका को Apache कॉन्फ़िगरेशन में पूरी तरह से अक्षम कर दिया जाना चाहिए, जिससे Bash संस्करण की परवाह किए बिना हमले की सतह समाप्त हो जाती है।
**sudo नियमों का ऑडिट करें और सख्त करें।** दो NOPASSWD sudo नियमों ने संपूर्ण विशेषाधिकार उन्नयन श्रृंखला बनाई। किसी भी नियम के पास वैध औचित्य नहीं है। `/etc/sudoers` फ़ाइल की समीक्षा की जानी चाहिए और दोनों प्रविष्टियाँ हटा दी जानी चाहिए। कम से कम विशेषाधिकार का सिद्धांत किसी भी भविष्य के sudo कॉन्फ़िगरेशन को नियंत्रित करना चाहिए; खातों के पास केवल वही विशिष्ट पहुँच होनी चाहिए जिसकी उन्हें वास्तव में आवश्यकता है, कुछ भी अधिक नहीं।
**शेल स्क्रिप्ट से eval हटाएँ।** `hammer.sh` स्क्रिप्ट ने उपयोगकर्ता इनपुट को बिना किसी सत्यापन या स्वच्छता के सीधे `eval` स्टेटमेंट में पास किया। यही वह चीज़ थी जिसने कमांड इंजेक्शन को संभव बनाया। उपयोगकर्ता इनपुट स्वीकार करने वाली शेल स्क्रिप्ट में `eval` के उपयोग से पूरी तरह बचा जाना चाहिए, क्योंकि यह लगभग हमेशा एक हमले की सतह होती है। किसी भी प्रक्रिया से पहले इनपुट को एक सख्त अनुमतिसूची के विरुद्ध मान्य किया जाना चाहिए।
**pfSense डिफ़ॉल्ट क्रेडेंशियल बदलें और पहुँच प्रतिबंधित करें।** webConfigurator WAN इंटरफ़ेस पर अपरिवर्तित डिफ़ॉल्ट क्रेडेंशियल `admin / pfsense` का उपयोग करके उजागर किया गया था। इंस्टॉलेशन के तुरंत बाद डिफ़ॉल्ट क्रेडेंशियल बदल दिए जाने चाहिए। webConfigurator WAN से कभी भी पहुँच योग्य नहीं होना चाहिए; पहुँच केवल LAN या एक समर्पित प्रबंधन इंटरफ़ेस तक सीमित होनी चाहिए।
**केंद्रीकृत लॉगिंग लागू करें।** चरण 8 में, सभी स्थानीय लॉग मिनटों के भीतर साफ़ कर दिए गए, जिससे लक्ष्य सिस्टम पर घुसपैठ का कोई निशान नहीं बचा। इसने प्रदर्शित किया कि लक्ष्य के पास कोई केंद्रीकृत लॉग प्रबंधन नहीं था। उत्पादन वातावरण में, लॉग को वास्तविक समय में एक दूरस्थ SIEM को अग्रेषित किया जाना चाहिए। यह सुनिश्चित करता है कि भले ही कोई हमलावर लॉग को स्थानीय रूप से साफ़ कर दे, साक्ष्य पहले ही सिस्टम से बाहर संरक्षित हो चुके होते हैं और उनके साथ छेड़छाड़ नहीं की जा सकती।
---
## रिपॉजिटरी संरचना```
hacksudo-thor-pentest/
│
├── README.md
├── report.pdf ← Full penetration testing report
│
├── scripts/
│ ├── pfsense_brute.py ← CSRF-aware pfSense brute force script
│ └── thor_full_chain.py ← Metasploit RPC attack chain automation
│
└── screenshots/
├── network.PNG
│
├── Discovery/
│ └── pfsenselogin.png
│
└── exploit/
├── sheellockexploit.PNG
├── sudol.PNG
├── hammer.bash-i.PNG
├── privilage escaltiontoroot.PNG
├── proof.PNG
└── backdoor.PNG
यह पेनिट्रेशन परीक्षण विशेष रूप से Oracle VirtualBox में निर्मित एक स्व-निहित, पृथक आभासी प्रयोगशाला वातावरण के भीतर आयोजित किया गया था। HackSudo Thor एक जानबूझकर कमजोर CTF मशीन है जिसे सुरक्षा शिक्षा और अभ्यास के स्पष्ट उद्देश्य के लिए VulnHub पर प्रकाशित किया गया है।
| फ़ील्ड | विवरण |
|---|
| लक्ष्य | HackSudo Thor |
| लेखक | Vishal Waghmare (@hacksudo) |
| रिलीज़ | 3 August 2021 |
| कठिनाई | आसान से मध्यम |
| OS | Linux (Debian) |
| प्रारूप | VirtualBox OVA |
| DHCP | सक्षम |
| अनुमानित आक्रमण सतह | HTTP, SSH, sudo गलत कॉन्फ़िगरेशन संभावित |
| IP पता | मुख्य सेवाएँ | OS | पहचान |
|---|
| 10.0.4.3 | SSH 7.9p1, Apache 2.4.38, FTP | Linux (Debian) | HackSudo Thor |
| 10.0.4.4 | Apache 2.4.29, DVWA v1.10 | Linux (Ubuntu) | DVWA |
| 10.0.3.4 | Microsoft IIS 5.1 | Windows XP/2003 | WinXP Cyberlab |
| 10.0.3.5 | vsftpd 2.3.4, SSH, Apache 2.2.8 | Linux (Ubuntu) | Metasploitable 2 |
| गंभीरता | निष्कर्ष | CVE | CVSS v3 |
|---|
| गंभीर | Shellshock RCE | CVE-2014-6271 | 9.8 |
| गंभीर | Shellshock अपूर्ण सुधार | CVE-2014-6278 | 8.8 |
| मध्यम | SSH Terrapin कमज़ोरी | CVE-2023-48795 | 5.9 |
| मध्यम | ब्राउज़ करने योग्य वेब निर्देशिकाएँ | — | 5.3 |
| मध्यम | क्लिकजैकिंग / कोई X-Frame-Options नहीं | CWE-693 | 4.3 |
| निम्न | ICMP टाइमस्टैम्प प्रकटीकरण | CVE-1999-0524 | 2.1 |