慢雾分析:门罗币钱包之“狸猫换太子”

昨日,慢雾安全团队监测到 Monero 官方社区和官方 GitHub 出现安全类 issue 提醒,据用户反馈从 Monero 门罗币官网 getmonero.org 下载的 CLI 二进制钱包文件和正常 hash 不一致,疑似被恶意替换!而且用户被盗大概价值 7000 美金的门罗币。

慢雾安全团队第一时间发布预警并进行了相关安全分析与溯源:

在 Reddit 上的反馈地址: https://www.reddit.com/r/Monero/comments/dyfozs/security_warning_cli_binaries_available_on/

GitHub 上的讨论地址: https://github.com/monero-project/monero/issues/6151

Linux 二进制文件: 用户 nikitasius 提供了能够检索到的恶意二进制文件信息: https://www.reddit.com/r/Monero/comments/dyfozs/security_warning_cli_binaries_available_on/

此二进制文件是有以下属性的 ELF 文件:

MD5:d267be7efc3f2c4dde8e90b9b489ed2a
SHA-1:394bde8bb86d75eaeee69e00d96d8daf70df4b0a
SHA-256:ab9afbc5f9a1df687558d570192fbfe9e085712657d2cfa5524f2c8caccca31
File type:ELF
Magic: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked (uses shared libs), for GNU/Linux 3.2.0, from 'x)', not stripped
File size: 27.63 MB (28967688 bytes)

对比合法文件和此 ELF 文件时,我们发现文件大小有所不同,并添加了一些新功能代码,如:

cryptonote :: simple_wallet :: send_seed

在打开或创建新钱包后会立即调用此功能,进行如下图所示的操作:

私钥将会被发送到:node.hashmonero.com

cryptonote :: simple_wallet :: send_to_cc

该功能会将数据发送到 CC 或 C2(命令控制服务器)服务器,从而窃取用户资产。

使用向该 C2 服务器发送 HTTP POST 请求,将资金相关敏感信息发送到以下恶意 C2:

node.xmrsupport.co
45.9.148.65

从分析来看,似乎并没有创建任何其他文件或文件夹,只是窃取私钥并试图从钱包中盗走资产。

Windows 二进制文件:

C2 服务器45.9.148.65 还具有以下属性:

MD5: 72417ab40b8ed359a37b72ac8d399bd7
SHA-1: 6bd94803b3487ae1997238614c6c81a0f18bcbb0
SHA-256: 963c1dfc86ff0e40cee176986ef9f2ce24fda53936c16f226c7387e1a3d67f74
File type: Win32 EXE
Magic: PE32+ executable for MS Windows (console) Mono/.Net assembly
File size: 65.14 MB (68302960 bytes)

Windows 版实际上与 Linux 版有相同的功能: 窃取私钥和钱包资产。 只是函数名称不同而已,例如 _ZN10cryptonote13simple_wallet9send_seedERKN4epee15wipeable_stringE

如果你有使用防火墙或代理(硬件或软件),请验证是否有网络流量与以下域名、IP发生连接:

node.hashmonero.com
node.xmrsupport.co
45.9.148.65
91.210.104.245

删除此文中列出的所有二进制文件; 验证 Monero 安装程序或安装程序文件的 hash 值。

针对初学者:https://src.getmonero.org/resources/user-guides/verification-windows-beginner.html

高级用法:https://src.getmonero.org/resources/user-guides/verification-allos-advanced.html

注意:哈希列表位于:https://web.getmonero.org/downloads/hashes.txt

什么是哈希?哈希是唯一的标识符。这可以是一个文件、一个单词等,最好使用 SHA256 哈希进行文件检查。

你还可以使用以下 Yara 规则来检测恶意或受感染的二进制文件: Monero_Compromise.yar

下载 Yara(和文档):https://github.com/VirusTotal/yara

建议

安装杀毒软件,并尽可能使用防火墙(免费或付费的都行); 如果已经在使用防病毒软件:使用 Monero(或其他矿工)时,最好不要在防病毒软件中排除特定的文件夹,如果需要,请在验证 hash 值之后再使用;

重置你的种子或帐户; 如何重置帐户:https://web.getmonero.org/resources/user-guides/restore_account.html

使用助记词恢复钱包:https://monero.stackexchange.com/questions/10/how-can-i-recover-a-wallet-using-the-mnemonic-seed

监视你的帐户/钱包,确认没有恶意交易。如果有,随时联系门罗团队以获取支持。

请删除并下载最新版本:https://web.getmonero.org/downloads/

门罗官方团队声明: Warning: The binaries of the CLI wallet were compromised for a short time: https://web.getmonero.org/2019/11/19/warning-compromised-binaries.html

慢雾团队提醒: 针对供应链攻击,鉴于开发、运维人员安全意识不足等问题,慢雾安全团队很久之前已经预见了这类攻击的可能性,Monero 不是第一个受到攻击的加密货币或钱包,也不可能是最后一个受到攻击的加密货币或钱包。 所以请官方人员注意自身账户安全,请使用强密码,并且一定尽可能使用 MFA(或2FA),时刻保持安全意识;针对各类应用程序有可用新版本更新时注意验证 hash 值。

有问题可以第一时间邮件联系慢雾安全团队 team@slowmist.com

附:

Domain Name: xmrsupport.co
Registry Domain ID: D9E3AC179ACA44FE4B81F274517F8F47E-NSR
Registrar WHOIS Server: whois.opensrs.net
Registrar URL: www.opensrs.com
Updated Date: 2019-11-14T16:02:52Z
Creation Date: 2019-11-14T16:02:51Z


IP HISTORY for hashmonero.com
45.9.148.65 from 2019-11-15 to 2019-11-17
91.210.104.245 from 2019-11-19 to 2019-11-19

感谢

nikitasius 提供的样本 binaryFate from: https://www.reddit.com/r/Monero/comments/dyfozs/security_warning_cli_binaries_available_on/

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