记一次网络安全应急响应流程
0x01 事件分析
网站源码被篡改,攻击者一定获取到了权限,那么接下来的思路就是推测攻击者入侵手段,找到业务脆弱点,对服务器进行全方位排查,找到攻击者留下来的痕迹并进行分析处理。
2.1 信息收集
与客户简单沟通后,得知如下基本信息:
官网服务器为租赁的阿里云虚拟专用服务器
虚拟专用服务器上部署的官网后台使用了 DedeCMS 织梦系统
虚拟专用服务器安装了宝塔面板服务器运维系统
虚拟专用服务器安装的宝塔面板的密码已被篡改
2.2 攻击入口判断
服务器开放了 SSH、宝塔、DedeCMS 等 3 个服务,那么接下来我们从服务器开放的服务来推测可能的攻击入口。
玩过宝塔的朋友都知道,宝塔后台路径未知的情况下,通过宝塔后台 GetShell 基本上是不可能的。此外,客户设置的 BT 面板的用户名也有些复杂,所以推断攻击者从宝塔下手的可能性很小(这里埋个坑,前面提到客户宝塔后台密码被修改的情况,后面会说到原因)。
客户官网使用的 DedeCMS 版本为 v5.7 sp2,尝试所有公开漏洞均未成功。并且,DedeCMS 的后台密码没有规律,所以推测从 DedeCMS 入侵的可能性也不是很大。
客户给出了服务器的账号密码,第一反应是入侵从 SSH 弱口令开始的。因为爆破字典里包含了服务器的密码,但这显然还不能直接让客户信服。

综上,高度怀疑服务器是被爆破 SSH 弱口令后导致了后续的入侵行为。
2.3 应急响应
在判断攻击入口后,我们登录客户的服务器,仔细抡了一遍,只能说服务器上的东西有点多。。。
2.3.1 BC 黑页 &PHP 后门
首先访问客户首页,发现官网页面表面没有任何异常,也并未被重定向到 BC 网站。但是实际上网页 Meta 信息被篡改,且会异步请求 BC 网站和百度统计的若干接口。

推测攻击者的目的应为 BC 网站 SEO 优化,提高网站的 SEO 排名。
①网络安全学习路线
②20 份渗透测试电子书
③安全攻防 357 页笔记
④50 份安全攻防面试指南
⑤安全红队渗透工具包
⑥网络安全必备书籍
⑦100 个漏洞实战案例
⑧安全大厂内部教程
定位到服务器上的 DedeCMS 网站源码,发现源码在 7 月 17 日被修改植入了恶意代码。

网站源码被插入 2 个新的 meta 元素,以及一段 JavaScript 代码。下图为新增的 meta 元素,解码后发现是菠菜搜索关键词。


新插入的 JavaScript 代码如下图所示。解码后发现是一段引用外部 js 的代码。


恶意 js 文件的内容为:

此文件的作用就是插入https://sjbgw2022.com/tb.js的恶意文件以及对恶意 SEO 优化。
继续查看 tb.js 这个文件内容:
发现这个文件的作用是恶意 SEO 优化,判断访问网站的来路,如果是从搜索引擎过来的就会跳转至菠菜页面,如果是直接访问官网则不会有变化。菠菜页面截图如下所示:

此外,在 DedeCMS 源码目录发现了很多 PHP 后门。

2.3.2 宝塔沦陷
接下来我们进行了日志排查,发现系统日志都已经被清理。


前面说到宝塔密码已被修改,那么为了登入宝塔,我们直接修改宝塔密码。在服务器上输入 bt 命令进行修改。

登入宝塔后台后,我们发现最后一次登录时间为 7 月 16 日,攻击者上传了一个名为 zxc.php 的木马文件。

网站日志未被删除,日志显示攻击者在 7 月 17 日通过 zxc.php 上传大量后门文件,下图为日志访问记录截图。

下图为一个 PHP 大马的截图。

综上所述,推断攻击者是菠菜 SEO 黑产组织,攻击手法为利用 SSH 弱口令远程登录服务器,修改宝塔后台密码后上传木马,进而通过代理机器继续上传其它木马文件。这是 2.2 节中所述的宝塔密码被篡改的原因。
2.3.3 门罗币挖矿木马
服务器上的问题还不仅仅是被挂黑页这么简单。服务器进程排查过程中发现,某进程 CPU 占用率特别高,不出意外就是挖矿程序了。

跟踪定位文件位置为/root/.warmup/。

发现挖矿配置文件/root/.warmup/config.json。

从网络通联信息发现矿池地址为 5.133.65.53 至 5.133.65.56 的 IP 段。威胁情报表明这是一个门罗币矿池。


杀死挖矿进程后程序自启动,删除挖矿文件后发现过一段时间文件会被重新下载并运行。这说明存在挖矿守护进程或定时任务。经分析,发现一个 5 月 7 日就创建的定时挖矿任务。


somescript 文件内容为创建一个挖矿自启动服务 warmup,保证进程或文件被删除后能重新加载挖矿程序。



2.3.4 xray 代理
Xray 是 V2ray 的一个分支(Fork)。Xray 项目基于 V2ray 而来,其支持并且兼容 V2ray 的配置,其官方网站为(https://xtls.github.io/Xray-docs-next/),我们在进程排查中发现有 Xray 程序正在运行。

Xray 最后一次运行时间为 8 月 17 日。

2.3.5 SSH 后门
最后,除了后门、定时任务外,继续查看服务器上是否有攻击者留下的手段。我们发现服务器在 5 月 9 日被写入 SSH 公钥,经与客户确认不是客户所为。

0x03 应急处理
客户有业务数据备份,那么处理和加固就简单多了。我们对服务器进行了如下操作:
重置系统服务器
修改服务器、系统后台的口令,加强口令复杂度,避免出现连续性口令
自定义日志目录,避免日志被删除
网站目录设置除 root 外所有用户禁止写入
上传目录做权限设置
评论