Shell-Script

將多個密碼實體自動化到解密的 LUKS + Ext4 USB 記憶棒

  • January 28, 2019

我有一個用 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)。

它還利用了比使用本機介面更快的任何攻擊端加密效率。這些效率有時可能比簡單地一遍又一遍地嘗試正常解鎖要快得多。

這也為您提供了這些工具支持的全套攻擊模式(詞表、規則、遮罩、混合等)。

引用自:https://unix.stackexchange.com/questions/495833