【实验内容】
①系统运行监控
使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
②恶意软件分析
分析该软件在启动回连、安装到目标机及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣):
该后门软件读取、添加、删除了哪些注册表项
读取、添加、删除了哪些文件
连接了哪些外部IP,传输了什么数据(抓包分析)
【实验步骤 】
[part.1]结合windows计划任务与netstat命令
在C盘下新建一个“netstatlog.bat”和“netstatlog.txt”,当执行“netstatlog.bat”时,即可将记录的联网结果格式化输出到“netstatlog.txt”中,每5min记录下有哪些程序在连接网络:
schtasks /create /TN netstat4319 /sc MINUTE /MO /TR "cmd /c netstat -bn > c:\netstatlog.txt"
在C盘中创建一个“netstat4319.bat”脚本文件
date /t >> c:\netstat4319.txt
time /t >> c:\netstat4319.txt
netstat -bn >> c:\netstat4319.txt
并在其中写入以下内容(写入完后更改txt文件名后缀为bat):
在“任务计划程序”中可以看到我们新创建的这个任务
双击这个任务,点击“操作”—“编辑”,将“程序或脚本”改为我们创建的“netstat4319.bat”批处理文件,确定即可。
执行此脚本一定时间,就可以在“netstat4319.txt”文件中查看到本机在该时间段内的联网记录
等记录项目够多了再用xlsx进行分析:点击“数据”选项卡—“获取外部数据”,选择之前记录的文本“netstat4319.txt”
导入数据,然后生成表
将其协议项做成条形图,可见tcp协议占最大的比例
[part.2]使用sysmon监视系统
微软Sysinternals套件中的一个工具,可以从码云项目的附件里进行下载,工具先要配置文文件“4319.xml”和下载解压好的“Sysmon.exe”放在桌面(其中第一行为版本号,适应自己的版本自行修改,我的是v9.0)
<Sysmon schemaversion="9.0">
<!-- Capture all hashes -->
<HashAlgorithms>*</HashAlgorithms>
<EventFiltering>
<!-- Log all drivers except if the signature -->
<!-- contains Microsoft or Windows -->
<ProcessCreate onmatch="exclude">
<Image condition="end with">chrome.exe</Image>
</ProcessCreate> <FileCreateTime onmatch="exclude" >
<Image condition="end with">chrome.exe</Image>
</FileCreateTime> <NetworkConnect onmatch="exclude">
<Image condition="end with">chrome.exe</Image>
<SourcePort condition="is"></SourcePort>
<SourceIp condition="is">127.0.0.1</SourceIp>
</NetworkConnect>
<NetworkConnect onmatch="include">
<DestinationPort condition="is"></DestinationPort>
<DestinationPort condition="is"></DestinationPort>
<DestinationPort condition="is"></DestinationPort>
</NetworkConnect> <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>
<TargetImage condition="end with">firefox.exe</TargetImage>
</CreateRemoteThread>
</EventFiltering>
</Sysmon>
然后在cmd命令行中安装Sysmon
Sysmon.exe -i C:\.xml
在“我的电脑”—“管理”—“事件查看器”—“应用程序和服务日志”—/Microsoft/Windows/Sysmon/Operational
,可以查看到日期时间,事件id,任务类别等信息:
将实验二中生成的后门传送到主机后,kali进行监听,回连成功后,查找“4319”仔细查看事件及其信息:
发现正在调用的后台程序“20164319_backdoor.exe”,查看详细信息,可以看到这个后门映像文件的具体位置、源IP和端口、目的IP和端口等
[part.3]静态分析
①使用VirusTotal分析恶意软件
把生成的恶意代码放在VirusTotal进行分析(D5值、SHA-1值、文件类型、TRiD值 [TRiD通过读取文件头,根据特征码进行文件类型匹配]、需要的dll库):
②使用PEiD分析恶意软件是否加壳
PEiD(PE Identifier)是一款著名的查壳工具,其功能强大,几乎可以侦测出所有的壳,其数量已超过470 种PE 文档 的加壳类型和签名。
先用做实验三的时候生成的一个没有加过壳的后门“4319shellcode.exe”试试,什么都没找到。
测试一个upx加壳后的程序“4319_upx.exe”,查出了加壳信息
查看扩展信息:
[part.4]动态分析
①使用Process Monitor分析恶意软件
Process Monitor 是一款由 Sysinternals 公司开发的包含强大的监视和过滤功能的高级 Windows 监视工具,可实时显示文件系统、注册表、进程/线程的活动。
打开之后可见每个进程的详细描述
②使用Process Explorer
首先下载Process Explorer工具,打开软件,可以看出其对各个进程的详细记录,当靶机运行木马,回连攻击机时,我们可以看到Process Explorer对其进行的记录
②使用systracer分析恶意软件
安装systracer,在“agreet”
后将端口号设置为“4319”
点击“take snapshot”,分别存储以下快照:
Snapshot 1:未植入后门程序的自然状态
Snapshot 2:打开kali的msfconsle,靶机运行木马,回连kali,win10下再次快照
Snapshot 3:在kali中对靶机使用dir
指令,win10下再次快照
Snapshot 4:在kali中对靶机使用“g
etuid”
然后“getsystem”
进行提权操作,win10下再次快照
在“Applications”—“Running Processes”—“20164319_backdoor.exe”—“Opened Ports”,查看回连地址、远程地址和端口号
选择 Compare 比对计算机发生的变化。
【实验感悟】
本次实验紧接着所结合之前学习过的后门和免杀技术,从被攻击者的角度掌握了对后门软件和程序的监控能力,在加深了我们对网络安全和恶意代码的认识之后,学习去如何防范对抗,是一个循序渐进的过程。本次实验主要涵盖的恶意代码的分析方法主要分为静态分析方法和动态分析方法,同时也熟练掌握了使用一些检测软件对恶意代码和后门程序进行监控和分析,其中静态分析主要是对文件或程序本身的组成结构上进行扫描,而动态分析方法主要是利用调试工具对恶意代码实施跟踪和观察,从恶意代码的工作过程和意图上,进行多样化的分析。在实验过程中,我也遇到了各种各样的问题,在数次的尝试下得以解决,我觉得本次实验最大的收获还是教会我们从多种角度分析防范恶意代码的入侵,这也是我们以后要多研究发展和切身实验的方向。