• 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:
    etstatlog.txt
    time /t >> c:
    etstatlog.txt
    netstat -bn >> c:
    etstatlog.txt
    

    打开Windows下命令提示符,输入指令schtasks /create /TN netstat /sc MINUTE /MO 5 /TR "c: etstatlog.bat"指令创建一个每隔五分钟记录计算机联网情况的任务:

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

    端口号、ip地址等等都监测并记录的十分清楚。

    (PS:才开始的时候建错了导致没有更新。。。要建.bat文件在里面输入date /t >> c: etstatlog.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权限,具有较高的侵略性。

    实验总结与体会

    本次实验的重点在于对恶意代码进行分析,通过这次实验,我懂得了以后要是想检测自己的电脑,可以通过这次实验中使用的方法手动监测。同时,弄清楚一个程序是不是病毒,更要熟悉自己的电脑,清楚某些端口号的作用,清楚什么是可疑的动态。实验中遇到的问题都记录到实验过程中啦~~

  • 相关阅读:
    例题6-8 Tree Uva548
    例题6-7 Trees on the level ,Uva122
    caffe Mac 安装
    Codeforces Round #467 (Div. 1) B. Sleepy Game
    Educational Codeforces Round37 E
    Educational Codeforces Round 36 (Rated for Div. 2) E. Physical Education Lessons
    Good Bye 2017 E. New Year and Entity Enumeration
    Good Bye 2017 D. New Year and Arbitrary Arrangement
    Codeforces Round #454 D. Seating of Students
    浙大紫金港两日游
  • 原文地址:https://www.cnblogs.com/lmc1998/p/8856899.html
Copyright © 2020-2023  润新知