文中提及的部分技術(shù)可能帶有一定攻擊性蜘澜,僅供安全學(xué)習(xí)和教學(xué)用途,禁止非法使用竣灌!
0×00 前言
我租住的杭州一個(gè)老小區(qū)一年前出現(xiàn)了所謂的“出租房殺人事件”,事件過后民警叔叔們給小區(qū)的每個(gè)單元都裝上了門禁家浇,所有住戶都需要在物業(yè)處登記,物業(yè)的工作人員會(huì)讓你提供身份證或者公交卡用來注冊碴裙,注冊之后就可以刷卡進(jìn)門了钢悲。
但由于某些原因,我并不想去登記注冊一張門禁卡舔株,正好手頭有一部nexus5莺琳,眾所周知nexus5是有nfc功能的,我便想能不能用nexus5的nfc功能偽造一張門禁卡呢? 一番嘗試之后载慈,就有了下文的方法惭等。 (從來沒接觸過無線安全,對Proxmark3办铡,acr122u 等設(shè)備也是一竅不通辞做,各位大牛見笑了)
0×01分析
由于身份證,公交卡等很多卡都可以用來當(dāng)門禁卡寡具,那基本上有九成把握這個(gè)門禁只是簡單讀取卡的id秤茅,并不會(huì)去解密里面的內(nèi)容,只要簡單模擬一個(gè)相同id的卡就可以刷開門禁童叠。
0×02“采樣”
我們下載一款名為“TagInfo”的android應(yīng)用框喳,用它來讀取一下現(xiàn)在可以刷開門禁的卡信息。(跟同樓的妹子借的)
如下圖:
卡的id為:D2:69:76:5B
接著我們找另一臺(tái)nexus5看一下手機(jī)原來的id,掃描出來這臺(tái)nexus5的id是在不停變化的五垮,如下圖:
原來出于安全考慮乍惊,android手機(jī)的id是一個(gè)4個(gè)字節(jié)長度的隨機(jī)id,每次連接都會(huì)變化放仗,并且都以 “0×80”開頭润绎。
android官方并沒有提供任何的api可以指定修改nfc的id,但是我們可以用直接修改配置文件的方式來實(shí)現(xiàn),前提當(dāng)然是手機(jī)必須root過了匙监。
0×03Just Do IT
1、到手機(jī)的 /etc/ 目錄找一個(gè)文件名為libnfc-brcm-20791b05.conf小作,默認(rèn)情況下亭姥,文件中NFA_DM_START_UP_CFG 的配置項(xiàng)是這樣的值:
{45:CB:01:01:A5:01:01:CA:17:00:00:00:00:06:00:00:00:00:0F:00:00:00:00:E0:67:35:00:14:01:00:00:10:B5:03:01:02:FF:80:01:01:C9:03:03:0F:AB:5B:01:00:B2:04:E8:03:00:00:CF:02:02:08:B1:06:00:20:00:00:00:12:C2:02:00:C8}
2、通過修改這個(gè)值就可以改變id顾稀。把該文件下載到電腦上达罗,先在最后面增加一個(gè)0×33作為標(biāo)志位,接著接上要指定的id長度静秆,在當(dāng)前的情況下就是0×04,最后在后面接上要制定的id:“0xD2,0×69,0×76,0x5B”粮揉,接著改變最首的數(shù)字,加上我們總共增加的字符串長度抚笔,這里我們需要加上6扶认,所以最后配置項(xiàng)變成:
{4B:CB:01:01:A5:01:01:CA:17:00:00:00:00:06:00:00:00:00:0F:00:00:00:00:E0:67:35:00:14:01:00:00:10:B5:03:01:02:FF:80:01:01:C9:03:03:0F:AB:5B:01:00:B2:04:E8:03:00:00:CF:02:02:08:B1:06:00:20:00:00:00:12:C2:02:00:C8:33:04:D2:69:76:5B}
3、采用adb的方式覆蓋系統(tǒng)中原來的文件殊橙,然后重啟
adb?root
adb?remount
adb?push?libnfc-brcm-20791b05.conf/etc/adb?reboot
重啟之后我們發(fā)現(xiàn)辐宾,這臺(tái)nexus5的id已經(jīng)被改成了我們想要的。
拿著修改好的nexus5去試試看膨蛮?記得必須在喚醒屏幕的情況下nfc才有效叠纹。