首页 > 系统相关 >某CTF内存分析

某CTF内存分析

时间:2022-10-28 13:44:52浏览次数:45  
标签:分析 文件 dump -- flag CTF profile 内存 volatility

1.获取mem.dump的系统版本使用命令volatility -f localfile imageinfo   (显示该dump文件镜像的详细信息)

 

2.查看该dump的内存程序,找出用来取证的工具

使用命令volatility -f mem.dump --profile=Win7SP1x64 pslist(扫描该dump文件中的进程,注释:猜测系统进程一般是在前面后面的为软件进程)

 

答案是:Dumpit取证工具

 

3.列出该dump中的用户

使用命令volatility -f mem.dump --profile=Win7SP1x64 printkey -K “SAM\Domains\Account\Users”

(列出SAM表中所有的用户  注释:SAM表是存在于注册表中,在这里可以看到所有的用户,包括隐藏用户)

 

 

 

4.查询监听49156端口的进程的父进程号

使用命令volatility -f mem.dump –profile=Win7SP0x64 netscan |grep 49156  (过滤出与49156端口有关的信息)

 

 

可以看到pid为508

在使用命令 volatility -f mem.dump -profile=Win7SP0x64 pslist | grep 508  (|前面的命令是列出内存中的进程,|后面是过滤出含有508的信息)

也可以使用命令 volatility -f mem.dump --profile=Win7SP1x64 pstree | grep “508”(|前面命令为查看父进程和子进程关系 |后面命令为过滤出含有508的信息)

 

所以端口49156端口进程的父进程号为396

答案为:396

 

5.查询有关flag的提示,并分离相应文件

使用命令volatility -f mem.dump --profile=Win7SP1x64 filescan | grep “flag”(|前命令为执行结果为扫描所有的文件列表 |后命令过滤出含有flag的文件)

 

使用命令volatility -f mem.dump --profile=Win7SP1x64 dumpfiles -Q 0x000000003e435890 -D /root

(导出文件   -Q参数为该文件的偏移量   -D为文件下载位置)

 

 

6.提取flag文件的加密密钥

使用命令volatility -f mem.dump --profile=Win7SP0x64 hashdump  (获取当前所有用户的hash值)

 

将标记为白色的一段hash复制,将该段hash上传到MD5网站中进行解密(https://ww.cmd5.com)

 

 

 

密钥为ABCabc123

 

7,提取flag

在列出的进程中发现Cncrypt,猜测是使用的Cncrypt进行的加密(正常的解密方法)

使用命令volatility -f mem.dump --profile=Win7SP1x64 pslist (该命令执行结果为列出所有进程)

 

将该文件dump下来(使用命令 volatility -f mem.dump --profile=Win7SP1x64 dumpfiles -Q 0x000000003e65ff20 -D /root -u        注释:-u参数是已原文件保存)

 

在将dump下来的文件改名,在运行该文件即可解密flag文件(问题:dump下来的exe文件无法运行显示结果为exe文件损坏,所以我在网络上重新下载了一个CnCrypt程序)

 

 

运行CnCrypt,随便选择一个盘符,选择文件为flag.ccx

 

加载加密卷,输入上一题获取的hash密码

 

 

点击确定后会在电脑中新建一个磁盘

 

 

打开磁盘,查看里面的文件,即可获取flag

 

 

flag为flag{now_you_see_my_secret}

 

 

8.打开l.raw文件,提取中间的flag文件(注释:这一题有两种做法)

第一种:

将需要进行分析的文件用压缩包的方式打开,可以看到有一个疑似文件

 

 

将文件名当作过滤条件进行过滤

volatility -f l.raw --profile=WinXPSP3x86 filescan | grep “P@ssW0rd_is_y0ur_bir7hd4y”

 

 

然后将文件dump下来就可以了(命令为:volatility -f l.raw --profile=WinXPSP3x86 dumpfiles -Q 0x0000000002c61318 -D /)

 

 

 

第二种:

根据上面一个我们可以了解到该zip文件的上一个文件夹为netcat,猜测是使用nc进行的下载

volatility -f l.raw --profile=WinXPSP3x86 smdscan  (提取内存种保留的cmd命令使用情况)

 

 

可以看到确实是使用的nc进行的下载

将下载后的文件名更改

 

 

 

9.破解该文件,拿到flag

使用unzip进行zip文件解压,发现需要密码

 

 

使用zip密码爆破工具,工具名为zip2john进行爆破

 

 

生成log文件进行爆破(注释:该压缩包密码爆破软件如果进行过一次爆破后,就不会在显示爆破结果了,需要加 --show 参数进行查询)

 

 

输入爆破出来的密码解密

 

 

查看解压后的文件

 

答案为flag{Thi5_Is_s3cr3t!}

 

标签:分析,文件,dump,--,flag,CTF,profile,内存,volatility
From: https://www.cnblogs.com/eiu1110/p/16835802.html

相关文章

  • ysoserial commonscollections3 分析
    cc3利用链如下:TrAXFilter(Templatestemplates)TemplatesImpl->newTransformer()TemplatesImpl->getTransletInstance()_class[_transletInde......
  • 安卓逆向 IDA 静态调试分析
    1.找到我们分析的接口  2.F5进入C伪代码修正一下参数,IDA无法正常识别jstring__fastcallJava_com_example_sfs_MainActivity_getText(JNIEnv*a1){return(*......
  • Java - 简单可达性分析
    可以作为GCRoot的对象1.方法区中常量引用的对象2.方法区中静态属性引用的对象3.虚拟机栈中引用的对象4.本地方法栈中引用的对象可达性分析通过GC......
  • Java - 简述JVM 内存模型
    JVM[来源:维基百科]程序计数器程序计数器是当前线程执行的字节码的行号指示器;程序计数器线程私有;程序计数器是JVM规范中唯一一个没有任何OutOfMemoryError的区域;虚......
  • JVM 内存区域的划分
    前言本博文将从内存管理的角度,进一步探索Java虚拟机(JVM)。垃圾收集机制为我们打理了很多繁琐的工作,大大提高了开发的效率,但是,垃圾收集也不是万能的,懂得JVM内部的内存结构......
  • DASCTF2022 ——十月赛 Web 部分Writeup
    EasyPOP题目环境是php7.4,图省事直接把所有属性的类型都改成public起点是sorry类的 __destruct(),由 echo$this->hint 调用到show类的 __toString() 方法,......
  • 【761】机器学习特征重要性分析以及特征相关系数热力图
    参考:数据科学|避坑!Python特征重要性分析中存在的问题参考:python特征相关性热力图怎么画_如何在python中绘制热地图(实例)python特征相关性热力图怎么画_如何在python中绘......
  • 自动驾驶- SSD/ZNS技术分析
    自动驾驶-SSD/ZNS技术分析参考文献链接https://mp.weixin.qq.com/s/9gcNdbeoiCIgp-t5pKAOfAhttps://mp.weixin.qq.com/s/_gWx3hVrBkYBAwQykwkFWwhttps://mp.weixin.qq......
  • # 10. 打印内存地址——18. 字符与字符串
    10.打印内存地址先定义变量类型,再赋值,选择函数方法输出packagemainimport"fmt"funcmain(){ varnumint num=100 fmt.Printf("num:%d,内存地址:num:%p",num......
  • 内存高【3】
    一个关于内存溢出的现象 windbg分析1.找出异常对象如果内存溢出了,大家应该知道C#会抛一个 OutOfMemoryException 异常,而且还会附加到那个执行线程上,所以先用 !t......