https://www.facebook.com/photo.php?fbid=10216019118603397
分享資安前輩 Kuon大大文
剛好上禮拜收到了一座 WD DUO 3TB*2 Raid 1
用戶說沒有設定密碼
就算沒有設定用戶密碼 一樣有eDEK密鑰
預設就是全扇區AES硬體加密
拿起昂貴資料救援設備來分析.
PC3000 跟MRT,從韌體Module 25,38讀出來
WTF?Keyblock (eDEK不正確)解密錯誤...
好 OSSLab Geek Lab還算看得懂論文跟原始碼
eDEK除了韌體外,在硬碟Lba也有備份
https://github.com/andlabs/reallymine/issues/45…
不同晶片的 Keyblock LBA位置
3 TB 5860528160
3 TB 5860529539
3 TB 5860533120
都翻過了 都是00 都沒有eDEK...
學前文Kuon大大查簽名
57 44 76 31
53 59 4D 57
53 49 6E 45
57 44 01 14 都失敗.
https://github.com/andlabs/reallymine/issues/15…
這案子搞到頭有點痛..看起來是都沒有人對WD DUO JMS561做過完整加解密分析.如果如同前文只是主控版損壞那就簡單..晚點再從與Usb to Bridge EEPROM內找看看eDEK
看不懂前文請先看這篇
https://www.osslab.com.tw/wd-usb-aes-recovery/
資料救援真的不一定會100%成功,只是我們會盡力研究與處理.
#OSSLab
咚!
#資料救援
這兩天剛好有朋友資料掉了,也是 WD 外接硬碟系列,來分享我今年的處理過程。
這篇會是個長篇,各位看倌要有心理準備 XD
也因為早就預期是個長篇,所以想了很久卻一直沒有開動。
====
[為什麼需要救援]
7 月份辦公室事故,樓下的高溫粒子沿著 1) 管道間 或 2)玻璃帷幕與牆壁中間的夾縫 亂竄,管道間旁,除了窗戶冷氣外,還堆了一堆易燃雜物 (紙 & 塑膠包材),這些雜物熔點一到自燃,所以我在路邊吃冰淇淋的時候,可以看到火苗從窗戶冒出。
吃冰淇淋的同時,我念茲在茲的只有硬碟(裡面的資料),因為備份用的幾十 TB 硬碟平常是離線儲存,擺在鐵櫃裡,而鐵櫃離火源非常接近....
幸好火源在窗戶旁邊,所以很快被發現並被撲滅。
到我可以進入現場,第一件事情就是開鐵櫃,手摸到鐵櫃的第一感覺,更,鐵櫃是溫熱的 :(
最重要的那顆 16TB 硬碟,是鐵櫃內最靠近火源的角落,連外包裝的紙盒都是燙的...,而且紙盒的底部,黏在鐵櫃上,我用力拔出來...
熔化了 :( 心都涼了!(拍一下驚堂木)
由於 1) 當時已經晚上 6 點左右,雖是夏日但天色已晚,室內當然因為事故無光源 2) 事故中間,開放進入現場不到 5 分鐘又撤離,二次燃燒
所以,為了避免可能的三次燃燒(?),當下我就把 16TB 隨手一扔,連放進可以上鎖的鐵櫃都沒有,先搶救其他設備,逃離現場。
因為我以為沒救了。物理毀損ㄟ...
====
[取出硬碟]
事後回想,把那顆硬碟隨便一丟,是個 #潛在的錯誤,因為如果後來建築物又發生什麼狀況,那硬碟可能就真的找不回來了。
我使用的外接硬碟,是 WD My Book Duo 16TB,USB 3.0,外觀可以參考 [1],是亮銀色的外觀。
事故第一晚,我想來想去,都覺得我太心急了,雖然那個外接盒,看起來快要 1/6 的比例熔掉,像是面積用 3x2 六等份排列時缺了一個角,是真的熔了一些東西。
硬碟外接盒,外包裝是紙盒,紙盒內還有一組保麗龍用來固定硬碟外接盒,紙盒在鐵櫃內,鐵櫃還在,紙盒和鐵櫃接觸面僅有焦掉,代表熔點低於這兩者,Google 查了一下保麗龍和塑膠熔點,研判是保麗龍和塑膠被(鐵櫃傳導熱度)熔掉,溫度僅需要 50C~60C,也查了硬碟工作時溫度,大概還撐得住 70C 高溫。
覺得應該慎重點,隔天就去把那顆熔掉的外接盒帶出來研究。
這個外接盒是自帶 2 顆硬碟的,買來插電就可以使用,所以原本也不知道裡面長什麼樣。
前面所提到的,亮銀色部分,研判是熱塑型塑膠,遇熱整個都軟化變形了,變形完一冷,就又固定住了,也就變得很難拆。
我在拆解的時候,很怕塑膠去黏到硬碟的軟板或是堵住氣孔,那就麻煩了,幸好沒有。原來,塑膠裡面是一個(有各種小孔呈網狀的)鐵盒子,硬碟和控制電路板,都在鐵盒子裡面,變形過的塑膠只有黏在鐵盒子外圍。
鐵盒子打開後,硬碟除了有碳粒附著和焦味外,外觀看起來都沒有受損。硬碟拆下來,我就把鐵盒子和塑膠丟掉了。
====
[資料救援前置作業]
事後回想,那個鐵盒子上面還有控制電路版,我在沒有確認電路板(或上面的 ROM)是壞掉的狀況下,就把它丟掉(因為塑膠碎片整個卡在上面,不想聞那個味道),是個 #潛在的嚴重錯誤。萬一外接盒的 1)控制晶片 2) I/O 演算法 3) 金鑰產生方式,依賴硬體,那我就真的救不回來了!!
獲得硬碟之後,因為外接盒(殘骸和那個鐵盒子)被我丟了,所以要再買一組新的。
當我上去 PCHome 看時 (原本的也是 PCHome 買的),我找到的是 [2],同樣都是 WD My Book Duo 16TB,[1] 和 [2] 的區別在一個是 USB 3.0,新的是 USB 3.1。
舊款 USB 3.0 的在別的購物平台有賣,牌價要 2 萬多,新款 3.1 的只要 1 萬 6。
#第一個抉擇來了,要買新款還是舊款?新款便宜個好幾千元,I/O 傳輸速度還比較快 ...
後來我決定打電話,問 WD 的代理商聯強,我還記得是在高鐵接駁車回台南市區的路上。舊款各種容量它們庫存都還有貨,但 16TB 的只剩一台。
#第二個抉擇來了,如果控制晶片都一樣,要買最小容量 6TB 就好,還是要跟原本一樣,買到 16TB?這關乎到 $$$$$$ 啊 ...
我後來決定買舊款,因為我怕新款的控制晶片不同顆,而且買了一樣容量 16 TB,因為在跟聯強工程師通話過程中,得知一個資訊,我覺得我得 Sector-by-Sector 複製了 ....
聯強:「WD 這個系列有 AES 加密」
我 :「我知道,但我沒有開啟,我也沒設過密碼」
聯強:「#就算你沒有設密碼_它還是有一組預設金鑰_而且是硬體加密」
我 :「...」(我瞬間知道這代表的意義,以及對救援難度的增加!!)
SATA-to-USB 轉接線,由於我手上原本的線材也在辦公室,當然得重買新的,跑去北門路買了 2 條。
====
[第一次救援]
在真的討論救援前,讓大家瞭解一下目前的資料架構。
軟體 -- USB -- 硬體
軟體: Data -- Linux EXT4 -- Linux LUKS -- USB
硬體: USB -- Firmware -- HDD
其中,LUKS 作了一次加密,Firmware 層又作了一次加密。也就是將硬碟拔出外接盒的時候,是 2 層加密,LUKS 的密碼是我設的,外接盒 Firmware 設的密碼,#我不知道!!
舊的外接盒中的硬碟,稱為舊硬碟,新的類推。
由於不知道新的控制晶片,會不會偷偷寫入 metadata 到舊硬碟,我不敢貿然的將舊硬碟插入新的外接盒,所以,我直接用 2 條 USB-to-SATA 傳輸線,採用 Linux dd 整顆對拷。
對了,我在拆舊硬碟的時候,有特別注意硬碟的順序。
每一次 copy 前,我都會檢查 3 次命令列參數和磁碟資訊,看看 if 和 of 有沒有設反 (設反就會把舊硬碟資料覆蓋過去....)
#三十小時過去,16 TB 總算拷完
拷完將新硬碟插回新的外接盒 (儘量不使用舊硬碟),這樣就搞定收工了。
.
.
.
.
.
.
.
.
.
.
.
.
.
(USB 接上電腦) WTF!!!Linux 認不到 LUKS Header,這樣代表在 Firmware 那層的解密就有問題了!我可是 Sector-by-Sector 對拷,怎麼會這樣?
#啟動備案,透過 USB-to-SATA 傳輸線直接對新硬碟 I/O,直接在這層就先破密,不使用外接盒。
為什麼會有備案呢,因為我以前讀過 "got HW crypto? On the (in)security of a Self-Encrypting Drive series" 這系列文件 (參考附圖一),知道 WD 外接盒系列加密演算法有漏洞,想說趁這個機會練習一下。
找了一些 GitHub 專案,要來對 WD 外接盒加密過的硬碟,進行破密,結果一直出現錯誤訊息,回去看 Source Code,發現是 Signature 找不到。
回去對照簡報檔 和 Source Code,發現外接盒 Firmware 會將 Metadata 存到硬碟的尾部,為了識別 Metadata,有一組固定的常數 Signature。
沒有找到 Signature,當然就意味著無法讀取正確的 Metadata。仔細讀過工具的 Source Code,發現沒有支援 8TB 的 offset (用來定位硬碟尾部位置),新增了一組我自己算的 offset,還是沒有找到。
有可能是我算錯,所以我改寫了工具,直接在一個比尾部更大許多的範圍,開始暴力搜尋 Signature,還是沒有找到。
囧了,只好直接拿起 Linux hd 指令,看 hexdump 結果,在我搜尋許多位置後,在 4TB 位置,觀察到一件事,就是 4TB 之後的內容都是 0x00!!
不對啊,我記得我這組外接硬碟使用超過 2/3 了,在有加密的情況下 (而且這個情況是雙重加密),不可能大量的 0x00 啊 ...
我重新思考了所有可能性,最後,發現了一件事情,我新買的 USB-to-SATA 傳輸線,外包裝盒寫著 "支援 4TB",它又沒說是 "最大支援 4TB" 阿 @@ TMD 採到雷!!!
我要找的 signature 會配置在硬碟的尾部,也就是 4TB~8TB 之間,傳輸線讀不到,當然找不到。
====
[第二次救援]
第一次救援的時候,我們家三寶還沒出生,中間那個禮拜特別忙,忙完三寶就出來 "Hello World!!\n" 了,所以,第二次救援已經是在月子中心處理的 XD
這次不用(雷雷的) USB-to-SATA 傳輸線了,請家裡人從光華帶了一台 4bay 的外接盒,有確認支援到單顆 8TB,而且故意挑沒有 RAID 功能。
#RAID!各位看完前面的描述,都沒有人注意到這件事情。WD My Book Duo 的 16TB,是由 2 顆 8TB WD 紅標組成。
當外接盒 WD My Book Duo 插進電腦時,預設只會出現一顆外接硬碟。也就是說,這個外接盒的預設模式,要麼是 JBOD 要麼是 RAID 0 (以下通通簡稱 RAID-like)。這也是我前面提到,我必須特別注意,2 顆 8TB 硬碟順序的原因。
#六十小時過去,真 16 TB 總算拷完
.
.
.
.
.
.
.
.
.
.
.
.
.
(USB 接上電腦) WTF!!!Linux 認不到 LUKS Header,這樣代表在 Firmware 那層的解密就有問題了!我可是 Sector-by-Sector 對拷,怎麼會這樣?
#啟動備案的備案,不對,我沒有備案的備案了阿...
我用前面提到的改寫過的工具,直接在一個比尾部更大許多的範圍,開始暴力搜尋 Signature,還是沒有找到。但硬碟尾部是有亂碼資料沒錯。
重新翻閱文件 "got HW crypto? On the (in)security of a Self-Encrypting Drive series" ,你會發現文件是針對 WD 的 My Book 和 My Passport 系列的外接盒,這些都是單顆硬碟的外接盒。我的是 My Book Duo,多了個 Duo 也就多了個 RAID-like 的行為。
很好,我的情況 no prior art .... 那麼現在的硬體處理資料的流程將會是:
#第一種可能,USB -- AES -- RAID-like -- HDD
#第二種可能,USB -- RAID-like -- AES -- HDD
#第三種可能,USB -- 我不知道 -- HDD
而韌體面,Signature 也有可能換一個未知的,但這點和上面的資料流程,都非得對韌體逆向工程才會知道。
我甚至都已經想過,寫 Linux 上的 FUSE 或 dm-* module,自己疊 RAID-like + AES 的透明轉換層 ... 如果我知道 AES 的 Key 的話,#可是我不知道阿。
坦白說,這個時候,我心都涼了,#我真的覺得救回來的機率很渺茫了。
要特別注意,這時候無論是新硬碟在 WD My Book Duo 裡面或是 4bay 外接盒,都無法正確判斷是 LUKS。
我可是 dd 的說,雖然不是 ddrescue,但拷貝過程就算有 bit error,對解密的錯誤擴散過程,也相當有限阿,除非好死不死,bit error 剛好發生在 Metadata 結構吧。
====
[第三次救援]
#這時候有馬比無馬好,有馬才能當活馬醫 XDD
我想說,好,至少我已經有一份 1:1 的備份了,把舊的硬碟按順序,插上新的 WD My Book Duo。
視窗彈出來了,不是小算盤,是 GNOME Disk 彈出來要求我輸入 LUKS 密碼的輸入框,嘿嘿,輸入密碼,16TB Get Back :)
這次前面有一些錯誤,資料能 100% 救回來,真的是運氣好。另外,也是 WD 的演算法有考慮到一些東西,至少沒有完全依賴控制電路板。
#我都已經準備好要逆向韌體了,雖然好玩,但還是資料救回來比較重要!
====
#自己的硬碟自己救
收工。
[1] https://support.wdc.com/product.aspx?ID=134&lang=en
[2] https://24h.pchome.com.tw/prod/DRAA6H-A9008G9W6?fq=/S/DRAA6H
#牆壁文
「wd my passport無法讀取」的推薦目錄:
- 關於wd my passport無法讀取 在 OSSLab Geek Lab Facebook 的最佳解答
- 關於wd my passport無法讀取 在 [問題] 無法讀取外接硬碟WD My Passport - 看板Linux 的評價
- 關於wd my passport無法讀取 在 請問wd my passport 無法讀取問題 - Mobile01 的評價
- 關於wd my passport無法讀取 在 WD - [硬碟驚險一瞬間] 電腦抓不到硬碟?請注意 ... - Facebook 的評價
- 關於wd my passport無法讀取 在 wd my passport無法讀取-在PTT/IG/網紅社群上服務品牌流行穿搭 的評價
- 關於wd my passport無法讀取 在 [ 香港專業維修 ] WD My Passport 4TB客人使用不當 的評價
- 關於wd my passport無法讀取 在 [問題] 新買的WD My Passport 2T 無法讀取- 看板Storage_Zone 的評價
wd my passport無法讀取 在 請問wd my passport 無法讀取問題 - Mobile01 的推薦與評價
這顆外接是去年購買的上星期使用時還正常今天接上去後就有類似讀不到情況 請問wd my passport 無法讀取問題 可是硬碟有在運轉,但燈號一直閃爍想去磁碟管理看情況但是 ... ... <看更多>
wd my passport無法讀取 在 WD - [硬碟驚險一瞬間] 電腦抓不到硬碟?請注意 ... - Facebook 的推薦與評價
WD, profile picture ... 不想發生慘案,預防之道還是立馬把檔案存在不怕摔又超穩定的My Passport SSD ! ... 達7,300MB/s 的讀取速度 ... <看更多>
wd my passport無法讀取 在 [問題] 無法讀取外接硬碟WD My Passport - 看板Linux 的推薦與評價
大家好。
我使用的 Linux 是 Antergos。
這顆外接硬碟(WD My Passport)已經經歷過 Ubuntu、Linux Mint,到現在的 Antergos
。
之前使用都沒有問題,直到最近開始無法讀取。
檔案總館裡,可以看到 My Passport 的標識。
如果按滑鼠右鍵的話,會顯示「mount」volume」的選項。可是按了沒什麼用。
用同樣這部電腦連其他外接硬碟都沒有問題,所以應該不是電腦的問題。
用手機連結其他外接硬碟,也沒問題,只是無法讀取這個 My Passport。但手機跑出來的
建議是「files corrupted」,要「format」硬碟。
不過裡面有些檔案想要保存下來,所以沒有 format。
請問,這大概是發生什麼問題?裡面的檔案有辦法救嗎?
註:是有考慮去「Storage_Zone」板問,但裡面的人大部分都是用 Winidows,想說或許
Linux 有獨門祕技可以用,所以來 Linux 板問。
--
※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1502509810.A.83B.html
gnome-disks 下,看不到 My Passport。
※ 編輯: connected (1.169.150.56), 08/12/2017 16:35:23
... <看更多>