首页 > 其他分享 >浅谈加密容器取证思路---以EnFSMP为例

浅谈加密容器取证思路---以EnFSMP为例

时间:2023-08-17 19:22:58浏览次数:46  
标签:容器 加密 浅谈 为例 --- 密码 内存 注册表 磁盘

软件介绍

EnFSMP

这个工具可以帮助生成一个加密容器,并挂载磁盘。

相比于VC、TC,它的优势是不需要指定虚拟磁盘的大小。相反的,它要求的是一个文件夹,在文件夹中生成一个xml配置文件,虚拟磁盘中的文件会以加密后的形式保存在这个文件夹中。

img

虚拟磁盘挂载后,在此电脑的显示中,总容量和可用空间都与虚拟磁盘的文件夹所在磁盘一致,也就是说你可以不断往里面塞文件,直到把你实际的磁盘塞满为止。

img

而且当你需要传递某个文件时,不需要像VC、TC那样发送整个容器,或是将文件解密后再发送,你只需要将配置文件与需要的加密文件一起发送即可

软件新建虚拟磁盘的配置

img

还可以在内存中保存密码

img

分析

勾选保存密码

软件安装后,进入到软件的目录,发现没有其他文件

img

everything查找,也是没有额外文件的

img

使用RegScanner扫描注册表,可以找到键值

img

双击某一条数据,可以自动跳转到对应的注册表项,此时就可以直接看到明文的密码(保存在NTUSER.DAT\SOFTWARE\hiesti.ch\EncFSMP\MountList\MountEntryPassword字段)。这适用于用户主动保存密码的情况,该密码可以用于字典攻击,或是日后取证大师等类似软件直接解密这个加密容器。

img

内存中寻找密码

经过几次简单的测试,该软件无论是否勾选在内存中保存密码,都是可以从内存中搜索到密码的,可能是它的逻辑有问题。勾选此项时,在软件未推出时,只需要输入一次密码即可随意挂载卸载;未勾选时,每次挂载都需要输入密码

利用任务管理器dump内存

img

在dump出的内存里搜索自己设置的密码,这里列举一些测试数据,可以发现特征0200000000xx00000000000000password,其中xx表示密码的长度,最后跟着的就是密码,然而这仅限于密码小于16位的情况,也就是说xx的最大值是0f

img

img

img

当密码的长度大于15位时,就不满足这个规则了

img

img

img

img

但是值得注意的是,当密文超过15位时,我们可以用strings工具来查看是否存在连续的字符串,然后尝试解密,其实是相当于打字典攻击了

img

结语

对加密容器的取证分析,主要就是2个方面。第一是加密容器的判断,第二是加密容器的解密。

以本次的样本为例,在判断加密容器时,可以寻找某个目录是否包含.encfs6.xml文件

img

亦可以直接查找注册表NTUSER.DAT\SOFTWARE\hiesti.ch\EncFSMP\MountList\MountEntry,但是需要注意该软件可以在列表中移除容器,此时注册表相关字段会被删除,因此还是直接判断文件准确率更高。

寻找容器的解密密码时,可以从软件的注册表、配置文件等方面入手,再一个就是对内存下功夫,从内存中寻找密码或是密钥。

当然本次的样本由于是较为小众的加密软件,安全性做的可能不是很好,但也可以提供思路。

标签:容器,加密,浅谈,为例,---,密码,内存,注册表,磁盘
From: https://www.cnblogs.com/WXjzc/p/17638629.html

相关文章

  • [kubernetes]二进制部署k8s集群-基于containerd
    0.前言k8s从1.24版本开始不再直接支持docker,但可以自行调整相关配置,实现1.24版本后的k8s还能调用docker。其实docker自身也是调用containerd,与其k8s通过docker再调用containerd,不如k8s直接调用containerd,以减少性能损耗。除了containerd,比较流行的容器运行时还有podman,但是podm......
  • macbook-pro m2 芯片 vmfusion 安装 Ubuntu
    1、下载vmfusion13并安装2、下载UbuntuServerarm版本,并在vmfusion13中安装3、在UbuntuServer中安装desktop$sudoaptupdate$sudoaptinstalltasksel#查看可用的gui$tasksel--list-tasks#选择安装喜欢的gui$sudotaskselinstallgnome-deskt......
  • 【题解】#373. 「USACO1.1」Friday the Thirteenth 题解(2023-07-19更新)
    #373.「USACO1.1」FridaytheThirteenth题解本文章的访问次数为次。Part1提示题目传送门欢迎大家指出错误并私信这个蒟蒻欢迎大家在下方评论区写出自己的疑问(记得@这个蒟蒻)Part2背景这个蒟蒻又一次写了一篇大水题的题解(话说为什么是又),当然也是为了纪念他的\(......
  • 【考后总结】CSP-S 模拟 6
    8.17CSP模拟23That'sWhyYouGoAway-MichaelLearnsToRockBabywon'tyoutellmewhythereissadnessinyoureyesIdon'twannasaygoodbyetoyouLoveisonebigillusionIshouldtrytoforgetButthereissomethingleftinmyhea......
  • 【题解】#68. 「NOIP2004」津津的储蓄计划 题解(2023-07-19更新)
    #68.「NOIP2004」津津的储蓄计划题解本文章的访问次数为次。Part1提示题目传送门欢迎大家指出错误并私信这个蒟蒻欢迎大家在下方评论区写出自己的疑问(记得@这个蒟蒻)Part2背景这是这个蒟蒻的第一篇题解,也是这个蒟蒻对自己的\(50\)AC的纪念。Part3更新日志......
  • 【软硬件环境及工具安装使用】edgeai-torchvision的使用
    前言 一、安装edgeai-torchvision环境 首先需要理解的是,虚拟环境安装完torch之后再安装torchvision,且torchvision是基于源码编译安装的,因为thestandardtorchvisionwillnotsupportallthefeaturesinthisrepository.博主系统CUDA版本是11.7,但是当前edgeai-torchvisi......
  • 无涯教程-Perl - tied函数
    描述此函数返回对绑定实体VARIABLE下的对象的引用。要了解打结检查打结功能。语法以下是此函数的简单语法-tiedVARIABLE返回值如果VARIABLE未绑定到包,则此函数返回undef,否则返回对对象的引用。参考链接https://www.learnfk.com/perl/perl-tied.html......
  • mock-server
    constchokidar=require('chokidar')constbodyParser=require('body-parser')constchalk=require('chalk')constpath=require('path')constMock=require('mockjs')constmockDir=path.join(process.......
  • 2023.8.17 - env运行时变量在node中运行问题
    在Vue.js中,你不能直接在模板文件中访问.env文件中定义的环境变量。.env文件中的变量是在构建过程中被注入到应用程序中的,而不是在运行时可访问的。然而,你可以使用Vue提供的process.env来访问在构建过程中注入的环境变量。在Vue组件的JavaScript代码中,你可以通过process.env.VARIA......
  • 我的第一篇博客--深入了解.NET:构建强大的应用程序和平台
    导言:在现代软件开发领域中,微软.NET框架是一个备受推崇和广泛采用的平台。借助.NET,开发人员可以构建强大、高性能的应用程序和跨平台解决方案。本篇博客将带您深入了解.NET框架的独特功能和优点,并探索其在不同领域的应用。简介.NET框架解释.NET框架的基本概念和组件,包括公共语言运......