iT邦幫忙

2024 iThome 鐵人賽

DAY 12
0
Security

Flipper Zero 宇宙最強攻略:30 天帶你從入門到入坑系列 第 12

Day12 - 什麼!?連 NFC 都可以 RickRoll 你隔壁的同學!?

  • 分享至 

  • xImage
  •  

前言

我們昨天提到 NFC 的一些攻擊手法,今天則會跟各位帶來我自己很常用到的 NFC 功能,可惜前幾天社團博覽會的時候還沒有想到,否則在宣傳上應該會方便不少,究竟是什麼功能呢,讓我們看下去。

資安倫理宣導

請注意,透過 Flipper Zero 學習的資訊技術與知識,目的在於提升個人的技術能力和資安意識。我們強烈呼籲大家,絕對不要使用所學知識從事任何違法行為。您的合法使用是我們的期望,也是您自身責任的一部分。

Creating NFC cards

create
圖片來源:https://docs.flipper.net/nfc/add-manually#h2VTu
我們有兩種方式可以創造虛擬的 NFC 卡:

  1. 從標準卡片類型清單選擇一種並且會產生隨機的 UID
  2. 手動創建 type A 的卡片,包含手動輸入 UID, ATQA, and SAK 等值,但通常只能通過那些只會驗證 UID 的系統。
    我們分別來看一下怎麼介紹

Generating a specific NFC card type

首先這部分支援的卡片如下:

  • MIFARE Ultralight®
  • MIFARE Ultralight® EV1 11
  • MIFARE Ultralight® EV1 H11
  • MIFARE Ultralight® EV1 21
  • MIFARE Ultralight® EV1 H21
  • NTAG® 203
  • NTAG® 213
  • NTAG® 215
  • NTAG® 216
  • NTAG® I2C 1K
  • NTAG® I2C 2K
  • NTAG® I2C Plus 1K
  • NTAG® I2C Plus 2K
  • MIFARE Mini®
  • MIFARE Classic® 1K with a 4-byte UID
  • MIFARE Classic® 1K with a 7-byte UID
  • MIFARE Classic® 4K with a 4-byte UID
  • MIFARE Classic® 4K with a 7-byte UID
    如果我們想要創建手機可以掃的 NFC 的話可以選 NTAG 216 大多時候是可以 work 的,創建步驟如下:
  1. Main Menu -> NFC -> Add manually
  2. 選種類
  3. 接著它會顯示創建的卡片,我們接著選 More
  4. 可以看到儲存以及其他選項,其中 Momentum 在這邊也是可以改 UID 的

Creating an NFC card manually

  1. Main Menu -> NFC -> Add manually
  2. 根據需要的 UID 長度來決定要選下面哪一種:
  • NFC-A 7-byte UID
  • NFC-A 4-byte UID
  1. 然後輸入 SAK, ATQA, UID, name

NFC RickRoll

學會了上面的功能以後我們可以來玩一下 NFC RickRoll,如果是 Momentum 的話是有內建 RickRoll.nfc 這個檔案的。
如果沒有的話可以到 https://github.com/UberGuidoZ/Flipper/blob/main/NFC/Fun_Files/RickRoll.nfc 來下載,這裡也有其他有趣的檔案。
我們把它模擬起來拿去感應手機,就會跳 NFC Tag 的通知,問我們要不要前往,如下圖所示:
https://ithelp.ithome.com.tw/upload/images/20240926/20168875O7jGZYYar1.jpg
當然點下去就會被 RickRoll 啦,不過除了 RickRoll 你隔壁同學以外,我還想到一些實用的使用場景像是:

  • 給別人我的 linktree、blog、cv
  • 或是前幾天社博,就會讓大家加 DC IG 等

那我們就來研究一下怎麼客製出自己的 NFC 檔案。
我們到這份 Repo 的 README 會看到他有說明:
https://github.com/UberGuidoZ/Flipper/blob/main/NFC/Fun_Files/ReadMe.md

他拿 RickRoll.nfc 來舉例,其中 Block 0 的解釋如下圖:
block
圖片來源:https://github.com/UberGuidoZ/Flipper/blob/main/NFC/Fun_Files/ReadMe.md
接著 pages 1 到 6 感覺是這個檔案的 header 的一部份,其中第六個 page (0x04) 代表的是 URL 的類型,參考如下:

------    ----------
0x00     No prepending is done ... the entire URI is contained in the URI Field
0x01     http://www.
0x02     https://www.
0x03     http://
0x04     https://
0x05     tel:
0x06     mailto:
0x07     ftp://anonymous:anonymous@
0x08     ftp://ftp.
0x09     ftps://
0x0A     sftp://
0x0B     smb://
0x0C     nfs://
0x0D     ftp://
0x0E     dav://
0x0F     news:
0x10     telnet://
0x11     imap:
0x12     rtsp://
0x13     urn:
0x14     pop:
0x15     sip:
0x16     sips:
0x17     tftp:
0x18     btspp://
0x19     btl2cap://
0x1A     btgoep://
0x1B     tcpobex://
0x1C     irdaobex://
0x1D     file://
0x1E     urn:epc:id:
0x1F     urn:epc:tag:
0x20     urn:epc:pat:
0x21     urn:epc:raw:
0x22     urn:epc:
0x23     urn:nfc:

接著我們會看到 page 7 - 11 的資料如下:

Page 7: 79 6F 75 74
Page 8: 75 2E 62 65
Page 9: 2F 64 51 77
Page 10: 34 77 39 57
Page 11: 67 58 63 51

其中 79 6F 75 74 75 2E 62 65 2F 64 51 77 34 77 39 57 67 58 63 51 其實就只是 youtu.be/dQw4w9WgXcQ 的 ascii,其中第 12 個 page 是 FE 00 00 00 代表的是資料終止,我們可以透過 TinyURL 來協助我們把 url 的長度弄得剛剛好,舉例像是 https://kazma.tw 轉換後會變成 tinyurl.com/m47f6f9a 轉換成對應的 ascii 會是 74 69 6e 79 75 72 6c 2e 63 6f 6d 2f 6d 34 37 66 36 66 39 61,我們複製 RickRoll.nfc 的檔案後把 page 7 - 11 換成:

Page 7: 74 69 6E 79
Page 8: 75 72 6C 2E
Page 9: 63 6F 6D 2F
Page 10: 6D 34 37 66
Page 11: 36 66 39 61

模擬後就可以看到手機可以跳轉到我的部落格了,之後也會把常用的連結都存進去~

按讚訂閱收藏小鈴噹叮叮叮

今天我們學到 Flipper 也可以模擬出一張虛擬的 NFC 卡片,不只可以 RickRoll 你旁邊的同學,也可以把我們平時常用的連結存在 NFC 裡面,之後就不用麻煩別人輸入一堆 URL,直接碰一下他手機就可以跳出連結了,超級方便。
明天我也不知道會介紹什麼,各位敬請期待!


上一篇
Day11 - 誰說要卡才能進?MFKey32 攻擊讓你無卡也能破解門禁!
系列文
Flipper Zero 宇宙最強攻略:30 天帶你從入門到入坑12
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言