一、实践过程记录

1、系统运行监控

(1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。

进行实验前先使用管理员身份执行net user administrator /active:yes激活当前用户的管理员权限

在管理员身份的终端下使用如下命令,创建任务 netstat20212217,并以最高权限运行

schtasks /create /TN netstat20212217 /sc MINUTE /MO 1 /TR "D:\netstat20212217.bat" /RL  HIGHEST

进入D盘,创建定时任务脚本D:\test\netstat20212217.bat

date /t >> d:\test\netstat20212217.txt  
time /t >> d:\test\netstat20212217.txt  
netstat -bn >> d:\test\netstat20212217.txt

可以在“任务计划程序”中看到已创建的任务,一段时间后,test中出现了netstat20212217.txt文件。

一段时间后,netstat20212217.txt中出现了一些数据,我将其导入excel中,如下所示:0.png)

(2)安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。

sysmon下载链接:
https://download.sysinternals.com/files/Sysmon.zip

下载完成后,创建如下的sysmon.xml配置文件,并用 ./Sysmon.exe -i ./sysmon.xml加载配置

<Sysmon schemaversion="4.12">
  <!-- 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>

根据终端的提示,我下载的sysmon版本是4.90,改写sysmon.xml配置文件,并用 ./sysmon.exe -c ./sysmon.xml更新配置

<Sysmon schemaversion="4.90">
  <!-- 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">iexplorer.exe</Image>
      <SourcePort condition="is">137</SourcePort>
      <SourceIp condition="is">127.0.0.1</SourceIp>
    </NetworkConnect>

    <NetworkConnect onmatch="include"> 
      <DestinationPort condition="is">1318</DestinationPort>     
      <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>

之后按照实验二的步骤运行木马,并在攻击机上获取shell执行命令。
随后在windows上打开事件管理器,找到Microsoft->Windows->Sysmon->Operational,其中的网络连接日志可以看到攻击机的公网IPv6地址

2、恶意软件分析

(1)使用VirusTotal分析恶意软件

VirusTotal是一个在线平台,专注于提供多引擎恶意软件和病毒扫描服务。用户可以上传文件或输入文件的URL、IP地址等,以便对指定的文件或网址进行安全分析。该平台整合了多个杀毒引擎,使得用户能够通过一个单一的接口检测潜在的恶意内容。此外,VirusTotal还提供了一系列的高级功能,如VT Intelligence、VT Grep、VT Yara和VT Graph,这些功能可以帮助用户进行更深入的威胁狩猎和安全分析。自2004年创立以来,VirusTotal已经成为全球知名的威胁情报和安全分析工具。
检测结果如下:

(2)使用wireshark分析TCP流量包

打开wireshark使用tcp && (ip.src==47.116.178.215 || ip.dst==47.116.178.215) 筛选数据包(47.116.178.215是攻击机公网IP),可以看到大量的TCP数据包,但其中的数据已完全加密
在(1)启动回连时,没有源IP或目的IP为47.116.178.215的数据包
(2)安装到目标机时,可以看到本地首先请求了远端的2066端口,发送的是PSH,ASK请求。

PSH控制位,也称为推送功能位,用于指示发送方发送的数据应立即被接收方接收并进行处理,而不是被缓冲起来等待其他数据。当发送方设置PSH位时,它告诉接收方“请尽快将这些数据传递给应用程序”。这在某些需要即时处理数据的场景中非常有用,例如,当发送文本或文件传输时,接收方希望能够立即看到发送方发送的数据,而不是等待缓冲区填满后才进行处理。

(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。
我执行了sysinfo命令,随后抓到了如下数据包:

(3)使用SysTracer动态分析

SysTracer的下载官网在
SysTracer Download (blueproject.ro)
在木马运行前和木马与远端连接后分别截取系统快照,为了加快快照进程,我只截取了系统注册表,但是每次获取还是需要3分钟左右。

将两次快照进行对比,可以看出注册表中修改了部分信息。

二、实验问题回答

(1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。

可以进行日志文件审查,使用日志分析工具,如Logstash、Splunk或自定义脚本,来筛选异常事件,如未授权的登录尝试、异常的访问模式等。
也可以网络流量监控,使用Wireshark、tcpdump或NetFlow,来捕获和分析网络数据包。注意异常的流量模式,如与不寻常的IP地址通信或在非工作时间的流量峰值。
最后,还要注意定期进行恶意软件扫描,使用知名的反病毒软件,如ClamAV(Linux)、Windows Defender(Windows)或其他第三方安全产品,来扫描已知的恶意软件。

(2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。

可以使用Process Monitor,查看进程的文件系统操作,包括文件的创建、读取、写入和删除操作。以及注册表的更改,如键值的添加、修改或删除。 进程和线程的网络活动,包括TCP/UDP连接和端口使用情况。进程的性能数据,如CPU使用率和内存占用。通过过滤和搜索功能,可以快速定位到特定进程的相关事件。
Wireshark 是一个网络协议分析器,可以捕获和交互式地浏览网络上的流量。用它可以识别程序的网络行为,如与远程服务器的通信模式。

三、实验总结与体会

一开始的时候,我没有给任务赋予最高权限,结果每次打开netstat20212217.txt文件时,得到的结果都只有:请求的操作需要提升。

原因在于这个命令的/RL开关的值默认为LIMITED;要想解决这个问题也很简单,只需要在命令末尾加上/RL HIGHEST,表示用最高权限执行,
变成```

schtasks /create /TN netstat20212217 /sc MINUTE /MO 1 /TR "D:\netstat20212217.bat" /RL  HIGHEST
posted on 2024-04-11 17:40  亦知亦行  阅读(1)  评论(0编辑  收藏  举报