服务器入侵事件分析报告

呼啊…这服务器被搞得一团糟,大叔我花了好多功夫才把这些害虫清理干净!

相关阅读: kdevtmpfs恶意程序溯源报告 - 同一事件的威胁情报分析

报告日期: 2026-02-20
服务器: lavm-exktc8nx0o
操作系统: Linux (Debian/Ubuntu)
清理置信度: ⚠️ 约85%


一、事件概述

本次安全事件中,服务器遭到Kinsing恶意软件家族的入侵,攻击者在系统中植入了多个后门程序和持久化脚本,构建了完整的攻击基础设施。

事件背景

💡 这是与 kdevtmpfs挖矿木马 同一系列的安全事件,属于同一攻击 campaigns。

经过全面排查和清理,已成功清除所有已发现的恶意组件,但由于攻击者曾拥有root权限,强烈建议后续进行系统重装

恶意软件家族识别

属性 详情
家族名称 Kinsing / Kdevtmpfsi
威胁类型 加密货币挖矿 + 后门程序
攻击目标 Linux服务器
首次发现 2019年

二、发现详情

2.1 恶意进程清单

PID 进程名 文件路径 状态 功能说明
431216 kswpad /etc/kswpad ✅ 已清除 主恶意进程,伪装成系统服务
431399 .sshd /usr/bin/.sshd ✅ 已清除 隐藏SSH后门,允许攻击者远程访问

2.2 恶意文件完整清单

文件路径 文件类型 威胁说明
/etc/kswpad ELF可执行文件 主恶意程序,负责挖矿和C2通信
/usr/bin/.sshd ELF可执行文件 隐藏SSH后门(点前缀隐藏)
/etc/init.d/DbSecuritySpt Shell脚本 伪装成数据库安全服务的启动脚本
/etc/init.d/selinux Shell脚本 伪装成SELinux的持久化脚本
/etc/.cfg 配置文件 加密的C2通信配置
/usr/bin/bsd-port/getty ELF可执行文件 伪装成终端程序的恶意组件
/usr/bin/include/ 目录 可能存放额外的恶意载荷

三、攻击时间线重构

通过文件时间戳分析,还原攻击者活动时间线:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2026-02-17 ────────────────────────────────────────────────►

├── 服务器启动,恶意软件开始运行

2026-02-18 ────────────────────────────────────────────────►

├── 03:10 /etc/.cfg 配置文件创建/更新

├── 攻击者活跃期
│ ├── 可能进行数据窃取
│ ├── 挖矿活动
│ └── 横向移动尝试

2026-02-19 ────────────────────────────────────────────────►

├── 安全调查启动

2026-02-20 ────────────────────────────────────────────────►

└── 00:14 恶意软件被完全清除

关键数据:

  • ⏱️ 攻击持续时间: 至少 2-3天
  • 🎯 攻击者活跃时段: 2月18日凌晨

四、攻击手法深度分析

4.1 持久化架构图

攻击者构建了多层持久化机制,确保恶意软件能够持续运行:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
┌─────────────────────────────────────────────────────────────┐
│ 持久化架构 │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────┐ │
│ │ /etc/init.d/ │ │
│ │ ├── DbSecuritySpt ─────┼──┐ │
│ │ └── selinux ───────────┼──┼──► 启动 /etc/kswpad │
│ └─────────────────────────┘ │ │
│ │ │
│ ┌─────────────────────────┐ │ ┌───────────────────┐ │
│ │ /etc/kswpad │◄─┘ │ │ │
│ │ (主恶意进程) │──────► /usr/bin/.sshd │ │
│ └─────────────────────────┘ │ (隐藏SSH后门) │ │
│ └───────────────────┘ │
│ │
│ ┌─────────────────────────┐ │
│ │ /etc/.cfg │ ◄── C2配置文件 │
│ └─────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘

4.2 隐藏技术详解

攻击者使用了多种技术来逃避检测:

技术 实现方式 检测难度
点前缀隐藏 .sshd 文件名以点开头,普通 ls 不可见 ⭐⭐
服务名伪装 DbSecuritySpt 模仿数据库安全服务 ⭐⭐⭐
系统目录滥用 恶意文件放在 /usr/bin//etc/init.d/ ⭐⭐⭐⭐
多进程互备 多个启动脚本互相守护 ⭐⭐⭐
配置加密 .cfg 文件内容加密存储 ⭐⭐⭐

⚠️ 检测建议: 使用 ls -la 显示隐藏文件,检查 /etc/init.d/ 中的可疑服务

4.3 后门功能分析

.sshd 隐藏后门的潜在能力:

  1. 🔓 远程访问 - 攻击者可随时连接服务器
  2. 📤 数据外传 - 窃取敏感文件和配置
  3. 🔄 载荷更新 - 下载新的恶意组件
  4. 🎯 横向移动 - 以此服务器为跳板攻击内网

五、清理操作记录

5.1 执行的清理命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 步骤1: 终止恶意进程
kill -9 431216 431399

# 步骤2: 删除恶意可执行文件
rm -f /etc/kswpad
rm -f /usr/bin/.sshd

# 步骤3: 删除持久化脚本
rm -f /etc/init.d/DbSecuritySpt
rm -f /etc/init.d/selinux

# 步骤4: 删除配置文件
rm -f /etc/.cfg

# 步骤5: 删除恶意目录
rm -rf /usr/bin/bsd-port/
rm -rf /usr/bin/include/

# 步骤6: 移除启动项
update-rc.d -f DbSecuritySpt remove
update-rc.d -f selinux remove

# 步骤7: 验证清理结果
ps aux | grep -E "kswpad|\.sshd"
find /etc /usr/bin -name ".*" -type f

5.2 清理后验证

1
2
3
4
5
6
7
8
9
10
11
# 检查是否还有残留进程
ps aux | grep -E "kswpad|sshd|kinsing"

# 检查启动项
ls -la /etc/init.d/ | grep -v "^total"

# 检查隐藏文件
find /etc /usr/bin -name ".*" -type f 2>/dev/null

# 检查网络连接
ss -tunlp | grep -E "ESTABLISHED|LISTEN"

六、风险评估矩阵

风险类别 风险级别 详细说明 处置状态
🔴 隐藏后门 可能存在内核级或用户态后门未发现 ⚠️ 需进一步排查
🟡 数据泄露 攻击者可能已窃取敏感数据 🔍 需审计日志
🟡 凭证泄露 SSH密钥、密码可能已泄露 🔍 需重置凭证
🟡 系统篡改 系统二进制文件可能被替换 🔍 需完整性校验
🟢 挖矿活动 已清除,资源已释放 ✅ 已解决

清理置信度分析

1
2
3
4
5
6
7
8
9
10
11
清理完成度: ████████░░ 85%

✅ 已完成:
- 恶意进程终止
- 可见恶意文件删除
- 启动项清理

⚠️ 待确认:
- 内核级后门检测
- 系统二进制完整性
- 用户账户后门

七、安全加固建议

7.1 立即执行(紧急)

1
2
3
4
5
6
7
8
9
10
11
12
13
# 1. 修改root密码
passwd root

# 2. 检查SSH授权密钥(删除不明密钥)
cat /root/.ssh/authorized_keys
# 如有可疑密钥,立即删除

# 3. 检查所有可登录用户
cat /etc/passwd | grep -v nologin | grep -v false

# 4. 检查sudo权限
cat /etc/sudoers
visudo -c # 验证配置

7.2 短期措施(24小时内)

措施 命令/操作 目的
安装rootkit检测 apt install rkhunter chkrootkit 检测隐藏后门
检查定时任务 crontab -l; cat /etc/crontab 发现持久化
审计系统文件 debsums -c 检测文件篡改
检查网络连接 ss -tunlp; netstat -anp 发现异常连接
分析登录日志 last; lastb; /var/log/auth.log 追踪入侵来源

7.3 长期措施(1周内)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 1. SSH加固
sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
sed -i 's/#PermitRootLogin yes/PermitRootLogin prohibit-password/' /etc/ssh/sshd_config
systemctl restart sshd

# 2. 安装fail2ban
apt install fail2ban
systemctl enable fail2ban
systemctl start fail2ban

# 3. 配置防火墙
ufw default deny incoming
ufw allow ssh
ufw enable

# 4. 安装入侵检测
apt install ossec-hids-agent
# 或考虑 Wazuh、CrowdSec 等现代方案

7.4 最重要建议

强烈建议:重装系统

由于攻击者曾拥有root权限,无法100%确保清除所有后门。最安全的做法是:

  1. 备份必要数据(仅数据文件,不含可执行文件)
  2. 完全重装系统
  3. 从干净的备份恢复数据
  4. 重新配置安全措施

八、入侵检测清单

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/bin/bash
# 入侵检测脚本 - 保存为 /usr/local/bin/security-check.sh

echo "=== 安全检查 $(date) ==="

# 检查隐藏进程
echo "[1] 检查隐藏进程..."
ps aux | grep -E "\[.*\]" | grep -v ksoftirqd | grep -v kworker

# 检查异常网络连接
echo "[2] 检查网络连接..."
ss -tunp | grep ESTABLISHED

# 检查定时任务
echo "[3] 检查定时任务..."
crontab -l 2>/dev/null
cat /etc/crontab

# 检查启动项
echo "[4] 检查启动项..."
ls -la /etc/init.d/ | grep -v "^d" | grep -v "^total"

# 检查可疑文件
echo "[5] 检查可疑隐藏文件..."
find /etc /usr/bin /tmp -name ".*" -type f 2>/dev/null

# 检查最近修改的文件
echo "[6] 检查24小时内修改的文件..."
find /etc /usr/bin -mtime -1 -type f 2>/dev/null

echo "=== 检查完成 ==="

九、相关资源

威胁情报

应急响应工具

工具 用途 安装命令
rkhunter Rootkit检测 apt install rkhunter
chkrootkit Rootkit检测 apt install chkrootkit
debsums 文件完整性 apt install debsums
fail2ban 入侵防护 apt install fail2ban

十、总结

处置结果

项目 状态
恶意进程清理 ✅ 完成
恶意文件删除 ✅ 完成
持久化机制移除 ✅ 完成
系统恢复正常 ✅ 确认
完全安全确认 ⚠️ 需重装系统

经验教训

  1. 🔐 弱密码是万恶之源 - SSH必须使用强密码或密钥认证
  2. 🛡️ 最小权限原则 - 避免不必要的root暴露
  3. 📊 监控不能少 - 部署入侵检测系统
  4. 🔄 定期审计 - 检查日志、启动项、网络连接
  5. 💾 备份是底线 - 保持干净的备份可快速恢复

呼啊~总算清理干净了!不过老师,为了保险起见,还是建议把系统重装一下吧?

毕竟攻击者都有root权限了,谁知道还留了什么后门呢…

报告结束


本报告与 kdevtmpfs恶意程序溯源报告 为同一安全事件的两个分析视角,建议配合阅读。