阳子
阳子
发布于 2025-07-08 / 23 阅读
0
0

Ransomware Simulator - 安全意识与应急响应演练工具

⚠️ 严正警告 (Disclaimer)

本项目仅用于合法的安全研究、教育和企业内部攻防演练目的。

在任何情况下,严禁在未经授权的系统上运行此程序。此工具旨在模拟对文件进行不可逆的加密操作。在非受控环境中运行可能导致真实的数据丢失和系统损坏

使用者必须对自己的行为负责。 开发者对因滥用此工具而造成的任何损害不承担任何责任。

访问项目https://github.com/yangzifun/ransom_simulator


🚀 1. 项目简介

Ransomware Simulator 是一个高保真、跨平台的勒索软件攻击模拟器,使用 Go 语言编写。它旨在通过模拟真实世界勒索软件(如 LockBit、Conti 等)的关键攻击阶段,帮助组织和安全团队提升防御能力。

核心价值

  • EDR/XDR 检测能力测试: 观察安全产品对文件操作、加密行为和网络 C2 信标的捕获能力。

  • 备份与恢复策略验证: 在安全隔离环境中,检验数据恢复流程的有效性和时效性。

  • 应急响应能力提升: 提供真实的模拟场景,演练事件调查、溯源、遏制和清除流程。

  • 员工安全意识增强: 直观展示勒索软件的破坏力,作为内部安全培训的生动案例。

模拟的关键攻击阶段 (MITRE ATT&CK®)

Tactic (战术)

ID

模拟行为

执行 (Execution)

TA0002

模拟通过社工手段获取执行权限。

防御规避 (Defense Evasion)

TA0005

模拟删除卷影副本 (vssadmin) 或备份 (tmutil) 的行为。

命令与控制 (C2)

TA0011

模拟向攻击者控制的服务器发送网络信标(Beacon Check-in)。

发现 (Discovery)

TA0007

扫描文件系统,寻找符合特定扩展名的“有价值”文件。

影响 (Impact)

TA0040

核心载荷:使用 AES-256 + RSA-2048 混合加密算法对目标文件进行加密、投放勒索信、模拟修改桌面壁纸。


✨ 2. 功能特性与技术细节

  • 跨平台支持: 可编译为 Windows (.exe), Linux 和 macOS (Intel/ARM) 的原生可执行文件。

  • 高强度混合加密 (AES + RSA):

    • 使用强大的 AES-256 GCM 模式对文件内容进行流加密。

    • 随机生成 AES 密钥,并使用从模拟 C2 服务器获取的 RSA-2048 公钥加密 AES 密钥,模拟真实勒索软件的密钥交换流程。

  • 高效并发加密: 利用 Go 的并发特性,通过 -workers 参数指定线程数,最大化利用多核心 CPU 资源,模拟攻击的高效性。

  • 安全演习模式 (-dry-run): 提供完全安全的沙箱模式,程序只会执行扫描和 C2 信标(可选),不会执行任何文件修改或破坏性操作

  • 目标精准控制: 允许通过 -ext 参数精确控制攻击目标的文件类型。

  • 单实例运行机制: 通过创建文件锁机制 (os.OpenFile(O_EXCL)),防止程序重复运行导致的演练环境污染。


🛠️ 3. 安装与编译指南

3.1. 先决条件

  • 安装 Go 编程语言 (版本 1.18 或更高)。

3.2. 编译步骤

假设您已将 ransom_simulator.go 文件放置在您的工作目录下。

目标平台

命令

输出文件示例

Linux (64位)

GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o ransom_simulator_linux .

ransom_simulator_linux

Windows (64位)

GOOS=windows GOARCH=amd64 go build -ldflags="-s -w" -o ransom_simulator.exe .

ransom_simulator.exe

macOS (Intel)

GOOS=darwin GOARCH=amd64 go build -ldflags="-s -w" -o ransom_simulator_macos_intel .

ransom_simulator_macos_intel

macOS (Apple Silicon)

GOOS=darwin GOARCH=arm64 go build -ldflags="-s -w" -o ransom_simulator_macos_arm .

ransom_simulator_macos_arm

提示:-ldflags="-s -w" 是一个可选参数,用于移除调试信息,减小最终可执行文件的大小。


⚙️ 4. 使用方法与功能指导

再次强调:强烈建议在虚拟机或隔离的沙箱环境中运行。

4.1. 命令行参数详解

参数

类型

状态

描述

关键用途

-ext

string

必须

指定要加密的文件扩展名,多个用逗号分隔。

目标定位:控制攻击目标范围。

-dir

string

可选

指定要扫描的根目录,多个用逗号分隔。

范围控制:限制在特定演练目录,避免全盘扫描。

-workers

int

可选

并发 Worker 线程数量 (默认: CPU核心数)。

性能模拟:测试系统资源消耗和响应延迟。

-dry-run

bool

可选

演习模式:只查找、列出目标,不进行加密或破坏性操作。

安全测试:初步验证扫描和检测规则。

-remove

bool

可选

[高危] 加密成功后删除原始文件。

真实模拟:模拟真实勒索软件的彻底破坏。

4.2. 使用示例 (演练指导)

示例 1: 蓝队/EDR 规则初步验证 (安全模式)

目标: 在不破坏文件的前提下,检查 EDR 或 HIPS 是否能捕获到对 .txt.pdf 文件的扫描行为,并观察 C2 信标网络请求。

Bash

# 在 Linux/macOS 演练环境中执行
./ransom_simulator_linux -ext .txt,.pdf -dry-run -dir /home/testuser/Documents

观察点:

  1. 程序输出中是否列出了所有预期的目标文件。

  2. 检查 EDR/SIEM 日志,是否有文件遍历和可疑网络连接 (BEACON_URL) 的告警。

示例 2: 验证数据恢复和应急响应流程 (破坏模式)

目标: 在隔离的演练虚拟机中,模拟一次真实的、不可逆的勒索攻击,以测试备份还原流程。

Bash

# 在 Windows 演练环境中执行
# 目标:加密所有办公文档和压缩文件
./ransom_simulator.exe -ext .doc,.docx,.pdf,.zip,.bak -dir C:\Users\TestUser\Data -workers 8 -remove

执行流程:

  1. 程序启动,进行 C2 通信获取公钥。

  2. 程序开始并发扫描和加密。

  3. 加密完成后,程序会在用户桌面和关键目录创建勒索信。

  4. 应急响应演练开始:

    • 遏制: 隔离受影响的演练主机。

    • 溯源: 分析加密日志 (ransom_log.txt),确定攻击开始时间、范围和攻击者ID (UUID)。

    • 恢复: 启动备份还原策略,验证文件是否能完整、及时恢复。

示例 3: 清理残留锁文件 (针对 Linux/macOS)

如果在演练过程中程序意外崩溃或被强制终止,系统可能会留下锁文件,导致下次启动失败。

Bash

# 清理命令
rm /tmp/ransom_simulator_instance.lock

5. 免责声明与许可

本项目遵循 MIT 许可证。请查阅 LICENSE 文件了解详情。

再次强调,此工具的创建旨在赋能防御者,而非赋能攻击者。请在法律和道德允许的范围内负责任地使用。


评论