此事件是去年应急处置时完成的报告,距今有半年时间了。一直存在电脑里,最近准备完善应急响应中遇到的各种安全事件,这篇文章做为这一系列的开端。python
对于 Linux 安全检查,我的上段时间写了个 shell 用于一键进行 Linux 安全检查,本文对 Linux 的检查使用相关脚本都可实现,相关连接以下:linux
2018 年 11 月 8 日,我司「捕影」应急响应小组接到驻场团队反馈,某用户 OA 被 360 浏览器提示「网站存在数字货币挖矿行为」,我司应急响应小组进行分析后确认为真实事件,随后进行黑客入侵分析。web
通过分析,判断这次事件为黑客恶意攻击所致,通过安徽三实「捕影」应急响应小组的分析,目前获得如下结论:算法
1. 此 OA 为某用户老的 OA,由于须要使用其数据才临时启用。shell
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 漏洞入侵的可能性较大。
下面将针对这次应急处置的过程作大体的阐述。
2018 年 11 月 8 日,我司「捕影」应急响应小组接到驻场团队反馈,某用户 OA 被 360 浏览器提示「网站存在数字货币挖矿行为」,具体状况以下所示:
图 1-360 浏览器提示 OA 系统「网站存在数字货币挖矿行为」
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.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 系统分析总结
经过以上的分析,能够得出系统层面如下结论:
一、系统帐号正常
二、网络链接状况正常
三、开放端口过多,建议禁用非业务端口
四、定时任务发现历史曾定时下载挖矿程序
五、历史命令分析历史曾下载挖矿程序
六、启动项正常
七、未发现病毒、木马、后门
由于该服务器只对互联网开放 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 漏洞入侵。
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 策略