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.创建数据透视表出现问题,如图:
导入数据时没有从第一格导入,导致整个表格前有许多空白格,删除即可