恶意代码分析_Lab03-02_动态分析

Lab03-02分析

问题及分析:

问题1

你怎样才能让这个恶意代码自行安装?

先使用静态分析技术PEview找到这么五个导出函数
在这里插入图片描述

然后再用Dependency Walker查看,里面有

Advapi32.dll 提供核心Windows组件访问,如服务管理器和注册表
Kernel32.dll 提供系统核心功能,访问和操作内存、文件、硬件等
Wininet.dll 实现应用层网络函数,如FTP、HTTP等协议
Wsock32.dll 用于联网,或执行网络相关操作

发现CreateProcessA Create Thread函数说明代码会创建进程、线程
在这里插入图片描述

发现Creat ServiceA RegCloseKey RegCreateKeyA 等函数,说明代码会操作服务,和操作注册表
在这里插入图片描述
发现HttpSendRequestA 说明这个恶意代码还会链接网络
在这里插入图片描述

下面strings.exe查看字符串
在这里插入图片描述

字符串中我们可以发现

  1. 可疑的域名practicalmalwareanalysis.com serve.html

  2. 可疑函数:ServiceMain UninstallService installA uninstallA

  3. 下载函数:getfile

    扫描二维码关注公众号,回复: 9593319 查看本文章

下面尝试用install这个导出函数来安装恶意代码,在cmd里输入rundll32.exe Lab03-02.dll,install

然后查看注册表对比,发现
在这里插入图片描述

这个DLL创建了一个叫IPRIP的服务,然后我们发现这么几个新建的注册表值很有意思

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\IPRIP\Parameters] 
"ServiceDll"=hex(2):43,00,3a,00,5c,00,44,00,6f,00,63,00,75,00,6d,00,65,00,6e,\
 00,74,00,73,00,20,00,61,00,6e,00,64,00,20,00,53,00,65,00,74,00,74,00,69,00,\
 6e,00,67,00,73,00,5c,00,36,00,34,00,5c,00,4c,68,62,97,5c,00,42,00,69,00,6e,\
 00,61,00,72,00,79,00,43,00,6f,00,6c,00,6c,00,65,00,63,00,74,00,69,00,6f,00,\
 6e,00,5c,00,43,00,68,00,61,00,70,00,74,00,65,00,72,00,5f,00,33,00,4c,00,5c,\
  00,4c,00,61,00,62,00,30,00,33,... 
install`这个函数基本就是干这些事的,没见任何可疑的,然后我们还原在试试`installA

然后和刚才那个一样,所以我们可以得出这个结论installinstallA是一样

然后我们开始分析,这里有个可以注意的地方ImagePath
在这里插入图片描述

值分析过来就是下面这个

%SystemRoot%\System32\svchost.exe -k netsvcs
然后可以分析得出就是这个DLL会将自己安装成为一个服务IPRIP,然后由于这个恶意代码是个DLL文件,它就依赖一个可执行文件来执行它,然后它依赖的就是svhost.exe这个可执行文件来启动.

问题2

在安装之后,你如何让这个恶意代码运行起来?

用windows启动服务的方式来启动net start IPRIP
在这里插入图片描述

问题3

你怎么能找到这个恶意代码是在哪个进程下运行的?

Process Explorer

Find菜单-> Find Handle or DLL...
在这里插入图片描述
在这里插入图片描述

发现pid为1044然后我们去查找这个pid为1044,名字叫svchost.exe的进程
在这里插入图片描述
这样就找到了

问题4

你可以在procmon工具中设置什么样的过滤器,才能收集这个恶意代码的信息?

procmon里,打开Filter---->然后设置PID为刚刚发现的值1044,就可以收集这个恶意代码的信息
在这里插入图片描述

过滤信息
在这里插入图片描述

问题5

这个恶意代码在主机上的感染迹象特征是什么?

在第一问发现他会创建一个服务叫IPRIP,所以感染迹象就是会有创建一个服务叫IPRIP
在这里插入图片描述

问题6

这个恶意代码是否存在一些有用的网络特征码?

我们先去看看DNSChefINetSim服务器上的 记录

先检查一下dns的解析记录,用DNSChef虚拟机看
在这里插入图片描述
和我们前面发现的恶意域名是对应的

然后我们在看看INetSIm虚拟机上的记录,记录在log/service.log里面

在这里插入图片描述
我们可以注意到这个解析

在这里插入图片描述

这个DLL从我们搭建的服务器下载一个serve.html,而我们服务器返回了sample.html作为serve.html

其实这里就不需要用netcat来监听本地80端口了

所以这个网络特征就是那个漫长的恶意域名的解析,和对恶意域名请求一个serve.html

关键提示和要求:

一:静态分析
1、首先进行静态分析。列出这个DLL文件的导出和导入函数,分别是什么?哪个导出函数提供比较特殊的功能?这个功能是什么?值得关注的导入函数有哪些?那些导入函数与网络操作相关?这些导入函数说明这个进程使用了什么网络服务?

2、通过检查程序的字符串,写出与注册表、域名、网络、网页等相关的字符串。初步估计该程序的功能,例如该程序可能提供什么服务?

二、dll注册
1、由于可能改动了注册表,因此使用Regshot工具对注册表进行第一次快照。

2、启动Process Explorer;

3、由于Lab03-02中有dll文件,单独运行dll文件需要使用rundll32.exe;使用下面指令安装恶意代码。
rundll32.exe Lab03-02.dll, installA

4、通过Process Explorer确定rundll32终止。

5、再次用Regshot对注册表进行第二次快照。列出不同之处,并查询资料分析各项修改的作用( 特别注意是否有IPRIP字样?)。

三、运行服务

1、运行服务前的准备:
运行procmon,并清除所有事件;
运行Process Explorer;
启动并配置ApateDNS;
由于字符串分析中,出现http,因此开启Netcat监听端口80。nc -l -p 80

2、启动IPRIP服务c:\net start IPRIP

3、等待10秒,让程序正常运行。

四、分析

1、在Process Explorer中,查找恶意代码进程: Find->Find Handle or DLL, 输入Lab03-02.dll,单击Search。
结果说明这个dll由svchost.exe加载的,记录进程号(PID)。
2、在Process Explorer中,鼠标停留在这个PID项上,会显示相关加载信息。查找Intranet Network Awareness (INA+)IPRIP的字段。

3、ApateDNS出现DNS的请求,是什么?

4、请查http协议资料,分析和理解Netcat获取的结果。
向serve.htm发出GET请求,这个特征可以成为该恶意代码的网络特征;User-Agent中的字符串,也可以成为网络特征。

引用

《 Practical Malware Analysis 》 By Michael Sikorski, Andrew Honig · 2012
以及网上前辈的一些作品,由于查阅过多过细,这里就不一一例举。

发布了20 篇原创文章 · 获赞 6 · 访问量 872

猜你喜欢

转载自blog.csdn.net/qq_43605381/article/details/104363570