应急响应系列之OA被入侵挖矿分析报告
一 基本情况
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 策略
应急响应系列之OA被入侵挖矿分析报告的更多相关文章
- Window应急响应(六):NesMiner挖矿病毒
0x00 前言 作为一个运维工程师,而非一个专业的病毒分析工程师,遇到了比较复杂的病毒怎么办?别怕,虽然对二进制不熟,但是依靠系统运维的经验,我们可以用自己的方式来解决它. 0x01 感染现象 1.向 ...
- 一些关于Linux入侵应急响应的碎碎念
近半年做了很多应急响应项目,针对黑客入侵.但疲于没有时间来总结一些常用的东西,寄希望用这篇博文分享一些安全工程师在处理应急响应时常见的套路,因为方面众多可能有些杂碎. 个人认为入侵响应的核心无外乎四个 ...
- windows应急响应入侵排查思路
0x00 前言 当企业发生黑客入侵.系统崩溃或其它影响业务正常运行的安全事件时,急需第一时间进行处理,使企业的网络信息系统在最短时间内恢复正常工作,进一步查找入侵来源,还原入侵事故过程,同时给出解 ...
- 【DFIR】数字取证与事件应急响应---初识
应急响应 适用于负责现场应急,找出可疑的程序,恶意代码的安全工程师.这些可疑恶意程序或代码由另外的专家进行逆向分析. 前言 首先,什么是DRIF? DRIR:Digital Forensics and ...
- 《2018年云上挖矿态势分析报告》发布,非Web类应用安全风险需重点关注
近日,阿里云安全团队发布了<2018年云上挖矿分析报告>.该报告以阿里云2018年的攻防数据为基础,对恶意挖矿态势进行了分析,并为个人和企业提出了合理的安全防护建议. 报告指出,尽管加密货 ...
- Window应急响应(四):挖矿病毒
0x00 前言 随着虚拟货币的疯狂炒作,挖矿病毒已经成为不法分子利用最为频繁的攻击方式之一.病毒传播者可以利用个人电脑或服务器进行挖矿,具体现象为电脑CPU占用率高,C盘可使用空间骤降,电脑温度升 ...
- Linux应急响应入侵排查思路
0x00 前言 当企业发生黑客入侵.系统崩溃或其它影响业务正常运行的安全事件时,急需第一时间进行处理,使企业的网络信息系统在最短时间内恢复正常工作,进一步查找入侵来源,还原入侵事故过程,同时给出解 ...
- Linux应急响应(三):挖矿病毒
0x00 前言 随着虚拟货币的疯狂炒作,利用挖矿脚本来实现流量变现,使得挖矿病毒成为不法分子利用最为频繁的攻击方式.新的挖矿攻击展现出了类似蠕虫的行为,并结合了高级攻击技术,以增加对目标服务器感染 ...
- 服务器入侵应急响应排查(Linux篇)
总体思路 确认问题与系统现象 → 取证清除与影响评估 → 系统加固 → 复盘整改 常见入侵 ① 挖矿: 表象:CPU增高.可疑定时任务.外联矿池IP. 告警:威胁情报(主要).Hids.蜜罐(挖矿扩散 ...
随机推荐
- 根据域名获取ip地址
1如何查询网站域名对应的ip地址在电脑左下角搜索cmd ,在命令提示符中输入 ping www.pm25.in在电脑左下角搜索运行,输入cmd ,在命令提示符中输入 ping www.pm25.in得 ...
- [极客-Linux] 04 Linux命令
创建用户: useradd 装文件: CentOS: (软件管家yum) rpm -i xxx.rpm Ubuntu: (apt-get) dpkg -i xxx.deb nohup: no ...
- django获取数据queryset中的filter选项
2.条件选取querySet的时候,filter表示=,exclude表示!=. querySet.distinct() 去重复__exact 精确等于 like 'aaa' __iexact 精确等 ...
- (多核DSP快速入门)SYS/BIOS入门
(多核DSP快速入门)SYS/BIOS入门 原创文章 转载请注册来源http://blog.csdn.net/tostq 系列教程目录:http://blog.csdn.net/tostq/art ...
- zabbix Server 4.0 报警(Action)篇
zabbix Server 4.0 报警(Action)篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看zabbix默认的Actions 1>.点击默认的Actio ...
- lvm快照备份mysql
快照备份原理(从其他博客看的): 原理:通过lvm快照给lvm真身拍个照片,当lvm真身发送改变时,lvm快照把lvm真身改变之前的内容存放在快照上,这样在lvm快照有效的这段时间内,我们看到的lvm ...
- Luogu-P1450 [HAOI2008]硬币购物-完全背包+容斥定理
Luogu-P1450 [HAOI2008]硬币购物-完全背包+容斥定理 [Problem Description] 略 [Solution] 上述题目等价于:有\(4\)种物品,每种物品有\(d_i ...
- 大规模异常滥用检测:基于局部敏感哈希算法——来自Uber Engineering的实践
uber全球用户每天会产生500万条行程,保证数据的准确性至关重要.如果所有的数据都得到有效利用,t通过元数据和聚合的数据可以快速检测平台上的滥用行为,如垃圾邮件.虚假账户和付款欺诈等.放大正确的数据 ...
- Java8 Stream 流使用场景和常用操作
JAVA8内置的函数式编程接口应用场景和方式 pojo类对象和默认创建list的方法 import lombok.AllArgsConstructor; import lombok.Data; imp ...
- P4315 月下“毛景树”[树剖]
题目描述 毛毛虫经过及时的变形,最终逃过的一劫,离开了菜妈的菜园. 毛毛虫经过千山万水,历尽千辛万苦,最后来到了小小的绍兴一中的校园里. 爬啊爬~爬啊爬毛毛虫爬到了一颗小小的"毛景树&quo ...