locky勒索软件恶意样本分析1

1 locky勒索软件构成概述

前些时期爆发的Locky勒索软件病毒这边也拿到了一个样本,简要做如下分析。样本主要包含三个程序:

A xx.js文件:Jscript脚本文件,以脚本形式存在主要用于邮件传播和方便免杀杀毒软件,用于联网下载PE1

B PE程序(PE1):外壳程序,主要负责解密内存load PE2。

C PE程序(PE2):功能代码存在于该文件,主要负责和C&C服务器通讯获取加密密钥,遍历磁盘驱动器使用crypt系列windows函数对文件加密。

PE1

PE2

2 locky勒索软件行为分析

2.1 XX.JS行为简要分析

病毒的本体在通过邮件传播的时候可以就是一个xx.js的文件。

由于是脚本文件,病毒的原始JS样本已经截获累计到了5位数。

我们将手里的这个JS文件分别传到virtotal和virscan。

由于脚本文件免杀较为容易,单纯只靠更新病毒库不容易将数以万计的js恶意样本完全拦截并报警。

xx.js会同一台webserver 进行通讯,下载PE1

我们查询了一下这个ip。

Locky病毒的作者将PE1文件部署在美国的服务器上。

xx.js成功下载PE之后会将PE1至于当前用户的Temp文件夹中然后直接运行。

如果该JS被执行多次,可能会因为文件已经存在而弹出写入失败的对话框。

对应的该行的代码。

这点可能会被用户察觉。

2.2 PE1 PE2行为简要分析

PE1只是负责内存加载PE2。它的导入表的函数是伪造的,为了用于躲避某些对于导入表查杀敏感的杀软的查杀报警。

对于PE1的查杀virtotal显示基本大部分杀软都已经入库查杀了。


Locky病毒首先使用RtlDecompressBuffer函数与内存中解出PE2

在内存加载的时候会不断的调用GetProcAddress动态的填充修正PE2的导入表的函数地址。

使用常规的函数来判断系统版本

尝试请求通讯服务器上的main.php并进行通讯

向如下通讯服务器通讯请求密钥并回传用户的编号。

会尝试向注册表写入”\Software\Locky”,证明该系统已经存在Locky病毒

会尝试向Run写入启动项

下面应该是打开文件并遍历文件使用微软提供的Crypt对文件进行加密的代码位置

病毒使用CreateFileW打开文件,使用FindFirstFileW和FindNextFileW对文件进行遍历。

使用微软提供的Crypt系列的函数对文件进行加密。

目前会加密下列后缀名的文件。

对于路径和文件名包含下列字符的文件不进行加密

使用

删除全盘所有卷影副本,使受害系统不能够通过卷影副本进行系统还原。

病毒完成执行成功后会设置如下背景图片进行勒索。

3 locky勒索软件分析总结

通过目前的分析来看,勒索软件“Locky”的功能与之前分析的勒索软件的功能基本一致。勒索软件能给攻击者带来巨大的收益,因其使用比特币进行交易,所以很难追踪。一旦用户感染了勒索软件,只能付费进行解密或是丢弃这些文件。广大用户,为防止数据被加密,更应该注意勒索软件的防御,养成良好的上网使用习惯,不要轻易执行来历不明的文件。与其他勒索软件不同的是,”Locky”是首例具有中文提示的比特币勒索软件,这预示着勒索软件作者针对的目标范围逐渐扩大,勒索软件将发展出更多的本地化版本。今后中国将受到更多类似的勒索软件攻击。所以如何防御勒索便成为保卫网络安全的重要任务之一。

ocky勒索软件恶意样本分析1的更多相关文章

  1. ocky勒索软件恶意样本分析2

    locky勒索软件恶意样本分析2 阿尔法实验室陈峰峰.胡进 前言 随着安全知识的普及,公民安全意识普遍提高了,恶意代码传播已经不局限于exe程序了,Locky敲诈者病毒就是其中之一,Locky敲诈者使 ...

  2. 360安全中心:WannaCry勒索软件威胁形势分析

    猫宁!!! 参考链接:http://zt.360.cn/1101061855.php?dtid=1101062360&did=210646167 这不是全文,而是重点摘要部分. 2017年5月 ...

  3. 【API】恶意样本分析手册——API函数篇

    学编程又有材料了 http://blog.nsfocus.net/malware-sample-analysis-api/

  4. Android勒索软件研究报告

    Android勒索软件研究报告 Author:360移动安全团队 0x00 摘要 手机勒索软件是一种通过锁住用户移动设备,使用户无法正常使用设备,并以此胁迫用户支付解锁费用的恶意软件.其表现为手机触摸 ...

  5. 2017-2018-2 20155314《网络对抗技术》Exp4 恶意代码分析

    2017-2018-2 20155314<网络对抗技术>Exp4 恶意代码分析 目录 实验要求 实验内容 实验环境 基础问题回答 预备知识 实验步骤 1 静态分析 1.1 使用virsca ...

  6. 【逆向实战】恶意勒索软件分析_披着羊皮的狼_被注入恶意代码的apk

    /文章作者:Kali_MG1937 QQ:3496925334 CNBLOG博客号:ALDYS4/ 今天逛某论坛的时候发现了一篇求助贴 有意思,好久没分析过恶意软件了 今天就拿它来练练手 反编译工具 ...

  7. MS Office CVE-2015-1641 恶意 Exploit 样本分析

    MS Office CVE-2015-1641 恶意 Exploit 样本分析 在对最近的一个恶意 MS Office 文档样本进行分析时,我们发现了一些有趣的特性.这个文档利用 CVE-2015-1 ...

  8. 发送垃圾邮件的僵尸网络——药物(多)、赌博、股票债券等广告+钓鱼邮件、恶意下载链接、勒索软件+推广加密货币、垃圾股票、色情网站(带宏的office文件、pdf等附件)

    卡巴斯基实验室<2017年Q2垃圾邮件与网络钓鱼分析报告> 米雪儿 2017-09-07 from:http://www.freebuf.com/articles/network/1465 ...

  9. locky勒索样本分析

    前段时间收到locky样本,分析之后遂做一个分析. 样本如下所示,一般locky勒索的先决条件是一个js的脚本,脚本经过了复杂的混淆,主要用于下载该样本文件并运行,. 解密 样本本身进行了保护,通过i ...

随机推荐

  1. 20181204-4 互评Final版本

    此次作业要求参见https://edu.cnblogs.com/campus/nenu/2018fall/homework/2478 互评 一.互评Final版本——杨老师粉丝群<PinBall ...

  2. 12.23daily_scrum

    今天大家的工作重心在调试过程中,以便及时地发现和解决在调试过程中出现的问题和漏洞,悬浮窗测试工作也已经展开,主要集中在边缘设计代码的测试部分,具体工作如下: 具体工作: 小组成员 今日任务 明日任务 ...

  3. 实验作业:使gdb跟踪分析一个系统调用内核函数

    实验作业:使gdb跟踪分析一个系统调用内核函数(我使用的是getuid) 20135313吴子怡.北京电子科技学院 [第一部分] 根据视频演示的步骤,先做第一部分,步骤如下 ①更新menu代码到最新版 ...

  4. mysql 插多行数据

    应用场景: 需要把一个表(tableA)的个别字段筛选出来,添加到新表中(tableB).新表还含有其他字段,主键是uuid. 思路解析: 熟悉插入一行数据的sql语句: insert into cu ...

  5. 第二阶段Sprint10

    昨天:查看有关“共享平台”的资料,看如何实现上传下载功能,并尝试编码,没有成功 今天:集合三个人的代码,整合到一起,修复出现的Bug 遇到的问题:看Bug没有出现,但功能不是停止运行就是部分不能用,只 ...

  6. 我与git“美妙”的一天

    今天是第一天使用git,苦不堪言,感觉服务器和自己都要爆炸了,弄了半天才马马虎虎会了一点,基本流程如下 1.在mukever.online注册用户 2.下载git for windows(一个客户端) ...

  7. KindEditor:Ajax提交表单时获取不到HTML内容

    当用Ajax提交表单时,KindEditor的内容获取不到,HTML数据获取不了 原因:当ajax提交时,KindEdito的HTML数据还没有同步到表单中来,那怎么去获取HTML数据呢? ----- ...

  8. [问题排查]记录一次两个dubbo提供者同时在线,代码不一致导致问题的排查记录

    1. 需求 有一个需求job定时5秒一次,job[消费者]调用dsc[提供者]提供的dubbo完成:先清空redis的某个key,然后再往redis中放入新的数据,这是一个定时任务,需要每隔5秒执行一 ...

  9. Activiti源码:ActivitiEventSupport类中eventListeners的设计

    ActivitiEventSupport类成员eventListeners是使用CopyOnWriteArrayList实现的. public ActivitiEventSupport() { eve ...

  10. sleep,yield,join,notify,wait,notifyAll区别

    1.  Thread.sleep(long) 和Thread.yield()都是Thread类的静态方法,在调用的时候都是Thread.sleep(long)/Thread.yield()的方式进行调 ...