本文的目的是分享地铁系统的渗透测试思路,而不是成为地铁非法入侵犯罪的呈堂证据。——爱因斯坦 本文将介绍到的内容包括:
注:文中所有内容仅供学习研究之用,切勿用于非法用途,否则你就摊上大事儿了! 零、概述 译注:波士顿地铁于 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 磁条卡 说到逆向工程,似乎谁都会两下,但基于目前的情况我们该如何下手呢?
通过分离变量法定位单一变量: 根据变量对数据分组 忽略各组之间全局相同的数据 忽略组内的数据差异 4、伪造一张 Charlie Ticket 磁条卡 对我们最关注的金额数据部分进行修改,并记得修改最后的校验值 成功刷入 磁条卡逆向工程框架图 一个磁条卡逆向工程的工具包应该包含:
美国绝大部分的地铁售检票系统来自两家主要提供商:
这些地铁卡到底能不能被我们破解和逆向,黑客与地铁究竟还能碰撞出哪些火花?请喝口水继续阅读。 叁、攻击 RFID 卡 1、了解 RFID 卡 典型的 MIFARE 卡特性有:
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 教授表示这已经踏入了行为艺术的范畴…) 我们打算把它推倒波士顿地铁总部去大干一番: 战车还自带烟雾弹功能: 结果在半路被警察叔叔拦下来了….. 为了避免被警察叔叔当做恐怖分子抓起来,成为第二天报纸的头条,我们只好各自回家吃饭去。 陆、总结 总结整个地铁系统渗透过程,内容包括: 稿源:www.freebuf.com |