简介
Redaman是一款主要攻击俄语用户的钓鱼攻击中传播的银行恶意软件。最早于2015年以RTM银行木马的形式出现,之后新版本的Redaman出现在2017和2018年。2019年9月,Check Point研究人员发现新版本的Redama将Pony C2服务器IP地址隐藏在比特币区块链中。
过去研究人员也发现过有攻击者将C2服务器IP地址隐藏在区块链中,本文主要对攻击活动中使用的新技术进行分析。
恶意软件会连接比特币区块链和链交易来找到隐藏的C2服务器,研究人员将这种新技术命名为Chaining。
感染链
攻击者如何在比特币区块链中隐藏C2服务器呢?
在本例中,攻击者隐藏的IP地址为185.203.116.47
为此,攻击者使用了钱包地址 1BkeGqpo8M5KNVYXW3obmQt1R58zXAqLBQ :
1. 攻击者会把IP地址从10进制转为十六进制: 185.203.116.47 => B9.CB.74.2F
2. 攻击者将前2个8位组 B9和CB顺序互换,并融合到一起:B9.CB => CBB9
3. 攻击者将十六进制再转为十进制: CBB9 ==> 52153
0.00052153 BTC (约4美元) 就是钱包要做的第一笔交易
4. 攻击者获取最后2个8位组,并将顺序互换,变成一个: 74.2F => 2F74
5. 攻击者将十六进制再转为十进制: 2F74==> 12148
0.00012148 BTC (约1美元)是钱包要进行的第二笔交易
图 1 – 金额为0.00052153 和0.00012148 的交易
BTC https://www.blockchain.com/btc/address/1BkeGqpo8M5KNVYXW3obmQt1R58zXAqLBQ?sort=0
Redaman恶意软件如何解析动态隐藏的C2服务器IP?
Redaman解析IP地址的方法与前面提到的刚好相反:
1. Redaman发送一个GET请求来获取硬编码钱包1BkeGqpo8M5KNVYXW3obmQt1R58zXAqLBQ 上的最后10个交易:
https://api.blockcypher.com/v1/btc/main/addrs/1BkeGqpo8M5KNVYXW3obmQt1R58zXAqLBQ?limit=10
2. 获取比特币钱包上的最后两笔支付交易的值: 52153 和 12148。
3. 将交易的十进制值转为十六进制: 52153==>CBB9 ,12148==>2F74。
4. 将十六进制数据进行换位和拼接,然后再转成10进制: B9==>185, CB==>203, 74==>116, 2F==>47
5. 这些值放在一起就变成了隐藏的C2服务器的IP地址: 185.203.116.47。
图 2 – 计算C2服务器IP地址的代码
图 3 – 含有隐藏C2服务器IP地址的Json响应
结论
文中描述了Redaman如何高效地将动态C2服务器地址隐藏在比特币区块链中。相当于简单地通过静态或硬编码IP地址的方式来设置C2,文中介绍的新方法更加难以预防。