恶意代码分析实战 IDA 分析windows恶意程序 lab 7-1 7-2

恶意代码分析实战 第七章 实验部分

 第7章 分析恶意Windows程序(实验)

    Lab 7-1:分析在文件Lab07-01.exe中发现的恶意代码
        1.1 当计算机重启后,这个程序如何确保它继续运行(达到持久化驻留)?
        1.2 为什么这个程序会使用一个互斥量?
        1.3 可以用来检测这个程序的基于主机特征是什么?
        1.4 检测这个恶意代码的基于网络特征是什么?
        1.5 这个程序的目的是什么?
        1.6 这个程序什么时候完成执行?
    Lab 7-2:分析在文件Lab07-02.exe中发现的恶意代码
        2.1 这个程序如何完成持久化驻留?
        2.2 这个程序的目的是什么?
        2.3 这个程序什么时候完成执行?
    Lab 7-3
        3.1 这个程序如何完成持久化驻留,来确保在计算机被重启后它能继续运行?
        3.2 这个恶意代码的两个明显的基于主机特征是什么?
        3.3 这个程序的目的是什么?
        3.4 一旦这个恶意代码被安装,你如何移除它?

 

 

 

静态分析IDA Pro

字符串
在这里插入图片描述
可以看到有一个 MalService,可以推测该程序创建了一个系统服务。 HGL345暂定(HGL是互斥量,怪不得作者说互斥量命名可以做为检测特征)。网址信息http://www.malwareanalysisbook.com用户代理信息Internet Explorer 8.0
查看导入函数
比较重要的导入函数

Address  Ordinal Name                        Library 
-------  ------- ----                        ------- 
00404000         CreateServiceA              ADVAPI32
00404004         StartServiceCtrlDispatcherA ADVAPI32
00404008         OpenSCManagerA              ADVAPI32
00404010         CreateWaitableTimerA        KERNEL32
00404014         SystemTimeToFileTime        KERNEL32
00404018         GetModuleFileNameA          KERNEL32
0040401C         SetWaitableTimer            KERNEL32
00404020         CreateMutexA                KERNEL32
00404028         OpenMutexA                  KERNEL32
0040402C         WaitForSingleObject         KERNEL32
00404030         CreateThread                KERNEL32
004040C0         InternetOpenUrlA            WININET 
004040C4         InternetOpenA               WININET
 

CreateServiceAOpenSCManagerA函数表明创建服务,以确保该程序可以随系统运行。
StartServiceCtrlDispatcherA函数被系统用于实现服务,且一般立即被调用。该函数制定了服务控制管理器会调用的函数。
它所制定的的是sub_401040
在这里插入图片描述
检查sub_401040函数
在这里插入图片描述
第一个函数是OpenMutexA,它尝试获取一个名为"HGL345“的互斥量句柄。如果调用成功,程序就会退出。
下一个调用
在这里插入图片描述
创建名为”HGL345"的互斥量,两处组合调用,用于保证同一时间这个程序只有一份实例在运行。因为如果有一个实例在运行了,则OpenMutexA第一次调用成功,程序就会退出。
OpenSCManagerA打开服务控制管理器句柄,以便该程序可以添加或修改服务。
GetModuleFileNameA返回当前可执行程序或一个被加载DLL的全路径名。
返回的全路径名被CreateServiceA用于创建一个新的服务。
在这里插入图片描述
MSDN

SC_HANDLE CreateServiceA(
  SC_HANDLE hSCManager,
  LPCSTR    lpServiceName,
  LPCSTR    lpDisplayName,
  DWORD     dwDesiredAccess,
  DWORD     dwServiceType,#3
  DWORD     dwStartType,#2
  DWORD     dwErrorControl,
  LPCSTR    lpBinaryPathName,#1
  LPCSTR    lpLoadOrderGroup,
  LPDWORD   lpdwTagId,
  LPCSTR    lpDependencies,
  LPCSTR    lpServiceStartName,
  LPCSTR    lpPassword
);

这里的1 2 3分别对应BinaryPathName、StartType和ServiceType。
MSDN中还列举了StartType和ServiceType的有效值(此处未列全)。
在这里插入图片描述
在这里插入图片描述
和时间相关
在这里插入图片描述
结构体
834h 表示10进制2100表示2100年1月1日午夜。 ==》整个程序就是在此刻用于ddos攻击,对malware analysis网站发起DoS!创建了20个线程用于DoS,一直请求http://www.malwareanalysisbook.com!
SystemTimeToFileTime用于不同时间格式的转换

再接着SetWaitableTimer函数的lpDueTime参数,它来自于刚才时间转换函数返回的FileTime。
在这里插入图片描述
随后进入WaitForSingleObject等待,直到2100年1月1日午夜执行。
在这里插入图片描述
在1处ESI设置为计数器0x14(十进制20),循环的末位,ESI在2处递减,在3处到达0时,循环退出。4处的CreateThread函数的参数中lpStartAddress可以告知当前线程的起始地址。
查看该参数StartAddress
在这里插入图片描述
循环末尾的jmp指令是一个无条件跳转,意味着代码将永远不会停止;调用InternetOpenUrlA,并且一直下载该网址的主页。由于前面ESI被设置为20,因此会有20个线程一直调用InternetOpenUrlA函数。
该恶意代码目的是将自己在多台机器上安装成一个服务,进而启动DDOS攻击。如果所有的被感染机器在同一时间访问该服务器,会导致该服务器过载并无法访问该站点,导致拒绝服务攻击。

1.当计算机重启之后,这个程序如何保证它继续运行(达到持久化驻留)?

创建服务 MalService,在后台随系统启动运行。

2.为什么这个程序会使用一个互斥量?

保证同一时间这个程序只有一份实例在运行。

3.可以用来检测这个程序的基于主机特征是什么?

搜索一个名为HGL345的互斥量,以及服务 MalService

4.检测这个恶意代码的基于网络特征是什么?

网址信息http://www.malwareanalysisbook.com用户代理信息Internet Explorer 8.0 。真正用于检测的话,这个是弱特征!

5.这个程序的目的是什么?

定时任务:时间为2100年1月1日半夜,发送大量请求到http://www.malwareanalysisbook.com引发ddos攻击。

6.这个程序什么时候完成执行?

不会完成,等到2100年1月1日半夜,到那时创建20个线程,每个均是无限循环。

参考

1.斯科尔斯基, 哈尼克. 恶意代码分析实战[M]. 电子工业出版社, 2014.

 
 

 

 

静态分析 IDA PRO

字符串信息很少,但是没有加壳。

在这里插入图片描述

 

 

如果遇到下图这种,直接人工对应下即可。

 

 

 

 


使用strings工具
在这里插入图片描述
书上说这个是Unicode字符。
导入函数
在这里插入图片描述
和COM对象有关。CoCreateInstanceOleInitialize函数使用COM功能。
主函数
在这里插入图片描述
该恶意代码第一件事初始化COM,调用OleInitialize函数和CoCreateInstance获得一个COM对象。返回的COM对象被保存为ppvriidrclsid分别表示接口标识符(IID)和类标识符(CLSID),
在这里插入图片描述
riid为0D30C1661-0CDAF-11D0-8A3E-00C04F0C90E26E对应IWebBrowser2
rclsid为0002DF01-0000-0000-C000-000000000046对应Internet Explorer
在这里插入图片描述
返回的COM对象在1处被后面的一些函数访问。紧跟这条指令,在2处,EAX被解引用并且指向这个COM对象的基址。在3处,这个对象中偏移0x2CNavigate函数。该函数被调用后,Internet Explorer将导航至http://www.malwareanalysisbook.com/ad.html。该函数执行一些清理函数,但是没有持久化驻留,仅简单显示一个广告页面。

 

也就是说整个程序的功能是通过com组件调用方式来显示广告网页。==》不知道sysmon采集数据怎么样?

 

 

看下sysmon数据采集:

 

 

23:06:18:939,	Lab07-02.exe,	4968:0,	4968,	EXEC_create,	D:\virus_test\PracticalMalwareAnalysis-Labs-master\PracticalMalwareAnalysis-Labs-master\PracticalMalwareAnalysis-Labs\Practical Malware Analysis Labs\BinaryCollection\Chapter_7L\Lab07-02.exe,	parent_pid:18760 cmdline:'Lab07-02.exe' image_base:0x0000000000400000 image_size:0x00004000 ,	0x00000000 [操作成功完成。  ],	
23:06:18:939,	Lab07-02.exe,	4968:13356,	4968,	REG_openkey,	HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Nls\CodePage,	access:0x00020019 ,	0x00000000 [操作成功完成。  ],	
23:06:18:939,	Lab07-02.exe,	4968:13356,	4968,	REG_getval,	HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Nls\CodePage\ACP,	type:0x00000000 datalen:0 data:,	0x00000000 [操作成功完成。  ],	
23:06:18:939,	Lab07-02.exe,	4968:13356,	4968,	REG_getval,	HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Nls\CodePage\OEMCP,	type:0x00000000 datalen:0 data:,	0x00000000 [操作成功完成。  ],	
23:06:18:939,	Lab07-02.exe,	4968:13356,	4968,	REG_openkey,	HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager,	access:0x00000001 ,	0x00000000 [操作成功完成。  ],	
23:06:18:939,	Lab07-02.exe,	4968:13356,	4968,	REG_openkey,	HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager,	access:0x00000009 ,	0x00000000 [操作成功完成。  ],	
23:06:18:939,	Lab07-02.exe,	4968:13356,	4968,	REG_openkey,	HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager,	access:0x00000009 ,	0x00000000 [操作成功完成。  ],	
23:06:18:940,	Lab07-02.exe,	4968:13356,	4968,	REG_openkey,	HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wow64\x86,	access:0x00020019 ,	0x00000000 [操作成功完成。  ],	
23:06:18:940,	Lab07-02.exe,	4968:13356,	4968,	REG_getval,	HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wow64\x86\,	type:0x00000000 datalen:0 data:,	0x00000000 [操作成功完成。  ],	
23:06:18:940,	Lab07-02.exe,	4968:13356,	4968,	REG_openkey,	HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Nls\CodePage,	access:0x00020019 ,	0x00000000 [操作成功完成。  ],	
23:06:18:940,	Lab07-02.exe,	4968:13356,	4968,	REG_getval,	HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Nls\CodePage\ACP,	type:0x00000000 datalen:0 data:,	0x00000000 [操作成功完成。  ],	
23:06:18:940,	Lab07-02.exe,	4968:13356,	4968,	REG_getval,	HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Nls\CodePage\OEMCP,	type:0x00000000 datalen:0 data:,	0x00000000 [操作成功完成。  ],	
23:06:18:940,	Lab07-02.exe,	4968:13356,	4968,	REG_openkey,	HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager,	access:0x00000001 ,	0x00000000 [操作成功完成。  ],	
23:06:18:941,	Lab07-02.exe,	4968:13356,	4968,	REG_openkey,	HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager,	access:0x00000009 ,	0x00000000 [操作成功完成。  ],	
23:06:18:941,	Lab07-02.exe,	4968:13356,	4968,	REG_openkey,	HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager,	access:0x00000009 ,	0x00000000 [操作成功完成。  ],	
23:06:18:942,	Lab07-02.exe,	4968:13356,	4968,	REG_openkey,	HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Nls\CustomLocale,	access:0x00020019 ,	0x00000000 [操作成功完成。  ],	
23:06:18:942,	Lab07-02.exe,	4968:13356,	4968,	REG_openkey,	HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Nls\ExtendedLocale,	access:0x00020019 ,	0x00000000 [操作成功完成。  ],	
23:06:18:942,	Lab07-02.exe,	4968:13356,	4968,	REG_openkey,	HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server,	access:0x00020019 ,	0x00000000 [操作成功完成。  ],	
23:06:18:942,	Lab07-02.exe,	4968:13356,	4968,	REG_getval,	HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\TSUserEnabled,	type:0x00000000 datalen:0 data:,	0x00000000 [操作成功完成。  ],	
23:06:18:943,	Lab07-02.exe,	4968:13356,	4968,	REG_openkey,	HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\safer\codeidentifiers,	access:0x00000001 ,	0x00000000 [操作成功完成。  ],	
23:06:18:943,	Lab07-02.exe,	4968:13356,	4968,	REG_openkey,	HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem,	access:0x00020019 ,	0x00000000 [操作成功完成。  ],	
23:06:18:943,	Lab07-02.exe,	4968:13356,	4968,	REG_getval,	HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem\LongPathsEnabled,	type:0x00000000 datalen:0 data:,	0x00000000 [操作成功完成。  ],	
23:06:18:944,	Lab07-02.exe,	4968:13356,	4968,	REG_openkey,	HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options,	access:0x00000009 ,	0x00000000 [操作成功完成。  ],	
23:06:18:948,	Lab07-02.exe,	4968:13356,	4968,	REG_openkey,	HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager,	access:0x00000001 ,	0x00000000 [操作成功完成。  ],	
23:06:18:950,	Lab07-02.exe,	4968:0,	4968,	FILE_open,	C:\Windows\SysWOW64\uxtheme.dll,	access:0x00100021 alloc_size:0 attrib:0x00000000 share_access:0x00000005 disposition:0x00000001 options:0x00000060 ,	0x00000000 [操作成功完成。  ],	
23:06:18:951,	Lab07-02.exe,	4968:13356,	4968,	REG_openkey,	HKEY_USERS\S-1-5-21-1222956552-350874820-2437608500-1002,	access:0x00020019 ,	0x00000000 [操作成功完成。  ],	
23:06:18:951,	Lab07-02.exe,	4968:13356,	4968,	REG_openkey,	HKEY_USERS\S-1-5-21-1222956552-350874820-2437608500-1002\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize,	access:0x00000001 ,	0x00000000 [操作成功完成。  ],	
23:06:18:951,	Lab07-02.exe,	4968:13356,	4968,	REG_getval,	HKEY_USERS\S-1-5-21-1222956552-350874820-2437608500-1002\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize\AppsUseLightTheme,	type:0x00000000 datalen:0 data:,	0x00000000 [操作成功完成。  ],	
23:06:20:042,	Lab07-02.exe,	4968:0,	4968,	EXEC_destroy,	D:\virus_test\PracticalMalwareAnalysis-Labs-master\PracticalMalwareAnalysis-Labs-master\PracticalMalwareAnalysis-Labs\Practical Malware Analysis Labs\BinaryCollection\Chapter_7L\Lab07-02.exe,	parent_pid:18760 cmdline:'Lab07-02.exe' ,	0x00000000 [操作成功完成。  ],	

 

感觉这个日志 看不出com调用!!!

再试试procmon,日志如下:

 

 可以看到有clsid注册表的读取动作,但是没有看到IE关联!==》也就是说通过com调用的进程无法关联!!!蛋疼啊!

 

 

 

 

动态分析

无持久化驻留证据。

1.这个程序如何完成持久化驻留?

该程序没有完成持久化驻留。运行一次后退出。

2.这个程序的目的是什么?

给用户显示一个广告网页http://www.malwareanalysisbook.com/ad.html

3.这个程序什么时候完成执行?

显示广告页后完成执行。

参考

1.斯科尔斯基, 哈尼克. 恶意代码分析实战[M]. 电子工业出版社, 2014.

 
posted @ 2022-10-02 23:38  bonelee  阅读(380)  评论(0编辑  收藏  举报