| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 【CTF大赛】陇剑杯-机密内存-解题过程分析 -> 正文阅读 |
|
[系统运维]【CTF大赛】陇剑杯-机密内存-解题过程分析 |
前言机密内存这道题是陇剑杯中的压轴题,题目中涉及到使用VMware加密功能进行加密的内存镜像,难度极大。我在这里详细的记录一下解题思路和过程,如有错误或疏漏的地方还请大佬们在评论区指出。 题目初探拿到题目,为三个文件,其中mem_secret-963a4663.vmem为常见内存镜像文件,另外两个文件格式未知。 使用volatility进行分析无法识别profile。 Encryption.bin02内可见字符较多,通过strings命令可以判断出Encryption.bin02是使用Vmware加密后的vmx虚拟机配置文件
对于同一虚拟机,在使用虚拟机加密操作前的vmx文件与加密后vmx文件是有所不同的: 但是对Encryption.bin02和加密的vmx进行对比,在Encryption.bin02的结尾还有一段冗余数据: 现已分析出Encryption.bin02为VMware虚拟机执行加密过后的配置文件,那么mem_secret-963a4663.vmem应该为运行状态虚拟机的内存页面文件,而结合常见虚拟机相关文件和文件大小可以大胆猜测Encryption.bin01为vmss文件 进一步对Encryption.bin01文件进行格式分析,可以发现该文件与vmware加密状态挂起的虚拟机vmss文件高度相似,遂判断该赛题给出的文件为vmware加密文件组 恢复文件在思路梳理完成之后就需要对题目的文件进行分离和修复,经过反复操作和对照发现,题目中出题人分别删除了vmx和vmss中的部分通用关键信息,分别对vmx、vmdk和vmss文件进行还原操作: 分离和修复vmx文件 全部还原后的文件目录结构如下: 打开虚拟机要打开虚拟机,需要获取打开的密码,此题无任何提示信息,猜测密码需要通过暴力破解的方式拿到,使用加密的vmx文件,利用pyvmx-cracker工具爆破虚拟机的密码。 那么只要执行如下操作即可:创建一个新的虚拟机,创建的时候参数配置通过在Encryption.bin02的数据里捕风捉影(可以看出,出题人使用的都是默认配置),使用1q2w3e4r这个密码对虚拟机进行加密,然后将加密过后的虚拟机的vmdk文件拿出来给原来题目中提取的虚拟机使用,但是使用前需要替换掉头部的加密串信息。 Volatility3是对Volatility2的重写,它基于Python3编写,对Windows 10的内存取证很友好,且速度比Volatility2快很多。对于用户而言,新功能的重点包括:大幅提升性能,消除了对–profile的依赖,以便框架确定需要哪个符号表(配置文件)来匹配内存示例中的操作系统版本,在64位系统(例如Window的wow64)上正确评估32位代码,自动评估内存中的代码,以避免对分析人员进行尽可能多的手动逆向工程等。
使用Volatility3可以看到操作系统版本是Windows10,且根据Major/Minor 15.18362可以确定具体的操作系统profile配置文件。在Volatility2 中使用–info看到具体对应的profile为Win10x86_18362,此后即可回归到volatility2,手动指定profile即可解题。 题目解答(1)取证人员首先对容器的基本信息进行核实,经过确定该容器的基本信息为__。(答案为32位小写md5(容器操作系统系统的版本号+容器主机名+系统用户名),例如:操作系统的版本号为10.0.22449,容器主机名为DESKTOP-0521,系统登录用户名为admin,则该题答案为32位小写md5(10.0.22449DESKTOP-0521admin) 的值ae278d9bc4aa5ee84a4aed858d17d52a) 使用dumpregistry、WRR.exe对内存镜像进行注册表分析,发现主机名为DESKTOP-4N21ET2,系统的版本号为6.3.18363,系统登录用户名为Ado,则计算小写32位md5(6.3.18363DESKTOP-4N21ET2Ado)值为38c9307280315a1888681d133658e6ce。 使用dumpregistry导出注册表相关文件:
使用WRR解析SYSTEM.reg文件获取到主机名为DESKTOP-4N21ET2 根据题目要求,分析游戏程序,使用pslist查看进程信息可发现存在大量steam进程,对steam进程块使用winhex进行邮箱正则匹配,匹配到steam注册邮箱为john@uuf.me: (4)经过入侵分析发现该容器曾被黑客植入木马控制的信息是_。(答案为“32位小写md5(木马程序进程名+木马回连ip地址+木马回连ip端口)”,例如:木马程序进程名为svhost.exe,木马回连ip为1.1.1.1,木马回连端口为1234,则该题答案为“svhost.exe1.1.1.11234”的32位小写md5值f02da74a0d78a13e7944277c3531bbea) 使用pstree、netscan进行恶意程序分析,在使用pstree时发现伪装为steam的木马程序steam.exe,该程序并非steam自身程序且Wow64标识为True,并进行进程导出扫描,杀毒软件确切报毒。
需要分析程序最后运行时间,使用userassist注册表分析程序的运行情况,并结合filescan扫描容器内文件情况,二者结合可以发现存储在容器桌面的无影无踪痕迹清理软件,该软件的程序执行名为:Wywz.exe,程序的运行时间结合userassist可以发现为2021-09-10 21:10:13 UTC+8(注意时区的转换),则该题答案为小写32位md5(Wywz.exe2021-09-1021:10:13) d46586ca847e6be1004037bc288bf60c
最后【获取网络安全学习资料】可以关注私我 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 16:56:12- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |