关注我们
QRcode 邮件联系 QRcode

Seekret:GitHub仓库和目录敏感信息搜索工具

 feng  1,049 ℃  0条点评

Seekret是一个可以从各种源里面查找敏感信息的Go库和命令行工具。

命令行用法

描述

seekret从不同源(目录中的文件或者git仓库)中搜索敏感信息。可以用它来防止将敏感信息发布到容易暴露的位置上。

安装seekret

可以直接使用go get命令来安装seekret

go get github.com/apuigsech/seekret/cmd/seekret

用法

常规选项

NAME:   seekret - seek for secrets on various sources.USAGE:   seekret [global options] command [command options] [arguments...]VERSION:   0.0.1AUTHOR(S):   Albert Puigsech Galicia <albert@puigsech.com>COMMANDS:   seek:     git    从git仓库中搜索敏感信息。     dir    搜索文件夹下的敏感信息。GLOBAL OPTIONS:   --exception FILE, -x FILE    从FILE中加载exceptions。   --rules PATH         rules的路径。[$SEEKRET_RULES_PATH]   --format value, -f 指定输出格式.(默认:"human")   --known FILE, -k FILE  从FILE中加载known secrets。   --workers value, -w value  检查时使用的线程个数(默认:4)   --help, -h           显示帮助信息   --version, -v        打印版本号-x, --exception--rules-f, --format-k, --known-w, --workers

Git的选项

NAME:   seekret git - 搜索仓库里的敏感信息。USAGE:   seekret git [command options] [arguments...]CATEGORY:   seekOPTIONS:   --count value, -c value  (default: 0)-c, --count

Dir的选项

NAME:   seekret dir - 搜文件夹下的敏感信息。USAGE:   seekret dir [command options] [arguments...]CATEGORY:   seekOPTIONS:   --recursive, -r   --hidden-r, --recursive-h, --hidden

例子

扫描本地仓库所有commits中的全部文件

seekret git /path/to/repo

扫描远程仓库所有commits里的全部文件

seekret git http://github.com/apuigsech/seekret-exposed

扫描本地仓库里的最后一个commit里的全部文件

seekret git --count 1 /path/to/repo

扫描本地文件夹下的所有文件(包括隐藏文件)

seekret dir --recursive --hidden /path/to/dir

动手实践

seekret-secrets是准备用来测试seekret的,可以用来执行下面的例子:

1、检查远程git仓库:

seekret --rules $GOPATH/src/github.com/apuigsech/seekret/rules/ git https://github.com/apuigsech/seekret-secrets.git

2、检查本地git仓库:

git clone https://github.com/apuigsech/seekret-secrets.git /tmp/seekret-secretsseekret --rules $GOPATH/src/github.com/apuigsech/seekret/rules/ git /tmp/seekret-secrets

3、检查最近2个commits:

seekret --rules $GOPATH/src/github.com/apuigsech/seekret/rules/ git -c 2 /tmp/seekret-secrets

4、在检查中使用exceptions:

seekret --rules $GOPATH/src/github.com/apuigsech/seekret/rules/ -x /tmp/seekret-secrets/.exception_1 git /tmp/seekret-secrets

库的用法

导入seekret库

import seekret "github.com/apuigsech/seekret/lib"

初始化seekret上下文

s := seekret.NewSeekret()

加载Rules

s.LoadRulesFromPath("/path/to/main/rues:/path/to/other/rules:/path/to/more/rules")
s.LoadRulesFromDir("/path/to/rules")
s.LoadRulesFromFile("/path/to/file.rule")

加载对象

opts := map[string]interface{} {  "hidden": true,  "recursive": false,}s.LoadObjects("dir", "/path/to/inspect", opts)

opts := map[string]interface{} {  "count": 10,}s.LoadObjects("dir", "/repo/to/inspect", opts)

加载exceptions

s.LoadExceptionsFromFile("/path/to/exceptions/file")

检查

s.Inspect(5)

获取检查结果

secretsList := s.ListSecrets()

Rules规则

敏感信息的特征是通过rules文件中的规则来标识的。这些扩展名为“.rule”的文件按照下面的格式用YAML来定义:

rulename:  match: [regexp]  unmatch:    - [regexp]    - [regexp]    - ...

对于包含敏感信息的文件,必须满足”match”正则表达式,并且不符合“unmatch”里的任何正则表达式规则。

Exceptions例外

Exceptions里的条件决定了什么内容不是敏感信息。按照下面的格式使用YAML来定义:

...-  rule: [rulename]  object: [regexp]  line: [linenumber]  content: [regexp]-  ...

这些条件是可选的,因此不是所有的条件都要指定,但是被认为是例外的内容必须满足所有指定的条件。

各种条件的含义解释:

rule 规则的名称。

object 匹配对象名称(通常是文件名)的正则表达式。

line 对象中的行数。

content 匹配内容的正则表达式。

下载地址

https://github.com/apuigsech/seekret

*本文译者:felix,本文转载于FreeBuf黑客与极客(FreeBuf.COM)

本文标签:
45分钟扫遍全网:最快的互联网扫描工具ZMap 1.2.1版使用手册
国产SQL注入漏洞测试工具 – 超级SQL注入工具(SSQLInjection)
Joy:一款用于捕获和分析网络内部流量数据的工具Joy:一款用于捕获和分析网络内部流量数据的工具One-Lin3r:懒人的福音,渗透测试单行化工具One-Lin3r:懒人的福音,渗透测试单行化工具EvilURL v2.0一个生成用于钓鱼攻击的IDN域名的工具EvilURL v2.0一个生成用于钓鱼攻击的IDN域名的工具国产网站恶意代码监测(网马监控)工具优化版国产网站恶意代码监测(网马监控)工具优化版

已有0条评论,欢迎点评!

smiley smiley smiley smiley smiley smiley smiley smiley smiley smiley smiley smiley smiley smiley smiley smiley

国际惯例, 沙发拿下 . . .


注册帐号  |  忘记密码