实践目标
(1)是监控你自己系统的运行状态,看有没有可疑的程序在运行。(2)是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
1.系统运行监控
(1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
(2)安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
参考:schtask与sysmon应用指导
实际日志的分析还需要发挥下自己的创造力,结合以前学过的知识如linux的文本处理指令等进行。分析的难点在于从大量数据中理出规律、找出问题。这都依赖对结果过滤、统计、分类等进一步处理,这就得大家会什么用什么了。
2.恶意软件分析:分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件
(3)读取、添加、删除了哪些注册表项
(4)读取、添加、删除了哪些文件
(5)连接了哪些外部IP,传输了什么数据(抓包分析)
问题回答
(1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所以想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
联网情况:sysmon监控系统或启动任务计划,也可以使用wireshark捕包分析
对注册表的操作:使用systrace进行主机恶意代码运行前后的快照对比
系统运行的操作:通过sysmon工具,配置好想记录事件的文件,通过日志文件查看
(2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
提交到Virscan扫描可以得到程序或进程的基本信息及拥有行为能力信息
实验总结与体会
本次实验弹性大,可以通过多种方式完成,同样说明恶意代码也是存在很多不经意显示出来自己的"恶意"的小瞬间(若要人不知,除非己莫为)。只要提高警惕,掌握理论的知识加上科学的技能就能一定程度的防止恶意代码入侵我们的电脑。其次我发现平时自己忽略的一些问题,比如有时候电脑很卡,然后查看任务管理器就会发现磁盘占用100%,但是却没有几个应用在运行,这个时候通常会想可能自己点击鼠标太多次,CPU切换太频繁,导致的占用,电脑重启以后就会好,现在发现有可能是恶意代码在后台运行。
实践过程记录
1.系统运行监控
1.1windows任务计划schtasks
简单实现
-
使用指令
schtasks /create /TN netstat /sc MINUTE /MO 5 /TR "cmd /c netstat -bn > c: etstatlog.txt"
记录每5分钟有哪些程序连接了网络
-
在netstatlog.txt文件里面可以看到网络连接的日志
批处理
-
C盘下建立文件netstatlog5329.bat写入一下内容
date /t >> c: etstatlog5329.txt
time /t >> c: etstatlog5329.txt
netstat -bn >> c: etstatlog5329.txt -
打开任务计划,创建名为netstat20145329的任务,任务执行指令C: etstatlog5329.bat>>C: etstatlog5329.txt,每隔五分钟重复一次,使用最高权限运行
-
启动任务,以管理员权限运行netstatlog5329.bat,在netstatlog5329.txt文件中可以看到带有时间日期信息的网络连接的日志
1.2sysmon监控系统
- 写好配置文件Sysmoncfg.xml
<!-- 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>
<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>
-
以管理员身份运行CMD,进行sysmon安装
-
sysmon根据sysmoncfg.xml文件进行配置更新
-
确认sysmon正在运行进行监控
-
在应用与服务日志里面查看日志文件,可以看到之前设置的任务计划运行的信息
-
启动恶意代码,kali回连查看日志文件,发现有一个程序创建的一条日志,还有一条程序连接外部ip的一条日志
-
可以在日志中看到可执行文件的创建信息
-
从上一条可执行文件的创建信息中可以看到文件是由VS创建的功能代码,也就是说文件应该为单机操作,当时却发现可执行文件有联网的行为,可以怀疑这是一个伪装的恶意代码,可能为别人设置的一个后门程序,连接的目的IP即为发出攻击主机的IP
2.恶意软件分析
2.1静态分析
-
将实验二的恶意代码5329meters_backdoor.exe上传到Virscan扫描,进行文件行为分析
-
文件加了壳,隐藏了一些原本的属性,值得深究
-
文件建立到一个指定的套接字连接,并且后面给出了一个IP和端口(确实是我们自己设置时候的IP和端口),这是攻击主机的IP和端口
-
程序对注册表可以进行删除操作
-
文件可以创建时间对象,,事件对象可以分为人工重置和自动重置,属于文件的属性,一般为被通知,但是这个文件可以创建事件对象,说明它应该是对其他事件有一定的控制能力,值得怀疑
2.2动态分析
动态分析之TCPview
- 打开TCPview,可以看到计算机正在运行的程序,运行恶意代码回连kali,TCPview红色标识jdyshellcode5329.exe恶意代码运行
动态分析之SysTrace
-
1.准备kali攻击机,Windows靶机,SysTracer2.10分析软件,运行sysTrace软件对windows计算机的应用情况进行快照,保存为Snapshot #1
-
使用kali终端向windows发送20145329.c文件,windows再次快照,保存为Snapshot #2
-
3.打开kali攻击机msfconsle,开放监听,windows下打开木马jdyshellcode5329.exe,回连kali,windows再次快照,保存为Snapshot #3
-
4.kali中对windows靶机进行屏幕截图,windows再次快照,保存为Snapshot #4
-
通过比较每次快照文件的区别,来判断相应的变化
-
Snapshot #2和Snapshot #1比较c盘下多了一个文件20145329.c(kali通过终端传送给windows的文件)
-
Snapshot #3和Snapshot #2相比,回连kali以后注册表发生了变化
-
并且应用里面增加了很多DLL文件(后门启用的)
-
还有jdyshellcode5329.exe后门程序在多次运行
-
Snapshot #3和Snapshot #4对比注册表发生了变化
动态分析之wireshark抓包
-
windows回连kali时打开wireshark分析器
-
搜索源ip为kali发起的连接,发现kali先和windows进行三次握手连接,使用端口5329
-
接着后面就是windows不断回连kali(后门程序作用)