当地铁遇上黑客

  • A+
所属分类:安全闲碎

本文的目的是分享地铁系统的渗透测试思路,而不是成为地铁非法入侵犯罪的呈堂证据。


——爱因斯坦


本文将介绍到的内容包括:

  • 复制已充值的地铁卡

  • 逆向磁条卡

  • 破解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教授表示这已经踏入了行为艺术的范畴...)

当地铁遇上黑客


我们打算把它推倒波士顿地铁总部去大干一番:

当地铁遇上黑客


战车还自带烟雾弹功能:

当地铁遇上黑客


结果在半路被警察叔叔拦下来了.....


为了避免被警察叔叔当做恐怖分子抓起来,成为第二天报纸的头条,我们只好各自回家吃饭去。


陆、总结

总结整个地铁系统渗透过程,内容包括:

  1. 渗透物理安全漏洞

  2. 逆向工程 CharlieTicket

  3. 编写代码来分析和伪造 magcards

  4. 写一个工具链分析13.56MHz的RFID,使用USRP+ gnuradio进行数据传输

  5. MIFARE 典型磁卡的攻击

  6. 写一个暴力破解器并使用FPGA破解密钥

  7. 转换MQ为SAT,然后用它解决SAT-求解

  8. 编写代码来读取和克隆MIFARE卡密钥数据



—— 感谢观看 ——


当地铁遇上黑客




注:本文基于Defcon2008议题《Anatomy of a Subway Hack》(作者:Russell Ryan、Zack Anderson、Alessandro Chiesa)翻译和整理

翻译作者:whitecell-club.org  light

文章转载请务必注明作者与出处!


当地铁遇上黑客

本文始发于微信公众号(WhiteCellClub):当地铁遇上黑客

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: