AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 495833
Accepted
oshirowanen
oshirowanen
Asked: 2019-01-22 11:11:17 +0800 CST2019-01-22 11:11:17 +0800 CST 2019-01-22 11:11:17 +0800 CST

将多个密码实体自动化到解密的 LUKS + Ext4 USB 记忆棒

  • 772

我有一个用 LUKS + Ext4 加密的 U 盘。我忘记密码了...

但是,我知道密码中将包含哪些单词,并列出了这些单词的所有排列。大约 10,000 个排列。

不是我手动逐个尝试每个排列(这将是一个漫长、缓慢且令人痛苦的乏味过程),是否有可能使这个过程自动化?我知道这听起来像是某种恶意的蛮力攻击,但事实并非如此。如果我想要这样的东西,我可以很容易地从互联网上下载一些不可靠的软件。

相反,我想使用在我的计算机上安全的东西,一个专门为我定制的脚本(或任何安全的解决方案)。

这可能吗?

shell-script password
  • 4 4 个回答
  • 377 Views

4 个回答

  • Voted
  1. Royce Williams
    2019-01-22T22:27:56+08:002019-01-22T22:27:56+08:00

    执行此攻击的最有效方法是使用 John the Ripper 的luks2john提取哈希,然后使用 John('LUKS' 哈希格式)或 hashcat(哈希模式 14600)对其进行攻击。

    这样做的好处是可以扩展到您拥有的核心数量(支持 John CPU 或 hashcat OpenCL CPU)或 GPU 数量(支持 hashcat OpenCL GPU)。

    它还利用了比使用本机接口更快的任何攻击端加密效率。这些效率有时可能比简单地一遍又一遍地尝试正常解锁要快得多。

    这也为您提供了这些工具支持的全套攻击模式(词表、规则、掩码、混合等)。

    • 4
  2. Best Answer
    frostschutz
    2019-01-22T11:51:38+08:002019-01-22T11:51:38+08:00

    好吧,在最幼稚的情况下,您可以大致做类似的事情

    for a in 'fo' 'foo' 'fooo'
    do
        for b in 'ba' 'bar' 'baar'
        do
            for c in 'bz' 'baz' 'bazz'
            do
                echo -n "$a$b$c" | cryptsetup open /dev/luks luks \
                && echo "'$a$b$c' is the winner!" \
                && break 3
            done
        done
    done
    

    它按顺序遍历所有拼图... foobarbz foobarbaz foobarbazz ... 等等。(如果您有可选的部分,请添加 '' 空字符串。如果您的部分是随机顺序的,那么您自己考虑一下)。

    要优化性能,您可以:

    • 用于继续从标准输入读取密码的补丁cryptsetup(github 上的 lukscrackplus 就是一个这样的例子,但它已经过时了)
    • 生成完整的单词列表,split将其放入单独的文件中,并运行多个这样的循环(每个核心一个,甚至可能跨多台机器)
    • 使用不同/更快的加密后端(例如荨麻而不是 gcrypt)编译 cryptsetup,上次我对其进行基准测试时差异很大
    • 找到一个不同的实现来暴力破解 LUKS

    但是,如果您的可能性太少(可以在一天内完成而无需优化)或太多的可能性(再多的优化都不会成功),那么优化可能毫无意义。

    同时,检查:

    • 您是否使用了错误的键盘布局?
    • LUKS 标头完好吗?

    (使用 LUKS1 没有办法确定,但如果你hexdump -C有它并且没有随机数据应该在哪里,那就没必要浪费时间了)

    这里也有类似的问题:https ://security.stackexchange.com/q/128539

    但是,如果您真的能够将范围缩小很多,那么天真的方法也可以。

    • 2
  3. user1794469
    2019-01-22T11:19:29+08:002019-01-22T11:19:29+08:00

    是的。我几乎遇到了这个确切的问题。我写了一个脚本,它遍历所有的可能性,直到一个工作。我的truecrypt虽然是一卷。唯一的问题是如果有一些速率限制,但只有当您将支票传递给网站等时才会出现这种情况。有了你拥有的音量,这样做相对容易。

    但这也是非常蛮力的。您刚刚将选择范围缩小到一小部分,所以这并不难。

    • 1
  4. Radek Radek
    2019-01-28T08:19:45+08:002019-01-28T08:19:45+08:00

    是的,正如之前的答案,这hashcat是最好的选择之一。由于 LUKS 不存储任何哈希值,我们需要从您的 USB 驱动器中获取加密的数据样本(标题)。我们只处理那个样本。

    sudo dd if=/dev/{USB_LUKS_partition} of=/tmp/data_sample.luks bs=512 count=4079
    

    Hashcat有许多破解密码的选项,从直接暴力破解到字典攻击、基于规则的攻击和掩码攻击。在这种情况下,我们有 password_candidates.txt:

    hashcat -m 14600 -a 0 -w 3 /tmp/data_sample.luks password_candidates.txt
    

    这应该会在几秒钟内为您提供密码。总帐

    • 1

相关问题

  • 在awk中的两行之间减去相同的列

  • 打印文件行及其长度的脚本[关闭]

  • 通过命令的标准输出以编程方式导出环境变量[重复]

  • 按分隔符拆分并连接字符串问题

  • MySQL Select with function IN () with bash array

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve