尊龙凯官网入口ADLab:关于克日门罗币供应链攻击事务剖析

宣布时间 2019-11-21

1.攻击配景


2019年11月19日 ,门罗币官方github上泛起对门罗币release版与官网上泛起纷歧致问题的issues ,其中提及泛起问题的门罗币版本为最新版0.15.0.0 。且门罗币官方认可其官网受到黑客入侵 ,使得其提供的门罗币客户端保存窃取用户要害信息的事实 ,这也是首次被发明的直接针对加密钱币客户端的供应链攻击 。

门罗币官方声明 ,恶意攻击爆发在11月18日 ,11月19日攻击被发明并举行了修复 。通过对已经确认的熏染版本的hash 举行比对 ,发明客户端组件monero-wallet-cli被黑客改动 ,其中hash为:5decc690a63aab004bae261630980e631b9d37a0271bbe0c5b477feffcd3f8c2的文件被替换为:7ab9afbc5f9a1df687558d570192fbfe9e085712657d2cfa5524f2c8caccca31 。当天 ,reddit上也泛起了使用者由于装置了官方网站的最新release版本而丧失了价值7000美元门罗币的现实案例 。


尊龙凯时 - 人生就是搏!


事务披露的同时 ,我们也最先对其举行一定的关注 ,并对涉及该次攻击的恶意代码举行了剖析和追踪 。从剖析的效果来看 ,本次攻击的黑客将门罗币源码中cryptonote::simple_wallet()类举行改动 ,涉及的文件有:

monero/src/simplewallet/simplewallet.h

monero/src/simplewallet/simplewallet.cpp

黑客使用以上文件实现了窃取门罗币seed的功效 。黑客不会直接窃取门罗币的钱包文件 ,而是窃取门罗币seed以及偷取门罗币钱币的所有权 ,因此偷取之后需要使用seed来恢复钱包 ,以提取其中的门罗币 。别的 ,恶意代码内置有三个C&C ,划分为node.hashmonero.com、node.xmrsupport.co和45.9.148.65 。其中 ,node.hashmonero.com为默认的CC服务器 ,而node.xmrsupport.co和45.9.148.65作为后备CC使用 。从目今的域名剖析情形来看 ,node.xmrsupport.co和45.9.148.65指向统一台服务器 ,主CC node.hashmonero.com所指向的IP为91.210.104.245 。所有CC都接纳端口18081作为seed回传的服务端口 。

本文首先对被改动恶意monero-wallet-cli文件做详尽的剖析 ,接着试图对黑客的基础设置举行追踪剖析 ,发明了黑客所使用过的其他基础设施 。由于门罗币官方关于该事务仍在视察之中 ,以是关于黑客是怎样攻击进入门罗币官方网站的详细细节外界并不知晓 ,我们将一连关注该事务的希望 。


2.样天职析


该样本主要窃取门罗币的seed数据 ,门罗币seed由25个单词组成 ,用来证实拥有者对一个门罗币地址内里的钱币所有权 ,也可用于恢复钱包 。seed类似于如下字符串:

juicy sorry lukewarm lively fitting pulp irony nobody ought pelican sanity fudge vibrate ozone nearby upright addicted foxes arises alerts sorry lobster inmate karate ozone

该样本以源码为基础 ,在函数cryptonote::simple_wallet::print_seed函数中加入了恶意函数cryptonote::simple_wallet::send_seed 。


尊龙凯时 - 人生就是搏!


该函数将获取的seed信息发送给node.hashmonero.com ,端口为18081 ,其中seed信息存储在”memo=”参数中 。该函数主要通过挪用cryptonote::simple_wallet::send_to_cc函数来实现seed的发送 。发送的方法是通过https POST方法实现 。


尊龙凯时 - 人生就是搏!


在send_to_cc函数中 ,其将CC服务器的端口硬编码在代码中 ,通过SSL协议将窃取的门罗币seed发送给指定的CC服务器(node.hashmonero.com) 。


尊龙凯时 - 人生就是搏!


若是该CC无法使用 ,恶意代码则会首先接纳后备C&C node.xmrsupport.co举行毗连并将窃取的seed回传至CC服务器上 。


尊龙凯时 - 人生就是搏!

若是后备C&C照旧无法使用 ,则接纳后备服务器"45.9.148.65"作为窃取seed的回传CC 。


尊龙凯时 - 人生就是搏!


同时 ,被改动的函数send_seed还被特殊添加到了monero-wallet-cli文件的其他三个地方以确保在种种使用操作中能够更有用地获取seed 。这三个地方划分为钱包建设函数cryptonote::simple_wallet::new_wallet() ,钱包翻开函数cryptonote::simple_wallet::open_wallet ,以及同名重载函数 。

(1)在new_wallet()函数中 ,补丁函数主要用于截获钱包建设历程 ,一旦钱包建设乐成 ,其钱包相关的seed就会连忙发送给C&C 。


尊龙凯时 - 人生就是搏!


(2)open_wallet函数主要用于翻开一个门罗币钱包文件(包括由硬件钱包提供的装备翻开) ,该恶意代码同样对该函数举行改动 ,以便钱包被加载之后 ,将其发送到C&C服务器上 。


尊龙凯时 - 人生就是搏!


(3)第三处是加入到了同名的重载函数cryptonote::simple_wallet::print_seed(bool  encrypted)中  ,在该函数中 ,其窃取由函数tools::wallet2::get_multisig_seed和tools::wallet2::get_seed所获得的seed 。该同名重载函数主要由cryptonote::simple_wallet::encrypted_seed和cryptonote::simple_wallet::seed两个函数挪用 。encrypted_seed用于显示加密后的门罗币seed ,而seed函数用于审查未加密的门罗币seed 。这意味着 ,任何外部钱包文件的审查行为都会被挟制 ,从而导致与钱包相关的seed遭到黑客窃取 。


尊龙凯时 - 人生就是搏!


3.黑客追踪与溯源


我们在受熏染的门罗币客户端中发明硬编码的CC服务器地址 ,其中有2个域名和个1IP地址 ,硬编码的CC信息如下图所示:


尊龙凯时 - 人生就是搏!


其中 ,后两个硬编码CC现在指向统一个服务器 。


尊龙凯时 - 人生就是搏!


为了对黑客使用的设施有进一步的掌握 ,我们随后对这几个硬编码的CC举行了详细的剖析 。

首先 ,我们来看C&C node.hashmonero.com ,这个C&C是恶意代码的默认C&C地址 。该C&C目今被剖析到IP:91.210.104.245 。从whois信息中我们发明该域名是2019年11月14日注册的 ,且域名申请的公司字段被�;� 。域名盘问效果如下图所示:


尊龙凯时 - 人生就是搏!


别的还可以看出该域名做了隐私�;� ,很难对黑客的信息再举行进一步的追踪 ,可是我们从该域名的注册时间可以看出黑客妄想实验攻击时间也应该不会太恒久 。而从域名node.xmrsupport.co的whois信息中得知其建设于2019年11月15日 。因此可以推断黑客天生攻击样本时 ,应该已经掌握了门罗币官方网站的误差及攻击要领 。因而黑客的攻击妄想也应该在2019年11月14日之前的就已经最先了 ,真正实验攻击就在随后几天(11月15日-18日之间) 。

通过IP地址45.9.148.65剖析的历史 ,还发明2019年11月16日域名hashmonero.com被剖析到此IP地址上,在攻击被发明当天2019年11月19日域名node.xmrsupport.co才被剖析到该IP 。


尊龙凯时 - 人生就是搏!


此前在github上有人使用浏览器会见https://91.210.104.245:18081页面会被重定向到https://monerohash.com/?r=from_node ,不过在11月20日21时左右 ,由于被大宗用户举报 ,CC服务器91.210.104.245已经被主机提供商阻止服务 。经盘问 ,我们发明91.210.104.245为俄罗斯主机服务商www.hostkey.ru所有 ,IP地址的whois信息如下图所示:


尊龙凯时 - 人生就是搏!


通过VT对IP :91.210.104.245的历史纪录举行剖析 ,发明该服务器曾于2017年7月24日指向一个域名bitcoinbotreview.com ,在两年以后才被剖析到目今的IP :91.210.104.245 。


尊龙凯时 - 人生就是搏!


该域名虽然只有卡巴斯基一款杀毒软件报毒 ,但从域名关联出的样本可以看出该服务器曾被作为另外一款恶意代码的CC服务器 。从域名自己的寄义上看 ,似乎应该与比特币相关恶意攻击有关 。此处我们也对这个关联的样本举行了简要剖析 。

VT上的关联样来源始名称为“documentation.doc.exe”  。


尊龙凯时 - 人生就是搏!


在对样本“documentation.doc.exe”举行剖析后 ,我们发明其是一个使用Autoit3编写的恶意代码加载器(加载器内置有两个C&C:bitcoinbotreview.com和bitcoinautobot.com) ,其从链接http://bitcoinbotreview.com/mailpv.exe下载后续文件并加载执行 。可是在我们剖析时 ,该链接已经失效 ,但通一些特征我们找到这个链接的原始文件 。该文件是一款窃密型的木马 ,其伪装成NirSoft公司开发的邮箱密码恢复软件mailpv.exe:


尊龙凯时 - 人生就是搏!


由于现在门罗币官方尚未有视察信息披露 ,以是我们这里仅仅做了一些起源追踪 ,但仍可以看出这是一起通过全心准备网络攻击 ,从黑客急于注册新域名并在注册后的2-3天内就最先举行攻击的情形来看 ,黑客应该是不久前发明了门罗币网站的误差 ,从而特意定制恶意程序以期能够实时兑现 。


4.总结


通过该事务的剖析我们可以看出 ,黑客并没有直接窃取数据量较大的门罗币钱包文件 ,取而代之的是窃取用户门罗币的seed ,并使用SSL协议举行通讯 ,使得攻击越发隐秘 。由于窃取seed对用户账户的影响具有滞后性 ,因而 ,虽然现在仅有少数人报告了款子损失的案例 ,可是不扫除黑客已经窃取了相当数目的门罗币seed ,只不过黑客现在还未举行兑现 。

本次攻击事务再次给予我们清静警示 ,现在越来越多的黑客通过供应链攻击 ,使用用户对官方的信任 ,渗透进提供可信工具的网站并替换掉原始文件 ,以可信官网作为恶意代码的撒播途径 ,提高攻击的乐成率 。因此我们提醒相关企业用户 ,增强自身的网络清静 ,按期举行网站的清静排查和加固 ,实时更新系统的清静补丁 。


参考链接:


1.https://github.com/monero-project/monero/issues/6151

2.https://www.reddit.com/user/moneromanz/

3.https://bartblaze.blogspot.com/2019/11/monero-project-compromised.html