20155227《网络对抗》Exp4 恶意代码分析
实践目标
1.是监控你自己系统的运行状态,看有没有可疑的程序在运行。
2.是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
3.假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。
实践内容(3.5分)
1.系统运行监控(2分)
(1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
(2)安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
参考:schtask与sysmon应用指导
实际日志的分析还需要发挥下自己的创造力,结合以前学过的知识如linux的文本处理指令等进行。分析的难点在于从大量数据中理出规律、找出问题。这都依赖对结果过滤、统计、分类等进一步处理,这就得大家会什么用什么了。
2.恶意软件分析(1.5分)
分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件
(3)读取、添加、删除了哪些注册表项
(4)读取、添加、删除了哪些文件
(5)连接了哪些外部IP,传输了什么数据(抓包分析)
实践内容及步骤
使用schtasks指令监控系统运行
先在
C盘
目录下建立一个netstatlog.bat
文件,用来将记录的联网结果格式化输出到netstatlog.txt
文件中,netstatlog.bat
内容为:date /t >> c:\netstatlog.txt time /t >> c:\netstatlog.txt netstat -bn >> c:\netstatlog.txt
然后打开
Windows
下命令提示符,输入指令schtasks /create /TN netstat /sc MINUTE /MO 2 /TR "c:\netstatlog.bat"
指令创建一个每隔两分钟记录计算机联网情况的任务
- 创建完成后,我运行这个任务,发现
netstatlog.txt
并没有显示出网络连接记录信息,而是请求的操作需要提升。然后发现是自己没有以管理员身份运行.
- 一段时间后查看
netstatlog.txt
文件,可以观察到运行的免杀的恶意程序5227test32.exe
,除此之外没什么不明联网情况。
监测了好几天之后,将txt
导入到Excel
中,整理发现最常见的是360se
即360游览器,360tray
即360安全卫士。
以及常见的进程[svchost.exe]
:Svchost.exe
是从动态链接库(DLL)中运行的服务的通用主机进程名称。这个程序对系统的正常运行是非常重要,而且是不能被结束的。
sysmon工具监控
- 用管理员身份运行
cmd
,配置文件,保存在sysmon.exe
同目录下就好。输入以下指令进行安装配置。
- 右键“我的电脑”选择管理,进入事件查看器,查看日志:
监测到进程创建:
监测到360对文件创建时间进行了修改:
- 监测到kali监听回连时的网络连接:
virscan网站分析
在上次用来查杀程序的网站上,等一段时间后会出现程序的行为分析,点击可以查看到对这个程序的行为描述,还有它对注册表是否有增删的情况等等:
systracer工具快照分析
我一共建立了3个快照,分别是:有后门程序但未回连时、后门程序回连时、执行指令操作时。
可以看到Kali回连成功后注册表发生变化:
对比未回连时和回连时可以发现后门程序建立了主机到Kali的tcp连接,进行了回连;后门程序对注册表项进行了修改:
对比回连时和输入指令时可以看到后门程序对文件、注册表等都进行了增改:
使用wireshark分析恶意软件回连情况
在Windows
主机上用netstat
命令可以查看TCP
连接的情况,其中就有后门程序所建立的TCP
连接:
使用wireshark
进行抓包后可以看到,其先进行了TCP
的三次握手,之后再进行数据的传输,如图所示,带有PSH,ACK
的包传送的就是执行相关操作指令时所传输的数据包:
使用PEiD分析恶意软件
PEiD是一个常用的的查壳工具,可以分析后门程序是否加了壳:
Process Monitor分析
使用Process Explorer分析恶意软件
打开Process Explorer
,在Process
栏点开explorer.exe
前面的小加号,运行后门程序5227test32.exe
,界面上就会出现它的基本信息。
双击后门程序那一行,点击不同的页标签可以查看不同的信息:
其调用的ntdll
库,ntdll.dll
是重要的Windows NT
内核级文件。描述了windows
本地NTAPI
的接口。当Windows
启动时,ntdll.dll
就驻留在内存中特定的写保护区域,使别的程序无法占用这个内存区域。
问题回答
(1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
- 可以使用
systracer
工具比较某个程序的执行前后计算机注册表、文件、端口的变化情况。 - 可以使用
Wireshark
进行抓包分析,然后查看该程序联网时进行了哪些操作。 - 使用
netstat
命令设置一个计划任务,指定每隔一定时间记录主机的联网记录等等。 - 可以通过
sysmon
工具,配置好想记录事件的文件,然后在事件查看器里面查看相关文件。
(2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
- 可以使用
systracer
工具比较某个程序的执行前后计算机注册表、文件、端口的变化情况。 - 可以使用
Wireshark
进行抓包分析,然后查看该程序联网时进行了哪些操作。
实验总结与体会
刚开始做实验时有点无从下手,参考了很多学长学姐的博客,通过这次实验,可以看到现在的恶意代码已经不能仅仅靠杀软来查杀了。我们需要了解使用不同软件来进行恶意代码分析的方法,希望以后也能运用这些知识来发现系统中的一些异常行为吧。