这种恶意软件通过Cron任务和Rootkit方式潜伏在设备中,并不断更新,受到感染的计算可以定期检查并安装新版本的恶意软件。这样就需要把相关的域名和静态IP地址信息写进恶意软件的配置文件中。不难想象,这些域名和IP地址将很容易被安全部门发现,并加以封锁和处理。这样,攻击者还准备了一组备用域名,当恶意软件无法更新时,将通过“故障转移”下载备用域名的更新并接受指令。
尽管这一方法在一定程度上更为有效,但同样容易被封锁。特别是不同的安全机构和电信运营商联合起来进行打击。到2020年12月底,Akamai发现一个新版本的恶意软件包括一个比特币钱包地址,一个用于钱包检查API的URL,以及一系列相互嵌套的代码。更深入的研究发现,通过上述API获得的钱包数据可以用来得出一个IP地址,然后用这个IP来执行更多的潜在和感染操作。
攻击者可以使用这种非常巧妙的方法,将被混淆的恶意软件配置数据放入区块链中。只需在钱包中放一小部分比特币,就可以恢复那些被“破坏”的僵尸主机。就其本质而言,区块链实际上是一种利用不能封锁和审查的渠道分发恶意软件配置信息的方法。怎样把比特币交易变成IP地址?
要把比特币的交易信息转换成IP地址,脚本首先需要知道钱包发出并且接收到什么交易。要做到这一点,攻击者将一个简单的HTTP请求发送到区块链浏览API(例如api.blockcypher.com),以查询特定钱包地址收到的最后两个交易,然后将这些交易的Satoshi值转换为备用C2服务器的IP地址。一个Bash脚本片段,它将Satoshis转换为C2服务器IP地址。实质上,该感染使用钱包地址作为类似于DNS的记录,而事务值则作为其中的A记录。如下图所显示,变量bbb包括比特币钱包地址,变量bb包括API端点信息,该信息可以返回最后两次交易信息(借此生成IP地址),而变量cc包括转换完成后的C2服务器最终IP地址。