研究人员近期发现一个可以窃取AWS凭证的加密货币蠕虫。这是首个含有AWS特定功能的蠕虫,该蠕虫可以窃取本地凭证、扫描错误配置的Docker平台的网络。研究人员发现黑客组织TeamTNT已经成功入侵了大量的Docker和Kubernetes 系统。
随着越来越多的企业和组织将计算资源迁移到云和容器环境中,未来此类攻击将越来越多。
图 1: TeamTNT蠕虫首次运行时在屏幕上打印的消息
AWS凭证窃取
AWS CLI将凭证保存以未加密文件的形式保存在~/.aws/credentials,其他的配置信息保存在名为~/.aws/config 的文件中。
窃取AWS凭证的代码非常直接,执行后会上传默认的AWS .credentials(凭证)和 .config(配置)文件到攻击者的服务器——sayhi.bplace[.]net:
图 2: 从受害者系统中窃取AWS凭证的代码
攻击者用Curl来发送AWS凭证到TeamTNT 的服务器,服务器会响应消息“THX”:
图 3: 窃取的AWS凭证生成的网络流量
研究人员发送CanaryTokens.org创建的凭证到TeamTNT 服务器,但没有使用过。这表明TeamTNT 手动评估或使用该凭证,或之前创建的自动化工具无法正常工作。
传播
大多数的加密货币挖矿蠕虫都是直接复制和粘贴其他蠕虫的代码并进行修改。TeamTNT 的蠕虫中也含有来自Kinsing 蠕虫的代码,目的是停止阿里云安全工具:
图 4: 阻止阿里云安全工具运行的代码
未来,将可能会有更多的蠕虫会复制窃取AWS 凭证文件的能力。
Docker
蠕虫中还含有用masscan 扫描开放的Docker API的代码,然后在新容器中安装自己:
图 5: 扫描开放的Docker API,然后安装蠕虫到新容器中
漏洞利用
该蠕虫部署了XMRig 加密货币挖矿工具来挖门罗币,以此为攻击者赚钱。其中一个矿池提供了蠕虫黑掉的系统的详细情况:
图 6: Monero Ocean 矿池中门罗币钱包的数据
该页面一共有119个被黑的系统,其中包括Kubernetes 集群和Jenkins Build 服务器。
截止目前,研究人员共发现2个与该攻击相关的门罗币地址,共为TeamTNT 赚取了3门罗币,价值约300美元,但这只是其中一起攻击活动。
该蠕虫还部署了大量的恶意软件:
- punk.py – SSH 利用工具
- 日志清除工具
- Diamorphine Rootkit
- Tsunami IRC 后门
- TeamTNT
图 7: teamtnt[.]red主页
结论
这些攻击其实并不复杂,有许多部署加密货币挖矿蠕虫的黑客组织已经成功感染了大量的商业系统。研究人员给出了如下建议:
- 了解哪些系统保存了AWS凭证文件,如果不需要那么就删除。事实上,许多生产系统中都意外保留了开发阶段的凭证。
- 使用防火墙规则来限制对Docker API的访问。研究人员强烈建议在设置防火墙时使用白名单方法。
- 检查所有到矿池的连接的网络流量,或使用Stratum挖矿工具。
- 检查通过HTTP 发送AWS 凭证文件的所有连接。