20145236《网络攻防》Exp4 恶意代码分析
20145236《网络攻防》Exp4 恶意代码分析
一、基础问题回答
- 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
- (1)我们可以使用一些工具帮助自己监测系统,可以实时监控电脑上的端口信息,如果受到怀疑的恶意代码启动的时候连接了一些看起来很可疑的端口,就可以进一步进行分析。
- (2)我们可以通过在windows下建立一个监测本机连接ip地址的任务计划程序,不定时的查看一下电脑都在什么时候连了网干了什么,如果在你觉得自己的电脑没有联网的情况下出现了ip访问记录就十分可疑了。
- (3)可以通过sysmon监控几乎所有的重要操作,并在事件查看器中找到日志查看。
- 如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
- (1)PE explorer工具,它可以对程序调用库等信息进行分析查看,还可以对其反汇编。
- (2)PEiD工具,可以查看程序有没有被常用的加壳软件加壳。
- (3)启动该程序,利用systracer及wireshark动态分析程序动向。
二、实践过程
- 恶意代码是指没有作用却会带来危险的代码,一个最安全的定义是把所有不必要的代码都看作是恶意的,不必要代码比恶意代码具有更宽泛的含义,包括所有可能与某个组织安全策略相冲突的软件。
- 恶意代码的分析方式有两种:静态分析技术和动态分析技术。在这篇博客里我们静态分析选用的工具是:virscan、PE explorer、PEiD、;动态分析选用的工具是:systracer、wireshark、netstat、sysmon。
- 本次实验采用的代码是第二次后门实验的代码。
2.1 使用schtasks指令监控系统运行
- 先在C盘目录下建立一个
netstatlog.bat文件,用来将记录的联网结果格式化输出到netstatlog.txt文件中,netstatlog.bat内容为:
date /t >> c:\netstatlog.txt
time /t >> c:\netstatlog.txt
netstat -bn >> c:\netstatlog.txt
- 打开Windows下命令提示符,输入指令
schtasks /create /TN netstat /sc MINUTE /MO 5 /TR "c:\netstatlog.bat"指令创建一个每隔五分钟记录计算机联网情况的任务:

- 这个时候每隔5分钟就会更新一次netstatlog文件,我们可以查看当病毒回连的时候发生了什么:


- 端口号、ip地址等等都监测并记录的十分清楚,美中不足的是我发现这个程序重启系统之后貌似需要在任务计划程序里手动开启?(不知道是不是我的配置不对,但是尝试了好几次如果不不手动开重启之后就不会记录。)
2.2 使用sysmon工具监控系统运行
sysmon微软Sysinternals套件中的一个工具,可以从码云项目的附件里进行下载,我下载的是Sysmon v7.01,要使用sysmon工具先要配置文件,一开始我直接用的是老师给的配置文件:
<Sysmon schemaversion="3.10">
<!-- 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">chrome.exe</Image>
<Image condition="end with">iexplorer.exe</Image>
<SourcePort condition="is">137</SourcePort>
<SourceIp condition="is">127.0.0.1</SourceIp>
</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 -accepteula –i指令对sysmon进行安装:

启动之后,便可以到事件查看器里查看相应的日志:

2.3 使用virscan分析恶意软件
- 在virscan网站上查看上次实验所做的后门软件的文件行为分析:

- 可以看到其启动回连主机的部分IP地址以及端口号,还有对注册表键值进行了删除:

- 还有反调试和创建事件对象的行为:

2.4使用systracer工具分析恶意软件
- 使用
systracer工具建立了4个快照,分别是在主机中没有恶意软件时、将恶意软件植入到目标主机中后、恶意软件启动回连时、使用恶意软件获取目标主机的摄像头时:

结果分析:
启动回连时注册表发生变化

启动回连时,新建了
20145236_backdoor.exe应用,可以看见它启用了许多DLL文件

wow64cpu.dll:wow64cpu.dll是一个进程来自Microsoft Corporation。它可以被发现在C:\位置。这是一个潜在的安全风险,它能被病毒恶意修改。wow64win.dll:同上。ntdll.dll:ntdll.dll是Windows系统从ring3到ring0的入口。位于Kernel32.dll和user32.dll中的所有win32 API最终都是调用ntdll.dll中的函数实现的。ntdll.dll中的函-数使用SYSENTRY进入ring0,函数的实现实体在ring0中。Intel的x86处理器是通过Ring级别来进行访问控制的,级别共分4层,RING0,RING1,RING2,RING3。Windows只使用其中的两个级别RING0和RING3。RING0层拥有最高的权限,RING3层拥有最低的权限。按照Intel原有的构想,应用程序工作在RING3层,只能访问RING3层的数据,操作系统工作在RING0层,可以访问所有层的数据,而其他驱动程序位于RING1、RING2层,每一层只能访问本层以及权限更低层的数据。
综合以上描述,该程序可以获取到RING0权限,具有较高的侵略性。
2.5 使用wireshark分析恶意软件回连情况
- 设置IP过滤格式:
ip.src==192.168.85.129 or ip.dst==192.168.85.129,在进行回连操作时,使用wireshark进行抓包后可以看到,其先进行了TCP的三次握手,之后再进行数据的传输,如图所示,带有PSH,ACK的包传送的便是执行相关操作指令时所传输的数据包:

2.6使用Process Explorer分析恶意软件
在虚拟机下通过PE explorer打开文件
20145236_backdoor.exe,可以查看PE文件编译的一些基本信息,导入导出表等。如下图,可以看到该文件的编译时间、链接器等基本信息:

如图可以看出编译时间为2017年3月28日
处理器为i386
版本号为6.0如下图,我们点击“导入表”,可以查看该文件依赖的dll库:
这是未实现免杀的病毒文件的ddl库

WSOCK32.dll和WS2_32.dll,是用来创建套接字的dll库,显然,如果这个程序所介绍的功能中不应该有网络连接部分,那么在其动态链接库中还存在这2个库就显得尤为可疑了。
另外图中所显示的ADVAPI32.dll库百度可知:是一个高级API应用程序接口服务库的一部分,包含的函数与对象的安全性,注册表的操控以及事件日志有关。
敏感了吧,注册表的操控,想想72k的一个小程序还操控注册表,一看就不正经了。
另外2个不做过多介绍,属于一般程序在win下都会调用的dll库。
2.7 使用PEiD分析恶意软件
- 使用PEiD软件可以查看恶意软件的壳的相关信息,以及其所使用的编译器版本:

三、实验总结
- 本次实验的重点在于对恶意代码进行剖析,在这个稍微强大一点的病毒就能轻易逃过杀软的时代,想要保证电脑的安全不可谓不难。
- 以后我们若是怀疑自己的电脑被植入了病毒,可以通过这次实验中使用的方法手动监测。
- 弄清楚一个程序是不是病毒,更要熟悉自己的电脑,清楚某些端口号的作用,清楚什么是可疑的动态。
- 之前三次实验都是老师给出实验大体步骤,一步一步照着做下去,像按照说明书搭房子,锻炼的是动手能力,但这次实验几乎没有实验指导,怎么做都要自己去想,从地基到房梁结构都要自己设计,侧重于锻炼思维能力,收获了一种全新的学习体验。
20145236《网络攻防》Exp4 恶意代码分析的更多相关文章
- 2018-2019 20165237网络对抗 Exp4 恶意代码分析
2018-2019 20165237网络对抗 Exp4 恶意代码分析 实验目标 1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行. 1.2是分析一个恶意软件,就分析Exp2或Exp3中生成后 ...
- 2018-2019 20165235 网络对抗 Exp4 恶意代码分析
2018-2019 20165235 网络对抗 Exp4 恶意代码分析 实验内容 系统运行监控 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里.运行一段时间并分析该文件 ...
- 2018-2019 20165319 网络对抗 Exp4 恶意代码分析
基础问题回答 1. 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什么方法来监控 答:1.使用Windows自带的schta ...
- 2018-2019-2 《网络对抗技术》Exp4 恶意代码分析 Week6 20165311
2018-2019 20165311 网络对抗 Exp4 恶意代码分析 2018-2019 20165311 网络对抗 Exp4 恶意代码分析 实验内容 系统运行监控(2分) 恶意软件分析(1.5分) ...
- 2018-2019-2 20165312《网络攻防技术》Exp4 恶意代码分析
2018-2019-2 20165312<网络攻防技术>Exp4 恶意代码分析 知识点总结 1.有关schtasks schtacks的作用:安排命令和程序定期运行或在指定时间内运行.从计 ...
- 20155326《网络攻防》Exp4 恶意代码分析
20155326<网络攻防>Exp4 恶意代码分析 基础问题回答: 1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪 ...
- 20155310 《网络攻防》Exp4 恶意代码分析
20155310 <网络攻防>Exp4 恶意代码分析 基础问题 1.如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些, ...
- 20155318 《网络攻防》Exp4 恶意代码分析
20155318 <网络攻防>Exp4 恶意代码分析 基础问题 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什 ...
- 20155321 《网络攻防》 Exp4 恶意代码分析
20155321 <网络攻防> Exp4 恶意代码分析 计划任务监控 在C盘根目录下建立一个netstatlog.bat文件(先把后缀设为txt,保存好内容后记得把后缀改为bat),内容如 ...
随机推荐
- DataGridView样式生成器使用说明
啥都不说先看图 一. 功能介绍 1. winform DataGridView样式代码可视化即时生成,所见即所得 2. 预置DataGridView样式代码方案 预置三 ...
- c# 对html字符串进行编码
/// <summary> /// 对html字符串进行编码 /// </summary> /// <param name="html">htm ...
- Object与Class的区别
1.在Scala中声明private变量,Scala编译器会自动生成get,set方法 2.在Scala中变量需要初始化 3.在Scala中没有静态修饰符,在object下的成员全部都是静态的,如果在 ...
- 8.中断按键驱动程序之poll机制(详解)
本节继续在上一节中断按键程序里改进,添加poll机制. 那么我们为什么还需要poll机制呢.之前的测试程序是这样: ) { read(fd, &key_val, ); printf(" ...
- lfs(systemv版本)学习笔记-第2页
我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! lfs(systemv)学习笔记-第1页 的地址:https://www.cnblogs.com/renren-study-no ...
- ajax请求完之前的loading加载
很多时候我们需要引入框架来开发项目,这时我们可能会遇到页面还没加载完源码出来了的问题,给用户一种不好的视觉体验,这是便需要loading加载了,来完善用户体验! /*loading.js*/ // 加 ...
- unity相机跟随Player常用方式
固定跟随,无效果(意义不大) public class FollowPlayer : MonoBehaviour { public Transform Player; private Vector3 ...
- Fiddler 使用fiddler发送捕获的请求及模拟服务器返回
使用fiddler发送捕获的请求及模拟服务器返回 by:授客 QQ:1033553122 1.做好相关监听及代理设置 略 2.发送捕获的请求 如图 3.模拟服务器返回 本例的一个目的是,根据服务器返回 ...
- Angular基础(二) 组件的使用
一.简单操作 a) 使用Angular CLI可以快速创建项目框架,先运行 $ npm install –g @angular/cli@1.0.0安装CLI,为CLI的位置设置环境变量,然后就可以 ...
- drupal 2006 mysql server has gone away
在开发一个cms drupal网站时遇到了如上图的错误,几经百度谷歌,都一致说需要修改mysql的配置 max_allowed_packet参数,但是由于我买的是虚拟主机,并没有权限修改. 本来已经放 ...