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

一、实验目标

  • 首先是监控你自己系统的运行状态,看有没有可疑的程序在运行。
  • 其次是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
  • 最后假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。

二、实验内容

1.系统运行监控

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

2.恶意软件分析

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

  • 读取、添加、删除了哪些注册表项

  • 读取、添加、删除了哪些文件

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

三、实验步骤

1.系统运行监控-计划任务

  • 使用
schtasks /create /TN netstat5210 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstat5210.txt"

命令创建计划任务netstat5210

  • 其中,TN是TaskName的缩写;sc表示计时方式,以分钟计时填MINUTE;TR=Task Run,运行的指令是netstat-bn,b表示显示可执行文件名,n表示以数字来显示IP和端口。
  • 在C盘中创建一个netstat5210.bat脚本文件,写入以下内容
date /t >> c:\netstat5210.txt
time /t >> c:\netstat5210.txt
netstat -bn >> c:\netstat5210.txt
  • 在左下角Windows处右键打开计算机管理-任务计划程序,可以看到我们新创建的任务:

  • 双击这个任务,点击操作并编辑,将“程序或脚本”改为我们创建的netstat5210.bat批处理文件,确定即可,要把参数清空。

  • 然后点击条件,取消电池选项中的只在交流电才运行的操作,避免一会儿断电出麻烦。

  • 在计算机管理界面对该任务右键点击运行,可在netstat5210.bat目录下看到一个txt文本文件,打开就可看到每隔一分钟被输到这里的联网数据的记录:

  • 然后我们打把游戏等一下,让它多记录一下以便让我们分析。
  • 打开excel-数据-自文本-分隔符号-全部勾选分隔符号



  • 分析-数据透视表-勾除不必要选项
  • 将字段拖动到下面的框中,就可以看到统计图了



  • 由统计数据可知,联网最多的是qq,说明刚刚联网qq用的比较多,其次就是有道(哈哈哈写博客),还有一些其他的,我没有开虚拟机和360,所以这里没有后门程序和虚拟机什么的,这时的电脑是比较安全的,没有什么可疑的操作。

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

  • 确定监控目标:

选择的是进程创建ProcessCreate、进程创建时间FileCreatTime、网络连接NetworkConnect、远程线程创建CreateRemoteThread。

  • 写配置文件

写与自己想要监控的事件相对应的配置文件。编写好的20165210Sysmoncfig.txt内容如下:(配置文件是xml文件,为了简单编辑就直接命令为.txt,每次用写字本打开。)

<Sysmon schemaversion="3.10">
<!-- Capture all hashes -->
<HashAlgorithms>*</HashAlgorithms>
<EventFiltering>
<!-- Log all drivers except if the signature -->
<!-- contains Microsoft or Windows -->
<ProcessCreate onmatch="exclude">
<Image condition="end with">MicrosoftEdgeCP.exe</Image>
</ProcessCreate> <FileCreateTime onmatch="exclude" >
<Image condition="end with">MicrosoftEdgeCP.exe</Image>
</FileCreateTime> <NetworkConnect onmatch="exclude">
<Image condition="end with">MicrosoftEdgeCP.exe</Image>
<SourcePort condition="is">137</SourcePort>
<SourceIp condition="is">127.0.0.1</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">winlogon.exe</TargetImage>
<SourceImage condition="end with">powershell.exe</SourceImage>
</CreateRemoteThread>
</EventFiltering>
</Sysmon>

1.exclude相当于白名单,不用记录。include相当于黑名单

2.Image condition根据自己使用的浏览器更改,如谷歌浏览器是“chrome.exe”,IE浏览器是“iexplore.exe”,我用的是轻量版的IE浏览器是“MicrosoftEdgeCP.exe”(可在上面的netstat5210.txt中找到进程名称),写在exclude中就是不记录由QQ浏览器创建的进程。

进程创建时间类似,也是不创建浏览器创建进程的时间。

3.网络连接过滤掉了浏览器的网络连接、源IP为127.0.0.1的网络连接和目的端口为137的连接服务,且查看目的端口为80(http)和443(https)的网络连接。(137端口的主要作用是在局域网中提供计算机的名字或IP地址查询服务,一般安装了NetBIOS协议后,该端口会自动处于开放状态。127.0.0.1表示本机IP。)

4.远程线程创建记录了目标为explorer.exe、svchost.exe、winlogon.exe和powershell.exe 的远程线程。

5.explorer.exe是Windows程序管理器或者文件资源管理器

6.svchost.exe是一个属于微软Windows操作系统的系统程序,是从动态链接库 (DLL) 中运行的服务的通用主机进程名称。

7.winlogon.exe是Windows NT 用户登陆程序,用于管理用户登录和退出。

8.powershell.exe是专为系统管理员设计的新 Windows 命令行外壳程序。该外壳程序包括交互式提示和脚本环境,两者既可以独立使用也可以组合使用。

  • 启动sysmon:
  • 下载sysmon,解压。
  • 安装sysmon:以管理员身份执行命令sysmon.exe -i C:\20165210Sysmoncfig.txt
  • 输入命令sysmon -accepteula -i -n

  • 查看“事件查看器”,选择日志的位置,应用程序和服务日志/Microsoft/Windows/Sysmon/Operational

  • 分析实验三生成的后门程序20165210-jk.exe,按步骤执行到回连

  • 在点击Sysmon-Operational刷新记录,找到运行后门文件20165210-jk.exe相对应的日志如下

  • kali下执行shell

  • 发现C:\Windows\SysWOW64\cmd.exe这样一个进程,其显示目录在后门程序目录下,很显然与后门程序相关,因为Windows下的cmd.exe是64bit的,kali回连获取的windows的cmd程序是32位的

  • 执行了record_mic截获音频

  • 发现了svchost.exe,再截获视频时也发现了这个,so,应该与后门有关

3.恶意软件分析

使用VirusTotal分析恶意软件

  • 将实验三生成的后门放在VirusTotal下扫描

  • 看一下后门详细资料,发现有MD5和SHA-1算法,还有文件的大小类型等。

  • 看一下加壳情况

  • 看一下可执行的算法库信息

使用PEiD进行外壳检测

  • PEiD(PE Identifier)是一款著名的查壳工具,其功能强大,几乎可以侦测出所有的壳。
  • 下载安装选择加壳文件文件路径或直接把加壳文件拖到里面,可以看到所加壳upx版本为0.89.6

  • 继续可看到其详细信息

使用PE Explorer分析恶意软件

  • PE Explorer是功能超强的可视化Delphi、C++、VB程序解析器,能快速对32位可执行程序进行反编译,并修改其中资源
  • 下载PE Explorer并将后门文件导入并查看程序头部信息

  • 视图-导入,查看dll库分析

  • KERNEL32.dll:控制着系统的内存管理、数据的输入输出操作和中断处理。

    msvcrt.dll:是微软编译软件的函数库。
  • USER32.dll:Windows用户界面相关应用程序接口,用于包括Windows处理,基本用户界面等特性,如创建窗口和发送消息。它是一个对系统很关键或很可疑的文件,易遭受木马病毒破坏导致系统找不到此文件,出现错误提示框。
  • WSOCK32.dll:Windows Sockets应用程序接口,用于支持很多Internet和网络应用程序。是一个对系统很关键或很可疑的文件,易遭受木马病毒破坏导致系统找不到此文件,出现错误提示框。
  • 我发现后门文件里大多数都会有KERNEL32.dll。所以后门软件可以控制操作

使用SysTracer分析后门软件的运行过程

  • SysTracer是一款可以分析你的计算机文件,文件夹和注册表项目改变的系统实用工具。你可以在任何想要的时间获取无数个屏幕快照,比较任何一对想要的屏幕快照,并且观察其间的不同之处。获取屏幕快照通常会持续几分钟的时间,这取决于文件和文件夹的数量和注册表项目的总数。
  • 进入win7虚拟机,进入安装选择第二个,next设置端口为5210,安装完成后进入界面

  • 点击take snapshot(创建快照),接着Start

  • 未运行后门程序,保存为Snapshot #1

  • 运行后门程序并在kali中实现回连,保存为Snapshot #2

  • 在kali中使用dir指令,保存为Snapshot #3

  • 在kali中使用record_mic指令,保存为Snapshot #4

  • 我们选中1、2进行比较,可以看到运行后门进行回连后的变化
  1. 注册表的变化

  1. 端口变化

  1. 增加的dll

  • 我们选中2、3进行比较,看执行dir指令后的变化
  1. 发现注册表又新增了两个配置信息

  1. 然后我们再打开opened handles对比他们做了什么

  • 我们选中2、4进行比较,看执行record_mic指令后有什么变化
  1. 注册表中又有新的变化

  1. 发现增加了一些新的文件都与后门有关

  1. 而且发现新增加的文件dll什么的都与多媒体有关

使用wireshark对流量进行抓包分析

  1. 先打开wireshark捕包,然后进行回连,然后过滤ip.addr == 192.168.16.143

可以看到Wireshark上捕获到大量的TCP传输,然后进行其他的操作,发现Kali会不断给Windows传一大堆ACK包,有时还伴有PSH+ACK包。

四、实验中遇到的问题

  1. 安装sysmon时发现这个问题

参考了学长的博客解决了这个问题

2.一开始我一直是用win7做的,做到wireshark时在win7上安装上了之后发现用不了,没有发现网络接口,不知道什么原因,然后就在主机上装了做的。

五、实验中的体会和感受

这次实验做了一天好难受,期间虚拟机崩了,进不去kali了,有找人考的虚拟机,然后安装的东西也别较多,比较杂,还好做完了,本次实验我从一个攻击者变成了一个分析者,分析恶意代码,这些工具的分析程度也有高低,强!

六、实验后回答问题

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

答:用相应的工具来分析记录文件,查看日志,行为分析查证注册表信息等方式证明是否为恶意代码。

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

答:抓包,查看进行了那些网络活动,使用日志查看器查看程序或进程的工作日志,分析工作信息。

2018-2019-2 网络对抗技术 20165210 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. ABP官方文档翻译 1.3 模块系统

    ABP模块系统 介绍 模块定义 生命周期方法 PreInitialize Initialize PostInitialize Shutdown 模块依赖 插件系统 ASP.NET Core ASP.N ...

  2. 关于hashmap 与concurrentHashMap

    hashmap是不安全的,要实现安全,可以用Collections里面的synchronizedMap包裹来实现安全,或者用concurrentMap, 注意:hashtable是安全的 从JDK1. ...

  3. PHP SQL写法 积累(注:PHPSQL与LINQ SQL相似)

    1: $data ['parentid'] = $pid; M('menu')->where($data)->order(' id asc  ')-> select();   // ...

  4. FileSystemWatcher监听文件是否有被修改

    作用:监听文件系统更改通知,并在目录或目录中的文件更改时引发事件. 需求:监听特定文件是否修改,然后做出相应的操作. 方法: ①利用一个线程,一直去查找该指定的文件是否有被修改,如果修改则操作特定步骤 ...

  5. centos安装oracle客户端

    使用centos远程登陆oracle服务器: 下载需要的rpm包: [root@node1 oracle]# lltotal 59872-rw-r--r-- 1 root root 59865008 ...

  6. 学号20145303 《Java程序设计》第一周学习总结

    学号20145303 <Java程序设计>第一周学习总结 教材学习内容总结 *dos命令行: dir:列出当前目录下的文件及文件名 md:创建目录 rd:删除目录.为空时文件夹(文件夹为空 ...

  7. RocEDU.阅读.写作《苏菲的世界》书摘

    我们在成长的过程当中,似乎失去了对这世界的好奇心.也正因此,我们丧失了某种极为重要的能力(这也是一种哲学家们想要使人们恢复的能力).因为,在我们内心的某处,有某个声音告诉我们:生命是一种很庞大的.神秘 ...

  8. 解决 libnanomsg.so.0: cannot open shared object file: No such file or directory 无法找到libnanomsg动态链接库

    参考: [11]缺少动态连接库.so--cannot open shared object file: No such file or directory Importing Issues: cann ...

  9. jvm垃圾回收策略

    一.jvm堆内存的分代划分 在基于分代的内存回收策略中,堆空间通常都被划分为3个代,年轻代,年老代(或者tenured代),永久代.在年轻代中又被划分了三个小的区域,分别为:Eden(伊甸)区,S0区 ...

  10. 直播P2P技术2-低延迟模型

    低延迟模型 由上一篇文章我们知道:网状拓扑虽最大化利用了所有节点的资源却无法降低数据延迟,而树状拓扑尽管数据传输效率高,延迟低,但只利用了少部分节点的带宽资源,不适应高码率的直播P2P网络. 那么如何 ...