30行代码搞定Monero活跃节点探测

访客3年前关于黑客接单970

概要

Monero 节点探测在这里指通过技术手段识别 Monero 区块链节点,目的是识别 Monero *** 节点的规模,以及关键节点地址,Monero(XMR,门罗币)是一种以隐私反追踪为主要卖点的加密货币,故意隐藏钱包地址和交易,允许人们秘密使用货币。

1. 门罗区块链简介

Monero 区块链技术主要由分布式存储,P2P *** ,共识机制组成,其工作验证算法 CryptoNight 是为 AES 密集型和消耗 CPU 的操作,显著降低了 GPU 对 CPU 的优势。受到 *** 黑产攻击者、自动化僵尸 *** 控制者的热烈欢迎,为肉鸡控制者提供了一种利用 CPU 算力进行变现的一种技术手段,目前比较知名的挖矿团伙有 watchdogs miner,ddgbotnet 挖矿团伙,pm miner,kingsing miner,8220 挖矿团伙等,他们长期偏向于 Linux 服务器进行挖矿攻击活动,挖掘的都是 Monero 币,已知的几个团伙目前收益更高的约在 1000 万RMB。

分布式存储指的是 *** 上大部分节点都保存了整条区块链,P2P *** 指的是节点即可以当作服务端,也可以当作客户端,共识机制指的是 proof of Work,工作量证明。

2.?门罗币区块链 *** 结构

门罗币区块链 *** 结构图,用如下比特币区块链 *** 结构图来表示。钱包 W ?(wallet)

挖矿 M (Mining),区块链数据库 B, *** 路由节点 N,SPV 简化交易验证轻节点,Bitcoin protocol 可以理解为 monero protocol,S 代表 Stratum 矿机和矿池之间的 TCP 通讯协议,P 指的是 poo l矿池。此外,Solo Miners 指的是独立矿工,pool miners 指的是使用矿池矿工,两者的区别在于挖矿者是否需要搭建 monero 的全节点,另外矿池矿工是共享收益,且需要交一定比例的收益。磨刀不误砍柴工,简要理解区块链:节点的功能存储区块链数据库以及进行 *** 路由通讯,普通用户转账就是在节点区块链数据库插入数据,但这个数据需要有矿工以特定方式进行运算,然后将运算后的结果同步到节点里,经过特定算法确认才会同步到其他节点数据库中,超过 51% 节点同步完成才算是完成交易过程,矿池的核心工作是给矿工分配任务,统计工作量并分发收益。从节点中获取待运算的数据,发送给矿工进行运算,然后拿运算后的结果同步到节点数据库中,运算成功获得一部分奖励,根据每个矿工的 Hash 量,之后来分配获得的奖励,独立矿工则不是按劳分配收益,挖矿成功则获得成功的一整份收益,如果不成功则没有收益。挖矿本质上是执行 Hash 函数的过程,而 Hash 函数是一个单输入单输出函数,输入数据就是一个区块头,普通矿工会登录矿池,提交自己的矿池账号(可以是钱包地址,也可以是代号)和密码(可以没有),矿池记录该账号的会话,矿池发送任务数据发送给矿工,矿工将结果数据发送给矿池。

Stratum 是挖矿的数据结构,如下 json 格式

矿池源码:Powerpool,支持混合挖矿,源码地址?https://github.com/sigwo/powerpool

门罗币节点源码 https://github.com/monero-project/monero

门罗币挖矿机源码 https://github.com/xmrig/xmrig

门罗钱包工具 https://www.getmonero.org/downloads/#cli

Stratum 协议源码 https://github.com/stratum/stratum

3. Monero 全网活跃节点分布

Monero 区块链的节点位置主要分布在中国、美国、欧洲,在其他国家和地区也有少量分布,节点的分布和国家区块链用户数量有关,区块链节点越多,说明该区块链的用户也越多。

Monero 节点搭建

1.?Monero 下载

源码下载地址:

https://github.com/monero-project/monerolinux平台编译好的程序下载:https://getmonero.org/downloads/https://downloads.getmonero.org/gui/linux64https://downloads.getmonero.org/cli/linux64需要安装最新版本才能正常使用,本人原先测试的是 0.13 版本,现在最新版是 0.17 版本。

2. 启动

使用 setsid https://www.freebuf.com/articles/network/monerd 启动门罗币节点初始化程序,或者使用其他节点地址来初始化节点信息。https://www.freebuf.com/articles/network/monerod --bootstrap-daemon-address node.moneroworld.com:18089

这条命令指的是使用目标节点当作指定的同步数据的节点,可以理解为主从复制,从目标节点拷贝数据到本地。

3. 获取其他节点存储节点

Monerod 程序自带查询 *** 节点的参数,可以使用 bootstrap-daemon-address 参数来同步远程的节点中的区块数据,以及存储的其他 monero 币 *** 节点的数据,使用 --seed-node 参数和 print_pl 参数就能够将所有同步到的所有存储的 *** 节点以字符串的方式打印出来,下方示例是 *** 流量示例。

https://www.freebuf.com/articles/network/monerod --seed-node test.com print_pl?得到解析后的 *** 节点(这里要注意的是,需要先将目标节点信息同步到本地即步骤 2,这样执行才有结果)。Monerod 节点程序每次只能同步一个节点存储的节点数据,每次同步的时候除了同步节点数据外,还会同步其他区块数据。

以下是节点查询时的流量数据:之一次连接其他节点时的流量数据,可以看到第二次的响应包中包含其他节点存储的其他节点的数据,通过解析返回结果,又重新进行查询即可获得全网节点 IP 和端口。

Monero?节点探测

1.?初始接入节点选择

新的 Monero 节点需要加入整个 Monero 节点的 P2P *** 当中,需要和其他的一个或多个 P2P 节点进行连接以融入 P2P *** 节点,Monero 的 *** 节点主要包含直连型和隐藏 *** 型,直连型指的是直接使用节点就能进行连接,而隐藏 *** 型则需要使用 Tor 或者其他 *** 的方式进行连接。

Monero 节点核心代码在 Github 上有公开,Github 的项目地址为 github.com/monero-project/monero,Monero 节点项目程序最新版默认硬编码配置了 14 节点 IP,这些节点也属于整个 Monero 区块链 *** 中的核心节点。


以下是 Monero 项目中核心节点的 IP 信息:在其他来源直接下载的编译程序中节点的配置会有些许差别,这个是在 getmonero 下载的 0.16 版本程序中硬编码存储的 24 个节点地址,有部分和上方节点重合。212.83.175.67:280805.9.100.248:28080163.172.182.165:28080195.154.123.123:28080212.83.172.165:28080192.110.160.146:28080162.210.173.150:38080162.210.173.151:38080192.110.160.146:38080107.152.130.98:18080212.83.175.67:180805.9.100.248:18080163.172.182.165:18080161.67.132.39:18080198.74.231.92:18080195.154.123.123:18080212.83.172.165:18080192.110.160.146:1808088.198.163.90:1808095.217.25.101:18080209.250.243.248:18080104.238.221.81:1808066.85.74.134:18080


除了默认配置节点外,还可以使用其他平台公开的可信 Monero 节点。

TOR 远程节点具有隐藏源 IP 的能力可以避免被追踪,以下是公开的部分 TOR 远程节点。

2. 爬取模式选择

查询出来的节点数据,如果包含 white 标志,说明是活跃节点。如果是 gray 标志,则表明一段时间内未交互,无法确定开放状态。对于节点的爬取,有两种方式,之一种去重只爬取 white 节点,第二种爬取所有节点,在爬取之前判断节点对应端口是否开放,然后进行爬取,第二种爬取 *** 爬取时间相对较长,但爬取到的活跃节点数更多。


3. 实现方式选择

几种实现 *** :

1. 使用扫描器构造请求包全网探测。

2. 使用脚本程序构造对应协议探测包与对应节点进行交互,然后同步存储的节点信息,接着对节点进行逐个节点信息读取,构造对应协议包的过程比较复杂,需要较长的编码时间。

3. 使用 shell 脚本,调用 monerod 程序的自带读取远程节点存储节点信息的功能,存储到本地,然后不断遍历 IP 列表,最后将存储的信息汇总。

从覆盖度层面来说,2 和 3 方式实现探测到的节点数量会大于方式 1 探测到的节点数量,因为这些节点的端口非固定端口,使用扫描器全网探测的方式无法完全覆盖全部端口,而且探测次数更少。

从投入的时间来讲,使用方式 3 实现最少。

本人这里选择用 shell 脚本进行自动化爬取,通过 monero 节点程序直接进行读取,首先需要准备环境信息,1)安装 nc 命令;2)将 monero 节点程序放在外网可访问处;3)生成一个基础特定格式的 monero 节点列表文件,monero_node1,里面的格式示例:38 个 A+192.168.1.1 空格,下面就是全部代码:

4. 探测结果

在 2019 年 5 月的时候进行探测的结果,总节点数有 15709 个,总节点包含开放的活跃节点和未开放不活跃节点,这些信息是通过遍历所有活跃的节点中存储的连接过该节点的 IP 总和。探测活跃节点数为 1812。通过活跃节点之间存储的 IP 关系进行绘图分析,将所有的信息梳理成节点 IP ->节点 IP 存储的其他 IP,用来得到 IP 间的连接关系,可以看到下图中的大红原点属于该门罗币节点的主要节点,总共有 35 个 IP 地址,除了 Monero 源码中配置的 14 个外,还有不同的区块链服务商也有提供 21 个核心节点。

5. 攻击方式思考

大家可以根据 monero 活跃节点关系图想出一些针对 Monero 的攻击方式,对应攻击方式同样也可以用到相似类型区块链当中,以下前两种是个人的想法,其他的是网上摘录下来的。如果大家有新的攻击思路也可以在下方评论区进行留言讨论。

我这里举例几种攻击 *** :

1)挖矿算力盗窃攻击,通过在 *** 设备中监控 monero 挖矿提交的相关 hash 区块,将它同时提交到自己指定的核心 *** 节点中,只要自己的 *** 速度够快,这个 hash 块就会被窃取,这种是针对挖矿者还有矿池的攻击。

2)Monero 节点接入 IP 监控,削弱 Monero 区块链的隐蔽性,可以知道所有交易发生时的接入 IP,针对那些不是使用平台和 Tor 等隐藏 *** 的使用者的连接 IP 会暴露,可以通过 IP 进一步分析连接者的身份。

3)日蚀攻击:日蚀攻击是一种针对 P2P *** 的攻击。这种攻击 *** 与共识算法关系不大,理论上讲对 PoW、PoS、DbFT 等共识算法都有效,但是它非常依赖于节点在 P2P *** 处理上的漏洞,因此实施攻击不具备普适性。

4)51% 算力攻击:51% 算力攻击是区块链最著名的攻击方式之一。在一个 POW 共识的区块链 *** 中,算力即是权力。当超过 50% 的算力都由一人控制时,此人就可以任意的撤销和阻止交易,进而实现双花。这种攻击在大型 *** 中较难实现,在小型 *** 中发生的可能性更高。在 POS 共识中与之类似的有币龄累计攻击和长距离攻击。

5)Ddos 攻击,分布式拒绝服务攻击,可以通过门罗 P2P 相关协议进行交互,使得目标节点资源耗尽,无法处理其他的正常服务,通常和其他攻击方式一起使用。


附录

Pm miner 挖矿团伙,是因为攻击者的木马安装脚本的名称到目前为止一直都是 pm.sh,所以我称它为 pm miner 挖矿团伙,该挖矿团伙活跃目前仍比较活跃,常使用 redis 空口令以及其他 rce 方式进行传播,攻击者也会挑选目标进行进一步的内网渗透攻击,使用自动化脚本进行 sshd 后门窃取账号密码,痕迹清除,以及回传数据等操作,攻击者会根据拿到的数据筛选目标进行进一步攻击,从而扩大攻击战果。

Watchdogs miner 挖矿团伙,早期版本挖矿木马名称为 watchdog,后期该挖矿木马一直都在更新,会使用动态链接库来隐藏木马进程,目前的该挖矿团伙初始化脚本中还有 watchdog_url 等关键字,初始化 shell 脚本名称为 init.sh。ddgbotnet 挖矿团伙,因为木马文件名称为 ddgxxx,并且会在系统中创建 .ddg 目录,所以称之为 ddgbotnet 挖矿团伙,该团伙的木马下载地址之前一直为 i.sh,经过更新有使用 P2P *** ,主要利用 redis 弱口令进行传播。Kingsing miner 挖矿团伙,因为木马组件中一个挖矿木马文件名称为 Kingsing,使用 go 语言编写,所以称之为 kingsing 木马,常使用 redis 空口令漏洞,以及 web 类命令执行漏洞进行传播。8220 挖矿团伙,早期的挖矿木马下载地址全是 8220 端口,使用 docker 进行部署的,后期有了比较大的变化,但木马还是原来的木马。

相关文章

韩国推离婚夫妇重聚生活综艺-韩国推离婚夫妇综

一直以来韩国综艺节目都是做得非常好的,现在国内很多在热播的综艺节目都是从韩国综艺节目中借鉴过来的,现在韩国又出了一个新的综艺节目题材,首档离婚夫妇重聚生活综艺,此综艺节目推出后便引起了大众的关注,由于...

为什么我找的黑客都是先收费呢-黑客个性签名霸气qq(微信个性签名小学生霸气一点的)

为什么我找的黑客都是先收费呢-黑客个性签名霸气qq(微信个性签名小学生霸气一点的)

为什么我找的黑客都是先收费呢相关问题 黑客俗称什么相关问题 黑客对抗是什么角色 怎么用手机学黑客(手机被黑客控制怎么办) 黑客最牛的是什么 家长远程锁孩子手机(手机被家长锁...

神一样的逻辑!韩雪微博怒斥中国移动霸王条

流量不清零原是好事儿,但中国移动通信却实行的让客户不爽快。日前,著名女明星韩雪在新浪微博痛斥中国移动通信那些霸王条款,神其“神一样的逻辑性”。 我国著名演员:韩雪 11月1日,韩雪发布微博称,由于...

黑客菜霸的联系方式-黑客能不能查到qq位置(黑客能不能查到朋友圈内容)

黑客菜霸的联系方式-黑客能不能查到qq位置(黑客能不能查到朋友圈内容)

黑客菜霸的联系方式相关问题 qq资料查询网站黑客社工相关问题 黑客一般使用什么系统 网上的地推团队靠谱不(深圳地推团队外包)...

五个金砖国家是哪五个(金砖国家的意义)

  金砖五国领导人员第九次大会将于17年9月3日至五日在福建省厦门市举办,全球将再度聚焦点我国。那麼究竟什么叫金砖四国,金砖四国包含那五个我国。今日,我们一起来了解一下金砖四国。   金银代表什么意思...

钓鱼网站新骗术骗微信公众号 钓鱼网站投诉微信公众号行骗

诈骗网站新骗局骗微信公众平台 诈骗网站举报微信公众平台诈骗。今日最新动态,现阶段微信公众平台运营人遭受许多群众帐户失窃的状况,原因全是被诈骗网站先举报你的微信公众平台,随后将举报的难题叙述为一个诈骗网...