將多個密碼實體自動化到解密的 LUKS + Ext4 USB 記憶棒
我有一個用 LUKS + Ext4 加密的 U 盤。我忘記密碼了…
但是,我知道密碼中將包含哪些單詞,並列出了這些單詞的所有排列。大約 10,000 個排列。
不是我手動逐個嘗試每個排列(這將是一個漫長、緩慢且令人痛苦的乏味過程),是否有可能使這個過程自動化?我知道這聽起來像是某種惡意的蠻力攻擊,但事實並非如此。如果我想要這樣的東西,我可以很容易地從網際網路上下載一些不可靠的軟體。
相反,我想使用在我的電腦上安全的東西,一個專門為我定制的腳本(或任何安全的解決方案)。
這可能嗎?
好吧,在最幼稚的情況下,您可以大致做類似的事情
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
但是,如果您真的能夠將範圍縮小很多,那麼天真的方法也可以。
執行此攻擊的最有效方法是使用開膛手 John 的luks2john提取雜湊,然後使用 John(‘LUKS’ 雜湊格式)或 hashcat(雜湊模式 14600)對其進行攻擊。
這樣做的好處是可以擴展到您擁有的核心數量(支持 John CPU 或 hashcat OpenCL CPU)或 GPU 數量(支持 hashcat OpenCL GPU)。
它還利用了比使用本機介面更快的任何攻擊端加密效率。這些效率有時可能比簡單地一遍又一遍地嘗試正常解鎖要快得多。
這也為您提供了這些工具支持的全套攻擊模式(詞表、規則、遮罩、混合等)。