20145206邹京儒_恶意代码分析
一、实践过程记录
恶意代码
本次实验分析的对象是《20145206邹京儒_后门原理与实践》中的5206.exe
恶意代码分析之静态分析
通过VirSCAN.org平台进行分析如下:
点击“文件行为分析”,可以详细地察看是否有敏感行为,可以发现该文件会有网络连接的行为,自行删除注册表键值的行为
静态分析之PE套件使用
PE explorer
通过PE explorer
打开文件5206.exe
,可以查看PE文件编译的一些基本信息,导入导出表等
我们点击“导入表”,可以查看该文件依赖的dll库:
WSOCK32.dll
和WS2_32.dll
,看了同学的博客,了解到它们是用来创建套接字的dll库
ADVAPI32.dll
库:是一个高级API应用程序接口服务库的一部分,包含的函数与对象的安全性,注册表的操控以及事件日志有关。
还有两个库MSVCRT.dll
和KERNEL32.dll
属于一般程序在win下都会调用的dll库
PEiD
PEiD是一款著名的查壳工具,其功能强大,几乎可以侦测出所有的壳,其数量已超过470种PE文档的加壳类型和签名。
接下来就通过PEiD这款工具分析一下5206.exe看看是否带壳:
在界面左下部分我们可以看到没有查出来他用什么加的壳,哦?一般没有加壳的软件会在那里都会直接显示编译器名称,没有找到可能是PEiD版本原因
与此同时,我们可以查看他反汇编之后的代码:
Dependency Walker
Dependency Walker是一款Microsoft Visual C++中提供的非常有用的PE模块依赖性分析工具,可以查看PE模块的导入模块,查看PE模块的导入和导出函数,动态剖析PE模块的模块依赖性,解析C++函数名称
接下来就用这款工具分析一下5206.exe:
我们从中看见了,该可执行文件可以对注册表进行删除操作,这也与VirSCAN.org查杀结果保持一致。
系统运行监控
TCPView查看恶意代码回连前后情况:
该工具可以帮我们实时分析正在联网的进程,所以我们可以通过查看每个进程的联网通信状态,初步判断其行为,例如一个程序应该是单机运行的,如果有网络行为,就显得很可疑了
netstat
我们可以通过建立一个windows计划任务程序查看本机有哪些ip连接:
这个时候每隔5分钟就会更新一次netstatlog文件,我们可以查看当病毒回连的时候发生了什么:
sysmon工具
首先我们在C:\windows\system32\文件夹下找到cmd.exe,右键以管理员身份运行:
进行配置:
设置好上述,可以进入Applications and Services Logs/Microsoft/Windows/Sysmon/Operational
查看日志:
准备好kali,打开木马5206.exe,查看日志,可以通过搜索功能找到:
创建进程:木马很可能伪装成电脑自带的explorer.exe
进程:
恶意代码分析之动态分析
SysTracer
想捕获快照时出现如下问题,问了也出现过同样问题的同学,她说要卸载重装,于是我照做了。。。
之后开始操作步骤:
Step0:准备两台虚拟机,kali攻击机,Win7靶机,SysTracer2.10分析软件
Step1:打开攻击机msfconsle,开放监听;win7下对注册表、文件、应用情况进行快照,保存为Snapshot #3
Step2:win7下打开木马5206.exe,回连kali,win7下再次快照,保存为Snapshot #4
回连成功:
启动回连时注册表发生变化:
启动回连时,新建了5206.exe应用,可以看见它启用了许多DLL文件:
启动回连时开放端口发生变化,如下图所示,因为本地木马5206.exe会连接远程端口443,所以先关闭了443端口,再开放了443端口:
Step3:kali中对win7靶机进行屏幕截图,win7下再次快照,保存为Snapshot #5
截屏时注册表发生了一些变化:
wireshark抓包分析
回连成功:
设置IP过滤格式:ip.src192.168.199.128 or ip.dst192.168.199.128如下图所示,捕捉到了靶机回连kali时通过TCP的三次握手协议过程:
二、回答问题
(1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
应该监控注册表、使用端口信息等
利用软件对这些方面进行监控
(2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
可以使用SysTracer工具进行查看对注册表的修改情况以及端口使用情况。
三、实验总结与体会
通过本次实验,我使用了一些工具软件来监控程序,了解到它们具体使用情况,包括端口、联网信息等等,恶意代码分析主要是分析它们的行为,这次实验通过静态、动态分析的综合应用基本可以确认一个代码的行为,以后我们可以对怀疑的程序自己进行排查,决定是否查杀。