网络对抗实验四-恶意代码分析

发布时间 2023-04-05 23:24:57作者: 少管我

Exp4 恶意代码分析

实验基础

实验目标

1.监控自己系统的运行状态,看有没有可疑的程序在运行。
2.分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
3.假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。

基础知识

1. 恶意代码

  • 定义:

    泛指指没有作用却会带来危险的代码,即使计算机按照攻击者的意图运行以达到恶意目的的指令集合。

    • 指令集合: 二进制执行文件, 脚本语言代码, 宏代码, 寄生在文件、启动扇区的指令流
  • 特征:①本身是计算机程序 ②有恶意的目的 ③ 通过执行发生作用

  • 目的:技术炫耀/恶作剧、远程控制、窃取私密信息、盗用资源、 拒绝服务/破坏,...

  • 常见的恶意代码:

    计算机病毒、蠕虫、恶意移动代码、后门、特洛伊木马、僵尸程序、Rootkit、逻辑炸弹...

    • 计算机病毒:需要传播受感染的驻留文件来进行复制,一般需要宿主程序被执行或人为交互才能运行。普通病毒的传染能力主要是针对计算机内的文件系统而言。
    • 蠕虫:是一种通过网络传播的恶性病毒,它不使用驻留文件即可在系统之间进行自我复制,蠕虫病毒的传染目标是互联网内的所有计算机。

2. schtasks

  • 定义:计划命令,程序以定期或在特定时间运行,在计划中添加和删除任务,启动和停止按需任务,以及显示和更改计划任务。
  • schtasks.exe 工具与控制面板 中的 "计划任务" 执行相同的操作。
  • 语法:schtasks +参数 参数如下:
    • change:更改任务
    • create:计划新的任务。
    • delete:删除计划任务。
    • end:停止任务启动的程序。
    • query:显示计划在计算机上运行的任务。
    • run:立即启动计划任务。
  • 实例:
schtasks /create /TN netstat1217 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt

TN:Task Name,本例中是netstat1217
SC:表示计时方式,我们以分钟计时填MINUTE
MO:MOdifier
TR:Task Run,要运行的指令是 netstat
bn:b表示显示可执行文件名,n表示以数字来显示IP和端口
">":表示输出重定向,将输出存放在c:\netstatlog.txt文件中

  • 备注:
    • /Tn 和 /s 参数用于识别任务。 /Tr、 /ru 和 /rp 参数指定可以更改的任务的属性
    • /Ru 和 /rp 参数指定运行任务所用的权限。 /U 和 /p 参数指定用于更改任务的权限。

3.sysmon

  • 定义:sysmon是由Windows Sysinternals出品的一款Sysinternals系列中的工具。它以系统服务和设备驱动程序的方法安装在系统上,并保持常驻性。

  • sysmon用来监视和记录系统活动,并记录到windows事件日志,可以提供有关进程创建,网络链接和文件创建时间更改的详细信息。

  • 可选择的事件过滤器有:

    • ProcessCreate 进程创建
    • FileCreateTime 进程创建时间
    • NetworkConnect 网络链接
    • ProcessTermina 进程结束
    • DriverLoad 驱动加载
    • ImageLoad 镜像加载
    • CreateRemoteTh 远程线程创建
    • RawAccessRead 驱动器读取
    • ProcessAccess 进程访问
    • FileCreate 文件创建
    • RegistryEvent 注册表事件
    • FileCreateStre 文件流创建
  • 监控系统的基本操作可分为以下三步:

    • 确定要监控的目标:写好过滤条件(相当于白名单),多多益善,信任的程序尽量不要记到日志里(日志多了不好分析)。

      写好配置文件.xml文件

      • 记录所有网络连接就可以简单写为<NetworkConnect>*</NetworkConnect>
      • exclude相当于白名单,凡是未声明的都记录下来。
      • include相当于黑名单。
      • 注意规则大小写敏感。
  • 启动sysmon

实验内容

1.使用schtasks指令监控系统

(使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述分析结果)

创建任务计划netstat1329

在命令行中输入schtasks /create /TN netstat1329 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > e:\CTFweb\netstatlog.txt

  • 在E盘中创建一个脚本文件 netstat1329.bat
    创建了一个netstat1329.txt文本文件,并写入以下内容后修改为.bat格式
date /t >> e:\CTFweb\netstat1329.txt 
time /t >> e:\CTFweb\netstat1329.txt 
netstat -bn >> e:\CTFweb\netstat1329.txt

  • 在Windows的任务计划程序中,可以查看到新创建的任务:

  • 双击这个任务,点击操作编辑,将“程序或脚本”改为我们创建的 netstat1329.bat 批处理文件的位置,点击确定。

  • 常规选项中勾选使用最高权限运行

  • 在"条件"选项卡中可以看到,电源选项中默认操作为“只有在计算机使用交流电源时才启动此任务”,那么使用电池电源时就会停止任务。为了我们统计足够多的数据,这个选项取消掉。

  • 右键点击运行
  • 这时可以看到D盘下出现了三个文件,如下图示:

在wps的Excel表格中分析记录的数据

  • 导入文本数据:新建excel文件->选择上方“数据”->选择“导入数据”->选择“导入数据”->选择“直接打开数据文件”

选择对应文件夹中的txt文件

依次选择其他编码、分隔符号,然后将分隔符号的所有选项都选中,点击完成即可


创建数据透视图

选中我们所要分析的列,选择“插入”——数据透视图——新工作表

在新的工作表中,在右侧字段列表中筛选掉我们不需要的字段

将字段列表拖到下方的行和值中,就生成了我们所需的数据透视图

生成的数据透视图

排序后的结果:

分析:

如图所示,出现数量最多的时TCP,连接的外部地址是我打开的相关页面,大多为http和https连接;

接下来是SearchHost.exe,用来维护系统稳定性的组件,在电脑开启之后自动运行,不能终止;

接下来是wps云端运行的程序,为用户提供云端备份文档服务:

et.exe是excel表格文档进程;

msedge.exe是Microsoft Edge网页浏览器的应用程序,它是 Microsoft Internet Explorer Web 浏览器的继任者;

其他部分是我正在使用程序相关进程……

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

2.0 下载工具

根据链接(附件 · wildlinux/NetSec - Gitee.com)下载工

2.1 明确要监控的目标。

我在这里选择的是:

  • 进程创建ProcessCreate
  • 进程创建时间FileCreatTime
  • 网络连接NetworkConnect、远程线程创建CreateRemoteThread

2.2 编写xml配置文件:

在sysmon所在的文件夹下:

实验问题回答

1.创建数据透视表出现问题,如图:

导入数据时没有从第一格导入,导致整个表格前有许多空白格,删除即可

问题与解决

实验体会与感想