低成本安全硬件(二) | RFID on PN532

引言

鉴于硬件安全对于大多数新人是较少接触的,而这方面又非常吸引我,但是部分专业安全研究设备较高的价格使人望而却步。在该系列中,笔者希望对此感兴趣的读者在花费较少金钱的情况下体会到硬件安全的魅力所在。

本系列计划分成四个部分:BadUSB on Arduino; RFID on PN532; GSM on Motorola C118 ; SDR on RTL2832U(电视棒)。

背景

早在2007年,Mifare M1 RFID卡片就被研究人员破解了出来。NXP公司在M1卡上使用了未公开的加密算法,然而密码学史上的种种教训都表明了“不公开”与“安全的”并没有什么联系。

研究人员剖析了卡片的门电路结构从而逆向了加密的算法并发现了漏洞。M1卡的结构如图所示,其拥有16个扇区,每个扇区有4个块,每个扇区的第一块储存着扇区的密钥。

目前针对Mifare卡片的攻击主要有三种方法:

Nested攻击

简单地说,就是默认密码攻击。

由于M1卡片有16个扇区,在绝大多数情况下16个扇区不一定会同时使用到。于是根据厂商在出厂时预设的密码可能碰撞出其中某一个扇区的密码。

由于无源的M1卡每一次刷卡上电的时候,密钥交换采用的随机数都是“有规律”的,用已经碰撞出的某一扇区的密钥去试探其它扇区,在此时根据随机数的规律即可“套”出密码

Darkside攻击

简单地说就是暴力破解,即爆破出某一个扇区的密钥,之后再使用Nested攻击就能Dump出整张卡。

而与通常意义上的暴力破解不同的是,由于M1卡片的认证机制,其会泄露部分认证信息,从而大大加快爆破的进度。

电波嗅探

顾名思义,即在正常刷卡的时候嗅探卡片与读卡器交换的数据,从而逆向密码。

这里可以参考2014年BlackHat的PDF:

https://www.blackhat.com/docs/sp-14/materials/arsenal/sp-14-Almeida-Hacking-MIFARE-Classic-Cards-Slides.pdf

以及相关论文:

http://www.cs.ru.nl/~flaviog/publications/Attack.MIFARE.pdf

常见硬件介绍

不同于之前BadUSB,在这方面可供我们选择的并不多。

旗舰级All-in-one的Proxmark3

国外的开源硬件,由FPGA驱动。性能十分强大,集嗅探、读取、克隆于一体,玩得了高频卡艹得动低频卡。可以插电脑可以接电源。当然其价格也是十分的感人。

不过某宝上近期出现了400多元的V2版本,也不知道是如何做到将价格放到那么低的————国外的V1版本也要300多,只不过人家的是美刀。

伪装性:★★

易用性:★★★★

社区支持:★★★★

项目主页

http://www.proxmark.org

国外最近出现的ChameleonMini

如果不是因为要写此文特意去搜集了许多相关资料我还真不知道这玩意。这是德国的一个众筹项目,其和PM3差不多,拥有伪装卡的功能,从外形上看厚度与真正的卡片差不多,但是价格在国外比PM3要友好许多。

伪装性:★★★★

易用性:★★★

社区支持:★★★

项目主页

https://github.com/emsec/ChameleonMini/wiki

最流行的读卡器ACR122

反正就是很流行,大抵是因为网络上流传了非常强大的GUI改卡读卡复制卡软件吧!某宝价格一百多,但还是比我们今天所用到的硬件高出了那么三四倍。

伪装性:★

易用性:★★★★

社区支持:★★

PN532

根据上篇的经验,之前介绍的那坨东西肯定是不会用到的———因为穷啊!本品某宝价格在30至50元。

本篇的主角是PN532,我将其与树莓派连接使用。当然没有树莓派也没关系(买一个就完了),也可以使用UART转USB的接口连接电脑使用。接下来的篇幅将从树莓派的构建开始详细讲解其玩法。

系统搭建

以主机为windows系统为例,linux自行解决。

系统准备

去https://www.raspberrypi.org/上下载最新的Raspbian Jessie 系统,笔者下载时的发布日是2017-02-16。

使用win32diskimager将解压后的img镜像文件烧写到sd卡上

注意新版本的Raspbian是默认不开启ssh的,所以我们需要在boot分区下创建一个名为ssh(小写!!!!)的文件

ssh进去,用户名pi,密码raspberry

系统配置

执行sudo raspi-config进行配置. 选择5-Interface Options,启用SPI、I2C,禁用Serial 选择7-Advanced Options,1-Expand Filesystem 扩展分区

安装依赖

依赖:

autoconflibusb-devlibtoollibpcsclite-devsudo apt-get updatesudo apt-get upgradesudo apt-get install autoconf libusb-dev libtool libpcsclite-dev

工具安装

部分参考:https://firefart.at/post/how-to-crack-mifare-classic-cards/

树莓派与PN532连接

笔者用的是树莓派3,但是GPIO口的区别不大,与PN532的连接方式为:

04 <-> VCC06 <-> GND08 <-> RXD10 <-> TXD

libnfc

顾名思义,nfc库。

官方github:https://github.com/nfc-tools/libnfc

wget https://github.com/nfc-tools/libnfc/releases/download/libnfc-1.7.1/libnfc-1.7.1.tar.bz2tar -jxvf libnfc-1.7.1.tar.bz2cd libnfc-1.7.1autoreconf -vis./configure --with-drivers=all --sysconfdir=/etc --prefix=/usrmakesudo make installsudo mkdir /etc/nfcsudo mkdir /etc/nfc/devices.d

由于我们使用UART接口直接和PN532在树莓派上连接,还需要

sudo cp contrib/libnfc/pn532_uart_on_rpi.conf.sample /etc/nfc/devices.d/pn532_uart_on_rpi.conf

此时在不放卡与放卡的时候分别执行nfc-list,输出如下:

mfoc

mfoc即上述nested攻击的实现。

官方github:https://github.com/nfc-tools/mfoc

git clone https://github.com/nfc-tools/mfoc.gitcd mfoc/autoreconf -vis./configuremakesudo make install

点击阅读原文查看mfoc用法。简单地执行mfoc -O out.mfd,会dump出当前的卡片信息。【详情点击阅读原文】

mfcuk

官方github:https://github.com/nfc-tools/mfcuk

mfcuk(不是mfuck!!!)即上述darkside攻击的实现。

git clone https://github.com/nfc-tools/mfcuk.gitcd mfcukautoreconf -vis./configuremakesudo make install

用法还是点击阅读原文查看哦,鉴于篇幅关系,这里不详细介绍了。

写卡

直接使用nfc-mfclassic即可对Mifare classic系列卡片写入。主要有M1卡(S50)和4K卡(S70)。这里要额外说明的是,M1卡的UID区域是只读不可写的,然而一些商家不符合规范(中国的牛B商家)吧0扇区的UID弄成了可写的,用W可以强行写入。

A|B代表用密钥A或者B写入(均可),这里牵扯到Mifare协议的东西,读者可以自行查阅相关资料。

结语

本文所含内容具有一定攻击性,切勿用于非法用途!弄出什么新闻也别找我负责!

关于PN532

由于查到PN532是支持Ultralight卡片的,但是笔者的PN532始终无法读取该类卡片,于是到elechouse的Github Issue中询问了关于PN532的问题——他们表面他们自己生产的PN532可以读几乎符合NFC协议的一切卡片,但是万恶的某宝在山寨的时候似乎阉割了一些功能,但是笔者测试1k和4k卡片都是可用的。

在手机上的奇技淫巧

在带有NFC功能的Android手机上有一款名为Mifare Classic Tools的软件,可以进行读写卡,dump的操作————但是必须用对密钥哦!可以在树莓派上破解之后把密钥添加进去,然后就能用手机进行读写卡了。

至于用途,你懂的。

GGPLY链接:https://play.google.com/store/apps/details?id=de.syss.MifareClassicTool&hl=zh 自备梯子

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2017-03-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

安全科普:详解流量劫持的形成原因

作者 gethostbyname 流量劫持,这种古老的攻击沉寂了一段时间后,最近又开始闹的沸沸扬扬。众多知名品牌的路由器相继爆出存在安全漏洞,引来国内媒体纷纷报...

3917
来自专栏漏斗社区

看!我手里有个Email收集神器

众所周知,在工作中,大家用到最多的便是Email来传输工作内容,因此,像一些VPN信息、服务器账号密码、公司人员清单等敏感数据,均会通过Email进行传输,并且...

1933
来自专栏农夫安全

啥?Metasploit里面也有菜刀~~~

利用msf破解一句话木马 0x01 前言 本文为智者楚轩原创文章 事情要从下午说起,同学突然叫我说,xxx,我扫到一个老师在电脑上自己搭建的服务器,上面有他...

5029
来自专栏FreeBuf

泄露数据 | 黑客论坛Nulled.IO用户都用哪些密码?

2013年,国外老牌技术新闻和信息分享网站Ars Technica做了一个有趣的实验。他们从互联网下载了一份被黑客公布在网上的社工数据,包含16000个用户的账...

2779
来自专栏智能大石头

MF前传——探索者二号简介

    因为探索者一号供不应求,远超预期,并且我们自己设计制造的成本太高,所以没有再次生产。而是选择较高性价比的第三方STM32开发板作为MF学习板,是为探索者...

990
来自专栏知无涯

Ubuntu 15.10 中文桌面版/服务器正式版下载 - 华丽免费易于入门的 Linux 操作系统

55810
来自专栏小樱的经验随笔

网站渗透测试原理及详细过程

网站渗透测试原理及详细过程 零、前言 渗透测试在未得到被测试方授权之前依据某些地区法律规定是违法行为。 这里我们提供的所有渗透测试方法均为(假设为)合法的评估...

7309
来自专栏工科狗和生物喵

总算搞定了域名(好吧,我一开始忘了)

正文之前 我是从大二下学期开始入程序员这个坑的。那个时候恰逢遇到了我计算机方面的启蒙学长,然后他带着我走了一段很长的路,其中就包括网站建设这个方面。我前端后端都...

69513
来自专栏程序员的SOD蜜

用惯了ORM,居然不会写分页SQL了

    最近准备找新工作,于是下午请了假,去上地软件园一家国内大型软件外包公司去面试架构师,从国贸到面试地点,坐地铁足足走了一个半小时,终于到了前台,联系了HR...

3096
来自专栏FreeBuf

钓鱼新套路:自动检查受害者输入的帐号密码是否真实

美国网络安全服务商Proofpoint近日发现了一种新的针对PayPal用户的钓鱼套路,攻击者在钓鱼过程中利用身份验证机制检查用户提交的账户信息是否真实,以寻求...

2175

扫码关注云+社区

领取腾讯云代金券