20145236《网络攻防》Exp4 恶意代码分析

一、基础问题回答

  1. 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。

    • (1)我们可以使用一些工具帮助自己监测系统,可以实时监控电脑上的端口信息,如果受到怀疑的恶意代码启动的时候连接了一些看起来很可疑的端口,就可以进一步进行分析。
    • (2)我们可以通过在windows下建立一个监测本机连接ip地址的任务计划程序,不定时的查看一下电脑都在什么时候连了网干了什么,如果在你觉得自己的电脑没有联网的情况下出现了ip访问记录就十分可疑了。
    • (3)可以通过sysmon监控几乎所有的重要操作,并在事件查看器中找到日志查看。
  2. 如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
    • (1)PE explorer工具,它可以对程序调用库等信息进行分析查看,还可以对其反汇编。
    • (2)PEiD工具,可以查看程序有没有被常用的加壳软件加壳。
    • (3)启动该程序,利用systracer及wireshark动态分析程序动向。

二、实践过程

  • 恶意代码是指没有作用却会带来危险的代码,一个最安全的定义是把所有不必要的代码都看作是恶意的,不必要代码比恶意代码具有更宽泛的含义,包括所有可能与某个组织安全策略相冲突的软件。
  • 恶意代码的分析方式有两种:静态分析技术和动态分析技术。在这篇博客里我们静态分析选用的工具是:virscan、PE explorer、PEiD、;动态分析选用的工具是:systracer、wireshark、netstat、sysmon。
  • 本次实验采用的代码是第二次后门实验的代码。

2.1 使用schtasks指令监控系统运行

  1. 先在C盘目录下建立一个netstatlog.bat文件,用来将记录的联网结果格式化输出到netstatlog.txt文件中,netstatlog.bat内容为:
date /t >> c:\netstatlog.txt
time /t >> c:\netstatlog.txt
netstat -bn >> c:\netstatlog.txt
  1. 打开Windows下命令提示符,输入指令schtasks /create /TN netstat /sc MINUTE /MO 5 /TR "c:\netstatlog.bat"指令创建一个每隔五分钟记录计算机联网情况的任务:

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



  • 端口号、ip地址等等都监测并记录的十分清楚,美中不足的是我发现这个程序重启系统之后貌似需要在任务计划程序里手动开启?(不知道是不是我的配置不对,但是尝试了好几次如果不不手动开重启之后就不会记录。)

2.2 使用sysmon工具监控系统运行

  1. 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>
  1. 配置好文件之后,要先使用sysmon -accepteula –i指令对sysmon进行安装:

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

2.3 使用virscan分析恶意软件

  1. 在virscan网站上查看上次实验所做的后门软件的文件行为分析:

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

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

2.4使用systracer工具分析恶意软件

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

结果分析:

  • 启动回连时注册表发生变化

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

  • wow64cpu.dllwow64cpu.dll是一个进程来自Microsoft Corporation。它可以被发现在C:\位置。这是一个潜在的安全风险,它能被病毒恶意修改。

  • wow64win.dll:同上。

  • ntdll.dllntdll.dll是Windows系统从ring3ring0的入口。位于Kernel32.dlluser32.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 恶意代码分析的更多相关文章

  1. 2018-2019 20165237网络对抗 Exp4 恶意代码分析

    2018-2019 20165237网络对抗 Exp4 恶意代码分析 实验目标 1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行. 1.2是分析一个恶意软件,就分析Exp2或Exp3中生成后 ...

  2. 2018-2019 20165235 网络对抗 Exp4 恶意代码分析

    2018-2019 20165235 网络对抗 Exp4 恶意代码分析 实验内容 系统运行监控 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里.运行一段时间并分析该文件 ...

  3. 2018-2019 20165319 网络对抗 Exp4 恶意代码分析

    基础问题回答 1. 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什么方法来监控 答:1.使用Windows自带的schta ...

  4. 2018-2019-2 《网络对抗技术》Exp4 恶意代码分析 Week6 20165311

    2018-2019 20165311 网络对抗 Exp4 恶意代码分析 2018-2019 20165311 网络对抗 Exp4 恶意代码分析 实验内容 系统运行监控(2分) 恶意软件分析(1.5分) ...

  5. 2018-2019-2 20165312《网络攻防技术》Exp4 恶意代码分析

    2018-2019-2 20165312<网络攻防技术>Exp4 恶意代码分析 知识点总结 1.有关schtasks schtacks的作用:安排命令和程序定期运行或在指定时间内运行.从计 ...

  6. 20155326《网络攻防》Exp4 恶意代码分析

    20155326<网络攻防>Exp4 恶意代码分析 基础问题回答: 1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪 ...

  7. 20155310 《网络攻防》Exp4 恶意代码分析

    20155310 <网络攻防>Exp4 恶意代码分析 基础问题 1.如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些, ...

  8. 20155318 《网络攻防》Exp4 恶意代码分析

    20155318 <网络攻防>Exp4 恶意代码分析 基础问题 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什 ...

  9. 20155321 《网络攻防》 Exp4 恶意代码分析

    20155321 <网络攻防> Exp4 恶意代码分析 计划任务监控 在C盘根目录下建立一个netstatlog.bat文件(先把后缀设为txt,保存好内容后记得把后缀改为bat),内容如 ...

随机推荐

  1. 常量(const)和只读变量(readonly)

    //const修饰的数据叫做 常量 //常量一旦声明常量的值就不能改变. //常量在声明的时候 必须要赋初始值 //C#编译器在编译的时候 声明常量的那句话不见了. //在使用常量的地方就用常量的值代 ...

  2. [android] 图片的缩放

    界面布局,线性布局,竖直排列,两个ImageView 获取到两个ImageView对象 调用BitmapFactory.decodeResource(res,id)方法,获取Bitmap对象 参数:r ...

  3. elasticsearch6.7 01.入门指南(3)

    4.Modifying Your Data(修改数据) Elasticsearch 提供了近实时的操纵数据和搜索的能力.默认情况下,从索引/更新/删除数据到在搜索结果中显示数据会有 1 秒的延迟(刷新 ...

  4. 解决升级Spark2.0之后,DataFrame map操作报错

    当我们在使用spark1.6的时候,当我们创建SQLContext读取一个文件之后,返回DataFrame类型的变量可以直接.map操作,不会报错.但是升级之后会包一个错误,如下: 报错:No imp ...

  5. c语言学习笔记-do......while

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 一.do......while函数意义 循环执行(人机交互) 二.do......while函数结构 do{ 语句1: 语句2: ...

  6. PyCharm 安装 pip

    打开 File --> Settings --> Project Interpreter --> 点击右边 + 号 --> 搜索栏输入 pip --> 点击 Instal ...

  7. 基于InfluxDB实现分页查询功能

    InfluxDB作为时序数据库中的翘楚,应用范围非常广泛,尤其在监控领域. 最近做了一个功能,将InfluxDB中的数据查询出来后,在前台分页展现,比如每页10条,一共100页,可以查看首页.末页,进 ...

  8. (网页)alert()怎么回事出不来,代码没有写错

    1.不报错,请查看浏览器是否禁掉了alter. 2.console.log()输出,避免这种尴尬.

  9. Python中识别DataFrame中的nan

    # 识别python中DataFrame中的nanfor i in pfsj.index: if type(pfsj.loc[i]['WZML']) == float: print('float va ...

  10. python第七十一天---堡垒机

    堡垒机的表结构图: