实验目标

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

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

3.假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。

实践内容(3.5分)

2.1系统运行监控(2分)

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

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

参考:schtask与sysmon应用指导

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

2.2恶意软件分析(1.5分)

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

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

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

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

实验过程

1、系统运行监控

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

1、:在C盘目录下建一个文本文件然后输入内容后改后缀名为.bat文件c:\Temp\netstatlog.bat(这里可能在C盘根目录下无法创建文本文件,可以进入一个文件夹创建后移出来)

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

2、:在windows命令行下输入命令:schtasks /create /TN 20165231netstat /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt"


TN是TaskName的缩写,我们创建的计划任务名是20165231netstat

sc表示计时方式,我们以分钟计时填MINUTE

TR=Task Run,要运行的指令是 netstat

bn,b表示显示可执行文件名,n表示以数字来显示IP和端口

c:\netstatlog.txt类似于Linux中的重定向,输出将存放在C盘下的netstatlog.txt文件中

3、在任务计划程序种找到创建的任务,然后在操作中修改为我们刚刚修改的.bat文件,然后在常规栏目勾选以最高权限运行。



然后在C盘的netstatlog.txt文件中查看网络连接记录

4、然后将netstatlog.txt导入excel中查看分析





可以看到我电脑当时启动了vmware(虚拟机)、cloudmusic(网易云音乐)、SearchUI(搜索工具everthing)、chrome(浏览器)、TIM(qq)、Foxmail(邮箱)

然后做统计图分析



(没错当时开着虚拟机开着网页上着网听歌所以vmware、chrome、网易云音乐动作频繁)

(之前是在虚拟机做的,后来发现在主机win10上好做些就换了主机)

2、使用sysmon工具

首先创建配置文件sysmon5231.xml,文件中包含指令

 hljs xml" data-info="">  <!-- 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>
<span class="hljs-tag">&lt;<span class="hljs-name">NetworkConnect</span> <span class="hljs-attr">onmatch</span>=<span class="hljs-string">"exclude"</span>&gt;</span>

  <span class="hljs-tag">&lt;<span class="hljs-name">Image</span> <span class="hljs-attr">condition</span>=<span class="hljs-string">"end with"</span>&gt;</span>iexplorer.exe<span class="hljs-tag">&lt;/<span class="hljs-name">Image</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">SourcePort</span> <span class="hljs-attr">condition</span>=<span class="hljs-string">"is"</span>&gt;</span>137<span class="hljs-tag">&lt;/<span class="hljs-name">SourcePort</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">SourceIp</span> <span class="hljs-attr">condition</span>=<span class="hljs-string">"is"</span>&gt;</span>127.0.0.1<span class="hljs-tag">&lt;/<span class="hljs-name">SourceIp</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">NetworkConnect</span>&gt;</span>

<NetworkConnect onmatch="include">

<DestinationPort condition="is">5231</DestinationPort>

<DestinationPort condition="is">80</DestinationPort>

<DestinationPort condition="is">443</DestinationPort>

</NetworkConnect>

<span class="hljs-tag">&lt;<span class="hljs-name">CreateRemoteThread</span> <span class="hljs-attr">onmatch</span>=<span class="hljs-string">"include"</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">TargetImage</span> <span class="hljs-attr">condition</span>=<span class="hljs-string">"end with"</span>&gt;</span>explorer.exe<span class="hljs-tag">&lt;/<span class="hljs-name">TargetImage</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">TargetImage</span> <span class="hljs-attr">condition</span>=<span class="hljs-string">"end with"</span>&gt;</span>svchost.exe<span class="hljs-tag">&lt;/<span class="hljs-name">TargetImage</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">TargetImage</span> <span class="hljs-attr">condition</span>=<span class="hljs-string">"end with"</span>&gt;</span>winlogon.exe<span class="hljs-tag">&lt;/<span class="hljs-name">TargetImage</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">SourceImage</span> <span class="hljs-attr">condition</span>=<span class="hljs-string">"end with"</span>&gt;</span>powershell.exe<span class="hljs-tag">&lt;/<span class="hljs-name">SourceImage</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">CreateRemoteThread</span>&gt;</span>

</EventFiltering>

</Sysmon>


sysmon启动

这里注意代码开头的<Sysmon schemaversion="4.20">中版本号



在事件查看器(控制面板>系统与安全>管理工具>事件查看器)中的应用程序和服务日志下,查看Microsoft->Windows->Sysmon->Operational。在这里,我们可以看到按照配置文件的要求记录的新事件,以及事件ID、任务类别、详细信息等等

利用Sysmon具体分析日志的例子我选择了自己实验中生成的后门20165231_backdoor.exe进行分析。

启动回连、安装到目标主机。

然后在事件查看器中发现了后门程序运行





  • SearchFilterHost.exe是桌面搜索引擎的索引程序,其主要作用是建立快速索引文件,让用户能够更好的搜索出电脑中的任意资料。它会在计算机空闲时自动扫描索引位置的文件名、属性信息和给定类别的文件内容,这些索引位置默认包括桌面、收藏夹、开始菜单、系统目录。

好像并没有分析出什么,只看懂一个我的后门启动了

3、恶意软件分析

分析该软件在

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

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

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

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

使用VirusTotal分析恶意软件

分析之前实验生成的带壳后门

可以看出它的SHA-1、MD5摘要值、文件类型、文件大小,以及TRiD文件类型识别结果。



Virus Total也可以查出壳

使用PEiD分析恶意软件

使用PEiD分析之前实验加壳的后门

使用Systracer分析恶意软件

  • 先下载安装Systracer,然后在打开后门前“take snapshot”打开快照,然后在打开后门回连成功后再“take snapshot”。

  • 点击上方“Applications”->左侧“Running Processes”->找到后门进程“20165231_backdoor.exe”->点击“Opened Ports”查看回连地址、远程地址和端口号



  • 在快照界面“Snapshots”右下角点击“Compare”,比对一下回连前后计算机发生的变化(所有蓝色的地方,就是前后发生变化的地方)



    (MRUList(Most Recently Used)值项记录的是所运行程序命令的顺序)



    此外,一些Systracer未授权的地方我们是没法查看的



    通过查看后门软件的“opened handles”(打开的句柄)来对比他们都做了什么

  • 用wireshark抓包分析连接了哪些外部IP,传输了什么数据



    经过目的和源IP筛选后

    可以看到数据往来很频繁,甚至好像有些没加密吗???

实验后回答问题

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

  • 使用schtasks,设置一个计划任务,每隔一定的时间对主机的联网记录等进行记录。当然这个有点烦每过一段时间就闪一下cmd弹窗。

  • 使用sysmon工具,通过修改配置文件,记录相关的日志文件。

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

  • 使用Wireshark进行抓包分析,监视其与主机进行的通信过程。

  • 使用systracer工具分析恶意软件,进行快照的对比(注册表、文件等).

实验感想

本次实验重在分析,也让我学会使用了一些监视软件,杀软防不住情况下也能人工自主有一些警觉意识,也有一些手段可以追查恶意代码。



其实我老早就有监控电脑的想法了,去年十月电脑IE浏览器不幸被2345劫持主页,每次打开IE自动弹出两个2345主页,我通过修改internet选项和修改注册表都没办法铲除这个流氓,网上搜寻无果。最近火绒爆出2345携带病毒,通过广告弹窗侵入用户电脑盗取用户各类软件登陆名及密码上传网上,看到后我更要铲除2345这颗毒瘤!我觉得可以用本次实验的工具监视IE每次打开的动向,看看2345到底隐藏在哪里被调用。如果是我年轻了,那就等着重装吧!

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

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

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

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

    - 2018-2019-2 网络对抗技术 20165206 Exp4 恶意代码分析 - 实验任务 1系统运行监控(2分) (1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP ...

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

    2018-2019-2 网络对抗技术 20165317 Exp4 恶意代码分析 实验要求 1.系统运行监控 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里.运行一段时间 ...

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

    2018-2019-2 网络对抗技术 20165225 Exp4 恶意代码分析 实践目标 1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行. 1.2是分析一个恶意软件,就分析Exp2或Exp ...

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

    2018-2019-2 网络对抗技术 20165336 Exp4 恶意代码分析 1.实践目标 1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行. 1.2是分析一个恶意软件,就分析Exp2或E ...

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

    2018-2019-2 20165236 <网络对抗技术>Exp4 恶意代码分析 一.1.实践目标 1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行; 1.2是分析一个恶意软件, ...

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

    2018-2019-2 网络对抗技术 20165316 Exp4 恶意代码分析 一.原理与实践说明 1.实践目标 监控你自己系统的运行状态,看有没有可疑的程序在运行. 分析一个恶意软件,就分析Exp2 ...

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

    2018-2019-2 网络对抗技术 20165228 Exp4 恶意代码分析 1.如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪 ...

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

    2018-2019-2 网络对抗技术 20165308 Exp4 恶意代码分析 实验过程 一.系统运行监控 (1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里.运行一 ...

随机推荐

  1. Net包管理NuGet(2)nuget包的生成方法

    1,下载NuGetPackageExplorer,可以下载运行源码,也可以直接下载安装包安装安装之后打开 设置好内容之后点击绿色的打钩保存然后操作右边空白处 然后点击File>Save;保存之后 ...

  2. Java数据库学习之分页查询

    分页查询  limit [start],[rows] 思路: pram start 从哪一行开始 关键是从哪一行开始,需要根据查询的页数来进行换算出查询具体页数是从哪一行开始 start = (pag ...

  3. mycat入门--数据库分片

    配置mycat的用户名和密码: 连接mycat,就像连接mysql一样:

  4. vue中watch检测到不到对象属性的变化的解决方法

    watch: { option: { handler(newVal) { console.log(newVal); }, deep: true, immediate: true } }, 需要深层wa ...

  5. mysql-笔记-函数

    如果不指定:sql-mode=ignore_space ,函数名与后面的括号之前不能有空格

  6. [2019.04.16] 由Python写成的自动解压脚本

    很久很久以前(二十七天吧……大概)被要求写一个脚本来检索并解压磁盘上所有的以特定格式命名的tar文件,于是乎学习和摸鱼就一起开始了. 这次要写的脚本,针对的是这样的文件结构: 文件结构如上图所示 可以 ...

  7. VimFaultException A specified parameter was not correct configSpec.guestId

    VimFaultException A specified parameter was not correct configSpec.guestId 在对接VMware的环境中创建虚拟机报错 查看错误 ...

  8. Docker 入门篇

    Docker 简介 作为一种新兴的虚拟化方式,Docker 跟传统的虚拟化方式相比具有众多的优势. 更高效的利用系统资源 更快速的启动时间 一致的运行环境 持续交付和部署 更轻松的迁移 更轻松的维护和 ...

  9. Linux安装gitbook

    安装g++ 默认centos7上是没有安装g++ 通过命令: $ yum -y install gcc openssl-devel gcc-c++ compat-gcc-34 compat-gcc-3 ...

  10. 一道简单的CTF登录题题解

    一.解题感受 这道题50分,在实验吧练习场算比较高分,而且通过率只有14%,比较低的水平. 看到这两个数据,一开始就心生惬意,实在不应该呀! 也是因为心态原因,在发现test.php之后,自以为在SQ ...