恶意代码分析实战—实验11-3

实验环境:

实验设备环境:windows xp
实验工具:UltraCompare,IDAPro,Ollydbg,WinMD5,strings,processmonitor

实验过程

1、使用基础的静态分析过程,那你可以发现什么有趣的线索?
我们可以使用strings查看目标程序:
strings程序
可以观察到其调用了lab11-03.dll程序,并且存在系统根目录字符串,说明程序针对根目录做出了一些操作。
net start cisvcnet start在windows系统中用来启动一个服务,cisvc是索引服务检测的程序,用来检测内存的使用状况。
下面使用dependency walker查看一下导入dll(lab11-03.dll):
在这里插入图片描述
可以看到其存在一个导出函数。
user32.dll
可以看到其调用了GetAsyncKeyState以及GetForegroundWindow这两个函数的目的是记录被敲打的键盘。
2、当运行恶意代码时发生了什么?
现在利用process monitor监控进程,在process monitor中设定过滤条件如下:
在这里插入图片描述
运行lab11-03.exe程序:
在这里插入图片描述
其在系统根目录下面创建了一个dll为inet_epar32.dll
下面采用winmd5这个软件查看哈希,确定其是否和lab11-03.dll是同一个文件:
lab11-03.dll的哈希
以上为lab11-03.dll的hash检测。
net_epar32.dll的哈希
以上为net_epar32.dll的哈希,经过对比发现两者的hash是相同的,也就是说是同一个文件,也就是说恶意程序是将lab11-03.dll复制到了系统根目录下面。
文件调用
调用了cisvc.exe程序。
3、Lab11-03.exe如何安装Lab11-03.dll使其长期驻留?这个恶意代码感染了哪些文件?
使用IDA打开exe文件:
IDA
可以看到程序首先是将Lab11-03.dll文件利用CopyFile函数将其复制到系统根目录下面,之后创建了一个cisvc.exe字符串,并将其作为参数传入了sub_401070函数中,最后利用net start启动了这个服务,进入sub_401070函数:
首先看一下其交叉引用图:
交叉引用图
其中MapViewOfFile会返回内存映射的基地址:
IDA
在IDA汇编界面中,内存映射的基地址被保存在lpBaseAddress中。
在这里插入图片描述
在程序的最后还会如上图所示调用UnmapViewOfFile,调用这个函数以后,对cisvc.exe文件的任何修改都会被写入到内存中。
流程图
如上图所示,此模块会先将lpBaseAddress的值暂存在edi中,并且利用var_28调整偏移量,在0040127C处点击F5之后来到反汇编代码:
反汇编代码
可以看到光标其停留在了memcpy上面。
向下分析,esi中保存的是 byte_409030的值,点击进入查看:
代码查看
发现其存在一些看不懂的数字信息,现在可以将光标放置在内存地址处,按C强制转化为代码形式:
转化为代码形式
可以看到其转换为了代码形式,在程序的最后会跳转到loc_409134上面,点击提转:
跳转过程
可以看到此过程显示了一个dll文件以及一个导入函数,说明此过程有可能就是调用了inet_epar32.dll中的一个导入函数。
4、lab11-03.dll程序做了什么?恶意代码收集的数据存放在哪里?
使用IDA载入dll文件:
导出函数
主要分析导出函数,导出函数会创建一个线程,重点在于开始地址即StartAddress,我们点击进入:
进入
我们会发现其会利用openmutex查看是否存在mz这个互斥量,如果不存在那么就创建这个互斥量。
在这里插入图片描述
接下来会在系统根目录下面创建一个kernel64x.dll文件:
在这里插入图片描述
其调用了SetFilePointer函数用于设置文件指针,之后调用了一个sub_10001380未知函数,点击进入:
在这里插入图片描述
整体是存在一个循环函数的,在图中的模块中存在一个未知函数 sub_10001030,点击进入:
在这里插入图片描述
再次进入:
在这里插入图片描述
GetForegroundWindow用于获得当前聚焦的窗口,方便告知键盘记录程序当前位于哪个窗口。GetWindowTextA用于获取当前窗口的标题。
返回上一层:
在这里插入图片描述
向下分析GetAsyncKeyState函数会识别此按键是被按下还是被抬起的,结合循环总结此函数的目的就是轮询查看键盘是否被敲击。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
恶意代码分析实战 作者:Michael Sikorski(迈克尔.斯科尔斯基), Andrew Honig(安德鲁.哈尼克)出版社:电子工业出版社出版时间:2014年04月 不管你是否有恶意代码分析的背景和经验,《恶意代码分析实战》极其丰富的内容都将使你获益匪浅。   《恶意代码分析实战》教你如何、以及何时使用恶意代码分析技术,深入掌握恶意代码分析工具的核心功能,从而达到准确诊断、及时突破、快速响应的效果。   《恶意代码分析实战》一经问世,便赢来业内好评如潮,被业内人士一致推荐为入门、晋级的优秀读本。 详尽,经典——每一位认真学习过《恶意代码分析实战》的读者,必将在恶意代码分析的专业技能上获得巨大的提升。 《恶意代码分析实战》是业内公认的迄今为止优秀的一本恶意代码分析指南,《恶意代码分析实战》也是每一位恶意代码分析师都必须作为指导手册珍藏的案头必备。 《恶意代码分析实战》既是一本教材,也是一本动手实践的指南。不仅教会你如何分析恶意代码(技术指导),而且配了大量的实验练习、案例、答案以及详细的分析过程,同时还包含很多用作案例的恶意代码样本,提供了丰富、安全的学习环境。 针对初学者:本书的技术内容、实验作业可以帮你渐入佳境; 针对中级读者:本书大量的分析实践会直接带你进入更高的级别,臻入化境。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值