Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

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

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

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

工具目录

分类

查看所有分类
Loading categories
noseyparker — Nosey Parker 是一个命令行工具,用于在文本数据和 Git 历史中发现秘密和敏感信息。 | Kitploit
工具/GitHubGitHub/praetorian-inc/noseyparker
漏洞扫描器代码分析信息收集渗透测试DevSecOps秘密检测Archived
GitHubpraetorian-inc/noseyparker

noseyparker

Nosey Parker 是一个命令行工具,用于在文本数据和 Git 历史中发现秘密和敏感信息。

查看仓库
2.3k132486个月前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Nosey Parker 现已由 Titus 取代。Nosey Parker 正式退役

请参见我们的公告文章 https://www.praetorian.com/blog/titus-open-source-secret-scanner/。Titus 仓库可在 https://github.com/praetorian-inc/titus 找到

概述

Nosey Parker 是一个 CLI 工具,用于在文本数据中查找密钥和敏感信息。它本质上是一个专门用于检测密钥的特殊 grep 类工具。

它专为攻击性安全设计(例如,在红队中实现横向移动),但也可以用于防御性安全测试。它在 Praetorian 的数百次攻击性安全参与中发现了密钥。

主要特性:

  • 灵活性: 原生支持扫描文件、目录、GitHub 和 Git 历史,并具有可扩展的输入枚举机制
  • 经过实战检验的规则: 它使用正则表达式,并基于安全工程师的反馈选择了 188 条规则,以实现高精度
  • 信噪比: 它去重共享同一密钥的匹配项,将审查负担降低 10-1000 倍或更多
  • 速度与可扩展性: 在多核系统上扫描速度可达 GB/s,在安全参与中已扫描过高达 20TB 的输入

典型工作流程分为三个阶段:

  1. 使用 scan 命令扫描感兴趣的输入
  2. 使用 report 命令报告扫描结果的详细信息
  3. 审查并分类发现

安装

Homebrew 公式

root@kitploit:~
brew install noseyparker

预编译二进制文件

最新发布页面 包含适用于 x86_64/aarch64 Linux 和 macOS 的预编译二进制文件。

Docker:x86_64/aarch64

root@kitploit:~
docker pull ghcr.io/praetorian-inc/noseyparker:latest

最新提交也可以通过 main 标签获取。

Docker:x86_64/aarch64,基于 Alpine:

root@kitploit:~
docker pull ghcr.io/praetorian-inc/noseyparker-alpine:latest

最新提交也可以通过 main 标签获取。

Arch Linux 包

https://aur.archlinux.org/packages/noseyparker

Windows

Nosey Parker 不原生支持 Windows 构建(#121)。但可以使用 WSL1 和原生 Linux 版本在 Windows 上运行。

从源码构建

1. 安装前提条件

已在多种 Ubuntu Linux 和 macOS 版本以及 x86_64 和 aarch64 架构上测试通过。

所需依赖:

  • cargo:推荐方式:从 https://rustup.rs 安装
  • cmake:用于构建 vectorscan-sys crate 和其他一些依赖
  • boost:用于构建 vectorscan-sys crate(支持的版本 >=1.57)
  • git:用于将版本信息嵌入 noseyparker CLI
  • patch:用于构建 vectorscan-sys crate
  • pkg-config:用于构建 vectorscan-sys crate
  • sha256sum:用于计算摘要(通常由 包提供)

获取帮助

运行 noseyparker 二进制文件而不带参数将打印顶层帮助信息并退出。您可以通过运行 noseyparker COMMAND -h 获取特定命令的简要帮助。更详细的帮助信息可通过 help 命令或长格式 --help 选项获取。

预发布版本还附带手册页,将命令行帮助信息集中在一处。这些手册页已转换为 Markdown 格式,并存储在仓库的 docs/v0.17.0/man/man1 目录中。

如果您有本文档未回答的问题,请 发起讨论。

术语与数据模型

数据存储

数据存储 是一个特殊目录,Nosey Parker 用它来记录发现和维护内部状态。scan 命令会在需要时隐式创建数据存储。

数据块

每个扫描的输入称为一个 数据块。每个数据块都有一个唯一的数据块 ID,它是一个采用与 git 相同方式计算的 SHA-1 摘要。

溯源

每个数据块关联一个或多个 溯源 条目。溯源条目是描述输入如何被发现的元数据,例如文件系统上的文件或 Git 仓库历史中的文件。

规则

Nosey Parker 是一个基于正则表达式的规则系统。每条 规则 包含一个模式,其中至少有一个捕获组,用于从上下文中隔离匹配内容。您可以使用 noseyparker rules list 列出可用规则。

规则集

规则集合按 规则集 组织。Nosey Parker 的默认规则集包含用于检测看起来像密钥的规则。还有其他可用规则集;您可以使用 noseyparker rules list 列出它们。

匹配

当规则的模式匹配输入时,会产生一个 匹配。匹配由规则、数据块 ID、起始字节偏移量和结束字节偏移量唯一确定;这些字段用于计算唯一的匹配标识符。

发现

共享相同规则和捕获组的匹配被组合成一个 发现。换句话说,发现 是一组匹配。这是 Nosey Parker 报告的最高级别单元。

使用示例

注意:使用 Docker 时...

使用 Docker 镜像时,请将以下命令中的 noseyparker 替换为使用挂载卷的 Docker 调用:

root@kitploit:~
docker run -v "$PWD":/scan ghcr.io/praetorian-inc/noseyparker:latest <ARGS>

Docker 容器以 /scan 作为工作目录,因此将 $PWD 挂载到容器中的 /scan 将使制表符补全和命令行中的相对路径正常工作。

扫描文件系统内容,包括本地 Git 仓库

显示 Nosey Parker 扫描文件系统密钥的工作流程的截图

Nosey Parker 原生支持扫描文件、目录以及 Git 仓库的完整历史。

例如,如果您在本地 cpython.git 目录下有一个 CPython 的 Git 克隆,您可以使用 scan 命令扫描它。Nosey Parker 将在 cpython.np 创建一个新的数据存储,并将扫描结果保存其中。(名称 cpython.np 不重要,可以是任何名称。)

root@kitploit:~
$ noseyparker scan -d cpython.np cpython.git
Scanned 19.19 GiB from 335,849 blobs in 17 seconds (1.11 GiB/s); 2,178/2,178 new matches

 Rule                            Findings   Matches   Accepted   Rejected   Mixed   Unlabeled
──────────────────────────────────────────────────────────────────────────────────────────────
 Generic API Key                        1         8          0          0       0           1
 Generic Password                       8     1,283          0          0       0           8
 Generic Username and Password          2        40          0          0       0           2
 HTTP Bearer Token                      1       108          0          0       0           1
 PEM-Encoded Private Key               61       151          0          0       0          61
 netrc Credentials                     27       588          0          0       0          27

Run the `report` command next to show finding details.

详情请参阅 noseyparker help scan。

从 HTTPS URL 扫描 Git 仓库

例如,扫描 Nosey Parker 自己的仓库:

root@kitploit:~
noseyparker scan --datastore np.noseyparker --git-url https://github.com/praetorian-inc/noseyparker

详情请参阅 noseyparker help scan。

扫描 GitHub 用户或组织的 Git 仓库

使用 --github-user=USER 或 --github-org=ORG。例如,扫描 octocat 用户可访问的仓库:

root@kitploit:~
noseyparker scan --datastore np.noseyparker --github-user octocat

这些输入说明符将使用 NP_GITHUB_TOKEN 环境变量中(如果可用)的可选 GitHub 令牌。提供访问令牌可获得更高的 API 速率限制,并可能使您访问更多仓库。

详情请参阅 noseyparker help scan。

交互式审查和注释发现

请参阅配套项目 Nosey Parker Explorer: 显示 Nosey Parker Explorer 主界面的截图

以人类可读文本格式报告发现

显示 Nosey Parker 以人类可读格式呈现其发现的工作流程的截图

以 JSON 格式报告发现

显示 Nosey Parker 以 JSON 格式呈现其发现的工作流程的截图

汇总发现

Nosey Parker 在完成扫描后会打印发现的摘要。您也可以在扫描后单独运行此步骤:

root@kitploit:~
$ noseyparker summarize --datastore np.cpython

 Rule                      Distinct Groups   Total Matches
───────────────────────────────────────────────────────────
 PEM-Encoded Private Key             1,076           1,192
 Generic Secret                        331             478
 netrc Credentials                      42           3,201
 Generic API Key                         2              31
 md5crypt Hash                           1               2

通过 --format=FORMAT 选项还支持其他输出格式,包括 JSON 和 JSON lines。

详情请参阅 noseyparker help summarize。

从 GitHub 枚举仓库

使用 github repos list 命令列出属于 GitHub 用户或组织的仓库 URL。此命令使用 GitHub REST API 枚举属于用户或组织的仓库。例如:

root@kitploit:~
$ noseyparker github repos list --user octocat
https://github.com/octocat/Hello-World.git
https://github.com/octocat/Spoon-Knife.git
https://github.com/octocat/boysenberry-repo-1.git
https://github.com/octocat/git-consortium.git
https://github.com/octocat/hello-worId.git
https://github.com/octocat/linguist.git
https://github.com/octocat/octocat.github.io.git
https://github.com/octocat/test-repo1.git

此命令将使用 NP_GITHUB_TOKEN 环境变量中(如果可用)的可选 GitHub 令牌。提供访问令牌可获得更高的 API 速率限制,并可能使您访问更多仓库。

通过 --format=FORMAT 选项还支持其他输出格式,包括 JSON 和 JSON lines。

详情请参阅 noseyparker help github。

集成

Nosey Parker 有几个第三方集成:

  • Nosey Parker 已打包在 Homebrew 中
  • Nosey Parker 已打包在 Arch Linux 中
  • 有一个运行 Nosey Parker 的 GitHub Action 可用
  • DefectDojo 包含一个 用于 Nosey Parker v0.16 JSON 的解析器
  • Nemesis 包含对 Nosey Parker 的支持
  • noseyparker-compact 提供了紧凑报告后处理器
  • segfault.net 一次性 root 服务器 预装了 Nosey Parker

如果您有未在此列出的集成想分享,请创建一个 PR。

贡献

请在 讨论 区域提问或分享想法。

欢迎贡献,特别是新的正则表达式规则。开发新的正则表达式规则在 单独文档 中有详细说明。

如果您正在考虑进行重大代码更改,请先 提交问题 或 发起讨论。

本项目启用了多个 pre-commit 钩子,建议您使用。要在本地仓库中安装它们,请确保已安装 pre-commit 并运行:

root@kitploit:~
$ pre-commit install

这些检查将有助于快速检测简单错误。

许可证

Nosey Parker 基于 Apache License, Version 2.0 许可。

下载工具
coreutils
  • zsh:用于构建脚本
  • 2. 使用 create-release.zsh 脚本构建

    root@kitploit:~
    $ rm -rf release && ./scripts/create-release.zsh
    

    如果成功,将在 release 目录下生成包含发布工件的目录结构。命令行程序将在 release/bin/noseyparker。