20145318 《网络对抗》 恶意代码分析
基础问题回答
(1)总结一下监控一个系统通常需要监控什么、用什么来监控。
- 监控系统的注册表、进程、网络连接情况、服务、文件
- 用以下软件工具来监控:
- TCPview工具查看系统的TCP连接信息
- wireshark进行抓包分析,查看网络连接
- sysmon用来监视和记录系统活动,并记录到windows事件日志,提供文件、进程等的详细信息
(2)如果在工作中怀疑一台主机上有恶意代码,请设计下你准备如何找到对应进程、恶意代码相关文件。
- 使用抓包软件分析进程网络连接传输的数据
- 去专业网站扫描可疑进程,查看测评分数与信息
- 使用快照分析进程对系统做了哪些改变,新增文件
- 使用tcpview工具检测有哪些程序在进行网络连接
- 使用Dependency Walker来分析是否有关于注册表的异常行为
- 使用PE解析软件查看可疑进程的详细信息,查看其是否加壳,分析调用的DLL及其函数用途
实践过程记录
静态分析
-
利用特征码检测,但是检测能力不够强
动态分析
PE explorer
-
用PE explorer打开文件test1.exe,查看PE文件编译的一些基本信息,导入导出表等。
-
点击一下上面的“导入表(Import)”,查看一下这个程序都调用了哪些dll文件:
ADVAPI32.dll
文件是一个高级API应用程序接口服务库的一部分,调用这个dll可以实现对注册表的操控,-
WSOCK32.dll
和WS2_32.dll
这两个DLL用于创建套接字,即会发生网络连接。
PEiD
-
PEiD(PE Identifier)是一款著名的查壳工具,其功能强大,几乎可以侦测出所有的壳,其数量已超过470 种PE 文档 的加壳类型和签名。我们使用PEiD打开test1.exe来查看这个程序是否加壳。
Nothing found [Debug]
没加壳?正常的编译会显示编译器,如果什么都没找到,说明可能不识别该编译器。-
可以查看反汇编之后的代码。
Dependency Walker
- Dependency Walker是一款Microsoft Visual C++ 中提供的非常有用的PE模块依赖性分析工具,可以查看 PE 模块的导入模块.查看 PE 模块的导入和导出函数.动态剖析 PE 模块的模块依赖性.解析 C++ 函数名称。
-
我们使用这个软件打开test1.exe
-
Dependency Walker能更专业,更细致具体的分析dll文件,条理更加清晰细致,功能强大。
-
从上图可以看出,通过查看DLL文件的函数,该可执行文件会删除注册表键和注册表键值。
Tcpview
- 可以用于查看进行网络连接的进程信息,所以我们可以通过查看每个进程的联网通信状态,初步判断其行为。
SysTracer
- 打开攻击机msfconsle,开放监听;win10下对注册表、文件、应用情况进行快照,保存为
Snapshot #1
- win10下打开木马test1.exe,回连kali,win10下再次快照,保存为
Snapshot #2
- kali中通过msf发送文件给win10靶机,win10下再次快照,保存为
Snapshot #4
- kali中对win10靶机进行屏幕截图,win10下再次快照,保存为
Snapshot #3
-
我们可以通过“compare”操作来比较每次快照文件的区别。
-
对比
Snapshot #1
和Snapshot #2
,可以看到注册表里面出现了新的表项,开放了新的端口。 -
安装到目标机时,文件内容监控发现多了个文件。
-
对比一下
Snapshot #4
和Snapshot #3
。可以发现启动回连时注册表发生变化了,截屏时注册表也发生了一些变化。
netstat命令设置计划任务
-
在F盘中创建一个
netstat5318.bat
文件date /t >> f: etstat5318.txt
time /t >> f: etstat5318.txt
netstat -bn >> f: etstat5318.txt -
在任务计划程序中,新建一个触发器。
- 上面内容可以显示我们连接的网络的时间和日期信息。
-
将任务计划的操作选项栏的启动程序设为我们的netstat5318.bat,参数为>>f: etstat5318.txt,这样我们的网络记录信息netstat5318.txt就会保存在f盘下。
- 创建完成后,运行任务,发现f盘下出现netstat5318.txt文件,但是没有显示出我们想要的网络连接记录信息,而是显示了“请求的操作需要提升”。
-
用管理员权限运行,即可成功。