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,比逐个看终端滚动更可靠。
  • 结果里的用户名与共享名只是线索,是否可利用要回到具体漏洞与凭据继续验证。
相关推荐
数字融合4 小时前
透明化视频孪生危化安全管控解决方案
人工智能·python·安全
迪康Defender5 小时前
终端供应链安全:应用白名单与软件正版化检测落地|终端安全治理实践
运维·服务器·网络·安全·web安全·自动化·运维开发
lzx_0025 小时前
Linux 进程(二) 深入理解进程
linux
Flynn Liang6 小时前
AI 应用的安全红线:Spring AI 下的 Prompt 注入防护、PII 脱敏、输出审计与密钥管理
人工智能·安全·spring·数据泄露·springai·prompt注入
朗迪锋6 小时前
SoErgo重塑“四特”场景下的人机协同与安全边界
人工智能·安全·人机工程
沫璃染墨6 小时前
从零入门计算机网络系列(十二):HTTP长连接与会话管理详解——从Connection到Cookie与Session
linux·服务器·c++·tcp/ip·ubuntu·http·交互
温暖小土6 小时前
在 CentOS 上安装 Redis Stack
linux·redis·centos
jimmyleeee7 小时前
Agent安全之九:OWASP ASI09 人机信任利用------当人类成为攻击链上最后一道被攻破的关口
人工智能·安全
其实防守也摸鱼8 小时前
信创安全竞赛知识总结与题库
大数据·网络·人工智能·算法·安全·php
GeW8 小时前
国产化替代进入深水区之后Linux 与数据库为什么必须走向重建
linux