初学RFID-破解学校水卡
注:(本文只作技術研究之用,請勿用于非法用途,否則后果自負!!)
基本知識:
Mifare Classic card提供1k-4k的容量,我們經常見到的是Mifare Classic 1k(S50),也就是所謂的M1卡。M1卡有從0到15共16個扇區,每個扇區配備了從0到3共4個段,每個段可以保存16字節的內容,反正從0開始數就對了(和數組下標為0開始一樣)
每個扇區的第4段呢是用來保存KeyA,KeyB和控制位的,每張卡還有一個唯一標識的UID號
這種卡類的攻擊方式大概分為這么幾種
1)暴力破解
爆破對于M1卡的破解來說比較有效,因為M1卡是被動卡,需要讀卡器來供能,切斷供能后卡的臨時數據就丟失了,也就是說不會存在輸入過多錯誤密碼后造成的鎖死之類的情況
FFFFFFFFFFFF、A0B0C0D0E0F0等等都是M1白卡的默認密碼,所以當我們使用mfoc這樣的工具來爆破的時候基本上都是用這些默認密碼來填充剩余扇區的密碼
2)重放攻擊
剛剛我們說了M1卡是被動卡,當它被供能的時候會產生隨機數列,切斷供能后數據不會保存,再次供能又會產生一模一樣的數列,然后就可以控制切斷,再次供能的時間計算出這個數列,進行重放攻擊來達到修改數據的目的
3)克隆卡片(卡復制)
M1卡的扇區可以保存數據,所以大部分的卡片會選擇加密扇區后保存數據,我們可以用 uid卡來進行復制,每張M1卡在0扇區第1段都有一個唯一標識,而且是保護無法修改的,uid 卡就是沒有設定0扇區保護的卡,所以你可以隨意的修改你想要的uid,這樣我們就可以克隆出一張連uid都相同的卡片了。(但是要注意不要把00扇區弄壞,之前測試的時候就未知原因寫壞了00扇區無法讀入了)
4)嗅探攻擊
這里要用到PM3這個神器,在卡和機器數據交換的時候嗅探數據,進行攻擊,利用XOR算key工具就可以把扇區的密鑰計算出來(我在淘寶看了看,1300多,窮屌絲根本沒錢買呢)
必須準備好的東西:
ACR122u,mfoc,libnfc,fixdump
在進行破解工作之前,我們要為電腦搭建相應的環境,大家需要在電腦上安裝.NET Farmwork 4以及Java,請自行上網下載安裝,后面用到的軟件依賴這兩個運行ku。
安裝完運行庫之后就需要安裝ACR122U的驅動了(驅動下載(百度云) ,SDK下載(百度云) ),為了方便后續的開發,我將SDK也一并安裝。
這里我用到了M1卡服務程序(至于這個軟件我就不上傳了,百度都有的):
稍等片刻后就發現上下各16個勾勾都打上了,說明成功爆破了,成功后會在當前目錄下生成一個dump文件,這樣,這張卡的數據就被完全dump下來了,得到dumpfile1但是只有1k的大小,在win下操作的時候需要用到一個fixdump的工具來填充剩余部分
fixdump dumpfile1
即可修復,大小為4k,然后我們去消費一下這張卡(讓你要修改的區域的數據改變)
再次dump數據dumpfile2并修復
fixdump dumpfile2
就此,我們有了兩個樣本,然后做hex diff,linux下直接用diff,win下可以使用hexcmp2
(圖片更正下:640=fa00,但是卡里存儲順序卻是00fa反序)
開始寫入數據:
可以先通過回車exe來了解下指令信息:
使用libnfc來寫入數據
就這樣,水卡數據成功達到640。
本文結合了兩位大牛的文章結合實踐并撰寫出來,文章并沒有解決后患問題,比如學校查賬問題,請謹慎實踐!
end!
……那個
要軟件的同學留言QQ號,留言也可以
總結
以上是生活随笔為你收集整理的初学RFID-破解学校水卡的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt调用ffmpeg录制屏幕
- 下一篇: 抽象代数基础教程(a first cou