1.实践目标
3.基础问题回答
如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
使用Process Explorer工具或Proces Monitor工具,监视文件系统、注册表、进程/线程的活动。
schtasks /create /TN netstat5333 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt"
命令创建计划任务netstat5333
表示输出重定向,将输出存放在c:\netstatlog.txt文件中
netstat5333.bat
脚本文件,写入以下内容date /t >> c:\netstat5333.txt time /t >> c:\netstat5333.txt netstat -bn >> c:\netstat5333.txt
打开任务计划程序,可以看到新创建的这个任务:
双击这个任务,点击操作并编辑,将“程序或脚本”改为我们创建的netstat5333.bat批处理文件,确定即可。
执行此脚本一定时间,就可以在netstat5333.txt文件中查看到本机在该时间段内的联网记录:
当记录的数据足够丰富时,停止任务,将所得数据在excel中进行分析,此过程要一直保持开机联网状态才能持续监控(记录比较少)
统计图
2.使用sysmon工具监控系统(安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。)
我比较感兴趣的是进程创建ProcessCreate、进程创建时间FileCreatTime、网络连接NetworkConnect、远程线程创建CreateRemoteThread。
UtcTime, ProcessGuid, ProcessId, Image, CommandLine, CurrentDirectory, User, LogonGuid, LogonId, TerminalSessionId, IntegrityLevel, Hashes, ParentProcessGuid, ParentProcessId, ParentImage, ParentCommandLine
UtcTime, ProcessGuid, ProcessId, Image, TargetFilename, CreationUtcTime, PreviousCreationUtcTime
UtcTime, ProcessGuid, ProcessId, Image, User, Protocol, Initiated, SourceIsIpv6, SourceIp, SourceHostname, SourcePort, SourcePortName, DestinationIsIpv6, DestinationIp, DestinationHostname, DestinationPort, DestinationPortName
UtcTime, SourceProcessGuid, SourceProcessId, SourceImage, TargetProcessGuid, TargetProcessId, TargetImage, NewThreadId, StartAddress, StartModule, StartFunction
<Sysmon schemaversion="4.12">
<!-- 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>
<Image condition="end with">firefox.exe</Image>
</ProcessCreate>
<ProcessCreate onmatch="include">
<ParentImage condition="end with">cmd.exe</ParentImage>
</ProcessCreate>
<FileCreateTime onmatch="exclude" >
<Image condition="end with">chrome.exe</Image>
<Image condition="end with">firefox.exe</Image>
</FileCreateTime>
<NetworkConnect onmatch="exclude">
<Image condition="end with">chrome.exe</Image>
<Image condition="end with">firefox.exe</Image>
<SourcePort condition="is">137</SourcePort>
<SourceIp condition="is">192.168.70.1</SourceIp>
</NetworkConnect>
<NetworkConnect onmatch="include">
<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">firefox.exe</TargetImage>
<TargetImage condition="end with">winlogon.exe</TargetImage>
<SourceImage condition="end with">powershell.exe</SourceImage>
</CreateRemoteThread>
</EventFiltering>
</Sysmon>
参数解释:
exclude
相当于白名单,不用记录。include相当于黑名单。安装sysmon:执行命令sysmon.exe -i C:\Users\10147\sysmon20165333.xml,成功安装结果如下:
查看“事件查看器”,选择日志的位置,应用程序和服务日志/Microsoft/Windows/Sysmon/Operational,在这里,我们可以看到按照配置文件的要求记录的新事件,以及事件ID、任务类别、详细信息等。
把生成的恶意代码放在VirusTotal进行分析(也可以使用VirusScan工具),基本情况如下:
查看这个恶意代码的基本属性:
可以看出它的SHA-1、MD5摘要值、文件类型、文件大小,以及TRiD文件类型识别结果。(注:TRiD通过读取文件头,根据特征码进行文件类型匹配。)最神奇的是它可以查出来文件的编码方式,可以看出我是用VC++进行编译的!
还可以看到加壳情况:
以及该恶意代码的算法库支持情况:
4.使用PEiD分析恶意软件
检测压缩壳
检测加密壳(没有发现加密壳)
恶意代码分析,学习使用了数款用于检测恶意代码的指令或是软件,例如SysTracer、Sysmon等工具。恶意代码的分析方法主要分为静态分析方法和动态分析方法,而这两种方法在本次实验中都有所涉及。杀毒软件不是百分之百安全的,因此我们要时常对电脑的行为进行监控,
2018-2019-2 网络对抗技术 20165333 Exp4 恶意代码分析
原文:https://www.cnblogs.com/challengeeverthing/p/10667402.html