2018-2019-2 20165236 《网络对抗技术》Exp4 恶意代码分析

一、1.实践目标

1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行;

1.2是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件;

1.3假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,

再对可疑对象进行进一步分析,好确认其具体的行为与性质。

2.实践内容(3.5分)

2.1系统运行监控(2分)

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

综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。

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

实际日志的分析还需要发挥下自己的创造力,结合以前学过的知识如linux的文本处理指令等进行。分析的难点在于从大量数据中理出规律、找出问题。这都依赖对结果过滤、统计、分类等进一步处理,这就得大家会什么用什么了。

2.2恶意软件分析(1.5分)

分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件

(3)读取、添加、删除了哪些注册表项

(4)读取、添加、删除了哪些文件

(5)连接了哪些外部IP,传输了什么数据(抓包分析)

二、实验步骤

任务一   系统运行监控

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

输入:schtasks /create /TN netstat5236 /sc MINUTE /MO 5 /TR "cmd /c netstat -bn > c:\netstat5236.txt"命令,创建计划任务netstat5236,

2、在C盘中创建一个netstat5236.bat脚本文件,写入以下内容:

date /t >> c:\netstat5236.txt

time /t >> c:\netstat5236.txt

netstat -bn >> c:\netstat5236.txt

我是先在桌面上创建txt文本文件,然后修改文件名保存到C盘中:

3、在开始中,打开任务计划程序,可以看到创建的任务netstat5236,

4、打开这个任务,点击操作并编辑,将“程序或脚本”改为我们创建的netstat5236.bat批处理文件,然后确定,如图所示:

5、在属性中“常规”一栏最下面勾选“使用最高权限运行”,防止程序不会自动运行:

6、在属性中“条件”选项中“电源”栏中,取消勾选“只有计算机使用交流电源才启动此任务”,防止电脑断电任务就停止:

7、输入schtasks /create /TN 20165236netstat /sc MINUTE /MO 1 /TR "c:\20165236netstatlog.bat",记录每隔两分钟计算机的联网情况:

8、运行此任务一段时间,在C盘打开创建的netstat5236.txt,查看本机在该时间段内的联网记录:

9、导入文本数据:新建excel文件,选择上方“数据”,选择“获取外部数据”,选择“自文本”

10、点击“导入” ,选中“分隔符号”

11、点击“下一步”,选全部分隔符号,点击“下一步” ,列数据格式选择常规,点击“完成”:

12、导入后数据如图:

13、生成柱形图即可分析各个联网的应用程序:

任务二   使用sysmon工具监控系统

1、sysmon是微软Sysinternals套件中的一个工具,使用sysmon工具前首先要配置相关文件,首先下载sysinternals,

再配置文件sysmon5236.xml,文件内容为:

<Sysmon schemaversion="4.20">
<!-- Capture all hashes -->
<HashAlgorithms>*</HashAlgorithms>
<EventFiltering>
<!-- Log all drivers except if the signature -->
<!-- contains Microsoft or Windows -->
<ProcessCreate onmatch="exclude">
<Image condition="end with">chrome.exe</Image>
<Image condition="end with">firefox.exe</Image>
</ProcessCreate>

<ProcessCreate onmatch="include">
<ParentImage condition="end with">cmd.exe</ParentImage>
</ProcessCreate>

<FileCreateTime onmatch="exclude" >
<Image condition="end with">chrome.exe</Image>
<Image condition="end with">firefox.exe</Image>
</FileCreateTime>

<NetworkConnect onmatch="exclude">
<Image condition="end with">chrome.exe</Image>
<Image condition="end with">firefox.exe</Image>
<SourcePort condition="is">137</SourcePort>
<SourceIp condition="is">172.30.0.142</SourceIp>
</NetworkConnect>

<NetworkConnect onmatch="include">
<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">firefox.exe</TargetImage>
<TargetImage condition="end with">winlogon.exe</TargetImage>
<SourceImage condition="end with">powershell.exe</SourceImage>
</CreateRemoteThread>
</EventFiltering>
</Sysmon>

2、以管理员身份打开命令行,使用指令Sysmon.exe -i C:\sysmon5236.xml安装sysmon,

3、在事件查看器中的应用程序和服务日志,查看Microsoft->Windows->Sysmon->Operational,

4、打开之前实验3植入的20165236shellcode.upxed.exe后门,Kali用meterpreter回连,可以看到连接的信息,

5、在服务日志中发现有后门程序的痕迹,360安全的记录日志等等,在运行时后门程序会被拦截,如图:

2.2恶意软件分析

1、使用VirusTotal分析恶意软件

将实验3中生成的加壳后门在VirusTotal进行扫描,结果如图:

该恶意代码的基本属性如下,可以看出它的SHA-1、MD5摘要值、文件类型、文件大小 等等:

该恶意代码的算法库支持情况如图:

2、使用PEiD分析恶意软件

PEiD是一款著名的查壳工具,其功能强大,几乎可以侦测出所有的壳;

win7中下载并安装PEiD:

查看一下加过压缩壳的后门程序:

没有加壳的话则显示:什么也没发现,

3、动态分析——使用systracer分析恶意软件

在win7虚拟机下载安装SysTracer,

启动回连时,注册表发生了变化:

查看可得启用了很多dll文件:

查找到端口的连接:

三、实验过程中遇到的问题及解决方法

1、 使用sysmon工具监控系统时,安装sysmon过程中遇到如下问题:

原因及解决方法:版本不匹配,只需改成自己对应的版本号即可。

四、实验基础问题回答

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

请设计下你想监控的操作有哪些,用什么方法来监控?

答:安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为,在事件查看器里找到相关日志文件查看;

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

答:(1)使用virscan分析可疑程序,分析文件行为;

(2)使用Wireshark进行抓包分析,查看该程序传输了哪些数据;

(3)使用TCPView查看可疑连接;

(4)使用systracer工具,比对前后区别,动态分析注册表修改情况和文件修改情况等,分析原因。

五、实验总结

本次实验涉及到了许多方面,比如说系统运行监控、分析恶意软件等等,我个人认为这些都是网络对抗课程中非常重要的技术。

其中涉及到的知识面也非常广泛。实验内容相对来说与较为复杂。为此我也参考了许多往届学长的博客,同时也查阅了一些资料,

并询问了老师同学,最终一步步完成了本次实验。

2018-2019-2 20165236 《网络对抗技术》Exp4 恶意代码分析的更多相关文章

  1. 2018-2019-2 20165325 网络对抗技术 Exp4 恶意代码分析

    2018-2019-2 20165325 网络对抗技术 Exp4 恶意代码分析 实验内容(概要) 一.系统(联网)运行监控 1. 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,逐步排查并且 ...

  2. 20145226夏艺华 网络对抗技术EXP4 恶意代码分析

    20145226夏艺华 网络对抗技术EXP4 恶意代码分析(未完成版) 回答问题 (1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作 ...

  3. 20155302《网络对抗》Exp4 恶意代码分析

    20155302<网络对抗>Exp4 恶意代码分析 实验要求 •是监控你自己系统的运行状态,看有没有可疑的程序在运行. •是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工 ...

  4. 20145208 蔡野 《网络对抗》Exp4 恶意代码分析

    20145208 蔡野 <网络对抗>Exp4 恶意代码分析 问题回答 总结一下监控一个系统通常需要监控什么.用什么来监控. 监控一个系统通常需要监控这个系统的注册表,进程,端口,服务还有文 ...

  5. 20145215《网络对抗》Exp4 恶意代码分析

    20145215<网络对抗>Exp4 恶意代码分析 基础问题回答 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用 ...

  6. 20155227《网络对抗》Exp4 恶意代码分析

    20155227<网络对抗>Exp4 恶意代码分析 实践目标 1.是监控你自己系统的运行状态,看有没有可疑的程序在运行. 2.是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分 ...

  7. 20155232《网络对抗》Exp4 恶意代码分析

    20155232<网络对抗>Exp4 恶意代码分析 1.实践目标 1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行. 1.2是分析一个恶意软件,就分析Exp2或Exp3中生成后门 ...

  8. 20155239 《网络对抗》Exp4 恶意代码分析

    20155239 <网络对抗>Exp4 恶意代码分析 使用schtasks指令监控系统运行 先在C盘目录下建立一个netstatlog.bat文件,用来将记录的联网结果格式化输出到nets ...

  9. 20155304《网络对抗》Exp4 恶意代码分析

    20155304<网络对抗>Exp4 恶意代码分析 实践内容 1.系统运行监控 1.1使用schtasks指令监控系统运行 我们在C盘根目录下建立一个netstatlog.bat的文本文件 ...

  10. 20155308《网络对抗》Exp4 恶意代码分析

    20155308<网络对抗>Exp4 恶意代码分析 实践说明 实践目标 是监控你自己系统的运行状态,看有没有可疑的程序在运行. 是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件: ...

随机推荐

  1. 数据表为null的字段添加默认值

    UPDATE im_clusters SET `location`='深圳会展中心' WHERE `location` is NULL

  2. ionic2项目中实现md5加密

    1. 安装插件 npm i ts-md5 --save 2. 在项目中引用 import { Md5 } from 'ts-md5/dist/md5'; ... ionViewDidLoad() { ...

  3. gitLib操作笔录《一》:创建分支,切换分支,提交分支到远程,以及基本代码clone与更新提交到远程操作指令

    git 操作经验注:master表示的是主线,origin 表示远程源 创建分支:git checkout -b < branch_name >或 < master >切换分支 ...

  4. datatables隐藏列与createdRow渲染bootstrapSwitch形成的BUG

    背景: 昨天写了一个页面用于规则库的增删改查. 数据使用datatables渲染,后端返回数据由前端进行一次性渲染和分页. 隐藏列: 排序的ID不展示,但是排序又想按照ID来排,所以把ID单独作为一列 ...

  5. VIM编辑器用法

    Vim (vim + filename有则进入文件,无则创建并进入文件)>进入编辑模式,包括命令模式.插入模式.末行模式,具体命令: 按esc进入命令模式 按'shift' + ':'进入末行模 ...

  6. javascript自制函数图像生成器

    出于某种目的想做这个东西,顺便可以提供给GMA的用户&&放在博客园. 实现上只是简单的描点,加上一个相邻两点连线的开关,完全没有技术含量.而且函数图像一旦多起来就会变卡. 瓶颈在隐函数 ...

  7. help文档制作 chm

    程序中的help文档制作 所用工具:HTML Help Workshop 文件包括:各个html文档,帮助页面的具体内容 hhc文档:help的目录文件 hhk文档:help的索引文件 MAP文件夹中 ...

  8. 3.2station

    题意火车进入,然后要求以最大字典序输出 解题思路:先用一个数组储存当前位置之后最大的数字是什么,然后把已经进站的最后一节火车和还没进站的车的最大值,哪个更大,如果已经进站的更大,那么就先出站,否则就先 ...

  9. JS-原型的某些概念

    prototype:构造函数拥有一个对象,称为构造函数的原型属性,可以通过 构造函数prototype进行访问. __proto__: 构造函数所创造出的实例对象,可通过该属性访问原型对象. cons ...

  10. Jmeter应用-接口测试

    1.BS架构应用性能 2.HTTP协议接口功能与性能 3.FTP协议接口功能与性能 4.Mysql数据库性能 5.MongoDB数据库性能 6.支持自定义Java组件开发 测试计划-右键-添加线程组 ...