(1)监控本身系统的运行状态,看有没有可疑的程序在运行。web
(2)分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽可能使用原生指令或sysinternals,systracer套件。shell
(3)假定未来工做中你以为本身的主机有问题,就能够用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。windows
(1)使用如计划任务,每隔一分钟记录本身的电脑有哪些程序在联网,链接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出全部连网的程序,连了哪里,大约干了什么,它这么干是否合适。浏览器
(2)安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控本身主机的重点事可疑行为。安全
分析该软件在启动回连、安装到目标机及其余任意操做时,网络
该后门软件app
(1)读取、添加、删除了哪些注册表项tcp
(2)读取、添加、删除了哪些文件ide
(3)链接了哪些外部IP,传输了什么数据(抓包分析)工具
(1)新建 4320netstat.bat 文件,能够先建立txt文本文件,再直接把后缀名修改成bat,文件中内容以下:
date /t >> c:\4320netstat.txt time /t >> c:\4320netstat.txt netstat -bn >> c:\4320netstat.txt
复制到C盘根目录下:
(2)在命令行中输入:schtasks /create /TN netstat4320 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstat4320.txt" 建立windows计划任务。
(3)打开任务计划程序,编辑计划任务。
设置程序或脚本项为刚刚再C盘新建的文件,而且将该任务设置为使用最高权限运行,不然可能会运行失败。
接下来。就安静等待大约一个小时.......
......
打开C盘中的netstat4320.txt文件能够看到已经记录了这段时间以来的全部程序的运行状况:
把全部这些记录导入Excel表格中:
在excel中我使用数据透视图,对全部这段时间之内的全部进程运行的次数进行了统计:
能够看到出现最多的是qq、qq浏览器、虚拟机、360、wireshark等,还有一些网络链接进程以及个人后门程序,这些出现最多的都是正常的一些进程,并且都是我主动打开并运行的一些程序。
可是,也有其余的一些程序虽然不是恶意的,但却在后台偷偷运行,在自启动,好比:FLASH、搜狗云、搜狗工具、TP安全游戏中心、游戏下载(电脑上有游戏但没打游戏,安全中心和下载居然自动运行了)等。
虽然个人电脑上没有恶意的一些程序做为后门在运行,可是却有自启动程序在后台在没有个人受权下无谓地占用CPU,实属terrible!
进入官网下载SysinternalsSuite.zip并解压。
在SysinternalsSuite所在目录下建立sysmon20174320.xml,以文本文档方式打开输入代码保存并退出。
以管理员身份运行cmd,在SysinternalsSuite目录下执行Sysmon64.exe -i sysmon20174320.xml(电脑是64位的因此运行的程序是Sysmon64.exe),开始安装sysmon工具:
安装成功后,打开事件查看器—应用程序和服务日志—Microsoft—Windows—Sysmon—Operational查看根据配置信息sysmon2014320.xml记录的进程信息:
能够查看MD五、SHA-一、文件类型、文件大小、加壳方式等相关信息。
同时也能看到后门程序的回连ip、端口、方式,利用的注册表等等信息。
可见virustotal这个网站仍是至关可靠,虽然是不能动态地分析恶意软件,不能深刻地对恶意软件进行监控,可是却能在报毒提醒用户的同时给出恶意软件的相关基本信息为用户做为参考,这样的基本信息基本上是完整客观地描述清楚了这样一个程序,从某种意义上来讲是很是有用的。
使用wireshark监听Vmware的接口,保持wireshark在监听状态。
打开Kali,找到以前实验中我生成的后门程序backdoor_4320.exe文件,打开msf控制台进行一下反弹回连:
回连成功后,在Wireshark过滤器中输入筛选条件【ip.addr == 192.168.10.128】查看相关的协议包信息
主机IP:192.168.10.1,虚拟机IP:192.168.10.128
能够看到主机和Kali虚拟机交换了不少TCP包,在互相传送SYN、ACK信息,进行了屡次握手。
在回连成功后进行dir操做,继续进行捕包:
能够看见在握手的同时,主机向虚拟机发送了不少信息包。
在此我挑了其中一个包来查看,能够看到有192字节的数据,可是内容是通过加密的,所以没办法知道具体的内容。
在进行上述的反弹回连和回连成功后的dir操做后,打开事件查看器,观察一下sysmon工具的日志记录发生了怎样的变化:
日志名称: Microsoft-Windows-Sysmon/Operational
来源: Microsoft-Windows-Sysmon
日期: 2020/4/13 18:13:55
事件 ID: 3
任务类别: Network connection detected (rule: NetworkConnect)
级别: 信息
关键字:
用户: SYSTEM
计算机: DESKTOP-GTUACKS
描述:
Network connection detected:
RuleName:
UtcTime: 2020-04-13 10:13:54.201
ProcessGuid: {a4b640dd-3b61-5e94-0000-0010bd7e2f12}
ProcessId: 18704
Image: F:\网络对抗20174320\ncat\backdoor.exe
User: DESKTOP-GTUACKS\浅歌韶华
Protocol: tcp
Initiated: true
SourceIsIpv6: false
SourceIp: 192.168.10.1
SourceHostname: DESKTOP-GTUACKS
SourcePort: 53971
SourcePortName:
DestinationIsIpv6: false
DestinationIp: 192.168.10.128
DestinationHostname:
DestinationPort: 4320
DestinationPortName:
事件 Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Microsoft-Windows-Sysmon" Guid="{5770385f-c22a-43e0-bf4c-06f5698ffbd9}" />
<EventID>3</EventID>
<Version>5</Version>
<Level>4</Level>
<Task>3</Task>
<Opcode>0</Opcode>
<Keywords>0x8000000000000000</Keywords>
<TimeCreated SystemTime="2020-04-13T10:13:55.651639600Z" />
<EventRecordID>16597</EventRecordID>
<Correlation />
<Execution ProcessID="13552" ThreadID="14472" />
<Channel>Microsoft-Windows-Sysmon/Operational</Channel>
<Computer>DESKTOP-GTUACKS</Computer>
<Security UserID="S-1-5-18" />
</System>
<EventData>
<Data Name="RuleName">
</Data>
<Data Name="UtcTime">2020-04-13 10:13:54.201</Data>
<Data Name="ProcessGuid">{a4b640dd-3b61-5e94-0000-0010bd7e2f12}</Data>
<Data Name="ProcessId">18704</Data>
<Data Name="Image">F:\网络对抗20174320\ncat\backdoor.exe</Data>
<Data Name="User">DESKTOP-GTUACKS\浅歌韶华</Data>
<Data Name="Protocol">tcp</Data>
<Data Name="Initiated">true</Data>
<Data Name="SourceIsIpv6">false</Data>
<Data Name="SourceIp">192.168.10.1</Data>
<Data Name="SourceHostname">DESKTOP-GTUACKS</Data>
<Data Name="SourcePort">53971</Data>
<Data Name="SourcePortName">
</Data>
<Data Name="DestinationIsIpv6">false</Data>
<Data Name="DestinationIp">192.168.10.128</Data>
<Data Name="DestinationHostname">
</Data>
<Data Name="DestinationPort">4320</Data>
<Data Name="DestinationPortName">
</Data>
</EventData>
</Event>
这是运行了回连的后门文件后sysmon更新的日志,能够清晰地看到攻击者的IP地址、端口号,被监听的主机IP地址、端口等关键信息。
在进行dir操做后,立马新增了两个日志:
显然主机受到了虚拟机的控制,在对虚拟机所发出了dir指令进行响应,即马上启动了SearchFilterHost.exe、SearchProtocolHost.exe。
SearchFilterHost.exe,SearchIndexer.exe和SearchProtocolHost.exe是Windows 的桌面搜索引擎的索引程序,它会在计算机空闲时自动扫描索引位置的文件名、属性信息和给定类别的文件内容,这些索引位置默认包括桌面、收藏夹、开始菜单、系统目录,以及在Windows 中添加到 Libraries 中的目录。
为了有趣我又尝试了screenshot(截屏)和webcam_snap(拍照)命令来观察是否有日志的更新,然而出乎意料的是,并无......
不知道为何,这样攻击性相对来讲更强的命令居然没有被sysmon监测到,甚至摄像头都已经被调用了,它都没能反应过来。
这工具不行啊.......
下载并安装systracer。
配置好端口号4320和安装路径:
安装好systracer之后,就能够开始进行恶意软件的分析了。
为了实现多方位、多角度的分析,我对如下六个状态的快照进行了对比:
Snapshop #1:(正常状态)
Snapshop #2:
Snapshop #3:
Snapshop #4:
Snapshop #5:
Snapshop #6:
对比#1和#2,即正常状态和启动回连时的状态:
能够看到增长了大量的注册表,也有很多注册表在那个时段进行了删改,可是也仅仅停留于此,由于注册表的具体内容没办法获悉,只是说这些注册表因为恰好发生在那个时间段,所以判断多是启动操做引发的变化。
可是在应用栏并无看到后门程序的踪影,综上,能够大体判断若是仅仅是启动后门程序,在没有安装到主机以前,几乎是不会对主机形成任何影响的。
对比#1和#3,即正常状态和运行后门程序并成功回连的状态:
能够看到后门程序对应的注册表是发生了变化的,虽然看不懂其中注册值的含义,可是能够清楚看到注册表的修改。
而且新增了大量的后门程序所对应的注册表,不一样于以前#1和#2所对比的结果,这一次就很明显的能看到相关注册表的增改。
另外,甚至这个回连的过程都看得清清楚楚,包括端口号、目的IP、源IP等等,能够很明晰地证实了回连成功,主机已经受到了虚拟机的监听。
对比#3和#4,即进行截新建文件操做先后:
能够清楚的看到F盘指定位置文件是多了一个刚刚新建的4320.txt。
而且在文件新增的同时,关于后门程序的注册表也有进行响应的增长、改动。
对比#3和#5,即进行截屏操做先后:
这两次的快照虽然是有注册表的变更,可是与后门程序相关的注册表倒是没有任何变化,没有增长也没有改动,所以能够得出结论,在进行截图操做先后,程序注册表不会发生改变。
可是,从理论上来讲,在文件方面,应该是能够看到新增的那张截图保存下来,然而不知道是由于虚拟机内存在主机上的存储位置有问题仍是说文件太多被我漏掉,我并未有看到新增的那张jpeg格式的截图文件。
对比#3和#6,即普通后门回连状态和开启摄像头录像状态:
经过网上查找资料我学习到与摄像头有关的注册表主要就是图中的HKEY_LOCAL_MACHINE -> SYSTEM -> CurrentControlSet -> ksthunk里的,而偏偏当我执行摄像命令的同时,ksthunk里的注册表确实发生了变化。不只有增长,也有相应的修改。
同时除了主机自己的硬件注册表之外,关于后门程序相关的注册表也有大量的新增。我我的猜想应该是执行摄像操做而新增的一些指令,固然,因为在Kali里的摄像视频须要经过网页来实时预览,因此部分的注册表应该是关于这个记录了这些注册信息。
经过深刻学习,我又去查找了注册表相关的一些资料,学习了大多数这些常见的项分别有什么用:
①HKEY_CLASSES_ROOT:
这个项包含全部的文件类型,文件关系,图标文件名,com对象等信息(也就是说哪种文件要被哪种应用程序打开都会记录在这个项里面)
②HKEY_USERS:
全部WINDOWS用户的文件都会记录在这个项里面,每一个用户会有本身的项以保存我的设置
③HKEY_CURRENT_USER:
这个项保存了目前登录的用户文件,以及个性化的设置,如 桌面外观,软件设置,开始菜单等.会随着登录的用户不一样而有所改变.这个项实际上是HKEY_USERS的子项,当用户登录系统后即由HKEY_USERS将用户的登录设置值复制一份而成为HKEY_CURRENT_USER的项
④HKEY_LOCAL_MACHINE:
这个项保存了绝大部分的系统信息,包括硬件配置,网络设置,以及你所安装的软件等,是注册表里最重要也最庞大的项,当你用设备管理器更改了硬件的设置时,这个项里的文件也会跟着变更,因为HKEY_LOCAL_MACHINE是常接触的项,所以再说说下面的5个子项 :
⑥HKEY_CURRENT_CONFIG :
此项主要记录PNP设备及硬件的设置值(这与HKEY_LOCAL_MACHINE的部份内容重叠,这是因为XP支持"多硬件设置文件")
了解过这些后就会发如今利用后门进行操做时(程序的运行,文件的新建,执行一些msf的指令,I/O设备的调用等等)注册表会进行改动也就是天然的了。
(1)若是在工做中怀疑一台主机上有恶意代码,但只是猜测,全部想监控下系统一每天的到底在干些什么。请设计下你想监控的操做有哪些,用什么方法来监控。
(2)若是已经肯定是某个程序或进程有问题,你有什么工具能够进一步获得它的哪些信息。
(1)自定义的计划任务不执行。
起初,我是直接在C盘新建txt文件后,想修改里面的内容,可是由于我电脑权限的缘由是不让我保存修改的txt文件内容的。没办法,只能是在D盘建好后再拷过来,可是拷过来之后我再把txt修改成bat后缀就怎么也没办法让计算机运行我这个任务。尝试了好久发现,必须是先在别的位置修改了后缀名以后再拷过来,存在C盘里的必须是一步到位的bat文件,这样的修改顺序是不能颠倒的。这应该是我电脑权限的问题,我一直发现我电脑对于权限要求很严格,不少操做都必须是管理员身份来进行。
(2)sysmon快照后的数据分析艰难。
这应该是你们都会遇到的问题,进行完快照之后,因为在两次时间点中间并非只有后门程序发生了改变,不少电脑上的其余程序、其余软件也在每分每秒地发生变化,致使最后比较不一样的时候会有成千上万的注册表发生变化、会有成千上万的文件发生变化。所以,想要在这么多的信息中找到咱们想要的,对咱们分析有帮助的信息实在是很是困难。这时,就是考验咱们对注册表,对文件的熟悉程度了,最好是要先去了解清楚注册表的相关知识再来进行分析,这样才能事半功倍。
此次实践让咱们学习了更多种方法来发现恶意软件存在的可能,不只仅是像原来同样经过网站扫描这样一些静态方法去检测,一样也能够借助一些动态的工具,在恶意代码执行的状况下,利用调试工具对恶意代码实施跟踪和观察,经过分析系统状态,分析通讯包的信息,对恶意程序进行识别监控等防范措施。在实践中不光学习到了老师教的方法,也自学了其余的不少分析方法,这么多的方法无论是分开仍是综合使用都有意想不到的效果。这样一次较为综合性的实验,包括了不少内容,但其实也让人发现,恶意软件的存在,若是是真的有意识去发现与检测的话,不依靠杀软,咱们本身也能经过这些踪影发现其存在,咱们在平时更是不能掉以轻心,时常监控本身的电脑养成好习惯,毕竟通过上一次实践就让咱们认识到了并非全部的恶意代码都会被杀毒软件拒之门外。