當地鐵遇上黑客,會有什么故事發生?
本文的目的是分享地鐵系統的滲透測試思路,而不是成為地鐵非法入侵犯罪的呈堂證據。——愛因斯坦
本文將介紹到的內容包括:
復制已充值的地鐵卡
逆向磁條卡
破解 RFID 卡
使用軟件無線電嗅探敏感信息
使用 FPGA 來暴力破解
攻擊自動售票系統
社會工程
黑客戰車!
注:文中所有內容僅供學習研究之用,切勿用于非法用途,否則你就攤上大事兒了!
零、概述
譯注:波士頓地鐵于 1897 年建成并投入使用。地鐵在英國稱為 Tube,法國人叫 Metro,美國人則說 Subway,但在波士頓是以英文字母”T”字為代表的,地鐵月票也叫 TPass,街道上那大大的T字牌就是地鐵站標志。
壹、物理攻擊
常常能找到本應該鎖好的各種敞開的大門
到處都能發現沒關上的旋轉門控制箱
穿過窗戶還能夠偷拍到工作人員的電腦屏幕
隨處可見隨意放置在未上鎖工具箱里的鑰匙
號稱最先進的監控系統總是無人值守
含有敏感信息的資料可以輕易被游客接觸到
我們可以利用這些資料偽造員工卡
上萬能的x寶(老外喜歡用 ebay)還能買到很多有趣的社工裝備
貳、黑掉磁條卡
1、選擇一款合適的磁條卡讀寫硬件
成本在¥30 塊左右
自制讀卡器
可讀取 3 磁道
制作方法:stripesnoop.sourceforge.net
成本在¥900 塊左右
Spark Fun 電子公司產品
支持 3 磁道、支持低矯頑力(lo-co)
源碼可下載成本¥2000 塊左右
MSR206 或者 MAKStripe
支持 3 磁道、支持高/低矯頑力(hi-co/lo-co)
基于 GPL 協議工作
2、Charlie Ticket
譯注:Charlie Card 和 Charlie Ticket 是 MBTA(地鐵)的交通卡,可以用來在波士頓地區乘坐地鐵、公交以及部分輪渡。兩種交通卡都可以直接在各大地鐵站的售票機購買。
獲取到磁條卡內部數據以后,如果該卡是充值過的,那我們就可以通過復制卡的手段來免費暢游地鐵了!
其實到這一步 light 教授已經覺得挺滿足了,但是腦海里突然浮現出兒時小伙伴鋼鐵俠的英俊面孔:
咳,咳……搖滾精神告訴我,我們不應該止步于此!接下來我們看看如何進一步突破。
3、逆向 Charlie Ticket 磁條卡
說到逆向工程,似乎誰都會兩下,但基于目前的情況我們該如何下手呢?
1、猜測數據中每一段的含義
2、改變單一變量,觀察有什么變化
3、反復多次以上步驟來確認數據含義
4、對相似的、不相似的數據都進行比較
5、忽略恒定不變的區域
6、構建和使用工具輔助
通過分離變量法定位單一變量:
根據變量對數據分組
忽略各組之間全局相同的數據
忽略組內的數據差異
4、偽造一張 Charlie Ticket 磁條卡
對我們最關注的金額數據部分進行修改,并記得修改最后的校驗值
成功刷入
磁條卡逆向工程框架圖
一個磁條卡逆向工程的工具包應該包含:
python 編寫的用于分析磁條卡的庫
集成的 MSR206 讀寫器
幫助組織數據的圖形化界面
美國絕大部分的地鐵售檢票系統來自兩家主要提供商:
Scheidt & Bachmann :他們制作了波士頓T卡,覆蓋舊金山、巴特、長島鐵路、西雅圖 Sound Transit、倫敦 Silverlink 等系統;
Cubic Transportation :他們制作了 NYC MTA 卡,覆蓋紐約、華盛頓、哥倫比亞 WMATA、芝加哥 CTA、上海地鐵等系統。
這些地鐵卡到底能不能被我們破解和逆向,黑客與地鐵究竟還能碰撞出哪些火花?請喝口水繼續閱讀。
叁、攻擊 RFID 卡
1、了解 RFID 卡
典型的 MIFARE 卡特性有:
13. 56MHz 的 RFID 智能卡
端至端專有的“密碼”(Crypto-1)
1K 內存和存儲卡中的唯一標識符
超過 500 萬個標簽使用
Crypto-1 加密算法分析:
Crypto-1 加密算法于 2007 年由弗吉尼亞州大學的 Karsten Nohl 成功逆向
蝕刻并采用高性能的硅片檢查圖像
發現并重建加密部分
在加密和實施過程中找到漏洞
雖然 MIFARE 卡采用了一定的安全機制,但是由于加密強度不足等問題,導致我們依然有機會攻破之。
2、選擇一款合適的讀寫卡硬件
成本在¥300 塊左右
支持 MIFARE RFID 讀取/寫入
源代碼可獲得
用起來有點不好用
成本在¥1300 塊左右
OpenPCD+ OpenPICC
開放式設計的 13.56MHz RFID 讀寫器+模擬器
免費原理圖可用(www.openpcd.org)
成本在¥4200 左右
USRP
支持信號輸入/輸出完全控制
可以結合 GNU 無線電和自定義插件使用
USRP 高清玉照:
卡與讀卡器的通信頻率圖示:
3、GNU 無線電 RFID 工具鏈
RFID 頻率
接收器#1:13.56MHz
接收器#2:12.71MHz
charlie 磁卡與讀卡器的快速傅里葉變換(FFT)算法波形:
帶通濾波器的寬度為 400 kHz,我們將它加入波形圖:
得到 13.56MHz 讀卡器向卡片進行信號傳輸時的波形:
得到 12.71MHz 卡片向讀卡器進行信號傳輸時的波形:
接著經過調制解調、解碼器解碼,我們得到完整的 GNU 無線電 RFID 工具鏈:
4、MIFARE 卡的攻擊
目標:獲得密鑰(可以用來克隆卡)
暴力破解
嗅探握手包并使用 FPGA 破解密鑰。
通過濾波器功能的弱點減少密鑰空間。
可以參考:www.cs.virginia.edu/~kn5f/ Mifare.Cryptanalysis.htm
操縱 PRG 時機
“隨機”挑戰取決于時鐘周期,實際上是非隨機的。
代數攻擊
寫加密-1 作為多元二次方程系統
結合嗅探數據,轉換為 SAT,然后用它解決 SAT-求解
如果嘗試其他方式全都失敗的話,那就暴力破解之!因為 FPGA 暴破是速度最快的解決方案,沒有之一!
微處理器:
通用設備
有限指令集
1-8 并行數
FPGA:(現場可編程門陣列)
專用邏輯
硬件描述
數以百計的并行數
KwickBreak FPGA 暴力破解器流程圖:
(通過解析已知明文來恢復出密鑰)
KwickBreak GUI 軟件:
編寫一個簡單的 XOR 模塊:
執行:
最后只要在 Xilinx ISE 創建一個新的項目,載入的文件,并合成。
完成!
肆、網絡層攻擊
網絡層安全性探索
地鐵站和地鐵辦公室進行現場調查(沒有找到開放的 wifi)
進行無線設備審計
探索無人防守的網絡交換機
發現未上鎖機房中的光纖交換機(連接自動售檢票系統與內部網絡)
社會工程
執行“幻影會議”攻擊:
我們自然的走進地鐵內部辦公室和會議室,物理接觸到內部網絡與計算機設備,整個過程沒有工作人員質疑和詢問……
伍、黑客戰車(WarCart)
打造一款走哪兒黑哪兒的全副武裝的黑客戰車(譯注:light 教授表示這已經踏入了行為藝術的范疇…)
我們打算把它推倒波士頓地鐵總部去大干一番:
戰車還自帶煙霧彈功能:
結果在半路被警察叔叔攔下來了…..
為了避免被警察叔叔當做恐怖分子抓起來,成為第二天報紙的頭條,我們只好各自回家吃飯去。
陸、總結
總結整個地鐵系統滲透過程,內容包括:
滲透物理安全漏洞
逆向工程 CharlieTicket
編寫代碼來分析和偽造 magcards
寫一個工具鏈分析 13.56MHz 的 RFID,使用 USRP+ gnuradio 進行數據傳輸
MIFARE 典型磁卡的攻擊
寫一個暴力破解器并使用 FPGA 破解密鑰
轉換 MQ 為 SAT,然后用它解決 SAT-求解
編寫代碼來讀取和克隆 MIFARE 卡密鑰數據
—— 感謝觀看 ——
本文基于 Defcon2008 議題《Anatomy of a Subway Hack》,編譯: 1ight ,轉載請注明來自 FreeBuf 黑客與極客
來自: www.freebuf.com