热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linux取证之内存取证

内存取证内存取证工具:可以列出当前已经打开的文件,正在活动的网络连接,运行中的进程,甚至是一些被隐藏或没有运行但仍驻留在内

内存取证


  1. 内存取证工具:可以列出当前已经打开的文件,正在活动的网络连接,运行中的进程,甚至是一些被隐藏或没有运行但仍驻留在内存中的进程相关消息。
  2. 传统方法: 可读的文本和关键字搜索
  3. 工具: Volatility:内存扫描分析工具
    • Volatility 提供两种方法来列举内存映像中的进程,一种方法是访问操作系统内核结构中的进程链来列举进程,另一种方法是在内存映像中搜索所的EPROCESS结构
    • 命令:python volatility pslist -f Futo-memory.dd,这种方法可以利用rootkit程序欺骗操作系统的方法瞒过程序
    • 为了对抗上述方法,采用:python volatiliy psscan -f Futo-memory.dd 在内存中映像中根据EPROCESS数据结构的特征搜索所有的EPROCESS结构来输出完整的进程信息,pssacn得到的输出可以显示已退出进程的信息。
    • 大部分的用户进程都是由explorer.exe 启动的,如果某个进程不是由它启动的则就可以进行深入分析。
    • volatility dllist -f FTTo-memory.dd 可以列举出系统中每个进程的所有DLL动态链接库
    • volatility files -f FTTo-memory.dd 显示每个进程正在访问的文件
    • volatility sockets -f FTTo-memory.dd 显示每个进程的套接字句柄
  4. 方法学(内存取证的目的):
    • 搜集信息:包括进程的详细信息,网络连接信息,和其他一些与潜在的恶意软件相关的信息,利用这些信息与从运行系统中获得信息进行比较分析
    • 对于每个可疑的进程,如果可以,从内存中恢复出其可执行代码用于深度分析
    • 对于每个可疑进程,从内存中提取出相关的数据,例如相关的秘钥或是用户名和密码等数据。
  5. 传统内存分析方法:
    • 利用strings工具从内存映像中提取出可读文本内容
    • 利用文件提取工具从内存中恢复相关的可执行文件
  6. Linux 内存取证分析
    1. Linux系统内核使用的所有符号的位置都由/boot 目录中的文件System.map来记录
    2. Linux系统的当前时间保存在System.map文件中的xtime变量中:grep xtime System.map
      • 在Kali中执行时遇到错误:Input/output error
    3. 定位内存数据结构(没看懂)
      • init_task :grep init_task System.map 错误同上
      • 上述查到的地址应该是个虚拟地址,需要将其转换成物理地址,在Inter系统中通常能够支持4GB的内存空间,其中高位的1GB空间被分配给内核使用,因此虚拟地址从0xC0000000开始,将虚拟地址减去0xC0000000 就可以将虚拟地址转换成对应的物理地址。

推荐阅读
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • C#实现文件的压缩与解压
    2019独角兽企业重金招聘Python工程师标准一、准备工作1、下载ICSharpCode.SharpZipLib.dll文件2、项目中引用这个dll二、文件压缩与解压共用类 ... [详细]
  • 本文介绍了如何使用Python爬取妙笔阁小说网仙侠系列中所有小说的信息,并将其保存为TXT和CSV格式。主要内容包括如何构造请求头以避免被网站封禁,以及如何利用XPath解析HTML并提取所需信息。 ... [详细]
  • Spring Data JdbcTemplate 入门指南
    本文将介绍如何使用 Spring JdbcTemplate 进行数据库操作,包括查询和插入数据。我们将通过一个学生表的示例来演示具体步骤。 ... [详细]
  • 本文介绍如何使用 Python 的 DOM 和 SAX 方法解析 XML 文件,并通过示例展示了如何动态创建数据库表和处理大量数据的实时插入。 ... [详细]
  • C语言编写线程池的简单实现方法
    2019独角兽企业重金招聘Python工程师标准好文章,一起分享——有时我们会需要大量线程来处理一些相互独立的任务,为了避免频繁的申请释放线程所带 ... [详细]
  • 普通树(每个节点可以有任意数量的子节点)级序遍历 ... [详细]
  • 本文详细介绍了 Spark 中的弹性分布式数据集(RDD)及其常见的操作方法,包括 union、intersection、cartesian、subtract、join、cogroup 等转换操作,以及 count、collect、reduce、take、foreach、first、saveAsTextFile 等行动操作。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • 我有一个从C项目编译的.o文件,该文件引用了名为init_static_pool ... [详细]
  • 机器学习算法:SVM(支持向量机)
    SVM算法(SupportVectorMachine,支持向量机)的核心思想有2点:1、如果数据线性可分,那么基于最大间隔的方式来确定超平面,以确保全局最优, ... [详细]
  • Hadoop的文件操作位于包org.apache.hadoop.fs里面,能够进行新建、删除、修改等操作。比较重要的几个类:(1)Configurati ... [详细]
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • 本文将带你快速了解 SpringMVC 框架的基本使用方法,通过实现一个简单的 Controller 并在浏览器中访问,展示 SpringMVC 的强大与简便。 ... [详细]
author-avatar
tuigone
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有