從前有一台 10 吋的機器,明明可以成為貫通六魄的天醒者,不料卻被萬惡山海樓的銷魂鎖魄所禁制,為了幫助解開封印,不浪費這台機器的絕頂天資,底下是我嘗試的過程記錄,希望有一天夢想終能成真。
(上述敘事如有巧合,我絕不會承認是看書時,被一旁老婆的追劇打擾,而佔據了我腦容量的無用資訊。女人都希望有一間更衣室,男人也需要一間安靜的書房呀!好好的詩海石硯台,被搞成什麼樣子?真是無奈…)
前期提要
這台機器是某台機器的攣生兄弟,硬體規格幾乎一樣,我們就稱原機器為 S 君,這台機器為 R 君。
假設
為了繼續做實驗,得先做一些假設,不然實在無法繼續。
1. 機器 Diagnose Mode 仍然存在。
2. XDA 上的破解資訊為真,且 R 君並未更動。
初始情況
焊了電阻後,感覺機器有嘗試進入診斷模式,但並未成功,照 XDA 上面的資訊是電阻阻值不對所致。
拿不要的線剪斷加工
按下特殊鍵無法進入 Diagnose Mode 的關機畫面
01. 量測電阻,確認是否為 7.5K?
第一顆電阻為 7.43K 左右,不到 7.5K,焊了第二顆 7.6K 左右的電阻,結果一樣。
a. 一定要剛好 7.5K ?
05/29 應該不是,只要大於就好?畢竟量測本就會有誤差。
b. 電阻側可量到阻值無誤,改量測 USB 接口側,確認有量到阻值。
05/29 USB 線應該有問題,為何會有留 ID 的線?且與外殼金屬相通,GND 反而沒有?等轉接板來驗證。
教訓:1. 以後有需要買東西就買,上次沒有買轉接板是錯的。
2. 使用烙鐵要小心。
3. 焊台可以固定零件,幫助作業。
05/31 USB 線確定有問題,拆了原本焊的線,原以為 ID 的線被直接焊到外殼沒錯,不得不稱讚一下 PowerSync 這家公司,USB 線的頭做得還不錯,不會被我一拆就壞,5 個 pin 在接頭也分前後分開,方便我焊接作業。
就是這條線害我誤會
傳說中的 Diagnose Mode
文組的焊接功夫很差XD
插上 R 君工作的樣子
進入 Diagnose Mode 後待辦事項
01. 確定 Linux 可以認到 modern,可以用 Windows 嗎?
02. 是否能 telnet 進去?
05/31 Windows 會長出 COM Port,Linux 則是 /dev/ttyACM0。
Windows 還不知怎麼用 putty 登入? 靠,要用 Serial 模式。
Linux 也不會用 telnet,但可以用 sudo screen /dev/ttyACM0 登入。
03. 密碼嘗試
a. 嘗試一般人最會亂取的 password。
b.
05/31 試了幾組常用密碼,看來都不是。還好 Diagnose Mode 也會對電池充電,不怕沒電。
05/31 找 Github 是否有現成暴力工具,否則自己寫。為了維修工程師方便,個人猜測密碼應該在 6 ~ 12 字元間,先不包括特殊字元?
05/31 晚上無聊算了一下,一天只算上班時間,帳號用 root,5 秒試一次密碼,包含特殊字元、英數字,只取 6 碼,粗略算了一下,要花 20 萬年才能嘗試完一遍,看來還是要用字典法等機制才行。
06/01 感謝 HappyZ dpt-tools project,抄了幾個我要的函數,工具 ready,自動登入中。
自動執行,該做的都做了,不行就是天意XD
06/02 程式需要修改才行,有時候讀 COM Port 就是要很久,time out 要拉大,否則會有密碼沒有嘗試過。
06/02 欲速則不達!抄來的程式還是要修改一下,另外 Python 讀進來的還有換行字元,昨天都白做工了。
06/02 新版程式 ready,理論上還要加上 Log,但在我肉眼觀察 100 組後,看起來沒啥問題,反正今天就當 Debug,不求進度,下班前再決定,畢竟現在一分鐘可能只能輸入 5 組,還是需要偷一點時間,但正確率還是最重要的,快並沒有用。
https://github.com/tylpk1216/try-telnet-comport
06/02 戰績 3016 組。
06/02 星期五晚上購買的轉接板已到貨,雖然我上星期日已經動手解決了,但看著這精美的板子,真是高第呀。
06/02 欲速則不達!抄來的程式還是要修改一下,另外 Python 讀進來的還有換行字元,昨天都白做工了。
06/02 新版程式 ready,理論上還要加上 Log,但在我肉眼觀察 100 組後,看起來沒啥問題,反正今天就當 Debug,不求進度,下班前再決定,畢竟現在一分鐘可能只能輸入 5 組,還是需要偷一點時間,但正確率還是最重要的,快並沒有用。
https://github.com/tylpk1216/try-telnet-comport
06/02 戰績 3016 組。
06/02 星期五晚上購買的轉接板已到貨,雖然我上星期日已經動手解決了,但看著這精美的板子,真是高第呀。
就跟退卡針差不多大小,一個才 NT $150。
06/03 一天只能試 3000 組,看來要雙管齊下才行。反正 XDA 有 password 的 hash 值,寫程式來比對?
06/03 戰績 3000 組。
06/03 Download Kali Linux ISO, prepare to do hash hack.
06/04 戰績 2477 組。
06/04 那就萬事拜託了,我親愛的 "John"。
06/05 John 當機了,另起爐灶中。
06/05 Two wordlists, 3 applications. (1 - asc, desc, 2 - asc)
I already do my best to do something.
06/06 GCP OOM issue, 6.75G RAM, OOM after running 43 minutes (17,xxx passwords).
Write another tool to remove used passwords and go on ?
06/07 Tried many dicts, no result. It's a hard work.
06/08 Use ?a?a?a?a?a?a, wait 45 years. Try CVE-2017-holes ?
It takes 45 years to only 6 digits password on GCP cheap machine.
06/09 All dicts are done, no result.
06/10 -1Rr ?1eadmoo?s?d?d?d?d?d (My PC - 1 hours and 20 minutes)
06/10 -1Rr ?1eadmoo?s?d?d?d?d?d ?d (My PC - 12 hours)
06/11 為了方便整理,將 hashcat 相關獨立出來,這區塊只更新其他嘗試。
06/15 直接寫信問廠商是否可以花錢買客製化影像檔。
06/17 廠商回絕,此路不通。
06/18 嘗試使用 stackoverflow 方法。
06/22 從 Sony code 來看,login 應該是在 busybox-1.19.3 裡面處理的。
裡面使用 strncpy 應該沒有 stackoverflow 問題
06/22 目前看起來可以嘗試的方向,我也不知道對不對?也是我最後一步了。
06/09 All dicts are done, no result.
PC - 1
06/10 -1Rr ?1eadmoo?s?d?d?d?d?d - Done
06/10 -1Rr ?1eadmoo?s?d?d?d?d?d?d - Done
PC - 2
06/12 ?a?a?a?a - Done
06/12 ?a?a?a?a?a - Done
06/15 rockyou.txt + rules\best64.rule - Done
06/15 ~@*(-./012asdfghjkleiorntuy,?1AERST,?2?2?1?1?1?1 - Done
06/16 ~@*(-./012asdfghjkleiorntuy,?1AERST,?2?2?1?1?1?1?1 - Done
GCP - image3
06/10 -1Ss ?1ony?s?d?d?d?d?d - Done
06/10 -1Ss ?1ony?s?d?d?d?d?d?d - Done
06/10 -1Ss ?1ony?s?d?d?d?d?d?d?d - Done
06/10 -1Ss ?1ony?s?d?d?d?d?d?d?d?d - Aborted (too many days)
06/18 Close machine.
GCP - rockyou-rule
06/11 ?d?d?d?d?d - Done
06/11 ?d?d?d?d?d?d - Done
06/11 ?d?d?d?d?d?d?d - Done
06/11 ?d?d?d?d?d?d?d?d - Done
06/11 ?l?l?l?l - Done
06/11 ?l?l?l?l?l - Done
06/11 ?l?l?l?l?l?l - Done
06/11 ?l?l?l?l?l?l?l - Aborted (too many days)
06/11 ?l?l?l?l?l?l?l?l - Aborted (too many days)
06/18 ~@*(-./012asdfghjkleiorntuy,?1AERST,?2?2?1?1?1?1?1?1
上面這個是我最後一個嘗試,跑到免費額度用完為止。
6年呀,小孩都可以上幼稚園了,況且這還只是一部分常用字元,還不保證密碼就在裡面
07/02 有時候,放棄也是一種勇氣!即使 GCP 免費額度不用真的掏錢出來,但將快 200 美金花在不可能的任務上也是一種浪費。這段期間總共花費了 NT $5,520.59,都可以買一支海信 A5 電子紙手機了!壯士斷腕,猶未晚也。
Python Code Example
from passlib.hash import sha512_crypt
password = 'hashcat'
salt = '52450745'
hash = sha512_crypt.encrypt(password, salt=salt, rounds=5000)
print('ans', '$6$52450745$k5ka2p8bFuSmoVT1tzOyyuaREkkKBcCNqoDKzYiJL9RaE8yMnPgh2XzzF0NDrUhgrcLwg78xs1w5pJiypEdFX/')
print('res', hash)
最終七傷拳大法
如果上述都不成功,把之前下載的 R 君的 PKG 檔案的簽名拿出來,放在 HappyZ 的 PKG 檔,反正最多就是變磚!(後來想想,這招應該不起作用才對,翻一下密碼學的書好了?)
06/02 雖然我沒試,但應該是不行,只是讓檢查簽名那關通過,解密出來的資料還是不會正確。