iis服务器助手广告广告
返回顶部
首页 > 资讯 > 服务器 >【内存取证】基础知识(volatility内存取证)
  • 504
分享到

【内存取证】基础知识(volatility内存取证)

linux运维服务器 2023-09-06 19:09:02 504人浏览 薄情痞子
摘要

目录 一、基本概念 二、运行内存镜像的获取 2.1 Windows内存镜像获取 2.1.1 Magnet RAM Capture获取内存镜像 2.1.2 AccessData FTK Imager软件获取内存镜像 2.1.3 DumpIt软

目录

一、基本概念

二、运行内存镜像的获取

2.1 Windows内存镜像获取

2.1.1 Magnet RAM Capture获取内存镜像

2.1.2 AccessData FTK Imager软件获取内存镜像

2.1.3 DumpIt软件获取内存镜像

2.1.4 额外知识补充:

2.2 Linux\Mac OS 下内存获取方法

 三、内存信息取证与分析

3.1 volatility安装

3.1.1 Windows

3.1.2 Linux

        3.2 内存取证命令

3.2.1 获取镜像信息

3.2.2 查看用户

3.2.3 查看用户SID

3.2.4 查看用户名密码

 3.2.5 查看LSA密钥信息

3.2.6 查看系统浏览器的浏览记录

3.2.7 查看网络连接情况

3.2.8 查看服务

3.2.9 查看进程

3.2.10查看进程树:

3.2.11 查看cmd历史命令

3.2.12 查看文件

3.2.13 获取主机名

3.2.14 查看注册表配置单元

3.2.15 事件时间线信息

 3.2.16 查看剪切板信息

 3.2.17 系统最后一次关机时间


一、基本概念

        内存取证是对传统磁盘取证的补充攻击者通过隐藏或删除攻击痕迹 的手段, 使得传统的对硬盘的取证获得的信息变得越来 越困难。同时,磁盘中的数据加密技术也越来 越普及,比如 EFS、Bitlocker 和 TrueCrypt 加密等等,此 时就涉及到了内存取证,内存取证是指从计算机物理内存和页面交换文件中查找、 提取、分析易失性证据,是对传统基于硬盘中数据取证的重要补充,也是对抗网 络攻击或网络犯罪的有力武器。内存取证有着速度快,镜像占用空间小等优势。

内存取证的优势

  •  符合传统物证技术的要求
  • 内存取证能够评估计算在线证据的可信性
  • 内存取证最大限度地减少对目标系统的影响

注意:

        内存镜像和磁盘分区镜像是不一样的。计算机内主要的存储部件是内存和磁盘,磁盘中存储着各种数据,而存储的程序是必须加载到内存中才能运行(即程序在内存中运行)。

  1. 磁盘分区镜像文件后缀有*.dd、*.E01、*. qcow2等。
  2. 内存镜像文件后缀有*.raw、*.mem、*.dd等。 

二、运行内存镜像的获取

2.1 windows内存镜像获取

当拿到嫌疑人电脑后,有以下常见的获取物理内存的方法:

(1)内存获取软件获取

(2)直接内存访问(DMA)方式获取.

        在Windows电脑处于可进入系统桌面下,可以使用内存获取软件获取内存镜像,常见的内存获取软件有DumpltMagnet RAM CaptureAccessData FTK Image等。

2.1.1 Magnet RAM Capture获取内存镜像

        运行软件后,可选择分段大小,之后选内存镜像保存路径,点击“start”后,软件自动获取物理内存镜像。

 2.1.2 AccessData FTK Imager软件获取内存镜像

        点击工具栏获取内存图标或选择“File”->“Capture Memory”。点击“Browse”选择内存镜像保存路径,可自行修改内存镜像文件名称,默认名称为“memdump.mem”。点击“Capture Memory”开始制作镜像,制作完成后可在相应路径中找到制作的内存镜像文件。

 

2.1.3 DumpIt软件获取内存镜像

        双击软件即可运行,输入“y”,即开始制作当前机器的内存镜像。内存镜像默认保存在“DumpIt软件所在的目录”,镜像名格式默认为“主机名+当前时间”。

 2.1.4 额外知识补充:

  • 断电情况下:Windows还使用页交换文件(Pagefile.sys)来协助内存的工作,当内存不满足系统所需的情况下,会释放部分内存数据到Pagefile.sys文件中,因此,当设备断电后,若无法拿到内存镜像,可以通过分析Pagefile.sys文件获取有价值的内存数据。
  • 休眠情况下:当Windows系统处于休眠状态下,系统会在磁盘中生成一个休眠文件(Hiberfil.sys)用于存放内存中的数据,当计算机重新加电时,又将休眠文件中的数据重新写到物理内存中 ,这个文件也会包含很多价值的内存数据。
  1. powercfg -a查询是否支持休眠,
  2. powercfg -h off,即可关闭休眠功能,
  3. powercfg -h on,就能开启休眠功能。

 2.2 Linux\Mac OS 下内存获取方法

LiME:GitHub - 504ensicsLabs/LiME: LiME (formerly DMD) is a Loadable Kernel Module (LKM), which allows the acquisition of volatile memory from Linux and Linux-based devices, such as those powered by Android. The tool supports acquiring memory either to the file system of the device or over the network. LiME is unique in that it is the first tool that allows full memory captures from Android devices. It also minimizes its interaction between user and kernel space processes during acquisition, which allows it to produce memory captures that are more forensically sound than those of other tools designed for Linux memory acquisition.LiME (formerly DMD) is a Loadable Kernel Module (LKM), which allows the acquisition of volatile memory from Linux and Linux-based devices, such as those powered by Android. The tool supports acquiring memory either to the file system of the device or over the network. LiME is unique in that it is the first tool that allows full memory captures from Android devices. It also minimizes its interaction between user and kernel space processes during acquisition, which allows it to produce memory captures that are more forensically sound than those of other tools designed for Linux memory acquisition. - GitHub - 504ensicsLabs/LiME: LiME (formerly DMD) is a Loadable Kernel Module (LKM), which allows the acquisition of volatile memory from Linux and Linux-based devices, such as those powered by Android. The tool supports acquiring memory either to the file system of the device or over the network. LiME is unique in that it is the first tool that allows full memory captures from Android devices. It also minimizes its interaction between user and kernel space processes during acquisition, which allows it to produce memory captures that are more forensically sound than those of other tools designed for Linux memory acquisition.https://github.com/504ensicslabs/lime (获取镜像)

lmg-master:GitHub - halpomeranz/lmg: Script for automating Linux memory capture and analysis (配合LiME获取镜像,简化操作)

将lmg-master内文件放入LiME的src文件夹,运行sudo ./lmg 搞定。


 三、内存信息取证与分析

3.1 volatility安装

        Volatility Framework 是一个完全开放的内存分析工具集,基于GNU GPL2 许可,以python 语言进行编写。由于Volatility 是一款开源免费的工具,无需花任何钱即可进行内存数据的高级分析,此外代码开源的特点,遇到一些无法解决的问题时,还可以对源代码进行修改或扩展功能。Volatility官网https://www.volatilityfoundation.org/

3.1.1 Windows

直接官网安装Volatility 2.6 Release

解压后如下:

命令行打开,进入到该目录,运行volatility.exe(命令格式请往下看)

3.1.2 linux

GitHub下载项目包:GitHub - volatilityfoundation/volatility: An advanced memory forensics framework

解压项目包:unzip volatility-master.zip

安装crypto依赖包:pip install pycrypto

安装失败参考:python2安装pycrypto_python2 pycrypto_xxL7-的博客-CSDN博客

安装distORM3依赖包:pip install distorm3

3.2 内存取证命令

命令格式vol.py -f [镜像] --profile=[操作系统] [插件]

  • windows中把vol.py换成volatility.exe即可
  • windows中配合find命令来匹配关键字
  • Linux中配合grep命令来匹配关键字

3.2.1 获取镜像信息

vol.py -f Win7x64.vmem imageinfo

        这一步主要是为了获取操作系统信息,在Suggested Profile(s)参数处会给出可能的操作系统,一般第一个就是正确的操作系统。

  3.2.2 查看用户

vol.py -f Win7x64.vmem --profile=Win7SP1x64 printkey -K "SAM\Domains\Account\Users\Names"

        通过注册表项中的SAM键查看该计算机创建的用户信息

3.2.3 查看用户SID

volatility.exe -f 镜像 --profile=操作系统 getsids | find "用户名"Windows中使用volatility配合find命令使用来匹配关键字

3.2.4 查看用户名密码

  • vol.py -f Win7x64.vmem --profile=Win7SP1x64 hashdump
  • 显示的格式是:用户名:RID:LM hash:NTLM hash:::

  3.2.5 查看LSA密钥信息

vol.py -f Win7x64.vmem --profile=Win7SP1x64 lsadump

3.2.6 查看系统浏览器的浏览记录

vol.py -f Win7x64.vmem --profile=Win7SP1x64 iehistory

3.2.7 查看网络连接情况

vol.py -f Win7x64.vmem --profile=Win7SP1x64 netscan也可能是connscanconnections

3.2.8 查看服务

vol.py -f Win7x64.vmem --profile=Win7SP1x64 svcscan

3.2.9 查看进程

vol.py -f Win7x64.vmem --profile=Win7SP1x64 pslist

vol.py -f Win7x64.vmem --profile=Win7SP1x64 psscan可以找到已经终止/不活动的进程以及杯rootkit隐藏或解链的进程

3.2.10查看进程树:

vol.py -f Win7x64.vmem --profile=Win7SP1x64 pstree

 3.2.11 查看cmd历史命令

vol.py -f Win7x64.vmem --profile=Win7SP1x64 cmdscan

3.2.12 查看文件

vol.py -f Win7x64.vmem --profile=Win7SP1x64 filescan

3.2.13 获取主机名

vol.py -f Win7x64.vmem --profile=Win7SP1x64 printkey -K "ControlSet001\Control\ComputerName\ComputerName"

3.2.14 查看注册表配置单元

vol.py -f 镜像 --profile=操作系统 hivelist可以查看道注册表信息及其虚拟地址和物理地址

3.2.15 事件时间线信息

vol.py -f Win7x64.vmem --profile=Win7SP1x64 timeliner

  3.2.16 查看剪切板信息

vol.py -f Win7x64.vmem --profile=Win7SP1x64 clipboard

  3.2.17 系统最后一次关机时间

vol.py -f Win7x64.vmem --profile=Win7SP1x64 shutdowntime

来源地址:https://blog.csdn.net/m0_73923817/article/details/128781470

--结束END--

本文标题: 【内存取证】基础知识(volatility内存取证)

本文链接: http://www.lsjlt.com/news/397416.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 【内存取证】基础知识(volatility内存取证)
    目录 一、基本概念 二、运行内存镜像的获取 2.1 Windows内存镜像获取 2.1.1 Magnet RAM Capture获取内存镜像 2.1.2 AccessData FTK Imager软件获取内存镜像 2.1.3 DumpIt软...
    99+
    2023-09-06
    linux 运维 服务器
  • 浅谈C++内存管理基础知识
    目录概述c++可用内存c语言的可用内存c++新增内存区域new和malloc智能指针引入智能指针的实现java延伸java语言整体框架java的垃圾回收机制总结 概述 内存管理的原理...
    99+
    2024-04-02
  • sql server中的内存基础知识有哪些
    今天就跟大家聊聊有关sql server中的内存基础知识有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一. 前言对于sql server 这个...
    99+
    2024-04-02
  • 苹果内存取证工具volafox有什么用
    这篇文章主要介绍了苹果内存取证工具volafox有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。苹果内存取证工具volafoxvolafox是一款针对苹果内存取证的专用...
    99+
    2023-06-04
  • Java基础知识精通数组的内存分析
    目录1.数组内存图2.两个数组的内存图3.一个变量两个数组容器的内存图4.两个变量指向一个数组容器的内存图前言:本文章主要讲解数组的内存图,更好地掌握数组以及数组调用流程,话不多说开...
    99+
    2024-04-02
  • MySQL存储引擎基础知识
    在之前的文章中我们说过MySQL事务,现在大家都应该知道了MySQL事务了吧,还记得事务的ACID原则吗?不记得的童鞋可以回顾一下《MySQL之事务初识》,其实呀,更严谨一点的话,应该是MySQL Inno...
    99+
    2024-04-02
  • SpringBoot SpringSecurity 详细介绍(基于内存的验证)
    目录配置 Spring Security (入门)SpringBoot 集成 SpringSecurity + MySQL + JWT 附源码,废话不多直接盘SpringBoot已经...
    99+
    2023-05-18
    SpringBoot SpringSecurity SpringBoot SpringSecurity内存
  • SpringSecurity页面授权与登录验证实现(内存取值与数据库取值)
    目录SpringSecurity? 一.导入依赖二.配置yml文件三.代码部分DAO层(注意@Repository与@Mapper注解)Service层(注意@Servic...
    99+
    2024-04-02
  • Java内存区域与内存溢出异常知识讲解
    本篇内容介绍了“Java内存区域与内存溢出异常知识讲解”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!正文一. 基本概念在开始讲解之前, 需要...
    99+
    2023-06-05
  • Javascript基础知识中关于内置对象的知识
    目录1、内置对象介绍1.1Math对象1.2Math中的方法1.3Date对象2、Date中的方法3、经典案例:倒计时效果:4、Array数组对象4.1数组的创建4.2数组中的常用方...
    99+
    2024-04-02
  • Linux系统基本的内存管理知识介绍
    这篇文章主要介绍“Linux系统基本的内存管理知识介绍”,在日常操作中,相信很多人在Linux系统基本的内存管理知识介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux系统基本的内存管理知识介绍”的疑...
    99+
    2023-06-12
  • Net内存管理五大基础
    目录1.小对象怎么处理的?2.较大的对象会怎样?3.垃圾收集器可以在不同的模式下运行以优化性能4.引用不足会在性能和内存效率之间折衷5.对象固定可以创建在托管和非托管...
    99+
    2024-04-02
  • VB.NET中怎么读取内存
    VB.NET中怎么读取内存,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。VB/NET读取内存代码示例:Private Declare Function&...
    99+
    2023-06-17
  • 使用beego验证码:内存地址无效或nil指针取消引用
    一分耕耘,一分收获!既然打开了这篇文章《使用beego验证码:内存地址无效或nil指针取消引用》,就坚持看下去吧!文中内容包含等等知识点...希望你能在阅读本文后,能真真实实学到知识或者帮你解决心中...
    99+
    2024-04-04
  • Linux系统内存知识点有哪些
    这篇文章主要介绍Linux系统内存知识点有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、走进 linux 内存1、内存是什么?1)内存又称主存,是 CPU 能直接寻址的存储空间,由半导体器件制成2)内存的特点...
    99+
    2023-06-15
  • Java基础详解之内存泄漏
    目录一、什么是内存泄漏二、Java内存泄漏引起的原因三、内存泄漏的危害一、什么是内存泄漏 内存泄漏是指你向系统申请分配内存进行使用(new/malloc),然后系统在堆内存中给这个对...
    99+
    2024-04-02
  • 有哪些数据库内存知识点
    本篇内容介绍了“有哪些数据库内存知识点”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、如何看懂内存指标遇...
    99+
    2024-04-02
  • readprocessmemory怎么直接读取内存
    要直接读取内存,可以使用ReadProcessMemory函数。这个函数允许你读取另一个进程的内存数据。下面是一个使用ReadPro...
    99+
    2023-08-20
    readprocessmemory
  • python怎么读取内存数据
    在Python中,可以使用io.BytesIO模块来读取内存数据。BytesIO类允许您以类似于文件的方式读取和写入内存中的数据。以...
    99+
    2023-10-22
    python
  • android如何获取可用内存
    Android中可以使用ActivityManager类来获取可用内存信息。具体步骤如下:1. 在需要获取可用内存的地方导入Acti...
    99+
    2023-09-13
    android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作