2018-2019-2 《网络对抗技术》Exp4 恶意代码分析 Week6 20165311
2018-2019 20165311 网络对抗 Exp4 恶意代码分析
2018-2019 20165311 网络对抗 Exp4 恶意代码分析
- 实验内容
- 系统运行监控(2分)
- 恶意软件分析(1.5分)
- 报告评分(1分)
- 基础问题回答
- 实验过程
- 实验中遇到的问题及解决方法
- 实验感想
基础问题回答
1. 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控
- 使用Windows自带的schtasks指令设置一个计划任务,指定每隔一定时间记录主机的联网记录或者是端口开放、注册表信息等;
- 通过sysmon工具,配置好想记录事件的文件,之后在事件查看器里找到相关日志文件查看;
- 使用任务管理器->进程,监视进程执行情况,查看是否有可疑程序运行。
2. 如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息
- 使用systracer工具分析恶意软件,进行快照的对比.
- virscan集合各种杀软,对指定文件进行分析定性。
- 使用Wireshark进行抓包分析,监视其与主机进行的通信过程。
实验内容
系统运行监控(2分)
- 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
- 安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
参考:schtask与sysmon应用指导
实际日志的分析还需要发挥下自己的创造力,结合以前学过的知识如linux的文本处理指令等进行。分析的难点在于从大量数据中理出规律、找出问题。这都依赖对结果过滤、统计、分类等进一步处理,这就得大家会什么用什么了。
恶意软件分析(1.5分)
- 分析该软件在(1)启动回连(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。
- 该后门软件
- 读取、添加、删除了哪些注册表项
- 读取、添加、删除了哪些文件
- 连接了哪些外部IP,传输了什么数据(抓包分析)
该实验重点在“分析”,不是“如何使用某软件”。组长、课题负责人要求写细一点,其他人可以重点放在分析上。
报告评分(1分)
实践过程
1、windows计划任务
- 以管理员身份打开cmd,使用指令```schtasks /create /TN 5311netstat /sc MINUTE /MO /TR "cmd /c netstat -bn > c:\netstatlog.txt创建计划任务5311netstat,记录每1分钟计算机联网情况:
- 在c盘下手动创建一个netstatlog.txt文件

- 在桌面建立一个20165311netstatlog.txt文件,内容为:
date /t >> c:\netstatlog.txt
time /t >> c:\netstatlog.txt
netstat -bn >> c:\netstatlog.txt
将后缀名改为.bat后,用管理员身份将该文件放入C盘
打开计算机管理的“任务计划程序库”,可以查看到5311netstat任务就绪,打开其属性,修改其指令为20165311netstatlog.bat


- 在属性中“常规”一栏最下面勾选“使用最高权限运行”,不然程序不会自动运行

- 在属性中“条件”这一选项中的“电源”一栏中,取消勾选“只有计算机使用交流电源才启动此任务”,防止电脑一断电任务就停止

- 可以在C盘的netstat5311.txt文件中查看到本机在该时间段内的联网记录:

- 等待一段时间,将存储的数据通过excel表进行整理

分析:
首先我们可以看到BtvStack.exe是最多的,其次是“chrome.exe”和“Explorer.exe”。当启动谷歌浏览器时前者就会出现在任务管理器中,关闭任务管理器后会自动退出。
这里我们还可以找到、虚拟机、后门程序20165311_backdoor.exe这些连网的进程。
2、使用sysmon工具
- 首先创建配置文件sysmon5311.txt,并输入如下的代码:
<Sysmon schemaversion="4.20">
<!-- 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> <NetworkConnect onmatch="exclude">
<Image condition="end with">iexplorer.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>
<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:\sysmon5311.txt安装sysmon

- 安装成功之后在事件查看器中的应用程序和服务日志下,查看Microsoft->Windows->Sysmon->Operational。
- 在这里,我们可以看到按照配置文件的要求记录的新事件,以及事件ID、任务类别、详细信息等等。

利用Sysmon具体分析日志
这里我选择了自己实验二中生成的后门20165311_backdoor.exe进行分析
启动回连、安装到目标主机。

- 输入getpid 查询进行数据筛选

- 在服务日志中发现了后门程序的痕迹

恶意软件分析
(1) 文件扫描(VirScan工具)
- 使用在线VirusScan工具对上次实验中生成的.jar文件进行扫描

- 点击 哈勃文件
分析查看详细分析结果:

总结:
此恶意代码主要就是通过建立一个反弹连接,受害机一旦运行该程序,攻击机就会自动获取该受害机的控制权限,
并在受害机中创建进程、修改删除文件、创建事件对象等等,对受害机造成很大的威胁。
(2)文件格式识别(peid工具)
- 下载Peid工具,对上次实验中用Veil生成的加壳的后门程序进行查壳

- 换第二次实验生成的后门进行检测,显示什么都没找到

快照比对(SysTracer工具)
- 下载SysTracer工具
- 点击右侧的take snapshot,存储快照
- 快照一:未移植后门程序
- 快照二:移植后门程序
- 快照三:运行后门程序并在kali中实现回连
- 快照四:在kali中使用dir指令
- 快照五:在kali中使用record_mic指令


- 通过右下角的View Differences Lists比对各快照,进行分析
- 快照一和快照二:发现增加了我的后门程序

- 快照二和快照三:发现了我的后门程序正在运行的进程
- 快照三和快照四:增加了很多TCP连接,应该是为了获取windows的目录所以发出了TCP连接请求

- 快照四和快照五:删除了快照四中建立的TCP连接,创建了新的TCP连接,应该是为了发出录音功能请求

实验中遇到的问题
任务一中打开 netstat5311.txt 时,显示“请求的操作需要提升”

通过百度找到了解决办法,只要在代码前插入即可(自动以管理员权限运行)
@echo off
>nul >& "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '' (goto UACPrompt) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
pushd "%CD%"
CD /D "%~dp0"
实验感想
本次实验的重点在分析恶意代码。我们学习使用了数款用于检测恶意代码的指令或是软件,例如SysTracer、Sysmon等工具。
通过学习了解到,恶意代码的分析方法主要分为静态分析方法和动态分析方法。这两种方法在本次实验中都有所涉及。
我们要时常对电脑的行为进行监控,不能只依靠杀毒软件,杀毒软件不是百分之百安全的。
2018-2019-2 《网络对抗技术》Exp4 恶意代码分析 Week6 20165311的更多相关文章
- 2018-2019-2 20165325 网络对抗技术 Exp4 恶意代码分析
2018-2019-2 20165325 网络对抗技术 Exp4 恶意代码分析 实验内容(概要) 一.系统(联网)运行监控 1. 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,逐步排查并且 ...
- 20145226夏艺华 网络对抗技术EXP4 恶意代码分析
20145226夏艺华 网络对抗技术EXP4 恶意代码分析(未完成版) 回答问题 (1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作 ...
- 20155302《网络对抗》Exp4 恶意代码分析
20155302<网络对抗>Exp4 恶意代码分析 实验要求 •是监控你自己系统的运行状态,看有没有可疑的程序在运行. •是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工 ...
- 20145208 蔡野 《网络对抗》Exp4 恶意代码分析
20145208 蔡野 <网络对抗>Exp4 恶意代码分析 问题回答 总结一下监控一个系统通常需要监控什么.用什么来监控. 监控一个系统通常需要监控这个系统的注册表,进程,端口,服务还有文 ...
- 20145215《网络对抗》Exp4 恶意代码分析
20145215<网络对抗>Exp4 恶意代码分析 基础问题回答 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用 ...
- 20155227《网络对抗》Exp4 恶意代码分析
20155227<网络对抗>Exp4 恶意代码分析 实践目标 1.是监控你自己系统的运行状态,看有没有可疑的程序在运行. 2.是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分 ...
- 20155232《网络对抗》Exp4 恶意代码分析
20155232<网络对抗>Exp4 恶意代码分析 1.实践目标 1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行. 1.2是分析一个恶意软件,就分析Exp2或Exp3中生成后门 ...
- 20155239 《网络对抗》Exp4 恶意代码分析
20155239 <网络对抗>Exp4 恶意代码分析 使用schtasks指令监控系统运行 先在C盘目录下建立一个netstatlog.bat文件,用来将记录的联网结果格式化输出到nets ...
- 20155304《网络对抗》Exp4 恶意代码分析
20155304<网络对抗>Exp4 恶意代码分析 实践内容 1.系统运行监控 1.1使用schtasks指令监控系统运行 我们在C盘根目录下建立一个netstatlog.bat的文本文件 ...
- 20155308《网络对抗》Exp4 恶意代码分析
20155308<网络对抗>Exp4 恶意代码分析 实践说明 实践目标 是监控你自己系统的运行状态,看有没有可疑的程序在运行. 是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件: ...
随机推荐
- Java反射定义、获取Class三种方法
反射机制的定义: 在运行状态时(动态的),对于任意一个类,都能够得到这个类的所有属性和方法. 对于任意一个对象,都能够调用它的任意属性和方法. Class类是反射机制的起源,我们得到Class类对象 ...
- Entity Framework查询
Entity Framework是个好东西,虽然没有Hibernate功能强大,但使用更简便.今天整理一下常见SQL如何用EF来表达,Func形式和Linq形式都会列出来(本人更喜欢Func形式). ...
- vue父子组件之间互相获取data值&调用方法(非props)
vue 子组件调用父组件方法&数据 vue有$parent这么一个属性,在子组件中就能拿到父组件的数据 this.$parent.xxx 就能调用父组件的方法 this.$parent.xxx ...
- “百度杯”CTF比赛 2017 二月场 爆破-3
进入题目,题目源码: <?php error_reporting(0);session_start();require('./flag.php');if(!isset($_SESSION['nu ...
- 2018-2019-1 20189208《Linux内核原理与分析》第九周作业
活动 main函数编译有问题,div 函数和系统中某个函数重名,浮点输出有问题,scanf也有问题 修改如下 scanf_s("%d %d", &a, &b); p ...
- 【原创】大叔问题定位分享(10)提交spark任务偶尔报错 org.apache.spark.SparkException: A master URL must be set in your configuration
spark 2.1.1 一 问题重现 问题代码示例 object MethodPositionTest { val sparkConf = new SparkConf().setAppName(&qu ...
- 完全卸载删除gitlab
完全卸载删除gitlab 1.停止gitlab gitlab-ctl stop 2.卸载gitlab(注意这里写的是gitlab-ce) rpm -e gitlab-ce 3.查看gitlab进程 p ...
- WX支付功能的调用
1.引入js. 2.微信支付的js.此处有的理解不知对不对,是照着老大的例子整改的~ $('.button').click(function () { var giftId = $('.show'). ...
- 四.property
将一个类的函数定义成特性以后,对象再去使用的时候obj.name,根本无法察觉自己的name是执行了一个函数然后计算出来的,这种特性的使用方式遵循了统一访问的原则 # 例一:BMI指数(bmi是计算而 ...
- CS DevExpress程序启动(主窗体初始化优化)
在进入程序主界面时,某些情况下主界面的初始化会消耗很长时间,例如一些复杂的业务系统,可能会从服务器上下载最新的数据进行展示等等,在这种情况下,我们可以采用一个进度界面展示“系统正在加载...”,等主界 ...
