文章总结: 本文介绍linux-ir这一AI智能体驱动的Linux应急响应工具,它通过8个阶段自动化执行网络连接分析、账号审计、进程检测等完整排查流程,能动态调整检查策略并生成结构化报告。相比传统人工响应,该工具将排查时间从数小时缩短至分钟级,特别适合检测C2外联、Rootkit等高级威胁。文章详细展示了各阶段检测命令与判定逻辑,并提供了实际应用场景示例。 综合评分: 85 文章分类: 应急响应,安全工具,安全运营,漏洞分析,AI安全
AI 智能体驱动的 Linux 应急响应:从告警到报告只需一条指令
Andy Andy
实在安全
2026年4月21日 17:27 中国香港
在小说阅读器读本章
去阅读
开篇:一场凌晨三点的入侵
凌晨三点,监控大屏突然弹出告警——某台生产 Linux 服务器出现异常外联流量,目标 IP 归属境外,持续时间已超过 40 分钟。
值班工程师打开终端,开始手动排查:
ss -antp | grep ESTABLISHED
ps auxf | grep -v grep
find /tmp -mtime -1
cat /var/log/auth.log | tail -500
...
一条一条命令跑下去,关联分析,再记录到文档里——没有两个小时根本出不了初步结论。
**如果有一个 AI 智能体帮你做这件事呢?**
这正是我们在 linux-ir Skill 中想解决的问题。
什么是 linux-ir Skill?
linux-ir 是一个运行在 **Claude Code / Trae IDE** 中的智能体技能包(Agent Skill)。它封装了 Linux 主机入侵检测与应急响应的完整方法论,让 AI 智能体能够:
-
**自主执行** 数十条排查命令
-
**自动关联** 跨阶段的发现(网络→进程→文件→日志)
-
**输出结构化** Markdown 报告,直接可提交工单
触发方式极其简单,在 IDE 对话框中输入:
对 192.168.1.100 做一次全面的应急响应
智能体会按照 **8 个检查阶段** 依次执行,全程无需人工干预。
8 阶段检查框架
架构总览
┌─────────────────────────────────────────────────────────┐
│ linux-ir 智能体应急响应流程 │
├──────────┬────────────────────────────────────────────────┤
│ 阶段 1 │ 网络连接与流量分析 │
│ 阶段 2 │ 账号与权限审计 │
│ 阶段 3 │ 进程与计划任务分析 │
│ 阶段 4 │ 持久化机制检测 │
│ 阶段 5 │ 日志审计(auth/system/应用日志) │
│ 阶段 6 │ Rootkit & 恶意软件检测 │
│ 阶段 7 │ 可疑文件与木马排查 │
│ 阶段 8 │ 生成完整 Markdown 报告 │
└──────────┴────────────────────────────────────────────────┘
阶段 1 — 网络连接与流量分析
这是智能体最先执行的阶段,也是最容易发现活跃威胁的环节。
智能体会自动运行:
# 查看所有活跃外联连接
ss -tnp state established
# 发现后门监听端口
ss -tlnp
# 检查 hosts 文件是否被劫持
diff /etc/hosts <(grep -v "^#" /etc/hosts | grep -v "^$")
# 检查防火墙是否存在异常 NAT 转发
iptables -t nat -L -n -v
**智能体的判断逻辑:**
| 发现 | 智能体判定 |
|——|———–|
| 非业务端口 LISTEN + 未知进程 | 🔴 CRITICAL — 疑似后门 |
| 持续连接境外 IP | 🔴 CRITICAL — 疑似 C2 |
| /etc/hosts 被写入非预期条目 | 🟠 HIGH — DNS 劫持 |
| 接口处于混杂模式 | 🟠 HIGH — 网络嗅探 |
| iptables NAT 规则异常 | 🟠 HIGH — 流量重定向 |
阶段 2 — 账号与权限审计
攻击者最常见的持久化手法之一,就是创建隐蔽账号或植入 SSH 后门密钥。智能体会全面扫描:
# UID=0 的账号(除 root 外均异常)
awk -F: '$3==0 {print}' /etc/passwd
# sudoers 中的 NOPASSWD 配置
grep -r "NOPASSWD" /etc/sudoers /etc/sudoers.d/
# 检查所有用户的 authorized\_keys
find /root /home -name "authorized\_keys" -type f | while read f; do
echo "=== $f ===" && cat "$f"
done
# PAM 模块是否比 /etc/passwd 更新(PAM 后门特征)
find /lib/security /lib64/security -name "\*.so" -newer /etc/passwd
**特别提示:** PAM 后门是高级攻击者常用手法——植入一个恶意
.so模块后,任意密码均可登录。传统排查中这个点非常容易被遗漏,而智能体会自动检查。
阶段 3 — 进程与计划任务分析
挖矿程序、C2 Agent、反弹 Shell——这些威胁最终都体现为异常进程。智能体不只看 ps,还会做**隐藏进程对比检测**:
# 方法:对比 /proc 目录与 ps 输出的 PID 差异
comm -23 \
<(ls /proc | grep -E '^[0-9]+$' | sort -n) \
<(ps -eo pid --no-headers | sort -n) \
| while read pid; do
echo "[隐藏进程] PID: $pid"
cat /proc/$pid/cmdline 2>/dev/null | tr '\0' ' '
done
这是 Rootkit 检测的一个关键环节——**Rootkit 会从 ps 输出中隐藏自身,但无法删除 /proc 目录中的条目**。智能体利用这一不一致性来揭露隐藏进程。
同时还会审计所有定时任务来源:
-
crontab -l(各用户) -
/etc/cron.\*目录 -
systemd timer单元 -
/var/spool/cron/ -
at任务队列
阶段 4 — 持久化机制检测
即使重启也能存活的威胁,才是真正棘手的。智能体会检测以下所有持久化载体:
| 持久化类型 | 检测方法 |
|———–|———|
| Systemd 服务后门 | 对比官方软件包安装的 .service 文件 |
| rc.local / init.d | 检查启动脚本内容 |
| LD_PRELOAD 劫持 | 检查 /etc/ld.so.preload |
| 动态链接库劫持 | 扫描 /etc/ld.so.conf.d/ 中的异常路径 |
| Git Hook / MOTD 后门 | 检查常见脚本注入点 |
| .bashrc / .profile 反弹 Shell | 正则匹配 nc、curl、bash -i |
阶段 5 — 日志审计
日志是攻击者最想销毁的证据。智能体会在日志被清除前快速提取关键事件:
# SSH 暴力破解与成功登录
grep -E "Failed password|Accepted|Invalid user" /var/log/auth.log | \
awk '{print $1,$2,$3,$9,$11}' | sort | uniq -c | sort -rn | head -30
# 最近 su/sudo 记录(权限提升)
grep -E "sudo:|su:" /var/log/auth.log | tail -50
# Web 应用日志中的 Webshell 特征
grep -Ei "(eval|base64\_decode|system|passthru|shell\_exec)" \
/var/log/nginx/access.log /var/log/apache2/access.log 2>/dev/null
# 日志文件完整性(检测日志被清空)
find /var/log -name "\*.log" -size 0 -newer /etc/passwd
阶段 6 — Rootkit & 恶意软件检测
这是技术含量最高的阶段。除了调用 rkhunter、chkrootkit 等专用工具外,智能体还会执行**手工 Rootkit 特征检测**:
# 检查系统关键命令是否被替换(文件哈希对比)
for cmd in ps netstat ls find; do
path=$(which $cmd)
echo "$path: $(md5sum $path 2>/dev/null)"
done
# 检查 /proc/modules 与 lsmod 差异(内核模块 Rootkit)
diff <(cat /proc/modules | awk '{print $1}' | sort) \
<(lsmod | awk '{print $1}' | tail -n +2 | sort)
# 检查异常内核模块(非发行版签名)
for mod in $(lsmod | awk 'NR>1{print $1}'); do
modinfo $mod 2>/dev/null | grep -E "filename|author|description" | head -3
echo "---"
done
# eBPF 程序检查(新型 Rootkit 手法)
bpftool prog list 2>/dev/null
ls /sys/fs/bpf/ 2>/dev/null
**知识点:** 基于 eBPF 的 Rootkit 是近年来出现的新型威胁,例如
ebpfkit,它可以在不修改任何磁盘文件的情况下隐藏进程和网络连接,极难被传统工具发现。linux-ir的阶段 6 专门加入了 eBPF 检测逻辑。
阶段 7 — 可疑文件与木马排查
# 最近 24 小时内被修改的文件(排除 /proc /sys)
find / -mtime -1 -type f \
! -path "/proc/\*" ! -path "/sys/\*" ! -path "/dev/\*" \
2>/dev/null | head -100
# /tmp、/dev/shm、/var/tmp 下的可执行文件(常见落地路径)
find /tmp /dev/shm /var/tmp -type f -executable 2>/dev/null
# 大文件(可能是数据外泄暂存)
find / -size +50M -type f ! -path "/proc/\*" 2>/dev/null
# 名称伪装成系统文件的木马(如 "sshd" 在 /tmp 下)
find / -name "sshd" -o -name "nginx" -o -name "httpd" \
2>/dev/null | grep -vE "^/(usr|sbin|bin|lib)"
阶段 8 — 自动生成报告
所有阶段完成后,智能体自动汇总输出标准化 Markdown 报告:
# Linux 主机应急响应报告
\*\*主机:\*\* 192.168.1.100 | \*\*时间:\*\* 2026-04-21 03:47 | \*\*检查时长:\*\* 8分32秒
## 执行摘要
| 风险等级 | 数量 |
|---------|------|
| 🔴 CRITICAL | 2 |
| 🟠 HIGH | 3 |
| 🟡 MEDIUM | 5 |
| 🔵 LOW | 2 |
## 关键发现
### [CRITICAL] 发现 C2 外联连接
- \*\*进程:\*\* /tmp/.sshd (PID 14823)
- \*\*连接:\*\* 192.168.1.100:52341 → 45.77.x.x:443 ESTABLISHED
- \*\*时长:\*\* 持续 47 分钟
- \*\*建议:\*\* 立即隔离主机,保全内存镜像
### [CRITICAL] 发现后门账号
- \*\*账号:\*\* `sysupdate` (UID=0)
- \*\*创建时间:\*\* 2026-04-20 23:12
- \*\*authorized\_keys:\*\* 包含未知公钥
- \*\*建议:\*\* 立即禁用,溯源攻击入口
...(完整报告继续)
智能体的”枢纽判断”能力
linux-ir 的一个核心设计是**条件分支执行**——智能体会根据前期发现动态调整后续检查策略:
发现活跃 C2 外联?
→ 立即提示隔离 + 优先执行阶段1+6(不等待其余阶段)
发现 Rootkit 特征?
→ 警告:系统工具可能不可信,建议从可信介质启动检查
发现挖矿进程?
→ 优先执行阶段3+6+7,重点关注 CPU/GPU 占用与矿池地址
仅有日志线索?
→ 优先执行阶段5,输出攻击时间线
这种”推理-行动”循环正是 **Agentic AI** 区别于传统脚本的核心价值:不只是执行命令,而是**理解上下文并做出判断**。
与传统应急响应的对比
| 对比维度 | 传统人工排查 | linux-ir 智能体 |
|———|————|—————-|
| **启动时间** | 人员到位 + 工具准备:15-30 分钟 | 输入一条指令:< 30 秒 |
| **覆盖深度** | 依赖工程师经验,容易遗漏 | 8 个阶段全覆盖,不遗漏 |
| **关联分析** | 手动关联,耗时 | 自动跨阶段关联发现 |
| **报告输出** | 事后整理:1-3 小时 | 检查结束即输出,零延迟 |
| **一致性** | 受疲劳/压力影响 | 每次执行标准一致 |
| **凌晨值班** | 需要叫醒专家 | 随时可用 |
快速上手
环境要求
-
**IDE:** Claude Code 或 Trae IDE
-
**访问方式:** 本地 Bash 访问目标主机,或通过 SSH 隧道
-
**权限:** 建议 root 或具有 sudo 权限的账号(部分检查需要)
安装 linux-ir Skill
# 在 Trae IDE 中
~/.trae/skills/linux-ir/ ← 已内置,无需额外安装
# 在 Claude Code 中
~/.claude/skills/linux-ir/ ← 同步安装
触发关键词
在 IDE 对话框中,包含以下任意词汇即可触发完整流程:
-
**应急响应**
-
**入侵排查**
-
**主机检查**
-
**安全检查**
-
**Rootkit 检测**
-
**木马排查**
示例对话
用户:对 10.0.0.5 做一次完整的应急响应,怀疑有挖矿程序
智能体:收到。目标主机 10.0.0.5,开始执行 linux-ir 应急响应流程。
根据挖矿程序特征,将优先执行阶段3(进程)、阶段6(恶意软件)、
阶段7(可疑文件),同时完成全量 8 阶段检查。
[阶段 1/8] 网络连接分析...
✓ 发现 2 个活跃外联连接,1 个指向已知矿池地址(pool.xmr.pt:3333)
🔴 CRITICAL: 进程 /tmp/.kworker (PID 9821) → 矿池连接确认
[阶段 2/8] 账号与权限审计...
✓ 未发现异常账号
...
局限性与注意事项
**任何工具都不是银弹**,使用前请了解以下限制:
-
**Rootkit 对抗**:高级内核级 Rootkit 可能欺骗智能体使用的系统工具(
ps、ls等)。发现 Rootkit 特征时,应从可信的 LiveCD/USB 启动后再执行检查。 -
**权限依赖**:部分检查(内核模块、
/proc深度读取)需要 root 权限,低权限账号会有盲区。 -
**日志销毁**:如果攻击者已清除日志,阶段 5 的溯源能力会大幅下降。建议配合集中日志系统(如 ELK、Splunk)使用。
-
**授权前提**:
linux-ir仅用于**已获授权的系统**。在未经授权的系统上运行安全检查工具,可能违反相关法律法规。
写在最后
AI 智能体正在改变安全从业者的工作方式。linux-ir 不是要替代安全工程师,而是让工程师从**重复性的命令执行**中解放出来,把精力放在**判断、决策和处置**上。
凌晨三点的那台服务器,可以由智能体在 8 分钟内给出完整的排查报告。工程师看到报告,做出隔离决定,开始溯源——这才是人机协作的正确姿势。
🔖 **相关阅读**
《AI 驱动的渗透测试工作流:6 阶段自动化框架》
《从 CTF 到红队:智能体技能包的设计哲学》
《eBPF Rootkit 检测:当攻击者躲进内核》
运行效果:
已关注
关注
重播 分享 赞
关闭
观看更多
更多
退出全屏
切换到竖屏全屏退出全屏
实在安全已关注
分享视频
,时长01:07
0/0
00:00/01:07
切换到横屏模式
继续播放
[ ]
进度条,百分之0
播放
00:00
/
01:07
01:07
倍速
全屏
倍速播放中
0.5倍 0.75倍 1.0倍 1.5倍 2.0倍
超清 流畅
继续观看
AI 智能体驱动的 Linux 应急响应:从告警到报告只需一条指令
观看更多
转载
,
AI 智能体驱动的 Linux 应急响应:从告警到报告只需一条指令
实在安全已关注
分享点赞在看
已同步到看一看写下你的评论
视频详情
报告摘要
Linux 主机应急响应报告(linux-ir)
– 目标: a.b.c.d(root)
– 采集时间: 2026-04-21 17:09 (Asia/Shanghai)
– 采集方式: 只读远程命令采集(SSH Key),未安装额外工具
一、执行摘要
综合威胁等级: 🟠 HIGH(以“高风险暴露面/错误配置”为主,暂未发现明确落地木马/挖矿进程证据)
本次排查的主要问题集中在“对外暴露面过大 + 防护缺失”:
– 🔴 CRITICAL: HAProxy 统计/管理接口 :8404 对外监听,且 stats admin if TRUE(无鉴权),同时主机防火墙未启用,等价于把 HAProxy 管理面板暴露在公网。
– 🟠 HIGH: SSH 允许 root 密码登录(PermitRootLogin yes + PasswordAuthentication yes),且日志显示持续暴力破解;同时未启用防火墙/Fail2ban 等基础防护。
– 🟠 HIGH: 发现 4 个 python3 -m http.server 进程对外监听 0.0.0.0:8080-8083,连接来源呈现大量随机公网 IP(疑似被扫描/被当作暴露服务持续访问)。即使内容仅为静态页,也属于不必要暴露面。
二、主机概况(基础信息)
– OS: Ubuntu 22.04.4 LTS (Jammy)
– Kernel: 5.15.0-100-generic
– 虚拟化: KVM
– 运行时长: 95 days
– 主机名: iv-ydytf6eh34xj
三、网络与暴露面
3.1 网卡与地址
– eth0: 192.168.1.97/16
3.2 监听端口(关键)
采集到的监听端口(节选):
– 22/tcp: sshd
– 25/tcp: postfix (master)
– 80/tcp: haproxy
– 443/tcp: haproxy(SSL 终止)
– 8404/tcp: haproxy(stats)
– 8080-8083/tcp: python3(python3 -m http.server)
3.3 外部连接(可疑/需关注)
8080-8083 的 python3 -m http.server 存在大量已建立连接,来源包含多组随机公网 IP(如 45.79.211.97、45.33.12.122、167.94.146.51、168.100.9.75 等)。该特征更像“公网扫描/爬虫/探测”持续命中,而不是业务稳定流量。
四、账号与认证(SSH/登录)
4.1 SSH 配置(有效配置)
关键项:
–PermitRootLogin yes
–PasswordAuthentication yes
–MaxAuthTries 6
–X11Forwarding yes
结论:当前 SSH 面向公网的攻击面非常大,且 root 口令暴力破解会持续发生。
4.2 认证日志(24h 内关键线索)
– 观察到大量 Failed password for root、Invalid user <...> 等暴力破解痕迹。
– 观察到 Accepted publickey for root 的记录(用于本次采集的公钥登录)。
建议将暴力破解来源 IP 纳入封禁/限速策略(fail2ban/防火墙白名单)。
五、进程与服务(运行态)
5.1 关键可疑进程:python http.server(对外监听)
发现 4 个长期运行的 Python 简易 HTTP Server(自 2026-01-16 起运行,约 95 天):
– PID 5878: python3 -m http.server 8080,cwd /var/www/default
– PID 5873: python3 -m http.server 8081,cwd /var/www/site1
– PID 5875: python3 -m http.server 8082,cwd /var/www/site2
– PID 5876: python3 -m http.server 8083,cwd /var/www/api
对应的启动脚本:
–/usr/local/bin/start-backends(创建时间:2026-01-16 09:49)
– 内容为启动 8080-8083 的 python3 -m http.server,并将输出重定向到 /dev/null
– 进程形态显示存在多个 /bin/bash /usr/local/bin/start-backends 常驻并处于 do\_wait,需要进一步确认其启动方式与是否为预期设计
5.2 HAProxy 暴露面与配置风险
HAProxy 配置文件:
–/etc/haproxy/haproxy.cfg
关键风险点:
–listen stats:
–bind \*:8404
–stats admin if TRUE(无鉴权、无访问控制)
该配置在防火墙未启用的情况下风险极高:任何可访问 8404 的人都可能对 HAProxy 执行管理操作。
六、防火墙与基线防护
– UFW: inactive
– iptables: INPUT/FORWARD/OUTPUT 默认 ACCEPT,无规则
结论:主机处于“裸奔”状态,所有对外监听服务均默认可被公网扫描与访问。
七、落地文件与 Rootkit 初筛
7.1 近期文件变更(7 天)
未发现 /etc、/usr/local、/opt、/var/www 下的可疑近期落地文件(近 7 天主要为已有服务日志滚动)。
7.2 ld.so.preload
–/etc/ld.so.preload: 不存在(未发现常见的 LD_PRELOAD 劫持持久化痕迹)
7.3 SUID/SGID(关键目录)
在常见目录中未发现异常新增的 SUID/SGID 文件(结果以系统常见项为主)。
八、IOC(指标)与证据摘要
8.1 暴力破解来源(示例)
– 51.195.7.8(多次 root 口令失败)
– 111.21.105.250(多次 invalid user/失败)
– 106.13.44.253(多次 root 口令失败/invalid user)
– 182.93.50.90(invalid user)
– 20.193.130.202(root 口令失败)
8.2 高风险暴露端口
– 8404/tcp(HAProxy stats/admin,无鉴权)
– 22/tcp(root 口令登录开启)
– 8080-8083/tcp(python http.server 对外监听)
8.3 可疑/需评估的关键文件(哈希)
–/usr/local/bin/reset-authentication
– sha256: daf425664f40e38ef36b91e18a8b24b1c75397b8124ece86bf89009190025a2b
– 类型: Go 静态链接 ELF(systemd 服务 reset-authentication.service 在开机阶段执行)
–/opt/proxima/proxima
– sha256: 442e71c8fa61405b2b0d42af4a1b3f3fd1c083d9180b0eba696ebe08c5741150
– 类型: Go 动态链接 ELF(systemd 服务 proxima.service 常驻)
说明:上述二进制不一定是恶意软件,但属于“需要明确归属与供应链来源”的第三方组件,应纳入资产清单与完整性校验。
九、处置建议(按优先级)
9.1 立即处置(建议立刻做)
– 关闭/限制 HAProxy 管理面板
– 将 stats 仅绑定到 127.0.0.1:8404 或管理网段
– 增加 stats auth <user>:<pass> 或基于 ACL 的严格访问控制
– SSH 加固
– 关闭 root 口令登录:PermitRootLogin prohibit-password 或 no
– 关闭口令登录:PasswordAuthentication no
– 关闭 X11Forwarding(如无需求):X11Forwarding no
– 采用最小权限:创建普通运维用户 + sudo,禁止直接 root 登录
– 启用防火墙(默认拒绝入站)
– 仅放行必要端口(通常 22、80、443;8404 仅管理网或本机)
– 增加暴力破解防护
– 部署 fail2ban(sshd jail),或在防火墙层面做速率限制/黑名单
9.2 中期优化(1-3 天内完成)
– 处理 8080-8083 的 Python http.server
– 若为测试/临时用途:停止并移除启动脚本 /usr/local/bin/start-backends 与相关常驻进程
– 若必须存在:改为 --bind 127.0.0.1 并通过 HAProxy/反代暴露必要域名;或仅允许内网访问
– 资产核验与供应链确认
– 明确 proxima、assist-client、cloud-monitor-agent、reset-authentication 的供应商来源、版本、部署基线与更新渠道
– 对上述二进制做签名/Hash 基线与定期完整性监测
9.3 若怀疑已被入侵(增强动作)
– 对 /var/log/auth.log 做更长时间范围的回溯(Accepted/Session opened/sudo)
– 对外联目的地址做威胁情报查询(C2/扫描器/僵尸网络)
– 进行离线取证:打包关键日志与可疑目录,保全证据后再清理
**扫码关注,获取 linux-ir Skill 完整源码**
*本文所有命令和技术手法仅用于授权范围内的安全检查,请遵守所在地区网络安全法律法规。*
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:实在安全 Andy Andy《AI 智能体驱动的 Linux 应急响应:从告警到报告只需一条指令》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论