dylanharrisfl/DFIR-LinuxMalwareAnalysis
GitHub: dylanharrisfl/DFIR-LinuxMalwareAnalysis
Linux恶意软件分析与事件响应工具
Stars: 0 | Forks: 0
# DFIR — Linux 恶意软件分析与事件响应
## 概述
| 字段 | 详情 |
|---|---|
| **系统** | 基于 Asterisk 的 Linux VoIP 系统 |
| **攻击类型** | 通过隐藏 SIP 中继进行电话欺诈 |
| **持续性方法** | 隐藏的 PHP 后门,恶意 root 级用户 |
| **发现** | 运营商关于异常出站通话量的警报 |
| **漏洞** | 基于 ACL 的配置漏洞 |
| **解决方案** | 从备份中干净重建;漏洞已修复 |
## 初始检测
事件首先由我们的运营商标记,他们提醒我们异常高的可疑出站通话量。登录电话系统后,对活动通话记录的审查证实了这一担忧。有大量通话是通过我们标准配置中未识别和未记录的中继进行的。

## 调查
### 隐藏的 SIP 中继
对 GUI 的审查显示只有我们的合法中继。恶意中继完全隐藏在界面中。然而,针对 Asterisk 进程运行 CLI 命令确认了中继非常活跃。

### 恶意配置文件
对所有 SIP 和 PJSIP 配置文件的彻底审查没有发现任何问题。没有中继定义,没有引用其他配置文件的可疑 include 指令。Asterisk 配置路径的目录列表最终揭示了一个 **自定义配置文件**,它被植入以定义和注册欺诈中继,而不会出现在任何标准配置路径中。
### 恶意系统用户 — juba
深入本地用户账户发现了一个不熟悉的用户:**juba**。进一步的检查确认该账户已被分配 **UID 0**,实际上使其成为 root 的别名。这是一种众所周知的持久性和权限提升技术,用于维持隐蔽的 root 级访问。

### 恶意进程 — /usr/bin/cleanup
通过 **ps aux** 查看运行进程时发现了一个可疑条目:一个从 **/usr/bin/cleanup** 运行的进程。文件检查显示它是一个 **伪装成系统工具的 PHP 脚本**,包含大量 **混淆代码**,很可能被用作后门。


### 恶意软件年龄 — stat 分析
对恶意文件运行 **stat** 显示它在大约六个月前被创建。

### Crontab 检查
使用 **crontab -e** 查看所有 crontab 时发现没有恶意计划任务。恶意软件依赖于其持久进程和配置文件以重新安装,而不是基于 cron 的计划。
## 恢复决策
在了解感染范围后,需要做出恢复策略决策:
**选项 A — 手动修复**
继续取证调查,删除所有证据,并就地加固。
**选项 B — 从备份中干净重建**
从已知良好的备份中恢复系统,排除任何受影响的模块。
**决策:选项 B — 干净重建**
鉴于恶意软件的长期驻留时间,不完整修复的风险过高,无法证明手动清理是合理的。重建方法提供了一条更快、更可靠的路径,以确认干净的状态,同时在整个过程中保持活动生产系统在线。
## 修复
### 隔离
移除了恶意中继配置,并重新加载了 Asterisk 配置。欺诈通话活动立即停止,因为被利用进行电话欺诈的中继不再存在。
### 重建策略
而不是恢复完整的系统镜像(这将重新引入恶意软件),恢复是以更有意的方式进行的:
1. 从一个干净的模板在私有、互联网隔离的 VM 上 **提供了一个全新的系统**
2. **有选择地从备份中恢复了模块配置**,明确排除了与漏洞相关的任何模块
3. 受影响的模块是从头开始 **重建并安全配置的**
4. 在暴露于任何公共网络之前,漏洞已被 **确认修复**
5. 在隔离环境中对重建的系统进行了 **全面测试**
### 切换
测试完成后,旧系统被关闭,新系统被提升到面向公众的接口,继承相同的 IP 地址。切换后的监控确认,使用相同攻击向量进行的进一步利用尝试 **在加固的系统上失败了**。
## 犯罪指标 (IOCs)
| 类型 | 指示 |
|---|---|
| **恶意用户** | UID 0 的 juba |
| **恶意二进制文件** | /usr/bin/cleanup(PHP 脚本) |
| **恶意配置** | 主 Asterisk 目录中的自定义 Asterisk 中继配置文件 |
| **行为** | 隐藏的 SIP 中继,大量出站国际通话 |
## 事件后行动
- **范围审查** — 审计了所有类似 Asterisk 系统;漏洞被确认仅限于该主机
- **团队简报** — 与团队一起审查了事件,以建立组织意识并防止再次发生
- **文档** — 已将此事件和解决方案记录下来,以便在将来发生类似事件时参考。
## 我学到/磨炼了什么
- **基于 Linux 的事件响应** 我更多地了解了如何调查基于 Linux 系统的主动和被动攻击,并磨炼了现有技能。它给了我新的 IOCs 和技术来寻找,并编写 SIEM/SOAR 规则来捕获和响应。
- **隐藏在明处**。恶意中继(从 GUI 中隐藏但在 CLI 中活跃)和后门(命名为 cleanup,放置在 /usr/bin/)都依赖于看起来非恶意或隐藏。始终验证 CLI 状态与 GUI 状态,并调查一切,即使它看起来正常。
- **UID 0 别名** 是一种简单但有效的持久性技术,可以将用户账户运行一切作为 UID 0 管理员用户。可以轻松编写 SIEM 规则来捕获此类事件再次发生。
- **有针对性的恢复可能比完整的系统镜像恢复更好** 将 OS 状态与应用程序/模块配置分离,使得可以干净地恢复,而不会重新引入六个月前的感染。
- **在切换之前在隔离环境中进行测试**。在私有 VM 上重建允许验证系统健康,包括确认漏洞已修复,而无需任何生产停机时间。
*由 Dylan Harris 编写 · Linux 恶意软件分析与事件响应*
标签:DAST, GitHub Advanced Security, PB级数据处理, SIP攻击, VoIP系统, 后门, 备份重建, 威胁情报, 安全事件管理, 安全加固, 安全培训, 安全意识, 安全策略, 安全运维, 开发者工具, 异常流量检测, 恶意软件分析, 提示词设计, 攻击溯源, 漏洞修复, 用户账户管理, 系统入侵检测, 网络安全, 网络安全培训, 逆向工具, 配置漏洞, 隐私保护