木马分析出现python语言,360的安全人员不禁感叹还有这种操作?
几年前,敲诈者木马还是一个默默无闻的木马种类。然而,由于其极强的破坏力和直接且丰厚的财富回报,敲诈者木马这几年已经一跃成为曝光率最高的木马类型——甚至超越了盗号木马、远控木马、网购木马这传统三强。与此同时,各种敲诈者木马也在不断推陈出新,变着花样地出现在分析人员的视野中。
私信小编007即可自动获取大量Python视频教程,还有各类PDF!
去年,360安全团队就发现了一款使用PHP语言编写的敲诈者木马(具体内容参考《用世界上最好的编程语言写成的敲诈者木马》)。最近,一款使用Python语言编写的敲诈者木马又被发现。面对花样百出的攻击,360的安全分析人员不禁感叹——竟然还有这种操作?
永远的“我的化学浪漫”
7月27日,360的反勒索申诉平台接到了两例反馈,两案例均为26日中毒,而且文件扩展名均被修改为“MyChemicalRomance4EVER”。两位受害人本可逃过一劫,可惜却都是中毒之后才想起安装360安全卫士来加强系统安全防护的。
上述扩展名中的“My Chemical Romance”这个名称,其实是源自一支美国新泽西州的同名朋克乐队。该乐队成立于2002年,十一年后的2013年宣告解散。朋克这种充满了叛逆与不羁的音乐风格向来深受年轻人的喜爱,所以该木马的作者想来应该也是一个充满着叛逆性格的年轻人吧?
病毒名字起的很“朋克”,但传播方式却颇为老套,无非就是伪装成一些对广大网民比较有吸引力的软件对外发布,诱导大家下载并执行。
比如我们拿来分析的这个样本,就自称是一款叫做“VortexVPN”的VPN软件。除此之外,还有类似于“PornDownload”、“ChaosSet”、“PanDownloader”、“BitSearch”等等,基本都是广大网友都懂得的各种工具软件。
通过进一步追溯,发现该木马传播早期,可能是来自于一个名为ZeroNet的匿名网络,该网络是一个去中心化的加密网络,显然作者是对隐藏自身信息也是做了比较周密的安排。
木马分析惊现Python语言
言归正传,我们来看下木马本身。和常见勒索木马一样,会加密中毒电脑中的所有常见文档文件,并留下敲诈信息
而很是与众不同的是,在分析的时候,我们发现这款木马竟然是用Python语言编写了木马脚本,然后再打包成一个exe的可执行程序的。
于是我们尝试使用现有工具对该exe进行反编译,结果喜人——工具成功的对木马程序进行了反编译,其中除了一些Python环境所依赖的库文件之外,核心部分就是一个名为“wub_crypted”的pyc文件。
之后,我们将pyc脚本恢复为py脚本文件,发现脚本本身的内容也是加密过的。再经过两次的Base64解码和一次AES解密,最终我们拿到了木马核心功能脚本的内容。
脚本代码分析
有了明文脚本,功能就显而易见了。
首先,木马会判断自身进程名是否为systern.exe。如果不是,则将自身复制为C:UsersPublicsystern.exe 并执行。
之后,木马释放s.bat批处理脚本,关闭各种数据库和web 服务及进程。
接下来,就是遍历所有系统中所有文件并加密且留下勒索信息了。当然,为了避开敏感的系统文件,代码有意避开了“C:Documents and Settings”和“C:Windows”两个目录。
最终木马会调用系统的wevtutil命令,对系统日志中的“系统”、“安全”和“应用程序”三部分日志内容进行清理,并删除自身,以求不留痕迹。
该木马的亮点是,在加密的文件类型列表中,除了大量的文档类型外,还包括有比特币钱包文件和一些较重要的数据库文件。
而另一个更大的亮点则是——该木马不同于以往的敲诈者木马使用不对称加密算法,而是采用了AES对称加密算法,并且用于加/解密的密钥则是硬编码在脚本中的:“MyChemicalRomance4EVER_tkfy_lMCR”。
用Python脚本写了个敲诈者木马,再打包成 exe程序,再费尽周章用匿名网络发不出去,最终因为使用对称加密算法被分分钟破解……惊不惊喜?意不意外?
老生常谈的一些话
1.不要从不明来源下载程序。
2.安装杀毒软件并开启监控。
3.不要相信所谓外挂、XX工具、XX 下载器一类的程序宣称的杀软误报论。
这些真的已经算是老生常谈了。不过大家放心,这类木马虽然有些新意,但本质上还是老套的敲诈者木马,360 对此类木马可实现无压力拦截。
木马分析出现python语言,360的安全人员不禁感叹还有这种操作?的更多相关文章
- 预测分析建模 Python与R语言实现
预测分析建模 Python与R语言实现 目录 前言 第1章 分析与数据科学1第2章 广告与促销10第3章 偏好与选择24第4章 购物篮分析31第5章 经济数据分析42第6章 运营管理56第7章 文本分 ...
- 【学习笔记】PYTHON语言程序设计(北理工 嵩天)
1 Python基本语法元素 1.1 程序设计基本方法 计算机发展历史上最重要的预测法则 摩尔定律:单位面积集成电路上可容纳晶体管数量约2年翻倍 cpu/gpu.内存.硬盘.电子产品价格等都遵 ...
- Python语言初学总结
课程名称:程序设计方法学 实验1:程序设计语言工具 时间:2015年10月21日星期三,第3.4节 地点:理工楼1#208 一.实验目的 1.深入理解程序设计语言及其几种常见的编程范型: 2.激发学生 ...
- Python语言在企业级应用上的十大谬误
英文原文:https://www.paypal-engineering.com/2014/12/10/10-myths-of-enterprise-python/ 翻译原文:http://www.os ...
- 动态语言的灵活性是把双刃剑 -- 以Python语言为例
本文有些零碎,总题来说,包括两个问题:(1)可变对象(最常见的是list dict)被意外修改的问题,(2)对参数(parameter)的检查问题.这两个问题,本质都是因为动态语言(动态类型语言)的特 ...
- 机器学习之支持向量机(四):支持向量机的Python语言实现
注:关于支持向量机系列文章是借鉴大神的神作,加以自己的理解写成的:若对原作者有损请告知,我会及时处理.转载请标明来源. 序: 我在支持向量机系列中主要讲支持向量机的公式推导,第一部分讲到推出拉格朗日对 ...
- mooc-python语言语法week3-6
week3 1.类型的概念:程序编程不允许有歧义的数据类型存在,所以对数据进行了划分,python语言类型分为,数字类型.字符串类型.元组类型.列表类型.文件类型.字典类型. i:数字类型: pyth ...
- SM3杂凑算法Python语言实现——第三部分
SM3杂凑算法实现--第三部分 一.SM3 密码概述 我们首先把需要用到的算法呈现出来,最后我们再考虑如何集合为一个库的方法,这一部分我们就开始编写一个新的算法:国家商用密码标准SM3密 ...
- 全国计算机等级考试二级Python语言程序设计考试大纲
全国计算机等级考试二级Python语言程序设计考试大纲(2018年版) 基本要求 掌握Python语言的基本语法规则. 掌握不少于2个基本的Python标准库. 掌握不少于2个Python第三方库,掌 ...
随机推荐
- AOP-方法拦截器-笔记
方法拦截器的继承层次图: 这些拦截器具体长什么样?? 一.MethodBeforeAdviceInterceptor 这个拦截器只有一个属性就是前置通知.需要注意的是前置通知和返回通知的拦截器才会持有 ...
- 1251. 序列终结者【平衡树-splay】
Description 网上有许多题,就是给定一个序列,要你支持几种操作:A.B.C.D.一看另一道题,又是一个序列 要支持几种操作:D.C.B.A.尤其是我们这里的某人,出模拟试题,居然还出了一道这 ...
- Java认证与授权服务JAAS基础概念
转:http://www.nosqlnotes.com/technotes/jaas-concept/ JAAS是”Java Authentication and Authorization Serv ...
- ZooKeeper分布式专题与Dubbo微服务入门
第1章 分布式系统概念与ZooKeeper简介对分布式系统以及ZooKeeper进行简介,使得大家对其有大致的了解1-1 zookeeper简介1-2 什么是分布式系统1-3 分布式系统的瓶颈以及zk ...
- 轻量级IOC容器:Ninject
Ninject是一个快如闪电.超轻量级的基于.Net平台的依赖注入框架.它能够帮助你把应用程序分离成一个个松耦合.高内聚的模块,然后用一种灵活的方式组装起来.通过使用Ninject配套你的软件架构,那 ...
- 使用Navicat for Oracle工具连接oracle
使用Navicat for Oracle工具连接oracle的 这是一款oracle的客户端的图形化管理和开发工具,对于许多的数据库都有支持.之前用过 Navicat for sqlserver,感觉 ...
- Linux VFS的主要的数据结构
先说明一下,linux内核中各种数据结构也不停的在变,所以不同版本的内核各个数据结构的定义可能会差别很大,这一组关于linux 文件系统的文章中的代码都摘自linux-2.6.34.1. VFS依赖于 ...
- 对ArrayList存放的对象,按照对象的某个属性进行排序。
使用Collections.sort()方法进行实现: import java.util.ArrayList; import java.util.Collections; import java.ut ...
- MySQL添加、删除索引
1.索引类型 UNIQUE(唯一索引):不可以出现相同的值,可以有NULL值: INDEX(普通索引):允许出现相同的索引内容: PROMARY KEY(主键索引):不允许出现相同的值: fullte ...
- 系统重装后恢复Oracle数据库
这周装系统的固态盘坏了,固态硬盘用到坏也是第一次碰到....只能新买个硬盘重装系统了.到了Oracle数据库恢复那一步了,其实很简单.只要没把数据库安装路径放在系统盘就行.*^____^* 先找到重装 ...