Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
neurax — 一个用于构建自我传播二进制文件的框架 | Kitploit
工具/GitHubGitHub/redcode-labs/neurax
侦察密码攻击Payload生成持久化机制漏洞利用横向移动后渗透利用恶意软件分析命令与控制红队
GitHubredcode-labs/neurax

neurax

1.0k101172年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

一个用于构建自我传播二进制文件的框架

查看仓库



Neurax



一个帮助创建自传播软件的框架



概述

借助 Neurax,Golang 二进制文件无需使用任何外部服务器即可在局域网/广域网上传播。

多样化的配置选项和命令启动器允许在各种无线环境中快速传播。

示例代码

package main
import . "github.com/redcode-labs/Neurax"

func main(){

  //指定服务端口和使用的启动器
  Nrx.Config.Port = 5555
  Nrx.Config.Stager = "wget"

  //在后台启动一个服务器,暴露当前二进制文件
  go NeuraxServer()
 
  //将当前二进制文件复制到所有逻辑驱动器
  NeuraxDisks()

  //创建一个命令启动器,应在目标机器上启动
  //它将下载、解码并执行二进制文件
  cmd_stager := NeuraxStager()

  /* 现在你需要以某种方式执行上面生成的命令。
     你可以使用 SSH 暴力破解、某些 RCE 或任何你想要的方法 ;> */

}



v. 2.X 新增功能(独立子项目)

  • 重构:放弃类似框架的方法,转而使用可直接运行的二进制文件
  • 适用于所有 UNIX 目标的通用 wget 启动器
  • 单一配置文件,可动态调整蠕虫行为
  • 通过 unlinkat(2) 自动自删除
  • 示例 LinuxKI CVE 漏洞利用,以增强网络传播能力
  • JSON 配置文件被下载并评估
  • 主机收割者的最小化重写

v. 2.5 新增功能

  • 可选后台执行第二阶段二进制文件(N.StagerBg)
  • 命令启动器保存并在上下文本地路径中执行
  • 成功执行后立即删除下载的二进制文件
  • 出于速度/稳定性原因移除了同步命令执行机制。 在下一次发布之前,我会想出一个合适的替代方案。
  • N.NoInfectCheck 用于禁用检查主机是否已被感染。
  • 目标机器上的单次执行策略,通过在 NeuraxServer() 内放置独占文件互斥锁来强制执行。
  • 添加了用于服务二进制文件的嵌套 goroutine
  • 适用于 Linux 的新 httrack 启动器
  • 注释掉的常用词典,用于检测规避
  • 命令启动器可以在删除二进制文件之前等待(N.StagerRemovalDelay)

v. 2.0 新增功能

  • 新的词典变异器 + 按国家划分的常见密码
  • 即兴被动扫描
  • .FastScan 选项,使主动扫描稍快
  • 词典严格在内存中创建
  • NeuraxScan() 接受回调函数而不是通道作为参数
  • NeuraxScan() 在无限循环中扫描,可以设置整个子网/目标池每次扫描之间的间隔
  • 对非 IP 格式的目标进行反向 DNS 查找
  • 从 ARP 缓存中提取目标候选
  • 可以仅扫描选定的目标列表,并优先处理特定目标(如默认网关)
  • 使用被动网络扫描时可以指定接口和超时
  • 改进的命令启动器(可以选择以提升权限执行 / 多次执行)
  • 少量选项名称的更改
  • NeuraxConfig. 变为 N.(因为输入更短)
  • 随机内存分配 + 二进制迁移函数
  • 可以链式使用多个启动器(例如 wget + curl)
  • 创建的词典的容量和复杂性可以轻松调整(通过诸如 .WordlistExpand 等选项)
  • 可以设置创建的二进制文件的生存时间

配置条目列表

名称描述默认值
Nrx.Config.Stager要使用的命令启动器的名称随机,兼容平台
Nrx.Config.StagerSudo如果为 true,Linux 命令启动器将以提升的权限执行false
Nrx.Config.StagerRetry重新执行命令启动器的次数0
Nrx.Config.StagerRemoveDelay在删除下载的二进制文件之前应用休眠指令true
Nrx.Config.Port服务端口6741
Nrx.Config.Platform目标平台自动检测
Nrx.Config.Path二进制文件在主机上保存的路径.
Nrx.Config.FileName下载的二进制文件服务并保存的名称随机
Nrx.Config.Base64对传输的二进制文件进行 base64 编码false
Nrx.Config.CommPort二进制文件之间通信使用的端口7777
Nrx.Config.CommProto节点间通信协议"udp"
Nrx.Config.ReverseListener包含远程反向 shell 处理程序的 "<host>:<port>"未指定
Nrx.Config.ReverseProto用于反向连接的协议"udp"
Nrx.Config.ScanRequiredPortNeuraxScan() 仅在目标开放特定端口时才将其视为活动主机无
Nrx.Config.ScanPassiveNeuraxScan() 使用被动 ARP 流量监控检测主机false
Nrx.Config.ScanPassiveTimeoutNeuraxScan() 监视 ARP 层的秒数50 秒
Nrx.Config.ScanPassiveIface被动扫描时使用的接口默认
Nrx.Config.ScanActiveTimeoutNeuraxScan() 在每个线程中将此值设置为扫描端口的超时时间2 秒
Nrx.Config.ScanPassiveAllNeuraxScan() 捕获所有发现设备上的数据包false
Nrx.Config.ScanPassiveNoArp被动扫描不设置严格的 ARP 捕获过滤器false
Nrx.Config.ScanFirst包含优先扫描的 IP 地址的切片[]string{}
Nrx.Config.ScanFirstOnlyNeuraxScan() 仅扫描 .ScanFirst 中指定的主机false
Nrx.Config.ScanArpCacheNeuraxScan() 首先扫描本地 ARP 缓存中找到的主机。仅适用于主动扫描false
Nrx.Config.ScanCidrNeuraxScan() 扫描此 CIDR本地 IP + "\24"
Nrx.Config.ScanActiveThreads用于 NeuraxScan() 的线程数10
Nrx.Config.ScanFullRangeNeuraxScan() 扫描目标主机的所有端口以确定其是否活动从 19 到 300
Nrx.Config.ScanInterval在扫描整个子网之前休眠的时间间隔"2m"
Nrx.Config.ScanHostInterval在主动模式下扫描下一个主机之前休眠的时间间隔"none"
Nrx.Config.ScanGatewayFirst使用主动扫描时,网关是第一个被扫描的主机false
Nrx.Config.Verbose如果为 true,所有错误信息将输出到 STDOUTfalse
Nrx.Config.Remove当发生任何错误时,二进制文件将自身从主机上移除false
Nrx.Config.PreventReexec如果为 true,当任何命令与之前已接收的命令匹配时,不执行该命令true
Nrx.Config.WordlistExpandNeuraxWordlist() 对输入单词执行非标准转换false
Nrx.Config.WordlistCommon将 20 个最常见密码添加到词典开头false
Nrx.Config.WordlistCommonNum要使用的常见密码数量全部
Nrx.Config.WordlistCommonCountries包含国家代码和要使用的密码数量的 map[string]intmap[string]int
Nrx.Config.WordlistMutators当指定 .WordlistExpand 时使用的变异器{"single_upper", "cyryllic", "encapsule"}
Nrx.Config.WordlistPermuteNumNeuraxWordlistPermute() 生成的排列最大长度2
Nrx.Config.WordlistPermuteSeparator用于排列的分隔符字符"-"
Nrx.Config.WordlistShuffle在返回之前打乱生成的词典false
Nrx.Config.AllocNum此条目定义 NeuraxAlloc() 分配随机内存的次数5
Nrx.Config.Blacklist包含被排除在任何扫描之外的 IP 地址的切片[]string{}
Nrx.Config.FastHTTPIsHostInfected() 中的 HTTP 请求使用 fasthttp 库执行false
Nrx.Config.Debug启用调试信息false
Nrx.Config.NoInfectCheck禁用检查主机是否已感染true

寻找新目标

函数 NeuraxScan(func(string)) 能够检测本地网络上的活动主机。 它的唯一参数是一个回调函数,该函数在后台对每个活动主机调用。 当主机至少有一个开放端口、未被感染且满足 N. 中指定的条件时,该主机被视为活动主机。

NeuraxScan() 以无限循环运行——它扫描由 .Cidr 配置条目指定的整个子网,当每个主机都被扫描后,函数休眠 .ScanInterval 中给定的间隔。

磁盘感染

Neurax 二进制文件不一定需要通过网络方式复制自身。 函数 NeuraxDisks() 将当前二进制文件(以非可疑名称)复制到所有找到的逻辑驱动器。 复制的二进制文件不会被执行,只是驻留在目标位置等待运行。 如果无法获取磁盘列表或无法复制到任何目标,NeuraxDisks() 返回一个 error。

另一个函数 NeuraxZIP(num_files int) err 允许创建一个随机命名的 .zip 压缩包,其中包含当前二进制文件。 它保存在当前目录中,并包含最多 num_files 个随机文件。

NeuraxZIPSelf() 仅压缩当前二进制文件,创建一个同名的压缩包。

反向连接

可以使用 NeuraxReverse() 建立交互式反向 shell。 它将从 .ReverseListener 中指定的主机名(格式为 "<host>:<port>")接收命令。 使用的协议由 .ReverseProto 定义。 如果在调用此函数之前启动了 NeuraxOpenComm(),每个命令的行为将如上节所述。 如果没有启动,命令将在本地执行。

注意:此函数也应作为 goroutine 运行,以防止由用于接收的无限循环引起的阻塞。

清理

每当节点收到 "purge" 命令时,它会将此命令重新发送给所有其他节点,从主机上移除自身并退出。 此行为也可以通过源代码中的 NeuraxPurge() 启动。

词典创建

如果你选择的传播向量基于某种暴力破解,准备好一个合适的词典是很好的。 将单词存储在客户端文本文件中并不高效,因此你可以使用 NeuraxWordlist(...words) []string 来变异一个基础词典。 要对一组给定单词进行排列,请使用 NeuraxWordlistPermute(..words) []string。

设置生存时间

如果你希望二进制文件在给定时间后移除自身,请在代码开头使用 NeuraxSetTTL()。 此函数应作为 goroutine 启动。 例如:

go NeuraxSetTTL("2m")

将使二进制文件在初始执行后 2 分钟运行 NeuraxPurgeSelf()。

同时使用多个启动器

如果你想链式使用给定平台的所有可用启动器,请将 .Stager 设置为 "chain"。

移动已投放的二进制文件

如果你需要在初始执行后复制二进制文件,请使用 NeuraxMigrate(path string)。 它会将二进制文件复制到 path 下,移除当前二进制文件,并执行新迁移的二进制文件。

支持此工具

如果你喜欢这个项目并希望看到它成长,请考虑进行小额捐赠 :>

>>>>> 捐赠 <<<<<

许可证

此软件采用 MIT 许可证

下载工具