Flipper Zero 宇宙最強攻略:30 天帶你從入門到入坑 Day12 - 什麼!?連 NFC 都可以 RickRoll 你隔壁的同學!?

kazma 成大資安社 創辦人/社長

前言

我們昨天提到 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 的通知,問我們要不要前往,如下圖所示:
rickroll
當然點下去就會被 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 的類型,參考如下:

Protocol (SOURCE)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
------    ----------
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 的資料如下:

1
2
3
4
5
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 換成:

1
2
3
4
5
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,直接碰一下他手機就可以跳出連結了,超級方便。
明天我也不知道會介紹什麼,各位敬請期待!

  • Title: Flipper Zero 宇宙最強攻略:30 天帶你從入門到入坑 Day12 - 什麼!?連 NFC 都可以 RickRoll 你隔壁的同學!?
  • Author: kazma
  • Created at : 2024-09-26 23:41:51
  • Updated at : 2024-09-26 23:42:25
  • Link: https://kazma.tw/2024/09/26/Flipper-Zero-宇宙最強攻略:30-天帶你從入門到入坑-Day12-什麼!?連-NFC-都可以-RickRoll-你隔壁的同學!?/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments
On this page
Flipper Zero 宇宙最強攻略:30 天帶你從入門到入坑 Day12 - 什麼!?連 NFC 都可以 RickRoll 你隔壁的同學!?