2018-2019-2 网络对抗技术 20165228 Exp4 恶意代码分析
2018-2019-2 网络对抗技术 20165228 Exp4 恶意代码分析
1、如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
监控注册表和文件改动、端口占用、进程驻留等操作。可使用本次实验的netstat记录网络连接情况然后分析,当然wireshark等工具也可以使用。
2、如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
可通过查看sysmon日志找到该进程邻近或同一时刻的进程动态,源IP、目的IP,端口号和进程号等,以及进一步分析它所创建的子进程。
实验内容
任务一:使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
1、在windows命令行下输入命令schtasks /create /TN 20165228netstat /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt"
创建名20165228netsta
的任务计划
> TN:Task Name,本例中是netstat
> SC: SChedule type,本例中是MINUTE,以分钟来计时。本例中设置为1分钟
> MO: MOdifier
> TR: Task Run,要运行的指令是 netstat -bn,b表示显示可执行文件名,n表示以数字来显示IP和端口
2、通过notepad
创建netstatlog.bat
内容如下:
date /t >> c:\netstatlog.txt
time /t >> c:\netstatlog.txt
netstat -bn >> c:\netstatlog.txt
然后将其放到C盘根目录下(需要管理员权限)
3、编辑任务操作
- 进入
管理工具
,在任务计划程序
中找到刚创建的任务20165228netstat
- 将
操作
页面里的启动程序修改为netstatlog.bat
,并且在常规
页面里开启以最高权限执行
以防权限不够无法在C根目录创建.txt文件
4、由于是每隔一分钟就记录网络情况,所以此时可以看到netstatlog.txt
里已经有更新的内容。(然后等待很长一段时间)
5、用excel生成图表分析
任务二:安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为
1、创建20165228monconfig.txt
作为sysmon的配置文件
内容如下:
<Sysmon schemaversion="3.10">
<!-- 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">137</SourcePort>
<SourceIp condition="is">127.0.0.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">winlogon.exe</TargetImage>
<SourceImage condition="end with">powershell.exe</SourceImage>
</CreateRemoteThread>
</EventFiltering>
</Sysmon>
2、进入sysmon解压后的路径,执行sysmon.exe -i C:\20165228monconfig.txt
开始安装sysmon
3、安装完成
4、如果修改了配置文件,需运行sysmon.exe -c C:\20165228monconfig.txt
5、进入事件查看器查看日志
-
在
应用程序和服务日志/Microsoft/Windows/Sysmon/Operational
路径下可以找到sysmon日志文件
-
运行之前制作的后门回连我的kali
-
查询得到进程号为
21672
-
在日志中以进程号为关键词搜索相关信息
-
首先找到了我的后门程序
-
然后发现它还创建了一个子程序
conhost.exe
任务三:恶意软件分析
分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件
(3)读取、添加、删除了哪些注册表项
(4)读取、添加、删除了哪些文件
(5)连接了哪些外部IP,传输了什么数据(抓包分析)
1、使用VirusTotal分析恶意软件
- 将后门程序丢到VirusTotal中进行分析,并得到SHA-1、MD5摘要值、文件类型、大小、TRiD文件类型识别结果和算法库支持情况
2、使用Process Monitor分析恶意软件 - 先反弹连接kali,并且得到进程号
15152
- 发现有很多记录,找出需要的很不容易。我发现它有
filter
功能,于是我以pid is 15152
为条件进行了过滤
- 得到结果
所以我的后门应该是修改了我的注册表
3、使用Process Explorer分析恶意软件
4、使用PEiD分析恶意软件 - 加壳:
- 不加壳:
5、使用systracer分析恶意软件
保存了两个快照:正常运行和成功回连 - 通过
compare
发现注册表里出现了改动
- 查看后门软件的“opened handles”来对比
- 查看后门软件的"open port"来对比
其中192.168.43.219
是win10 IP192.168.43.171
是kali IP
问题
- 在安装system monitor时,在按照博客编写配置文件开始执行安装后,提示
incorrect or unsupported schema version 3.10 . current sysmon schema version 4.20
意思是当前sysmon schema 版本为4.20,即3.10为不支持或不正确的版本号。
解决:我猜测与编写的配置文件有关,刚好在其中找到了有关版本的那一项,该为4.20即可成功安装。
实验感想
- 在此次实验中,我使用了许多恶意代码分析软件,从网络连接和端口、系统注册表变化等多方面的监控,然后具体定位到某一个或某一些进程后进入深入分析。一定程度上增加了我们自己排查恶意代码的能力,不再那么依赖杀软,并且对恶意代码的运行情况也有了一些理解。