2018-2019-2 网络对抗技术 20165212 Exp4 恶意代码分析
2018-2019-2 网络对抗技术 20165212 Exp4 恶意代码分析
原理与实践说明
1.实践目标
- 监控你自己系统的运行状态,看有没有可疑的程序在运行。
- 分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
- 假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。
2.实践内容概述
- 系统运行监控
- 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述分析结果。
- 安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
- 分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件
- 读取、添加、删除了哪些注册表项
- 读取、添加、删除了哪些文件
- 连接了哪些外部IP,传输了什么数据
实践过程记录
1.使用schtasks指令监控系统(使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述分析结果)
- 使用schtasks /create /TN netstat5212 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt"命令创建计划任务netstat5212
- TN是TaskName的缩写,我们创建的计划任务名是netstat5212;
- sc表示计时方式,我们以分钟计时填MINUTE;
- TR=Task Run,要运行的指令是 netstat
- bn,b表示显示可执行文件名,n表示以数字来显示IP和端口;
表示输出重定向,将输出存放在c:\netstatlog.txt文件中
在桌面建立一个netstatlog.txt文件,内容为: date /t >> c:\netstatlog.txt time /t >> c:\netstatlog.txt netstat -bn >> c:\netstatlog.txt
- 这些指令是用来将记录的联网结果格式化输出到netstatlog.txt文件中
- 将后缀名改为.bat后,用管理员身份将该文件放入C盘
- 打开计算机管理的“任务计划程序库”,可以查看到5212netstat任务就绪,打开其属性,修改其指令为c:\netstatlog.bat
- 还可以自行更改该任务的其他属性,如在"条件"选项卡中可以看到,电源选项中默认操作为“只有在计算机使用交流电源时才启动此任务”,把这个取消掉
执行此脚本一定时间,就可以在netstat5212.txt文件中查看到本机在该时间段内的联网记录:
- 当记录的数据足够丰富时,停止任务,将所得数据在excel中进行分析,此过程要一直保持开机联网状态才能持续监控 等待一段时间(6小时),将存储的数据通过excel表进行整理, 统计图如下:
- 由统计数据可知,联网排名第1的是“vmware-hosted.exe”,这一管理服务是esx主机和vmkernel之间的主要通信通道。其次还有ware.exe、QQ.exe等常见的程序,并没有发现什么异样这
2.使用sysmon工具监控系统(安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。)
sysmon是微软Sysinternals套件中的一个工具,直接从(马云链接)上下载。使用sysmon工具前首先要配置文件。参考使用轻量级工具Sysmon监视你的系统该文章,手动创建配置文件sysmon20165212.xml。
代码如下
<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">360se.exe</Image>
</ProcessCreate> <FileCreateTime onmatch="exclude" >
<Image condition="end with">360se.exe</Image>
</FileCreateTime> <NetworkConnect onmatch="exclude">
<Image condition="end with">360se.exe</Image>
<SourcePort condition="is"></SourcePort>
<SourceIp condition="is">127.0.0.1</SourceIp>
</NetworkConnect>
<NetworkConnect onmatch="include">
<DestinationPort condition="is"></DestinationPort>
<DestinationPort condition="is"></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>
- 安装sysmon:执行命令sysmon.exe -i C:\sysmon2016212.xml,成功安装结果如下:
查看“事件查看器”,选择日志的位置,应用程序和服务日志/Microsoft/Windows/Sysmon/Operational,在这里,我们可以看到按照配置文件的要求记录的新事件,以及事件ID、任务类别、详细信息等。
分析日志,我分析的是自己生成的后门文件进行分析。 启动回连到kali
- 找到运行后门文件相对应的日志,打开这个事件,可以看到其属于“NetworkContect”。查看详细信息,可以看到这个后门映像文件的具体位置、源IP和端口、目的IP和端口等
- 在kali中会用webcam_snap命令调用主机的摄像头抓拍,日志中看到一个带有Photo关键词的日志记录
- kali中运行dir命令后,主机日志中可以看到一个带有searchfile关键词的日志记录
- SearchFilterHost.exe是桌面搜索引擎的索引程序,其主要作用是建立快速索引文件,让用户能够更好的搜索出电脑中的任意资料。它会在计算机空闲时自动扫描索引位置的文件名、属性信息和给定类别的文件内容,这些索引位置默认包括桌面、收藏夹、开始菜单、系统目录。
- kali中输入ps后,主机中的日志记录
- kali中输入shell,主机中的日志记录
恶意软件分析
使用VirusTotal分析恶意软件
把生成的恶意代码放在VirusTotal进行分析(也可以使用VirusScan工具),基本情况如下:
查看这个恶意代码的基本属性:
可以看出它的SHA-1、MD5摘要值、文件类型、文件大小,以及TRiD文件类型识别结果。(注:TRiD通过读取文件头,根据特征码进行文件类型匹配。)最神奇的是它可以查出来文件的编码方式,可以看出我是用VC++进行编译的!
还可以看到加壳连接情况:upx壳和http连接
- 以及该恶意代码的算法库支持等一系列信息
使用systracer分析恶意软件
这个我放在win7虚拟机里进行。文减少,易于进行比较
点击右侧的take snapshot,存储快照
- 快照1:移植后门程序,保存为Snapshot #1
- 快照2:运行后门程序并在kali中实现回连,保存为Snapshot #2
- 快照3:在kali中使用dir指令,保存为Snapshot #3
- 快照4:在kali中使用record_mic指令,保存为Snapshot #4
快照1和2的对比,可以明显看到增加了后门程序
- 快照2和3的对比,注册表和文件增删改方面
- 快照2和4对比,能够看到在媒体播放器方面有所改动
返回目录
使用wireshark抓包分析恶意软件
- 回连完成后结束捕获,并过滤ip,只看和虚拟机IP有关的数据包,所以把没用的包过滤掉 - 首先是tcp建立的三次握手
- 有大量的TCP包,这其中有回连相关的包,之后我有用dir指令查看了靶机的当前目录,传输了很多数据过来:
基础问题回答
- 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
- 使用windows自带的schtasks指令设置一个计划任务,发现网络连接异常
- 使用Sysmon,编写配置文件,记录有关的系统日志
- 使用Process Explorer工具,监视进程执行情况。
- 使用Process Monitor工具,监视文件系统、注册表、进程/线程的活动。
- 如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
- 使用systracer工具分析恶意软件,查看其对注册表和文件的修改。
- 使用Wireshark进行抓包分析,监视其与主机进行的通信过程。
- 使用Process Explorer工具或Process Monitor工具,监视文件系统、注册表、进程/线程的活动。
实验中遇到的问题及解决方法
- 安装sysmon时,自己写的xml配置文件和下载的安装包版本要对应
- xml配置文件中的过滤项里一般我们填的127.0.0.1的过滤掉,因此有时候如果虚拟机ifconfig显示的ip时候127.0.0.1那么日志里是肯定看不到相关日志的,所以要注意虚拟机的ip不要被过滤掉。
- 开启360情况下所有日志中的目的地址都会是360设定的地址,应该是360会将主机和kali之间通信的数据进行加密或者“安全处理”,所以为了直观的观察结果,可以吧360关掉
实验总结与体会
本次实验相比于之前2次少了很多具体的操作,但是要求我们更充分的去了解恶意代码的特征、工作原理,通过观测我们上几次自己制作的特征明显的后门程序,我能直观地看到日志行为特征,连蒙带猜,仅通过sysmon的日志就可以判断自己的电脑有没有可以迹象 本次实验在动态分析的时候,锻炼了我们的信息处理能力,明显看到有很多不同,但是分析是又不知道该从何下手,不太清楚每一项具体代表什么含义,只能通过查阅资料,连蒙带猜的进行分析。 通过自己动手实践,实现了从攻击者身份到检测、分析者身份的转变,更全面的理解了前两次实验中生成的后门程序到底在做什么,对恶意代码有了更深入的理解。所以,我们在发现自己电脑有了不正常的流量消耗之后,而杀软没有任何报毒,就可以通过观察日志去判断自己的电脑有没有被植入后门,这一点,能力范畴超越了360等杀软,是我们实验过程中弥足珍贵的收获!
2018-2019-2 网络对抗技术 20165212 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是哪里.运行一 ...
随机推荐
- Python -- Json 数据编码及解析
Python -- Json 数据编码及解析 Json 简单介绍 JSON: JavaScript Object Notation(JavaScript 对象表示法) JSON 是存储和交换文本 ...
- SQL脚本去重分组统计
需求:首先有一张表记录学生姓名.科目和成绩,然后模拟插入几条数据,脚本如下: create table score ( Name ),--姓名 subject ),--科目 grade int--成绩 ...
- jsp post/get中接处理
jsp post/get中接处理 以参数:username为便 post接收中文比get接收中文要方便多了. <%@ page contentType="text/html;chars ...
- temp table
在Oracle8i或以上版本中,可以创建以下两种临时表: 1.会话特有的临时表 CREATE GLOBAL TEMPORARY <TABLE_NAME> ( <column spec ...
- POJ-3894 迷宫问题 (BFS+路径还原)
定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, ...
- EBS R12 MOAC原理探索 (转)
转载地址 EBS R12 MOAC原理探索
- Hibernate---介绍
Hibernate---介绍 框架体系结构: 2hibernate入门 1.1 ORM框架 Hibernate是一个数据持久化层的ORM框架. Object:对象,java对象,此处特指JavaBea ...
- quartz---的一个简单例子
quartz---的一个简单例子 首先建立一个maven项目.jar工程即可.(提示:我前面有如何建立一个maven工程的总结以及maven环境的配置.) 1.建立好后点击到app中运行,--> ...
- OC 类的本质和分类
一.分类 (一)分类的基本知识 概念:Category 分类是OC特有的语言,依赖于类. 分类的作用:在不改变原来的类内容的基础上,为类增加一些方法. 添加一个分类: 文件结构图: 在分类中添加一 ...
- Word发布到cnblogs文章
1◆ 打开word 2◆ 注册用户 3◆ 操作 success