恶意代码分析实战——Lab03-02.dll分析篇

Posted Bng!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了恶意代码分析实战——Lab03-02.dll分析篇相关的知识,希望对你有一定的参考价值。

**

恶意代码分析实战——Lab03-02.dll分析篇

一、分析对象

Lab03-02.dll

二、实验环境(本次一切实验环境均在vmware虚拟机下进行)

1、kall虚拟机
2、winxp虚拟机(经过不断的踩坑,不断的尝试最后发现在winxp系统中进行实验最容易成功,虽然由于系统版本比较低,需要下载一些其它插件,但是正是因为系统较简单的原因,可以省去较多的麻烦,所以在今后的实验中建议使用winxp系统)
3、本次实验在由kall与win10虚拟机组成的虚拟网络环境中,vmware虚拟网络环境的搭建方法见《恶意代码分析实战——使用Apatedns和Inetsim模拟网络环境》一文。

三、实验工具

1、静态分析工具:MD5Deep,peid,PEview,strings64
2、动态分析工具:Procmon,Process Explorer,Regshot
3、网络工具:INetSim,ApateDNS,Netcate,Wireshark

四、实验开始

(一)静态分析

1、查看Lab03-02.dll的MD5值

2、PEID分析


从中我们看到并未加壳处理,再观看它的导出列表

从中我们看到共5个导出函数,其中ServiceMain是和服务相关的函数,所以猜测Lab03-02.dll目的是下载某个服务。

3、peview分析

首先它的导出函数和在peid中查看的相同

然后我们再来看一下它的导出表,发现了一些依赖导入函数动态链接库

  • KERNEL32.dll:

    内核级文件。它控制着系统的内存管理、数据的输入输出操作和中断处理,当Windows启动时,kernel32.dll就驻留在内存中特定的写保护区域,使别的程序无法占用这个内存区域。

  • ADVAPI32.dll:

    一个高级API应用程序接口服务库的一部分,包含的函数与对象的安全性,注册表的操控以及事件日志有关。xp系统一般位于C:\\WINDOWS\\system32\\目录下,大小659KB。

  • WS2_32.dll:

    Windows Sockets应用程序接口, 用于支持Internet和网络应用程序。

  • WININET.dll:

    Windows应用程序网络相关模块。通常情况下是在安装操作系统过程中自动创建的,对于系统正常运行来说至关重要。它的存在对维护计算机系统的稳定具有重要作用。

  • MSVCRT.dll:

    微软在windows操作系统中提供的C语言运行库执行文件(Microsoft Visual C Runtime Library),其中提供了printf, malloc, strcpy等C语言库函数的具体运行实现,并且为使用C/C++(Vc)编译的程序提供了初始化(如获取命令行参数)以及退出等功能。

    其中,通过观察ADVAPI32.dll依赖的导入函数,发现该恶意代码的功能实现中涉及了开启服务;开启注册表、注册表查询、创建注册表键、设置注册表键值、注册服务控制处理、设置服务状态等。这显然是为了实现ServiceMain的正常运行。


并且在它的导入表中发现了一些涉及网络访问功能的函数。

4、strings查看可打印字符串



通过观察可打印字符串中发现,除了同上发现的一下导入导出函数外,还发现了practicalmalwareanalysis.com等一些域名信息以及一些注册表信息,此外还发现了svchost.exe的可执行程序。

通过以上信息可以得出总结,该程序可能通过访问 practicalmalwareanalysis.com网址,来下载某些程序,将自己下载为某个服务,而dll文件在Windows系统中一般不可以直接执行,所以必然存在某个可执行程序来运行Lab03-02.dll文件,而在可打印字符串中发现的svchost很有可能便是运行dll文件的exe文件。

(二)动态分析

1、Regshot注册表分析(分析比较运行Lab3-02.dll前后注册表变化)

(1)运行Lab03-02.dll前利用regshot记录一下注册表信息,之后2nd shot会亮起:

(2)使用rundll32运行Lab03-02.dll
由于lab03-02.dll通过把自己安装成一个服务来正常运行,故在CMD模式下,执行下述命令:

rundll32 Lab03-02.dll,installA

(3)利用regshot记录运行Lab03-02.dll后的注册表信息,之后compare亮起

(4)点击compare对比运行Lab03-02.dll前后的变化

在key adds中发现增加了一个IPRIP的服务,说明Lab03-02.dll将自己安装成一个IPRIP服务,印证了上述的猜测,并且dll需要一个可执行程序来执行它,在注册表中发现了svchost.exe执行程序,加重了是它运行的嫌疑。该恶意代码执行时显示的名字为“Intranet Network Awareness(NIA+)”

2、ApateDNS虚拟网络分析

配置好kali和winxp的虚拟网络,开启ApateDNS,并在kali中用nc监听80端口,然后可以使用net start 开启IPRIP服务


启动IPRIP服务后发现Lab03-02.dll访问了practicalmalwareanalysis.com网址


发现它会请求获取serve.html网页文件

3、process explorer分析

开启IPRIP服务后ctrl+F搜索Lab03-02.dll后,发现Lab03-02.dll确实附着在svchost.exe上运行,其pid为1028(不同电脑可能会不同),因此在这里就可以确定Lab03-02.dll就是通过svchost.exe执行的


之后找到1028程序,确实在它的里面找到了Lab03-02.dll

五、实验总结

Lab03-02.dll通过svchost.exe运行把自己安装成一个IPRIP服务,该服务的作用是向practicalmalwareanalysis.com发送了一个HTTP GET请求,获取serve.html页面。

以上是关于恶意代码分析实战——Lab03-02.dll分析篇的主要内容,如果未能解决你的问题,请参考以下文章

恶意代码分析实战11-3

恶意代码分析实战3-34

恶意代码分析实战3-34

恶意代码分析实战1-1

恶意代码分析实战20-1

恶意代码分析实战19-03