使用Wireshark抓包分析挖矿行为——Stratum协议 附pcap包

作者:FancyPig | 发布时间: | 更新时间:

杂谈

最近在做挖矿监测相关的安全功能,可以从两个维度去监测挖矿木马

  • 威胁情报(DNS查询域名、IP)
  • 挖矿行为(主流的Stratum协议)

威胁情报

威胁情报之前的一文中已经做了分析,只需要一定的积累就好了

data-postsbox="{"id":9839,"title":"如何快速获取有价值的威胁情报","author":"FancyPig","author_id":1,"cover_image":"https://static.pigsec.cn/wp-content/uploads/2022/02/20220215065718823.png","cover_video":"","views":2123,"comment_count":5,"category":"cybersecurity","is_forum_post":false}">{"id":9839,"title":"如何快速获取有价值的威胁情报","author":"FancyPig","author_id":1,"cover_image":"https://static.pigsec.cn/wp-content/uploads/2022/02/20220215065718823.png","cover_video":"","views":2123,"comment_count":5,"category":"cybersecurity","is_forum_post":false}

挖矿行为

威胁情报如果更新的不及时,大概率会出现漏网之鱼,或者说威胁情报出来我们可以进行回溯,去查之前的日志是不是出现了挖矿行为,但是这样并不能及时,如果要及时的报出挖矿木马漏洞,我们必须要对其行为进行监测,那么就涉及到了Stratum协议(TCP协议的一种)

挖矿流程

主要就是矿池与矿机二者之间的交互

相关参数

以下是标准Stratum协议中的method参数值,很多基于Stratum协议会略有不同,但是格式还是高度一致

矿机->矿池

Method字段功能
mining.authorize矿机登录认证
mining.extranonce.subscribe向矿池表面矿机支持set_extranonce方法
mining.get_transactions获取作业ID
mining.submit矿机提交挖矿结果
mining.suggest_difficulty挖矿难度的偏好
mining.suggest_target挖矿目标的偏好
mining.capabilities(DRAFT)矿机通知矿池其拥有的能力和可选项

矿池->矿机

Method功能
client.get_version获取矿机版本信息
client.reconnect等待指定时间(s)后重连
client.show_message矿机展示信息
mining.notify响应矿机的mining.subscribe请求
mining.set_difficulty矿池更新难度
mining.set_extranonce矿池更新extranonce
mining.set_goal(DRAFT)通知矿机未来的工作目标(尚未使用)

使用Wireshark分析

我们这里主要使用的nicehash的矿池配合NBMiner_Win进行挖矿,然后使用Wireshark进行抓包分析

nicehash挖矿设置

nicehash登录后,选择挖矿>添加新矿机

然后选择Stratum生成器,右侧的算法选择DaggerHashimoto,位置任意

NBMiner设置

我们修改start_etc.bat文件

@cd /d "%~dp0"
nbminer -a ethash -o [Stratum URL地址] -u [用户名] -log
pause

我这里的就是这样的

如果你在国内挖矿的话,可能会连不上,这时需要科学上网(一般使用Clash)并设置代理参数,由于Clash的代理端口为7890,命令则改为

@cd /d "%~dp0"
nbminer -a ethash -o [Stratum URL地址] -u [用户名] -log --proxy 127.0.0.1:7890
pause

这么挖矿是没问题的,但是很多人反馈clash代理后,wireshark就抓不到相关的包了,因此,后面的wireshark抓包部分教程,我们这里直接使用阿里云海外服务器,这样就不需要配置代理了,同时也不用害怕抓不到包了!

租用海外GPU服务器

我们这里租用阿里云的GPU服务器,地点选择海外的

我们这里选择澳大利亚的服务器,里面有一块GPU,目测应该够了

系统我们这里预装windows的

然后确定订单就好了

配置好相应的密码,创建实例

登录windows服务器

下面的教程在该服务器完成

我们需要将挖矿程序和wireshark都上传到服务器

安装Cuda驱动

如果没有Cuda驱动,就无法进行挖矿。

Wireshark抓包

下载完成后上传到服务器上并进行安装,安装完成后

我们先打开wireshark,然后打开挖矿程序

Pcap包

命名方式:ETH挖矿内核_矿池_tcp端口

您可以通过搜索端口的方式,例如查看14444端口,tcp.port==14444来查看详细的挖矿过程

标签:wireshark, 抓包, 挖矿, 矿机, 挖矿行为, 挖矿监测, 恶意挖矿监测, 虚拟货币挖矿监测, stratum, stratum协议, stratum+tcp