勒索病毒分析-2024wdb-re2
检查相关信息
可以看到病毒存在VMProtect虚拟壳
简单脱壳
首先我在x64debug中运行一次,发现没有中断退出,证明大概率没有反调试,但是有crc检测,所以尽量不下int3断点(脱壳时)。
一:找OEP
法1:直接在.text段下内存执行断点
别问,问就是这个我调试了很多次。
然后直接运行到断点处,到oep
法2:在ida中猜出oep
在上面我们看到,这个程序是用vs写的,vs默认开了堆栈安全检查,我们可以利用这点找oep,通过交叉引用,我们可以找到入口OEP,我看到的大多数wp都这样,但是一笔带过。(让我一脸懵逼,写了跟没写一样)
具体过程
安全检查函数
SEH函数
添加seh函数的函数
调用添加seh函数的函数
到达OEP
所以你又明白了vs中安全检查的调用过程和原理
sub_4020a9(__security_init_cookie)中用___security_cookie初始化相关值(如果溢出会改变相关值),然后通过跳到__tmainCRTStartup函数,正常执行程序,如果堆栈溢出,就抛出seh异常,这就是为什么数组等越界vs会提示异常
咳咳,跑题了。这样你就找到OEP了,动态运行到这就脱壳了。
法3:堆栈平衡
刚进入时可以看到pushad,先F8走到下面。
在栈顶下一个硬件访问断点
然后不断F9运行,然后会看到提示
之后再F9运行6次,在栈中发现有一个神奇的地址(为什么是6次,因为我调试时运行7次后从vmp0到text段过了)
其中跟随00B81D32后神奇的事情发生了,直接到oep(其实壳运行完后本来就要跳oep的,这个后面也要跳)
最后,我看网上说的在VirtualProtect下断点,我尝试过只断了两次(修改环境,回复环境),这两次的修改对象是rdata区段的,应该是动态解密,但是后面不知道怎么搞。
有人会的在评论区教教我
二:修复iat
如果想分析的时候能够显示系统api,逆向分析更爽。
如果简单修复不考虑运行
由于动态加载地址,这个是后面截图的,所以地址有点出入
这样修复后能够让ida的api显示出来,下面分析足够了,但是不能运行。因为刚刚删的两个api地址是有效的
手动寻找api
刚刚两个api是被壳虚拟化了,想要还原就要知道他的功能,你也不想硬刚虚拟化吧。
这张图是下面的,有两个函数(B83048,B83048+1)被虚拟化了,我们可以通过上下文推出api是什么。
推理过程
上面图可以看到,这两个函数的返回值被SizeofResource和LockResource调用,并且传入参数也确定了,接下来找文档。
SizeofResource: https://learn.microsoft.com/zh-cn/windows/win32/api/libloaderapi/nf-libloaderapi-sizeofresource
LockResource: https://learn.microsoft.com/zh-cn/windows/win32/api/libloaderapi/nf-libloaderapi-lockresource
根据文档可以推出:
B83048其实是FindResourceA
B83048+1其实是 LoadResource
动态调试
我们发现壳程序动态还原回iat表
继续运行发现,这两个地址发生了变化
这两个hook后的地址要后面动态填进去或者将程序的动态基址关闭pass
重新修复
将这两个地址替换后重新修复,经过比对发现第一个函数传入的参数对不上
很遗憾,运行不了,想让他运行,我大体是病了,有人会的分享在评论区
这就是典型的无效VMProtect保护,这两个函数对分析没有影响
三:静态分析
IDA打开后我们看到有调用了2个主要函数
我们逐个分析
main函数中的sub_B81620
分析过程
点进去可以看到一堆动态解密的字符串,简单分析可以知道,这是动态获取WindowsAPI函数到存放到buffer中
接下来是获取C:\WINDOWS\SysWOW64\
目录并拼接成C:\WINDOWS\SysWOW64\svchost.exe
之后是简单的进程伪装+远程线程注入执行代码
主要功能
sub_B81620先xor解密字符串,将动态申请api存方到buf中,挂起svchost进程远程执行sub_B814e0中的代码
那么远程执行的代码有什么呢->分析sub_B814e0函数
分析思路
主要功能
对文件中的字符串异或加密后写回文件中
main函数中的startaddr函数
分析思路
其中有两个函数(B83048,B83048+1)被虚拟化了,下面是我猜的功能但不影响结果
我们需要知道lpbuffer是什么东西,还有sub_B81100干了什么
先分析lpbuffer
我们通过x64debug动态分析
在lockresource中下断点方便获取返回的lpbuffer地址(eax)
转到返回后的lpbuffer地址(eax)中,运行前记录下刚刚的大小(esi中)是B800,然后运行到解密完,可以看到PE文件的标志,说明资源解密后是一个新的pe文件
将内存中的pe文件dump出来,保存到为a.exe
文件
接下来先分析刚刚没看完的sub_B81100函数
这个函数主要是进程镂空的技术思路,可以学习下
分析思路
这里有个分支它会先检查CPU标志考虑是否重定位
(为什么判断cpu架构决定重定位,我也不知道,我觉得直接修复也行)
下面是遍历重定位表重定位
修改跳转地址
总结思路
这里是一个免杀的进程镂空,它先挂起svchost进程,再对svchost进程中的代码进行替换,达到隐藏进程的目的。
分析dump下来的a.exe
PE信息
ida分析
main函数只有一个重要函数,
分析sub_401000
分析sub_401230
一般勒索软件不会留着源文件
进入加密函数sub_401360分析
用AES加密能够很快的加密,但是我感觉这个有跟没有一样,典型的无效加密
整理程序运行流程
程序运行->远程线程注入代码->对flag.txt进行xor加密->创建进程镂空(免杀)->运行病毒可执行文件->对flag.txt进行AES加密
解密
import Cryptodome.Cipher.AES as AES
key = [0x3B,0x7E,0x15
,0x16,0x38,0xAE,0xD2,0xA6,0xBB,0xF7,0x15,0x88,0x19,0xCF,0x4F,0x3C]
txt = open("./flag.txt.cry", "rb").read()
flag = AES.new(bytes(key), AES.MODE_ECB).decrypt(txt)
print(''.join(chr(i ^ 0x9) for i in flag))
总结
加密过程很简单,这道题在于理解进程镂空,动态加载shellcode, vmprotect脱壳等
勒索病毒分析-2024wdb-re2的更多相关文章
- "WannaCry"勒索病毒用户处置指南
"WannaCry"勒索病毒用户处置指南 原文: http://mp.weixin.qq.com/s/ExsribKum9-AN1ToT10Zog 卡巴斯基,下载官网:h ...
- 技术分析 | 新型勒索病毒Petya如何对你的文件进行加密
6月27日晚间,一波大规模勒索蠕虫病毒攻击重新席卷全球. 媒体报道,欧洲.俄罗斯等多国政府.银行.电力系统.通讯系统.企业以及机场都不同程度的受到了影响. 阿里云安全团队第一时间拿到病毒样本,并进行了 ...
- [转帖]"微信支付"勒索病毒制造者被锁定 传播、危害和疫情终极解密 --- 可以学习下一年火绒团队的分析原理的精神.
"微信支付"勒索病毒制造者被锁定 传播.危害和疫情终极解密 https://www.cnbeta.com/articles/tech/794851.htm 12月1日,首个要求&q ...
- 从Wannacry到WannaRen:螣龙安科带你深度分析勒索病毒原理
从Wannacry到WannaRen:螣龙安科2020年4月7日,360CERT监测发现网络上出现一款新型勒索病毒wannaRen,该勒索病毒会加密windows系统中几乎所有的文件,并且以.Wann ...
- 会"说话"的勒索病毒Cerber
最近有个案子与勒索病毒有关,证物是个台式机,运行Windows 7 64bit操作系统,委托方是某高科技公司,希望能调查出事发的关键时间点.感染来源及途径.恶意程序文件名等相关信息. 在对证物计算机进 ...
- Shade勒索病毒 中敲诈病毒解密 如 issbakev9_Data.MDF.id-A1E.f_tactics@aol.com.xtbl 解决方法
[客户名称]:福建福州市某烘焙连锁企业 [软件名称]:思迅烘焙之星V9总部 [数据库版本]:MS SQL server 2000 [数据库大小]:4.94GB [问题描述]:由于客户服务器安全层薄弱 ...
- Petya勒索病毒疫苗出现,分分钟让电脑对病毒免疫
继wannacry之后,Petya勒索软件攻击再次席卷全球,对欧洲.俄罗斯等多国政府.银行.电力系统.通讯系统.企业以及机场造成了不同程度的影响. 研究发现,Petya 会锁定磁盘的 MFT 和 MB ...
- Android端恶意锁屏勒索应用分析
一.前言 5月12日,一场全球性互联网灾难悄然而至,一款名为WannaCRY的PC端恶意勒索软件利用NSA泄漏的危险漏洞“永恒之蓝”,给100多个国家和地区10万台电脑造成了巨大的损失.到2017年为 ...
- Window应急响应(三):勒索病毒
0x00 前言 勒索病毒,是一种新型电脑病毒,主要以邮件.程序木马.网页挂马的形式进行传播.该病毒性质恶劣.危害极大,一旦感染将给用户带来无法估量的损失.这种病毒利用各种加密算法对文件进行加密,被 ...
- 安全紧急预警-防范新型 Sigrun 勒索病毒
近日,互联网上出现一种 Sigrun 勒索病毒,其通过垃 圾邮件.网站捆绑软件等方式进行传播.该病毒一旦植入到 用户的服务器,将把系统文件加密为.sigrun 的文件,进而 向受害者勒索虚拟货币.该新 ...
随机推荐
- 硬件设计:POE--POE受电设备(PD)电路工作原理
参考资料:解决POE PD设计挑战的有效的解决方案 POE电源模块的介绍特性和芯片的详细资料概述 如何应对PoE受电设备设计挑战 以太网供电中受电设备的芯片设计与研究 以太网供电检测和分级接口电路设计 ...
- Q:浏览器不能上网,但是可以ping通外网ip,dns配置也没问题(TCP/IP 无法建立传出连接)
问题症状 每隔一段时间,浏览器不能访问外网,重启电脑又正常,重置网卡无效 可以ping通外网ip地址,可以ping通外网域名 ping不通外网端口端口 查看日志 每次出现不能上网情况时都会有至少两条T ...
- 用豆包+Kimi,一分钟生成想要的PPT!
大家好!在快节奏的现代社会,时间就是金钱.对于经常需要制作PPT的朋友们来说,如何快速.高效地完成演示文稿的制作一直是个头疼的问题.今天,我要给大家介绍如何利用AI工具:豆包+kimi,让你在一分钟内 ...
- vivo HTTPDNS 端到端体验优化实践
作者:来自 vivo 互联网运维团队- Zhang Qianqian 在信息时代,用户的手机应用访问量日益增多,DNS 解析作为连接互联网的关键环节,也被提出了更高要求.这一背景下,HTTPDNS 域 ...
- [HDU4625] JZPTREE+[国家集训队] Crash 的文明世界 题解
老师发福利,放了两道一毛一样的题. 考虑无视战术,直接化简: \[\sum_{v=1}^ndis(u,v)^k=\sum_{v=1}^n\sum_{i=0}^k\begin{Bmatrix}k\\i\ ...
- spring官宣接入deepseek,真的太香了~
写在前面 经常逛Spring官网(https://docs.spring.io/spring-ai/reference/api/chat/deepseek-chat.html)的小伙伴会发现, Spr ...
- VMware16虚拟机安装激活教程
1.开始安装前需要准备好的软件 VMware-workstation-full-16--虚拟机软件(必要) 获取方式: 官方下载地址:https://www.vmware.com/cn/product ...
- win11 输入法自定义短语输出日期时间变量
自定义短语中输入%yyyy%-%MM%-%dd% %HH%:%mm%:%ss%
- 基于Qt的在QGraphicsView中绘制带有可动拐点的连线的一种方法
摘要:本文详细介绍了基于Qt框架在`QGraphicsView`中实现带有可动拐点连线的绘制方法.通过自定义`CustomItem`和`CustomPath`类,结合`QGraphicsIte ...
- PHP中&&与and、||与or的区别
https://blog.csdn.net/asty9000/article/details/80652064 在PHP中,&&与and都表示逻辑与,||与or都表示逻辑或,并且它们都 ...