Invalid user 与用户名枚举
认证日志里的 Invalid user 表示这次登录尝试使用了系统上并不存在的账号名。连续出现说明对方在做用户名枚举,枚举清单本身也反映其目标偏好——如果里面出现业务系统名、内部代号或特定运维账号,说明对方此前做过信息收集,而不只是随手跑了一遍通用字典。
基本信息
| 日志特征 | Failed password for invalid user <名称> from <地址> port <端口> |
|---|---|
| 日志位置 | Debian 系 /var/log/auth.log,RHEL 系 /var/log/secure |
| 配套记录 | Connection closed by authenticating user 等连接层记录 |
| 分析价值 | 枚举字典内容、来源地址聚集度与尝试节奏 |
| 关联线索 | 同一来源的尝试次数、时间跨度与先后顺序 |
典型使用场景
- 判断主机是否正在被大规模口令猜测
- 从枚举清单推断攻击者掌握的信息范围
- 提取来源地址,为阻断与关联分析提供输入
- 与成功登录记录交叉,确认枚举是否最终得手
- 评估现有防护措施(限速、封禁工具)是否真正生效
统计与对照
统计与对照
grep -oE 'Invalid user [^ ]+' /var/log/auth.log | awk '{print $3}' | sort | uniq -c | sort -rn | head -20
grep 'Invalid user' /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -rn | head # 按来源地址统计
grep -c 'Invalid user' /var/log/auth.log # 总量
grep -E 'Accepted|Failed' /var/log/auth.log | tail -20 # 与成功、失败记录对照行内容读法
| 字段 | 含义 | 解读要点 |
|---|---|---|
| invalid user 后的名称 | 本次尝试使用的账号名 | 清单反映攻击者的目标偏好 |
| from 后的地址 | 尝试的来源地址 | 聚集度与来源段决定是否定向 |
| port 端口 | 来源端口 | 同一地址的端口规律可辅助归因 |
| Failed 与 Accepted | 失败与成功记录 | 出现成功记录说明枚举已经得手 |
Invalid user 与 Failed password for <存在的用户名> 是两类不同的记录:前者说明账号不存在,后者说明账号存在只是口令错误,后者同时暴露了哪些账号名有效,统计时应分开处理。
不要用枚举清单里的账号名直接判定内部信息泄露:绝大多数条目来自通用字典(如 admin、test、oracle)。只有当其中出现内部专用命名或业务系统代号时,才值得评估存在前期信息收集的可能。