CrypMic分析报告2023-02-23 13:34:43一.概述 病毒伪装为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上一篇:android DDMS 连接真机(己ROOT),用file explore看不到data/data文件夹的解决办法下一篇:洛谷CON1041 NOIP模拟赛一试