2018-2019 20165235 网络对抗 Exp4 恶意代码分析

2018-2019 20165235 网络对抗 Exp4 恶意代码分析

实验内容

系统运行监控

  • 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
  • 安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
  • 参考:schtask与sysmon应用指导
  • 实际日志的分析还需要发挥下自己的创造力,结合以前学过的知识如linux的文本处理指令等进行。分析的难点在于从大量数据中理出规律、找出问题。这都依赖对结果过滤、统计、分类等进一步处理,这就得大家会什么用什么了。

恶意软件分析

  • 分析该软件在(1)启动回连(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。
  • 该后门软件
    读取、添加、删除了哪些注册表项
    读取、添加、删除了哪些文件
    连接了哪些外部IP,传输了什么数据(抓包分析)
  • 该实验重点在“分析”,不是“如何使用某软件”。组长、课题负责人要求写细一点,其他人可以重点放在分析上。

基础问题回答

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

  • 我在网上搜到一款监视电脑的软件Wise System Monitor,下载它可以进行进程监控;硬件监控会详细列出用户计算机硬件信息;操作系统监控,查看本机的操作系统详细信息;也可以查看下载上传速度、内存使用率和CPU使用率。
  • 可以扫描日志:
    方法一:使用可信软件:可以使用SREng软件。
    方法二:在CMD使用指令:CHKDSK D: /F /R >D:\ xxx.txt,D盘下会出现一个 xxx.txt,那就是扫描日志。
  • 可以参考下面实验内容进行监控。

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

  • 如果是某个程序,可以找出此程序,并且将此程序放入:Threatbook,virscan中进行分析。
  • 运行CMD --> 输入wmic --> process可以查看到进程的程序。
  • 使用“tasklist”命令查看具体进程的pid。采用ntsd -c q -p PID来杀死某一进程
  • 可以使用一下实验中采用到的Systracer分析注册表差异、文件、运行进程等的不同。

实践过程记录

1. 系统运行监控——计划任务

TN:Task Name,本例中是netstat
SC: SChedule type,本例中是MINUTE,以分钟来计时
MO: MOdifier
TR: Task Run,要运行的指令是 netstat
-bn,b表示显示可执行文件名,n表示以数字来显示IP和端口

在cmd中输入,C:\schtasks /create /TN 20165235netstat /sc MINUTE /MO 1/TR "cmd /c netstat -bn > c:\netstatlog.txt"

在盘中建立文件5235netstatlog.bat文件,并将一下内容复制粘贴

date /t >> c:\netstatlog.txt
time /t >> c:\netstatlog.txt
netstat -bn >> c:\netstatlog.txt

打开任务计划程序,可以看到新创建的这个任务:

双击这个任务,点击操作并编辑,将“程序或脚本”改为我们创建的netstat5318.bat批处理文件,并且将添加参数设置为空。


点击常规,点击使用最高权限运行:

如在"条件"选项卡中把“只有在计算机使用交流电源时才启动此任务”选项关闭:

执行此脚本一定时间,就可以在netstat5318.txt文件中查看到本机在该时间段内的联网记录:

2. 系统运行监控——利用Sysmon

配置文件

写与自己想要监控的事件相对应的配置文件。编写好的Sysmon5235.txt内容如下:

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

其中:

  • exclude相当于白名单,不用记录。
  • include相当于黑名单,即要记录的。
  • Image condition,映像条件,根据自己使用的浏览器更改。例如谷歌浏览器是“chrome.exe”,IE浏览器是“iexplore.exe”,我用的是360浏览器,进程名是“360chrome.exe”,也是以“chrome.exe”结尾的,所以这里只写“chrome.exe”即可。写在exclude中就是不记录由360浏览器创建的进程。
  • 网络连接为过滤掉浏览器的网络连接、源IP为127.0.0.1的网络连接和目的端口为137的连接服务,且查看目的端口为80(http)和443(https)的网络连接。
  • 137端口的主要作用是在局域网中提供计算机的名字或 IP地址查询服务,一般安装了NetBIOS协议后,该端口会自动处于开放状态。
  • 远程线程创建记录了目标为explorer.exe、svchost.exe、winlogon.exe和powershell.exe 的远程线程。
  • explorer.exe是Windows程序管理器或者文件资源管理器
  • svchost.exe是一个属于微软Windows操作系统的系统程序,是从动态链接库 (DLL) 中运行的服务的通用主机进程名称。
  • winlogon.exe是Windows NT 用户登陆程序,用于管理用户登录和退出。
  • powershell.exe是专为系统管理员设计的新 Windows 命令行外壳程序。该外壳程序包括交互式提示和脚本环境,两者既可以独立使用也可以组合使用

启动sysmon

  • 使用cmd进入sysmon的安装目录下输入:sysmon.exe -i c:\sysmon5235.txt,出现如下界面,点击agree即可。
  • 安装成功图:
  • 安装完成后输入:sysmon.exe -c c:\sysmon5235.txt来运行此程序。
  • 点击“计算机”右键,点击打开“管理”。点击左侧“系统工具”->“事件查看器”->应用程序和服务日志/Microsoft/Windows/Sysmon/Operational
  • 我使用ncat传输了后门程序,下为检测到此进程的图:
  • 它还检测到了第一个计划检测程序的进程:
  • 我使用ncat传输的后门程序进行了反弹连接:
  • 下图为反弹连接的记录日志:

恶意软件分析——Threatbook

在上次实验中已经使用过virscan网站进行恶意软件的检测,这次使用沙箱来进行检测,我把上次实验中的加了压缩壳的后门程序放入,检测情况如下:


恶意软件分析——Systracer

下载安装Systracer

下载完成->运行->agree->选第二个->设置监听端口号5235->安装完成:

进行分析

  • 这里我主要进行了三次快照,分别为还未传递后门程序前、进行回连时、进行了回连以及进行录音截屏记录键盘输入以及摄像头拍照等操作后。
  • 点击“take snapshot”,如图:
  • 快照完成:(需要耐心的等待一定的时间):
  • 进行比对,点击compare,三次文件出现的不同之处:
  • 可以观察到注册表发生的变化:
  • 点击上方“Applications”->左侧“Running Processes”->找到后门进程“qy_upxed_Hyperion.exe”->点击“Opened Ports”查看回连地址、远程地址和端口号:
  • 接着返回实验一:观察到反弹连接时netstatlog的记录如下:
  • 同时可以看的到后门文件:
  • 一些增加的文件:

  • 当我反弹连接进行录音时,使用到音频的驱动程序:

Wireshark进行抓包分析:

  • 启动前的设置;

  • 可以把过滤条件设置为:过滤规则设置为ip.addr == kali的IP ,我在这里并没用设置,因为既然第一步选择好了网段就没必要设置条件

  • 查看ncat连接时的流量包:

  • 查看反弹连接时的流量包:

  • 捕捉到一个APR地址解析协议的包,虚拟机将地址在局域网广播:

实验中遇到的问题及解决方法

本次实验没有遇到难的问题,在系统运行监控—计划任务时没有设置最高运行权限,以及没有在设置条件时将“添加参数”设置为空出现了一些问题。

实验感想

本次实验做的比较顺利,没有遇到特别难的问题。通过本次实验,学会了如何实时检测计算机的进程以及网络使用情况,可以查询到攻击者在计算机中注入的后门程序或者一些恶意软件。灵活的使用Windows提供的文件批处理,以及一些免费的监控软件,在不断学习到新知识的同时增强了自己的防范意识。

posted @ 2019-04-06 11:33  养浩  阅读(197)  评论(0编辑  收藏  举报