mmohamedkhaled/RansomVault-Lab

GitHub: mmohamedkhaled/RansomVault-Lab

一个安全设计的教育工具包,通过复现勒索软件的混合加密模型(AES-256-GCM + RSA-4096)帮助用户学习现代文件加密与密钥交换原理。

Stars: 0 | Forks: 0

# RansomVault-Lab [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/f8aeec2cda051315.svg)](https://github.com/mmohamedkhaled/RansomVault-Lab/actions/workflows/ci.yml) ![许可证](https://img.shields.io/badge/license-MIT-blue) ![Python](https://img.shields.io/badge/python-3.9%2B-blue) ![代码风格](https://img.shields.io/badge/code%20style-ruff-black) **RansomVault** *不是*恶意软件。它是一个安全学习教育工具包,可让您亲自动手探索文件加密和混合密钥交换模型的工作原理——以及为什么如果没有正确的密钥,恢复将是不可能的。原始文件**始终保持保留**,恢复密钥**始终在本地生成**,并且在设计上没有任何敲诈、传播或破坏性行为。 ## 它的不同之处 - **真实的加密核心。** 每个文件使用随机 AES-256-GCM 密钥,每个密钥均由 RSA-4096 公钥 (OAEP+SHA-256) 封装——这正是 WannaCry、LockBit 和 REvil 所使用的混合模型。 - **认证加密。** 篡改、截断和错误的密钥都会被*检测*到并拒绝,绝不会静默接受。 - **两种密钥模型。** 对称密钥 (`--keyfile` / `--password`) 和混合 RSA 密钥 (`--pubkey` / `--privkey`)。 - **设计安全。** 没有删除、没有网络请求、没有敲诈——请参阅[免责声明](#disclaimer)。 - **规范的打包。** 可安装的软件包,具有类型提示、文档和测试。 ## 快速开始 ``` git clone https://github.com/mmohamedkhaled/RansomVault-Lab.git cd RansomVault-Lab python3 -m venv .venv && source .venv/bin/activate pip install -e ".[dev]" ``` ### 混合流程(真实的勒索软件模型) ``` # 1. 生成 RSA-4096 keypair(一次) ransomvault keygen # -> attacker_public.pem(用于加密) # -> attacker_private.pem(恢复时需要) # 2. “攻击”:使用公钥加密文件夹 ransomvault encrypt ./target --pubkey attacker_public.pem # -> 每个文件变为 .rvlt,保留原始文件 # -> HOW_TO_DECRYPT.txt 释放到文件夹中 # 3. “防御”:使用私钥恢复 ransomvault decrypt ./target --privkey attacker_private.pem # -> 每个 .rvlt 文件被还原 ``` ### 对称替代方案 ``` ransomvault encrypt ./target --password # scrypt-derived key ransomvault decrypt ./target --password ransomvault encrypt ./target --keyfile my.key # random key saved to my.key ransomvault decrypt ./target --keyfile my.key ``` ## CLI 参考 ``` ransomvault keygen [-o OUT_DIR] Generate an RSA-4096 keypair ransomvault encrypt FOLDER --pubkey PEM Encrypt (hybrid) ransomvault encrypt FOLDER --keyfile PATH Encrypt (symmetric key) ransomvault encrypt FOLDER --password Encrypt (scrypt password) ransomvault decrypt FOLDER --privkey PEM Decrypt (hybrid) ransomvault decrypt FOLDER --keyfile PATH Decrypt (symmetric key) ransomvault decrypt FOLDER --password Decrypt (scrypt password) ``` 运行任何带有 `--help` 的命令以获取详细信息。 ## 工作原理 ``` file ──► random AES-256 key ──► AES-GCM ──► ciphertext │ └─► RSA-4096 public key (OAEP) ──► wrapped key │ .rvlt file ◄─────────────────────┘ ``` 恢复需要 **RSA 私钥**来解包 AES 密钥。受害者仅持有公钥,无法解密——这正是真实勒索软件挟持受害者的方式,在此以安全的方式进行了模拟。有关完整的格式规范,请参阅 [`docs/architecture.md`](docs/architecture.md);有关与真实 C 语言勒索软件样本的对比,请参阅 [`docs/analysis.md`](docs/analysis.md)。 ## 项目布局 ``` src/ransomvault/ installable package constants.py magic, sizes, version numbers container.py RVLT blob pack/unpack crypto.py AES-256-GCM, scrypt, RSA-4096, byte/file ops cli.py argparse CLI tests/ pytest suite (roundtrips, wrong-key, tamper, binary, CLI) docs/ architecture + comparative analysis ``` ## 开发 ``` pytest # run the test suite ruff check src tests # lint ``` ## 环境要求 - Python ≥ 3.9 - [`cryptography`](https://cryptography.org/) ≥ 41.0 ## 免责声明 本软件**仅严格用于教育和授权研究目的**。 - **仅在您自己的系统或数据上使用它**,或者在隔离的实验室/虚拟机 (VM) 中使用。 - 它**不包含**任何破坏性、自我传播或敲诈功能。 - 作者对任何滥用行为**不承担**责任。 如果您正在寻找真正的恶意软件,这并不是——这是出于设计的。 ## 许可证 [MIT](LICENSE) —— 按“原样”提供,不提供任何形式的保证。
标签:Python, 勒索软件模型, 安全科普, 安全规则引擎, 密码学, 手动系统调用, 数据加密, 无后门, 逆向工具