pwnobd:一款针对OBD-II设备的漏洞分析与渗透测试工具

pwnobd:一款针对OBD-II设备的漏洞分析与渗透测试工具

Alpha_h4ck FreeBuf 2024-12-31 10:59

关于pwnobd

pwnobd是一款针对OBD-II设备的漏洞分析与渗透测试工具,该工具基于纯Python开发,可以帮助广大研究人员对OBD-II设备执行安全分析。

工具要求

Python 3

工具安装

由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好最新版本的Python 3环境。

源码获取

广大研究人员可以直接使用下列命令将该项目源码克隆至本地:

git clone https://github.com/Nnubes256/pwnobd.git

然后切换到项目根目录中,初始化一个虚拟环境:

cd pwnobd

python -m venv .env

激活虚拟环境:

source .env/bin/activate

将项目以包的形式安装到虚拟环境中:

pip install -e .

pipx安装

该软件打包为 Python 包,因此可以使用pipx在受控环境中快速安装该软件:

pipx install git+https://github.com/Nnubes256/pwnobd.git

安装后,使用以下命令运行软件:

pwnobd

用于help发现可用的命令。命令历史记录保存在~/.pwnobd_history中。

工具使用

渗透测试

pwnobd的渗透测试脚本位于src/pwnobd/modules/attacks/目录中,渗透测试流程如下:

1、def precheck(**kwargs):每次为渗透测试设置选项时都会调用,允许实现超出OPTIONS提供的自定义参数验证;
2、def init(self, arg1: type1, arg2: type2, …):发起渗透测试的第一步;获取我们在OPTIONS处指定的参数;
3、async def setup(self):渗透测试发起的第二步,在此进行初始化;
4、async def run(self, ctx: WorkTaskContext, devices: dict[int, Device]):实际的渗透测试实施在此处,在任务内运行;

设备与扫描

class BluetoothThingymabobScanResult(ScannedDevice):

    # TODO implement

    #   name(self) -> str

    #   device_type(self) -> str

    #   create_device(self) -> Device

    pass



@scanner("thingymabob")

class BluetoothThingymabobScanner(LeafScanner):

    async def scan(self, ctx: ScanContext):

        # Retrieve `BluetoothScanner` and ask it to scan for Bluetooth devices.

        devices = await ctx.get_scanner(BluetoothScanner).scan(ctx)



        # ... do something with the returned devices...



        return [

          BluetoothThingymabobScanResult(...),

          BluetoothThingymabobScanResult(...),

          # ...

        ]

许可证协议

本项目的开发与发布遵循
MIT
开源许可协议。

项目地址

pwnobd

https://github.com/Nnubes256/pwnobd


FreeBuf粉丝交流群招新啦!

在这里,拓宽网安边界

甲方安全建设干货;

乙方最新技术理念;

全球最新的网络安全资讯;

群内不定期开启各种抽奖活动;

FreeBuf盲盒、大象公仔……

扫码添加小蜜蜂微信回复「加群」,申请加入群聊】