zoukankan      html  css  js  c++  java
  • WannaRen病毒逆向分析

    写在前面:

    这个病毒作者已经公开了私钥,解密工具也制作出来了,我就当是学习逆向对整个病毒进行分析一下。

    虚拟机环境:win10x64    网络状态:飞行模式(因为不知道会不会内网感染)

    病毒样本放在百度网盘了,在后面有下载链接。

    勒索复现:

    下载之后有三个文件,一开始我以为运行exe就会完蛋,但是想的太简单了。

    更具火绒发的报告,程序传输途径可以是某西下载园,所以exe需要放在C:ProgramData目录下,然后还是不行,调用的的dll也要放到C:ProgramData下,因为调用的是硬编码,应该是编程的时候放在项目文件下调用的,然后运行还是没啥动静,那个you文件是虚拟保护过的,没啥变化,最后根据收集到的信息,才知道you文件需要放到C:UsersPublic,下才可以。

    第一次运行exe会在C:UsersPublic生成一个fm文件:

    里面记录了第一次运行的时间:

    然后第二次运行,病毒就开始工作了,表现就是虚拟机的文件全部被加密了,包括文档和压缩包,后缀多一个.WannaRen:

    用二进制编辑器打开,文件头尾都有特殊关键字:

    桌面有勒索信和图:

    打开欣赏一下:

    (英文很有百度翻译的味道)

    到这里整个复现就完成了,还是折腾了一点时间。

    逆向分析

    首先康康这个exe,很干净:

    就一个导入结构,调用lib文件。

    动态调试一下:

    RVA1272检查路径是否在指定路径下:

    然后调用这个DLL之后,就退出了程序,他用的是硬编码,编程的时候dll应该是和程序放在同一个目录下:

    然后就退出程序了,连createfile都没调用,看来fm文件是在这个dll里面创建。

    od载入这个病毒wwlib.dll:

    如果第一次动态调试的话,应该停在下面位置:

    单步几下看看,程序被vmp过,而且没找到中心调度(可能有我没看到),也没找到跳转表,估计是保护全开了,程序大小也着实很大:

    run跟踪也没什么看的,可读性很低:

    另辟其他路,之前运行的时候有创建fm这个文件,那就对CreateFileA,CreatFileW, readfile都下断点,调用这些win api是需要出虚拟机的:

    然后运行,有点收获,create文件,读写权限:

    之后又是读取此文件,不知道干什么。

    继续f9肯定会在readfile断下:

    数据窗口跟随buffer,运行到ret,说明之前的create函数就是写入时间的:

    再f9 程序退出。

    在之前提到,第一次运行是在public文件下创建fm文件,然后第二次才是加密,就是对这块逆向分析得到的结果,ctrl  f2一下,程序停在莫名其妙的地方:

    不用管他,应该是哪个api函数的断点,两次f9到入口处。

    然后第一个问题出现了,程序调用依旧读取两次fm就退出了,这块浪费了时间,不知道什么操作,在第一次createfile   这个fm文件的时候,跑到文件夹删除这个fm文件,就

    可以了。

    此时删除:

    然后开始读取这个you文件:

    这个就是加密文件,读取之后,开始read:

    然后buffer跟随,运行到ret,可以看到这个buffer就是you这个加密文件的数据:

    再f9跑飞,重新来一遍对这个位置下硬件访问断点:

    f9到一个位置:

    简单分析一下这块代码,992位置读取加密的数据,下面开始调用解密函数,jmp这个不要去跟踪,因为也是一个解密操作,但是没有用函数封装,跟着容易跑没了。

    解密之后保存到ebx指定的位置,数据窗口中跟到:

    对9C0位置下断点,f9运行到,可以取消之前下的硬件断点,不然手抖一下就要重来,下面这张截图的地址和上面不一样就是因为手抖:

    MZ,,DOS stub 安逸,dum出来:

    程序还不能直接改成exe,因偏移地址在028处,用二进制编辑器删掉前面的东西:

    保存好,修改成exe后缀,就出现了一个真正病毒程序:

    这是一个易语言写的程序:

    现在没什么保护措施了,静态分析一下,框架不适合start开始分析,从加密位置找找:

    Big_Number应该是RSA的p,q和e,xfer没看到调用的函数,crc32_table可以找到加密函数。

    对这块分析,就是常规看exe程序,我放到我课程报告里面了。

    对这个病毒的解密工具各家也都有了:http://bbs.huorong.cn/thread-68373-1-1.html

    链接:https://pan.baidu.com/s/1xW88VoHPdw3nQutzG6utag 

    提取码:vzu3 

    复制这段内容后打开百度网盘手机App,操作更方便哦

  • 相关阅读:
    tailf、tail -f、tail -F三者区别(转)
    Jackson是线程安全的吗
    SecureCRT同时向多个终端发送命令
    SecureCRT设置和Xshell一样的快速命令集(使用快捷键输入命令和密码)
    SecureCRT配色方案
    Java中判断字符串是否为数字的方法
    MySQL错误:Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL easonjim
    SecureCRT导出服务器列表或配置文件
    java.lang.NoSuchMethodException: tk.mybatis.mapper.provider.SpecialProvider.<init>()
    Badge
  • 原文地址:https://www.cnblogs.com/jentleTao/p/12826492.html
Copyright © 2011-2022 走看看