当地铁遇上黑客,会有什么故事发生?
本文的目的是分享地铁系统的渗透测试思路,而不是成为地铁非法入侵犯罪的呈堂证据。——爱因斯坦
本文将介绍到的内容包括:
复制已充值的地铁卡
逆向磁条卡
破解 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