2018-2019-2 20165219《网络对抗技术》Exp4 恶意代码分析
基础问题回答
实验目的
监控系统的运行状态,看有没有可疑的程序在运行
分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件
假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质
基础问答
如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
答:扫描日志
利用wireshark查看数据包,分析数据流
使用Process Explorer工具,监视进程执行情况
如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
答:利用wireshark查看数据包,查找可以数据连接
运行CMD --> 输入wmic --> process可以查看到进程的程序。
实验步骤
系统运行监控
C盘下新建netstatlog.bat 和 netstatlog.txt
在 netstatlog.bat 中输入
date /t >> c:\netstatlog.txt
time /t >> c:\netstatlog.txt
netstat -bn >> c:\netstatlog.txt
cmd中输入schtasks /create /TN 20165219netstat /sc MINUTE /MO 2 /TR "c:\netstatlog.bat"
用来创建一个任务
打开任务计划程序
双击这个任务,点击操作并编辑,将“程序或脚本”改为我们创建的netstat.bat批处理文件,并且将添加参数设置为空。
使用最高权限运行
执行此脚本一定时间,就可以在netstat5318.txt文件中查看到本机在该时间段内的联网记录
系统运行监控——利用Sysmon
确定要监控的目标
写配置文件
<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</Image>
<Image condition="end with">iexplorer.exe</Image>
<SourcePort condition="is">137</SourcePort>
<SourceIp condition="is">127.0.0.1</SourceIp>
</NetworkConnect>
<NetworkConnect onmatch="include">
<DestinationPort condition="is">5219</DestinationPort>
<DestinationPort condition="is">80</DestinationPort>
<DestinationPort condition="is">443</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>
</CreateRemoteThread>
</EventFiltering>
</Sysmon>
exclude相当于白名单,不用记录。include相当于黑名单
网络连接过滤掉了浏览器的网络连接、源IP为127.0.0.1的网络连接和目的端口为137的连接服务,且查看目的端口为80(http)和443(https)的网络连接。(137端口的主要作用是在局域网中提供计算机的名字或IP地址查询服务,一般安装了NetBIOS协议后,该端口会自动处于开放状态。127.0.0.1表示本机IP。)
远程线程创建记录了目标为explorer.exe、svchost.exe、winlogon.exe和powershell.exe 的远程线程。
explorer.exe是Windows程序管理器或者文件资源管理器
svchost.exe是一个属于微软Windows操作系统的系统程序,是从动态链接库 (DLL) 中运行的服务的通用主机进程名称。
winlogon.exe是Windows NT 用户登陆程序,用于管理用户登录和退出。
powershell.exe是专为系统管理员设计的新 Windows 命令行外壳程序。该外壳程序包括交互式提示和脚本环境,两者既可以独立使用也可以组合使用。
将此配置文件放在c盘中
启动sysmon
cmd进入sysmon的安装目录sysmon.exe -i c:\sysmon5219.txt
出现如下界面,点击agree
输入sysmon.exe -c c:\sysmon5219.txt
来运行此程序。
打开事件查看器,在应用程序和服务日志
-Microsoft-Windows-Sysmon-Operational可以看到按照配置文件的要求记录的新事件,以及事件ID、任务类别、详细信息
检测到进程的图
反弹连接
恶意软件分析
使用VirusTotal分析恶意软件
将exp3中生成的加壳后门在VirusTotal进行扫描
Systracer
下载完成->运行->agree->选第二个->设置监听端口号5219->安装完成
两次快照
回连
进行比对,点击compare
反弹连接一些增加的文件
Wireshark进行抓包分析
抓包前的设置
ncat连接时的流量包
遇到的问题
安装sysmon时报错
解决:将命令修改为.\Sysmon.exe -i C:\20165219Sysmoncfig.txt
实验总结与体会
此次试验有很多细节要注意,通过这个实验,重新认识了wireshark这个抓包软件,通过查看数据包,分析数据流达到监控的目的