Linux挖矿病毒StartMiner突变来袭
扫描二维码
随时随地手机看文章
今年2月发现了StartMiner采矿病毒。 他之所以被任命是因为他的流程和计划中的任务包括2start.jpg链。 该病毒通过ssh传播。 它的功能是创建几个包含2start.jpg字符串的字符串。 恶意同步任务。 亚信继续监控挖矿病毒,发现挖矿病毒最近相对活跃,频繁更新和持续共享C&C站点。 亚信安全地拦截了最新版的StartMiner挖掘病毒,该病毒终止了其他挖掘过程,创建了多个计划任务,下载并执行了海啸挖掘和僵尸网络。
判断是否存在Known_hosts和SSH公钥,如存在则遍历known_hosts中的IP地址并连接,同时执行恶意进程。除了执行2start.jpg外,其还会下载执行hxxp[:]//107[.]189[.]11[.]170/d.py,同时,在SSH时,会调用-oStrictHostKeyChecking=no参数以修改ssh_config。
downloadIfNeed函数,判断/tmp/x86_64是否存在,不存在则执行download函数;如果存在但是MD5校验错误,同样执行download函数。此外,其会计算下载前后的MD5及文件大小并写入到tmp/tmp.txt文件。
Download函数,校验/tmp/x86_643文件MD5,如果正常则拷贝至/tmp/x86_64;如果错误则执行download2函数。
Download2函数,从多个URL下载样本(x86_64、i686、go)至本地/tmp目录,完成后校验/tmp/x86_64的MD5值,如果正常则拷贝至/tmp/x86_643。
judge函数,判断网络连接中是否存在与134.122.17.13:8080的连接,如果不存在则执行如下操作:
中止所有CPU>30的进程;
执行downloadIfNeed函数;
从多个URL下载样本(x86_64、i686、go)至本地/tmp目录;
增加文件执行权限并运行go文件;
解密运行Base64加密的python脚本。
Judge2函数,判断进程中是否有dbused或dbusted名称的进程,如果没有则执行如下操作:
downloadIfNeed函数;
从多个URL下载样本(x86_64、i686、go)至本地/tmp目录;
增加文件执行权限并运行go文件;
解密运行Base64加密的python脚本。
判断是否存在与134.122.17.13:8080的连接,如果不存在则执行judge函数,存在则执行judge2函数。
判断是否存在与104.244.75.25:443的连接,如果不存在则根据位数下载x64b/x32b样本;保存到/tmp,提升文件权限并执行。
恶意定时任务,查询Crontab中是否存在107.189.11.170字符串,如果不存在则先清空Crontab并写入恶意定时任务,以定期下载执行2start.jpg。2start.jpg的所有逻辑执行完毕后,删除/tmp/2start.jpg。
Go.sh分析
新建一个bash文件/tmp/dbusted,用于拷贝x86_64至/tmp/.dbusted/dbusted,执行并删除。
D.py分析
D.py根据位数下载对应样本,并执行d.py、b.py和go2.sh。
B.py分析
B.py下载并执行x64b或x32b样本,内容为Tsunami僵尸后门程序,亚信安全近期曾披露过关于该僵尸后门的相关情报。
ELF文件
X86_64和i686为Pwnrig挖矿程序,x64b\x32b为Tsunami僵尸网络木马,均已在之前的病毒通告中做过分析,在此不再重复。
手动清除方案
保存并执行以下bash:
#!/bin/bash
rm -f /etc/cron.d/apache 2>/dev/null
rm -f /etc/cron.d/nginx 2>/dev/null
rm -f /etc/cron.d/root 2>/dev/null
rm -f /etc/cron.hourly/oanacroner1 2>/dev/null
cp /var/spool/cron/crontabs/root /root/root.crontab.bak 2>/dev/null
cp /var/spool/cron/root /root/cron.bak 2>/dev/null
cat /dev/null >/var/spool/cron/crontabs/root 2>/dev/null
cat /dev/null >/var/spool/cron/root 2>/dev/null
rm -f /var/tmp/.xo 2>/dev/null
rm -f /var/tmp/x64b 2>/dev/null
rm -f /tmp/x86_64 2>/dev/null
rm -f /tmp/dbusted 2>/dev/null
rm -f /tmp/i686 2>/dev/null
rm -f /var/tmp/hxx 2>/dev/null
rm -f /var/tmp/scan.log 2>/dev/null
rm -f /tmp/hxx 2>/dev/null
rm -f /var/tmp/dbusetd 2>/dev/null
rm -f /var/tmp/p 2>/dev/null
rm -f /var/tmp/.sh/x86_64 2>/dev/null
rm -f /var/tmp/x86_64 2>/dev/null
rm -f /var/tmp/i686 2>/dev/null
rm -f /var/tmp/go 2>/dev/null
rm -f /var/tmp/x86_643 2>/dev/null
rm -f /var/tmp/x64b 2>/dev/null
rm -f /var/tmp/x32b 2>/dev/null
rm -f /var/tmp/ip.sh 2>/dev/null
rm -f /tmp/.sh/x86_64 2>/dev/null
rm -f /tmp/x86_64 2>/dev/null
rm -f /tmp/i686 2>/dev/null
rm -f /tmp/go 2>/dev/null
rm -f /tmp/x86_643 2>/dev/null
rm -f /tmp/x64b 2>/dev/null
rm -f /tmp/x32b 2>/dev/null
rm -f /tmp/ip.sh 2>/dev/null
rm -f /var/tmp/d.py 2>/dev/null
rm -f /var/tmp/2start.jpg 2>/dev/null
rm -f /tmp/d.py 2>/dev/null
rm -f /tmp/2start.jpg 2>/dev/null
rm -f /var/tmp/go 2>/dev/null
rm -f /tmp/go 2>/dev/null
rm -f /tmp/p 2>/dev/null
rm -f /tmp/masscan 2>/dev/null
rm -f /tmp/ips.sh 2>/dev/null
rm -f /var/tmp/sparte 2>/dev/null
rm -f /tmp/scan.log 2>/dev/null
chattr -ia /bin/bprofr 2>/dev/null
chattr -ia /bin/crondr 2>/dev/null
chattr -ia /bin/initdr 2>/dev/null
rm -f /bin/initdr 2>/dev/null
rm -f /bin/crondr 2>/dev/null
rm -f /bin/bprofr 2>/dev/null
chattr -ia ~/.bash_profile 2>/dev/null
cp ~/.bash_profile ~/.bash_profile.bak 2>/dev/null
sed -i '/dbused/d' ~/.bash_profile 2>/dev/null
ps aux|grep dbused|grep -v grep|awk '{print $2}'|xargs kill -19 2>/dev/null
ps aux|grep hxx|grep -v grep|awk '{print $2}'|xargs kill -19 2>/dev/null
ps aux|grep "107.189"|grep -v grep|awk '{print $2}'|xargs kill -19 2>/dev/null
ps aux|grep "104.244"|grep -v grep|awk '{print $2}'|xargs kill -19 2>/dev/null
ps aux|grep "/tmp/go"|grep -v grep|awk '{print $2}'|xargs kill -19 2>/dev/null
ps aux|grep "/tmp/.xo"|grep -v grep|awk '{print $2}'|xargs kill -19 2>/dev/null
ps aux|grep "107.189"|grep -v grep|awk '{print $2}'|xargs kill -9 2>/dev/null
ps aux|grep "104.244"|grep -v grep|awk '{print $2}'|xargs kill -9 2>/dev/null
ps aux|grep "/tmp/go"|grep -v grep|awk '{print $2}'|xargs kill -9 2>/dev/null
ps aux|grep "/tmp/.xo"|grep -v grep|awk '{print $2}'|xargs kill -9 2>/dev/null
ps aux|grep dbused|grep -v grep|awk '{print $2}'|xargs kill -9 2>/dev/null
ps aux|grep hxx|grep -v grep|awk '{print $2}'|xargs kill -9 2>/dev/null
亚信安全教你如何防范
亚信安全病毒码版本15.985.60,云病毒码版本15.985.71,全球码版本15.985.00已经可以检测,请用户及时升级病毒码版本。
亚信安全深度威胁发现设备TDA可以侦测到此威胁相关内容:
IOCs
hxxp[:]//107[.]189[.]11[.]170/go
hxxp[:]//107[.]189[.]11[.]170/go2
hxxp[:]//107[.]189[.]11[.]170/d.py
Hxxp[:]//107[.]189[.]11[.]170/b.py
hxxp[:]//107[.]189[.]11[.]170/2start.jpg
hxxp[:]//104[.]244[.]74[.]248/x86_64
hxxp[:]//104[.]244[.]75[.]25/i686
hxxp[:]//107[.]189[.]11[.]170/x64b
hxxp[:]//107[.]189[.]11[.]170/x32b
hxxp[:]//205[.]185[.]113[.]151/go
Hxxp[:]//205[.]185[.]113[.]151/i686
Hxxp[:]//205[.]185[.]113[.]151/x86_64
Hxxp[:]//205[.]185[.]113[.]151/x64b
Hxxp[:]//205[.]185[.]113[.]151/x32b
Hxxp[:]//205[.]185[.]113[.]151/xmi
Hxxp[:]//205[.]185[.]113[.]151/d.py