Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
ATFuzzer — 语法引导的进化模糊测试器,用于通过蓝牙和USB对Android智能手机的AT命令接口进行动态分析,发现拒绝服务、隐私泄露和协议降级漏洞 | Kitploit
工具/GitHubGitHub/sysnets/atfuzzer
Android安全蓝牙安全动态分析 (沙盒)漏洞分析模糊测试
GitHubsysnets/atfuzzer

ATFuzzer

语法引导的进化模糊测试器,用于通过蓝牙和USB对Android智能手机的AT命令接口进行动态分析,发现拒绝服务、隐私泄露和协议降级漏洞

查看仓库
15840685年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

ATFuzzer

“通过ATFuzzer打开潘多拉魔盒:针对安卓智能手机AT接口的动态分析”已入选第35届年度计算机安全应用会议(ACSAC 2019)。 https://syed-rafiul-hussain.github.io/wp-content/uploads/2019/11/atfuzz.pdf

摘要

本文旨在检查蜂窝基带处理器通过蓝牙和USB暴露的AT命令接口的正确性和健壮性。设备的应用处理器使用该接口向基带处理器发出高级命令(即AT命令),以执行蜂窝网络操作(例如拨打电话)。该接口中的漏洞可能被恶意蓝牙外围设备利用,发起包括拒绝服务攻击和隐私攻击在内的多种攻击。为了识别此类漏洞,我们提出了ATFuzzer,它采用一种语法引导的进化模糊测试方法,对AT命令语法的产生式规则进行变异,而不是对具体的AT命令进行变异。使用ATFuzzer对来自5家供应商的8款安卓智能手机进行的实证评估发现,蓝牙接口存在4个无效的AT命令语法,USB接口存在13个无效的AT命令语法,其影响范围涉及拒绝服务、蜂窝协议版本降级以及严重的隐私泄露。

运行ATFuzzer

需求

Python 2.7.15。请不要使用Python 3,因为存在库不兼容问题。所需的库已列在文件requirements.txt中,可以通过执行以下命令进行安装:

pip install -r requirements.txt

注意:适用于Python 2.7的模块pybluez与Windows不兼容。要在Windows上安装pybluez,需要下载一个旧版本。在pybluez下载PyBluez‑0.22‑cp27,并使用以下命令安装:

pip install <pybluez file.whl>

如何运行

要运行ATFuzzer,请执行以下命令:

sudo python executeFuzzer.py <list_of_grammars> <device_name> <port (可选)>

或者,也可以使用多个随机选择的语法来执行ATFuzzer,命令如下:

sudo python executeFuzzer.py multi <device_name> <port (可选)>

程序随后会要求从4个选项中选择一个:

  • 0 - 标准模糊测试器(包括交叉、变异、反馈评估)
  • 1 - 无反馈模糊测试器
  • 2 - 无交叉模糊测试器
  • 3 - 无变异模糊测试器

这些选项允许用户选择要运行的ATFuzzer类型。这对于测试和评估我们的模糊测试器的有效性至关重要。

最后,ATFuzzer需要指定用于AT命令传输的通道。可以从以下三个选项中选择一个:

  • b - 蓝牙
  • u - USB
  • t - 测试执行(不需要连接任何设备)

如果选择了蓝牙选项,程序会询问目标设备的蓝牙地址。用户应以特定格式输入设备的蓝牙MAC地址:XX:XX:XX:XX:XX:XX(例如,1A:2B:3C:4D:5E:6F)。

测试执行使用虚假的评估参数运行ATFuzzer,并且不向设备提交任何命令。此选项仅用于测试目的,因此不要用它来对真实的智能手机进行模糊测试。

注意:如果在Linux上运行蓝牙ATFuzzer,可能需要使用sudo执行程序,具体取决于系统配置。

ATFuzzer实现结构

下面我们介绍ATFuzzer实现的结构。

commandGrammar.json:包含80多条AT命令的语法集的JSON文件。这些语法按照特定结构定义,使程序能够高效地读取它们。

executeFuzzer.py:主程序,允许用户运行ATFuzzer。它提供了不同的执行选项(参见如何运行)。

grammarFuzzer.py:实现实际的模糊测试。它读取用户提交的AT命令的语法,并执行模糊测试循环:输入生成 - 输入提交 - 语法评估 - 语法演化。

multiGrammarFuzzer.py:实现实际的模糊测试。它读取随机选择的AT命令的语法,并执行模糊测试循环:输入生成 - 输入提交 - 语法评估 - 语法演化。

grammarModifier.py:实现演化阶段的函数。这些函数包括语法交叉和语法变异。

inputGen.py:根据给定的输入语法生成一个随机的AT命令实例。

atCmdInterface.py:实现与目标设备AT接口交互所需的函数。它负责建立与设备的通信、提交AT命令实例,最后收集和评估响应。

afl_fuzzer.py:实现用于在AT命令上下文中执行AFL模糊测试器的函数。

utilityFunctions.py:实现支持主程序执行的函数。

results:目录,包含每次ATFuzzer执行的结果。

演示

https://www.youtube.com/watch?v=qR4Pq5i0IRE

引用

如果您的研究使用了SAVIOR的一个或多个组件,请引用以下论文:


@inproceedings{karim2019opening,
  title={Opening Pandora's box through ATFuzzer: dynamic analysis of AT interface for Android smartphones},
  author={Karim, Imtiaz and Cicala, Fabrizio and Hussain, Syed Rafiul and Chowdhury, Omar and Bertino, Elisa},
  booktitle={Proceedings of the 35th Annual Computer Security Applications Conference},
  pages={529--543},
  year={2019}
} 

下载工具