20155326《网络攻防》Exp4 恶意代码分析
20155326《网络攻防》Exp4 恶意代码分析
基础问题回答:
1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
答:首先,可以使用windows自带的schtasks指令设置一个计划任务,每隔一定的时间对主机的联网记录等进行记录。也可以使用sysmon工具,通过修改配置文件,记录相关的日志文件,或是Process Explorer工具,监视进程执行情况。
2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
答:启动该程序,利用systracer及wireshark动态分析程序动向,或是利用virscan分析它。
实践目标
1)监控你自己系统的运行状态,看有没有可疑的程序在运行。
2)是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
3)假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。
实践过程
恶意代码是指没有作用却会带来危险的代码,一个最安全的定义是把所有不必要的代码都看作是恶意的,不必要代码比恶意代码具有更宽泛的含义,包括所有可能与某个组织安全策略相冲突的软件。
恶意代码的分析方式有两种:静态分析技术和动态分析技术。在这篇博客里我们静态分析选用的工具是:virscan、PE explorer、PEiD、;动态分析选用的工具是:systracer、wireshark、netstat、sysmon。
使用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地址等等都监测并记录的十分清楚。
(PS:才开始的时候建错了导致没有更新。。。要建.bat文件在里面输入date /t >> c:\netstatlog.txt等需要被记录的内容,才会出现新的内容。。)
在静置了两三天后按照学姐的博客中介绍的excel分析方法将记录文件中的记录进行分析:
很奇怪的是我明明等了挺久的,但是协议项统计出来后感觉和大家的差挺多,可能是我没怎么用电脑?哈哈哈
从图中可以看出360se.exe联网最多,360se.exe是“360浏览器”进程,可以使用“任务管理器”进行关闭。
还有与360相关的联网最多的是360tray.exe,从上图来看他是360安全卫士木马防火墙模块。
第二多的是vmware-hosted.exe,我查了一下,没有明确的解释,但我觉得是就是作为一个服务端,让管理中心来控制。
接下来看看哪些外部网络连接最频繁:
通过ip查寻可以看出排名前三的分别是金山云公司、百度网讯以及东南大学。。很好奇为什么会访问东南大学。。
使用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进行安装:
可是才开始这里出现了错误:
改成sysmon5326路径后还是错的。
后来输入命令-accepteula -i -n对啦!
之后就可以在任务管理器中看到sysmon.exe已经在运行了
启动之后,便可以到事件查看器里查看相应的日志:
由于sysmon用来监视和记录系统活动,并记录到windows事件日志,可以提供有关进程创建,网络链接和文件创建时间更改的详细信息。
通过收集使用Windows事件集合或SIEM代理生成的事件,然后分析它们,可以识别恶意或异常活动,并了解入侵者和恶意软件在您的网络上如何操作。
所以这里挑出其中一个进行分析,这个是Microsoft-Windows-Sysmon/Operational在创建进程。
查询后,可以看出这是个为命令行程序提供支持的进程:
参考:Conhost.exe是什么进程?为什么会运行?图文详解
这个行为是vs中的一个叫vcpkgsrv.exe的进程终止的行为,Process terminated (rule: ProcessTerminate)
查询百度后得知这应该是vs中的一个智能感知程序,会自动更新,拉低电脑的速度~
这个名叫Sysmon config state changed的行为翻译过来是SYSMON配置状态改变:
这个应该是安装sysmon时输入的命令:
使用virscan分析恶意软件
在virscan网站上查看上次改进后的后门程序的文件行为分析:
可以看到启动回连主机的被打码的IP地址以及端口号,以及检测自身是否被调试和打开事件的行为。
使用systracer工具分析恶意软件
使用systracer工具建立了4个快照,分别是在主机中没有恶意软件时、将恶意软件植入到目标主机中后、恶意软件启动回连时、使用恶意软件获取目标主机的摄像头时:
结果分析:
启动回连时注册表发生变化,看出很多被删除了:
启动回连时,新建了bdoor1.exe应用,可以看见它启用了许多DLL文件:
ntdll.dll:ntdll.dll是Windows系统从ring3到ring0的入口。位于Kernel32.dll和user32.dll中的所有win32 API最终都是调用ntdll.dll中的函数实现的。ntdll.dll中的函-数使用SYSENTRY进入ring0,函数的实现实体在ring0中。
Wow64.dll 是Windows NT kernel的核心接口, 在32位和64位调用之间进行转换, 包括指针和调用栈的操控。
Wow64win.dll 为32位应用程序提供合适的入口指针。
Wow64cpu.dll 负责将处理器在32位和64位的模式之间转换,它可以被发现在C:\位置
Intel的x86处理器是通过Ring级别来进行访问控制的,级别共分4层,RING0,RING1,RING2,RING3。Windows只使用其中的两个级别RING0和RING3。RING0层拥有最高的权限,RING3层拥有最低的权限。按照Intel原有的构想,应用程序工作在RING3层,只能访问RING3层的数据,操作系统工作在RING0层,可以访问所有层的数据,而其他驱动程序位于RING1、RING2层,每一层只能访问本层以及权限更低层的数据。
综合以上描述,该程序可以获取到RING0权限,具有较高的侵略性。
ntdll.dll是Windows系统从ring3到ring0的入口。位于Kernel32.dll和user32.dll中的所有win32 API 最终都是调用ntdll.dll中的函数实现的。ntdll.dll中的函数使用SYSENTRY进入ring0,该程序可以获取到RING0权限,具有较高的侵略性。
实验总结与体会
本次实验的重点在于对恶意代码进行分析,通过这次实验,我懂得了以后要是想检测自己的电脑,可以通过这次实验中使用的方法手动监测。同时,弄清楚一个程序是不是病毒,更要熟悉自己的电脑,清楚某些端口号的作用,清楚什么是可疑的动态。实验中遇到的问题都记录到实验过程中啦~~
20155326《网络攻防》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的作用:安排命令和程序定期运行或在指定时间内运行.从计 ...
- 20145236《网络攻防》Exp4 恶意代码分析
20145236<网络攻防>Exp4 恶意代码分析 一.基础问题回答 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些 ...
- 20155310 《网络攻防》Exp4 恶意代码分析
20155310 <网络攻防>Exp4 恶意代码分析 基础问题 1.如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些, ...
- 20155318 《网络攻防》Exp4 恶意代码分析
20155318 <网络攻防>Exp4 恶意代码分析 基础问题 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什 ...
- 20155321 《网络攻防》 Exp4 恶意代码分析
20155321 <网络攻防> Exp4 恶意代码分析 计划任务监控 在C盘根目录下建立一个netstatlog.bat文件(先把后缀设为txt,保存好内容后记得把后缀改为bat),内容如 ...
随机推荐
- centos7在vmware上安装后不能连接网络的问题。注意虚拟机向导时选择的操作系统...........
在虚拟机上安装时发现网络不可用 在网上查找解决方案一整理天,各种命令代码偿试 无效. 在贴上发现说 Centos7镜像是64位 ,虚拟机操作系统一定要选择centos64位也是必须的. 最后选择重 ...
- Java中线程池的实现原理
知识点总结 ---------------------------------------------------------------------------------------------- ...
- JSX
有一个 Babel 插件,用于在 Vue 中使用 JSX 语法,它可以让我们回到更接近于模板的语法上.JSX语法返回一个vnode对象 import AnchoredHeading from './A ...
- mapper.xml文件,sql语句参数为list
<insert id="insertPjCustomAttribute" parameterType="com.devops.server.model.PjCust ...
- T-SQL中的APPLY用法
原文出处:http://www.sqlservercentral.com/articles/Stairway+Series/121318/ 从SQL Server 2005开始,微软添加了一个新的运算 ...
- Python入门:Anaconda和Pycharm的安装和配置
Python入门:Anaconda和Pycharm的安装和配置 转自:https://www.cnblogs.com/yuxuefeng/articles/9235431.html 子曰:“工欲善其 ...
- maven pom.xml 项目报错
Failed to read artifact descriptor for org.springframework.boot:spring-boot-starter-web:jar:2.1.0.RE ...
- [INet] WebSocket 数据收发的详细过程
WebSocket 和 HTTP 相似,只是一个应用层协议,对下层透明,所以不涉及 TCP/IP. 由于浏览器支持了 WebSocket,所以在用 JS 写客户端的时候,是无需考虑数据的编码解码的. ...
- SpringCloud-day02-服务消费者项目建立
4.4microservice-ticket-consumer-80服务消费者项目建立 我们新建一个服务器提供者module子模块,类似前面建的common公共模块,名称是 microservice- ...
- 查看oracle的执行计划
基于ORACLE的应用系统很多性能问题,是由应用系统SQL性能低劣引起的,所以,SQL的性能优化很重要,分析与优化SQL的性能我们一般通过查看该SQL的执行计划,本文就如何看懂执行计划,以及如何通过分 ...