Kame-ng/Desenvolvimento-de-um-Ransomware
GitHub: Kame-ng/Desenvolvimento-de-um-Ransomware
一个基于 Python 和 AES-CTR 的勒索软件概念验证项目,用于防御性安全研究和对称加密教学。
Stars: 0 | Forks: 0
# 使用 Python 创建勒索软件
## ⚠️ 免责声明
本项目仅为网络安全教育和研究目的而开发。其目标是演示数字威胁的技术运作原理,以改进防御和检测机制。未经明确授权将此代码用于恶意目的或用于第三方系统,是非法行为,并违反了安全准则。
## 📝 关于本项目
本项目是一个概念验证,用于模拟勒索软件的基本行为。开发此项目是作为一个实践挑战,旨在巩固操作系统文件操作及在 Python 中应用加密算法的知识。
本项目分为两个核心部分:
1. **`encrypter.py`**:定位目标文件,读取数据,应用加密并修改文件扩展名。
2. **`decrypter.py`**:定位加密文件,读取受影响的数据,使用正确的密钥逆转加密过程并恢复原始文件。
## 🛠️ 技术与概念
* **语言:** Python 3.x
* **库:** `os`(系统操作)和 `pyaes`(AES 加密)
* **概念:** 对称加密(AES - Advanced Encryption Standard)
## 运行我们的实验室
首先,我们创建一个 .txt 文件,随便写点什么作为测试。

之后,我们使用 Python 语言开发了加密文件。由于 Kali Linux 原生自带 Python,我们只需要准备好环境以接收外部库(如 pyaes)。为了避免与操作系统发生冲突,并确保项目在干净的环境中运行,我们创建并激活了一个独立的虚拟环境(venv),实验室的所有依赖项都单独存储在其中。

* **`os`**:这是 Python 的原生库,用于直接与操作系统交互。在本项目中,它专门用于操作文件系统,并在读取数据后删除原始文件。
* **`pyaes`**:这是负责繁重加密工作的库。它实现了 **AES (Advanced Encryption Standard)** 算法,这是世界上最安全、最受审查的加密标准之一,被全球政府、金融机构和科技公司广泛用于保护敏感数据。
### 读取目标文件

脚本将目标定义为 `teste.txt` 文件。
它以 **`"rb"`(Read Binary / 二进制读取)** 模式打开文件。这是一个重要的技术细节:它不是将文件作为纯文本读取,而是读取原始字节(0 和 1)。这确保了脚本可以处理任何类型的文件:照片、PDF、可执行文件,而不仅仅是文本。
内容被存储在变量 `file_data` 中,随后关闭文件以释放内存。
### 销毁原始文件

**模拟攻击向量:**这一行代码模拟了真实攻击的致命性。通过 `os.remove()` 方法,原始文件会被永久地从操作系统的索引中删除。从流程的这个确切时刻起,存储在 `file_data` 变量中的信息成为了机器上唯一存活的副本数据。
### 密钥与加密模式参数化

* **密钥派生 (`b"..."`)**:前缀 `b` 强制将字符串转换为字节串。由于字符串 `"testeransomwares"` 恰好有 16 个字符,它会生成一个 16 字节(128 位)的密钥。AES 标准要求严格的密钥长度(128、192 或 256 位)。
* **CTR 操作模式 (Counter Mode)**:计数器模式将 AES 分组密码转换为流密码。它基于递增计数器生成密钥流,并在该流与原始文件字节之间应用逻辑异或(XOR)操作。这是一种高性能模式,因为它允许并行处理,并且不要求数据的最后一个块进行填充(*padding*)。
### 执行加密过程

`.encrypt()` 函数利用通过密钥参数化的 AES 算法数学矩阵处理原始字节块。存储在 `crypto_data` 中的结果变成了一串没有任何可识别模式的伪随机二进制序列。
### 写入并混淆新文件

* **更改扩展名**:在原始名称的基础上添加后缀 `.ransomwaretroll`(`teste.txt.ransomwaretroll`)。这是真实恶意软件的经典特征,既为了向用户宣示攻击,也为了破坏操作系统默认程序的关联性,防止普通的双击操作打开该文件。
* **写入模式 `"wb"` (Write Binary)**:将加密后的数据块直接写入硬盘,完成数据数字劫持的过程。
### 执行加密并创建新文件

执行后(`python encrypter.py teste.txt`),我们的加密成功完成,并生成了一个名为(`teste.txt.ransomwaretroll`)的新文件。

## 🔓 解密脚本 (`decrypter.py`)
在模拟了数据加密过程之后,我们开发了执行逆向过程的脚本:通过加密反转来将原始文件恢复到可读状态。
### 代码工作原理
代码使用 Python 构建,采用了相同的算法参数和操作模式,以确保反转的完整性:
1. **读取加密文件**:脚本定位修改后的文件(`teste.txt.ransomwaretroll`)并以二进制模式(`'rb'`)读取其数据。
2.

3. **加密反转 (AES-CTR)**:使用相同的 16 字节对称密钥(`testeransomwares`),并通过 `pyaes` 库使用 **CTR (Counter Mode)** 操作模式,`.decrypt()` 函数处理二进制数据块,从而在内存中重构原始内容。
4.

5. **系统清理**:使用 `os.remove()` 方法将临时的加密文件从磁盘中永久删除。
6.

7. **恢复原始文件**:创建一个具有原始名称(`teste.txt`)的新文件,并以二进制模式(`'wb'`)写入,保存完美恢复的数据。
8.

此后,我们可以通过(`python decrypter.py teste.txt.ransomwaretroll`)和(`cat teste.txt`)以明文读取我们的新文件。
## 
## 项目总结与结论
这个实践实验室演示了使用**对称加密**(CTR 模式下的 AES 算法)进行文件操作和转换的基本机制。通过 Python 自动化脚本,模拟了未授权数据修改(加密并删除原文件)的生命周期,随后进行了事件响应或恢复过程(解密并恢复原始数据)。
主要目标是在受控的测试环境中,了解现代威胁如何与文件系统交互,以及加密数学如何在字节层面上运作。
### 使用方法与实际应用
本挑战中探讨的代码概念和结构直接适用于信息安全与软件工程等多个领域:
* **对手模拟 (Red Teaming):** 创建受控的测试样本,以测试企业的监控解决方案是否能够检测出基于数据量或特征签名的可疑行为。
* **检测工程 (Blue Teaming):** 分析脚本的行为(打开 -> 读取 -> 删除 -> 写入),以开发关联规则(如 SIEM、YARA 或 Sigma 规则),从而实时识别并拦截恶意进程。
* **合法的数据保护:** 应用相同的对称加密概念,实现安全的自动备份例程,并保护静止数据(*data at rest*)等机密信息。
### 完善的系统保护的重要性
最后,一个简单的脚本就能轻易篡改本地文件完整性,这凸显了在企业基础设施和个人设备中实施稳健的分层防御的迫切需求。为了缓解并防止此类现实攻击造成运营影响,以下立场至关重要:
* **最小权限原则:** 确保用户和应用程序仅具有严格必要的权限,防止脚本篡改系统关键目录。
* **行为监控 (EDR/XDR):** 使用不仅依赖已知病毒特征签名的先进安全解决方案,而是主动拦截表现出异常行为的进程(例如快速、批量修改文件扩展名)。
* **弹性备份策略 (Rule 3-2-1):** 保持最新的备份,存储在不同的介质上,最关键的是,至少保留一份**不可变或离线**(与网络隔离)的副本,确保在任何故障或事件场景下的业务连续性。
## 👋 致谢
衷心感谢您一直陪伴本文档到最后!
信息安全领域的旅程需要好奇心、奉献精神以及不断探索技术幕后运作原理的渴望。开发这个实践实验室并整理这些文档,是巩固加密、自动化和网络安全防御关键概念的重要一步。
希望这些材料能够帮助您拓宽知识面,并阐明构建一个日益安全且具有弹性的数字生态系统的重要性。
标签:DNS 反向解析, PoC, Python, 勒索软件, 密码学, 手动系统调用, 文件加密, 无后门, 暴力破解