一个 Bash 单文件,45 模块,Linux 失陷主机一键应急排查

admin 2026年7月19日23:54:18评论40 views字数 3310阅读11分2秒阅读模式

XWAYIR是一个纯Bash单文件的Linux应急响应工具,融合9本应急手册精华,包含45个检查模块,零依赖、纯只读运行,一键排查失陷主机。其核心模块能检测横向移动痕迹并分级判定,输出SIEM可消费的JSON结果,是蓝队应急响应的实用利器。

一个 Bash 单文件,45 模块,Linux 失陷主机一键应急排查

在网络安全攻防对抗的战场上,Linux 服务器往往是黑客攻击的重点目标。一旦服务器失陷,及时的应急响应对于控制损失、追溯攻击源至关重要。

本文将为你介绍一个强大的 Bash 单文件工具,它融合了 9 本应急手册的精华,只需一键即可对 Linux 失陷主机进行全面排查。该工具具有零依赖、纯只读、SIEM 可消费等特点,是蓝队和应急响应工程师的必备利器。

一、为什么又造一个轮子

  • 融合 9 本手册精华: 涵盖了从系统信息收集、网络连接分析、进程排查、账号检查、日志审计、文件完整性校验等多个维度的应急响应知识。

  • 1064 行 Bash 代码: 精简高效,易于理解和维护。

  • 零依赖: 无需安装任何第三方工具,在任何主流 Linux 系统上即可直接运行。

  • 纯只读: 不会对系统进行任何修改,确保排查过程的安全可靠。

  • SIEM 可消费: 输出结果符合特定格式,可直接导入 SIEM 系统进行深度分析和关联。

二、它是什么

一个 Bash 单文件,45 模块,Linux 失陷主机一键应急排查

XWAY IR v3.1是一个纯 Bash 单文件 Linux 应急响应工具,1064 行代码,45 个检查模块,跑完不修改主机任何文件。

sudo bash xway_ir.sh

输出三路:

{”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 类场景:

资料来源

  • 奇安信安服团队《网络安全应急响应技术实战指南》
  • 深信服《网络安全事件应急指南》
  • 《应急响应实战笔记 2020》
  • 《Linux 应急响应流程及实战演练》
  • 《应急响应 溯源分析》
  • 《冰蝎、蚁剑过流量监控改造及红队经典案例分享》
    一个 Bash 单文件,45 模块,Linux 失陷主机一键应急排查

致谢:以上手册的作者和团队。XWAY IR 只是把散落在 9 本书里的检测点压进一个可执行文件,真正的知识归属原作者。

五、最有价值的部分:横向移动证据链

45 个模块里,模块 10(横向移动)是最核心的。它不是简单"列出来",而是采集 9 类证据后做三档判定:

一个 Bash 单文件,45 模块,Linux 失陷主机一键应急排查

情形 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

一个 Bash 单文件,45 模块,Linux 失陷主机一键应急排查

很多人会问:这种工具为什么不用 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/河马。

十一、快速开始

一个 Bash 单文件,45 模块,Linux 失陷主机一键应急排查
# 方式 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 蓝队 · 攻防不息,守护不止

原文始发于微信公众号(吃瓜安全):一个 Bash 单文件,45 模块,Linux 失陷主机一键应急排查

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2026年7月19日23:54:18
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   一个 Bash 单文件,45 模块,Linux 失陷主机一键应急排查http://cn-sec.com/archives/5351213.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息