事件背景
近期,零时科技安全团队收到大量用户因为同一个原因导致加密资产被盗的情况,经调查都是因为过程中使用了恶意Whatsapp的原因,通过与受害者沟通,了解到情况如下:
- 受害者在使用恶意Whatsapp进行沟通时,发送钱包地址到聊天软件中,对方直接复制钱包地址进行转账,但是此时复制的钱包地址已经被聊天软件Whatsapp恶意替换,导致将加密资产转账到错误地址。
2022年12月6日,因为使用恶意WhatsApp导致被盗8万多美金;
2022年11月21日,因为使用恶意Whatsapp导致被盗140多万美金;
2022年10月6日,因为使用恶意WhatsApp导致被盗1.3万多美金;
其他......
恶意软件分析及反制
通过与受害者沟通,其使用的Android手机,并且都是从百度搜索WhatsApp软件后,直接从第三方网站下载软件,安装。
下载地址如下:
通过沟通此事件的前因后果,我们怀疑是受害者安装的WhatsApp有问题,于是为了还原事件,我们获取到事发时的恶意WhatsApp安装包展开分析。
首先恶意WhatsApp软件的安装包的大小与WhatsApp官网下载的大小不一致:
而且通过查看两个软件的签名消息,可以看出签名时间和签名主体消息也是明显不一致:
通过安全工具扫描此恶意软件,发现确实存在问题,被标记为存在恶意木马:
然后通过反编译恶意软件后,发现了恶意软件中存在替换用户聊天消息中的加密货币地址的功能,并且通过远程服务器进行通信,定期更改替换的黑客地址,分析过程如下:
首先我们找到了恶意软件跟黑客控制的后台服务器域名:
然后通过审计恶意软件代码,发现恶意软件从黑客控制的服务器上获取了加密货币地址,然后在用户使用恶意WhatsApp聊天时,替换用户输入或者接收的正确加密货币地址。
我们来看看替换用户聊天时输入的地址消息过程,代码如下:
同上面的FindSendAddress函数可以看出:
第一步,先匹配用户输入的聊天消息中是否存在trx或者eth地址;
第二步,通过GetCurrentAddress函数获取地址;
进行跟进GetCurrentAddress函数的内容如下:
通过对恶意站点的/api/index/get_ws接口获取黑客控制的地址。
返回地址是通过加密的,通过app中的加密密钥,可以直接使用AES算法解密黑客的地址,以ETH地址为例,解密如下:
第三步,通过replaceBytes函数替换用户输入的地址为黑客控制的恶意地址。
通过测试发现通过恶意域名的/api/index/get_ws接口获取的恶意地址会不定期变化,目前获取的地址已经更新,不是受害者转账时的地址,目前获取的新地址
0xf02FFBC0114562E30447c21f8273d8667Ab4eB3B还没有收到受害者的资金。
截至目前,此恶意接口/api/index/get_ws还在正常运行,还会导致更多受害者损失。
损失资金追踪分析
零时科技安全团队接到受害者的协助请求后,第一时间分析并监控了黑客相关地址。
其中140万美金被盗资金,进入黑客地址0xa160......9a41,再几小时后,黑客将资金转移到地址0x570C......BdDb,然后通过多笔分散转移两个地址,最后汇集到0x8785......8885地址,如下图:
通过分析发现,黑客地址0xa160......9a41的手续费来自Binance交易平台,转移后的地址0x570C......BdDb手续费来自mexc.com交易平台。
另外一个8万美金被盗资金,进入黑客地址0x319c......8486,0xad8......95b9,然后通过多笔分散转移,最后汇集到Binance 交易平台,通过分析发现,黑客地址的交易手续费也来自Binance交易平台,如下图:
零时科技安全团队会继续关注此恶意聊天软件的扩散,以及监控相关黑客钱包地址的资金转移动态,及时提供情报预警,防止更多用户资产被盗。
总结
本次案例是由于受害者下载恶意的WhatsApp聊天软件,导致转账目标地址被篡改,损失大量资金,类似的案例还有很多,例如通过恶意假交易平台、假钱包、假Telegram等。
零时科技安全团队收到大量用户资产损失协助的请求,发现通过社交软件等恶意软件进行转账地址拦截修改的情况越来越多,为避免造成资金损失,在此,再次建议:
第一,下载使用 APP 时还是需要多方确认,认准官方下载渠道,检查签名一致性;
第二,大额转账时分多次进行,先小额确认到账情况,在继续转账;
第三,转账时多次确认转账地址,包括地址正确性检查,尽量检查每一位字符。
资金被盗怎么办?
如果发生无意的授权操作,在资金未被盗之前,尽快将钱包资金转出,并且取消授权;如果已经发生授权之后的资金被盗或者私钥被盗资金转移情况,请立即联系零时科技安全团队进行资产追踪。