2018-2019-2 网络对抗技术 20165321 Exp4 恶意代码分析
1.实践目标
1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行。
1.2是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
1.3假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。
2.实践内容(3.5分)
2.1系统运行监控(2分)
(1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
1.使用schtasks指令监控系统
- 使用
schtasks /create /TN netstat20165321 /sc MINUTE /MO 5 /TR "cmd /c netstat -bn > c:\netstatlog.txt"命令创建计划任务netstat20165321,如下图所示:

其中,TN是TaskName的缩写,我们创建的计划任务名是netstat20165321;sc表示计时方式,我们以分钟计时填MINUTE;TR`即为Task Run,要运行的指令是netstat -bn,b表示显示可执行文件名,n``表示以数字来显示IP和端口。
在C盘中创建一个
netstat20165321.bat脚本文件(可先创建txt文本文件,使用记事本写入后通过修改文件名来修改文件格式)在其中写入以下内容:
date /t >> c:\netstat20165321.txt time /t >> c:\netstat20165321.txt netstat -bn >> c:\netstat20165321.txt

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

双击这个任务,在
操作选项卡中,将“程序或脚本”改为我们创建的netstat20165321.bat批处理文件;

在
条件选项卡中,取消勾选只有在计算机使用交流电源时才启动此任务;

在
常规选项卡中,选择不管用户是否登陆都要运行,勾选不储存密码,并勾选使用最高权限运行;

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

使用Excel统计所收集的数据

(2)安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
- 在Sysmon - Windows Sysinternals | Microsoft Docs网站中下载Sysmon软件zip压缩包,解压到C盘下,并创建配置文件
sysmon20165321.xml。 - 在配置文件
sysmon20165321.xml中写入如下代码:
<Sysmon schemaversion="4.20">
<!-- 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>
<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">firefox.exe</TargetImage>
<TargetImage condition="end with">svchost.exe</TargetImage>
<TargetImage condition="end with">winlogon.exe</TargetImage>
<SourceImage condition="end with">powershell.exe</SourceImage>
</CreateRemoteThread>
<ProcessCreate onmatch="include">
<Image condition="end with">chrome.exe</Image>
<Image condition="end with">iexplorer.exe</Image>
<Image condition="end with">firefox.exe</Image>
</ProcessCreate>
<FileCreateTime onmatch="exclude" >
<Image condition="end with">firefox.exe</Image>
</FileCreateTime>
<FileCreateTime onmatch="include" >
<TargetFilename condition="end with">.tmp</TargetFilename>
<TargetFilename condition="end with">.exe</TargetFilename>
</FileCreateTime>
</EventFiltering>
</Sysmon>
- 使用
sysmon.exe -i sysmon20165321.xml安装sysmon。

- sysmon安装成功
2.2恶意软件分析(1.5分)
- 右击我的电脑->管理->事件查看器->应用程序和服务日志->Microsoft->Windows->Sysmon->Operational。在这里,我们可以看到按照配置文件的要求记录的新事件,以及事件ID、任务类别、详细信息等等。

分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件(3)读取、添加、删除了哪些注册表项(4)读取、添加、删除了哪些文件(5)连接了哪些外部IP,传输了什么数据(抓包分析)。
- 打开kali,运行木马文件,使其回连kali攻击机。查看日志,通过搜索关键字可以找到相关的后门文件:

- 打开这个事件,可以看到其属于“NetworkContect”。查看详细信息,可以看到这个后门映像文件的具体位置、源IP和端口、目的IP和端口等。

使用VirusTotal分析恶意软件
- 把生成的恶意代码放在VirusTotal进行分析,基本情况如下:

使用Process Monitor分析恶意软件
- Process Monitor是一款由 Sysinternals 公司开发的包含强大的监视和过滤功能的高级 Windows 监视工具,可实时显示文件系统、注册表、进程/线程的活动。
- 打开软件,可以看出其对各个进程的详细记录:

使用Process Explorer分析恶意软件
- Process Explorer是由Sysinternals开发的Windows系统和应用程序监视工具,目前已并入微软旗下。不仅结合了Filemon(文件监视器)和Regmon(注册表监视器)两个工具的功能,还增加了多项重要的增强功能。包括稳定性和性能改进、强大的过滤选项、修正的进程树对话框(增加了进程存活时间图表)、可根据点击位置变换的右击菜单过滤条目、集成带源代码存储的堆栈跟踪对话框、更快的堆栈跟踪、可在 64位 Windows 上加载 32位 日志文件的能力、监视映像(DLL和内核模式驱动程序)加载、系统引导时记录所有操作等。
- 靶机运行木马,回连攻击机时,我们可以看到Process Explorer对其进行的记录:

使用PEiD分析恶意软件
- PEiD(PE Identifier)是一款著名的查壳工具,其功能强大,几乎可以侦测出所有的壳,其数量已超过470 种PE 文档 的加壳类型和签名。
- 我们取一个上次实验生成的,没有加壳的木马,其检测结果如下:

3.实验感想
本次实验的内容十分丰富,我们尝试学习和使用了数款用于检测恶意代码的指令或是软件,例如SysTracer、SysinternalsSuite、ProceMonitor等。这些工具都能很好地辅助我们对主机进行监控,以发现恶意行为并进行及时处理。
通过学习了解到,恶意代码的分析方法主要分为静态分析方法和动态分析方法。这两种方法在本次实验中都有所涉及。静态分析方法是指在不执行二进制程序的条件下进行分析,如反汇编分析等,属于逆向工程分析方法。而动态分析方法是指在恶意代码执行的情况下,利用调试工具对恶意代码实施跟踪和观察,确定恶意代码的工作过程,以便作进一步分析。
虽然恶意代码的分析工具多种多样、日趋完善,但作为计算机用户的我们更不能掉以轻心,而应该时刻保持警惕。要时常对电脑的行为进行监控,不要只寄希望于杀毒软件,因为杀毒与免杀的博弈关系会使二者共同发展,并不是所有的恶意代码都会被杀毒软件拒之门外。
2018-2019-2 网络对抗技术 20165321 Exp4 恶意代码分析的更多相关文章
- 2018-2019-2 网络对抗技术 20165232 Exp4 恶意代码分析
2018-2019-2 网络对抗技术 20165232 Exp4 恶意代码分析 1.实践目标 监控你自己系统的运行状态,看有没有可疑的程序在运行. 分析一个恶意软件,就分析Exp2或Exp3中生成后门 ...
- 2018-2019-2 网络对抗技术 20165206 Exp4 恶意代码分析
- 2018-2019-2 网络对抗技术 20165206 Exp4 恶意代码分析 - 实验任务 1系统运行监控(2分) (1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP ...
- 2018-2019-2 网络对抗技术 20165317 Exp4 恶意代码分析
2018-2019-2 网络对抗技术 20165317 Exp4 恶意代码分析 实验要求 1.系统运行监控 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里.运行一段时间 ...
- 2018-2019-2 网络对抗技术 20165225 Exp4 恶意代码分析
2018-2019-2 网络对抗技术 20165225 Exp4 恶意代码分析 实践目标 1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行. 1.2是分析一个恶意软件,就分析Exp2或Exp ...
- 2018-2019-2 网络对抗技术 20165336 Exp4 恶意代码分析
2018-2019-2 网络对抗技术 20165336 Exp4 恶意代码分析 1.实践目标 1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行. 1.2是分析一个恶意软件,就分析Exp2或E ...
- 2018-2019-2 20165236 《网络对抗技术》Exp4 恶意代码分析
2018-2019-2 20165236 <网络对抗技术>Exp4 恶意代码分析 一.1.实践目标 1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行; 1.2是分析一个恶意软件, ...
- 2018-2019-2 网络对抗技术 20165316 Exp4 恶意代码分析
2018-2019-2 网络对抗技术 20165316 Exp4 恶意代码分析 一.原理与实践说明 1.实践目标 监控你自己系统的运行状态,看有没有可疑的程序在运行. 分析一个恶意软件,就分析Exp2 ...
- 2018-2019-2 网络对抗技术 20165228 Exp4 恶意代码分析
2018-2019-2 网络对抗技术 20165228 Exp4 恶意代码分析 1.如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪 ...
- 2018-2019-2 网络对抗技术 20165308 Exp4 恶意代码分析
2018-2019-2 网络对抗技术 20165308 Exp4 恶意代码分析 实验过程 一.系统运行监控 (1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里.运行一 ...
随机推荐
- Docker发布程序那些事
最近使用docker比较频繁,所以也难免碰到一些坑,在这里记录一下,给自己写个笔记 1.docker 1.13.0版本不支持docker stack deploy -c 多个 -c的yml文件合并 如 ...
- react 20180504
react 入门 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- Konva入门教程
啥是 Konva Konva 是一个 canvas 库,可以让我们像操作 DOM 一样来操作 canvas,并提供了对 canvas 中元素的事件机制,拖放操作的支持.所以,用它来做一个拼图游戏什么的 ...
- elasticsearch搜索框架的安装相关
安装JAVA SE 百度一下JAVA SE,按照自己的平台,位数选择就是了, 这里遇到过一个坑,双击exe安装包一直无法打开jdk的安装,在任务管理器里面就一闪而过, 后来我卸载了所有JAVA的相关安 ...
- 机器学习——KNN
导入类库 import numpy as np from sklearn.neighbors import KNeighborsClassifier from sklearn.model_select ...
- jmeter下TPS插件的安装
1.下载插件http://pan.baidu.com/s/1mioVJni 2.解压下载的安装包: 将 jpgc-graphs-basic-2.0.zip 解压缩后只有一个 lib 目录,该目录下有一 ...
- Node.js_密码明文_密文_加密库_sha1
加密库 sha1 加密模块,能够将指定 明文 加密成一个长度相等的 密文 let pwd = 'qwe123456'; const secret = sha1(pwd); 同样的明文,加密得到同样的密 ...
- [LeetCode] Most Profit Assigning Work 安排最大利润的工作
We have jobs: difficulty[i] is the difficulty of the ith job, and profit[i] is the profit of the ith ...
- Educational Codeforces Round 5
616A - Comparing Two Long Integers 20171121 直接暴力莽就好了...没什么好说的 #include<stdlib.h> #include&l ...
- laravel5.5 任务调度 (转载)
Ubuntu和Mac环境中,我们可以使用crontab来控制计划任务 1. 定义调度 我们需要在 App\Console\Kernel 类的 schedule 方法中定义所有任务调度.例如: 上图中定 ...