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
#牆壁文
「我真的覺得救回來的機率很渺茫了」的推薦目錄:
- 關於我真的覺得救回來的機率很渺茫了 在 OSSLab Geek Lab Facebook 的精選貼文
- 關於我真的覺得救回來的機率很渺茫了 在 閱讀文章- 精華區sttmountain - 批踢踢實業坊 的評價
- 關於我真的覺得救回來的機率很渺茫了 在 Icu醫生陳志金- 每個DNR(不實施心肺復甦術)決定,對家屬來說,都是 ... 的評價
- 關於我真的覺得救回來的機率很渺茫了 在 外接式硬碟讀不到2022-精選在臉書/Facebook/Dcard上的焦點 ... 的評價
- 關於我真的覺得救回來的機率很渺茫了 在 外接式硬碟讀不到2022-精選在臉書/Facebook/Dcard上的焦點 ... 的評價
- 關於我真的覺得救回來的機率很渺茫了 在 自行車相關討論抱怨問題統一集中區(第103頁) - Mobile01 的評價
- 關於我真的覺得救回來的機率很渺茫了 在 hw 工程師全名的測驗範本和範例,104、1111、PTT 的評價
- 關於我真的覺得救回來的機率很渺茫了 在 [問卦] OHCA救回來的機會有多高? - Gossiping - PTT網頁版 的評價
- 關於我真的覺得救回來的機率很渺茫了 在 [請益] 加價婚紗PTT推薦GetMarry 的評價
- 關於我真的覺得救回來的機率很渺茫了 在 [詢問] FB一個月被鎖帳號三次- Facebook - PTT生活資訊討論 的評價
- 關於我真的覺得救回來的機率很渺茫了 在 [詢問] FB一個月被鎖帳號三次- Facebook - PTT生活資訊討論 的評價
我真的覺得救回來的機率很渺茫了 在 Icu醫生陳志金- 每個DNR(不實施心肺復甦術)決定,對家屬來說,都是 ... 的推薦與評價
我真 的回去再聽一次張教授的part了 .. 我個人我個人覺得啦 張教授所謂的救回來指的是穩定生命跡象並非完全康復 意思應該是讓病患維持不會死亡的狀態但畢竟病患年長又有 ... ... <看更多>
我真的覺得救回來的機率很渺茫了 在 外接式硬碟讀不到2022-精選在臉書/Facebook/Dcard上的焦點 ... 的推薦與評價
我使用的外接硬碟,是WD My Book Duo 16TB,USB 3.0,外觀可以參考[1],是亮 ... 坦白說,這個時候,我心都涼了,#我真的覺得救回來的機率很渺茫了。 ... <看更多>
我真的覺得救回來的機率很渺茫了 在 閱讀文章- 精華區sttmountain - 批踢踢實業坊 的推薦與評價
這輩子覺得最無力說話的一刻是老師對著我暴怒
「你對他的父母能交代嗎?」
「你對他的父母能交代嗎?」
我無法交代。
我不是一個稱職的留守。
我站著無法動彈一句話都無法反駁,每一字都深深刻刻
從接到電話聽到一兩百米心就涼了一半,天知道活著的機率有多渺茫
我連烏拉夢是什麼地方都不知道。
留守是隊伍的第三人、留守也是隊伍的一份子
留守要了解隊伍的確切行程和人員。
出隊前要給留守一份直企和保單,下山不能忘記打給留守。
也許這幾年幹部群都和顏悅色、好聲好氣,幹會上不再劍拔弩張的吵架
所以會容許你們在審隊伍時候還在補填不完整的直企
會假裝嚴肅的說「以前沒填完是會當場退件的。」
我不知道有多少來審隊伍的人知道,我們是真的真的很看重這件事情的。
而你們為什麼可以一次又一次的帶著沒寫完的直企來審隊伍?你以為每審必過嗎?幹!
這真的不是只發生一兩次的事情了
幹!
直企上每一格沒有填完不要來找幹部審隊伍!
(包含所有人員資料還有要帶兩萬五地圖啊,幹這不是很很很基本的嗎?)
跑公文是在出隊前一天跑的喔?!
然後,隊伍行程和所有裝備再沒有跟你的嚮導、你的班底充分討論過的話
不要來找我審隊!因為你會被我問倒!然後在我面前修改一堆技術裝備清單!
我實在不想要再好聲好氣的說:「回去跟XX再討論一下吧!」
幹!明明就是你們討論完後的行程才能來審隊伍吧?
(覺得開隊很辛苦你們又一堆期中考社務夾殺,好不容易約到時間審隊要被完全打槍重審
很可憐,又怕太兇了你們會不會對開隊卻步)
但我真的不想要一次又一次的心軟...
(我想不只我很多幹部都有同樣想法)
這不是型式上的作業流程,這是一件很重要很重要的山難防治過程。
雖然我現在只管的到3天以上的隊伍和溯溪隊,希望兩天一夜的隊伍不要也這麼落漆!
-------------------------------
牛角灣溪體驗隊出隊前沒拿直企保單跟給我
其實我一直到當天才想起來,也忘了要,這部份我也失職
(太久沒接留守有點忘了,但也是有了這周的疏忽,
緊接著下周留守兩支對伍我的警覺心有打開)
但我記得當天我是你們的留守,從下午五點就開始注意要接你們的電話
下山沒打給我,我打一些人手機都沒開,隊伍都回到光口我才接到銘毅的電話
要不是是我去過的、我知道商業團都在帶隊的牛角灣溪的難度
我知道村莊離很近,要求救很快就有通訊
回到光口才打給我這個時間點真的太晚了
射鹿溪下溯審隊伍時路線領隊沒準備好,後來你們開會完後才又更改行程
(領隊有打電話通知我,但沒有詳細講,還有簽名的恰恰你也要通知。有通知嗎?)
禮拜四去催領隊我還沒拿到直企和保單,問了才知道因為公文還沒跑完
欸,但是其實給留守的直企資料不需要是正本,正本是放在山防簿內的
禮拜五傍晚去社辦想拿直企,結果約定好的隊櫃內並沒有,我只好抽走山防簿的直企帶走
禮拜五深夜仔細看看直企內容,發現對行程還有很多疑問
然後有位隊員的緊急連絡人和連絡電話都寫成自己的
我一直到出隊當天早上還連絡領隊(人都在高雄吃早餐了)給我正確的資料和了解行程
(主要是下溯最後瀑布的點和上切稜線選擇的問題)
如果我禮拜五晚上沒有好好檢查直企內容呢?
如果你填錯的格子剛好是「入山鄉鎮」呢?
你知不知道出山難打給119對方第一個問題就是「出事地點在哪個鄉鎮」?
如果今天出事的剛好是那位填錯資料的隊員呢?我去哪裡連絡他的家人?
如果你們今天不只遲歸是迫降,又沒有通訊點的話
一搜要下切連你們預計回程的路都不太清楚要怎麼辦。
(聽你們說在七點半前有嘗試打衛星電話但沒收訊,
還有隊伍沒有阿齊可能真的會迫降一晚,所以這個假設並不會太誇張)
如果你更改路線只通知了留守沒通知同樣也是審隊簽名的恰恰呢?
一旦出事留守沒接到電話,恰恰可能是第二人選,可是他連你們路線變O型都不知道
這是為什麼必須在審隊伍時把直企填完、行程必須跟你的班底充分討論後再來審
天殺的這不是一個「形式上」的要求
這是「環環相扣的登山安全」
所有山難都是從小環節開始一個個出錯的........
多兩個幹部檢查你的直企是否正確完整絕對是件好事
審隊伍是確保你上山前每個環節盡我們最大能力讓它安全
也是讓你們的路線,不只上山的隊友清楚而以,山下也需要有了解你們路線的人。
很多的如果、假設都往不好的方向
但我就是要小題大作,登山就算有99%是運氣,也要把那1%的安全做足。
因為,再多的如果,也換不回夥伴的生命。
同一級的,大家感情都不錯吧!
你們不會想要有一天就這樣少了一個人的。
華宸的離開是我們這幾級永遠的傷痛。
----------------------
看完請不要推文說對不起,我不是責怪,我是要你們去「思考」
一件事情你知道它的重要性就會去做「對」
ching 2014/05/07
... <看更多>