社区应用 最新帖子 精华区 社区服务 会员列表 统计排行
  • 1411阅读
  • 2回复

[分享]恶意代码分析

楼层直达
z3960 
级别: 茶馆馆主
发帖
653104
飞翔币
170576
威望
214992
飞扬币
1730241
信誉值
8

Lab 11-3
分析恶意代码Lab11-03.exe和Lab11-03.dll。确保这两个文件在分析时位于同一个目录中。问题1. 使用基础的静态分析过程,你可以发现什么有趣的线索?我们先来看exe的导入表有些啥:放到IDA里面再看看,在这里我们能够看到C : WINDOwS1System32 linet_epar32.dll还有Lab11-03.dll这俩dll,cisvc.exe这个exe程序以及net start cisvc这条命令。dll接下来再看,我们先了解一下cisvc.exe是个啥东西:似乎不是什么不好的东西,而net start cisvc则是启动这个服务的命令,于是我们转移目标,看Lab11-03.dll:我们能发现,这里的GetForegroundWindow;GetiindowTextA;GetAsyncKeyState三个导入函数。初步推断是要做键盘记录。再看看导出函数。这个导出函数暂时也不知道是干什么的。我们再到IDA里面看看,这里好像创建了个kernel64x.dll的文件,其他还有创建文件,创建互斥体,创建线程什么的,我们就先不管。Lab11-03.exe包含字符串inet_epar32.dll和 net start cisvc,这意味着它可能启动CiSvc索引服务。包含字符串C:WINDOWSSystem32kernel64x.dll的Lab11-03.dl导入了API函数GetAsyncKeyState和 GetForegroundwindow,这让我们怀疑它是一个记录到文件kernel64x.dll的击键记录器。2. 当运行这个恶意代码时,发生了什么?我们用procmon来监测一下,过滤一下:我们看到以下这些行为可以看到,这里会创建inet_epar32.dll,还有Lab11-03.dll的一堆操作。我们打开创建的inet_epar32.dll看看)。进行MD5比对能够发现,inet_epar32.dll和Lab11-03.dll是相同的文件,所以我们可以知道恶意代码复制了lab11-03.dll到windows系统目录。监控到的还有cisvc.exe的创建,不过并没有其他的相关操作。恶意代码首先复制Lab11-03.dll到Windows系统目录的inet_ epar32.dll中, 并有针对cisvc.exe的操作3. Lab11-03.exe 如何安装Lab11-03.dll使其长期驻留?我们用IDA调试一下Lab11-03.exe在main函数中一开始是复制lab11-03.dll到system32系统目录中的inet_epar32.dll。之后创建一个字符c:windowssystem32cisvc.exe,将其作为参数传递给了sub_401070.之后是使用系统运行命令net start cisvc,来启动索引服务。接下来我们看看他的子函数从上图可知调用了createfile(创建文件),createfilemappingA(创建一个文件映射内核对象)和MapViewOfFile(将一个文件映射对象映射到当前应用程序的地址空间),将cisvc.exe映射到内存中。这些函数都有访问这个文件的权限。MapViewOfFile返回的内存映射视图的基地址(lpBaseAddrress)可以被读写我们接着往下看可以看到调用了UnmapViewOfFile(停止当前程序的一个内存映射),这样对这个文件做的任何修改都会被写入到硬盘。同时我们顺着绿色那条线看下来(上三图的下面那张),查看在调用该函数sub_401070之前的操作。能够发现其实是进行了写入操作。一开始文件的映射位置移入到EDI,用Var_28调整一些偏移量。rep movsd循环,用ecx(4E)计数来写入该数量的DWORD。之后byte_409030被移入ESI,复制byte_409030的数据到映射文件中。接下来F5跟进一下跟一下dword_409030这里一大段不知道是个啥东西,来c一下看看可以看到这里出现了一个跳转jmp loc_409134,跟过去看看发现这里出现了被感染的dll和这个exe的导出函数。所以我们可以猜测,shellcode加载了这个dll,并调用了它的导出函数。接下来IDA分析一下感染后的文件这里call了sub_1001AD5,我们跟过去看看这里call的这些个函数不知道是个啥,所以我们上OD里面调试一下在01001B0A用这个函数的位置下断点,运行提示出用的是loadlibrary函数,在数据窗口看一下这个位置可以知道其作用是将inet_epar32.dll载入内存同理接着看下一个函数,00101B1B处下断点,看到此时是调用GetProcAddress,其作用是获取导出函数的地址(在右下角可以看到导出函数)返回值在eax,接下来将eax赋给ebp-8,之后是call ebp-8,那么也就是说下一个call就是在调用这个导出函数。接着往下单步通过一个jmp后到达原始程序的入口点。所以,恶意代码通过入口点重定向从而使它永久性地安装Lab11-03.dll。它通过重定向入口点,来运行加载这个DLL的shellcode接下来使用ida分析本次的dll文件4. 这个恶意代码感染Windows系统的哪个文件?为加载inet epar32.dll,恶意代码感染了cisvc.exe,然后调用了inet_epar32.dll的导出函数zzz69806582。5. Lab11-03.dll做了什么?来看他的导出函数这里有个创建线程,其中有个startaddress参数,跟过去看看这里创建了个“MZ”互斥量(因为前面OpenMutexA那个地方没有互斥量,所以跟着绿线运行下来)接着往下看创建了个文件"C:WINDOWS System32kernel64x.dll"SetFilePointer:在一个文件中设置新的读取位置,dwMoveMethod值为2(开始点为文件的结尾位置)然后call了个sub_10001380,看看是什么call了个sub_10001030,看看这又call了个sub_10001000,过去看看这里看到了一开始静态分析的时候看到的GetForegroundWindow,GetiindowTextA,用来判断当前哪个程序正在输入和获取当前的标题。再看回sub_10001030,能发现下面用到了GetAsyncKeyState判断一个按键是被按下还是弹起。Lab11-03.dll 是一个轮询的记录器,这在它的导出函数zzz69806582中得到实现6. 这个恶意代码将收集的数据存放在何处?恶意代码存储击键记录和窗体输入记录,其中击键记录被存入到C:WindowsSystem32kernel64x.dll。


image.png (13.01 KB, 下载次数: 0)


image.png (216.27 KB, 下载次数: 0)


image.png (57.18 KB, 下载次数: 0)


image.png (67.82 KB, 下载次数: 0)


image.png (169.47 KB, 下载次数: 0)


image.png (42.31 KB, 下载次数: 0)


image.png (58.42 KB, 下载次数: 0)


image.png (142.16 KB, 下载次数: 0)


image.png (100.95 KB, 下载次数: 0)


image.png (393.08 KB, 下载次数: 0)


image.png (94.88 KB, 下载次数: 0)

[ 此帖被任逍遥在2022-06-17 05:27重新编辑 ]
关键词: bot 系统 下载 视频
我不喜欢说话却每天说最多的话,我不喜欢笑却总笑个不停,身边的每个人都说我的生活好快乐,于是我也就认为自己真的快乐。可是为什么我会在一大群朋友中突然地就沉默,为什么在人群中看到个相似的背影就难过,看见秋天树木疯狂地掉叶子我就忘记了说话,看见天色渐晚路上暖黄色的灯火就忘记了自己原来的方向。
级别: 超级版主
发帖
720659
飞翔币
180474
威望
223948
飞扬币
1833002
信誉值
0

只看该作者 1 发表于: 06-17
来看一下
级别: 超级版主
发帖
720659
飞翔币
180474
威望
223948
飞扬币
1833002
信誉值
0

只看该作者 2 发表于: 06-17
不错,了解了