近日浏览友站时,发现首页的新增文章区被垃圾广告帖塞满,明显是遭到了恶意攻击。告知站长后,对方很快完成了修复,并提醒博主I也检查一下版本升级情况。
当时扫了一眼研究所主页,未见明显异常,准备普通地上线点击一下升级键。直到登录后台发现管理员密码无法登录,紧急进入 phpMyAdmin 排查,看到 wp_users 表里多了一整页未知乱码的账号。原账号的密码是否被篡改尚不确定,但可以肯定,研究所也中招了。
wp2shell远程执行漏洞
发现被攻击后,博主I赶紧在phpMyAdmin改好原账号密码并登录回面板,删除所有陌生账号,并检查近期新增的上传文件。在媒体库发现一个看似.jpg但尾缀是.htm的文件,推测是攻击者创建恶意管理员账号后上传,借助这个文件在服务器上进行远程代码执行。直接删除这个文件,并检查其它文件的上传时间。
解决问题后再来检查原因,是最近大范围WordPress网站中招的wp2shell漏洞。攻击者无需账号和登录,绕过权限检查直接通过数据库注入一个管理员账号,之后上传文件和远程执行的webshell。
由于事发突然,WordPress官方紧急推出了升级版本来解决。修复与防护的方法很简单,升级版本并删除多出来的陌生文件。建议升级到不被影响的版本(7.0.2/6.9.5/6.8.6),或先通过 https://wp2shell.com/ 自查确认站点状况。
WPSetup未授权配置接管漏洞
写到这里,顺手填个年初的坑。在虚拟机上复现了一下,过程就不记录了,直接写结论:年初研究所搬迁时未及时删除安装文件夹,被恶意脚本攻击,是WordPress的setup-config.php未授权配置接管漏洞。
WordPress安装脚本在未完成初始化时,允许任何未认证的远程用户通过 HTTP 请求指定任意外部 MySQL 数据库地址,从而完全控制 WordPress 的安装流程。WordPress安装后忘记删除初始安装包,导致有setup-config.php一直是初始状态,被恶意脚本扫描到发起攻击。攻击者绕过图形化安装界面,直接对setup-config.php发送数据包并搭建可远程访问的黑客数据库。站点被强制写入恶意数据库信息,攻击者进一步对本站点提权,接管站点的控制权。
攻击者进一步提权,往服务器里塞了很多怪异命名的文件,在编辑器里点开发现是webshell文件。博主在整理文件时发现了这些内容于是意识到被攻击,清空旧文件夹,导出数据库重装了一遍环境。安装前的预防方法很简单,记得及时删除即可避免。
总结
两起攻击都被大规模自动化扫描利用,由恶意脚本发起,并最终目的指向远程代码执行。攻击者通过未认证的远程代码执行在主题或插件编辑器注入恶意代码,最终部署Webshell。容易中招,但也容易解决,修复后记得检查多出来的陌生文件或重新搭一个纯净的环境。
博主吐槽
被攻击的速度超过了博主更新的速度,看来得常回来看看了,及时检查漏洞和版本更新维护研究所正常运转。结尾鸣谢提醒升级WordPress版本的站长O。
ฅ(Slack有话要喵)ฅ
定期大扫除还是很有必要的喵
COMMENTS | NOTHING