对Lab01-01.exe和Lab01-01.dll进行分析
问题
-
将文件上传至
http://www.VirusTotal.com
进行分析并查看报告。文件匹配到了已有的反病毒软件特征吗?
首先查看Lab-01-01.exe。
然后查看Lab01-01.dll。
这两个文件应该都是恶意文件。
-
这些文件是什么时候编译的?
查看PE文件的结构:
通过PE Tools查看文件头:
Lab-01-01.exe 编译时间是2010年12月19日 16:16:19.
Lab-01-01.dll 编译时间是2010年12月19日 16:16:38.
这两个文件编译的时间非常接近,极有可能就是同时编译的。
-
这两个文件中是否存在迹象说明它们是否被加壳或混淆?如果是,这些迹象在哪里?
两个文件都没有加壳迹象。
-
是否有导入函数显示出了这个恶意代码是做什么的?如果是,是哪些导入函数?
Lab-01-01.exe :
导入函数有很多,一个一个看:
Kernel32.dll
-
CloseHandle:关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等。在CreateThread成功之后会返回一个hThread的handle,且内核对象的计数加1,CloseHandle之后,引用计数减1,当变为0时,系统删除内核对象。
-
CopyFileA:将现有文件复制到新文件。
-
CreateFileMappingA:为指定文件创建或打开命名或未命名的文件映射对象。
-
FindClose:关闭由 FindFirstFile、FindFirstFileEx、FindFirstFileNameW、FindFirstFileNameTransactedW、FindFirstFileTransacted、FindFirstStreamTransactedW 或 FindFirstStreamW 函数打开的文件搜索句柄。
-
FindFirstFileA/FindNextFileA:用于搜索文件目录和枚举文件系统的函数。
-
IsBadReadPtr:验证调用进程是否具有对指定内存范围的读取访问权限。
-
mapViewOfFile :映射一个文件到内存,将文件内容变得通过内存地址可访问。启动器、装载器和注入器使用这个函数来读取和修改PE文件。通过使用mapViewOfFile 函数,恶意代码可以避免使用WriteFile来修改文件内容。
-
UnmapViewOfFile**😗*从调用进程的地址空间取消映射文件的映射视图。
其中,FindFirstFileA/FindNextFileA和CopyFileA表示这个程序可能会将自身复制到一个指定路径中去。
Lab-01-01.dll :
Kernel32.dll
:
-
CloseHandle:关闭句柄
-
CreateMutexA:创建一个互斥对象,可以被恶意代码用来确保在给定时刻只有一个实例在系统上运行。恶意代码经常使用固定名字为互斥对象命名,这样他们就可以成为一个很好的主机特征,来检测系统是否感染了一个恶意代码。
-
CreateProcessA:创建一个新进程。
-
OpenMutexA:打开一个双向互斥对象的句柄,可以被恶意代码用来确保在任意给定时间在系统上只能有一个运行实例。恶意代码通常使用固定名字来为互斥对象命名,因此可以用作很好的主机特征。
-
Sleep:使程序暂停一段时间。
CreateProcessA和Sleep。这两个函数普遍在后门程序中使用。这些函数在exec与sleep字符串结合使用时,需要特别关注。exec字符串可能是通过网络来给后门程序传送命令,让它通过CreateProcess函数运行一个程序的。sleep字符串可能用于命令后门程序进入休眠状态。
-
是否有任何其他文件或基于主机的迹象,让你可以在受感染系统上查找?
C:\Documents and Settings\Administrator\桌面>strings Lab01-01.exe
UVWj
ugh 0@
_^][
SUVW
h00@
_^][
SUVW
h|0@
D
8
Rt
<f
T$PR
hL0@
h|0@
hD0@
_^]3
hp @
SVW
%8 @
%D @
%\ @
%` @
CloseHandle
UnmapViewOfFile
IsBadReadPtr
MapViewOfFile
CreateFileMappingA
CreateFileA
FindClose
FindNextFileA
FindFirstFileA
CopyFileA
KERNEL32.dll
malloc
exit
MSVCRT.dll
_exit
_XcptFilter
__p___initenv
__getmainargs
_initterm
__setusermatherr
_adjust_fdiv
__p__commode
__p__fmode
__set_app_type
_except_handler3
_controlfp
_stricmp
kerne132.dll
kernel32.dll
.exe
C:*
C:\windows\system32\kerne132.dll
Kernel32.
Lab01-01.dll
C:\Windows\System32\Kernel32.dll
WARNING_THIS_WILL_DESTROY_YOUR_MACHINE
有文件目录,还有kerne132.dll这个程序,与Kernel32.dll容易混淆。检查C:\Windows\System32\kerne132.dll来发现额外的恶意活动。请注意,文件kerne132.DLL,用数字1代替了字母l,是为了看起来像是系统文件kernel32.dll。这个文件可以用来在主机作为恶意代码感染的迹象进行搜索。
-
是否有基于网络的迹象,可以用来发现受感染机器上的这个恶意代码?
使用strings命令。
Lab-01-01.dll :
C:\Documents and Settings\Administrator\桌面>strings Lab01-01.dll
L$xQh
IQh `
L
4
PQ
j
D
\D
t WVS
NWVS
u7WPS
u&WVS
_
CloseHandle
Sleep
CreateProcessA
CreateMutexA
OpenMutexA
KERNEL32.dll
WS2_32.dll
strncmp
MSVCRT.dll
free
_initterm
malloc
_adjust_fdiv
exec
sleep
hello
127.26.152.13
SADFHUHF
/0I0[0h0p0
141G1[1l1
1Y2a2g2r2
3!3}3
发现dll文件中有ip地址,sleep,exec这种函数,可能会进入此ip地址进行下载文件,后门程序。
-
你猜这些文件的目的是什么?
.dll文件可能是一个后门
.exe文件是用来安装与运行DLL文件的
分析Lab01-02.exe文件
问题:
1.将Lab01-02.exe文件上传至
https://www.virustotal.com/
进行分析并查看报告。文件匹配到了已有的反病毒软件特征码?
Lab01-02.exe匹配到已有的反病毒软件特征,截图如下:
2.是否有这个文件被加壳或混淆的任何迹象?如果是这样,这些迹象是什么?如果该文件被加壳,请进行脱壳,如果可能的话?
拖入PEiD中,发现有壳。
UPX的壳,可以使用Free UPX壳。
脱壳成功。
3.有没有任何导入函数能够暗示出这个程序的功能?如果是,是哪些导入函数,它们会告诉你什么?
查看导入函数和答案(哈哈),有一些比较有意思的导入函数,CreateServiceA、InternetOpenA和InternetOpenUrlA。
CreateService
:创建一个可以在启动时刻运行的服务。恶意代码使用CreateService这个函数来持久化、隐藏,或是启动内核驱动。
InternetOpenA
:初始化WinINet中的一些高层次互联网访问函数,比如InternetOpenUrl和InternetReadFile。搜索InternetOpen函数是中岛互联网访问功能初始位置的一个好方法。InternetOpen函数的一个参数是User-Agent,有时也可以作为基于网络的特征码。
InternetOpenUrlA
:使用FTP、HTTP或HTTPS协议连接来打开一个特定的URL,如果URL固定,则可以作为基于网络的特征码。
4.哪些基于主机或基于网络的迹象可以被用来确定被这个恶意代码所感染的机器?
strings找到的字符串:
C:\Documents and Settings\Administrator\桌面>strings Lab01-02.exe
h(0@
Vh(0@
L$,j
=0 @
hT0@
=p @
h00@
SVW
=l0@
5p0@
%< @
%L @
%d @
%h @
KERNEL32.DLL
ADVAPI32.dll
MSVCRT.dll
WININET.dll
SystemTimeToFileTime
GetModuleFileNameA
CreateWaitableTimerA
ExitProcess
OpenMutexA
SetWaitableTimer
WaitForSingleObject
CreateMutexA
CreateThread
CreateServiceA
StartServiceCtrlDispatcherA
OpenSCManagerA
_exit
_XcptFilter
exit
__p___initenv
__getmainargs
_initterm
__setusermatherr
_adjust_fdiv
__p__commode
__p__fmode
__set_app_type
_except_handler3
_controlfp
InternetOpenUrlA
InternetOpenA
MalService
Malservice
HGL345
http://www.malwareanalysisbook.com
Internet Explorer 8.0
一个名为Malservice的服务,并通过到http://www.malwareanalysisbook.com的网络流量,来检查被恶意代码感染的主机。
分析Lab01-03.exe文件
问题:
1.将Lab01-03.exe文件上传至
https://www.virustotal.com/
进行分析并查看报告。文件匹配到了已有的反病毒软件特征码?
Lab01-03.exe匹配到已有的反病毒软件特征,截图如下:
2.是否有这个文件被加壳或混淆的任何迹象?如果是这样,这些迹象是什么?如果该文件被加壳,请进行脱壳,如果可能的话?
拖入PEiD, FSG 1.0 -> dulek/xt:
使用LinxerUnpacker进行脱壳:
脱壳成功。
看看导入函数,看不懂哈哈哈。
3.有没有任何导入函数能够暗示出这个程序的功能?如果是,是哪些导入函数,它们会告诉你什么?
查一查函数的用处:
OlerInitialize
:用来初始化COM库。使用COM对象的程序必须在调用任何其他COM功能之前,调用这个函数。
CoCreateInstance
:创建一个COM对象。COM对象提供了非常多样化的功能。类标识(CLSD)会告知你哪个文件包含着实现COM对象的代码。
使用了这个组件对象模型。
4.哪些基于主机或基于网络的迹象可以被用来确定被这个恶意代码所感染的机器?
脱壳后的程序的字符串中没有看到什么东西,答案说到后面学会手动脱壳后再来解答这个问题。
分析Lab01-04.exe文件
问题:
1.将Lab01-04.exe文件上传至
https://www.virustotal.com/
进行分析并查看报告。文件匹配到了已有的反病毒软件特征码?
Lab01-03.exe匹配到已有的反病毒软件特征,截图如下:
2.是否有这个文件被加壳或混淆的任何迹象?如果是这样,这些迹象是什么?如果该文件被加壳,请进行脱壳,如果可能的话?
看起来似乎是没有壳。
3.这个文件是什么时候被编译的?
15年出版的书,出现19年编译的程序,哈哈哈。
4.有没有任何导入函数能够暗示出这个程序的功能?如果是,是哪些导入函数,它们会告诉你什么?
创建文件和写入文件的函数。
WinExec是运行一个程序,可能会是去运行一个后门程序。
有一些关于资源的函数,说明这个程序可能对他的资源部分进行嗲用。
AdjustTokenPrivileges
:用来启用或禁用特定的访问权限。执行进程注入的恶意代码经常会调用这个函数,来取得额外的权限。
5.哪些基于主机或基于网络的迹象可以被用来确定被这个恶意代码所感染的机器?
有一个网址,有\system32\这样一个目录,还有URLDownloadToFileA这个后台下载的API函数(这个函数可以与winexec结合使用,然后就是运行后台下载的程序),还有获取windows目录的函数,可能会将自身复制到一个目录下,或者将下载的程序转到目录下进行混淆。
6.这个文件在资源段中包含一个资源。使用Resource Hacker工具来检查资源,然后抽取资源,从资源中你能发现什么吗?
这段字符是在PE文件开始处的DOS头部中都会包含的错误消息,所以这个程序的资源中应该是隐藏了一个PE文件。我们把它保存下来看看。
这里没打勾,确实是exe文件。
使用strings命令查看一下。
查看一下导入表。
查看导入表,该嵌入文件在访问一些网络函数,它调用了URLDownloadToFile,一个由恶意下载器普遍使用的函数,它调用了WinExec函数,可能执行了下载到的文件。
第十四章
恶意代码
的网络特征
1.网络应对措施。 网络行为的基本属性包括IP地址,TCP端口,以及流量内容等,网络和安全
设备可以利用它们,来提供网络应对措施。根据IP地址和端口,防火墙和路由器可以限制对
网络的访问。
入侵检测系统,入侵防御系统,以及电子邮件和web代理等其他安全应用。 作为常用术语的
入侵检测系统已经过时了。特征不再仅仅用在入侵检测方面,还可以用来检测网络扫描,服
务枚举与分...
网络安全 ,深度学习,嵌入式,机器强化,生物智能,生命科学。
叮叮叮:产品已上线 —>关注 官方-微信公众号——济南纪年信息科技有限公司
民生项目:商城加盟/娱乐交友/创业商圈/外包兼职开发-项目发布/
安全项目:态势感..
恶意代码
分析
方法
静态
分析
基础
技术
(快速
分析
技术
):检查可执行文件但不查看具体指令的一些
技术
。
静态
分析
基础
技术
可以确认一个文件是否是恶意的,提供有关其功能的信息,有时还会提供一些信息让我们生成简单网络特征码。
动态
分析
基础
技术
:涉及运行
恶意代码
并观察系统上的行为,以移除感染,产生有效的检测特征码,或者两者。
静态
分析
高级
技术
:主要是对
恶意代码
内部机制的逆向工程,通过可执行文件装载到反汇编器中,查看程序指令来发现
恶意代码
做了什么。
动态
分析
高级技
静态
技术
分析
基础
1.使用md5deep 来识别
恶意代码
的哈希值
2.使用strings 来查看
恶意代码
的字符串,从中查看有用的线索,加过壳的
恶意代码
的字符串会很少。
3.使用peid程序来检查程序的加壳的情况
4.使用dependency walker来探测动态链接函数
常见函数: kernel32.dll :包含核心系统功能,如访问和操作系统内存,文件和硬件
Advapi.dll:提供了对核心
windows
组件的访问,比如服务器和注册表
User32.dll:包含了用户界
CreateToolHelp32Snapshot:可以通过获取进程信息为指定的进程、进程使用的堆[HEAP]、模块[MODULE]、线程建立一个快照。说到底,可以获取系统中正在运行的进程信息,线程信息等Thread32First,Thread32Next:用来遍历每一个线程Module32First,Module32Next:BOOL Module32First(
HANDLE ...
从时代发展的角度看,网络安全的知识是学不完的,而且以后要学的会更多,同学们要摆正心态,既然选择入门网络安全,就不能仅仅只是入门程度而已,能力越强机会才越多。因为入门学习阶段知识点比较杂,所以我讲得比较笼统,大家如果有不懂的地方可以找我咨询,我保证知无不言言无不尽,需要相关资料也可以找我要,我的网盘里一大堆资料都在吃灰呢。干货主要有:①1000+CTF历届题库(主流和经典的应该都有了)②CTF
技术
文档(最全中文版)③项目源码(四五十个有趣且经典的练手项目及源码)