如何检查我的 U 盘固件是否可以通过 USB 端口重写?

信息安全 linux USB 巴杜斯
2021-09-08 15:11:49

在 Linux(或其他)中,我如何知道我的 USB 闪存驱动器的固件是否可以使用 USB 端口重写(将其插入 USB 端口时)?例如。便宜的 EMTEC 16GB。

我正在考虑使用udevadm monitor,但对于 USB 控制器 ID 的外观(以及它是否由 打印udevadm)以及在哪里进一步查找该 USB 控制器的详细信息一无所知。我在如何防止 Linux 桌面上的 BadUSB 攻击中读到它是 BadUsb 攻击背后的条件之一。

1个回答

简而言之,没有办法知道这一点。

那里有许多“写得不好”的 USB 控制器芯片,它们要么没有报告你可以写入它们。或者更糟糕的报告,你可以。但只是忽略任何写信给他们的尝试。

因此,如果不具体知道它是什么芯片,您就无法知道它对这样的指令有何反应。

更糟糕的情况是,有 USB 设备是 USB 记忆棒或 USB HDD,当写入极端地址而不是将其写入磁盘时,将其写入内部存储器(例如闪存 EEPROM),而您根本无法无需编写您自己的软件即可检查它,并通过上传您自己的固件进行测试。(或砖 USB 设备)。


了解 USB 设备是否可以以这种方式使用的唯一可靠方法是将允许写入的已知 USB 控制器列入白名单。并编写自己的测试软件来检查这一点。