enum4linux:渗透测试中的Windows信息收割机!全参数详细教程!Kali Linux教程!
简介
一个用于枚举 Windows 和 Samba 主机数据的 Linux 替代方案。
enum.exe 的 Linux 替代方案,用于枚举 Windows 和 Samba 主机的数据。
主要功能
- RID 循环(在 Windows 2000 上,当 RestrictAnonymous 设置为 1 时)
- 用户列表(在 Windows 2000 上,当 RestrictAnonymous 设置为 0 时)
- 组成员信息列表
- 共享枚举
- 检测主机是否位于工作组或域中
- 识别远程操作系统
- 密码策略检索(使用 polenum)
Enum4linux 是一款用于枚举 Windows 和 Samba 系统信息的工具。它试图提供与 enum.exe(以前可从 www.bindview.com 获取)类似的功能。
它用 Perl 编写,本质上是对 Samba 工具 smbclient、rpclient、net 和 nmblookup 的包装。
安装
源码安装
通过以下命令来进行克隆项目,建议请先提前挂好代理来进行克隆。
git clone https://github.com/CiscoCXSecurity/enum4linux.git
进入目录并查看
cd enum4linux/
ls
输入以下命令,如果出现这个界面,就说明安装成功了。
./enum4linux.pl -h
APT 包管理器安装
Kali Linux 默认已经安装好 enum4linux 工具了,如果还未安装的话,也可以通过以下命令来进行安装。
sudo apt install enum4linux
使用
1. -h
显示此帮助消息并退出
enum4linux -h
2. 常规使用
用法:enum4linux [选项] ipenum4linux 192.168.174.128
3. -U
获取用户列表(RestrictAnonymous = 0)
此功能类似于 enum.exe -U IP。如果服务器允许,它会返回完整的用户名列表。在 Windows 2000 上,必须将 RestrictAnonymous 注册表设置设置为 0 才能使此功能生效。由于使用了不同的底层命令来检索数据,因此用户列表会以两种不同的格式显示两次。
enum4linux -U 192.168.174.132
4. -M
获取机器列表*
enum4linux -M 192.168.174.128
5. -S
获取共享列表
列出 Windows 共享
如果服务器允许,您可以使用 -S 选项获取完整的共享列表。这会在底层使用 smbclient,它似乎也会抓取浏览列表。
Enum4linux 还会尝试使用提供的凭据(通常是空会话,但您可以使用 -u user -p pass 来使用其他凭据)连接到每个共享。它会报告是否可以连接到共享,以及是否可以获取目录列表。
enum4linux -S 192.168.174.128
6. -P
获取密码策略信息
enum4linux -P 192.168.174.128
7. -G
获取组和成员列表
如果远程主机允许,您可以使用 -G 选项获取组及其成员的列表(如在 enum.exe 中)
与用于用户枚举的 -U 选项一样,您也可以指定 -u user -p pass 来提供登录凭据(如果需要)。任何用户帐户都可以,您无需是管理员。
enum4linux -G 192.168.174.128
8. -d
详细说明,适用于 -U 和 -S
enum4linux -d -U -S 192.168.174.128
9. -u user
指定要使用的用户名(默认值为“”)
10. -p pass
指定要使用的密码(默认值为“”)
enum4linux -u windows7 -p '' 192.168.174.128
其他选项
enum.exe 中的以下选项未实现:-L、-N、-D、-f
11. -a
执行所有简单枚举 (-U -S -G -P -r -o -n -i)。如果您未提供任何其他选项,则启用此选项。
如果你只想让 enum4linux 尝试枚举远程主机上的所有信息,只需使用 -a 选项
注意:这不会进行基于字典的共享名称猜测,但几乎可以完成其他所有操作。
enum4linux -a 192.168.174.128
12. -r
通过 RID 循环枚举用户
要获取与默认 RID 范围 (500-550,1000-1050) 对应的用户名,请使用 -r 选项
enum4linux -r 192.168.174.128
13. -R range
要枚举的 RID 范围(默认值:500-550,1000-1050,隐含 -r)
您可以使用 -R 选项指定自定义 RID 范围。这意味着 -r 选项,因此您无需指定 -r 选项
enum4linux -R 500-520 192.168.174.128
14. -K n
继续搜索 RID,直到 n 个连续的 RID 不再与用户名对应。隐含 RID 范围结束于 999999。适用于针对域控制器。
enum4linux -K 1000 192.168.174.128
15. -l
通过 LDAP 389/TCP 获取部分(有限)信息(仅限 DC)
enum4linux -l 192.168.174.128
16. -s file
暴力猜测共享名
使用 -s 选项和字典文件猜测一些共享的名称
enum4linux -s share-list.txt 192.168.174.128
17. -k user
远程系统上存在的用户(默认值:administrator、guest、krbtgt、domain admins、root、bin、none)
用于使用“lookupsid known_username”获取 sid 使用逗号尝试多个用户:"-k admin,user1,user2"
使用 -k 选项指定一个其他已知的用户名,也可以使用逗号指定列表
enum4linux -k windows7 192.168.174.128
18. -o
获取操作系统信息
-o 选项使用 smbclient 获取操作系统信息。某些版本的 Windows(例如 2003)甚至会返回服务包信息。
enum4linux -o 192.168.174.128
19. -i
获取打印机信息
使用 -i 选项获取远程设备已知的一些打印机信息。
enum4linux -i 192.168.174.128
20. -w wrkg
手动指定工作组(通常自动查找)
enum4linux -w workgroup 192.168.174.128
21. -n
执行 nmblookup(类似于 nbtstat)
-n 选项使 enum4linux 运行 nmblookup 并对其输出进行一些额外的解析,以提供有关远程主机的人类可读信息。
enum4linux -n 192.168.174.128
22. -v
详细。显示正在运行的完整命令(net、rpcclient 等)
在深入研究 enum4linux 的功能之前,值得一提的是,详细模式会显示 enum4linux 正在运行的底层命令(rpcclient、smblient 等)。如果您想手动使用底层命令,但又不知道该如何使用语法,那么这个功能就非常有用。请注意以下输出中以 [V] 开头的几行
enum4linux -v 192.168.174.132
23. -A
激进。对共享等进行检查。
enum4linux -A 192.168.174.128
其他
RID 循环应该从 Windows(或 Samba)主机中提取用户列表,这些主机将 RestrictAnonymous 设置为 1(Windows NT 和 2000),或启用了“网络访问:允许匿名 SID/名称转换”(XP、2003)。
注意:Samba 服务器的 RID 通常位于 3000-3050 范围内。
依赖项信息:您需要安装 samba 软件包,因为此脚本本质上只是对 rpcclient、net、nmblookup 和
smbclient 的包装。需要使用 http://labs.portcullis.co.uk/application/polenum/ 上的 Polenum 来获取密码策略信息。
综合使用
尝试从目标(192.168.174.128)获取用户列表(-U)和操作系统信息(-o)
enum4linux -U -o 192.168.174.128
enum4linux -a -o www.harvard.edu
总结
enum4linux 在信息收集阶段扮演着极其关键的角色,特别是在针对 Windows 系统的枚举过程中。它能够帮助渗透测试人员快速获取目标主机的用户、共享、组、操作系统信息等,为后续攻击提供有力支持。熟练掌握 enum4linux 的使用,对于提升整体测试效率具有重要意义。
在此特别强调,本教程仅在合法授权的情况下进行测试和研究,请勿用于其他用途。未经授权使用此类工具可能会侵犯他人隐私,触犯相关法律,任何因此引发的法律或利益纠纷与本人无关。
欢迎各位大佬,小白来找我交流。