在网络安全攻防对抗的战场上,Linux 服务器往往是黑客攻击的重点目标。一旦服务器失陷,及时的应急响应对于控制损失、追溯攻击源至关重要。
本文将为你介绍一个强大的 Bash 单文件工具,它融合了 9 本应急手册的精华,只需一键即可对 Linux 失陷主机进行全面排查。该工具具有零依赖、纯只读、SIEM 可消费等特点,是蓝队和应急响应工程师的必备利器。
一、为什么又造一个轮子
融合 9 本手册精华: 涵盖了从系统信息收集、网络连接分析、进程排查、账号检查、日志审计、文件完整性校验等多个维度的应急响应知识。
1064 行 Bash 代码: 精简高效,易于理解和维护。
零依赖: 无需安装任何第三方工具,在任何主流 Linux 系统上即可直接运行。
纯只读: 不会对系统进行任何修改,确保排查过程的安全可靠。
SIEM 可消费: 输出结果符合特定格式,可直接导入 SIEM 系统进行深度分析和关联。
二、它是什么
XWAY IR v3.1是一个纯 Bash 单文件 Linux 应急响应工具,1064 行代码,45 个检查模块,跑完不修改主机任何文件。
输出三路:
{”ts”:”2026-07-19T12:52:36+08:00”,”level”:”HIGH”,”module”:”file”,”title”:”无主/无组文件 (攻击者账号已删)”,”file”:”/bin/addgnupghome”,”hint”:”find -nouser 溯源”,”score”:8}
三、45 个模块覆盖什么
按类别分,涵盖应急响应主流场景:
四、v3.1 新增的 8 个模块
这次更新基于 9 本公开应急手册的 gap 分析,补齐了之前漏检的 8 类场景:
资料来源
致谢:以上手册的作者和团队。XWAY IR 只是把散落在 9 本书里的检测点压进一个可执行文件,真正的知识归属原作者。
五、最有价值的部分:横向移动证据链
45 个模块里,模块 10(横向移动)是最核心的。它不是简单"列出来",而是采集 9 类证据后做三档判定:
情形 A:0 条证据
✅ 未发现横向移动痕迹结论:这台主机大概率是初始入侵点或孤立失陷端
情形 B:1-2 条证据
⚠️ 横向移动证据有限建议:拉 auth.log / .bash_history / 同网段比对
情形 C:≥3 条证据
🔴 高度怀疑已发生横向移动立即行动: 1. 立即隔离(iptables -I INPUT 1 -j DROP) 2. 拉内存 dump(avml/LiME)+ 磁盘镜像(dd) 3. 排查所有 authorized_keys 主机 4. 排查 known_hosts 目标主机 5. 排查 SSH 失败登录源 IP 6. 全网段 SSH/crontab 审计
这个判定的意义:告诉操作员"这台机器是不是跳板",而不只是"这台机器有没有失陷"。前者决定处置范围(单机 vs 全网),后者只决定处置动作。
六、设计哲学:为什么是 Bash
很多人会问:这种工具为什么不用 Python/Go/Rust 重写?
答案是现场可用性:
Bash 的"快"是它的优势:没有依赖地狱,没有版本碎片化,没有虚拟环境。只要主机能起来,Bash 就在,XWAY IR 就能跑。
代价是代码不如 Python 优雅,JSON 转义要手写,错误处理要靠 set +e。但这些代价换来的是部署零摩擦,值得。
七、IOC 数据外置,改文本就能扩展
所有检测规则外置到 lib/ 目录,22 个文本文件,改文本就能加新 IOC,不动代码:
lib/├── iocs/# Maltrail 精选 IOC│ ├── miners.txt# 挖矿矿池域名 + 进程名│ ├── c2.txt# APT/勒索/银行木马 C2│ ├── backdoors.txt# 已知 Webshell 文件名│ ├── rshell.txt# 反向 shell 命令模式│ ├── behinder_uas.txt# Webshell 工具 UA (v3.1 新)│ └── LICENSE.notice# Maltrail MIT 归属├── rootkit_signatures.txt# 60+ Rootkit 文件/目录签名├── bad_lkm.txt# 80+ 恶意 LKM 模块名├── suid_whitelist.txt# 默认 SUID 白名单├── suspicious_ports.txt# 可疑端口├── darklink_keywords.txt# 网页暗链关键词 (v3.1 新)├── sqli_patterns.txt# SQLi 特征模式 (v3.1 新)└── bpftrace_monitor.bt# bpftrace 隧道监控脚本
想加新的挖矿矿池?编辑 lib/iocs/miners.txt 加一行就行。想加新的 Webshell 工具 UA?编辑 lib/iocs/behinder_uas.txt。不用懂 Bash。
八、6 个 CLI flags,够用就好
sudo bash xway_ir.sh# 全量扫描sudo bash xway_ir.sh --module 1,3,10# 只跑指定模块sudo bash xway_ir.sh --severity crit,high# 只看高危(含 CRIT)sudo bash xway_ir.sh --timeout 30# 每检查限时 30ssudo bash xway_ir.sh --no-color# 关颜色sudo bash xway_ir.sh --out-dir /tmp/ir# 指定输出目录sudo bash xway_ir.sh --json-only# 只输出 JSONL
不搞配置文件、不搞 YAML、不搞 INI。应急现场没时间看文档,flag 越少越好。
九、CI + 119 个 bats 测试
代码托管在 GitHub,CI 跑三件事:
每次 PR 都自动跑,回归有保障。
十、和其他工具的差距
XWAY IR 不是万能的,有明确的边界:
定位:快速排查 + 结构化输出 + 横向移动判定。深度分析还是要配合 chkrootkit/rkhunter/avml/河马。
十一、快速开始
# 方式 1:克隆仓库(推荐,带 lib/ IOC 库)git clone https://github.com/A4n9g7e2l/Xway.gitcd Xwaysudo bash xway_ir.sh# 方式 2:远程一行执行(不带 lib/,部分模块会跳过)curl -fsSL https://raw.githubusercontent.com/A4n9g7e2l/Xway/main/xway_ir.sh | sudo bash# 方式 3:拷贝到目标机scp -r Xway root@:/tmp/ssh root@ ”cd /tmp/Xway && bash xway_ir.sh”
GitHub 仓库:https://github.com/A4n9g7e2l/Xway
十三、最后
这个工具的起点是 2026 年 7 月一次半夜的应急响应。客户给了台 CentOS 6 跳板机,Python 装不上,YUM 源过期,只能用 Bash 凑合写了个 13 模块的脚本。
后来发现这个"凑合"的形态恰好是最实用的:零依赖 + 单文件 + 纯只读。于是慢慢迭代到 v3.1,45 模块,1064 行,集成 NOP Team 手册 + 9 本公开应急手册的精华。
不为替代谁,只是填补"现场 5 分钟出结论"这个特定场景的工具空白。
如果你也是蓝队/应急响应工程师,欢迎试用、提 Issue、贡献 IOC。
GitHub:License:MIT版本:v3.1 (2026-07-19)致谢:NOP Team、grayddq/GScan、stamparm/maltrail、奇安信安服、深信服、以及所有公开应急手册的作者
🛡️ XWAY 蓝队 · 攻防不息,守护不止