实验目标

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. Excel阅读模式/单元格行列指示/聚光灯开发 技术要点再分享

    1. 引言 文题中所谓技术要点再分享,本意是想在大神Charltsing Liu的博文“简单介绍Excel单元格行列指示的实现原理(俗称聚光灯功能)”的基础上写一点个人开发体会.写本文的初衷有三点,一 ...

  2. PHP程序员的成长路线

    作为一名PHP程序员,从你入门到现在我相信也学了很多东西,但是有的PHP程序员却是还在第一阶段,那么作为初级PHP程序员我们应该如何弥补自己的不足往中级阶段或者高级阶段发展呢?下面小编就为大家梳理了一 ...

  3. ABP中的Filter(上)

    这个部分我打算用上下两个部分来将整个结构来讲完,在我们读ABP中的代码之后我们一直有一个疑问?在ABP中为什么要定义Interceptor和Filter,甚至这两者之间我们都能找到一些对应关系,比如: ...

  4. spring多模块项目手动整合

    一.分别创建parent entity dao service controller web等模块项目,如图: 二.parent项目添加依赖 <!-- 集中定义依赖版本号 --> < ...

  5. java核心卷笔记--P48字符串3.6.5

    一定不要使用 == 运算符检测两个字符串是否相等 ! 这个运算符只能够确定两个字串是否放置在同一个位置上 . 当然 , 如果字符串放置在同一个位置上 , 它们必然相等. 但是 ,完全有可能将内容相同的 ...

  6. 一个解释volatile关键字最好的例子

    小例子 public class VolatileTest { private static volatile int INIT_VALUE = 0; private final static int ...

  7. Linux系统 Cetos 7 中重置root密码

    几个月前在自己电脑上面安装了一个Linux 的虚拟机环境,当时是为了测试某一个小功能,用完就扔那里了,长时间没有使用,发现Root密码忘记了,登陆不了,怎么办呢?(ps:如果实际情况中忘记密码的这个服 ...

  8. Java编程思想_笔记_第二章_一切都是对象

    第二章对于知识只是点到,会在以后章节会详细展开. 笔记的侧重会偏向记录自己知识模糊的地方.比如 xxx 很重要很难很实用,但是已经熟练使用就没有记录,而 “使用对象.成员名称来使用成员变量”,较简单而 ...

  9. ArrayDataProvider数据分页

    模型 public function search($page=10){ $lists = self::find()->orderBy('id DESC')->all(); $dataPr ...

  10. 解决pgpool启动报错 ifup[/sbin/ip] doesn't have setuid bit

    1.问题出现: 在centos7启动pgpool服务器报错ifup[/sbin/ip] doesn't have setuid bit 2018-11-25 01:14:14: pid 38122: ...