01概述
近期,安天CERT捕获了一批活跃的WatchDog挖矿组织样本,该组织主要利用暴露的Docker Engine API端点和Redis服务器发起攻击,并且可以快速的从一台受感染的机器转向整个网络。WatchDog挖矿组织自2019年1月开始被发现,至今仍然活跃。
该挖矿组织详细信息参见安天病毒百科。
长按识别二维码查看“WatchDog”团伙详细信息
02攻击流程
WatchDog挖矿组织主要利用暴露的Redis服务器发起攻击。在Windows端,首先会从放马服务器上下载名为“init.ps1”的PowerShell脚本,该脚本会分别下载挖矿程序进行挖矿、漏洞扫描程序进行扫描、守护进程对挖矿进程进行守护、脚本文件回传主机名及IP地址、exe文件添加管理员组等。
图2‑1 Windows攻击流程图
在Linux端,会从放马服务器上下载名为“init.sh”的sh脚本,该脚本同样会下载Linux端的挖矿程序、漏洞扫描程序和守护进程,他们的功能与Windows端一样。另外,该脚本还具有以下功能:清空防火墙规则、清除日志、创建计划任务、结束安全产品、添加SSH公钥、结束竞品挖矿、横向移动和结束特定网络连接等。
图2‑2 Linux攻击流程图
03样本功能与技术梳理
3.1 Windows侧
3.1.1 init.ps1
定义url,挖矿等信息。
图3‑1 定义url等信息
更新指定路径下的文件。它首先尝试从指定的URL下载文件,如果下载失败,则使用备份URL作为备用方案下载文件。同时,在执行下载之前,它会停止指定名称的进程,并删除旧的文件。
图3‑2 更新指定路径下的文件
创建名为“Update service for windows System”计划任务,定期执行rsyncd.ps1。
图3‑3 创建计划任务
3.1.2 redis-bin.exe
开源门罗币XMRig程序,版本号为6.2.6。
图3‑4 开源挖矿程序
挖矿配置文件,包含矿池地址以及钱包地址。
图3‑5 挖矿配置文件
表3‑1 挖矿程序中的矿池地址和钱包地址
3.1.3 VGAuthServices.exe
该样本扫描程序利用的漏洞如下。
图3‑6 样本部分扫描漏洞
3.1.4 rsysdlog.exe
go语言编写,主要功能是守护挖矿进程,其主要功能模块如下。
图3‑7 守护挖矿进程主要功能模块
如果守护进程不存在,创建计划任务进行下载。
图3‑8 创建计划任务
样本遍历每个操作系统运行的进程,以确保挖矿进程正在运行。
图3‑9 遍历进程,确保挖矿进程运行
3.1.5 clean.bat
该脚本会清除其他挖矿的进程名,计划任务以及文件等,并将受害者主机名和IP地址上传到放马服务器上。
图3‑10 上传主机名和IP地址
3.1.6 clean.exe
该样本执行后,会添加用户bak$到管理员组,口令为8io*IO22。
图3‑11 添加用户到管理员组
使用命令对管理员组进行查询,发现bak$用户已被添加到管理员组。
图3‑12 用户bak$已被添加到管理员组
3.2 Linux侧
3.2.1 init.sh
进行系统配置和清理操作。它设置文件描述符的最大数量,修改文件权限,禁用NMI watchdog,禁用SELinux,清空防火墙规则,清除临时文件和日志,以及清除系统缓存。
图3‑13 削弱防御机制
读取cron目录和authorized_keys文件的内容,修改文件内容、移动文件和更改文件名。
图3‑14 替换系统工具
检查并替换系统中的ps命令。
图3‑15 替换系统指令
卸载阿里云和腾讯云。
图3‑16 卸载安全产品
结束安全产品进程。
图3‑17 结束安全产品进程
删除计划任务。
图3‑18 删除计划任务
定义变量,如url,scan,watchdog和miner。
图3‑19 定义变量
检查主机上是否存在H2Miner挖矿木马,如果存在,结束相应进程。
图3‑20 清除H2Miner挖矿木马
结束特定连接的IP地址以及端口号。
图3‑21 结束特定网络连接
结束与挖矿相关的字符串,主要包括矿池地址以及挖矿协议等。
图3‑22 结束带有挖矿相关字符串的进程
扫描系统中的进程,检查进程的可执行文件路径是否包含/tmp目录,并查找命令行参数中是否包含特定的关键字,对特定的关键进程进行保护。
图3‑23 对watchdog的样本进行保护
对系统的三个指令(ps、top、pstree)进行修改,目的是当受害者执行这三个指令时,会自动过滤掉watchdog挖矿木马的进程(redis-bin、rsysdlog、pnscan、VGAuthServices)。
图3‑24 修改指令,过滤watchdog挖矿的相关进程
创建计划任务,下载后续脚本,添加SSH公钥进行持久化。
图3‑25 添加SSH公钥
下载挖矿程序以及后续脚本文件等。
图3‑26 下载挖矿程序以及后续脚本
执行的挖矿参数,包括矿池地址,钱包地址等信息。
图3‑27 执行挖矿的参数
清除痕迹,如防火墙痕迹以及丢弃特定端口的流量、删除历史命令、清空邮件日志,安全日志和登录日志等。检查/root/.ssh/known_hosts文件和/root/.ssh/id_rsa.pub文件是否存在。如果存在,它们将迭代known_hosts文件中的IP地址,并使用SSH连接到这些主机上,并在远程主机上执行远程脚本。
图3‑28 清除痕迹,寻找能横向移动的目标
04挖矿木马落地排查与清除方案
4.1 Windows
4.1.1 挖矿木马落地识别
1.计划任务 计划任务名:Update service for Windows System 操作:PowerShell.exe -ExecutionPolicy bypass -windowstyle hidden -File C:\Users\用户名\rsyncd.ps1 2.文件 文件名: redis-bin.exe rsysdlog.exe VGAuthServices.exe clean.exe rsyncd.ps1 路径: C:\Users\用户名\AppData\Local\Temp C:\Users\用户名 3.进程名 redis-bin.exe rsysdlog.exe VGAuthServices.exe 4.网络侧排查 redis-bin.exe:23.94.62.184:5443或80.211.206.105:9000或redislog.top:5443(矿池连接) VGAuthServices.exe:会对大量IP地址进行扫描 5.查看本地管理员组 使用命令查看本地管理员组,net localgroup Administrators,是否有名为bak$的可疑用户 |
4.1.2 清除方案
1. 依次结束相应进程 rsysdlog.exe VGAuthServices.exe redis-bin.exe 注释:必须先结束掉rsysdlog.exe进程,该进程为其他两个的守护进程,如不先结束掉该进程,另外两个进程会重新启动 2. 删除计划任务 Update service for Windows System 3. 删除挖矿等落地文件 C:\Users\用户名\AppData\Local\Temp\redis-bin.exe C:\Users\用户名\AppData\Local\Temp\rsysdlog.exe C:\Users\用户名\AppData\Local\Temp\VGAuthServices.exe C:\Users\用户名\AppData\Local\Temp\clean.exe C:\Users\用户名\rsyncd.ps1 4. 删除恶意账户 net localgroup Administrators bak$ /delete |
也可以采用安天主机系统深度分析工具(ATool)进行检测查杀,依次结束相应进程,rsysdlog.exe、VGAuthServices.exe、redis-bin.exe,否则挖矿进程在结束后会重新启动。
图4‑1 结束相应进程
删除相应计划任务,Update service for Windows System。
图4‑2 删除计划任务
删除挖矿等落地文件,对应目录为C:\Users\用户名\AppData\Local\Temp和C:\Users\用户名。
图4‑3 删除挖矿等落地文件
查看挖矿等程序的网络行为,会发现大量扫描行为。
图4‑4 挖矿等程序的网络行为
删除恶意账户bak$。
图4‑5 删除恶意账户
4.2 Linux
注意事项:
➢挖矿脚本会结束安全软件进程,如系统中存在,需重新启动;
➢挖矿脚本会删除所有计划任务,如系统中存在其他非恶意计划任务,需重新创建;➢挖矿脚本会修改系统配置信息如关闭防火墙等,如有需要,需手动修改;
➢挖矿脚本会下载扫描工具和替换部分系统指令,具体请联系安天工程师解决。
- 挖矿木马落地识别
1.计划任务 ■cat /var/spool/cron/* */25 * * * * sh /etc/rsyncd.sh >/dev/null 2>&1 ■cat /etc/cron.d/* */10 * * * * sh /etc/rsyncd.sh ■cat /etc/crontab 0 1 * * * root sh /etc/rsyncd.sh >/dev/null 2>&1 2.文件 ■ls -al /etc |grep redis-bin(其他同理,非root权限执行在/tmp目录下) /etc/redis-bin /etc/rsyncd.sh /etc/rsysdlog /etc/VGAuthServices 3.进程名 redis-bin VGAuthServices rsysdlog 4.网络侧排查 23.94.62.184:5443 80.211.206.105:9000 redislog.top:5443 VGAuthService进程会发起大量SYN_SENT的扫描 5.SSH公钥 ■cat /root/.ssh/authorized_keys ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9WKiJ7yQ6HcafmwzDMv1RKxPdJI/oeXUWDNW1MrWiQNvKeSeSSdZ6NaYVqfSJgXUSgiQbktTo8Fhv43R9FWDvVhSrwPoFBz9SAfgO06jc0M2kGVNS9J2sLJdUB9u1KxY5IOzqG4QTgZ6LP2UUWLG7TGMpkbK7z6G8HAZx7u3l5+Vc82dKtI0zb/ohYSBb7pK/2QFeVa22L+4IDrEXmlv3mOvyH5DwCh3HcHjtDPrAhFqGVyFZBsRZbQVlrPfsxXH2bOLc1PMrK1oG8dyk8gY8m4iZfr9ZDGxs4gAqdWtBQNIN8cvz4SI+Jv9fvayMH7f+Kl2yXiHN5oD9BVTkdIWX root@u17 |
清除方案
1.删除计划任务 crontab -r rm -rf /var/spool/cron/* rm -rf /etc/cron.d/* rm -rf /var/spool/cron/crontabs rm -rf /etc/crontab 2.结束相关进程 redis-bin VGAuthServices rsysdlog 3.删除相关文件 chattr -ia /etc/redis-bin* chattr -ia /etc/rsyncd.sh* chattr -ia /etc/VGAuthServices chattr -ia /etc/rsysdlog rm -rf /etc/redis-bin rm -rf /etc/rsyncd.sh rm -rf /etc/VGAuthServices rm -rf /etc/rsysdlog 4.删除SSH公钥 chattr -ia /root/.ssh/authorized_keys* rm -rf /root/.ssh/authorized_keys |
05事件对应的ATT&CK映射图谱
针对攻击者投放挖矿木马的完整过程,安天梳理本次攻击事件对应的ATT&CK映射图谱如下图所示。
图5‑1 事件对应的ATT&CK映射图谱
攻击者使用的技术点如下表所示:
表5‑1 事件对应的ATT&CK技术行为描述表
06防护建议
针对挖矿攻击,安天建议企业采取如下防护措施:
安装终端防护:安装反病毒软件;
加强SSH口令强度:避免使用弱口令,建议使用16位或更长的口令,包括大小写字母、数字和符号在内的组合,同时避免多个服务器使用相同口令;
及时更新补丁:建议开启自动更新功能安装系统补丁,服务器应及时更新系统补丁;
及时更新第三方应用补丁:建议及时更新第三方应用如Redis等应用程序补丁;
开启日志:开启关键日志收集功能(安全日志、系统日志、错误日志、访问日志、传输日志和Cookie日志),为安全事件的追踪溯源提供基础;
主机加固:对系统进行渗透测试及安全加固;
部署企业级终端防御系统,实时检测防护即时通讯软件接收的不明文件。
07 IoCs
参考资料
[1] WatchDog: Exposing a Cryptojacking Campaign That’s Operated for Two Years
https://unit42.paloaltonetworks.com/watchdog-cryptojacking/