当地铁遇上黑客,会有什么故事发生?

jopen 8年前

当地铁遇上黑客,会有什么故事发生?

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

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

复制已充值的地铁卡

逆向磁条卡

破解 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