一、工具简介


searchall是一款专注于敏感信息扫描的开源工具,核心功能是快速检索文件中的账号、密码、API密钥等敏感数据,同时支持解密浏览器保存的账户密码,适配Windows、Linux、macOS三大系统。其优势在于轻量易用、精准高效,本地化运行保障数据隐私,还支持自定义扫描规则,可灵活应对不同场景需求,广泛应用于安全审计、渗透测试、开发自检等场景。
目前工具稳定版本为3.5.x系列,开发语言Go。

二、安装部署


searchall支持两种安装方式:二进制免编译安装(适合新手,快速上手)和源码安装(适合需自定义功能的用户),以下分系统详细说明,确保每一步都可落地。

2.1 前置准备


无论哪种安装方式,需提前做好以下准备,避免安装失败:

  • 系统要求:Windows 10+、Linux(CentOS 7+/Ubuntu 18+)、macOS 10.15+,硬件需至少2GB内存(建议4GB以上),可用存储空间≥500MB(源码安装可适当减少);

  • 依赖准备:Go版本≥1.18(仅Go源码安装需);

  • 其他:关闭杀毒软件(部分安全工具可能误报敏感操作),若需使用浏览器密码解密功能,需准备管理员/root权限。

2.2 二进制免编译安装(推荐新手)


二进制安装无需编译,下载对应系统的可执行文件即可直接运行,是最便捷的安装方式。

2.2.1 下载可执行文件


从官方开源地址获取最新版本:https://gitcode.com/Naturehi666/searchall/releases/search3.5.11

2.2.2 安装验证


打开命令行工具,输入以下命令,若能正常显示版本信息,说明安装成功:

searchall -v # 或 searchall64.exe -v(Windows)

2.3 源码安装(适合自定义需求)


若需修改工具源码、自定义扫描规则,可选择源码安装。

2.3.1 Go版本源码安装

# 1. 克隆源码仓库

git clone https://gitcode.com/Naturehi666/searchall.git

# 2. 安装依赖 

第一步:安装 Go 语言环境

1、下载与安装 访问 Go 语言的官方下载镜像 https://golang.google.cn/dl/

下载对应系统的安装包,然后按默认选项安装即可。

2、配置环境变量 (Windows)---一般不用手动配置,安装过程自动配置

为了让系统在任何位置都能识别 go 命令,并设置好你的工作空间,需要配置以下系统环境变量:

GOROOT:Go 的安装目录,例如 C:\Go。新建此系统变量。

GOPATH:你的 Go 项目工作空间目录,例如 D:\GoProjects。

新建此用户变量。建议在非系统盘创建 src, bin, pkg 三个子文件夹。

PATH:编辑此变量,新增 %GOROOT%\bin 和 %GOPATH%\bin 这两条路径。

3、验证安装 打开命令提示符 (cmd) 或 PowerShell,输入 go version,如果正确显示版本号,说明安装成功。

第二步:配置 VS Code 编辑器

1、安装 Go 插件 打开 VS Code,进入扩展商店(Ctrl+Shift+X),搜索并安装由 Go Team at Google 官方出品的 Go 插件。

2、配置国内代理 (GOPROXY) 这一步对于国内网络环境非常关键,可以大幅提升依赖包的下载速度。

在 VS Code 的设置页面(Ctrl+,)中搜索 go.toolsGopath,并添加以下配置: json "go.gopath": "你的GOPATH路径,如 D:\\GoProjects", "go.toolsManagement.autoUpdate": true, "go.alternateTools": {}, "go.useLanguageServer": true

"go.gopath""D:\\tool\\Go",

"go.toolsManagement.autoUpdate"true,

"go.alternateTools": {},

"go.useLanguageServer"true,

"Codegeex.License""",

"Codegeex.Privacy"true,

"go.toolsGopath"""

然后在 VS Code 的集成终端中执行以下命令来配置代理: go env -w GOPROXY=https://goproxy.cn,direct 设置完成后,可以用 go env 命令检查一下

# 3. 编译生成可执行文件

go build -o searchall # Linux/macOS

go build -o searchall.exe # Windows

# 4. 验证安装

./searchall -v # Linux/macOS

searchall.exe -v # Windows


三、工具使用(实战详解)


searchall的核心命令分为两类:search(文件敏感信息扫描)和browser(浏览器密码解密),支持多种参数自定义,以下从基础使用到进阶技巧,结合实例讲解,确保新手也能快速上手。

3.1 基础命令(必学)


首先查看帮助文档,了解所有支持的命令和参数:

searchall -h # 全局帮助

searchall search -h # 扫描文件命令帮助

searchall browser -h # 浏览器密码解密命令帮助

3.1.1 文件敏感信息扫描(search命令)


核心功能:扫描指定目录下的文件,检索敏感信息(如账号、密码、API密钥等),支持自定义扫描规则和文件类型。

3.1.1.1 扫描指定目录(最常用)

.\searchall64-3.5.11.exe search -p "C:\agent\logs\info"

说明:扫描指定路径的文件

备注:未指定文件类型,工具扫描默认的文件类型;默认文件类型不包括.log文件,如需扫描log文件使用方式3.

默认支持扫描文件类型:

"text":     ".txt,.md,.conf,.json,",

"config":   ".cfg,.conf,.ini,.properties,.config,.xml,.env,",

"database"".sql,.yaml,.yml,",

3.1.1.2.扫描指定类型文件(仅扫描.txt文件)

searchall search -p /home/user -n .txt

说明:.\searchall64-3.5.11.exe search -p "C:\agent\logs\info" -n ".log"这种场景会扫描空,因为指定只扫描log文件,但log文件不在默认支持文件类型,所以不会扫描。

-n,-e具体区别见3

 3.1.1.3.扩展自定义文件扩展名(额外扫描.log文件) 

.\searchall64-3.5.11.exe search -p "C:\agent\logs\info" -e ".log"

说明:

版本要求 v3.5.8 及以上 v3.5.8 及以上
核心作用 增加要扫描的文件类型(白名单) 限定只扫描某一种文件类型(单一目标)
扫描对象 扫描指定扩展名的所有文件 只扫描指定的某一种扩展名文件
工作原理 在默认扫描类型之外添加新的扩展名

只扫描指定的这一种,且需在默认类型列表

使用场景:

  • 扫描特定类型:如果想只扫描某一种文件(比如只扫描日志),可以先使用 -n,但需要确认文件后缀在工具的内置列表中,否则可能扫描不到。

  • 安全地扩展扫描:如果想在扫描默认文件的同时,也检查其他类型(比如你的 .log 文件),使用 -e 参数是更稳妥的选择。

3.1.1.4 指定输出文件路径

目前版本的 searchall64 还不支持通过命令行参数直接指定报告文件的路径和文件名。程序会默认在当前运行目录下生成一个固定的 search.txt 文件。

目前可以通过以下几种方法来解决:

1)手动重命名:在每次扫描完成后,手动重命名生成的 search.txt 文件,以便区分。

2)使用脚本自动归档:编写一个简单的批处理脚本,在执行扫描后自动将 search.txt 移动或复制到指定位置,并按时间或扫描路径命名。

3)在指定目录下运行程序:你可以将 searchall64.exe 程序本身放在你想要生成报告的目录下运行,这样 search.txt 就会生成在那个目录里。

5. 自定义敏感词规则(仅扫描包含password=xxx的内容)

searchall search -p /home/user -r "password=\w+" -u

核心作用 定义正则表达式规则,精准匹配复杂的字符串模式。 定义普通字符串规则,匹配固定的文本内容。
灵活性 高,支持通配符、重复、范围等复杂逻辑。 低,仅进行简单的文本匹配,不支持复杂模式。
使用场景 匹配特定格式,如手机号、IP地址、身份证号、特定结构的密码等。 匹配精确的文本,如特定的用户名、特定的错误信息、固定的路径等。
与内置规则关系 替换:配合 -u 参数使用,会完全替换内置的正则规则列表。 叠加:新增规则到内置规则列表,与预设规则一起执行扫描

使用场景:

  • 使用 -s 参数查找固定字符串
    bash

    .\searchall64.exe search -p "C:\Project" -s "admin"

    这条命令的含义是:在扫描默认内置规则的基础上,额外查找所有包含 admin 这个固定单词的行。

  • 使用 -r 参数查找复杂模式
    bash

    .\searchall64.exe search -p "C:\Project" -r "1[3-9]\d{9}" -u

    这条命令的含义是:忽略所有内置规则,只查找符合 1[3-9]\d{9} 这个正则表达式(即中国大陆手机号)的内容。

3.1.2 浏览器密码解密(browser命令)


核心功能:解密本地浏览器保存的账户密码,支持Chrome、Edge等主流浏览器,需管理员/root权限。

# 1. 解密所有浏览器密码 searchall browser -b all 

# 2. 解密指定浏览器密码(如Chrome) searchall browser -b chrome

# 3. 解密并打包结果(生成压缩包,便于保存) searchall browser -b all -z

3.2 典型应用场景

  • 安全审计:快速排查服务器配置文件中的明文密码、API密钥,避免敏感信息泄露;

  • 渗透测试:收集目标服务器中的向日葵远程连接记录、浏览器登录凭证(需合法授权);

  • 开发自检:检查代码库中误提交的敏感信息(如数据库连接串、密钥等),提前规避风险;

  • 数据迁移:批量提取配置文件中的关键信息(如数据库连接串),提高迁移效率。

四、总结


searchall作为一款轻量高效的敏感信息扫描工具,无论是新手快速上手(二进制安装),还是开发者二次定制(源码编译),都能满足需求。其跨平台特性、丰富的参数配置和实用的功能,使其在安全审计、渗透测试等场景中发挥重要作用。
本文从安装部署、编译构建到实战使用,覆盖了工具的核心知识点,结合具体命令示例和避坑技巧,希望能帮助你快速掌握searchall的使用方法。如果在使用过程中遇到其他问题,可参考官方源码仓库的文档。
最后提醒:使用该工具需遵守相关法律法规,仅用于合法授权的场景(如自身服务器审计、合法渗透测试),严禁用于非法用途!

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐