CrypMic分析报告
一.概述
病毒伪装为NirSoft公司的软件NirCmd并加了MPRESS壳,脱壳后是一个混淆过的PE程序,运行时会用到类似PE映像切换的方式来释放出实际的恶意代码,恶意代码主要对文件进行加密。

二.行为分析
母体解密
指定地址跳转。通过函数返回地址+函数第一个参数来确定跳转到的地址,这里主要用于免杀和增加逆向分析难度。

释放恶意代码。多次跳转后到达PE解密的地方,首先从第一个区段中获取到用于PE替换的数据。接着修改PE加载地址的内存保护属性,然后利用获取到的数据对PE进行替换修改。



执行加密代码。PE数据替换完毕后,通过汇编指令jmp和retn实现指定地址的跳转,这里跳转到加密勒索处。

加密初始化
获取后续操作所需的函数。通过对硬编码的数据进行解密,获取到后续加密操作所需的函数地址。

生成个人ID和防多开。在用户的temp目录下生成PPP.KEY和BBB.KEY文件,把UuidCreate函数生成的UUID写入PPP.KEY里,把内存中的数据写入BBB.KEY中。PPP.KEY保存的UUID作为勒索时的个人ID,BBB.KEY用来防止程序多开,程序检查存在BBB.KEY就不会进行加密过程


远程服务器获取AES加密密钥。连接远程服务器91.121.74.154:443,如果成功连接就发送数据包括当前计算机的系统类型,安全标识符的信息等。成功发送数据后,会尝试接收远程服务器的数据并保存到内存空间中,这里接收到的数据用于后面生成AES加密密钥



加密勒索
加密过程使用了256位AES密钥进行加密,如果加密过程中连接到了远程服务器并获取到AES加密密钥,那么加密的文件需要作者手上的AES密钥才可以进行解密。如果加密过程中连接不了远程服务器,那么加密后的文件可以恢复。

AES密钥生成。调用相关加密函数进行加密初始化,这里会导入256位的AES密钥,AES密钥的生成存在两种情况。1.如果连接不了前面的远程服务器,就使用硬编码的数据运算后生成AES密钥。2.如果成功连接远程服务器并接收到数据,就使用接收到的数据作为AES密钥

遍历文件。字母D到Z间遍历存在的本地磁盘和磁盘里的文件,加密指定后缀的文件,这里指定加密的文件类型达到901种。


文件属性设置。匹配到指定文件后,首先获取文件属性,如果是FILE_ATTRIBUTE_NORMAL属性则直接进行加密,如果不是则进行修改。病毒这里编程出现了一点问题,并没有直接把文件属性修改为FILE_ATTRIBUTE_NORMAL,这就导致了病毒只会加密一小部分的文件。

加密流程。首先判断文件大小是否小于20M,接着读取文件内容到内存空间中并删除原文件,使用前面生成的256位AES密钥对文件数据进行加密,然后重新生成文件。生成文件时首先写入固定的硬编码数据,再写入加密后的文件数据

生成警告信息。对本地磁盘遍历过程中,会在每个目录下生成3个内容相同的勒索信息文件:README.txt,README.html,README.bmp。


发送个人ID。所有加密操作完成后,会把计算机的UUID发送到远程服务器上,UUID用于解密时的个人ID

三.IOC
MD5
28065780B3C664F24328957EDE185B4B
域名
http://xijymvzq4zkyubfe.onion
http://xijymvzq4zkyubfe.onion.to
http://xijymvzq4zkyubfe.onion.city
C2
91.121.74.154:443
CrypMic分析报告的更多相关文章
- Alpha阶段事后分析报告
每个团队编写一个事后分析报告,对于团队在Alpha阶段的工作做一个总结. 请在2016年11月24日上课之前根据下述博客中的模板总结前一阶段的工作,发表在团队博客上,并在课上的事后分析会上进行汇报,并 ...
- 《奥威Power-BI智能分析报告制作方法 》精彩回顾
上次课我们简单介绍了奥威Power-BI的智能分析报告,并展示了报告与图表相结合的应用场景.图文分析报表的意义不只在于美观,更重要的是固定框架下的灵活性和追根究底的动态分析,有着很强的实用性.上节课 ...
- 12月07日《奥威Power-BI智能分析报告制作方法 》腾讯课堂开课啦
前几天跟我一个做报表的哥们聊天,听着他一茬一茬地诉苦:“每天做报表做到想吐,老板看报表时还是不给一个好脸色.”我也只能搬出那一套“过程大于结果”的内心疗程赠与他,没想到他反而怒了:“做 ...
- M1事后分析报告(Postmortem Report)
M1事后分析报告(Postmortem Report) 设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们项目组所开发的软件为一个基于Andro ...
- websphere OSGi应用环境下服务调用saaj包加载问题分析报告
websphere OSGi应用环境下服务调用saaj包加载问题分析报告 作者:bingjava 版权声明:本文为博主原创文章,转载请说明出处:http://www.cnblogs.com/bingj ...
- Google发布SSLv3漏洞简要分析报告
今天上午,Google发布了一份关于SSLv3漏洞的简要分析报告.根据Google的说法,该漏洞贯穿于所有的SSLv3版本中,利用该漏洞,黑客可以通过中间人攻击等类似的方式(只要劫持到的数据加密两端均 ...
- 推荐一个利用 python 生成 pptx 分析报告的工具包:reportgen
reportgen v0.1.8 更新介绍 这段时间,我对 reportgen 进行了大工程量的修改和更新.将之前在各个文章中出现的函数进行了封装,同时也对现有工具包的一些逻辑进行了调整. 1.rep ...
- python 生成 pptx 分析报告的工具包:reportgen
python机器学习-sklearn挖掘乳腺癌细胞( 博主亲自录制) 网易云观看地址 https://study.163.com/course/introduction.htm?courseId=10 ...
- 使用AES加密的勒索类软件分析报告
报告名称: 某勒索类软件分析报告 作者: 李东 报告更新日期: 样本发现日期: 样本类型: 样本文件大小/被感染文件变化长度: 样本文件MD5 校验值: da4ab5e31793 ...
随机推荐
- linux 安装配置 sublime 进行 python 开发
1. 下载sublime 地址:http://www.sublimetext.com/3 2. 解压出来,将sublime_text_3 文件夹的名字改为 sublime_text , 然后将 sub ...
- 【原创】大叔经验分享(48)oozie中通过shell执行impala
oozie中通过shell执行impala,脚本如下: $ cat test_impala.sh #!/bin/sh /usr/bin/kinit -kt /tmp/impala.keytab imp ...
- 解决python查询报%d format: a number is required, not str问题
文章链接:https://blog.csdn.net/u011878172/article/details/72599120 [问题描述] 1.在一条查询语句中,查询条件既包含了整形又包含了字符串型, ...
- 写一个python脚本监控在linux中的进程
在虚拟机中安装Linux中的CentOS7系统 https://baijiahao.baidu.com/s?id=1597320700700593557&wfr=spider&for= ...
- GraphQL ---02 GraphQL和C#结合的实战项目
本文章是介绍和记录如何创建GraphQL项目,以及如何使用GraphQL进行数据的相关操作.项目参照GraphQL .Net 的官方文档进行实践 一.项目结构: 为了更好的和原有的项目结合在一起,尽可 ...
- maven环境搭建及创建maven项目
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. 1.maven下载地址http://maven.apache.org/download.cgi ...
- [原创]基于Zynq PS与PL之间寄存器映射 Standalone & Linux 例程
基于Zynq PS与PL之间寄存器映射 Standalone & Linux 例程 待添加完善中
- SpringBoot的事件监听
事件监听的流程分为三步:1.自定义事件,一般是继承ApplicationEvent抽象类.2.定义事件监听器,一般是实现ApplicationListener接口.3.a.启动的时候,需要将监听器加入 ...
- RabbitMQ 声明队列时候的参数解释
参考链接:http://www.rabbitmq.com/releases/rabbitmq-dotnet-client/v3.6.6/rabbitmq-dotnet-client-3.6.6-cli ...
- [Linux][转载]Curl命令详解
命令:curl 在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,是一款很强大的http命令行工具,当处在无界面的服务器上的时候,利用curl下载上传文件是较为方便的事情. 语法 ...