首页 > 系统相关 >volatility内存取证问题,命令总结,解题思路汇总

volatility内存取证问题,命令总结,解题思路汇总

时间:2024-04-08 15:13:53浏览次数:24  
标签:profile vmem -- ## 解题 内存 raw volatility

volatility 内存取证的简单用法

** 可以使用kali,windows管理员权限运行.exe程序**

一、常用命令格式

命令格式:volatility -f 文件名 --profile=dump的系统版本 命令

volatility -f win7.raw imageinfo ##检测目标系统信息

volatility -f win7.raw --profile=Win7SPIx64 pslist ##查看运行的进程信息

volatility -f /root/桌面/mem.dump imageinfo ##获取dump的版本

volatility -f WIN2012R2x64.raw --profile=Win8SP0x64 filescan ##扫描内存中的文件

volatility -f WIN2012R2x64.raw --profile=Win8SP0x64 hivelist ##列举缓存在内存中的注册表

volatility -f WIN2012R2x64.raw --profile=Win8SP0x64 printkey -K "SAM\Domains\Account\Users\Names" ##查看系统用户名

volatility -f win7.raw --profile=Win7SPIx64 filescan |grep txt ##查看文件列表

volatility -f win7.raw --profile=Win7SPIx64 dumpfile -Q 0x000007 -D dir ##下载感兴趣的文件,#dir你保存的路径

volatility -f win7.raw --profile=Win7SPIx64 hashdump ##提取系统的账号密码

volatility -f win7.raw --profile=Win7SPIx64 netscan |grep ESTABLISHED ##查看网络通信连接

volatility -f win7.raw --profile=Win7SPIx64 cmdscan ##查看cmd历史记录

volatility -f win7.raw --profile=Win7SPIx64 memdump -p 352 -D dir ##导出nc进程传输的文件,352为nc的进程号 dir 为保存的路径

foremost 352.dmp ##分割dmp文件

volatility -f easy_dump.img --profile=Win7SP1x64 filescan | grep -E 'jpg|png|jpeg|bmp|gif' ##查找镜像中的文件

volatility -f mem.vmem --profile=WinXPSP2x86 userassist ##查看userassist键值包含系统或桌面执行文件的信息,如名称、路径、执行次数、最后一次执行时间等

二、部分问题解题思路:

(一)、浏览器cookie信息中找flag

volatility -f Browser.raw imageinfo
volatility -f Browser.raw --profile=Win7SP1x64 pslist
volatility -f Browser.raw --profile=Win7SP1x64 pslist |find "chrome.exe" ##使用find查找所有谷歌浏览器进程
volatility.exe -f Browser.raw --profile=Win7SP1x64 memdump -p {对应的PID} -D ./ ##把每一个谷歌浏览器进程的数据保存为dmp格式的文件(这里的PID需要自己指定
使用010editer查找flag逐一筛选,在2608.dmp文件中找到flag

(二)、基本命令 hashdump

volatility -f mem.vmem --profile=WinXPSP2x86 volshell 直接获取volshell
volatility -f mem.vmem --profile=WinXPSP2x86 pslist 查看进程:
volatility -f mem.vmem --profile=WinXPSP2x86 printkey -K "SAM\Domains\Account\Users\Names" ##获取SAM表中的用户
volatility -f mem.vmem –profile=WinXPSP2x86 printkey -K "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" ##获取最后登录系统的账户
volatility -f mem.vmem --profile=WinXPSP2x86 userassist ##提取出内存中记录的,当时正在运行的程序有哪些,运行过多少次,最后一次运行的时间等信息
root@kali:~/CTF# mkdir ctfmon
root@kali:~/CTF# volatility -f mem.vmem --profile=WinXPSP2x86 memdump -p 1736 -D ctfmon/ 将内存中的某个进程数据以 dmp 的格式保存出来
volatility -f mem.vmem --profile=WinXPSP2x86 iehistory ##获取 IE 浏览器的使用情况
volatility -f easy_dump.img --profile=Win7SP1x64 hashdump timeliner ##获取内存中的系统密码,获取内存中的系统密码,我们可以使用 hashdump 将它提取出来 。
volatility -f mem.vmem –profile=WinXPSP2x86 timeliner ##最大程度上将内存中的信息提取出来,那么你可以使用 timeliner 这个插件。它会从多个位置来收集系统的活动信息

(三)、忘了

拿到题目附件,是一个数据报,很常规,估计就要从里面拿东西出来了。用wireshark打开来看看
导出直接保存下来。一看这些东西什么upload_file.php看名字就知道有鬼,还出奇的大(40MB),里面必然有东西。
打开来看一下(用记事本什么哔哩吧啦的都可以)很明显他把名字都告诉给你了,这个传了一个data.zip的东西,然后看下面的东东 PK很明显是zip文件头,说明这个"php"里把zip文件也给囊括起来了。现在我们只要获取这个zip包就好。
当然,我非常懒,所以在这又推荐神器foremost,一键分离不是梦。(其实还有个骚操作就是直接把给的那个数据报pcap文件给foremost掉,比自己导出对象搞得还清晰hhh)
得到一个zip之后打开看一眼,有一个data.vmem文件,这下事情就好办了,让我们到kali里面去解决这个data.vmem
首先我们要简单来分析一下这个虚拟内存文件是在哪个平台下的,好让我们进行下一步操作
volatility -f data.vmem imageinfo 可以看到是xp平台下的,好的我们又多了一个参数。接来下我们可以看看它运行过什么进程:
volatility -f data.vmem --profile=WinXPSP2x86 pslist (应该用psscan也可以)
让我们来分析这个dmp文件,我们可以看看有什么有意思的关键字,用flag作为东西搜索一下输入命令:strings 1476.dmp | grep -E ‘flag’
可以看到一堆很有趣的flag名字的文件,好像有flag.zip 还有flag.img 不过我猜测这玩意为了增加难度是不会那么容易直接给你搞到zip的。
让我们接下来再看看从哪可以dump下来文件,
输入命令:volatility -f data.vmem --profile=WinXPSP2x86 filescan|grep ‘flag’ 找到flag相关文件(一定要关键字,不然给你爆出来一堆文件)
我们把它dump下来。
输入命令:volatility -f data.vmem --profile=WinXPSP2x86 dumpfiles -Q 0x0000000001155f90 -D ./
然后我们把文件后缀名改成img就可以进一步处理

这篇不是我写的,原文https://www.cnblogs.com/jssi/p/13762308.html 嘿嘿

标签:profile,vmem,--,##,解题,内存,raw,volatility
From: https://www.cnblogs.com/guoli0628/p/18121192

相关文章

  • py脚本实现监控(内存、磁盘、CPU负载)发送邮件
    #!usr/local/python3/bin/python3importsubprocess#引用模块importyagmail#引用模块defsendmail(user,passwd,text,subject,touser):yag=yagmail.SMTP(user=user,password=passwd,host="smtp.163.com"......
  • 手把手教你做阅读理解题-初中中考阅读理解解题技巧013-dearMars Project
    PDF格式公众号回复关键字:ZKYD013阅读理解技巧,在帮助读者有效获取和理解文本信息方面发挥着重要作用,熟练掌握如下6个技巧,可快速突破阅读理解1预览文章结构在开始深入阅读之前,快速浏览文章的标题、段落开头和结尾,可以迅速把握文章的主题、大致内容和结构标题通常能概括文章......
  • C语言——动态内存分配
    在学习动态开辟内存之前,我们已经掌握了两种内存分配的方法:inta=10;intarr[10]={0};这两种开辟空间方法的特点:1.开辟空间的大小是固定的2.数组在申明时,必须指定数组的长度,它所需要的内存在编译时分配但有时,我们需要的内存大小在程序运行时才能知道,上述的两种方法......
  • 【C语言】内存分区
    【C语言】内存分区文章目录【C语言】内存分区一、数据类型数据类型概念typedefvoid数据类型sizeof操作符总结二、变量变量的概念变量的修改方式三、程序内存分区模型内存分区栈区堆区全局/静态区常量区四、函数调用模型宏函数函数调用流程调用惯例函数变量传递分析......
  • Redis的前世今生(内存管理、持久化、高可用、集群 详解)一看就懂
    Redis的诞生:    redis的诞生和mysql脱不了关系,在redis还未出现时,用户的每次请求都是直接访问mysql,渐渐的人们发现,请求大部分都是读操作,而且很多都是重复的数据,磁盘的i/o是很慢的,所以人们就想,能不能学学cpu建立的缓存机制,mysql也搞一个缓存,就这样一个基于内存的数据库......
  • 【解题报告】RbOI Round 1,A&D题解
    【RbOIR1】A&D题解其他题题解请移步B、C点击图片跳转比赛:A.AnxiousRobin从左到右扫一遍,按照题意模拟即可。这里解释一下我的代码:因为只判断了六种字母,所以遇到-会直接过滤,无需特判。展开代码#include<bits/stdc++.h>#definelllonglong#defineMyWifeCrista......
  • Spring内存马分析
    环境搭建踩了很多坑....,不过还好最后还是成功了IDEA直接新建javaEE项目,然后记得把index.jsp删了,不然DispatcherServlet会失效导入依赖:<dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId&g......
  • c++内存管理(new、delete)
    目录前言c/c++中程序内存区域划分c++函数之new的使用方法第一个场景:对任意类型动态开辟一个类型大小的空间第二个场景:对任意类型动态开辟多个类型大小的空间第三个场景:在第一、二场景下还需要对数据初始化c++函数之delete的使用方法第一个场景:对任意开辟一个类型大小......
  • CS202 WeensyOS 内存分配算法
    CS202:实验室4:WeensyOSCS202:实验室4:WeensyOS介绍在这个实验室中,您将在一个(但却是真实的!)操作系统,名为WeensyOS。这将向您介绍虚拟内存,并强化我们已经介绍过的一些概念学期WeensyOS内核在x86-64CPU上运行。因为操作系统内核运行在“裸”硬件上,所以调试内核代码可能很难:如果一个......
  • 在使用set添加对象的时候,重写了hashcode方法后,为什么equals返回的仍是false,如何理解ha
    /**1.对象的哈希码值和内存地址值不是一回事;*2.如果自定义类不复写Object类中的equals方法,那么equals比较的就是两个对象的内存地址值。*//***下面证明了hash值和内存地址的关系*一、当没有重写hashCode()方法的时候,*S......