GShark
轻松有效地扫描敏感信息。
GShark
该项目基于 Go 和 Vue 构建了一个敏感信息检测管理系统。详细介绍请参阅文章和视频。目前,所有扫描仅针对公共环境,不包括本地环境。
关于 GShark 的使用,请参阅 wiki。
特性
- 支持多个平台,如 GitLab、GitHub、Searchcode 和 Postman
- 灵活的菜单和 API 权限设置
- 灵活的规则和过滤规则
- 使用 gobuster 进行子域名暴力破解
- 易于使用的管理系统
- 支持 Docker 部署
快速开始
Docker
git clone https://github.com/madneal/gshark
cd gshark
docker-compose build && docker-compose up
[!重要] MySQL 数据库初始化之前,扫描器容器会退出。
数据库初始化后需要重启扫描器。
手动部署
要求
- Nginx
- MySQL(版本高于 8.0)
建议使用 nginx 部署前端项目。将 dist
文件夹放在 /var/www/html
中,并调整 nginx.conf
文件(Linux 中为 /etc/nginx/nginx.conf)以设置后端服务的反向代理。详细部署教程可以观看 bilibili 或 youtube 上的视频。Windows 上的部署请参考此链接。
Nginx
可以使用 nginx -t
定位 nginx.conf
文件,然后修改 nginx.conf
:
// 根据需要配置用户
user www www;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8080;
server_name localhost;
location / {
autoindex on;
root html;
index index.html index.htm;
}
location /api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://127.0.0.1:8888;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
include servers/*;
}
部署工作很简单。从 releases 找到相应版本的 zip 文件。
解压并将 dist
内的文件复制到 Nginx 的 /var/www/html
文件夹。
unzip gshark*.zip
cd gshark*
mv dist /var/www/html/
# 对于 Mac
mv dist /usr/local/www/html/
启动 Nginx,前端就部署成功了。
[!提示] 如果你通过 Homebrew 安装了 Nginx,需要通过以下命令停止 Nginx:
brew services stop nginx
服务器服务
./gshark serve
首先,将 config-temp.yaml
重命名为 config.yaml
。之后,你可以直接运行 gshark
二进制文件。然后,访问 localhost:8080
进行本地部署。
如果你之前没有初始化数据库,首先会重定向到数据库初始化页面。
扫描服务
./gshark scan
对于扫描服务,需要配置相应的规则。例如,GitHub 或 GitLab 规则。
增量部署
对于增量部署,应执行 sql.md 中的相应数据库操作。
开发
服务器
git clone https://github.com/madneal/gshark.git
cd server
go mod tidy
mv config-temp.yaml config.yaml
go build
运行 Web 服务器:
./gshark serve 或 go run main.go serve
运行扫描任务:
./gshark scan 或 go run main.go scan
Web
cd ../web
npm install
npm run serve
使用
添加令牌
GitHub
要执行 GitHub 的扫描任务,你需要添加 GitHub 令牌以在 GitHub 中爬取信息。你可以在 tokens 生成令牌。大多数访问范围就足够了。对于 GitLab 搜索,也要记得添加令牌。
Postman
获取 postman.sid
cookie:
规则配置
对于 Github 或 GitLab 规则,规则将按照相应平台的语法进行匹配。直接配置你在 GitHub 上搜索的内容。你可以下载规则导入模板 CSV 文件,然后批量导入规则。
过滤配置
过滤器目前仅针对 GitHub 搜索。有三类过滤器,包括 extension
、keyword
和 sec_keyword
。对于 extension
和 keyword
,它们可用作黑名单或白名单。
更多信息,你可以参考这个视频。
配置
你应该将 config-temp.yaml
重命名为 config.yaml
,并根据你的环境配置数据库信息和其他信息。
GitLab 基础 URL
常见问题
- 登录的默认用户名和密码
gshark/gshark
- 数据库初始化失败
确保 MySQL 版本高于 5.6。第二次初始化前删除数据库。
go get ./... 连接错误
建议启用 GOPROXY(参考这篇文章进行 golang 升级):
go env -w GOPROXY=https://goproxy.cn,direct
go env -w GO111MODULE=on
- 将 web 部署到
nginx
时,页面为空
尝试清除 LocalStorage
资源
文章
视频
- GShark v1.5.0 版本及 Docker 使用指南
- GShark v1.3.0 版本支持 Docker
- GShark 支持多种规则类型以及规则配置建议
- 批量导入规则
- GShark部署
- Windows 部署
- GShark v1.0.2 版本发布
- GShark v1.1.0 更新内容介绍
许可证
404StarLink 2.0 - Galaxy
GShark 是 404Team 星链计划2.0中的一环,如果对 GShark 有任何疑问或想要找小伙伴交流,可以参考星链计划的加群方式。