一、实践目标
1.监控你自己系统的运行状态,看有没有可疑的程序在运行。
2.分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
3.假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。
二、实践内容(3.5分)
2.1系统运行监控(2分)
(1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
(2)安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
实际日志的分析还需要发挥下自己的创造力,结合以前学过的知识如linux的文本处理指令等进行。分析的难点在于从大量数据中理出规律、找出问题。这都依赖对结果过滤、统计、分类等进一步处理,这就得大家会什么用什么了。
2.2恶意软件分析(1.5分)
分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时,该后门软件
(3)读取、添加、删除了哪些注册表项
(4)读取、添加、删除了哪些文件
(5)连接了哪些外部IP,传输了什么数据(抓包分析)
三、实践步骤
1.系统运行监控
使用schtasks指令监控系统运行:
(1)在D盘下新建一个文本文档,输入下列内容后,更名为netstatlog.bat
date /t >> D:\netstatlog.txt
time /t >> D:\netstatlog.txt
netstat -bn >> D:\netstatlog.txt
以管理员身份运行powershell,输入指令schtasks /create /TN netstat /sc MINUTE /MO 2 /TR "d:\netstatlog.bat"
,创建一个每隔两分钟记录计算机联网情况的任务
短时间记录与分析:
这些回环地址的可以抛弃,重点关注别的地址链接:
由443,80端口可以猜测应该是链接某些服务器,简单查询了一下:
但仅仅凭借这几个IP地址,并不能有实质性的了解,所以还需要进一步监测分析。
长时间记录与分析:(操作细节详见学姐博客)
从图表中可以看出:ali213_box.exe运行次数最多,查了一下是游侠云盒(果然是游戏软件)
2.使用sysmon工具
(1)下载并安装,创建配置文件,并放到Sysmon.exe目录中。注意:这里老师给的代码需要修改:<Sysmon schemaversion="3.10">
中的3.10要根据实际修改,我的版本是4.20,所以修改为
<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>
<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)以管理员身份运行powershell,在对应路径下运行.\Sysmon.exe -i .\Sysmoncfg.txt,以安装Sysmon
(3)在事件查看器中的应用程序和服务日志下,查看Microsoft->Windows->Sysmon->Operational
。
(4)后门程序运行分析:
根据这则日志:可以发现是我的后门程序,通过本地端口58024向IP为192.168.43.56的5313端口发送TCP请求链接。
3.恶意软件分析
一、文件扫描
(1)使用virscan分析恶意软件:
查看其行为分析:
该后门用了kernel32.dll
和msvcrt.dll
两个链接:kernel32.dll是Windows 9x/Me中非常重要的32位动态链接库文件,属于内核级文件。它控制着系统的内存管理、数据的输入输出操作和中断处理,当Windows启动时,kernel32.dll就驻留在内存中特定的写保护区域,使别的程序无法占用这个内存区域。而msvcrt.dll是微软在windows操作系统中提供的C语言运行库执行文件(Microsoft Visual C Runtime Library),其中提供了printf,malloc,strcpy等C语言库函数的具体运行实现,并且为使用C/C++(Vc)编译的程序提供了初始化(如获取命令行参数)以及退出等功能,我们基本上每个C程序都会用到。
二、工具分析
(1)使用systracer工具分析恶意软件
我分别创建了三个快照:
1.初始状态,2.成功回连,3.远程操作,4.结束链接:
快照分析
(1)对比第一张和第二张不难发现:
1.增加了后门程序并获取了windows桌面权限,还有很多增加或删减的键值,增加或删减的.dll文件。
2.通过TCP建立了链接。
(2)二,三两张比较:发现其中有大量文件被删除后加载,或加载后再删除,大胆猜测可能和获取权限调用有关
(3)三、四比较:结束TCP链接,并新增回环
(2)使用wireshark分析:在恶意软件回连时,可以用wireshark捕捉通信内容。
先输入表达式ip.addr==192.168.43.56and tcp过滤掉不需要的内容接着就可以看到恶意软件回连的通信信息,可以看到先进行了TCP三次握手:
着可以看到攻击机向靶机传送代码:
(3)使用Process Explorer分析恶意软件:打开TCP/IP信息
这是实时运行时出现的线程,我们尝试KIll掉,我们会发现Kali机也失去了链接:
实践问题回答
如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
(1)我们可以使用一些工具帮助自己监测系统,可以实时监控电脑上的端口信息,如果受到怀疑的恶意代码启动的时候连接了一些看起来很可疑的端口,就可以进一步进行分析。
(2)我们可以通过在windows下建立一个监测本机连接ip地址的任务计划程序。
(3)可以通过sysmon监控几乎所有的重要操作,并在事件查看器中找到日志查看。
2.如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
(1)PE explorer工具,它可以对程序调用库等信息进行分析查看,还可以对其反汇编。
(2)PEiD工具,可以查看程序有没有被常用的加壳软件加壳。
(3)启动该程序,利用systracer及wireshark动态分析程序动向。
(4)利用wireshark抓包分析
实践感想
本次实践内容操作并不困难,但却很耗费时间,这就需要我们拥有足够的耐心。分析数据是一件枯燥乏味的事情,但当我们真正理解了数据背后的含义,则会收获很多。对于计算机方面的较量肯定会不断升级,而我们要做的就是学会利用现有的资源进行深入,深刻的学习。
当然在本次实践中,由于水平的限制,我对于某些概念的理解并没有那么透彻,这就需要我继续努力。