|
|
|
|
移动端

如何使用Hashcat暴力破解Linux磁盘加密

在这篇文章中,我将跟大家介绍如何使用hashcat来暴力破解LUK卷,并告诉大家如何挂载一个LUK分区,以及如何在解密之后制作磁盘镜像。

作者:Alpha_h4ck来源:FreeBuf|2018-03-07 06:13

人工智能+区块链的发展趋势及应用调研报告


在这篇文章中,我将跟大家介绍如何使用hashcat来暴力破解LUK卷,并告诉大家如何挂载一个LUK分区,以及如何在解密之后制作磁盘镜像。

场景分析:你正在使用一台Macbook,macOS系统已经被移除了,你安装的是Debian 9.0。犯罪嫌疑人正在使用LUKS磁盘加密来对你的硬盘进行加密,密码未知,因此我们需要一种可靠的取证方法来访问磁盘数据。

那么接下来,就让我们直奔主题。

工具要求

1. Hashcat3.5.0+:【参考

2. FTKimager(可选):【参考

3. EnCase(可选)

一、制作Macbook磁盘镜像并加载进EnCase

获取硬盘镜像可以通过雷电接口、连接其他Mac电脑、或者以目标磁盘模式来实现,这个步骤比较简单,我们这里不进行赘述。

当我们将镜像文件(取证文件)加载进EnCase之后,我们就可以直接看到启动分区,但是hda2似乎是一个“未分配的卷蔟”,格式为EXT2分区。

但是,我们可以直接在下方区域查看到LUKS头信息,而这段信息告诉我们它使用的是XTS-plain64的AES加密。

二、导出加密分区

为了解密并加载这个分区,我们首先需要以原始镜像的形式导出这个加密分区。我发现,这一步使用FTK Imager实现起来最简单,但是你也可以用EnCase来将这个分区以模拟磁盘的形式进行加载,但是FTK Imager更简单一些。

加载成功之后,右键点击已加密的分区,并选择“导出磁盘镜像”(Export Disk Image),然后把fragmentation设置为0。

三、分区头-hashcat ‘hash’文件

接下来,到hashcat(一款支持Windows和Linux平台的密码破解软件)上场了。一般来说,hashcat是用来破解密码哈希的,所以我们需要加载一个哈希值或者在文本文件中写入多个哈希。

但是对于LUSK来说,我们则需要对整个分区运行hashcat,因为LUKS会在整个磁盘区域内存储用于解密数据的主密钥。幸运的是,hashcat只需要大约2MB来破解密码,因此我们就可以使用FTK Imager来创建一个2MB的Header,然后使用运行下列命令:

  1. sudo dd if=LUKS_Partition.001 of=LUKS_Header.dd bs=512 count=4079 

FTK方法:

Fragmentation设置为2,如果你想用dd命令的话,请参考上面给出的方法。

四、Hashcat

这一步可以在Windows或Linux上进行,但是为了方便起见,我这里选择使用Linux来解密并加载分区。

下载hashcat 3.5+【点我下载】,hashcat的破解密码选项有非常多,但最常用的就是暴力破解,不过这种方法效率就非常低了,有可能你花了几个月的时间都破不了一个密码。这里我们需要使用的是字典攻击(自定义字典),你可以从【这里】下载各种非常强大的密码字典。

当你将分区镜像文件以及header镜像拷贝到Linux并设置好了hashcat之后,你需要切换到镜像文件所在目录并在终端运行下列命令(使用了一个名叫“Dictionary.txt“的字典文件):

  1. ./hashcat-3.5.0/hashcat64.bin-m 14600 -a 0 -w 3 LUKS_Partition.001 Dictionary.txt -o luks_password.txt 

常用的hashcat语句如下:

  1. hashcat <METHOD> <HASH> <DICTIONARY> <OUTPUT> 

我们的场景配置如下:

  1. -m =哈希算法 - 14600 为 LUK加密 
  2. -a =破解方法 - 0 为标准字典破解 (3 为暴力破解) 
  3. -w =r资源分配 - 3 为‘高’ 
  4. LUKS_Partition.001Encrypted partition 
  5. Dictionary.txtdictionary 
  6. -o =output luks_password.txt 

如果一切顺利的话,你就可以查看到密码的破解结果了。

五、解密分区

我们现在已经得到了密码,我们就可以使用cryptsetup来解密这个‘容器’了!运行下列命令:

  1. sudo cryptsetup luksopen LUKS_Partition.001 Decrypted_partition 

输入你的管理员密码,然后输出hashcat给你提供的LUKS密码。该命令将会创建一个解密分区文件,文件路径为/dev/mapper/Decrypted_partition。接下来,你就可以使用ls命令来查看文件了。

六、挂载分区

首先,你需要创建一个需要挂载镜像文件的位置:

  1. sudo mkdir /mnt/Decrypted_partition 

如果你使用下列命令实现挂载的话:

  1. sudo mount /dev/mapper/Decrypted_partition /mnt/Decrypted_partition 

你可能会得到一条错误提示:“mount: Unknown Filesystem type”

如果出现的话,你可以运行下列命令解决该问题:

  1. sudo apt-get install lvm2 

然后运行:

  1. sudo lvscan 

这样一来,你就可以查看到解密分区的逻辑卷了,接下来使用下列命令挂载root分区:

  1. sudo mount /dev/macdeb-vg/root /mnt/Decrypted_partition –r 

注:-r,即只读!

我们还可以使用相同的mkdir以及mount命令来挂载swap分区。

七、浏览数据

我们可以直接浏览/mnt/Decrypted_partition,并查看我们之前的隐藏数据了!

八、制作解密分区镜像

现在,我们就可以直接使用“dd”或“dc3dd”命令来为解密后的数据制作镜像了,请确保你将其设置为指向/dev/mac-deb-vg。我建议大家使用下列命令:

  1. sudo dc3dd if=/dev/macdeb-vg/root of=/media/Patrick/KINGSTON/decrypted_partition.dd 

九、在EnCase中查看磁盘数据

得到解密后的分区镜像后,我们就可以把它加载进EnCase(或其他工具),然后你就会发现所有的数据都是直接可读的了。

【编辑推荐】

  1. 手把手教你利用命令行工具创建LinuxMac系统下的网站备份
  2. 想服务器不宕机,你了解Linux“体检”指标吗?
  3. Linux 安全预警:Linux 内核的 USB 驱动存在大量缺陷
  4. 基于 Python 的僵尸网络将 Linux 机器变成挖矿机器人
  5. Linux服务器如何预防DDoS攻击
【责任编辑:赵宁宁 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

点石成金:访客至上的网页设计秘笈(原书第2版)

有些网站看起来很清爽; 有些网站看起来很杂乱; 有些网站能让你轻松地找到资料; 有些网站让你犹如置身迷宫…… ...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊