ZH | EN
GShark
Scan for sensitive information easily and effectively.
GShark
The project is based on Go and Vue to build a management system for sensitive information detection. For the full introduction, please refer to articles and videos. For now, all the scans are only targeted to the public environments, not local environments.
For the usage of GShark, please refer to wiki.
Features
- Support multi platforms, including Gitlab, Github, Searchcode, Postman
- Flexible menu and API permission setting
- Flexible rules and filter rules
- Utilize gobuster to brute force subdomain
- Easily used management system
Quick start
Deployment
Requirements
- Nginx
- MySQL(version above 8.0)
It's suggested to deploy the frontend project by nginx. Place the dist
folder under /var/www/html
, modify the nginx.conf
to reverse proxy the backend service. For the detailed deployment videos, refer to bilibili or youtube. For the deployment in windows, refer to here.
Nginx
Modify the nginx.conf
:
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;
}
The deployment work is very easy. Find the corresponding version zip file from releases.
Unzip and copy the files inside dist
to /var/www/html
folder of Nginx.
unzip gshark*.zip
Start the Nginx and the Front-End is deployed successfully.
Incremental Deployment
For the incremental deployment, sql.md should be executed for the corresponding database operations.
Server service
For the first time, you need to rename config-temp.yaml
to config.yaml
.
go build && ./gshark
or
go run main.go
For the scan service, it's necessary to config the corresponding rules. For example, Github or Gitlab rules.
Development
Server
git clone https://github.com/madneal/gshark.git
cd server
go mod tidy
mv config-temp.yaml config.yaml
go build
./gshark
or
go run main.go
Web
cd ../web
npm install
npm run serve
Usage
Add Token
To execute ./gshark scan
, you need to add a GitHub token for crawl information in GitHub. You can generate a token in tokens. Most access scopes are enough. For GitLab search, remember to add token too.
Rule Configuration
For the Github or Gitlab rule, the rule will be matched by the syntax in the corresponding platforms. Directly, you config what you search at GitHub. You can download the rule import template csv file, then batch import rules.
Filter Configuration
Filter is only addressed to GitHub search now. There are three classes of filter, include extension
, keyword
, sec_keyword
. For extension
and keyword
, they can used for blacklist or whitelist.
For more information, you can refer to this video.
Configuration
You are supposed to rename config-temp.yaml
to config.yaml
and config the database information and other information according to your environment.
GitLab Base Url
FAQ
- Default username and password to login
gshark/gshark
- Database initial failed
make sure the version of mysql is over 5.6. And remove the database before initial the second time.
go get ./... connection error
It's suggested to enable GOPROXY(refer this article for golang upgrade):
go env -w GOPROXY=https://goproxy.cn,direct
go env -w GO111MODULE=on
- When deployed the web to
nginx
, the page was empty
try to clear the LocalStorage
Resources
Articles
Videos
Reference
If you would like to join WeChat group, you can add my WeChat mmadneal
with the message gshark
. But I would strongly suggest you to raise an issue directly instead of just asking in WeChat.
License
404StarLink 2.0 - Galaxy
GShark 是 404Team 星链计划2.0中的一环,如果对 GShark 有任何疑问又或是想要找小伙伴交流,可以参考星链计划的加群方式。