本文只作技術(shù)交流分享研究之用,請勿用于非法用途,否則后果自負(fù)。
0.開端
高中一次偶然原因,在網(wǎng)上看到IC卡的破解文章,發(fā)現(xiàn)看操作流程很簡單,成本也不是很高。
但是用到的ACR122雖然一百多,但是高中那時候也不忍心花錢啊,再加上仔細(xì)觀察高中飯卡的刷卡機(jī)后發(fā)現(xiàn)每臺機(jī)器都接有兩根線,果斷放棄對聯(lián)網(wǎng)卡的破解
于是這事就這么過去了.....
大學(xué)的校園卡正好集成了出門卡、飯卡、洗澡熱水卡和開水卡的功能,熱水卡只有一根電源線,理論上這玩意是不會通過電力線向服務(wù)器傳輸數(shù)據(jù)的,為啥不試著了解一下RFID呢?說干就干
1.前期成本
手機(jī)沒有nfc功能,沒法只用一個app就能做到簡單的讀卡(當(dāng)然后來的事證明就算有也沒用= =)
于是乎就在萬能的tb買了一臺ACR122,搜集資料過程中還看到了有人用到PN532,看著三十塊錢一起也買了。據(jù)說PN532功能和ACR122幾乎差不多,又有點后悔先買了ACR122.....
2.ACR122
首先試試ACR122,用win10自動安裝的驅(qū)動破解會出現(xiàn)閃退還是什么的問題的,于是向賣家要了SDK裝上進(jìn)行第一次破解嘗試
讀卡發(fā)現(xiàn)是MIFARE Classic 4K卡,即S70卡
很快除了02扇區(qū)的A B key、08 09 10扇區(qū)的A key都打上勾了,應(yīng)該是很快就匹配到密碼了,然后開始閃方框破解
但是!下面一直在試可能的Key,應(yīng)該是在進(jìn)行驗證漏洞攻擊。放了一個晚上,最后啥也沒出來

3.PN532
就是這個可愛想X精致小巧的模塊
PL-2303的RX對PN532的TX,TX對RX
既然是小白,那就先試試用傻瓜軟件破解
一直在嘗試...和ACR122的軟件一樣
最后彈窗提示失敗
于是試試看mfoc和mfcuk
Card is not vulnerable to nested attack
于是也失敗了......
不甘心啊,畢竟也投入了一百多塊呢,深受沉沒成本之害的我開始試著了解傳說中的pm3
4.Proxmark3
看到tb介紹圖上的軟件有專門給4k卡破解的頁面,嗯,真香
入手了pm3和變色龍一體的版本,多買個設(shè)備多一點希望hhhhh
聯(lián)系賣家注冊他的軟件,不過這個用戶放在別的電腦上就沒法登錄了,不懂為什么一個用戶只能給一臺電腦使用
讀取到卡片當(dāng)然是先試試一鍵破解啦

第一步很快把各個默認(rèn)密匙掃出來,接下來開始驗證漏洞攻擊
Tag isn't vulnerable to Nested Attack (PRNG is not predictable).
上面簡單方法都失敗了,程序會自動進(jìn)行hardnested破解
等那個時間數(shù)字越來越小,嗯。。
竟然!破解出來了!

pm3有時會出現(xiàn)玄學(xué)問題,破解08扇區(qū)密碼的時候一直在循環(huán)nand,于是重新接上再來一遍破解

5.第一次嘗試復(fù)制卡片
先保存dump防崩,然后試著往買的S70卡里寫入

無法寫入???我還是特地買的正版S70卡啊

于是先補(bǔ)一補(bǔ)知識
M1卡菲利浦下屬子公司恩智浦出品的芯片縮寫,全稱為NXP Mifare1系列,符合ISO14443A標(biāo)準(zhǔn),有S50及S70等等,最常見的還是S50卡
M1 S50卡分為16個扇區(qū),每個扇區(qū)分為4個塊(塊0-塊3),共64塊,編號為0-63。第0扇區(qū)的第0塊用于存放廠商代碼,已經(jīng)固化無法更改。其余區(qū)的第0-2塊用于存放數(shù)據(jù),塊3為控制塊用于存放密碼A、存取控制、密碼B
正版Mifare1的0扇區(qū)0塊是無法寫入的 -_-||
而用來復(fù)制的M1卡分為UID,CUID,FUID,UFUID等等
·UID卡(GEN1) 所有區(qū)塊可重復(fù)讀寫,用后門指令可更改ID
·CUID卡(GEN2) 所有區(qū)塊可重復(fù)讀寫,用普通寫指令可更改ID,但是不響應(yīng)后門指令
·FUID卡(GEN3) 0區(qū)塊僅可寫入一次,使用普通寫指令更改ID,鎖定后無法更改
pm3讀校園卡IC卡類型的時候有一條:
Answers to magic commands: NO
如果放上UID卡讀取是這樣的:
Answers to magic commands (GEN 1a): YES
有的讀卡器可以根據(jù)UID響應(yīng)后門指令的特性判斷是不是復(fù)制卡,CUID在這一點上比UID更不容易被識別,而FUID鎖定后就成了普通的M1卡,不會被反克隆識別到。
6.第二次嘗試復(fù)制卡片
tb上有S70的CUID卡賣,但是先不急著買,試試能不能給S50卡寫入一些數(shù)據(jù)

???為什么02扇區(qū)沒法寫入???難道學(xué)校還用了什么黑科技加密方法嗎?
此時抱著試試看的心態(tài)去熱水機(jī)上刷卡只能顯示當(dāng)前時間,沒有任何反應(yīng),看來02扇區(qū)是和洗澡水卡有很大關(guān)系了
7.試試變色龍?
買都買了,不如試試。
將TAG1寫入校園卡的dump模擬成校園卡,TAG2設(shè)好ID作為嗅探卡

去刷TAG1原本還能顯示一下時間,后來完全沒反應(yīng)了
根據(jù)賣家給的一份資料中發(fā)現(xiàn):各別讀頭瞬間驗證兩個以上的扇區(qū),速度過快,變色龍反應(yīng)不過來,會造成識別不到
再來看看TAG2有沒有偷到一些有用的信息
2扇區(qū)讀出的信息和pm3破解的密碼、數(shù)據(jù)完全不同啊
13扇區(qū)明明破解出來是使用默認(rèn)密碼的空扇區(qū) -_-||

8.第三次嘗試復(fù)制卡片
拿著復(fù)制的半成品CUID卡順路去樓下的開水機(jī)刷了一下,竟然出水了!
說明開水卡數(shù)據(jù)和2扇區(qū)無關(guān),應(yīng)該在8 9或10扇區(qū)內(nèi)
并且將S70的前64塊數(shù)據(jù)寫入S50卡,是可以能正常使用的。
冷靜下來大膽猜測一下
/以下僅為猜測 ↓
寫入卡需要被寫入卡的密碼,即CUID白卡的密碼(默認(rèn)AB都為 FFFFFFFFFFFF)
而剛剛寫入的時候是按照之前讀取出來的校園卡密碼寫入的,02扇區(qū)的A B密碼都不匹配,無法寫入/
根據(jù)控制位FF078069,得出4個塊的權(quán)限為0001
數(shù)據(jù)塊012的權(quán)限為000,keyA或keyB都可讀可寫
塊3為001,keyA任何時候不可讀,可以通過AB寫
參考資料:https://www.cnblogs.com/zhupengfei/p/8983666.html
校園卡的08 09 10扇區(qū)的B密碼為FFFFFFFFFFFF,和CUID的B密碼匹配,即使A密碼不正確也可以寫入
于是讀取空白密碼再一次試著往CUID卡寫入,很順利

拿去刷卡,一切順利地出水了
9.復(fù)制完成
感覺被自己蠢到了.....
A.下期
以復(fù)制為最終目的的都是向錢看的行為,我們不應(yīng)滿足于復(fù)制卡,分析數(shù)據(jù)的過程才是IC卡破解中最刺激有意思的一項(#滑稽)