20145233《网络对抗》第四周 恶意代码分析
20145233《网络对抗》第四周 恶意代码分析
实验内容
恶意代码
恶意代码
- 概述
- 恶意代码是指故意编制或设置的、对网络或系统会产生威胁或潜在威胁的计算机代码。最常见的恶意代码有计算机病毒(简称病毒)、特洛伊木马(简称木马)、计算机蠕虫(简称蠕虫)、后门、逻辑炸弹等。
特征: - 恶意的目的,获取靶机权限、用户隐私等
- 本身是计算机程序,可以执行,并作用于靶机
恶意代码分析
- 恶意代码分析有两类基本方法:
- 静态分析:在没有运行恶意代码时对其进行分析的技术
- 动态分析:相比较静态分析而言,则需要运行恶意代码,通过其产生的行为,如对计算机中注册表、文件的更改,网络的连接等动态数据进行分析,从而确定其具体行为。
实验过程
静态分析
- 静态分析技术,可以确认一个文件是否是恶意的,提供有关其功能的信息,可以通过一些PEiD工具箱(PEview,dependency walker,Resource Hacker,PE explorer等)分析其函数链接库、壳的情况、特征库比对等操作,通过这些工具可以快速分析代码的性质,但是针对较为复杂的恶意代码时很大程度上是无效的,可以查出恶意程序的信息进行分析。
Virscan网页分析
-
利用老师上周所给的网页查毒,来分析一下这个实验二中所生成的恶意代码
-
杀软查杀完后,会出现一个叫软件分析的,可以看到这个恶意程序基本信息,网络行为,以及注册表行为等
-
因为是在网页上模逆运行,所以没有结果图
PEiD查壳工具
-
使用PEiD查壳,可以看出来是用了什么软件进行了加壳,然而我的是英文版的,查完之后没有set info按钮只告诉没有查出来是啥加壳,这是不科学的,最少也应该是vc程序编译,所以在用了其他同学的PEiD来分析之后,我知道使用的是UPX程序。
-
利用百度UPX,就可以知道这是一种压缩壳工具,所以应该是压缩壳病毒。
PE Explorer
-
在虚拟机下通过PE explorer打开文件
backdoor5233.exe
,可以查看PE文件编译的一些基本信息,导入导出表等 -
如下图,可以看到该文件的编译时间、链接器等基本信息
-
WSOCK32.dll
和WS2_32.dll
,是用来创建套接字的dll库,显然,这个程序功能中不应该有网络连接部分,那么在其动态链接库中还存在这2个库就显得尤为可疑了,所以可以判断这个程序中的这两个库是用来回连攻击机的,另外两个库就是一般都会调用的库。
Dependency Walker
- Dependency Walker是一款Microsoft Visual C++中提供的非常有用的PE模块依赖性分析工具,可以查看PE模块的导入模块,查看PE模块的导入和导出函数,动态剖析PE模块的模块依赖性,解析C++函数名称,这是一款专门分析函数依赖的工具软件
动态分析
- kali启动监听
使用systracer分析恶意代码回连前后情况
-
不同于静态分析,接下来所做的动态分析是在后门程序运行时,kali攻击机开启监听以及捕捉信息时的分析,需要两边接通。
-
利用systracer开启快照,一个为回连之前的快照,另一个为开启恶意程序回连之后的快照进行比对可以发现:
-
捕捉到恶意代码运行
-
捕捉到后门恶意程序进行的操作
TCPview启动端口
- 可以看到后门程序启动后占用了一个端口
使用Process Explorer查看恶意代码回连前后情况
-
回连后,在explore.exe下出现恶意代码程序
-
查看其具体信息,发现已与一个地址进行了网络连接(这里就是自己的kali地址了)
-
观察该恶意程序使用的线程,发现ADVAPI32.dll
使用wireshark查看恶意代码回连前后情况
-
如下图所示,捕捉到了靶机回连kali时,通过TCP的握手协议过程
-
其中打开一个具体分析,可以看到端口号就是自己设置的5233端口被后门程序占用。
实验问题回答
基础问题回答
-
总结一下监控一个系统通常需要监控什么、用什么来监控?
- 监控一个系统通常需要监控这个系统的注册表,进程,端口,服务还有文件。
- 使用PEid、sysmon、TCPView、Process Monitor、Process Explorer等工具监控。使用一些软件读取系统的注册表,进程表等信息来实现实时监测他们的变动。
-
如果在工作中怀疑一台主机上有恶意代码,请设计下你准备如何找到对应进程、恶意代码相关文件?
- 可以开启杀毒软件来检测指定位置,来进行查毒。
- 对计算机的注册表,进程,端口,服务等内容进行检测,并使用抓包软件进行抓包,通过观察注册表,进程等内容的变化筛选出可疑的对象。
- 使用sysmon、TCPView、Process Monitor、Process Explorer等工具
- 分析得到的数据,以及信息来判断恶意代码的行为,就可以知道如何处理恶意代码。
实验总结
- 第四次实验我觉得相比前几次实验来说,我觉得难度有了很大的提升,因为这一次在做实验的时候,就已经是在完成第二次实验的基础上来完成的。实验我认为这样很有意义,是循序渐进的,第二次是完成恶意代码的编写与执行,第三次是对恶意代码的免杀处理,而第四次又回到了恶意代码的检测,这就好像一个轮回。
- 并且这门课程的名字叫做网络攻防,可以从这几次实验看出来,我们确实有攻也有防,并且恶意代码我们不仅仅可以通过静态分析还可以使用工具来动态分析。这些都可以帮助我们来查杀恶意代码。
- 当我们觉得自己的主机上有恶意代码时,我们首先应该就是启动我们的杀软,更新杀软的病毒库,来查找我们认为有可能存在恶意代码的地方。并且利用网上可以找到的工具来分析电脑中的端口,注册表行为,以及有哪些端口被未知程序占用。总而言之,本次的实验还是对我们平时的帮助很大的,也是每一个学习相关知识的大学生应该掌握的技能。