zoukankan      html  css  js  c++  java
  • 20155236范晨歌 恶意代码分析

    20155236范晨歌 恶意代码分析

    恶意代码

    • 恶意代码是指故意编制或设置的、对网络或系统会产生威胁或潜在威胁的计算机代码。最常见的恶意代码有计算机病毒(简称病毒)、特洛伊木马(简称木马)、计算机蠕虫(简称蠕虫)、后门、逻辑炸弹等。
    • 特征:
      • 恶意的目的,获取靶机权限、用户隐私等
      • 本身是计算机程序,可以执行,并作用于靶机
      • 通过执行发生作用,一般来说不运行是没问题的

    恶意代码分析

    • 在大多数情况下,进行恶意代码分析时,我们将只有恶意代码的可执行文件本身,而这些文件并不是我们人类可读的。为了了解这些文件的意义,你需要使用各种工具和技巧,而每种只能揭露出少量的信息。所以在实战中,我们要综合使用各种工具,才能看到一个全貌。
    • 恶意代码分析有两类基本方法:
      • 静态分析:在没有运行恶意代码时对其进行分析的技术
      • 动态分析:相比较静态分析而言,则需要运行恶意代码,通过其产生的行为,如对计算机中注册表、文件的更改,网络的连接等动态数据进行分析,从而确定其具体行为

    使用计划任务schtasks

    • 使用命令C:schtasks /create /TN netstat /sc MINUTE /MO 5 /TR "cmd /c netstat -bn > c: etstatlog.txt" 创建计划任务netstat
    • 如下图所示:

    netstat命令设置计划任务

    • 在C盘中创建一个5236netstatlog.bat文件
      • 其中写入代码
    date /t >> c:5236netstatlog.txt
    time /t >> c:5236netstatlog.txt
    netstat -bn >> c:5236netstatlog.txt
    
    • 在任务计划程序中,新建一个触发器

    • 新建一个操作,并设置参数:>> c: etstat5236.txt

    • 并设置一个名称,给予最高权限

    • 回连后,发现记录了以下回连产生的记录


    sysmon工具查看恶意代码回连前后情况

    • 首先我们在https://docs.microsoft.com/zh-cn/sysinternals/下载sysmon,在Sysmon.exe同目录下建立文件:test.txt,并输入老师指导书中给的XML
    <Sysmon schemaversion="4.00">      //4.00为你的版本号,如不知道版本号,可先运行下面的指令,根据所提示的错误进行更改
     <!-- 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>
    </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>
    
    • 管理员身份运行CMD,输入指令:Sysmon.exe -i test.xml,进行安装

    • 配置文件可以随时修改,修改完需要用如下指令更新一下Sysmon.exe -c 20155236.txt

    • 然后我们打开控制面板,搜索事件查看,打开事件查看器,sysmon的日志就在,应用程序和服务日志/Microsoft/Windows/Sysmon/Operational下

    • 对日志进行查看

    • 利用下面的代码对txt进行更改,然后使用sysmon.exe -c 20155236.txt,进行更新。

    <Sysmon schemaversion="4.00">
     <!-- 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">SogouExplorer.exe</Image>
    </NetworkConnect>
    
    <NetworkConnect onmatch="include">     
     <DestinationPort condition="is">80</DestinationPort>      
     <DestinationPort condition="is">443</DestinationPort>
     <DestinationPort condition="is">5210</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>
    
    


    开启后门

    SysTracer

    • Step0:准备两台虚拟机,kali攻击机,Win10靶机,SysTracer2.10分析软件
    • Step1:打开攻击机msfconsle,开放监听;win10下对注册表、文件、应用情况进行快照,保存为Snapshot #1
    • Step2:win10下打开5236.exe,回连kali,win10下再次快照,保存为
    • Step3:kali中通过msf发送文件给win10靶机,win10下再次快照,保存为
    • Step4:kali中对win10靶机进行屏幕截图,win10下再次快照,保存为
    • 通过比较每次快照文件的区别,来判断相应的变化

    结果分析

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

    • 启动回连时,新建了5236.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权限,具有较高的侵略性。

    • 启动回连时开放端口发生变化,如下图所示,因为本地木马5236.exe会连接远程端口443,所以先关闭了443端口,再开放了443端口

    • 安装到目标机时,文件内容监控发现多了个文件

    • 截屏时注册表发生了一些变化

    wireshark抓包分析

    • 设置IP过滤格式:ip.src==192.168.18.128 or ip.dst==192.168.18.128如下图所示,捕捉到了靶机回连kali时通过TCP的三次握手协议过程

    • 设置IP过滤格式:ip.src==192.168.18.128 and ip.dst==192.168.18.129如下图所示,捕捉到了靶机kali向虚拟机win7发送文件的数据包

    总结与思考

    • 恶意代码不仅可以通过一些工具来进行静态分析,而且还可以通过动态的手段来防护。例如我们电脑自带的Windows Defender,IDS,还有杀软的防护功能,对系统都是一种监控;但是这种监控我们无法直接看到,通常都是自动处理了,只能留下清除的记录,不过我们可以通过一些动态监控软件,例如SysTracer、SysinternalsSuite、ProceMonitor等一些工具,可以搜集一段时间内系统注册表、文件等的变化;
    • 如果怀疑一台主机上有恶意代码,应当首先更新病毒库,并对敏感怀疑位置进行病毒查杀,如果没有找到,应该开启相关病毒扫描引擎,对计算机进行动态扫描,然后打开相应的监视器,查看有没有可疑注册表、进程,通过注册表中的可疑项或者进程,右键可以打开文件所在位置,对特定的文件进行详细的静动态分析,最终确认是否为恶意代码;
  • 相关阅读:
    CentOS下crontab执行java程序
    大数据学习总结(1)任务描述
    敏捷开发总结(2)开发过程活动
    敏捷开发总结(1)软件研发过程
    持续集成(4)工具对比
    持续集成(2)整体流程
    持续集成(1)概念模型
    用户画像(3)用户画像的建模方法-事实标签
    用户画像(2)构建用户画像的数据源
    用户画像(1)用户画像的概念、意义和目标
  • 原文地址:https://www.cnblogs.com/fcgfcgfcg/p/8874541.html
Copyright © 2011-2022 走看看