2018-2019-2 20165234 《网络对抗技术》 Exp4 恶意代码分析
实验四 恶意代码分析
实验目的
- 1.监控自己系统的运行状态,看有没有可疑的程序在运行。
- 2.分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
- 3.假定将来工作中觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。
实验内容
系统运行监控
(1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
(2)安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
实际日志的分析还需要发挥下自己的创造力,结合以前学过的知识如linux的文本处理指令等进行。分析的难点在于从大量数据中理出规律、找出问题。这都依赖对结果过滤、统计、分类等进一步处理,这就得大家会什么用什么了。
恶意软件分析
分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件
(3)读取、添加、删除了哪些注册表项
(4)读取、添加、删除了哪些文件
(5)连接了哪些外部IP,传输了什么数据(抓包分析)
基础问题
1. 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控
- 使用Windows自带的schtasks指令设置一个计划任务,指定每隔一定时间记录主机的联网记录或者是端口开放、注册表信息等;
- 通过sysmon工具,配置好想记录事件的文件,之后在事件查看器里找到相关日志文件查看;
- 使用任务管理器->进程,监视进程执行情况,查看是否有可疑程序运行。
2. 如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息
- Systracer分析注册表差异、文件、运行进程等的不同;
- virscan集合各种杀软,对指定文件进行分析定性。
- Threatbook也就是老师上课所说的沙箱的一种,感觉比virscan检测出的信息更多些,而且还是网页版的很方便。
实验步骤
(一)系统运行监控
(1)使用计划任务
- 使用 schtasks 指令监控系统
- 在windows命令行下输入命令 schtasks /create /TN netstat5234 /sc MINUTE /MO /TR "cmd /c netstat -bn > d:\netstat5234.txt" 创建名为 netstat5234 的任务计划。
注:我在虚拟机里尝试了多次,但因权限问题没有成功,所以在自己的主机里完成此任务。我将 netstat5234.txt 和 netstat5234.bat 都放置在了D盘目录下。
> TN:Task Name,本例中是netstat5234
> SC: SChedule type,本例中是MINUTE,以分钟来计时。本例中设置为1分钟
> MO: MOdifier
> TR: Task Run,要运行的指令是 netstat -bn,b表示显示可执行文件名,n表示以数字来显示IP和端口
(第一次创建忘了截图)
- 在桌面创建 netstat5234.txt
- 在其中写入以下内容:
date /t >> D:\netstat5234.txt
time /t >> D:\netstat5234.txt
netstat -bn >> D:\netstat5234.txt
- 将后缀名改为.bat
- 在"开始"中,打开 任务计划程序 ,点击 任务计划程序库 可以看到刚刚创建的任务 netstat5234 ,双击打开这个任务,在 操作 页面中进行编辑。
- 将 程序或脚本 改为刚才创建好的 netstat5234.bat 批处理文件。
- 可以修改相关设置,可关闭【只有在计算机使用交流电源时才启动此任务】
- 每隔一分钟就记录网络情况,可以打开 netstat5234.txt 进行查看
记录此时已足够进行分析,将这些数据导入Excel中。
- 【数据】->【自文本】->【导入文本文件】->【选择 netstat5234.txt 】
- 将"分隔符号"中所有种类选中
- "列数据格式"选择常规
- 成功导入
- 生成数据透视图
(2)使用sysmon工具监控系统
1. 确定监控对象。这里选择进程创建ProcessCreate、进程创建时间FileCreatTime、网络连接NetworkConnect、远程线程创建CreateRemoteThread。
2. 创建配置文件,我的配置文件如下:
- 20165234monconfig.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">chrome.exe</Image>
</ProcessCreate> <FileCreateTime onmatch="exclude" >
<Image condition="end with">chrome.exe</Image>
</FileCreateTime> <NetworkConnect onmatch="exclude">
<Image condition="end with">chrome.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>
3.下载sysinternals。下载地址:https://docs.microsoft.com/zh-cn/sysinternals/downloads/sysmon
一键安装命令: sysmon -accepteula -i -n
- 用 Sysmon.exe -c C:\20165234monconfig.txt 命令指定配置文件
打开事件查看器,按照【事件查看器(本地)】->【应用程序和服务日志】->【Microsoft】->【Windows】->【Sysmon】->【Operational】依次展开
(3)利用Sysmon具体分析日志
- 由于ip地址有变动,我制作了一个新的后门 backdoor_exp4 ,Kali攻击机用 meterpreter 回连,可以看到连接的详细信息,包括ip、端口、pid等:
- 由此可见,进程号为
- 根据获得shell的时间,可以在日志中查看相关信息
(二)恶意软件分析
(1)使用VirusTotal分析恶意软件
- 将后门程序放到VirusTotal中进行分析,并得到SHA-1、MD5摘要值、文件类型、大小、TRiD文件类型识别结果和算法库支持情况
(2)使用Process Monitor分析恶意软件
这里我主要进行了三次快照,分别为【传递后门程序前】、【进行回连时】、【进行回连之后】
- 点击“take snapshot”
- 快照完成
- 进行比对,点击 compare ,三次文件出现的不同之处:
- 可以观察到注册表发生变化:
- 点击上方“Applications”->左侧“Running Processes”->找到后门进程“backdoor_exp4.exe”->点击“Opened Ports”查看回连地址、远程地址和端口号:
- 一些新增加的文件
- 此外我们可以通过查看后门软件的“opened handles”(打开的句柄),以对比他们都做了什么
(3)Wireshark进行抓包分析
- 启动前的设置
- 可以把过滤条件设置为: ip.addr == kali的IP
- 查看ncat连接时的流量包:
- 查看反弹连接时的流量包:
- 捕捉到一个APR地址解析协议的包,虚拟机将地址在局域网广播:
实验感想
本次实验的重点在分析恶意代码。我们学习使用了数款用于检测恶意代码的指令或是软件,例如SysTracer、Sysmon等工具。恶意代码的分析方法主要分为静态分析方法和动态分析方法,而这两种方法在本次实验中都有所涉及。杀毒软件不是百分之百安全的,因此我们要时常对电脑的行为进行监控,不能只依靠杀毒软件。
2018-2019-2 20165234 《网络对抗技术》 Exp4 恶意代码分析的更多相关文章
- 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中生成后门软件: ...
随机推荐
- CentOS7 升级 gvim 到 8.x 版本
因为 CentOS7 在默认情况下,通过 yum 安装的 vim-X11.x86_64 版本为 7.x 版本,对 Youcompleteme 支持不好.故需要升级到 8.x 版本. 以下记录 gvim ...
- 逆向学习-PE文件格式
从DOS头到节区头是PE头部分,其下的节区合称PE体.文件中使用偏移(offset),内存中使用VA(Virtual Address,虚拟地址)来表示位置.文件加载到内存时,情况就会发生变化(节区的大 ...
- 【原创】互联网项目中mysql应该选什么事务隔离级别
摘要 企业千万家,靠谱没几家. 社招选错家,亲人两行泪. 祝大家金三银四跳槽顺利! 引言 开始我们的内容,相信大家一定遇到过下面的一个面试场景 面试官:"讲讲mysql有几个事务隔离级别?& ...
- python官网几个下载文件的区别
进入python官方,下载python编译器,提供了如下几个版本进行选择,这些版本分别是什么意思呢? Python 3.7.1 - 2018-10-20 Download Windows x86 we ...
- Neutron:Firewall as a Service(FWaaS)
用户可以用它来创建和管理防火墙,在 subnet 的边界上对 layer 3 和 layer 4 的流量进行过滤. 传统网络中的防火墙一般放在网关上,用来控制子网之间的访问. FWaaS 的原理也 ...
- 其他综合-内网下Yum仓库搭建配置
内网下Yum仓库搭建配置 1.实验环境 虚拟机环境: VMware 12 版本虚拟机 网络环境: 内网 IP 段:172.16.1.0 外网 iP 段(模拟):10.0.0.0 实验基础:(能够上网, ...
- Activiti6-FormService(学习笔记)重要
设置流程定义文件: <?xml version="1.0" encoding="UTF-8"?> <definitions xmlns=&qu ...
- CountDownLatch类实现同步
首先我们看一个普通的多线程代码 class MyThread implements Runnable { @Override public void run() { System.out.printl ...
- 【pytorch】pytorch-LSTM
pytorch-LSTM() torch.nn包下实现了LSTM函数,实现LSTM层.多个LSTMcell组合起来是LSTM. LSTM自动实现了前向传播,不需要自己对序列进行迭代. LSTM的用到的 ...
- Spring MVC 使用介绍(十三)数据验证 (一)基本介绍
一.消息处理功能 Spring提供MessageSource接口用于提供消息处理功能: public interface MessageSource { String getMessage(Strin ...