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

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

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

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

工具目录

分类

查看所有分类
Loading categories
usbrip — 追踪 GNU/Linux 上的 USB 事件历史 | Kitploit
工具/GitHubGitHub/snovvcrash/usbrip
取证分析数字取证威胁情报事件响应日志分析Archived
GitHubsnovvcrash/usbrip

usbrip

追踪 GNU/Linux 上的 USB 事件历史

查看仓库
1.2k113213年前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

logo.png


version.svg python.svg license.svg blackarch.svg built-with-love.svg

usbrip(名称源自“USB Ripper”,而非“USB R.I.P.”)是一款简单的命令行取证工具,可让您跟踪 Linux 机器上的 USB 设备痕迹(即 USB 事件历史)。

目录:

  • 描述
  • 快速开始
  • 展示
  • 系统日志结构
  • 依赖项
    • deb
    • pip
  • 手动安装
    • Git Clone
    • install.sh
      • 路径
      • Cron
      • uninstall.sh
  • 用法
    • 概要
    • 帮助
  • 示例
  • 鸣谢与参考
  • 加星者图表
  • 后记

描述

usbrip 是一款小型软件,用于分析 Linux 日志数据:journalctl 输出或 /var/log/syslog*(或 /var/log/messages*)文件的内容。基于收集的数据,usbrip 可以构建 USB 事件历史表格,包含以下列:

  • 连接时间(日期与时间)
  • 主机
  • VID(供应商 ID)
  • PID(产品 ID)
  • 产品
  • 制造商
  • 序列号
  • 端口
  • 断开时间(日期与时间)

此外,它还可以:

  • 将收集的数据导出为 JSON 转储,供后续使用。
  • 生成授权(可信)USB 设备列表,保存为 JSON 文件(称为 auth.json)。
  • 基于 auth.json 搜索“违规事件”:发现那些出现在历史记录中但未出现在 auth.json 文件中的 USB 设备。
  • *当使用 -s 标志安装时* 创建受保护的存储(7-Zip 归档),以借助 cron 调度器自动备份和累积 USB 事件。
  • 根据 VID 和/或 PID 搜索特定 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

展示

showcase.png

Docker (*仅作演示!*)

~$ docker run --rm -it snovvcrash/usbrip

系统日志结构

usbrip 支持在系统日志文件中解析两种类型的时间戳:

  1. 未修改 – 标准 GNU/Linux syslog 结构("%b %d %H:%M:%S",例如 "Jan 1 00:00:00")。此类时间戳不提供年份信息。
  2. 已修改(推荐) – 更佳的 syslog 结构,提供包含年份的高精度时间戳("%Y-%m-%dT%H:%M:%S.%f%z",例如 "1970-01-01T00:00:00.000000-00:00")。

如果您已安装 journalctl,则无需担心,因为它可以动态转换时间戳。否则,可以通过在 rsyslog 配置中设置 RSYSLOG_FileFormat 格式来实现所需的 syslog 结构。

  1. 在 /etc/rsyslog.conf 中注释掉以下行:
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
  1. 为 usbrip 添加自定义 .conf 文件:
~$ echo '$ActionFileDefaultTemplate RSYSLOG_FileFormat' | sudo tee /etc/rsyslog.d/usbrip.conf
  1. *可选* 删除现有日志文件:
~$ sudo rm -f /var/log/syslog* /var/log/messages*
  1. 重启服务:
~$ sudo systemctl restart rsyslog

首先,usbrip 会检查是否可以使用 journalctl 转储系统事件(作为最便携的选项)。如果不能,它将搜索并解析 /var/log/syslog* 或 /var/log/messages* 系统日志文件。

依赖项

deb

  • python3.6 解释器(或更新版本)
  • python3-venv
  • p7zip-full(由 storage 模块使用)

pip

  • terminaltables
  • termcolor
  • tqdm

手动安装

Git Clone

为简便起见,我们约定所有带有 ~/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

可以按如下方式设置 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.sh

installers/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"。
下载工具