针对挖矿木马的一些基本认识

区块链


区块链是一种分布式的数据库,区块链中每一个区块可以用来记录多笔交易数据(如比特币的交易数据,A->B转账1个bit币),多个区块以链条式的方式串联在一起,就可以称为区块链。比特币就是利用区块链技术来实现去中心化。相当于你下载比特币客户端后,客户端就会自动从互联网上下载现有的区块链,类似于你拿到了比特币所有以往的交易账本。区块链在线演示平台

区块链表Tokens
上图就是一个区块链,共有3个区块,单个区块中有区块编号、随机值、交易数据data、prev前一个区块的hash值,hash 当前区块的hash值,修改任意一个字符,hash值也会随之改变。

什么是挖矿


挖矿可以简单理解成计算当前区块的hash值,而计算hash值的人称为矿工。

比如现实中,A需向B转账了100元,那么A将这条信息发布出去(A->B 支付100元),
矿工拿到这条交易数据,就会查看区块链找到A的所有转账记录(区块链可以理解成账本),计算A账户中是否有足够的钱,有的话那么这条记录就会被矿工写到区块的交易数据区,计算hash值,生成新的区块发布到互联网,一旦被其他节点认可那么这个新区块就会添加到区块链的末尾,同步更新,B过一段时间后从区块链中找到A转账给自己的记录,并且确认区块合法,那么B就可以认为此次转账成功。

挖矿

既然生成一个hash值如此容易,那么我们印象中的挖矿难是啥原因呢?
主要是因为对区块的hash值有一定的要求,比如要求hash值前4位为0的新区块才算合法区块,才能被其他节点认可,那么就需要修改区块里面的数据,在当前区块中交易数据不能修改(区块链的核心目的就是为了记录和保存真实的交易数据,如果能让你修改交易区数据,区块链就没有存在的意义了,保证交易数据的不可篡改可以理解为签名式验证,就比如某矿工抄错了某笔交易,别的节点在收到这个错误的区块的时候会主动验证里面的交易数据,发现错误,并舍弃,因为单笔交易数据是每个节点都能查询到的),那么矿工能修改的也就只有随机值了,矿工通过修改随机值来不断的生成hash值,直到hash值前4位为0。如上图中,区块1 随机值105500,区块2中的19200。

为啥要挖矿


以比特币为例,如果没有没人挖矿,就生成不了新的区块,区块链就不会增加,那么比特币就没法进行交易,无法进行流通。

为了保证不断有人进行挖矿,不断有新的区块产生,保证区块链的增长,比特币创始人就说谁在10分钟内生成新的区块并被其他节点认可,那么就会给挖矿的人一定的比特币奖励。这个时候就是拼计算机的运算速度了,为了保证10分钟左右才能生成新的区块,比特币会不断的调整挖矿的难度,比如这个周要求hash值前4位为0的才算合法,那么下周调整为前5位为0的新区块才算合法,那么难度就会不断的加大。全球矿工同时挖矿,拼的就是谁先挖到矿(生成新的区块)。

什么是矿池


矿池大家可以理解为很多挖矿机组成的一个整体,因为硬件的提升,以及每10分钟内全球只有一个新区块能够被认可,那么很多私人靠单一的计算机运算量很难在短短10分钟内生成新得区块,那么就把很多挖矿机器组合到一起,由矿池统一分发任务,一旦生成新的区块,那么矿池就会根据每台机器的功劳进行分发奖励,矿池就类似于集资分红,比如某个矿池在某个时间段生成新区块并被认可,比特币创始人给了10个比特币给矿池,那么矿池可能扣掉手续费1个比特币,把剩下的9个比特币按照功劳分发给矿池里的矿工。

什么是挖矿钱包


比特币在实际的交易中用户的名称是一串很长的字符串,类似于银行卡号,比如新创建的账户,那么里面的比特币的额度就是0,如果你利用木马等手段找肉鸡进行挖矿,现在一般的都是加入矿池进行挖矿,那么如果挖矿成功了,那么矿池的钱包账户就会向你的钱包里面转0.1BIT,那么你卡上就是0.1个比特币。

怎么挖矿
github上都有相应的开源挖矿软件或源码,搜都一大堆,这边主要看一下挖矿木马的通信流量是什么样子的?

挖矿木马流量截图


如上面2个图中,wireshark抓包,右键查看TCP流,可以看到类似于JSON格式的通信数据,如上图里面key: login对应42d4…开头的一串值,这个就是挖矿钱包,挖矿源码是XMRig,通过这个钱包很难查到这个钱包的拥有者,只能查到当前钱包有多少额度,隐蔽性很高,所以比特币常被用来进行非法交易,洗钱勒索啥的。

怎么发现和预防


日常生活中碰到很多挖矿的程序,直接一上来就消耗全部资源进行挖矿的木马程序相对比较少,大部分都是在受害端空闲的时候进行挖矿,受害者活动时间呢挖矿程序是停止的,这样有很强的隐蔽性,很多客户机器中招了1~2年后才被发现都是常态,很多时候杀毒都没用,因为很多木马在植入的时候就加入系统或者杀毒软件白名单了,而且挖矿很多时候并不存在恶意的攻击行为,不会像远控或者病毒蠕虫之类的进行破坏操作。

后面抽空会找一个具体的挖矿木马,写一些用Pchunter进行手工处理的文章。

目前常见的发现处理方式:
1、个人终端杀毒必备,445、139等端口最好关闭;
2、有条件的在网关接口部署态势感知设备或者开源的suricata,把一些常见的矿池地址以黑域名的方式添加进去,同时也可以针对特定的挖矿家族进行特征的提取。(这边我就不写具体的规则了,我看了一下suricata里面的规则,里面就有一些,大家可以去研究一下)
3、Linux系统挖矿木马的处理目前建议使用一些开源的杀毒软件扫一下,然后通过TOP进程定位到挖矿木马进行分析处理。
————————————————
原文链接:https://blog.csdn.net/yuanfengfengyuan/article/details/87275661

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值