一、漏洞原理
向日葵是一款免费的,集远程控制电脑手机、远程桌面连接、远程开机、远程管理、支持内网穿透的一体化远程控制管理工具软件。向日葵远程控制软件存在未授权访问漏洞,启动服务端软件后,会开放未授权访问端口,攻击者可通过未授权访问无需密码直接获取session,并借此远程执行任意代码。
二、影响范围
向日葵个人版(Windows) <= 11.0.0.33
向日葵简约版 <= V1.0.1.43315(2021.12)
三、漏洞复现
本地windows11环境
安装的向日葵远连版本
物理机的ip地址
通过任务管理器或者命令行tasklist查看进程SunloginCLient.exe的pid,再根据pid查找对应连接端口号当SunloginCLient.exe在Windows上执行时,会连接远程Oray的服务器,同时也会打开一个较大的端口监听外部的连接访问对其中一部分接口,Sunlogin统一对其进行处理。再根据pid逐一查询对应端口
通过网上的经验贴就省去了对端口的排查
是TCP连接并且端口开放在0.0.0.0
所以我就直接拿下图端口进行手工探测
在浏览器输入,通过cgi-bin接口查看泄露的cookie
http://10.10.74.181:13028/cgi-bin/rpc?action=verify-haras
发现浏览器返回(页面和网上大佬分享复现过程返回一样)获取到cookie值:“dmPqDgSa8jOYgp1Iu1U7l1HbRTVJwZL3”接着传入cookie值时发现每一次都是连接被重置
因为是拿物理机直接做实验所以可能win11环境不对,所以拿舍友的win10物理机再次下载含漏洞版本的向日葵发现都是一样的结果,都能得到cookie值但是无法执行
紧接着就对于问题进行排错
发现每次刷新页面cookie值都会改变这就有点不对劲了,cookie变化后比对不匹配肯定是没有办法执行命令的。我认为是因为我的向日葵软甲没有登录账户,是游客账户所以值会一直改变。但是等我登录后发现还是一直会随机变动cookie,翻阅了好久的百度大师傅的文章才知道,值理论上应该是不改变的很奇怪琢磨了很久也切换了很多带漏洞向日葵版本发现都是没办法执行看完了好多技术博主文章
我觉得问题不在这就开始改playload一次次尝试博主的是
http://192.168.234.139:49676/check?cmd=ping..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fwindows%2Fsystem32%2FWindowsPowerShell%2Fv1.0%2Fpowershell.exe+%20whoami
我根据向日葵在本机的位置改为
/check?cmd=nslookup%20c:\windows/system32\CMD.exe%20
发现不行又经过好几个小时的尝试尝试一步步分析playload
下面解释一下playload
CMD /C是命令运行之后窗口关闭了。
windows又不会一级一级得验证目录的有效性,所以只要在ping/nslookup后不加空格并配合多个…/(是点点杠 csdn编辑器刁难我)和目标可执行文件的路径,从而启动任意目标进程(我们启动命令行),以空格分隔命令参数
置于为什么用nslookup是因为只有这个和ping过的了逻辑
看看playload
/check?cmd=nslookup../../../windows/system32\CMD.exe%20/c%20ipconfig
貌似是成功了
功夫不负有心人
第一次复现漏洞就花了整整一天时间
给大佬们看笑话了
查看当前用户应该算是拿到权限了吧!
参考文章:https://www.cnblogs.com/zUotTe0/p/15913108.html
参考文章: https://www.yuque.com/docs/share/e5d6d249-ea52-43a2-92d6-cce40967d3ee?# 《向日葵远程命令执行》