RFID之linux下利用PN532對M1卡(飯卡,

 

2014-12-20linux

這篇文章主要是講 linux下的對IC卡(M1卡)的無線hack技術。

設備:硬件方面,PC機一臺,PN532開發板一套。測試

軟件方面:mfoc,mfcuk。

本文用不到mfcuk的,我仍是給你們科普下吧。
原理這些我不講啦,講應用吧。
mfoc,知道卡的一個密碼,以超短期破解其餘全部密碼。
mfcuk,經過隨機數,暴力破解密碼(別認爲是隨機數充當密碼),通常30分鐘內能破解,不能破解的話說明你運氣不夠,換個時間

忍不住仍是說說M1卡吧。
M1卡,通常國內喜歡用1K卡,1K卡里面有16個扇區,每一個扇區有4個塊,每一個塊有16個字節。google

第0塊,第1塊,第2塊都是數據區域。url

第3塊是keyA,控制段,keyB的存儲區域,分別是6個字節,4個字節,6個字節。3d

 

特別的,第0個扇區的第0個塊是比較特殊的,裏面是隻讀的,不可改的,存儲的是廠家的一些信息。指針

(有些卡就是經過這個區域產生隨機密碼而後讓普通的M1空白卡不能複製,由於要複製只能複製除第0扇區第0塊的東西啊。除非有神通常的第0扇區,第0塊可寫的M1卡,樓主有一張哦。)

由於這個無線破解樓主已經在很長一段時間搞了,因此一些軟件的編譯截圖我沒有,在下面先把代碼貼出來吧。

1.由於樓主用的PC和PN532開發板要相連,而PN532用的是UART的串口.code

因此我用了一個USB轉UART的板子,把兩個東西連起來了。blog

而後裝些必要的驅動。

安裝:libpcsclite-dev 和 libusb-dev遊戲

apt-get install libpcsclite-dev libusb-dev圖片

安裝:libccid 和 pcscd

apt-get install libusb-0.1-4 libpcsclite1 libccid pcscd

到googlecode裏面下載libnfc-1.6.0-rc1.tar.gz
而後一條條執行下面命令,搞個sh也能夠。

 

下面這些指令不懂的話補補基礎吧。

tar xzvf libnfc-1.6.0-rc1.tar.gz

  1. cd libnfc-1.6.0-rc1/

  2. autoreconf -vis

  3. ./configure --with-drivers=pn532_uart --enable-serial-autoprobe

  4. make clean

  5. make

  6. make install

  7. ldconfig

  8.  

而後執行下 libnfc 裏面的 nfc-list 試試看(要把卡放在設備上面哦。)

看上面,成功安裝好了。

下面裝mfoc-0.10.3.

先到googlecode下個源碼吧,而後執行以下命令。

tar xzvf mfoc-0.10.3.tar.gz

  1. cd mfoc-0.10.3

  2. ./configure

  3. make

看當作功沒,以下圖:

下面開始破解.執行命令

 

  1. ./mfoc -K -O test.file

  2.  

看見沒,上面一部分的密碼已經 FOUND了,由於卡里面有一些沒用到的區域用了默認密碼.
這個卡的一個默認密碼是 ffffffffffff

(因此你們也可用 ./mfoc -k ffffffffffff -O test.file 這個命令,感興趣的朋友能夠google一下).

不少卡都有這個默認密碼.

下面在用探針探索中,很快就有結果了.

結果出來了

有告終果咱們能夠怎樣?

有兩種行徑.第一,複製卡;第二,修改卡.


複製卡是最簡單的。

由於通常的 M1卡都不檢索第0扇區第0塊的數據.因此複製可行.

 

若是你有一張10元的水卡,校園卡,工卡,或者門禁卡其餘七七八八的卡(反正國內就那樣都基本是1K的M1卡).

你複製到另外一張卡里面能夠,你本身把數據導出來(有密碼不就能夠導出了嗎...).

用完10塊,再把數據寫進卡里面就能夠了...

固然這種是最沒有技術含量的...咱們是要數據分析的.

因此咱們來到了第二種方式:數據分析,修改數據.
若是大家玩過單擊遊戲,用過修改器,做弊器,大家就會知道,咱們分析數據大概的原理,就是看看哪裏變了,刷刷卡,看看哪裏變了.就大概能夠了.

只能說大概,變的數據不必定是咱們的有用數據啊,由於作卡的廠家哪會這麼笨啊,確定會加點冗餘數據來校驗的啊.

固然通常這些校驗的數據都是經過有用的數據的加、與、或、非、異或造成的,CRC貌似比較少.

而後有些是固定冗餘,不用理.

對於上面那個圖.我發現了數據段,那個有密碼的那個扇區的控制塊我就不說了。

那個控制塊的4個字節說明了整個扇區有keyA控制.

要理解更多東西,你們仍是要懂M1的原理的啊.能夠看下M1的文檔哈.

上面那個圖的紅色畫圈圈的區域是數據段
咱們能夠經過修改數據段改變卡的金額值.

樓主確實是成功了....從10幾塊數據變成了99塊.

固然,一切都是測試,不要幹壞事哈.(樓主用的什麼卡你們就不要猜了.)

下面是數據的導入:
命令是

nfc-mfclassic w a test.file test.file

注意,前面那個 test.file 是表明你的含有密鑰的文件,能夠認爲是 mfoc 導出來的文件.

後面那個test.file 是你要寫入的文件.

兩個文件是同樣的,不過表明的意義不一樣.


下面是導入成功的圖片.(get20是我修改後的導出來的文件,至關於text.file修改後的文件)

 

破解到這裏結束吧.
下面給個安裝mfcuk的方法吧.

tar xzvf mfcuk

  1. cd mfcuk

  2. autoreconf -is

  3. ./configure

  4. make

ps:make前修改src/Makefile,將LIBNFC_LIBS的值複製到LIBS後面

忘了提醒你們,那個googlecode由於是開源的,因此不少 mfoc 和 mfcuk 代碼都不徹底正確。

我記得最新版的mfoc和mfcuk(創建在libnfc 1.7 平臺的)好像是在某個c文件裏面漏了個&的,就是指針出錯了,致使編譯不成功.

相關文章
相關標籤/搜索