恶意样本分析
文章平均质量分 63
pureman_mega
这个作者很懒,什么都没留下…
展开
-
locked勒索病毒流程记录
大部分功能都集中在模块3里面,其采用c#编写;内部有通过base64编码的形式携带易被利用的驱动和用于加密的模块。其中3.1和3.2可以在github上找到对应的仓库;关键点:socket+VirtualAlloc+CreateThread。模块 3,1,nday提权 2,byovd攻击进行杀软对抗 3,调用加密模块加密文件。模块 2,带有混淆的hta脚本通过mshta.exe执行。主要介绍其各个模块之间运行流程,不做细节上分析。3.1 相关git链接。3.2 相关git链接。原创 2024-03-26 13:38:54 · 226 阅读 · 0 评论 -
终章-天花板
距离我最开始接触Equation Group的样本已经有3,4年了吧,分析这些样本在很大程度上促进了我对windows系统的了解;虽然我还是无法完成类似的作品,但是现在至少可以‘欣赏’一下。原创 2022-08-04 17:35:10 · 309 阅读 · 0 评论 -
windows驱动保活的思路/apc demo
windows 驱动保活原创 2022-07-11 10:18:20 · 332 阅读 · 0 评论 -
cerber勒索软件分析
前置关于对称/非对称加密:对称加密和非对称加密的区别 - 姚春辉 - 博客园 (cnblogs.com)常见的对称加密算法有:DES、3DES、Blowfish、IDEA、RC4、RC5、RC6 和 AES常见的非对称加密算法有: RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)...原创 2022-01-18 09:35:08 · 793 阅读 · 0 评论 -
基于ndis protocol driver 后门 分析
样本文件MD5: 42f43edc9937e4aa5f985773f5ea9daa这个样本有点老了,之前分析了一下他的命令执行部分,数据流程一直没有弄明白,现在记录一下。这个样本一上来会通过注册一个临时的 protocol driver (ndis 5.0, 差别多在xp 时代) ;注册成功后会返回一个ndis_handle 指针,然后通过这个指针加上硬编码的偏移找到 tcp/ip protocol driver 的 ndis_handle ,再挂钩(hook) 该结构中的receive 等回调函数;.原创 2021-09-16 22:36:56 · 4458 阅读 · 0 评论 -
Eternalblue-2.2.0 shellcode 分析
shellcode 部分支持32和64位系统,在执行开始会进行判断并分发,如下图:3264(这个细节点是看别人博客写的)同样的机器码,在32和64位处理器中解析是不同的指令,以此来区分32和64位系统。可以通过ida分别以32和64位模式打开shellcode来查看。64位shellcode正文部分:000000005BF sub_5BF proc near ; CODE XREF原创 2020-12-09 17:02:59 · 670 阅读 · 0 评论 -
发现了一个类似白加黑的应用
某独立急救箱, 链接:http://dlied6.qq.com/invc/xfspeed/qqpcmgr/other/FirstAidBox_2_2_0.zip。解压后,文件夹中应该是个加载器,会将同目录下文件夹中的exe用来创建进程。原创 2020-11-26 17:03:19 · 275 阅读 · 0 评论 -
fanny equation 2---ms09-025漏洞利用实现
(代码逻辑是从fanny.dll中扣出来的,可以在内核执行代码,没有实现完整的利用链,下面的代码只实现到在r0输出信息,没有修改NtShutdownSystem及后续流程)。代码环境:vc 6.0, 32位系统环境:vista sp2用法:直接运行编译好的exe结果图:#include<stdio.h>#include<windows.h>#define WindowName L"h"#define ClassName L"STATIC"#de..原创 2020-08-20 16:59:32 · 359 阅读 · 0 评论 -
fanny equation 1
(在搜索'fanny'之前,我一直把它当作'funny',看到baid结果后又学到新知识。)相关背景:https://securelist.com/a-fanny-equation-i-am-your-father-stuxnet/68787/环境:vista sp2 32工具:windbg,vc6.0fanny.dll包含有漏洞的利用过程,下面简单记录如何让它跑起来并在相应的系统环境下触发漏洞修改NtShutdownSystem的代码作为下一步的跳板。首先需要对fanny.dll做一点处.原创 2020-08-18 17:25:07 · 300 阅读 · 0 评论 -
简单的键盘按键记录(无码)/虚拟地址转物理地址/生成随机字符串/计算字符串哈希
最近看到 一个 样本 ,里面有键盘 按键记录的功能 ,而且 实现也比较 简单,运行 记录 的效果还 不错 。主要思路如下 : //假代码 int i=0; for(i=0;i<0x100;i++) { GetKeyState(i); //参考:https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getkeystate //如果有按键 记录,就去获取一些相关信..原创 2020-06-24 08:48:23 · 3314 阅读 · 0 评论 -
Backdoor Longhorn部分重写
在网上找了个样本,看了一下好像是个服务程序,而且感觉原作者思路非常清晰,自己也试着逆向写了一点,没有写完,没有调试./*#define SERVICE_STOPPED 0x00000001#define SERVICE_START_PENDING 0x00000002#define SERVICE_STOP...原创 2019-01-16 19:53:06 · 281 阅读 · 0 评论 -
手动完成FindResource()等函数的工作
(1024节日快乐) 在样本中多次从资源中获取原始数据,就是通过调用FindResource。FindResource(HMODULE hModule,LPCSTR lpName,LPCSTR lpType)函数功能是找到文件中的指定资源。三个参数分别表示:hModule指向目标模块,lpName是资源的名称,lpType是类型。它第2个实参有6个,分别是4,5,6,7,14h,15h;第3个...原创 2018-10-24 19:53:26 · 965 阅读 · 0 评论 -
Equation Group 模块lsasrv32.dll中数据获取(补充一些行为分析)
这次样本中还是像之前的风格数据在使用前需要解密,该样本中要处理的数据是连续存起来的,使用时就一次都解密。void compute_seed(int *a,int *b,int *c){ int temp=0,v=0; v=temp=(8*(*a))|((*a)>>13); *a^=*b; *b=(*c)^(temp&(0xfff8));...原创 2018-10-21 22:43:53 · 338 阅读 · 0 评论 -
RKdemo12.sys分析
这次和文件一起的还有一README文本文件,说这是一个驻留驱动,它会创建一个不停止运行的系统线程。用IDA打开看看,下面是DriverEntry的反汇编代码: sub esp, 18h.text:00010B73 push esi.text:00010B74原创 2017-12-14 23:10:24 · 289 阅读 · 0 评论 -
TrojanWin32.Duqu.Stuxnet 分析
直接看代码,在DriverEntry前面部分有关于InitSafeBootMode和KdDebuggerEnabled这两个变量的检测没有贴出来,可能还有字符串的处理(没太看懂)。下面是来自DriverEntry的一部分:.text:00010632 test eax, eax.text:00010634 jnz sho原创 2017-12-16 21:00:00 · 309 阅读 · 0 评论 -
病毒常用的方法之同流合污
一些感染型的病毒基本上就是对文件的特性进行了修改(内容,属性等),如果是破坏型的,普通电脑用户也可以辨别出来(烧香的熊猫);还有目的是隐蔽的,一般用户可能就不会那么容易发现从而中招。快捷键病毒将文件夹进行伪造做成一个快捷键,文件夹大小变成1K或2K,图标不变。双击后显示正常的内容,但是恶意程序已经执行了。下面就介绍一个不是那么恶意的病毒它感染文件的关键反汇编代码: push原创 2018-03-15 16:07:58 · 364 阅读 · 0 评论 -
病毒常用方法之隐身术
什么是隐身术呢?哈利波特在实验室里穿上隐身衣,教授就看不见他们了;孙悟空72变,隐个身那也是小菜一碟。总之,隐身术就是在一定环境下让别人看不到自己。做坏事肯定不想被抓住,所以就找一些方法来隐藏自己的痕迹。目前我知道的有2种:1,通过设置文件的属性来实现文件隐藏,这种方法操作简单,效果可以达到,但留下了一些马脚(当通过正常操作打开文件夹时,在窗体的最下端有一块位置会显示-----有多少个对象,这时如果原创 2018-03-11 21:06:00 · 643 阅读 · 0 评论 -
病毒常用方法之回到起点---PE文件
一般的可执行恶意样本的INT(导入名称表)在一定程度上就暴露了自己的行为,所以又来保护自己了。下面是一个样本中的实际应用,从PE文件结构入手。为了可以调用相关的API (由kernel32.dll ,ntdll.dll等导出,它先找到目标dll在内存中加载的地址(这些系统dll已经有系统加载到内存中),然后就是根据PE文件结构一顿操作,主要是通过导出名称字符生成一个DWORD数去比对,在找到Func原创 2018-03-12 10:30:23 · 424 阅读 · 0 评论 -
病毒常用方法之移花接木---小小hook
之前在一些地方看过不少帖子,介绍或总结hook得各种使用,从中收获不少。其中有一个总结,我觉得是很准确的:hook就是改变原程序的执行流程。只不过在使用的场合不同,每个人实现的效果可能存在差异,但实现的思路大同小异。 下面介绍一个dll模块,它通过hook通信的api来实现盗号,看下主要操作的反汇编代码: int _stdcall GetFuncAddr(HMODULE hModule,LPCS原创 2018-03-13 13:07:31 · 369 阅读 · 0 评论 -
Discovering Dynamically Loaded API in Visual Basic Binaries(转载 Cisco 的博客,部分))
Performing analysis on a Visual Basic (VB) script, or when Visual Basic is paired with the .NET Framework, becomes an exercise of source code analysis. Unfortunately when Visual Basic is compiled to a转载 2018-03-13 22:51:00 · 191 阅读 · 0 评论 -
Equation Group的组件DoubleFantasy模块分析(上)数据收集
在分析的过程中可以发现,这个组件和前面分析的一个组件在大的框架下表现是一样的:它们都有一个贯穿整个过程的解密函数,同时使用资源来装载‘材料’–数据和程序。 寻找资源的代码FindResourceA(hModule,lpName,lpType);//其中lpName的取值可以为:1,2,4;lpName去1或2时,找到相应的数据;取4时释放一个dll文件。 //lpName="BINRES",-原创 2018-04-07 13:51:50 · 986 阅读 · 0 评论 -
病毒常用方法之注册表操作
注册表的增删查改操作基本上是恶意代码的常规操作,但是对注册表的操作通常会留下痕迹,导致被发现,最后被清理掉 .对于驱动模块更是如此,驱动程序的入口函数的第二个参数就是注册表路径,当驱动加载后该值会被写到相应的位置,这是为了隐藏自己,要将与之相关的表项都删掉.下面是一段反汇编代码: int __stdcall DeleteKey(POBJECT_ATTRIBUTES ObjectAttributes)原创 2018-04-03 11:26:03 · 1206 阅读 · 0 评论 -
Equation样本中nls_933w.dll模块简单分析(上)
这是一个dll文件,它的任务是对导出的5个函数提供支持。这些导出函数被调用程序使用完成相应的‘使命’,主要在两个方面,1注册表,2释放驱动文件并加载,与之通信。 1,突破口 将文件用Ida打开后,习惯性的去查看导入表来对可能发生的行为作一个大概的猜测。大致有注册表,权限(privilege),文件,资源,通信(与驱动程序,DeviceIoControl)。看来看去都是一个样,用过这些api的大概原创 2018-04-05 14:23:10 · 717 阅读 · 5 评论 -
样本Exforel的还原过程
它的解码过程比较清晰:将存放在数据段中的文件数据进行解码,然后构建PE。(需要样本可以留言)#include <stdio.h>#include <Windows.h>void Decode(char * data, char * seed);//解码函数int main(){ int i = 0; LONG DistanceToMove = 0xc00+0x8;//文件偏移,原创 2018-05-02 18:55:07 · 291 阅读 · 0 评论 -
wmighost.dll分析
这个文件是DLL文件,但是用IDA打开文件后停在了WinMain处,而不是DllMain,并且整个文件里也没有这个函数。既然是DLL文件就先看看导出函数吧。下面是该函数后面一部分: loc_401D2F: ; CODE XREF: start+F7j.text:00401D2F mo原创 2017-12-14 15:00:12 · 251 阅读 · 1 评论