Sourcell Xu@海特实验室
bluescan 是一个由安恒信息 海特实验室安全研究员维护的一个开源项目
先前的蓝牙扫描工具都是零零散散,而且年久失修对吗?于是我们有了这个基于现代 Python 3 开发的强大蓝牙扫描器 —— bluescan。
在测试新的蓝牙目标时,该扫描器可以帮助我们做好情报收集工作,比如:
BR 设备扫描
LE 设备扫描
SDP 服务扫描
LMP 特性扫描
GATT 服务扫描
漏洞扫描 (demo)
bluescan 在底层基于 Linux 官方的 BlueZ 蓝牙协议栈。如下依赖的包需要被安装:
sudo apt install libglib2.0-dev libbluetooth-dev
当在 Linux 虚拟机中使用该工具时,建议让虚拟机独占一个搭载博通或 CSR 芯片的 USB 蓝牙适配器,比如
Ostran 奥视通 USB 蓝牙适配器 OST-105 CSR 8150 v4.0 https://item.taobao.com/item.htm?spm=a230r.1.14.14.21b6705fm5gjj3&id=38948169460&ns=1&abbucket=6#detail
如果你想尝试下漏洞扫描 (demo),请参考
ojasookert/CVE-2017-0785 https://github.com/ojasookert/CVE-2017-0785
的 README.md
来解决依赖问题。
最新的 bluescan 会被上传到 PyPI 上,因此执行如下命令即可安装 bluescan:
sudo pip3 install bluescan
$ bluescan -h
bluescan v0.1.1
A powerful Bluetooth scanner.
Author:SourcellXufrom DBAPP SecurityHatLab.
License: GPL-3.0
Usage:
bluescan (-h |--help)
bluescan (-v |--version)
bluescan [-i <hcix>]-m br [--inquiry-len=<n>]
bluescan [-i <hcix>]-m lmp BD_ADDR
bluescan [-i <hcix>]-m sdp BD_ADDR
bluescan [-i <hcix>]-m le [--timeout=<sec>][--le-scan-type=<type>][--sort=<key>]
bluescan [-i <hcix>]-m gatt [--include-descriptor]--addr-type=<type> BD_ADDR
bluescan [-i <hcix>]-m vuln --addr-type=br BD_ADDR
Arguments:
BD_ADDR TargetBluetooth device address
Options:
-h,--help Displaythis help
-v,--version Show the version
-i <hcix> HCI device for scan [default: hci0]
-m <mode>Scan mode, support BR, LE, LMP, SDP, GATT and vuln
--inquiry-len=<n>Inquiry_Length parameter of HCI_Inquiry command [default:8]
--timeout=<sec>Duration of LE scan [default:10]
--le-scan-type=<type>Activeor passive scan for LE scan [default: active]
--sort=<key>Sort the discovered devices by key, only support RSSI now [default: rssi]
--include-descriptor Fetch descriptor information
--addr-type=<type>Public, random or BR
-m br
经典蓝牙设备可能使用三种技术:BR (Basic Rate)、EDR (Enhanced Data Rate) 以及 AMP (Alternate MAC/PHY)。由于它们都属于 Basic Rate system,因此在扫描这些设备时统称为 BR 设备扫描:
如上图,通过 BR 设备扫描,我们可以拿到周围经典蓝牙设备的地址、名称、类型以及 RSSI。
-m le
蓝牙除了 Basic Rate system 就是 Low Energy (LE) system 了。当扫描周围的低功耗蓝牙设备时,称为 LE 设备扫描:
如上图,通过 LE 扫描,我们可以拿到周围低功耗蓝牙设备的地址、地址类型、连接状态、RSSI 以及 GAP 数据。
-m sdp
经典蓝牙设备通过 SDP 告诉外界自己开放的服务。通过 SDP 扫描,我们可以拿到指定经典蓝牙设备的 service record:
之后可以尝试连接这些 service,做进一步的安全测试。
-m lmp
探测经典蓝牙设备的 LMP 特性,可以让我们判断目标设备底层的安全特性:
-m gatt
低功耗蓝牙设备通过 GATT 告诉外界自己开放的服务。通过 GATT 扫描,我们可以拿到指定低功耗蓝牙设备的 GATT 数据。之后可以尝试读写这些 GATT 数据,做进一步的安全测试:
-m vul
(demo)漏洞扫描还处于 demo 阶段,目前仅支持 CVE-2017-0785:
$ sudo bluescan -m vuln --addr-type=br ??:??:??:??:??:??
......
CVE-2017-0785
GitHub DasSecurity-Labs/bluescan https://github.com/DasSecurity-Labs/bluescan
HatLab知识星球
关于我们
人才招聘
一、物联网安全研究员(硬件安全方向)
工作地点:
1.杭州;
岗位职责:
1.嵌入式方向的安全漏洞挖掘;
2.嵌入式系统硬件软件设计与研发。
任职要求:
1.熟练使用C语言,可规范使用指针,结构体,联合体;
2.熟练使用Linux操作系统,理解Makefile原理并可编写Makefile文件;
3.了解数字电路原理,具有较扎实的计算机系统结构知识,理解操作系统原理;
4.了解WEB或PWN方向的漏洞挖掘过程,会使用相关工具如Zap、IDA等,会自行编写漏洞利用工具。
加分项:
1.具有网络安全公司实习经验;
2.具有网络安全赛事经验;
3.有设计电路板原理图和四层PCB布局经验;
4.熟练焊接0402,0201,QFN,BGA等元器件封装;
5.有AVR,ARM,MIPS,Xtensa等内核的MCU/SoC开发经验;
6.向知名平台提交过物联网方向的漏洞报告。
二、物联网安全研究员(固件安全方向)
工作地点:
1.杭州;
岗位职责:
1. 物联网通用协议、组件、操作系统漏洞挖掘与漏洞复现;
2. 物联网设备漏洞挖掘与漏洞复现;
3. 参与创新物联网安全研究项目;
任职要求:
1.具有二进制漏洞挖掘经验,熟悉ARM、MIPS等其他架构的漏洞利用技巧;
2.熟练掌握gdb、IDA等工具的使用;
3.具有一定的硬件基础和动手能力,掌握常见的嵌入式设备固件提取及解包的方法;
4.至少掌握一门编程语言,如C/C++/Perl/Python/PHP/Go/Java等。
加分项:
1.具有知名物联网设备/网络设备漏洞挖掘成果证明;
2.参加CTF比赛并获奖;
3.参与GeekPWN、HackPWN等智能设备破解大赛并取得成绩。
三、物联网安全研究员(无线电安全方向)
工作地点:
1.杭州;
岗位职责:
1. 无线通信协议的通用漏洞挖掘;
2. 无线通信应用系统的漏洞挖掘,如智能设备等。
任职要求:
1. 掌握无线通信基本原理及数字信号处理理论,熟悉各种调制解调算法,信道编码算法等;
2. 熟悉C/C++、MatLab、Python等编程语言;
3. 熟悉至少一种常见无线通信协议及其安全问题,如Wi-Fi、Bluetooth、Zigbee、4/5G等;
4. 熟练掌握SDR外设和GNURadio等工具的使用。
加分项:
1. 具有信息安全公司实习经验;
2. 有嵌入式固件逆向分析经验;
3. 参加CTF比赛并获奖;
4. 有智能设备的破解经验;
5. 通信工程、信息安全专业。
感兴趣的小伙伴请联系姜女士,或将简历及应聘职位投送至下方邮箱。(请注明来源“研究院公众号”)
联系人:姜女士
邮箱:[email protected]
手机;15167179002,微信同号