应急响应系列之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.蜜罐(挖矿扩散 ...
随机推荐
- 七年开发浅谈Nginx负载均衡
一 特点 1.1 应用情况 Nginx做为一个强大的Web服务器软件,具有高性能.高并发性和低内存占用的特点.此外,其也能够提供强大的反向代理功能.俄罗斯大约有超过20%的虚拟主机采用Nginx作为反 ...
- Python学习日记(二十五) 接口类、抽象类、多态
接口类 继承有两种用途:继承基类的方法,并且做出自己的改变或扩展(代码重用)和声明某个子类兼容于某基类,定义一个接口类interface,接口类中定义了一些接口名(就是函数名)且并未实现接口的功能,子 ...
- Python学习日记(十九) 模块导入
模块导入 当文件夹中有这样一个自定义的command模块 在它的内部写下下列代码: print('这个py文件被调用!') def fuc(): print('这个函数被调用!') 然后我们在comm ...
- Python学习日记(五) 编码基础
初始编码 ASCII最开始为7位,一共128字符.最后确定8位,一共256个字符,最左边的为拓展位,为以后的开发做准备. ASCII码的最左边的一位为0. 基本换算:8位(bit) = 1字节(byt ...
- idea中添加web.xml配置文件与tomcat启动中遇到的web.xml文件找不到的问题
1,如何在idea中向war项目中添加web.xml的配置文件 idea通过maven创建war项目时没有指定是webapp导致创建出来的项目没有webapp的文件夹.其实war项目中都是在" ...
- WebService接口学习【1】
工具: 1.Eclipse(or)IDEA编辑器 2.SoapUI测试工具 1.wsdl文件标签体的约束: 一:namespace:相当于文件的id 二:targetNamespace属性:用来指定s ...
- netty实现websocket发送文本和二进制数据
原文:https://huan1993.iteye.com/blog/2433552 最近在学习netty相关的知识,看到netty可以实现 websoket,因此记录一下在netty中实现webso ...
- DFS遍历拷贝所有子文件夹及目录列表 (Java版)
如题 注意,文件夹是不能拷贝的, 需要mkdir的 文件选择合适的流进行拷贝 main测试方法 /** * 主测试类,默认将D:\\base01 下的复制到D:\\base02 * @param ar ...
- oracle删除重复数据,只保留一条
比如,某个表要按照id和name重复,就算重复数据 delete from 表名 where rowid not in (select min(rowid) from 表名 group by id,n ...
- cookies插件 , axios插件,element-ui 插件
vue-cookie插件 安装 >: cnpm install vue-cookies main.js配置 // 第一种方式 import cookies from 'vue-cookies' ...