一 基本情况
1.1 简要
此事件是去年应急处置时完成的报告,距今有半年时间了。一直存在电脑里,最近准备完善应急响应中遇到的各类安全事件,这篇文章作为这一系列的开端。
对于 Linux 安全检查,个人上段时间写了个 shell 用于一键进行 Linux 安全检查,本文对 Linux 的检查使用相关脚本均可实现,相关链接如下:
1.2 情况简介
2018 年 11 月 8 日,我司「捕影」应急响应小组接到驻场团队反馈,某用户 OA 被 360 浏览器提示「网站存在数字货币挖矿行为」,我司应急响应小组进行分析后确认为真实事件,随后进行黑客入侵分析。
1.3 应急结果
经过分析,判断此次事件为黑客恶意攻击所致,经过安徽三实「捕影」应急响应小组的分析,目前得到以下结论:
1. 此 OA 为某用户老的 OA,因为需要使用其数据才临时启用。
2. 此服务器对应内部 IP 为 10.134.1.76,目前对互联网仅开放其 6001 端口,22 端口只能通过内部访问;目前仅对互联网开放 6001 端口。
3. 系统账号正常
4. 网络连接情况正常
5. 开放端口过多,建议禁用非业务端口
6. 定时任务发现历史 (2018 年 10 月 29 日至 2018 年 11 月 8 日) 曾定时下载挖矿程序
7. 历史命令分析历史曾下载挖矿程序
8. 启动项正常
9. 系统层面未发现病毒、木马、后门
10. 因为其 OA 日志仅保存 2018 年 11 月 13 日至 2018 年 11 月 14 日,黑客植入挖矿程序在 2018 年 11 月 8 号及以前,无相关日志,无法分析黑客入侵的途径。
11. 目前追溯到 2018 年 10 月 29 日已被植入挖矿程序;2018 年 11 月 8 日或更早被植入 JS 代码进行挖矿
12. 未保存黑客攻击时 web 应用的相关日志,无法通过日志分析黑客入侵的方式,但是 webgloic 相关版本存在较多高危漏洞,推测利用 weblogic 漏洞入侵的可能性较大。
二 分析过程
下面将针对此次应急处置的过程做大致的阐述。
2.1 入侵现象
2018 年 11 月 8 日,我司「捕影」应急响应小组接到驻场团队反馈,某用户 OA 被 360 浏览器提示「网站存在数字货币挖矿行为」,具体情况如下所示:
图 1-360 浏览器提示 OA 系统「网站存在数字货币挖矿行为」
2.2 挖矿验证
360 浏览器提示「网站存在数字货币挖矿行为」, 说明可能存在相关行为。我司应急响应人员对其网站源码分析,发现页面有多处加载 JS 的行为,通过对加载的 JS 逐一分析,发现有一处 JS 有可疑。
图 2-OA 加载 JS 脚本
对这一 JS 脚本进行分析,发现该脚本的确被植入 JS 挖矿脚本,具体如下:
图 3-OA 加载挖矿脚本
图 4-挖矿 JS 代码功能
图 5-挖矿 JS 源码
图 6-挖矿网站
图 7-LoginID 细节
可以看到,这里面的 ID31f7dd372f1545eeb6db379490b0e3c5 为 LoginID, 而非 XMR 的地址,通过将 XMR 地址通过相应的算法转换为 LoginID, 避免了查找真实的 XMR 地址,起到了保护隐私的目的。
通过上面的分析,可以看到该 JS 的大概功能如下:
矿池地址 | wss://xmr.omine.org:8181 |
---|---|
挖矿方式 | 网页挖矿 (JS 挖矿) 正常用户访问被植入 JS 的网站 (OA 系统),正常用户的浏览器都会自动为攻击者挖矿。挖矿使用 CPU 挖矿,浏览器会占用所有的 CPU 资源。 |
植入的 JS | https://xmr.omine.org/assets/v7.js |
XMR 地址 | 无法查到,攻击者将 XMR 地址使用算法转换为 LoginID,从而避免查找其 XMR 地址以及相关的挖到数字货币的相关数据。 LoginID: 31f7dd372f1545eeb6db379490b0e3c5 |
挖矿 JS 被植入时间 | 2018 年 11 月 8 日或更早 |
挖数字货币类型 | XMR 门罗币, 一种全匿名的数字货币。其特点在于交易过程全匿名,无法追踪。 |
服务器被植入挖矿脚本说明服务器肯定被黑客入侵了,由于目前 OA 系统服务器仅 6001 端口对互联网开放,因此通过 web 应用入侵的可能性比较大。另外,黑客入侵以后可能会对系统及应用进行操作,如添加账号、开放端口、增加定时任务、自启动程序、植入 webshell、后门等,因此需要对系统对 web 应用进行全面分析,以发现黑客可能进行的恶意操作行为。
2.3 系统分析
2.3.1 开放端口分析
对 OA 服务器的开放端口, 发现其开放以下端口。
图-8-开放端口
序号 | 开放端口 | 应用 | 建议 |
---|---|---|---|
1 | 21 | vsftpd | 建议只对内网开放,并且访问需要经过堡垒机。 |
2 | 22 | SSH | 建议只对内网开放,并且访问需要经过堡垒机。 |
3 | 111 | portmap | 建议分析,并决定是否需要关闭 |
4 | 631 | cupsd | 建议分析,并决定是否需要关闭 |
5 | 925 | rpc.statd | 建议分析,并决定是否需要关闭 |
6 | 2207 | python | 建议重点分析,并决定是否需要关闭 |
7 | 2208 | hpiod | 建议分析,并决定是否需要关闭 |
8 | 6001 | OA 应用端口 | 建议经过 WAF 防护 |
结论:通过以上分析,可以看出该台服务器开放较多非业务端口,建议根据实际情况进行决定是否需要开放。
2.3.2 网络连接分析
通过分析 OA 服务器,目前只发现有以下连接。
图 9-网络连接情况
相关连接作用主要如下:
序号 | 连接 | 说明 |
---|---|---|
1 | 10.134.1.76:*->10.134.1.74:1521 | 和 Oracle 数据库交互,其为用户访问 OA 时调用后台数据库 |
2 | 10.134.1.76:22<-10.134.8.222 | 内部运维访问该服务器 |
3 | 10.134.1.76:6001<-220.178.108.2 | 用户通过互联网访问 OA |
结论:通过上面的分析,可以看出网络连接层面正常。
2.3.3 账号分析
2.3.3.1 root 权限用户
目前仅有 root 一个用户具有 root 权限。
图 10-root 权限用户
2.3.3.2 可登录用户
OA 服务器有三个用户可以使用 SSH 方式进行登录:root、ahsx、suncn
图 11-可登录用户
通过/etc/shadow 文件分析,也仅 root、ahsx 和 suncn 三个账号可以登录。
图 12-可登录用户
结论:通过上面的分析,可以看出账号层面正常。
2.3.4 定时任务分析
通过分析,系统未见定时任务。
图 13-定时任务
但是对/var/log/cron*日志分析,发现存在 5 个相关的日志。
图 14-定时任务日志
对日志内容进行分析,发现 10 月 29 日 0 点 08 分 01 秒使用 root 账号下载一个 sh 文件。
图 15-日志分析
该定时任务一直到 2018 年 11 月 8 日 17:49:01 秒才结束。
图 16-定时日志分析
2.3.4.1 mr.sh 脚本分析
对 mr.sh 脚本进行分析,发现 mr.sh 脚本功能非常强大。大概功能如下:
1. 杀掉部分进程、网络连接
2. 更改主机的 iptables,拒绝部分主机访问
3. 自动下载其他恶意脚本、文件, 并执行
4. 将恶意脚本加入到自启动中
5. 删除安装后的恶意脚本与临时文件
图 17-mr.sh 脚本内容
2.3.4.2 wc.conf 分析
wc.conf 该文件主要为挖矿的配置文件,里面包括矿池地址、矿工名以及挖矿的相关配置。
图 18-wc.conf 分析
通过以上的分析,可以看到,黑客在 2018 年 10 月 29 日 0 点 08 分 01 秒前已经入侵该台服务器,植入挖矿程序,直到 2018 年 11 月 8 日 17 时 49 分该挖矿程序才停止。
2.3.5 历史命令分析
通过对历史命令分析,可以看到曾执行以下恶意脚本。通过对脚本内容分析,发现其是一个挖矿脚本,和 http://www.tionhgjk.com:8220/mr.sh 为同一脚本。
图 19-部分历史命令
图 20-192.99.142.246:8220/mr.sh 恶意脚本内容
结论:历史命令发现曾执行恶意脚本,脚本主要功能为下载挖矿程序。
2.3.6 Hosts 文件分析
Host 文件记录域名到 IP 的对应关系,在查询时其优先级别高于 DSN 查询,黑客经常将正常域名解析到黑客控制服务器的 IP 地址上,以实现监听、代理等功能。对 OA 服务器的 hosts 文件分析,其解析情况正常。
图 21-hosts 配置分析
结论:hosts 文件正常。
2.3.7 登录日志分析
Last 记录 OA 服务器最近用户的登录退出等情况,通过对最近登录情况 (登录用户、登录 IP、登录时间等内容) 的分析,可以了解系统的安全情况。对最近登录情况分析,发现 OA 服务器最近登录情况正常。
图 22-最近登录情况
图 23-最近登录失败情况
图 24-最近登录用户情况
结论:最近登录情况正常。
2.3.8 启动项分析
启动项记录系统自启动的情况,若黑客入侵植入木马或后门为了持续控制该服务器,会将相应用服务加入到自启动服务中。这样的话,在重启以后,也可以持续控制该服务器。对 OA 的自启动分析,发现其自启动服务较多,未发现明显异常自启动服务。
图 25-启动服务
结论:未发现异常自启动服务
2.3.9 病毒木马分析
Linux 下病毒木马相对较少,但是也存在。Linux 下主要的安全隐患是 rootkit,rootkit 是一种恶意程序,一般会和病毒木马后门程序等捆绑在一起安装。并且系统被植入 rootkit 以后,通过系统无法查找其文件、进程、网站流程、账号等情况。排除难度较大。查找 rootkit 一般通过工具查找,rkhunter 是一款不错的 rootkit 查找工具。这里,我们使用 rkhunter 来查找 rootkit。
图 26-rkhunter 查找 rootkit
图 27-查找 rootkit 日志
结论:通过以上分析,目前 OA 服务器无 rootkit
2.3.10 系统分析总结
通过以上的分析,可以得出系统层面以下结论:
1、系统账号正常
2、网络连接情况正常
3、开放端口过多,建议禁用非业务端口
4、定时任务发现历史曾定时下载挖矿程序
5、历史命令分析历史曾下载挖矿程序
6、启动项正常
7、未发现病毒、木马、后门
2.4 应用分析
因为该服务器只对互联网开放 web 端口,并且通过系统层面的分析到该服务器曾经定时下载恶意脚本,因此基本判定黑客是通过 web 方式入侵服务器的。因此,需要对 web 应用进行全面的分析,通过和 OA 开发人员沟通,其网站后台的维护全部通过操作系统后台进行维护,前台无法维护。因此需要对 web 应用进行全面分析。
2.4.1 Webshell 分析
使用 D 盾对 web 应用进行 webshell 查杀,未发现 webshell。
图 28-使用 D 盾检查 webshell 情况
结论:无 webshell, 并且前文分析到系统中无后门与木马,因此初步判定黑客是通过应用的漏洞来入侵系统,并且该漏洞可以执行系统权限。
2.4.2 日志分析
目前 web 日志只保存 2018 年 11 月 13 日到 14 日的日志,由于黑客入侵在 10 月 29 号或以前,因此无法通过日志分析黑客入侵的方式。
图 29-访问日志
结论:由于日志只保存 11 月 13 日与 14 日,无法通过日志分析黑客的入侵方式。
2.4.3 Weblogic 分析
既然前面已经判定黑客是通过 web 方式入侵的,并且这种利益驱动的黑客入侵的方式一般为利用现有的漏洞批量入侵,因此需要对 web 应用的中间件及版本进行分析,再通过中间件类型与版本关联相应的漏洞进行分析黑客可能的入侵途径。
通过分析,OA 系统使用的是 weblogic 中间件,通过查看 registry.xml 配置文件分析,发现其 weblogic 的版本为 10.3.6.0。通过 google 搜索相应的漏洞,发现该版本存在多个重大漏洞,可利用该漏洞 getshell,拿到服务器权限。相应的漏洞 CVE 编号如下:
1. CVE-2014-4210
2. CVE-2015-4852
3. CVE-2017-3248
4. CVE-2017-10271
5. CVE-2018-2628
......
图 30-weblogic 10.3.6 漏洞
图 31-weblogic 版本
图 32- CVE-2017-10271
图 33- CVE-2018-2628 漏洞
结论:由于该服务器对外只开放 web 业务,基本上判定黑客是通过 web 入口入侵,另外,由于该版本存在较多高危漏洞,初步怀疑通过该漏洞入侵的可能性比较高。建议升级 weblogic 的版本或使用 WAF 进行防护。
2.4.4 应用分析总结
由于应用日志只保存 11 月 13-14 日日志,无法通过日志分析黑客入侵的方式,并且 weblogic 10.3.6.0 版本存在较多高危漏洞,因此初步判定黑客是通过 weblogic 漏洞入侵。
2.5 分析总结
1. 此 OA 为某用户老 OA,因为需要使用其数据才临时启用。
2. 此服务器对应内部 IP 为 10.134.1.76,目前对互联网仅开放其 6001 端口,22 端口只能通过内部访问;目前仅对互联网开放 6001 端口。
3. 系统账号正常
4. 网络连接情况正常
5. 开放端口过多,建议禁用非业务端口
6. 定时任务发现历史 (2018 年 10 月 29 日至 2018 年 11 月 8 日) 曾定时下载挖矿程序
7. 历史命令分析历史曾下载挖矿程序
8. 启动项正常
9. 系统层面未发现病毒、木马、后门
10. 因为其 OA 日志仅保存 2018 年 11 月 13 日至 2018 年 11 月 14 日,黑客植入挖矿程序在 2018 年 11 月 8 号及以前,无相关日志,无法分析黑客入侵的途径。
11. 目前追溯到 2018 年 10 月 29 日已被植入挖矿程序;2018 年 11 月 8 日或更早被植入 JS 代码进行挖矿
12. 未保存黑客攻击时 web 应用的相关日志,无法通过日志分析黑客入侵的方式,但是 webgloic 相关版本存在较多高危漏洞,推测利用 weblogic 漏洞入侵的可能性较大。
三 建议
1. 升级 weblogic 版本或者使用 WAF 进行防护,同时需要升级 WAF 策略库,以保障可以防护相应的漏洞
2. 定期对服务器进行安全检查
3. 老的 OA 建议将相关数据迁移到新的 OA, 将老的 OA 暂停使用
4. 定期对网站进行渗透测试与安全监测
5. 定期升级 WAF 策略
*本文原创作者:feiniao,本文属FreeBuf原创奖励计划,未经许可禁止转载