1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行。
1.2是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
1.3假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。
先来学习一下schtasks的命令,贴上参考链接schtasks的命令
schtasks /create /TN netcontrol1221 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > C:\Users\misaka\Desktop\netstatlog.txt"
命令创建计划任务netcontrol1221date /t >> C:\Users\misaka\Desktop\netcontrol1221.txt
time /t >> C:\Users\misaka\Desktop\netcontrol1221.txt
netstat -bn >> C:\Users\misaka\Desktop\netcontrol1221.txt
netcontrol1221.bat
,bat比txt多了日期与时间,这样看起来更方便。任务计划程序
→ 任务计划程序库
,可以看见新创建的任务netcontrol1221
,双击这个任务netcontrol1221
→操作
→编辑
,选择netcontrol1221.bat
文件,清空参数常规
中选择使用最高权限运行
,让程序自动运行条件
→取消勾选只有计算机使用交流电源才启动此任务
,防止电脑一断电任务就停止。netcontrol1221.txt
文件中查看到本机在该时间段内的联网记录。记录了较多的数据后,停止任务,将所得数据在excel中进行分析
数据
→自文本
→选择数据源
→netcontrol1221.txt
,勾选分隔符号
常规
→完成
统计分析数据
插入
→数据透视图
→勾选新工作表
周六
,拖到下面轴
和值
我们可以看到联网最多的软件是QQ.exe,然后是WinStore.APP.exe。
在开始前,先学习一下sysmon工具,贴上链接:使用轻量级工具Sysmon监视你的系统
过滤事件选项:
UtcTime, ProcessGuid, ProcessId, Image, CommandLine, CurrentDirectory, User, LogonGuid, LogonId, TerminalSessionId, IntegrityLevel, Hashes, ParentProcessGuid, ParentProcessId, ParentImage, ParentCommandLine
- 进程创建时间FileCreatTime
```
过滤事件选项:
UtcTime, ProcessGuid, ProcessId, Image, TargetFilename, CreationUtcTime, PreviousCreationUtcTime
```
- 网络连接NetworkConnect
```
过滤事件选项:
UtcTime, ProcessGuid, ProcessId, Image, User, Protocol, Initiated, SourceIsIpv6, SourceIp, SourceHostname, SourcePort, SourcePortName, DestinationIsIpv6, DestinationIp, DestinationHostname, DestinationPort, DestinationPortName
```
- 远程线程创建CreateRemoteThread
```
过滤事件选项:
UtcTime, SourceProcessGuid, SourceProcessId, SourceImage, TargetProcessGuid, TargetProcessId, TargetImage, NewThreadId, StartAddress, StartModule, StartFunction
```
<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>
解释一下:
include
或者exclude
,exclude
相当于白名单,不用记录;include
相当于黑名单explorer.exe
是Windows程序管理器或者文件资源管理器svchost.exe
是一个属于微软Windows操作系统的系统程序,是从动态链接库 (DLL) 中运行的服务的通用主机进程名称winlogon.exe
是Windows NT 用户登陆程序,用于管理用户登录和退出powershell.exe
是专为系统管理员设计的新 Windows 命令行外壳程序。该外壳程序包括交互式提示和脚本环境,两者既可以独立使用也可以组合使用接下来,启动sysmon
.\Sysmon.exe -i sysmon1221.xml
安装Sysmon,点击Agree
在事件查看器里查看日志
事件查看器
->应用程序和服务日志
->Microsoft
->Windows
->Sysmon
->`Operational查看日志,查找20181221s.exe
kali执行shell
获取win10的cmd,并查看事件查看器
可以发现,由于远程扫描设置了端口号,SysTracer添加了系统注册表。
通过查看Running Processes
、Opened Handles
、Opened Ports
,可以更直观地看到后门程序的执行,以及它添加了哪些句柄和连接的是哪个端口。
这一串,就是后门程序添加的句柄。
这里可以看到后门程序是通过``49165端口对
192.168.242.128:1221`进行连接,这里可以看出后门采用的是反弹端口连接方式。
但是由于提示SysTracer not registered
,导致我们无法再获取更加详细的信息,这个可能是因为我们未激活软件所以在试用阶段不能使用其全部功能。虽然详细信息无法探知,可至少能够得知哪些地方被更改了。
由于我们已经执行了shell并且进行了一些操作(例如:查看当前文件夹内的文件夹等),所以我们可以很明显地发现注册表发生了改变。
此处变化的注册表有:
HRZR_PGYFRFFVBA //
{6Q809377-6NS0-444O-8957-N3773S02200R}VFfGenpre FIfGenpre.rkr
DhcpInterfaceOptions
LeaseObtained Time
LeaseTeminatesTime
T1
T2
Seed
由于我们在kali中执行了shell,并且执行了dir
指令查看文件夹内容,相对应的这里会执行cmd.exe和conhost.exe
同时,系统删除了一系列的dll,添加了相应的句柄。
ip.addr == 192.168.242.1 and ip.addr== 192.168.242.128
可以发现,首先是两台机器进行了TCP协议的三次握手,发送了大量的ACK包。
说明该后门程序采用反弹式连接;建立连接后,双方会不断传一大堆ACK包,有时还伴有PSH+ACK包(进行数据传输)。
查看程序进程号和开放的端口号。
使用PEiD进行外壳检查。
使用systracer分析,查看其对注册表、dll文件和进程的修改。
使用wireshark进行抓包分析,查看异常流量。
使用Process Explorer工具或Process Monitor工具,监视文件系统、注册表、进程/线程的活动。
上次实验是教我们怎样入侵计算机,本次实验是教我们怎样查看分析计算机是否被入侵。本次实验略有难度,很多软件都是以前没有用国的,对于注册表之类的系统文件也极少接触,不得不通过查看学长学姐的博客,查阅其他资料,才勉强可以分析。对于现实社会的我们来说,检测入侵比入侵更加有意义和实用性。因为入侵是违法的,但是检测入侵是我们都可以做的。通过自己动手实现,对恶意代码有了更加深入的理解,意义非凡。
原文:https://www.cnblogs.com/MisakaYuii-Z/p/14643636.html