一个基于区块链网络的匿名远控

0x00 敬告

本文所阐述内容仅供技术探讨及研究,所有环境均为实验环境,不存在任何违反破坏计算机行为。文中所有工具仅供研究使用,产生一切后果由使用者自负。

原创文章,转载请注明转载原作者及原文链接。

原文链接

@TenguG@Maka8ka

0x01 前言

随着网络技术革新,防火墙杀软的层层迭代,远控木马发展了良久,从最早的基于TCP开端口正向链接的木马,到后来有基于TCP的C/S端的反向链接木马,再到各类变种的HTTP/HTTPS/DNS木马。

目前用的最多的cobaltstrike/msf,免杀多要对shellcode进行免杀,各类加载器,进程注入等绕过杀软。但绕过杀软最好的办法就是自己写一个远控程序。

写远控之前我们就要思考一下目前的cobaltstrike和msf在回连的时候主要特征是什么,行为特征?回连特征?包含回连IP/域名/CDN?行为特征可通过自己写远控客户端进行规避,IP/域名/服务器是不是都得使用实名信息/付款方式进行购买,匿名性大大降低。总有暴露的风险。

那么如何实现在无IP/域名/服务器的情况下实现无需任何实名信息的远控才是本文主要探讨的问题。所以需要思考一下,如何无IP/域名实现穿透?P2P?和区块链又有啥关系

0x02 基于NKN区块链网络的P2P网络

/images/NGLite/Untitled.png

上图来自:https://nkn.org/wp-content/uploads/2020/12/NKN概览.pdf

所有客户端/服务端均直接链接NKN的官方节点/由用户加入NKN网络的挖矿节点,所有节点均只知道相邻的邻居节点。此时客户端和服务端在网络中几乎对等。服务端在无公网IP端口的情况下,仅需能链接外网,有外网访问的权限,即可作为被连接的对象。

/images/NGLite/Untitled%201.png

上图来自https://github.com/nknorg/nkn-sdk-go

利用NKN的sdk即可快速实现具有消息传送功能的客户端,由于在P2P网络中无明显的客户端/服务端区别,在之后的文章中姑且称C2控制端,和受控端。

0x03 一般远控执行流程

/images/NGLite/Untitled%202.png

0x04 NGLite执行流程

/images/NGLite/Untitled%203.png

透过NKN 的网络,可以实现一个匿名的P2P群组,类似于聊天频道,每个发送端可直接对目的端发送消息,消息经过nkn网络中的不同节点进行传送。

0x05 实现效果

这里只给大家提供一个最简单的思路去实现自己的c2程序。

该程序受控端在最初启动的时候之后链接nkn,并向控制端发送自己的id

在收到控制端的执行指令之前不会执行任何命令及相关操作。

/images/NGLite/Untitled%204.png

0x06 项目demo地址

https://github.com/Maka8ka/NGLite

基本上是完全免杀的,只是有些方法写的不好

/images/NGLite/Untitled%205.png

0x07 总结

至此,即可通过nkn区块链的sdk快速实现一个远控,优点是:匿名,无需实名购买任何公网资源,速度快。缺点:链接nkn.org等官方域名(可通过一些方法规避),客户端体积较大。

@TenguG@Maka8ka

comments powered by Disqus