enum4linux 报 Server doesn‘t allow session 与 SMB 主机信息枚举

enum4linux 报 Server doesn't allow session 与 SMB 主机信息枚举

enum4linux 是一个封装 Samba 套件(rpcclient、net、nmblookup、smbclient)的枚举脚本,用于从一个 IP 上提取 Windows 或 Samba 主机的用户、共享、工作组与密码策略等信息。它本身不实现协议,只是把几条 SMB/NBT 命令串起来并解析输出。

仅供已获得书面授权的安全测试使用。

安装与版本

Kali 自带。先看脚本本体:

bash 复制代码
head -12 /usr/bin/enum4linux

输出说明它只是一层包装:

复制代码
#!/usr/bin/env sh

set -e

cd /usr/share/enum4linux/
exec ./enum4linux.pl "$@"

版本信息在帮助里:

bash 复制代码
enum4linux -h

首行即版本:

复制代码
enum4linux v0.9.1 (http://labs.portcullis.co.uk/application/enum4linux/)

Kali 2025.4 同时装了重写版:

bash 复制代码
enum4linux-ng --help
复制代码
ENUM4LINUX - next generation (v1.3.7)

基本用法

-a 是最常用的参数,等价于同时开启 -U -S -G -P -r -o -n -i:

bash 复制代码
enum4linux -a 192.168.1.20

对一个没有开放 SMB 的主机执行时,它会逐段报错但继续跑:

复制代码
Starting enum4linux v0.9.1 on Wed Oct 14 16:32:39 2026

 =========================================( Target Information )=========================================
Target ........... 127.0.0.1
RID Range ........ 500-550,1000-1050

 =============================( Enumerating Workgroup/Domain on 127.0.0.1 )=============================
[E] Can't find workgroup/domain

 =================================( Nbtstat Information for 127.0.0.1 )=================================
Looking up status of 127.0.0.1
No reply from 127.0.0.1

 =====================================( Session Check on 127.0.0.1 )=====================================
[E] Server doesn't allow session using username '', password ''.  Aborting remainder of tests.

各段独立,前面的失败不会中断整体,只有 Session Check 失败才会 Aborting remainder of tests。

报错 Server doesn't allow session

复制代码
[E] Server doesn't allow session using username '', password ''.  Aborting remainder of tests.

含义是用空用户名空密码建立 SMB 会话被拒绝,后续依赖会话的枚举(用户、共享、组)整段跳过。三种常见情形:

  • 目标是 Windows 10/11 或较新的 Server,默认禁止匿名会话,这属于正常加固,不是漏洞;
  • 目标根本不是 SMB 服务,445/139 没开。先把端口确认掉:
bash 复制代码
nmap -p 139,445 192.168.1.20
  • 已经拿到低权限账号,直接带凭据枚举:
bash 复制代码
enum4linux -u user -p 'Passw0rd' -a 192.168.1.20

若目标只开放 139 而 445 不通,脚本会走 NetBIOS 会话,成功率明显下降。用 -v 可以看到它实际执行的每条 net 与 rpcclient 命令。

报错 Can't find workgroup/domain

复制代码
[E] Can't find workgroup/domain

这是 nmblookup 拿不到 NetBIOS 名称。主机名解析依赖 NBT,只开 TCP 445 的现代 SMB 可能不回 NetBIOS 查询。用 -w 手动指定工作组可以跳过这一步:

bash 复制代码
enum4linux -w WORKGROUP -a 192.168.1.20

它不影响后续基于 445 的 RPC 枚举,属于可忽略的噪声。

enum4linux 与 enum4linux-ng 的差别

两者同机共存。enum4linux 是 2011 年的 Perl 老脚本,enum4linux-ng 是重写版,差异主要在结果处理:

复制代码
[-oJ OUT_JSON_FILE | -oY OUT_YAML_FILE | -oA OUT_FILE]

新版支持把枚举结果直接导出成 JSON 或 YAML,便于批量收集后统一处理:

bash 复制代码
enum4linux-ng -A -oJ host.json 192.168.1.20

新目标建议直接用 enum4linux-ng,老字典与老教程里的命令仍可用 enum4linux 等价执行。

分场景用法

只取用户列表:

bash 复制代码
enum4linux -U 192.168.1.20

只取共享列表:

bash 复制代码
enum4linux -S 192.168.1.20

取密码策略,包含最短长度、锁定阈值与历史次数:

bash 复制代码
enum4linux -P 192.168.1.20

匿名被限时用 RID 循环枚举用户:

bash 复制代码
enum4linux -r -R 500-550 192.168.1.20

对域控补充 LDAP 389 段的信息:

bash 复制代码
enum4linux -l 192.168.1.20

拿到凭据后的枚举顺序

匿名会话被拒、又拿到一组低权限账号时,按下面的顺序推进。

先确认会话可用:

bash 复制代码
smbclient -L //192.168.1.20 -U user%'Passw0rd'

再带凭据让 enum4linux 跑全量:

bash 复制代码
enum4linux -u user -p 'Passw0rd' -a 192.168.1.20

对列出的共享逐个尝试读取,重点看是否有可写目录:

bash 复制代码
smbclient //192.168.1.20/share -U user%'Passw0rd'

域环境里再用 LDAP 段补齐组织信息:

bash 复制代码
enum4linux-ng -A -u user -p 'Passw0rd' 192.168.1.20

顺序的原则是先证明会话可用,再枚举,最后验证可读写性,避免在无效凭据上反复试。

适用边界

enum4linux 面向 SMB/NetBIOS 与少量 LDAP,不覆盖 WinRM、RDP、WMI 等其它管理面。它的输出偏清单性质,用户、组、共享、密码策略这些信息本身不代表漏洞,价值在于为后续的凭据猜解与横向移动提供素材。只开 SMB3 且关闭匿名访问的主机,能拿到的信息会明显减少,这是加固生效的表现。

注意事项

  • Server doesn't allow session 在新版 Windows 上是常态,说明对方做了基线加固,不要当成漏洞上报。
  • enum4linux 的结果都来自 SMB/NBT 的公开可读信息,本身不写入目标;但 -A(Aggressive)会尝试写检查,测试前确认授权范围。
  • 老脚本依赖 Samba 客户端,缺 smbclient、rpcclient、polenum 时会静默少输出几段,先用 -v 确认命令是否真的执行。
  • 同一网段批量枚举时把结果导出成 JSON,比逐个看终端滚动更可靠。
  • 结果里的用户名与共享名只是线索,是否可利用要回到具体漏洞与凭据继续验证。
相关推荐
MinterFusion1 小时前
如何在开放麒麟(openKylin)下安装GTK(v0.1.0)
linux·操作系统·软件安装·gtk·明德融创·openkylin·linux图形软件开发
Lzg_na1 小时前
FAT文件系统详解
linux
重生之小比特1 小时前
【Linux系统】09 环境变量
linux·运维·服务器
Teecertlabs1 小时前
【机密计算顶会解读】15:LDR——面向嵌入式TEE系统的高效安全Linux驱动
linux·操作系统·机密计算·可信执行环境
程序员-Benothing1 小时前
Linux网络性能分析:ss、netstat、iftop、sar实战
linux·运维·服务器
其实防守也摸鱼1 小时前
Codex 下载与本地部署实战指南
linux·服务器·前端·数据库·算法·ai
岳麓丹枫0011 小时前
故障案例分析:系统负载居高不下,多次出现 OOM
linux·postgresql
愤怒火龙果1 小时前
AI攻防 AIRT-Foundations of AI Red Teaming
人工智能·网络安全
2401_862880821 小时前
Linux中断、中断子系统、内核同步互斥机制
linux·驱动开发·嵌入式硬件