恶意代码分析

20175314 2020-3 《网络对抗技术》Exp3 免杀原理与实践 Week7

一、实践目标

1、实践对象

  • 经过加密和压缩的恶意代码markshell_hyperion_upxed.exe

2、实践内容

  • 系统运行监控

    • 使用如计划任务每隔一分钟记录电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述分析结果。目标:找出所有连网的程序的连接和操作,这个操作是否合适合理,并有针对性的抓包做进一步的分析。
    • 安装配置sysinternals中的sysmon工具,设置合理的配置文件,监控主机的重点事可疑行为。
    • 实际日志的分析还需要发挥下自己的创造力,结合以前学过的知识如linux的文本处理指令等进行(难点在于从大量数据中理出规律、找出问题)。
  • 恶意软件分析

    • 分析该软件在启动回连,安装到目标机及其他任意操作时(如进程迁移或抓屏),该后门软件:
      • 读取、添加、删除了哪些注册表项
      • 读取、添加、删除了哪些文件
      • 连接了哪些外部IP,传输了什么数据(抓包分析)

二、基础知识

1、实践要求

  • 监控你自己系统的运行状态,看有没有可疑的程序在运行;
  • 分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件;
  • 假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。

2、指令/参数

  • schtasks安排命令和程序定期运行或在指定时间内运行
    • TN任务名,这里命名为schtasks5314
    • sc计时方式,这里用MINUTE表示以分钟为单位
    • bnb是显示可执行文件的名字,n是用数字表示IP和端口
    • TR要运行的指令、
    • >输出重定向即输出的文件路径,本次为c:\netstatlog.txt
    • schtasks /create /TN schtasks5314 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt"

3、预备知识

  • 分析工具
    • schtasks
    • WPS
    • Sysmon
    • Wireshark
    • SysTracer
    • PEiD
    • VirusTotal

三、实践步骤

1、系统运行监控

  • 使用schtasks指令添加计划任务

  • 新建schtasks5314.txt输入

date /t >> c:\netstat20175314.txt 
time /t >> c:\netstat20175314.txt 
netstat -bn >> c:\netstat20175314.txt
  • 保存并退出,修改文件名schtasks5314.bat并复制到C盘目录

  • 任务计划程序编辑计划任务


  • 运行任务netstat开始记录后台的数据,保持电脑的正常使用,约两小时后在C盘目录打开netstat20175314.txt查看数据

  • 使用WPS的表格工具导入文档数据,生成数据透视图

    微信 WeChat.exe
    Office OfficeClickToRun.exe WINWORD.EXE WinStore.App.exe EXCEL.EXE
    腾讯课堂 TXEDU.exe
    金山词霸 ktpcntr(广告)
    知网研学 CNKIWebServiceAccess.exe CNKIEIDataSrv.exe
    阿里巴巴 AlibabaProtect.exe(反钓鱼)
    Microsoft Edge MicrosoftEdgeCP.exe MicrosoftEdge.exe browser_broker.exe
    Google Chrome GoogleUpdate.exe
    福昕高级PDF编辑器 FoxitProxyServer_Socket_PH.exe
    VMware Workstation Pro vmware.exe vmware-authd.exe vmnat.exe
    PacketiX VPN Server 管理工具 vpnserver_x64.exe
    Windows HxTsr.exe(易被感染的与数字签名有关的系统重要组件) svchost.exe SearchUI.exe CHsIME.exe backgroundTaskHost.exe

  • 在这段时间中使用最多的是微信和腾讯课堂还有虚拟机,符合实际情况。但是后台存在很多非我主动运行的软件进程,甚至还有广告软件,还有根本没有下载安装的网络安全组件和应受重点关注的易感染的系统组件,所以在日常使用中应该主动留意后台进程,保证后台的有序和可信不仅能够保证自己信息的安全,也能够保障系统的流畅运行。

  • 下载SysinternalsSuite.zip并解压

  • 因为系统是64位的系统所以选择Sysmon64.exe,右键属性详细信息查看产品版本,在SysinternalsSuite所在目录下创建sysmon20175314.xml,以文本文档方式打开输入代码保存并退出

    ProcessCreate 进程创建,这里的进程名包含了所有以该进程名结尾的进程
    NetworlConnect 网络连接,过滤掉浏览器的网络连接,即源IP为127.0.0.1(本机IP)的网络连接和目的端口为137(提供局域网中ID或IP查询服务)的连接服务,且查看目的端口为80(http)和443(https)的网络连接
    CreateRemote 远程线程创建
    FileCreate Time 进程创建时间
    onmatch include/exclude 设置免检/必检名单

  • 以管理员身份运行CMDSysmon64.exe目录下执行Sysmon64.exe -i sysmon20175314.xml

  • 事件查看器(本地)-应用程序和服务日志-Microsoft-Windows-Sysmon-Operational查看根据配置信息sysmon20175314.xml记录的进程信息进程号 路径等系统信息

恶意软件分析

  • 使用恶意软件(实验三中的加壳后门程序进行回连),以日志信息和Wireshark捕包信息分析系统进程规律

  • 在事件查看器中根据运行时间找到相应后门程序操作的相关信息,在Wireshark过滤器中输入筛选条件ip.addr == 192.168.40.130查看相关的协议包信息

  • Kali系统与Windows系统Ping通时的ICMP

  • MSF反弹连接时的TCP

  • dir查看磁盘中后门程序目录下的文件,日志没有更新

  • getuid查看作为运行服务器的用户,日志更新一条

  • SearchFilterHost.exe桌面搜索引擎的索引程序,主要作用是建立快速索引文件,让用户能够更好的搜索出电脑中的任意资料。它会在计算机空闲时自动扫描索引位置的文件名、属性信息和给定类别的文件内容,这些索引位置默认包括桌面、收藏夹、开始菜单、系统目录

  • screenshot截屏,日志更新三条

  • 其中包括截图工具SnippingTool.exe

  • webcam_snap通过摄像头拍照,日志更新了两条


  • mspclock.sysmspqm.sys都是系统关键文件,可能会成为病毒感染的对象

  • 总的来看,在没有针对性地绕过Sysmon监控的情况下,Sysmon也不能完全监控到恶意软件的攻击行为,而删除配置项或卸载SysmonDrv过滤器的驱动程序更可以绕过Sysmon,所以安全软件还是非常重要的。从Wireshark的捕包结果来看,协议包数量主要是由传输数据(文件)大小决定(screenshot.jpg≈140Kb/webcam.jpg≈15Kb)

  • 下载SysTracer并安装

SysTracer是一款集成HIPS以及进程行为跟踪功能的安全辅助工具,可以跟踪并监视进程对整个系统的修改行为,包括文件操作,注册表操作,内存操作和危险行为。SysTracer可以监视全部进程,或者用户指定的某一个进程及其子进程,并提供监视日志以帮助用户对特定进程的行为进行分析。可在任何想要的时间获取无数个屏幕快照,可比较任何一对想要的屏幕快照,并且观察其间的不同之处。获取屏幕快照通常会持续几分钟的时间,取决于文件和文件夹的数量和注册表项目的总数。
  • 安装时要输入相应端口

  • 运行SysTracer共进行5次记录,为控制变量Kali始终在运行状态,同时因为后门程序与虚拟机的位置都在C盘D盘,所以可以根据实际情况只勾选相应的内容以精简分析过程

    • Snapshot #1未植入恶意软件前
    • Snapshot #2植入恶意软件后
    • Snapshot #3恶意软件回连后
    • Snapshot #4MSF相关的操作sysinfo``````screenshot
    • Snapshot #5退出恶意软件后
  • 在比较过程中,#1-#4只需要查看新增的内容即可,#5则需要查看修改和删除的内容

  • 比较#1#2,可以发现加入了大量注册表值但是暂时还无法确定是否与后门程序有关

  • 可以确定相关的键值和文件还有进程有明显特别的增加


  • 比较#2#3,又可以发现增加了大量可能无关的注册表值还有相关的进程

  • 这里查看到的相应IP和相应端口可以知道回连成功

  • 比较#3#4,执行的MSF指令操作没有发现特别明显的相关变化

  • 比较#4#5,相关的进程和文件还有键值都有删除

  • 后门程序已经没有在后台运行了,但是相关的注册表值暂时还没有变化(可能重启后也会删除),所以我们除了定期要清理磁盘垃圾文件以外也需要工具对注册表进行维护(修复或删除等)

  • 使用PEiD检查恶意代码是否加壳,但是该恶意代码是加过加密壳和压缩壳的,这里只检测出了压缩壳

  • 使用VirusTotal检查恶意代码,可以查看MD5、SHA-1、文件类型、文件大小、加壳方式等相关信息

Basic properties
    MD5           c3affb62b04fecc07c6fc34bc4f9762f 
    SHA-1         1fb035179f418e8e5a66923705f6dbced9ff7502 
    SHA-256       ffda14b93c2933bedcd9be0637f954699f06f20df6a4bb9d68a920e58fc8d7d5 
    Vhash         02503e0f7d1bz4!z 
    Authentihash  aa8676671817900b31b2a7ba27f938fad408149aa91a6fbecb78336d16d89001 
    Imphash       6ed4f5f04d62b18d96b26d6db7c18840 
    SSDEEP        6144:IaVMLYIFJRL1yDTHvpxicXlDClcBRgLbx6YMs1PxiS9G+ZK8o4TlDWA:......
    File type     Win32 EXE 
    Magic         PE32 executable for MS Windows (GUI) Intel 80386 32-bit 
    File size     289.00 KB (295936 bytes) 
    F-PROT        UPX # 这里也没有检测到加密壳
    PEiD          UPX 2.90 [LZMA] -> Markus Oberhumer, Laszlo Molnar & John Reiser 

History
    Creation Time     2020-03-27 01:15:01 
    First Submission  2020-04-02 00:25:09 
    Last Submission   2020-04-02 00:25:09 
    Last Analysis     2020-04-05 15:22:15 

Names
    c3affb62b04fecc07c6fc34bc4f9762f.virus 

Portable Executable Info
    Header 
    Target Machine            Intel 386 or later processors and compatible processors 
    Compilation Timestamp     2020-03-27 01:15:01 
    Entry Point               629984 
    Contained Sections        3 

Sections 
    Name    Virtual Address    Virtual Size    Raw Size    Entropy                 MD5 
    UPX0         4096             331776         0           0       d41d8cd98f00b204e9800998ecf8427e 
    UPX1         335872           294912         294912      7.72    eb2a73ba86dd4d2e0bbbab721003a93e 
    UPX2         630784           4096           512         1.38    80e3fddc7bb34f8dda72990f3853d87a 

Imports  
    KERNEL32.DLL 

ExifTool File Metadata
    CodeSize                  294912 
    EntryPoint                0x99ce0 
    FileType                  Win32 EXE 
    FileTypeExtension         exe 
    ImageFileCharacteristics  No relocs, Executable, No line numbers, No symbols, 32-bit 
    ImageVersion              0.0 
    InitializedDataSize       4096 
    LinkerVersion             1.71 
    MIMEType                  application/octet-stream 
    MachineType               Intel 386 or later, and compatibles 
    OSVersion                 1.0 
    PEType                    PE32 
    Subsystem                 Windows GUI 
    SubsystemVersion          4.0 
    TimeStamp                 2020:03:27 02:15:01+01:00 
    UninitializedDataSize     331776

File system actions
    Files opened 
    C:\WINDOWS\system32\winime32.dll 
    C:\WINDOWS\system32\ws2_32.dll 
    C:\WINDOWS\system32\ws2help.dll 
    C:\WINDOWS\system32\psapi.dll 
    C:\WINDOWS\system32\imm32.dll 
    C:\WINDOWS\system32\lpk.dll 
    C:\WINDOWS\system32\usp10.dll 

Registry actions
    Registry keys opened 
    \Registry\Machine\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\996E.exe 
    \Registry\MACHINE\System\CurrentControlSet\Control\SafeBoot\Option 
    \Registry\Machine\Software\Policies\Microsoft\Windows\Safer\CodeIdentifiers 
    \REGISTRY\MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\TransparentEnabled 
    \REGISTRY\USER\S-1-5-21-......\Software\Policies\Microsoft\Windows\Safer\CodeIdentifiers 

Modules loaded
    Runtime modules 
    KERNEL32.DLL 
    kernel32.dl

四、实践报告

1、遇到的问题

  • 问题 因为以前都是使用Windows7的虚拟机与Kali虚拟机进行回连,这次尝试主机时发现Kali可以Ping通主机(Windows10),但是主机不能Ping通Kali。

  • 解决方案 固然是可以将虚拟机的网络设置修改成桥接模式来解决,但是这样的话Kali的IP地址就会主机地址改变,后门程序就需要重新生成,所以我选择更改主机网络连接设置中VMware的NAT模式相应适配器的IPv4地址来解决,只需要将前24位IP地址设置成与Kali正常NAT模式下的IP地址相同处在同一子网下即可。

2、基础问题回答

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

    • 使用schtasks定时监听,一段时间后统计数据;
    • 使用Sysmon,通过编写配置文件监视相应的进程情况;
    • 使用Systracer进行快照对几次系统状态进行比较。
  • (2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。

    • 使用VirusTotal进行检查;
    • 使用Systracer进行分析,查看其对注册表、文件的修改;
    • 使用wireshark进行捕包分析,查看它连接到了哪些IP、与外部进行了哪些通信。

3、实验收获与感想

猜你喜欢

转载自www.cnblogs.com/SANFENs/p/12619195.html