現在需要刷卡的地方越來越多,每個人身上都帶著數張RFID射頻卡,對於出門只帶手機一族來說,非常不方便,現在手機基本自帶NFC功能,可以將很多公交卡和小區門禁卡都可以模擬複製到手機上,相當的便利,但是有部分加密卡是無法複製的,對於數碼之家壇友來說,考驗我們的時候到了。設備準備:1. 電腦一臺2. ProxMark3(以下簡稱PM3)一個3. 待破解電梯卡一張4. 帶有全功能NFC的手機一臺(本文以小米MIX3為例)
購買ProxMark3的時候,賣家都會附送相應軟體,有些軟體是捆綁機器一起的,有些是收費的先聲明,樓主和本文均不提供軟體的共享等,請不要詢問。首先需要先明確待破解的卡是飛利浦(恩智浦)的MF1 S50卡,即常說的M1卡、S50卡、Mifare 1K卡……其他卡片比如低頻卡,手機NFC不支持,破解完成僅能複製而不能手機模擬,這裡暫不討論
Q:如何確定自己的卡是否能夠模擬?A:直接使用手機讀取並模擬(以MIUI系統為例,使用「小米錢包」),將卡靠近手機,如果手機有反應,那麼恭喜,這是13.56MHz的高頻卡,手機NFC支持。Q:如何確定自己的卡是否加密?A:直接使用軟體進行卡的複製和模擬,以小米錢包為例,點擊添加門卡,將卡放置於手機背面NFC區域,直接可以模擬的,為非加密卡,刷卡機僅需要驗證明文信息。(我樓下門禁就是這樣的,形同虛設)Q:如何確定自己的卡加密到何種程度(部分扇區加密、全扇區加密)A:可以在手機上安裝使用MIFARE Classic Tool工具來讀取卡信息,如果有顯示「未找到keys(或者扇區損壞)」,則表示該扇區加密,如果全部都是……那麼你很可憐,這是一張全加密卡,你需要付出較大代價才可以破解======正文======作為數碼之家壇友、硬體工程師、電子技術愛好者,本著「人生在於折騰」的原則,這種事情怎麼可能放過拿到電梯卡首先使用手機複製,提示加密卡,如下圖:
使用MIFARE Classic Tool工具配合較為簡單的字典進行,這些簡單的字典通常都是內置,比如:extended-std.keysstd.keys(使用大小高達1M的超大容量字典破解時MIFARE Classic Tool工具會直接卡死)因為出廠默認密鑰是FFFFFFFFFFFF,比如當有些人偷懶改為000000000000時,就可能可以用MIFARE Classic Tool工具破解出來。當然MIFARE Classic Tool工具是非常低級的,當密鑰設定沒有那麼簡單、密鑰不存在於字典中時,它就一點辦法都沒有了。
比如這張電梯卡,因為第9扇區的keyA不存在於字典中,直接就紅字讀不出
這時候你要麼求助於發卡部門,求求你了,不要加密了好不好,我不想帶張卡,我想刷手機……求人不如求自己這時候就要付出點代價了需要用到類似PM3的工具了(售價閒魚150~160,淘寶200左右,更高級的400~500,代價一)連接電腦安裝驅動這些不再贅述,我們以PM3 GUI正式版為例(因為我發現這個版本挺好使),直接進入界面教學軟體如下:
首先讀卡,將卡放在PM3高頻天線位置,點擊「讀卡類型」,就可以看到卡的信息,廠商,型號什麼的不出意外,會有這麼一行 TYPE : NXP MIFARE CLASSIC 1k | Plus 2k SL1
然後點擊「一鍵解析」,Client會自動掃描卡。讀取完卡16個扇區64個塊的信息之後,會顯示哪些扇區的密鑰非默認密鑰,然後軟體會自動進行「知一密解全密」
即使用扇區0的默認密碼FFFFFFFFFFFF進行Nested(NT)的過程如果漏洞可攻破,那麼一次或者幾次Nested後,讀取時未找到的密鑰就都出來了然後就可以看到整張卡的密鑰和數據,比如讀的另一張門禁/電梯卡(當初忘了截圖了)如果漏洞不可攻破,比如我這張電梯卡,跑完一次Nested後,提示有密鑰遺漏(9扇區密鑰解不開),是否要再次進行Nested?
再次NT也是無果的,那麼就要進入PRNG破解(需要用Proxmark3_EASY_GUI這個軟體)PRNG破解也是利用漏洞……好吧跑一遍PRNG,但是這如果PRNG也不可攻破,PM3好像會進入一個乏味、漫長、甚至掉線死機的狀態。估計是和卡的反破解功能有關。
(這裡要提一下,PM3的硬體經常會自己就死機了,或者仍在操作,但它並沒有任何反應,需要使用者去猜,去摸清它脾氣,然後插拔重啟軟體……)
好像是某種型號的還是新卡會把漏洞堵上,無法破解
當這兩個方法都沒法解出全部密鑰的時候,就需要付出更大的代價——去到刷卡機處進行現場嗅探(代價二)這裡以【現場有卡嗅探】為例
將PM3連接至筆記本電腦後,打開PM3 GUI,點擊「現場有卡嗅探」,PM3 client會進入嗅探狀態,等待信號。此時將PM3儘可能的靠近刷卡機,但PM3與刷卡機之間要留點位置以便待會插入卡刷卡,建議兩人操作準備好之後,刷卡,此時PM3 client會出現一堆嗅探到的信息我們不要管信息是什麼,PM3 GUI正式版會直接進行計算(這也是我推薦這個版本的原因)然後,密鑰就會顯示在相應的區域,如下圖,9扇區keyA位置,紅色的字體
這樣我們就拿到了之前兩種方法都解不開的密鑰(第9扇區的keyA)這一代價挺大的,首先這種行為你很可能會被盯上,然後物業八成……十成不允許你這樣做吧還有另一種不那麼顯眼的方式——【有卡離線嗅探】這個我沒有具體試過,這裡不再展開然後我們提著電腦回到室內,記錄下嗅探到的密鑰,根據之前說過的「知一密解全密」的方法點擊「知一密解全密」,將密鑰輸入、選擇相應的扇區、ABkey,然後點確定軟體就會根據這一密鑰,解開加密扇區的內容,如下圖:
這就是和刷卡機通訊的內容和密鑰,我們將完整的數據保存dump備份然後,原數據不能動的,我試過刪除密鑰保留內容,結果不行,刷卡機不認這個保存下來的dump文件,可以用來做卡的克隆那麼重點是,加密的內容,怎麼寫入手機?由於內容加密,克隆出來的卡也是加密的,你只是知道了密鑰和數據,手機並不支持模擬加密卡這個時候可以參考上文中提到的引申閱讀的破解後寫卡方法也可以這麼做:1. 首先手機上(小米錢包裡),新建一張空白卡方法是:小米錢包——小米門卡——右下角+號——自定義空白卡——輸入小米帳戶密碼——等待添加完成
2. 添加完成之後,調出刷卡界面(如果之前沒有設置雙擊Home鍵調出刷卡界面,此時可以使用某些方式喚醒,比如貼近刷卡機,然後點擊右上角的小齒輪,打開「桌面鍵雙擊支付模式」)此時手機會有振動提示「請靠近讀卡器」
3. 現在將手機的NFC區域靠近PM3的高頻天線區域,開始寫手機的空白卡,如圖1PM3 GUI中確保打開了之前保存的dump文件,然後點擊「克隆到FUID」這時候將開始寫卡,一般來說,手機不支持重寫0扇區0塊的廠商信息,所以第一行寫入必定是寫入失敗。這個錯誤可以忽略,寫入完畢後,應該是63成功,1失敗,如下圖:
表明dump中的信息已經寫入了手機調出的空白卡中,這時候可以拿著手機到刷卡機上去測試了(刷卡時,刷卡界面一定要選剛才的那張卡)
如果偶爾會有幾行數據寫入失敗,那麼可能是讀寫操作受到了幹擾,需要遠離周圍的電路、金屬物體、其他卡片等再試如果一直都是寫入失敗,那麼可能手機不具備全功能NFC功能,加密卡就沒法往裡寫了,放棄吧如果刷卡系統需要驗證0扇區0塊的廠商信息,那麼也放棄吧。
本文僅僅是提供了一個思路,對於全加密的卡,也可以使用現場嗅探的方式來解開密鑰,或者使用其他設備,比如「變色龍」來進行破解,方法不計其數。
破解加密卡是什麼性質的行為希望大家都清楚。本文的目的在於技術交流學習,本文涉及到的智慧卡、密鑰等僅用於設備研發調試。嚴禁利用本帖學習到的內容從事非法牟利等違法犯罪活動(特別是包括但不僅限於水卡飯卡停車卡的修改)。否則造成的一切後果由事主負責,本人及網站不為其承擔任何責任。
謝謝觀看!
文章內容為作者原創,不代表本論壇觀點
關注數碼之家網瀏覽更多精彩資訊、拆機圖文DIY
技術交流請聯繫原作者
作者:john_chuck
本文來源:數碼之家