20175133 于沛辰 Exp4 恶意代码分析
1.实践目标
1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行。
1.2是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
1.3假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。
二、实践内容
1.系统运行监控
(1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
(2)安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
实际日志的分析还需要发挥下自己的创造力,结合以前学过的知识如linux的文本处理指令等进行。分析的难点在于从大量数据中理出规律、找出问题。这都依赖对结果过滤、统计、分类等进一步处理,这就得大家会什么用什么了。
2.恶意软件分析
分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件
(3)读取、添加、删除了哪些注册表项
(4)读取、添加、删除了哪些文件
(5)连接了哪些外部IP,传输了什么数据(抓包分析)
三、实验过程
1、使用计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。
·一管理员身份在Windows命令指示符下运行指令 netstat -n 进行网络监控
·新建一个.txt文档,然后输入指令:
date /t >> d:\netstat20175133.txt
time /t >> d:\netstat20175133.txt
netstat -bn >> d:\netstat20175133.txt
·生成后修改其拓展名将其转换为.bat文件
·继续输入指令 schtasks /create /TN netstat /sc MINUTE /MO 1 /TR “d:\netstat20175133.bat” ,时刻记录计算机的联网情况
·打开“任务计划程序”配置一下计划任务
·参考之前学长学姐的博客利用Excel生成柱状图
·看起来还蛮正常的
2、Sysmon
·下载老师提供的Sysinternals,然后在其所在的目录下创建文件 sysmon_5133.xml
,输入代码如下(版本号改为自己所下载的版本,这里是3.10)
<Sysmon schemaversion="3.10"> <!-- Capture all hashes --> <HashAlgorithms>* </HashAlgorithms> <EventFiltering> <!-- Log all drivers except if the signature --> <!-- contains Microsoft or Windows --> <DriverLoad onmatch="exclude"> <Signature condition="contains">microsoft</Signature> <Signature condition="contains">windows</Signature> </DriverLoad> <NetworkConnect onmatch="exclude"> <Image condition="end with">chrome.exe.exe</Image> </NetworkConnect> <NetworkConnect onmatch="include"> <DestinationPort condition="is">80</DestinationPort> <DestinationPort condition="is">443</DestinationPort> </NetworkConnect> <FileCreateTime onmatch="exclude" > <Image condition="end with">chrome.exe</Image> </FileCreateTime> <ProcessCreate onmatch="exclude" > <Image condition="end with">chrome.exe</Image> </ProcessCreate> <CreateRemoteThread onmatch="include"> <TargetImage condition="end with">explorer.exe</TargetImage> <TargetImage condition="end with">svchost.exe</TargetImage> <TargetImage condition="end with">winlogon.exe</TargetImage> <SourceImage condition="end with">powershell.exe</SourceImage> </CreateRemoteThread>c </EventFiltering> </Sysmon>
·在sysmon所在文件夹下执行命令 sysmon.exe -i sysmon_5133.xml ,然后点击“Agree”完成安装
·以管理员身份运行“事件查看器”
以路径“应用程序和服务日志
→
Microsoft
→
Windows
→
Sysmon
→
Operational”
监控规则下的进程的日志文件、进程号、 路径等信息
·点开了一大堆,发现全是Windows系统程序
3、恶意软件分析
·下载安装SysTracer2.10分析软件(安装过程略过)
·关闭win10防火墙,同实验二步骤在kali中生成后门文件sy4.exe
·打开攻击机msfconsle,开放监听,win10下对注册表、文件、应用情况进行快照,保存为Snapshot #2
·将程序sy4.exe植入主机时进行快照,保存为Snapshot #1
·win10下打开sy4.exe
,回连kali,win10下再次快照,保存为Snapshot #4
·kali中对win10靶机进行屏幕截图,win10下再次快照,保存为Snapshot #3
(因为之前没明白SysTracer怎么用的,所以序号被我自己改乱了)
·如图,生成的四个快照
·发现程序序打开了用于回连的apache http服务,点开一看,IP 192.168.231.128确实是kali的,端口号也是学号5133
·因为使用了截图功能,所以这里很明显能看到
·对比一下#1 #2发现加入了一些注册表值
·在用wireshark抓一下包,发现有三次握手协议
四、问题回答
(1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
答:初步可以查看任务计划程序中是否有可疑的进程,如果不确定,可以像这次实验一样,利用netstat实时对后台进行监控,也可以利用这次的实验工具,监控注册表文件以及是否调用了异常的dll库,但是现在的杀毒软件都很灵敏,大多数也都是可以查出来的。
(2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
答:利用wireshark抓包分析是否有可疑的数据包,或者使用SYSTracer快照功能,在正在运行的文件中找到可疑文件查看其信息来判断是否有可疑行为。也可以利杀毒软件定向对这个程序进行扫描,或者放在专业网址上检测。
五、实践体会
这次的实验还是非常有用的,我们可以通过自己的手段去检查计算机的异常行为和恶意行为,也让我比较深刻的认识到了恶意代码的工作原理,对以后的自我防护有了专业性的理解。