inode 本身不记录“谁在写文件”,但暴力写入攻击会留下高频 ctime 更新、nlink 异常波动、inode 号紧邻复用等可检测痕迹,结合 stat/find/df -i 与日志可快速识别自动化攻击行为。

Inode 本身不直接记录“谁在写文件”,但暴力写入攻击(如反复覆盖 SSH 密钥、PAM 配置、sudoers 或 shadow 文件)会在文件系统层面留下可检测的 Inode 行为痕迹。关键不是看单个文件,而是观察 同一 Inode 被高频、短时、异常地重复修改或重链接——这往往暴露自动化脚本的痕迹。
识别暴力写入攻击的核心 Inode 指标
攻击者为获取权限,常批量尝试写入认证类文件(如 /etc/shadow、/root/.ssh/authorized_keys、/etc/pam.d/common-auth),这类操作会触发 Inode 元数据的密集变更:
- 状态时间(ctime)高频刷新:每次 chmod、chown、truncate、覆盖写入都会更新 ctime。正常管理很少在几秒内对同一配置文件执行数十次 ctime 变更。
-
硬链接数(nlink)异常波动:攻击者用
cp或重定向覆盖时若未加-f,可能因权限不足导致临时文件残留;或用ln -f强制重建链接,造成 nlink 短时归零再跳升。 - Inode 号复用迹象:若某路径反复出现“旧文件被删、新文件立刻创建”,且新文件 inode 号紧邻旧号(如 12345 → 12346),说明攻击脚本在快速迭代写入,而非人工操作。
用 stat 和 find 快速筛查可疑行为
无需安装额外工具,用基础命令组合即可定位异常:
宝塔Linux面板11.8.1为官网当前正式版,新增AI建站能力并经过宝塔网站工程师深度调教,开放自定义AI功能API,同时对WAF进行界面重构和深度优化,提升拦截能力与运维效率。
- 查过去 5 分钟内 ctime 变更超过 10 次的认证相关文件:
find /etc /root/.ssh -type f \( -name "shadow" -o -name "sudoers" -o -name "authorized_keys" -o -path "/etc/pam.d/*" \) -cmin -5 | xargs -r stat -c "%i %n %z" 2>/dev/null | sort - 找同一目录下短时间内生成大量小文件(如攻击者 dump 的密钥对):
find /root/.ssh -maxdepth 1 -type f -name "id_*" -cmin -10 | wc -l—— 若返回值 >5,需人工确认是否为合法批量生成。 - 检查关键文件 inode 是否被频繁重建:
stat -c "%i %z %n" /etc/shadow执行两次间隔 30 秒,对比 inode 号与 ctime。号变了且时间差极小,基本可判定被覆盖重写。
结合 df -i 与日志交叉验证
Inode 耗尽本身不是攻击,但可能是攻击副产物。例如:
- 攻击脚本在
/tmp或/var/tmp大量创建临时密钥文件却未清理,导致该分区df -i显示 IUse% 接近 100%; - 此时再查
ls -lti /tmp | head -20,若前 20 个文件 inode 号连续、大小均为 0 或 372 字节(典型 OpenSSH 私钥头长度),就是强信号; - 同步比对
journalctl -u sshd --since "2026-04-30 02:00" | grep "Failed password",若失败登录次数激增时段与上述 inode 异常高度重合,攻击链就闭环了。
防御性监控建议
把 Inode 行为纳入基线监控,比单纯看文件内容更早发现攻击:
- 用
inotifywait -m -e attrib,move_self,delete_self /etc/shadow实时监听元数据变更事件(需 root 权限); - 将
stat -c "%i %z %n" /etc/shadow加入 cron 每分钟执行,输出追加到审计日志,长期趋势分析 ctime 稳定性; - 对
/root/.ssh目录设置chattr +a(仅允许追加),使覆盖写入直接失败——多数暴力写入脚本无错误处理逻辑,会暴露自身位置。










