【干货】Windows内存获取和分析---查找恶意进程,端口
来源:Unit 5: Windows Acquisition 5.1 Windows Acquisition Windows Memory Acquisition and Analysis
调查人员检查物理内存内容,以检测恶意进程、威胁和内存驻留恶意软件,以恢复密码和获取密钥。
伏笔:rootkit,root代表最高权限,kit表示软件。合起来,最高权限的软件。如果存在恶意rootkit,利用它可以运行指令将进程与一些显示进程列表接口的函数切断关联隐藏起来,你在任务管理器里看不见。这东西的危害,不是随随便便安装一个杀毒软件就可以搞得定的。需要时间彻查,扫描,对比,说白了就是用多方式得到结果,最后玩大家来找茬。要找到它就需要直接从内存的二进制识别出进程,再把它们完整列出来。下面的工具Volatility就是这么干的。
基于python的开源工具包volatile Framework能够从Windows和Linux UNIX内存镜像中提取信息。volatile框架支持各种插件,包括PS列表(进程列表)、PS扫描(进程扫描)、DLL列表、模块、conn扫描、hive列表等,允许我们提取进程、威胁、注册表、网络连接和许多关键信息。
就功能而言,谷歌的开源Rekall内存取证框架与volatile框架非常相似。谷歌的还可以提取内存镜像,volatile无此功能,需要其他工具先把内存提好。

PS list和PS scan显示的输出之间的任何差异都可能表明rootkit可能安装在可疑机器上。
Volatility内存分析演示
之前的文章说过AccessData的FTK Imager可以把内存dump出来。如果您运行的是虚拟机,那么 .vmem文件包含虚拟机主内存的副本。
SANS调查取证工具包已经安装了volatile
which vol.py 这是Volatility的路径 -h 看看插件的信息

提取出来的内存用的什么操作系统,什么时候提的 vol.py –f 文件路径 imageinfo

现在,在默认情况下,Volatility Framework将image作为WinXP SP 286来处理,如果是这样的话,我们就不需要提供image profile,如果运行的是其他插件,它会抱怨我不知道这个profile是什么。然后,您必须提供一个配置文件。加到上述命令后,什么命令怎么加都在它的帮助信息里,遇到了自行翻阅。
列出所有进程 这和windows任务管理器的结果差不多 进程如果被隐藏,将看不见它

将扫描的结果与列出的结果对比。有时rootkits隐藏在svchost.exe中

看一下连接的网络

发现与IP地址80端口有连接,一般情况,用户是不会去配置浏览器的,所以80代表浏览器。但是你怎么确定它对不对?有没有问题?这个时候,我们观察PID,去扫描出来的进程里面找发现它有问题。正常情况是打开浏览器,浏览器使用80端口。但这里对应的却是svchost.exe这个进程,非常可疑。这是Windows系统文件,但很多rootkits实际上隐藏在svchosts下。

这个可疑的进程,对应的IP地址,可以结合前面没的文件作为关键词来搜索,也可以用在线工具搜下这个IP是否被列入黑名单:IPVoid VirusTotal Shodan这三个在线工具
如果你是第一个发现此可疑IP的人,在线工具肯定搜不到。
还有其他的功能,比如查看注册表启动项,找到任何隐藏或注入的DLL。喜欢的自己去帮助里面找到它们,每个插件的工具功能是什么,你就可以玩弄内存了。
【干货】Windows内存获取和分析---查找恶意进程,端口的更多相关文章
- 简单解读linux的/proc下的statm、maps、memmap 内存信息文件分析【转】
转自:https://blog.csdn.net/sctq8888/article/details/7398776 转载自:http://hi.baidu.com/deep_pro/blog/item ...
- 解Bug之路-记一次JVM堆外内存泄露Bug的查找
解Bug之路-记一次JVM堆外内存泄露Bug的查找 前言 JVM的堆外内存泄露的定位一直是个比较棘手的问题.此次的Bug查找从堆内内存的泄露反推出堆外内存,同时对物理内存的使用做了定量的分析,从而实锤 ...
- JVM内存区域异常分析
在Java虚拟机规范描述中,除程序计数器外,其他几个运行时区域都有可能发生OutOfMemoryError异常.接下来将对各区域分别进行分析介绍,内容包括触发各区域OutOfMemoryError异常 ...
- Windows内存管理和linux内存管理
windows内存管理 windows 内存管理方式主要分为:页式管理,段式管理,段页式管理. 页式管理的基本原理是将各进程的虚拟空间划分为若干个长度相等的页:页式管理把内存空间按照页的大小划分成片或 ...
- Windows内存管理[转]
本文主要内容:1.基本概念:物理内存.虚拟内存:物理地址.虚拟地址.逻辑地址:页目录,页表2.Windows内存管理3.CPU段式内存管理4.CPU页式内存管理 一.基本概念1. 两个内存概念物理内存 ...
- Memcached内存管理模型分析
Memcached 是一个高性能的分布式内存对象缓存系统,它通过在内存中缓存数据和对象来减少读取数据库的次数,从而减轻RDBMS的负担,提高服务的速度.提升可扩展性.本文将基于memcached1.4 ...
- linux内存源码分析 - 内存回收(匿名页反向映射)
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 概述 看完了内存压缩,最近在看内存回收这块的代码,发现内容有些多,需要分几块去详细说明,首先先说说匿名页的反向映 ...
- linux内存源码分析 - 伙伴系统(初始化和申请页框)
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 之前的文章已经介绍了伙伴系统,这篇我们主要看看源码中是如何初始化伙伴系统.从伙伴系统中分配页框,返回页框于伙伴系 ...
- windows内存体系结构 内存查询,读,写(附录源码)
“进程内存管理器”这个程序实现的最基本功能也就是对内存的读写,之前的两篇文章也就是做的一个铺垫,介绍了内核模式切换和IoDeviceControl函数进行的应用程序与驱动程序通信的问题.接下来就进入正 ...
随机推荐
- Linux内核分析第十八章读书笔记
第十八章 调试 调试工作艰难是内核级开发区别于用户级开发的一个显著特点. 18.1 准备开始 我们需要什么? 一个bug 一个藏匿bug的内核版本 思路:假定能够让bug重现 在用户级程序中,bug直 ...
- #Linux第四周学习总结——扒开系统调用的三层皮(上)
Linux第四周学习总结--扒开系统调用的三层皮(上) 一.用户态.内核态和中断 系统调用通过库函数. 1.用户态和内核态 区分(不同的指令执行级别): 用户态:在相应的低执行状态下,代码的掌控范围受 ...
- YQCB冲刺第二周第六天
今天的任务为界面的美化. 昨天的任务为实现由用户设置每月初始额度的功能. 暂未遇到问题. 站立会议 任务面板
- [福大软工] Z班 团队作业——UML设计 作业成绩
团队作业--UML设计 作业链接 http://www.cnblogs.com/easteast/p/7745703.html 作业要求 1)团队分工(5分) 描述团队的每个成员分别完成了UML图的哪 ...
- time since epoch
C++11 提供了新的获取系统时间的库函数,在获取时间的时候一般常用的是获取time since epoch,下面来看一下如何获取这个时间. #include <iostream> #in ...
- selenium_UI自动化——篇1(基础)
元素定位的几种方式: (1)driver.find_element_by_id("idname") (2)driver.find_element_by_name("nam ...
- WCF trace、log
1. 打开wcf配置: 2. enable trace , log 可以改变log路径: 3. 用 SvcTraceViewer.exe (直接在c盘下搜索) 查看 4. 如果想自定义trac ...
- Winform Treeview 的按需加载
最近项目里用到treeview,原先设计的是一开始就把所有数据都加载到treeview里,后来发现客户的数据量实在太大,加载所有数据要2分钟,这个是客户没法接受的.后来就考虑到用户也不是一开始就要看所 ...
- java实现超大整数加减乘除四则运算
原理: 用数组存储数字,按照计算法则进行运算. 代码: package com.hdwang; import java.util.regex.Matcher; import java.util.reg ...
- CF1027E Inverse Coloring
题意:n × n的矩阵,每个位置可以被染成黑/白色. 一种gay的染色是任意相邻两行的元素,每两个要么都相同,要么都不同.列同理. 一种gaygay的染色是一种gay的染色,其中没有哪个颜色的子矩阵大 ...