usbrip(名称源自“USB Ripper”,而非“USB R.I.P.”)是一款简单的命令行取证工具,可让您跟踪 Linux 机器上的 USB 设备痕迹(即 USB 事件历史)。
目录:
usbrip 是一款小型软件,用于分析 Linux 日志数据:journalctl 输出或 /var/log/syslog*(或 /var/log/messages*)文件的内容。基于收集的数据,usbrip 可以构建 USB 事件历史表格,包含以下列:
此外,它还可以:
-s 标志安装时* 创建受保护的存储(7-Zip 归档),以借助 cron 调度器自动备份和累积 USB 事件。方式 1. 使用 pip 安装:
~$ sudo -H python3 -m pip install -U usbrip
~$ usbrip -h
方式 2. 使用 install.sh 安装最新版(推荐,提供额外功能):
~$ sudo apt install python3-venv p7zip-full -y
~$ git clone https://github.com/snovvcrash/usbrip && cd usbrip
~/usbrip$ sudo -H installers/install.sh
~/usbrip$ cd
~$ usbrip -h

Docker (*仅作演示!*)
~$ docker run --rm -it snovvcrash/usbrip
usbrip 支持在系统日志文件中解析两种类型的时间戳:
"%b %d %H:%M:%S",例如 "Jan 1 00:00:00")。此类时间戳不提供年份信息。"%Y-%m-%dT%H:%M:%S.%f%z",例如 "1970-01-01T00:00:00.000000-00:00")。如果您已安装 journalctl,则无需担心,因为它可以动态转换时间戳。否则,可以通过在 rsyslog 配置中设置 RSYSLOG_FileFormat 格式来实现所需的 syslog 结构。
/etc/rsyslog.conf 中注释掉以下行:$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
.conf 文件:~$ echo '$ActionFileDefaultTemplate RSYSLOG_FileFormat' | sudo tee /etc/rsyslog.d/usbrip.conf
~$ sudo rm -f /var/log/syslog* /var/log/messages*
~$ sudo systemctl restart rsyslog
首先,usbrip 会检查是否可以使用 journalctl 转储系统事件(作为最便携的选项)。如果不能,它将搜索并解析 /var/log/syslog* 或 /var/log/messages* 系统日志文件。
storage 模块使用)为简便起见,我们约定所有带有 ~/usbrip$ 前缀的命令都在 ~/usbrip 目录下执行,该目录由 git clone 创建:
~$ git clone https://github.com/snovvcrash/usbrip
~$ cd usbrip
~/usbrip$ pwd
install.sh除了使用 pip 安装外,usbrip 还可以通过自定义的 installers/install.sh 脚本来安装。
使用 install.sh 时,会启用一些额外功能:
storage 模块 – 设置 cron 任务以按计划备份 USB 事件(cron 任务示例可在 usbrip/cron/usbrip.cron 中找到)。⚠️ 警告: 如果您使用 cron 调度,则需要使用 sudo crontab -e 配置 crontab,以强制 storage update 子模块以 root 身份运行。存储密码保存在 /var/opt/usbrip/usbrip.ini 中,默认情况下仅 root 可访问。
要使用 install.sh 安装 usbrip,请运行:
~/usbrip$ sudo -H installers/install.sh [-l/--local] [-s/--storages]
~/usbrip$ cd
~$ usbrip -h
-l 开关时,Python 依赖项将从本地 .tar 包(3rdPartyTools 目录)中解析,而非 PyPI。-s 开关时,不仅安装 usbrip 项目,还会创建受信任的 USB 设备列表、历史记录和违规存储。安装完成后,可以删除 ~/usbrip 目录。
使用 install.sh 安装后,usbrip 使用以下路径:
/opt/usbrip/ – 项目主目录。/var/opt/usbrip/log/ – usbrip cron 日志。/var/opt/usbrip/storage/ – USB 事件存储(history.7z 和 violations.7z,在安装过程中创建)。/var/opt/usbrip/trusted/ – 受信任 USB 设备列表(auth.json,在安装过程中创建)。/var/opt/usbrip/usbrip.ini – usbrip 配置文件(包含 7-Zip 存储的密码)。/usr/local/bin/usbrip – 指向 /opt/usbrip/venv/bin/usbrip 脚本的符号链接。可以按如下方式设置 cron 任务:
~/usbrip$ sudo crontab -l > tmpcron && echo "" >> tmpcron
~/usbrip$ cat usbrip/cron/usbrip.cron | tee -a tmpcron
~/usbrip$ sudo crontab tmpcron
~/usbrip$ rm tmpcron
uninstall.shinstallers/uninstall.sh 脚本可从系统中移除 usbrip 及所有安装产物。
要卸载 usbrip,请运行:
~/usbrip$ sudo installers/uninstall.sh [-a/--all]
-a 开关时,不仅删除 usbrip 项目目录,还会删除所有存储和 usbrip 日志。如果您之前设置了 cron 任务,请不要忘记将其移除。
# ---------- BANNER ----------
~$ usbrip banner
获取 usbrip 横幅。
# ---------- EVENTS ----------
~$ usbrip events history [-t | -l] [-e] [-n <NUMBER_OF_EVENTS>] [-d <DATE> [<DATE> ...]] [--host <HOST> [<HOST> ...]] [--vid <VID> [<VID> ...]] [--pid <PID> [<PID> ...]] [--prod <PROD> [<PROD> ...]] [--manufact <MANUFACT> [<MANUFACT> ...]] [--serial <SERIAL> [<SERIAL> ...]] [--port <PORT> [<PORT> ...]] [-c <COLUMN> [<COLUMN> ...]] [-f <FILE> [<FILE> ...]] [-q] [--debug]
获取 USB 事件历史。
~$ usbrip events open <DUMP.JSON> [-t | -l] [-e] [-n <NUMBER_OF_EVENTS>] [-d <DATE> [<DATE> ...]] [--host <HOST> [<HOST> ...]] [--vid <VID> [<VID> ...]] [--pid <PID> [<PID> ...]] [--prod <PROD> [<PROD> ...]] [--manufact <MANUFACT> [<MANUFACT> ...]] [--serial <SERIAL> [<SERIAL> ...]] [--port <PORT> [<PORT> ...]] [-c <COLUMN> [<COLUMN> ...]] [-q] [--debug]
打开 USB 事件转储。
~$ sudo usbrip events genauth <OUT_AUTH.JSON> [-a <ATTRIBUTE> [<ATTRIBUTE> ...]] [-e] [-n <NUMBER_OF_EVENTS>] [-d <DATE> [<DATE> ...]] [--host <HOST> [<HOST> ...]] [--vid <VID> [<VID> ...]] [--pid <PID> [<PID> ...]] [--prod <PROD> [<PROD> ...]] [--manufact <MANUFACT> [<MANUFACT> ...]] [--serial <SERIAL> [<SERIAL> ...]] [--port <PORT> [<PORT> ...]] [-f <FILE> [<FILE> ...]] [-q] [--debug]
生成受信任(授权)USB 设备列表。
~$ sudo usbrip events violations <IN_AUTH.JSON> [-a <ATTRIBUTE> [<ATTRIBUTE> ...]] [-t | -l] [-e] [-n <NUMBER_OF_EVENTS>] [-d <DATE> [<DATE> ...]] [--host <HOST> [<HOST> ...]] [--vid <VID> [<VID> ...]] [--pid <PID> [<PID> ...]] [--prod <PROD> [<PROD> ...]] [--manufact <MANUFACT> [<MANUFACT> ...]] [--serial <SERIAL> [<SERIAL> ...]] [--port <PORT> [<PORT> ...]] [-c <COLUMN> [<COLUMN> ...]] [-f <FILE> [<FILE> ...]] [-q] [--debug]
基于受信任设备列表获取 USB 违规事件。
# ---------- STORAGE ----------
~$ sudo usbrip storage list <STORAGE_TYPE> [-q] [--debug]
列出所选存储的内容。STORAGE_TYPE 为 "history" 或 "violations"。