Google Hacking和Git-all-secret
一、Google Hacking
1.index of
index of:进入网站首页的所有文件和文件夹
- intitle: “index of /”
- intitle index of / mp3
- intitle index of / mp4
- intitle index of / msvcr100.dll
- intitle index of / password
- intitle index of / software
- intitle index of / admin
- intitle index of / pdf
- intitle index of / bitcoin /
- intitle index of / inurl passport
- intitle index of / passport
2.通配符
通配符 | 语义 | 说明 | 示例 |
---|---|---|---|
+ | 包含关键词 | +前面必须要有一个空格 | admin +login |
- | 排除关键词 | -前面必须要有一个空格 | mysql -csdn |
~ | 同义词 | ~前面必须要有一个空格 | mysql ~csdn |
* | 模糊查询 | *代替任意字符 | mysql** |
“” | 强调 | - | “mysql” |
3.高级语法
语法:语句:关键词
语法 | 语义 |
---|---|
intitle | 包含标题 |
intext | 包含内容 |
filetype | 文件类型 |
info | 基本信息 |
site | 指定网站 |
inurl | 包含某个url |
link | 包含指定链接的网页 |
cache | 显示页面的缓存版本 |
numberange | 搜索一个数字 |
示例
inurl:/admin intext:后台管理系统
- 搜索目标包含后台的页面
site:"some-keywords.com" intitle:login intext: intext:管理|后台|登陆|用户名|密码|验证码|系统|帐号|manage|admin|login|system
intext: index of / | ../ | Parent Directory
- 搜索目标是否有列目录
site:"some-keywords.com" intext: index of /| ../ | Parent Directory
二、Git-all-secret
1.Git-all-secret功能描述
- 克隆多个某组织的 public/private仓库并扫描
- 克隆多个某组织用户的 public/private仓库并扫描
- 克隆一个某组织的 public/private仓库并扫描
- 克隆一个某用户的public/private 仓库并扫描
- 克隆一个某用户的 public/secret gist(代码片段管理服务)并扫描
- 克隆一个某组织团队的仓库并扫描
- 克隆和扫描Github企业仓库还有gists
2.扫描过程需要借助的开源工具
- truffleHog -扫描高嫡值字符串和用户提供的正则表达式
- repo-supervisor 扫描在js和json文件中的高熵值字符串
所有工具中的输出文件最终会合并为一个输出文件
3.新手入门
运行Git-all-secrets最简便的方法是使用Docker
获取Docker:apt install docker docker-compose
- 运行docker run --rm -it abhartiya/tools_gitallsecrets --help了解不同标志
- 运行docker run -it abhartiya/tools_gitallsecrets -token=<> -org=<>扫描组织
- 运行docker run -it abhartiyaltools_gitallsecrets -token=<> *-org=<> -toolName=<>选择特定工具 toolName=thog or repo-supervisor
- 运行docker run -it abhartiya/tools_gitallsecrets -token=<> -org=<> -toolName=thog -thogEntropy truffleHog的默认正则和高嫡设置
- 当容器完成运行,输入docker ps -a返回容器ID
- 获得容器ID以后,输入docker cp :/root/results.txt来获取结果文件
docker run :创建一个新的容器并运行一个命令
-it :-i 以交互模式运行容器
-t 为容器重新分配一个伪输入终端
docker ps -a:查看所有的容器
docker cp:在容器和本地文件系统之间复制文件/文件夹
4.标志/选项
- -token= Github访问令牌。如果未授权请求Github API会被限速。
- -org=组织扫描。它会扫描组织中的所有公共仓库,以及用户的gists。如果你使用的是该组织用户的token,它还会克隆并扫描该用户的所有私密gists,以及所有该用户有权限访问的私有仓库。
- -user= 用户扫描。它会扫描当前用户的所有仓库和gists,扫描私有仓库请使用scanPrivateReposOnly标志,以及SSHkey。
- -repoURL= httpsURL仓库扫描。它只会扫描当前仓库。如果你希望扫描私有仓库,请提供SSH URL和SSHkey,以及scanPrivateReposOnly标志。
- -gistURL= httpsURL Gist扫描。它只会扫描Gist。如果你知道私密gist的httpsURL,它也能够访问。
- -output=输出结果文件,默认是result.txt。
- -cloneForks=这是一个布尔标志。默认设置为0,不克隆forks,如果设置为1,它就会克隆forks。
- -orgonly=这也是一个布尔标志。默认设置为0。如果只扫描组织仓库而不扫描用户的仓库,请将它设置为1。
- -toolName= 这是规范扫描工具的标志。默认它使用all,thog和repo-supervisoro
- -scanPrivateReposOnly=这是规范是否扫描用户私有仓库的标志。它只能工作在user、repoURL、org标志。
- -enterpriseURL= 企业GithubURL的标志,如果你希望扫描企业仓库,就选这个。-threads= 默认线程10。
- -thogEntropy=开启高熵提取,默认是false。设置为true会有大量的垃圾信息,在比较大的目标上,不建议开启。如果设置为false,则意味着truffieHog只会提取基于rules.json文件中的正则结果。
- -blacklist=不需要扫描的仓库名称,以逗号分隔。
注意事项
- Token选项不能为空
- Org user repoURL gistURL不能都设置为空,至少需要提供一个选项。如果你提供了多个选项,他的顺序是org>user>repoURL>gistURL。如果你只需要运行在特定用户上,那就不需要提供org选项。
- 当定义scanPrivateReposOnly标志时:
1.必须将包含SSH-key的卷载入到Docker容器中,使用-v选项。
2.它应该在扫描私有仓库时使用,使用SSH url,而不是https url。
3.确保使用了私有仓库/gist的用户token,否则会报错。
4.如果你想在没有手动干扰的情况下运行,请不要设置SSH key的密钥密码。 - 当定义teamName标志的时候,提供一个团队成员用户的token非常重要,否则可能会出现意外结果。
- 当定义enterpriseURL标志的时候,即使你提供了https URL,它也始终会考虑ssh key。所有企业克隆/扫描都是通过ssh url,而不是https url。
综上,请确保使用了SSH key,并且没有设置密钥密码。
扫描私有仓库
扫描私有仓库最稳妥的方法是使用SSHURL克隆。实现这个你需要将SSH key添加到Github用户。
用户配置参考: https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account确保这个kev没有密码设置。
有了SSH kev以后,将它挂载到Docker容器中,运行如下命令:
docker run -it -v ~/.ssh/id_rsa_personal:/root/.ssh/id_rsa abhartiya/tools_gitallsecrets -token=<> -user=<>-scanPrivateReposOnlv or docker run -it -v ~/.ssh/id_rsa_personal:/root/.ssh/id_rsa
abhartiya/tools_gitallsecrets -token=<> -repoURL=<> -scanPrivateReposOnly
将本地的personalSSH-key存储到Docker内部容器/rootl.ssh/id_rsa,git-all-secrets会试图通过存储在/rootl.ssh/id_rsa的ssh key来克隆仓库。
扫描组织团队
Github API限制了私有仓库环境。尝试使用非管理员用户扫描组织,需要给用户添加仓库的访问权限。如果要扫描组织团队,可以运行: docker run --it -v ~/.ssh/id_rsa_personal:/root/.ssh/id_rsaabhartiya/tools_gitallsecrets -token=<> -org=<>-teamName <>
扫描企业Github
git-all-secrets支持扫描企业仓库,使用enterpriseURL选项:
实例1:
docker run -it -v ~/.ssh/id_rsa_gitenterprise:/root/.ssh/id_rsa -token -enterpriseURL
https://github..com/api/v3 -repoURL https://github..com//.git
实例2:
docker run -it -v ~/.ssh/id_rsa_gitenterprise:/root/.ssh/id_rsa -token -enterpriseURL
https://github..com/api/v3 -repoURL https:/github..com//.git -toolName thog -thogEntropy
实例3:
docker run -it -v ~/.ssh/id_rsa_gitenterprise:/root/.ssh/id_rsa -token -enterpriseURL
https://github..com/api/v3 -user -scanPrivateReposOnly
特性
可以添加自己的正则表达式,在docker run的时候使用-v
$(pwd)/rules.json:/root/truffleHog/rules.json。可以使用默认正则表达式,如果需要,也可以用truffleHog提供的高熵字符串。可以通过repo-supervisor工具搜索.js和.json中的高熵字符串。可以搜索用户的Gist,大多数工具都没这个功能。有新工具可以很容易地集成到git-all-secrets。支持扫描企业Github orgs/users/repos/gists。大多数工具只扫描单个仓库,git-all-secrets可以一次扫描多个。