Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

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

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

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

工具目录

分类

查看所有分类
Loading categories
enum4linux-ng — enum4linux 的下一代版本(一款 Windows/Samba 枚举工具),增加了 JSON/YAML 导出等额外功能。面向安全专业人员和 CTF 玩家。 | Kitploit
工具/GitHubGitHub/cddmp/enum4linux-ng
侦察信息收集网络安全CTF渗透测试
GitHubcddmp/enum4linux-ng

enum4linux-ng

enum4linux 的下一代版本(一款 Windows/Samba 枚举工具),增加了 JSON/YAML 导出等额外功能。面向安全专业人员和 CTF 玩家。

查看仓库
1.6k1526个月前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

enum4linux-ng

enum4linux 的下一代版本

enum4linux-ng.py 是 Mark Lowe(原 Portcullis Labs,现 Cisco CX Security Labs)的 enum4linux.pl 的重写版本,这是一个用于枚举 Windows 和 Samba 系统信息的工具,面向安全专业人员和 CTF 玩家。该工具主要是一个围绕 Samba 工具 nmblookup、net、rpcclient 和 smbclient 的包装器。

我为了自我学习以及克服 enum4linux.pl 的问题而制作了它。它拥有与原版工具相同的功能(尽管有些地方不同)。与原版工具不同的是,它解析 Samba 工具的所有输出,并允许将所有发现结果导出为 YAML 或 JSON 文件。这样做的目的是让其他工具可以导入发现结果并进行进一步处理。计划在未来添加新功能。

功能

  • 支持 YAML 和 JSON 导出
  • 彩色控制台输出(可通过 NO_COLOR 禁用)
  • 原生实现了 ldapsearch 和 polenum
  • 支持多种身份验证方法
  • 支持旧版 SMBv1 连接
  • 自动检测 IPC 签名支持
  • “智能”枚举将自动禁用可能失败的测试
  • 超时支持
  • SMB 协议版本检测
  • IPv6 支持(实验性)

差异

与原版 enum4linux 相比,某些实现方式有所不同。以下是重要的差异:

  • 默认不枚举组成员,可通过 -Gm 启用
  • RID 循环不是默认枚举(-A)的一部分,但可通过 -R 启用
  • 通过将多个 SID 查询分组到同一个 rpcclient 调用中,可以更快地完成 RID 循环
  • 参数命名略有不同(例如使用 -A 而不是 -a)

致谢

我要感谢并归功于原 Portcullis Labs(现 Cisco CX Security Labs)的人员,即:

  • Mark Lowe 创建了原版 'enum4linux.pl' (https://github.com/CiscoCXSecurity/enum4linux)
  • Richard 'deanx' Dean 创建了原版 'polenum' (https://labs.portcullis.co.uk/tools/polenum/)

另外,我还要感谢并归功于:

  • Craig 'Wh1t3Fox' West 提供的 'polenum' 分支 (https://github.com/Wh1t3Fox/polenum)

阅读你们的代码非常有趣!:)

最后但同样重要的是,感谢各位贡献代码、报告问题以及提供有用建议来改进该工具的人。

法律声明

如果你使用该工具:请不要用于非法目的。

运行

示例运行可能如下所示:

root@kitploit:~
enum4linux-ng.py -As <target> -oY out

演示

Windows Server 2012 R2

该演示展示了针对 Windows Server 2012 R2 标准安装的运行。使用的命令如下:

root@kitploit:~
enum4linux-ng.py 192.168.125.131 -u Tester -p 'Start123!' -oY out

创建了一个用户 'Tester',密码为 'Start123!'。防火墙访问已允许。枚举完成后,我向上滚动以使结果更清晰。由于未指定其他枚举选项,工具将假定使用 -A,其行为类似于 enum4linux 的 -a 选项。提供了用户名和密码。-oY 选项会将所有枚举数据导出为 YAML 文件,以便在 out.yaml 中进一步处理。工具在开始时自动检测到远程主机上未运行 LDAP,因此将跳过任何进一步的 LDAP 检查,而这些检查通常是默认枚举的一部分。

演示

Metasploitable 2

第二个演示展示了针对 Metasploitable 2 的运行。使用的命令如下:

root@kitploit:~
enum4linux-ng.py 192.168.125.145 -A -C

这次使用了 -A 和 -C 选项。第一个选项的行为类似于 enum4linux 的 -a 选项,第二个选项将启用服务枚举。这次没有提供凭据。工具自动检测到需要使用 SMBv1。没有写入 YAML 或 JSON 文件。我再次向上滚动以使结果更清晰。

演示

用法

root@kitploit:~
usage: enum4linux-ng.py [-h] [-A] [-As] [-U] [-G] [-Gm] [-S] [-C] [-P] [-O] [-L] [-I] [-R [BULK_SIZE]] [-N] [-w DOMAIN] [-u USER]
                        [-p PW | -K TICKET_FILE | -H NTHASH] [--local-auth] [-d] [-k USERS] [-r RANGES] [-s SHARES_FILE] [-t TIMEOUT] [-v] [--keep]
                        [-oJ OUT_JSON_FILE | -oY OUT_YAML_FILE | -oA OUT_FILE]
                        host

该工具是 Mark Lowe 的 enum4linux.pl 的重写版本,用于枚举 Windows 和 Samba 系统的信息。它主要是 Samba 工具 nmblookup、net、rpcclient 和 smbclient 的包装器。与原版工具不同的是,它允许将枚举结果导出为 YAML 或 JSON 文件,以便其他工具进一步处理。该工具尝试进行“智能”枚举。它首先检查目标上是否可通过 SMB 或 LDAP 访问。根据此检查结果,它将动态跳过检查(例如,如果 LDAP 未运行则跳过 LDAP 检查)。如果 SMB 可访问,它将始终检查是否可以建立会话。如果无法建立会话,工具将停止枚举。枚举过程可以通过 CTRL+C 中断。如果提供了 -oJ 或 -oY 选项,工具在收到由 CTRL+C 触发的 SIGINT 信号时,会将当前的枚举状态写入 JSON 或 YAML 文件。该工具是为安全专业人员和 CTF 玩家制作的。禁止非法使用。

位置参数:
  host

选项:
  -h, --help         显示此帮助信息并退出
  -A                 执行所有简单的枚举,包括 nmblookup (-U -G -S -P -O -N -I -L)。如果你不提供任何其他选项,则会启用此选项。
  -As                执行所有简单的短枚举,不进行 NetBIOS 名称查找 (-U -G -S -P -O -I -L)
  -U                 通过 RPC 获取用户
  -G                 通过 RPC 获取组
  -Gm                通过 RPC 获取组及其成员
  -S                 通过 RPC 获取共享
  -C                 通过 RPC 获取服务
  -P                 通过 RPC 获取密码策略信息
  -O                 通过 RPC 获取操作系统信息
  -L                 通过 LDAP/LDAPS 获取额外的域信息(仅适用于域控制器)
  -I                 通过 RPC 获取打印机信息
  -R [BULK_SIZE]     通过 RID 循环枚举用户。可选地指定查找请求大小。
  -N                 执行 NetBIOS 名称查找(类似于 nbtstat)并尝试从输出中检索工作组
  -w DOMAIN          手动指定工作组/域(通常会自动找到)
  -u USER            指定要使用的用户名(默认为 "")
  -p PW              指定要使用的密码(默认为 "")
  -K TICKET_FILE     尝试使用 Kerberos 进行身份验证,仅适用于 Active Directory 环境(注意:必须正确设置 DNS 才能使此选项生效)
  -H NTHASH          尝试使用哈希进行身份验证
  --local-auth       在目标上进行本地身份验证
  -d                 获取用户和组的详细信息,适用于 -U、-G 和 -R
  -k USERS           远程系统上存在的用户(默认:administrator,guest,krbtgt,domain admins,root,bin,none)。用于通过 "lookupsids" 获取 SID
  -r RANGES          要枚举的 RID 范围(默认:500-550,1000-1050)
  -s SHARES_FILE     对共享进行暴力猜测
  -t TIMEOUT         设置连接超时时间(秒)(默认:10 秒)
  -v                 详细模式,显示正在运行的完整 Samba 工具命令(net、rpcclient 等)
  --keep             枚举后不删除工具运行期间创建的 Samba 配置文件(与 -v 一起使用)
  -oJ OUT_JSON_FILE  将输出写入 JSON 文件(扩展名自动添加)
  -oY OUT_YAML_FILE  将输出写入 YAML 文件(扩展名自动添加)
  -oA OUT_FILE       将输出写入 YAML 和 JSON 文件(扩展名自动添加)

安装

有多种安装该工具的方法。要么该工具作为 Linux 发行版的软件包提供,要么你需要手动安装。

Kali Linux

root@kitploit:~
apt install enum4linux-ng 

Archstrike

root@kitploit:~
pacman -S enum4linux-ng

NixOS

(已在 NixOS 20.9 上测试)

root@kitploit:~
nix-env -iA nixos.enum4linux-ng

手动安装

如果你的 Linux 发行版不提供软件包,可以使用以下手动安装方法。

依赖项

该工具使用 Samba 客户端工具,即:

  • nmblookup
  • net
  • rpcclient
  • smbclient

这些工具应该适用于所有 Linux 发行版。软件包通常称为 smbclient、samba-client 或类似名称。

此外,你还需要以下 Python 包:

  • ldap3
  • PyYaml
  • impacket

为了更快地处理 YAML(可选!),还可以安装(大多数 Linux 发行版上应为 PyYaml 的依赖项):

  • LibYAML

下面列出了一些特定 Linux 发行版的安装示例。另外,也提供了与发行版无关的方式(Python pip、Python 虚拟环境和 Docker)。

特定 Linux 发行版

对于以下所有发行版示例,LibYAML 已经是相应 PyYaml 包的依赖项,因此会自动安装。

ArchLinux

root@kitploit:~
pacman -S smbclient python-ldap3 python-yaml impacket

Fedora/CentOS/RHEL

(已在 Fedora Workstation 31 上测试)

root@kitploit:~
dnf install samba-common-tools samba-client python3-ldap3 python3-pyyaml python3-impacket

Debian/Ubuntu/Linux Mint

(对于 Ubuntu 18.04 或更低版本,请使用 Docker 或 Python 虚拟环境方式)

root@kitploit:~
apt install smbclient python3-ldap3 python3-yaml python3-impacket

与 Linux 发行版无关

Python pip

根据 Linux 发行版的不同,可能需要 pip3 或 pip:

root@kitploit:~
pip install pyyaml ldap3 impacket

替代方案:

root@kitploit:~
pip install -r requirements.txt

请记住,你仍然需要按照上述方式安装 Samba 工具。

Python 虚拟环境

root@kitploit:~
git clone https://github.com/cddmp/enum4linux-ng
cd enum4linux-ng
python3 -m venv venv
source venv/bin/activate
pip install wheel
pip install -r requirements.txt

然后通过以下方式运行:

root@kitploit:~
python3 enum4linux-ng.py -As <target>

请记住,你仍然需要按照上述方式安装 Samba 工具。另外,每次打开新 shell 时,请确保运行 source venv/bin/activate。否则,将使用错误的 Python 解释器(系统自带的,而不是虚拟环境中的)以及错误的库。

Docker

root@kitploit:~
git clone https://github.com/cddmp/enum4linux-ng
cd enum4linux-ng
docker build . --tag enum4linux-ng

构建完成后,示例运行可能如下所示:

root@kitploit:~
docker run -t enum4linux-ng -As <target>

贡献和支持

偶尔,工具会输出类似以下的错误信息:

Could not <some text here>, please open a GitHub issue

在这种情况下,请使用 -v 和 --keep 选项重新运行工具。这将使你能够看到导致错误消息的确切命令。复制该命令,在终端中运行并将输出重定向到文件。然后在此处打开一个 GitHub issue,粘贴命令并附加错误输出文件。这将有助于调试问题。当然,你也可以自己调试并提交拉取请求。

如果该工具对你有帮助,欢迎留下 star!

下载工具