2018-2019-2 网络对抗技术 20165210 Exp4 恶意代码分析
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进行比较,可以看到运行后门进行回连后的变化
- 注册表的变化
- 端口变化
- 增加的dll
- 我们选中2、3进行比较,看执行dir指令后的变化
- 发现注册表又新增了两个配置信息
- 然后我们再打开opened handles对比他们做了什么
- 我们选中2、4进行比较,看执行record_mic指令后有什么变化
- 注册表中又有新的变化
- 发现增加了一些新的文件都与后门有关
- 而且发现新增加的文件dll什么的都与多媒体有关
使用wireshark对流量进行抓包分析
- 先打开wireshark捕包,然后进行回连,然后过滤ip.addr == 192.168.16.143
可以看到Wireshark上捕获到大量的TCP传输,然后进行其他的操作,发现Kali会不断给Windows传一大堆ACK包,有时还伴有PSH+ACK包。
四、实验中遇到的问题
- 安装sysmon时发现这个问题
参考了学长的博客解决了这个问题
2.一开始我一直是用win7做的,做到wireshark时在win7上安装上了之后发现用不了,没有发现网络接口,不知道什么原因,然后就在主机上装了做的。
五、实验中的体会和感受
这次实验做了一天好难受,期间虚拟机崩了,进不去kali了,有找人考的虚拟机,然后安装的东西也别较多,比较杂,还好做完了,本次实验我从一个攻击者变成了一个分析者,分析恶意代码,这些工具的分析程度也有高低,强!
六、实验后回答问题
- (1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
答:用相应的工具来分析记录文件,查看日志,行为分析查证注册表信息等方式证明是否为恶意代码。
- (2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
答:抓包,查看进行了那些网络活动,使用日志查看器查看程序或进程的工作日志,分析工作信息。
2018-2019-2 网络对抗技术 20165210 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是哪里.运行一 ...
随机推荐
- JAVA面试题整理(2)-多线程/并发
1.synchronized 的实现原理以及锁优化? 在JDK 5之前Java语言是靠synchronized关键字保证同步的.使用synchronized 关键字定义同步方法,或者在方法中使用syn ...
- Object类包含方法
9个方法: 1. clone() 2. equals() 3. finalize() 4. getClass() 5. notify() 6. notifyAll() 备注:5.6多归于一个 7. h ...
- cookie注入原理
cookie注入原理-->红客联盟 http://www.2cto.com/article/201202/118837.html 前言: document.cookie:表示当前浏览器中的coo ...
- Java中private、protected、public和default的区别-001
public: 具有最大的访问权限,可以访问任何一个在classpath下的类.接口.异常等.它往往用于对外的情况,也就是对象或类对外的一种接口的形式. protected: 主要的作用就是用来保护子 ...
- Java GC垃圾回收
Java的内存分配和回收也主要在Java的堆上进行的,Java的堆中存储了大量的对象实例,所以Java的堆也叫GC堆. Java在垃圾收集的过程中,主要用到了分代收集算法,具体有复制.标记清除.标记压 ...
- MySQL INSERT语句
insert的语法 INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO] tbl_name [(col_name,...)] ...
- dpdk CUSE
As the Userspace I/O HOWTO says For many types of devices, creating a Linux kernel driver is overkil ...
- JavaScript权威指南--类型、值和变量
本章要点图 数据类型:计算机程序的运行需要对值(value)比如数字3.14或者文本"hello world"进行操作,在编程语言中,能够表示并操作的值的类型叫做数据类型(type ...
- pahlcon:cookies设置
非加密方式(简单,但不推荐) 步骤 1 在全局容器中加入Cookie: $di->set('cookies', function () { $cookies = new \Phalcon\Htt ...
- web常见问题排查
原帖地址:http://mp.weixin.qq.com/s?__biz=MjM5NzUwNDA5MA==&mid=200596752&idx=1&sn=37ecae802f3 ...