當(dāng)前位置: 首頁 > 傳感測(cè)量產(chǎn)品 > 數(shù)據(jù)采集產(chǎn)品 > RFID系統(tǒng) > 讀寫器
發(fā)布日期:2022-05-20 點(diǎn)擊率:54
1. 前情提要
Mifare Classic card 提供 1k-4k 的容量,我們經(jīng)常見到的是 Mifare Classic 1k(S50),也就是所謂的 M1 卡。M1 卡有從 0 到 15 共 16 個(gè)扇區(qū),每個(gè)扇區(qū)配備了從 0 到 3 共塊個(gè)段,每個(gè)段分為 b0 到 b15 共 16 個(gè)區(qū)塊,并且可以保存 16 字節(jié)的內(nèi)容。
每個(gè)扇區(qū)的第 4 段呢是用來保存 KeyA,KeyB 和控制位的,每張卡的 0 扇區(qū)還有一個(gè)唯一標(biāo)識(shí)的 UID 號(hào)。
2.破解原理
這種卡類的攻擊方式大概分為這么幾種:
1)暴力破解
爆破對(duì)于 M1 卡的破解來說比較有效,因?yàn)?M1 卡是被動(dòng)卡,需要讀卡器來供能,切斷供能后卡的臨時(shí)數(shù)據(jù)就丟失了,也就是說不會(huì)存在輸入過多錯(cuò)誤密碼后造成的鎖死之類的情況
FFFFFFFFFFFF、A0B0C0D0E0F0 等等都是 M1 白卡的默認(rèn)密碼,所以當(dāng)我們使用 acr122u 的配套軟件 M1 卡服務(wù)程序這樣的工具來爆破的時(shí)候基本上都是用這些默認(rèn)密碼來填充剩余扇區(qū)的密碼。
2)克隆卡片(卡復(fù)制)
M1 卡的扇區(qū)可以保存數(shù)據(jù),所以大部分的卡片會(huì)選擇加密扇區(qū)后保存數(shù)據(jù),我們可以用 uid 卡來進(jìn)行復(fù)制,每張 M1 卡在 0 扇區(qū)第 1 段都有一個(gè)唯一標(biāo)識(shí),而且是保護(hù)無法修改的,uid 卡就是沒有設(shè)定 0 扇區(qū)保護(hù)的卡,所以你可以隨意的修改你想要的 uid,這樣我們就可以克隆出一張連 uid 都相同的卡片了。
3)嗅探攻擊
在卡和機(jī)器數(shù)據(jù)交換的時(shí)候嗅探數(shù)據(jù),并計(jì)算出校驗(yàn)即可。后期可在安卓端用 app:M Tools 進(jìn)行數(shù)據(jù)的嗅探。
已經(jīng)有很多篇文章講過了原理部分,直接講一下階段
3. 所需工具:
硬件: ACR122u(最常見的 rfid 設(shè)備,本質(zhì)就是 pn532,但是有個(gè)足夠強(qiáng)的上位機(jī),比 pn532 容易上手。沒買 pm3 是因?yàn)楦杏X貴,沒啥必要。。。)
軟件:m1 卡程序,fixdump,sublime Text3,UID 寫卡程序
以及安卓端:mifare classical tools, M Tools(神器)
mifare classical tools 是一款讓人又愛又恨的軟件,但是遠(yuǎn)遠(yuǎn)不如 M Tools 強(qiáng)大得多。。。
4 . 實(shí)際操作:
1. 首先把 acr122u 的驅(qū)動(dòng)嘰里呱啦的安裝好。
2. 把水卡放置道讀卡上,正確識(shí)別之后燈會(huì)變?yōu)辄S色。
3. 打開 m1 服務(wù)軟件,正確識(shí)別機(jī)器之后,點(diǎn)擊開始破解。
破解完成當(dāng)即獲得一個(gè) 1kb dump 文件,現(xiàn)在可以直接拖進(jìn) sublime text3,即可看出扇區(qū)密鑰。
為了容易看出金額差別,用手機(jī)端 app:mifare 打開 m1 卡,
會(huì)發(fā)現(xiàn)沒有 3 號(hào) 4 號(hào)扇區(qū)的 key,
用 sublime 打開 dumpfile1.dump
每個(gè)扇區(qū)的第 4 塊區(qū)域,前半部為 keyA 后半為 keyB
直接導(dǎo)入 mifare 工具,手機(jī)端圖形界面好觀察一些。
直接可以看到改扇區(qū)的信息了。先把現(xiàn)在的這份數(shù)據(jù)保存一下,然后再去機(jī)器那里刷一下機(jī)器,然后就可以看出數(shù)據(jù)變化位了,后就可以確定數(shù)據(jù)位和校驗(yàn)位了。
隨即就發(fā)現(xiàn)了一些端倪。這幾個(gè)數(shù)值出現(xiàn)了變化,
E4 12 DC 90
E8 12 DB 93
把前兩部分導(dǎo)進(jìn)進(jìn)制轉(zhuǎn)換器
剛好是金額位,那么剩下的就是校驗(yàn)位。
這都 8102 年了,之前經(jīng)常逛酷安,知道一款神器,M Tools這是一款酷安基佬開發(fā)的 app,最神奇的是作者錄制了視頻教程,但是地址確是在油管,并附有中式英語進(jìn)行講解?,F(xiàn)在還有一款 app 是 M Keys 也是該作者的作品,這兩款 app 現(xiàn)在也都支持外置 ACR122U 了,so 沒有 nfc 的手機(jī)也可以外置進(jìn)行操作。
這個(gè) app 也需要提前把密鑰導(dǎo)進(jìn)去,然后就可以對(duì)扇區(qū)數(shù)據(jù)進(jìn)行操作
這貨可以預(yù)置常用的算法,什么十六進(jìn)制倒序,倍數(shù)轉(zhuǎn)換啊,直接一點(diǎn)即可。
然后就找到之前發(fā)現(xiàn)的金額位數(shù)據(jù),直接就可以轉(zhuǎn)換成 47.40,然后下一不是選擇校驗(yàn)位的算法,but 真的看不出有何端倪,直接先跳過了。然后來到這個(gè) app 的核心功能,嗅探校驗(yàn)位算法。于是,在刷卡機(jī)器旁邊,沖沖放放這樣來了十幾個(gè)來回,嗅探到了一下數(shù)據(jù)。
目前已知的校驗(yàn)位計(jì)算方法有這么幾種:
反正就是加減乘除,異或取反,各種操作挨個(gè)試??戳撕镁脹]看出來,就去翻著去看了幾篇教程,發(fā)現(xiàn)了一些端倪。
但就是這個(gè) b12 部分一直啥都看不出來,真的是毫無規(guī)律可循。但其他部分應(yīng)該還是很好知道規(guī)律的
such as:第 2 塊與第 1 塊做對(duì)比,金額位 b0 差-4,b1 沒有差別,b12 差+1, b15 差-3,剛好錢差 0.04
同理第 3 與第 4 塊的做對(duì)比,金額位 b0 差-8,b1 沒有差別,b12 差+1, b15 差-7,剛好錢差 0.08
那么可知,湊一下:
b0 + b1 + b12-b15 = 某定值
(-4)+(0) +(+1)-(-3)
的話總值是沒有變化的沒有變化。
把這些數(shù)換到 10 進(jìn)制計(jì)算出這個(gè)某定值為:
88(hex)+12(hex)+8(hex)-60(hex) = 66(十進(jìn)制)
所以 b15 的公式就是:b15=b0+b1+b12-66
把公式填進(jìn) M Tools,直接成功完成驗(yàn)證:
但是這個(gè) b12 什么鬼,什么規(guī)律都沒有。。。。。。。。
但后來經(jīng)過自己觀察,這個(gè)可能是隨機(jī)的,從圖上可知每刷一次都遞增一下,從 00 開始,such as:08.09.0A。。。。。。
5. 修改數(shù)據(jù):
到了修改數(shù)據(jù)的地方,這都 8102 年了,提供一個(gè)更快的思路,直接用 M Tools。再充值的地方,長(zhǎng)按有個(gè)定額的選項(xiàng),直接填入即可。
然后就修改成功了,改個(gè)奇數(shù)位試試,
終語
這算是遇到一個(gè)賊拉簡(jiǎn)單的校驗(yàn),甚至連異或檢驗(yàn)都沒有。經(jīng)過多次的計(jì)算校驗(yàn),感覺計(jì)算校驗(yàn)就一條總結(jié):羊毛出在羊身上。
1. 用好 winhex,逆向計(jì)算器
2. 最重要的,校驗(yàn)的奧義:羊毛出在羊身上。就是說,校驗(yàn)位在哪里,你可以通過多看幾個(gè)數(shù)據(jù)的變化來看出。而校驗(yàn)的產(chǎn)生,總是遵循金額位的變化,校驗(yàn)不管咋變,都是金額位數(shù)值通過各種公式組合加計(jì)算出來的。
M Tools 的優(yōu)點(diǎn)在于優(yōu)秀的 gui 界面方便進(jìn)行看出校驗(yàn)方式,填入計(jì)算公式,直接就可以就行數(shù)據(jù)修改。
下一篇: PLC、DCS、FCS三大控
上一篇: 接收機(jī)中的射頻前端結(jié)