• 20174321王柏舟-Ep4-恶意代码分析


    目录

    一、实验目标

    二、实验原理

    三、实验内容

    四、实验步骤

    五、思考题

    六、实验总结


    一、实验目标

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

    二、实验原理

    1.恶意代码

    • 恶意代码的概念和分类
      • 恶意代码是一组使计算机按照攻击者的意图运行以达到恶意目的的指令合集。
      • 恶意代码分为:计算机病毒(Virus)、蠕虫(Worm)、恶意移动代码(Malicious mobilecode)、后门(Backdoor)、特洛伊木马(Trojan)、僵尸程序(Bot)、内核套件(Rootkit)、融合型恶意代码等。
    • 恶意代码分析方法
      • 静态分析(通过反病毒引擎扫描识别已知的恶意代码家族和变种名;逆向分析恶意代码模块构成、内部数据结构、关键控制流程等,理解恶意代码的机理,并提取特征码用于检测)
      • 动态分析(通过在受控环境中执行目标代码,以获取目标代码的行为以及运行结果)
    • 恶意代码分析工具
      • Schtasks 安排命令和程序定期运行或在指定时间内运行
      • WPS 导入 Schtasks记录的数据并使用表格生成统计信息
      • Sysmon 通过系统服务和驱动程序实现记录进程创建、文件访问以及网络信息的记录(Windows日志事件)
      • 在恶意代码回连服务端(Kali)时对网络协议(TCP、ICMP等)进行捕包分析
      • SysTracer跟踪并监视进程对整个系统的修改行为并进行比较
      • PEiD侦测加壳文件(类型和签名)
      • VirusTotal在线分析恶意代码(相应的的系统文件和注册表)

    2、指令/参数

    • schtasks安排命令和程序定期运行或在指定时间内运行

     schtasks /create /TN schtasks*** /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c: etstatlog.txt" 

      • TN任务名
      • sc计时方式,本实验用MINUTE表示以分钟为单位
      • bnb是显示可执行文件的名字,n是用数字表示IP和端口
      • TR要运行的指令
      • >输出重定向即输出的文件路径

    3、其他实验原理见MAL_动态分析_Windows计划任务schtasks


     三、实验内容

    1.系统运行监控

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

    2.恶意软件分析

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

    四、实验步骤

    (一)系统运行监控

    1、使用计划任务与netstat命令运行监控

    • 使用schtasks指令添加计划任务(以管理员身份运行cmd并输入指令schtasks /create /TN schtasks4321 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c: etstatlog.txt"

    • 在C盘目录下新建一个文本文件 schtasks4321.txt ,输入以下内容:
    date /t >> c:
    etstatlog.txt
    time /t >> c:
    etstatlog.txt
    netstat -bn >> c:
    etstatlog.txt
    

      保存并退出,修改文件名 schtasks4321.bat 并复制到C盘。

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

    【常规】

    【操作】——【编辑】

    • 数据记录:运行任务netstat ,保持电脑的正常使用,一段时间后打开C盘netstatlog.txt查看记录的后台数据。

    • 数据分析:用WPS的表格工具导入文档数据,生成数据透视图(参考博客

    【360se.exe】360浏览器 ,【dgservice.exe】驱动精灵,【DingTalk.exe】钉钉,【et.exe】WPS表格,【knbcenter.exe】猎豹浏览器安全及升级,【kvipwiz.exe】金山毒霸广告弹窗,【kxescore.exe】金山毒霸查杀子系统及文件实时监控服务进程,【QQPCTray.exe】腾讯安全程序,【SearchUI.exe】win10 Cortanar进程,【svchost.exe】windows系统程序,【Wechat.exe】微信,【wps.exe】WPS,【XLServicePlatform】迅雷基础服务

    2.sysmon工具监控系统

    • 下载SysinternalsSuite.zip并解压
    • 选择Sysmon64.exe,在【属性】中查看【产品版本】,为【10.42】
    • 在SysinternalsSuit目录中创建sysmon4321.xml,以文本文档方式打开输入代码保存并退出。

    • 以管理员身份运行cmd,在SysinternalsSuite目录中执行 Sysmon64.exe -i sysmon4321.xml 安装和配置sysmon。

     

    •  打开【事件查看器】→【应用程序和服务日志】→【Microsoft】→【Windows】→【sysmon】→【Operational】查看进程信息。

     

    (二)恶意软件分析

     分析恶意软件在启动回连和进行截屏、拍照等其他操作时

    该后门软件

    • 读取、添加、删除了哪些注册表项
    • 读取、添加、删除了哪些文件
    • 连接了哪些外部IP,传输了什么数据(抓包分析)

     1.动态分析

    1.1通过日志信息和Wireshark捕包信息分析

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

    • Kali系统与Windows系统Ping通时捕获ICMP 包

    • MSF 反弹连接时捕获 TCP 包,日志有所更新

     jiake4321_code.exe 频繁调用的进程是explorer.exe,这是文件资源管理器的进程。

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

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

     

     SearchFilterHost.exe 是桌面搜索引擎的索引程序,主要作用是建立快速索引文件。

    • screenshot截屏,日志更新三条

     audiodg.exe 属于Windows音频设备图形隔离程序。关系到设备是否能发出声音。(我不太懂这里截屏操作为什么会更新音频相关的程序日志)

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

     mspqm.sys 是系统文件,也有可能是木马病毒伪装的。

    • 分析Wireshark捕包结果,协议包数量主要是由传输数据(文件)大小决定。另外,通过筛选,可以看出它连接的IP地址有kali的ip地址,数据通过4321端口传输。在后门程序进行一系列操作时,采用TCP协议传输数据。
    • 分析sysmon记录的信息日志,sysmon不能完全监控到恶意软件的攻击行为,一些驱动程序能够绕过sysmon的记录。

    1.2通过Systracer分析

    • 下载Systacer并安装(安装过程中输入端口4321)

    • 运行SysTracer共进行5次记录,为控制变量Kali始终在运行状态。筛选包含后门程序和虚拟机的内容以精简分析过程,缩短快照时间。
      • Snapshot #1 安装后植入后门程序前
      • Snapshot #2 植入后门程序后
      • Snapshot #3 回连
      • Snapshot #4 MSF 操作( getuid  screenshot  sysinfo 等)
      • Snapshot #5退出后门程序后

    • 比较1、2,发现增加了大量文件,有很少的一部分可以判断出来与后门程序有关,而大部分都无法判断是否与后门程序有关系。

    另外,【Application】中可以看到增加了后门程序。【Registry】一项也有很多变化。

     HKEY_CLASSES_ROOTLocal Settings是应用程序运行时必需的信息,HKEY_CURRENT_USERSoftware包含了所安装的应用程序信息,HKEY_LOCAL_MACHINESYSTEM包括设备驱动和其他服务的描述和控制,HKEY_USERS仅包含了缺省用户设置和登录用户的信息。

    • 比较2、3,添加了大量的文件,也删除了很多dll文件。

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

    • 比较3、4,执行MSF 指令后注册表项并没有很大的变化。

    • 比较4、5,可以看到相关的进程、文件以及键值都有删除。

     【Applications】一项中可以看到删除了后门程序,端口号为4321。

    2.静态分析

    2.1VirusTotal

    使用VirusTotal检查恶意代码可以查看MD5、SHA-1、文件类型、文件大小、加壳方式等相关信息。(具体方法见Ep3)

    Basic Properties
    MD5	6e016dcacae124a4352806d417b72b5a
    SHA-1	f1e97d6e3695df57572a9254d4aeeb73e2dae702
    SHA-256	d1e8bacbbff3d932f97715abee3af55abae81b74a786c0c302030fd45125ba9c
    Vhash	01504d0d765d1bz3!z
    Authentihash	a395d7dc03259285d7fbf65b99d9eb0bd494cc3a689b0e6baded3082b2a62587
    Imphash	17a4bd9c95f2898add97f309fc6f9bcd
    SSDEEP	3072:bOKDuVGrs7CDwobcfj+jB1yLHFH8GPS8rhghxe95vqQQQt:SzVG47CDJowBoVJLtQ+X
    File type	Win32 EXE
    Magic	PE32 executable for MS Windows (GUI) Intel 80386 32-bit
    File size	113.50 KB (116224 bytes)
    History
    Creation Time	2020-03-31 16:37:45
    First Submission	2020-03-31 16:50:13
    Last Submission	2020-03-31 16:50:13
    Last Analysis	2020-03-31 16:50:13
    Names
    4321_jiake_hyperion.exe
    Portable Executable Info
    Header
    Target Machine	Intel 386 or later processors and compatible processors
    Compilation Timestamp	2020-03-31 16:37:45
    Entry Point	439788
    Contained Sections	4
    Sections
    Name	Virtual Address	Virtual Size	Raw Size	Entropy	MD5
    .bss	4096	319488	0	0	d41d8cd98f00b204e9800998ecf8427e
    .data	323584	99872	100352	7.99	bdfe92ca30bd0938923306ee9798aa71
    .text	425984	14057	14336	5.17	5aab6a4f6bbef821d2f470f377441220
    .idata	442368	136	512	1.29	260d24d41289a4ffd343ab548a3e76cc
    Imports
    KERNEL32.DLL
    ExifTool File Metadata
    CodeSize	14336
    EntryPoint	0x6b5ec
    FileType	Win32 EXE
    FileTypeExtension	exe
    ImageFileCharacteristics	No relocs, Executable, No line numbers, No symbols, 32-bit
    ImageVersion	0.0
    InitializedDataSize	100864
    LinkerVersion	1.69
    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:31 17:37:45+01:00
    UninitializedDataSize	0
    File System Actions
    Files Opened
    C:WINDOWSsystem32winime32.dll
    C:WINDOWSsystem32ws2_32.dll
    C:WINDOWSsystem32ws2help.dll
    C:WINDOWSsystem32psapi.dll
    C:WINDOWSsystem32imm32.dll
    C:WINDOWSsystem32lpk.dll
    C:WINDOWSsystem32usp10.dll
    C:WINDOWSsystem32faultrep.dll
    C:WINDOWSsystem32winsta.dll
    C:WINDOWSsystem32wtsapi32.dll
    Registry Actions
    Registry Keys Opened
    RegistryMachineSoftwareMicrosoftWindows NTCurrentVersionImage File Execution Options996E.exe
    RegistryMACHINESystemCurrentControlSetControlSafeBootOption
    RegistryMachineSoftwarePoliciesMicrosoftWindowsSaferCodeIdentifiers
    REGISTRYMACHINESOFTWAREPoliciesMicrosoftWindowsSaferCodeIdentifiersTransparentEnabled
    REGISTRYUSERS-1-5-21-1482476501-1645522239-1417001333-500SoftwarePoliciesMicrosoftWindowsSaferCodeIdentifiers
    RegistryMachineSoftwareMicrosoftWindows NTCurrentVersionAeDebug
    RegistryMachineSoftwareMicrosoftWindows NTCurrentVersionImage File Execution OptionsVERSION.dll
    RegistryMachineSoftwareMicrosoftWindows NTCurrentVersionImage File Execution OptionsUSERENV.dll
    REGISTRYUSERS-1-5-21-1482476501-1645522239-1417001333-500SoftwareMicrosoftWindowsCurrentVersionExplorerUser Shell FoldersPersonal
    REGISTRYUSERS-1-5-21-1482476501-1645522239-1417001333-500SoftwareMicrosoftWindowsCurrentVersionExplorerUser Shell FoldersLocal Settings
    Registry Keys Deleted
    REGISTRYMACHINESOFTWAREMicrosoftPCHealthErrorReportingDW
    REGISTRYMACHINESOFTWAREMicrosoftPCHealthErrorReportingDWDWFileTreeRoot
    Modules Loaded
    Runtime Modules
    kernel32.dll
    KERNEL32.DLL
    

    2.2peid工具

    • 加过压缩壳的后门程序:

     

    • 加过加密壳的后门程序:

     加过压缩壳的后门程序被检测出来了,而加过加密壳的后门程序无法被检测出来。


    五、思考题

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

    • 使用schtasks指令设置一个计划任务,观察一段时间的联网情况,对其进行分析查看是否有可疑的联网程序;
    • 使用Sysmon,编写配置文件,在事件查看器中的日志查看有无异常事件;
    • 使用Process Explorer,查看系统中是否存在可疑进程;
    • 使用Systracer拍摄几个时间点的快照,对比不同时间的快照,查看是否有可疑的增删注册表、启动项的行为;
    • 使用wireshark查看自己计算机的端口开放情况,查看是否有多余端口进行可疑的数据传输。

    2.如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。

    • 使用PEiD查看程序是否加壳,加的什么壳;
    • 使用wireshark查看他在运行时传输信息的方式以及内容、端口以及目的地址是哪里;
    • 使用Systracer工具拍摄快照,查看其对注册表和文件的修改。

    六、实验总结

    (一)实验中遇到的问题

     解决方法:我创建的文件其实是名为sysmon4321.xml的txt文件,将文件转换为xml文件,问题就解决了。

    (二)实验心得

    这次实验让我认识到,使用systracer也是一种寻找木马的重要方法,比如可以在开机时使用一次快照,然后关机前使用一次,可以查看这一天的设备联网情况,通过对比两次快照的端口,文件修改,注册表修改寻找木马的痕迹,我觉得这种技术杀毒软件应该也在运用,通过对比发现异常,删除相应木马。

     

     

     

  • 相关阅读:
    Linux下vim中文乱码问题
    phoniex初始化
    [Android] 修改ImageView的图片颜色
    [osx] android studio下修改avd的hosts文件
    [osx] 设置crontab
    [osx] 查看端口被占用
    [Ubuntu] change mouse scrolling between standard and natural
    [Vuejs] 关于vue-router里面的subRoutes
    [nodejs] Error: unable to verify the first certificate
    [SublimeText] 安装包管理
  • 原文地址:https://www.cnblogs.com/w574/p/12702253.html
Copyright © 2020-2023  润新知