-
Notifications
You must be signed in to change notification settings - Fork 42
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 94c8da4
Showing
48 changed files
with
4,817 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
# EditorConfig | ||
# editorconfig.org | ||
|
||
|
||
[*] | ||
charset = utf-8 | ||
end_of_line = lf | ||
indent_size = 4 | ||
indent_style = space | ||
insert_final_newline = true | ||
trim_trailing_whitespace = true | ||
|
||
[*.go] | ||
indent_style = tab | ||
|
||
[*.{toml,yml,yaml}] | ||
indent_size = 2 | ||
|
||
[{Makefile, makefile, GNUmakefile}] | ||
indent_style = tab | ||
|
||
[*.md] | ||
trim_trailing_whitespace = false |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
Hey there and thank you for using the issue tracker! | ||
|
||
## Checklist before filing an issue: | ||
|
||
- [ ] Is this something you can **debug and fix**? Send a pull request! Bug fixes and documentation fixes are welcome. | ||
- [ ] Have a usage question? Ask your question on [StackOverflow](http://stackoverflow.com), [StackExchange Security](https://security.stackexchange.com) or similar platform. | ||
- [ ] Have an idea for a feature? Make sure that it hasn't been suggested before and describe your idea in detail. | ||
|
||
## None of the above? create a bug report | ||
|
||
Make sure to add **all the information needed to understand the bug** so that someone can help. If information is missing, the issue will be labeled with 'Needs more information' and closed until there is enough information. | ||
|
||
## Expected Behavior | ||
|
||
|
||
## Actual Behavior | ||
|
||
|
||
## Steps to Reproduce the Problem | ||
|
||
1. | ||
2. | ||
3. | ||
|
||
## Specifications | ||
|
||
- Gitrob version: | ||
- Operating system: | ||
- Go version: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
--- | ||
name: Bug report | ||
about: Create a report to help us improve | ||
title: '' | ||
labels: '' | ||
assignees: '' | ||
|
||
--- | ||
|
||
**Describe the bug** | ||
A clear and concise description of what the bug is. | ||
|
||
**To Reproduce** | ||
Steps to reproduce the behavior: | ||
1. Go to '...' | ||
2. Click on '....' | ||
3. Scroll down to '....' | ||
4. See error | ||
|
||
**Expected behavior** | ||
A clear and concise description of what you expected to happen. | ||
|
||
**Screenshots** | ||
If applicable, add screenshots to help explain your problem. | ||
|
||
**Desktop (please complete the following information):** | ||
- OS: [e.g. iOS] | ||
- Browser [e.g. chrome, safari] | ||
- Version [e.g. 22] | ||
|
||
**Smartphone (please complete the following information):** | ||
- Device: [e.g. iPhone6] | ||
- OS: [e.g. iOS8.1] | ||
- Browser [e.g. stock browser, safari] | ||
- Version [e.g. 22] | ||
|
||
**Additional context** | ||
Add any other context about the problem here. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
--- | ||
name: Feature request | ||
about: Suggest an idea for this project | ||
title: '' | ||
labels: '' | ||
assignees: '' | ||
|
||
--- | ||
|
||
**Is your feature request related to a problem? Please describe.** | ||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] | ||
|
||
**Describe the solution you'd like** | ||
A clear and concise description of what you want to happen. | ||
|
||
**Describe alternatives you've considered** | ||
A clear and concise description of any alternative solutions or features you've considered. | ||
|
||
**Additional context** | ||
Add any other context or screenshots about the feature request here. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
**IMPORTANT: Please do not create a Pull Request without creating an issue first.** | ||
|
||
*Any change needs to be discussed before proceeding. Failure to do so may result in the rejection of the pull request.* | ||
|
||
Please provide enough information so that others can review your pull request: | ||
|
||
<!-- You can skip this if you're fixing a typo or similar tiny fix. --> | ||
|
||
Explain the **details** for making this change. What existing problem does the pull request solve? | ||
|
||
<!-- Example: When "Adding a function to do X", explain why it is necessary to have a way to do X. --> | ||
|
||
**Closing issues** | ||
|
||
Put `closes #XXXX` in your comment to auto-close the issue that your PR fixes (if such). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
# Binaries for programs and plugins | ||
*.exe | ||
*.exe~ | ||
*.dll | ||
*.so | ||
*.dylib | ||
gitrob | ||
gitrob.exe | ||
|
||
vendor/ | ||
build/ | ||
|
||
# Test binary, build with `go test -c` | ||
*.test | ||
|
||
# Output of the go coverage tool, specifically when used with LiteIDE | ||
*.out | ||
|
||
# Dropbox settings and caches | ||
.dropbox | ||
.dropbox.attr | ||
.dropbox.cache | ||
|
||
# temporary files which can be created if a process still has a handle open of a deleted file | ||
.fuse_hidden* | ||
|
||
# KDE directory preferences | ||
.directory | ||
|
||
# Linux trash folder which might appear on any partition or disk | ||
.Trash-* | ||
|
||
# .nfs files are created when an open file is removed but is still being accessed | ||
.nfs* | ||
|
||
|
||
# TextMate | ||
*.tmproj | ||
*.tmproject | ||
tmtags | ||
|
||
# Swap | ||
[._]*.s[a-v][a-z] | ||
[._]*.sw[a-p] | ||
[._]s[a-v][a-z] | ||
[._]sw[a-p] | ||
|
||
# Session | ||
Session.vim | ||
|
||
# Temporary | ||
.netrwhist | ||
*~ | ||
# Auto-generated tag files | ||
tags | ||
|
||
# General | ||
.DS_Store | ||
.AppleDouble | ||
.LSOverride | ||
|
||
# Icon must end with two \r | ||
Icon | ||
|
||
|
||
# Thumbnails | ||
._* | ||
|
||
# Files that might appear in the root of a volume | ||
.DocumentRevisions-V100 | ||
.fseventsd | ||
.Spotlight-V100 | ||
.TemporaryItems | ||
.Trashes | ||
.VolumeIcon.icns | ||
.com.apple.timemachine.donotpresent | ||
|
||
# Directories potentially created on remote AFP share | ||
.AppleDB | ||
.AppleDesktop | ||
Network Trash Folder | ||
Temporary Items | ||
.apdisk |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
# use the latest ubuntu environment (18.04) available on travis | ||
dist: bionic | ||
|
||
language: go | ||
|
||
# You don't need to test on very old versions of the Go compiler. It's the user's | ||
# responsibility to keep their compiler up to date. | ||
go: | ||
- 1.12.x | ||
- 1.13.x | ||
- 1.14.x | ||
|
||
# Only clone the most recent commit. | ||
git: | ||
depth: 1 | ||
|
||
# Skip the install step. Don't `go get` dependencies. Only build with the code | ||
# in vendor/ | ||
install: false | ||
|
||
# Don't email me the results of the test runs. | ||
notifications: | ||
email: false | ||
|
||
# Anything in before_script that returns a nonzero exit code will flunk the | ||
# build and immediately stop. It's sorta like having set -e enabled in bash. | ||
# We can download and extract the golangci-lint binary in one (long) command. | ||
before_script: | ||
- curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $GOPATH/bin v1.25.1 | ||
|
||
# script always runs to completion (set +e). If we have linter issues AND a | ||
# failing test, we want to see both. Configure golangci-lint with a | ||
# .golangci.yml file at the top level of your repo. | ||
script: | ||
- golangci-lint run # run a bunch of code checkers/linters in parallel | ||
- go test -v -race ./... # Run all the tests with the race detector enabled |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
|
||
# Changelog | ||
All notable changes to this project will be documented in this file. | ||
|
||
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) | ||
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). | ||
|
||
## [Unreleased] | ||
### Added | ||
- Dependency management with dep | ||
|
||
### Changed | ||
- Skip expensive signature checking for image extensions and files in `node_modules` and other package directories | ||
|
||
## 2.0.0-beta - 2018-06-08 | ||
### Added | ||
- Total rewrite of Gitrob in [Golang](https://golang.org/) | ||
- Find interesting files in history down to a default (and configurable) depth of 500 commits | ||
- Hexdump view for binary files | ||
- Saving and loading of session files for easy sharing | ||
|
||
### Removed | ||
- All the stupid Rubygems with native extensions | ||
- PostgreSQL dependency | ||
- Messy assessment comparison feature | ||
- User overview | ||
- Repository overview | ||
|
||
[Unreleased]: https://github.com/michenriksen/gitrob/compare/v2.0.0-beta...HEAD |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
The MIT License (MIT) | ||
|
||
Copyright (c) 2018 Michael Henriksen | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in | ||
all copies or substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||
THE SOFTWARE. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,94 @@ | ||
<p align="center"> | ||
<img src="https://github.com/michenriksen/gitrob/raw/master/static/images/gopher_full.png" alt="Gitrob" width="200" /> | ||
</p> | ||
<br /> | ||
<br /> | ||
<br /> | ||
|
||
# Gitrob: Putting the Open Source in OSINT | ||
![GitHub go.mod Go version](https://img.shields.io/github/go-mod/go-version/mattyjones/Gitrob) ![GitHub release (latest by date)](https://img.shields.io/github/v/release/mattyjones/Gitrob) ![GitHub](https://img.shields.io/github/license/mattyjones/Gitrob) ![Code Climate maintainability](https://img.shields.io/codeclimate/maintainability/mattyjones/Gitrob) ![Code Climate technical debt](https://img.shields.io/codeclimate/tech-debt/mattyjones/Gitrob) ![Code Climate issues](https://img.shields.io/codeclimate/issues/mattyjones/Gitrob) ![Snyk Vulnerabilities for GitHub Repo](https://img.shields.io/snyk/vulnerabilities/github/mattyjones/Gitrob) ![Coveralls github](https://img.shields.io/coveralls/GitHub/mattyjones/Gitrob) ![CircleCI](https://img.shields.io/circleci/build/github/mattyjones/Gitrob) | ||
|
||
Gitrob is a tool to help find potentially sensitive files pushed to public repositories on Github. Gitrob will clone repositories belonging to a user or organization down to a configurable depth and iterate through the commit history and flag files that match signatures for potentially sensitive files. The findings will be presented through a web interface for easy browsing and analysis. | ||
|
||
## Usage | ||
|
||
gitrob [options] target [target2] ... [targetN] | ||
|
||
### Options | ||
|
||
``` | ||
-bind-address string | ||
Address to bind web server to (default "127.0.0.1") | ||
-commit-depth int | ||
Number of repository commits to process (default 500) | ||
-debug | ||
Print debugging information | ||
-enterprise-upload-url string | ||
Upload URL for Github Enterprise (defaults to the URL set in -enterprise-url if any) | ||
-enterprise-url string | ||
URL for Github Enterprise | ||
-enterprise-user string | ||
Username for Github Enterprise (defaults to first target) | ||
-github-access-token string | ||
GitHub access token to use for API requests | ||
-include-forks | ||
Include forked repositories in scan | ||
-load string | ||
Load session file | ||
-no-expand-orgs | ||
Don't add members to targets when processing organizations | ||
-no-server | ||
Disables web server | ||
-port int | ||
Port to run web server on (default 9393) | ||
-save string | ||
Save session to file | ||
-silent | ||
Suppress all output except for errors | ||
-threads int | ||
Number of concurrent threads (default number of logical CPUs) | ||
-gather-all | ||
Specify whether to pull all repositories from the domain | ||
``` | ||
|
||
### Saving session to a file | ||
|
||
By default, gitrob will store its state for an assessment in memory. This means that the results of an assessment is lost when Gitrob is closed. You can save the session to a file by using the `-save` option: | ||
|
||
gitrob -save ~/gitrob-session.json acmecorp | ||
|
||
Gitrob will save all the gathered information to the specified file path as a special JSON document. The file can be loaded again for browsing at another point in time, shared with other analysts or parsed for custom integrations with other tools and systems. | ||
|
||
### Loading session from a file | ||
|
||
A session stored in a file can be loaded with the `-load` option: | ||
|
||
gitrob -load ~/gitrob-session.json | ||
|
||
Gitrob will start its web interface and serve the results for analysis. | ||
|
||
### Use with Github Enterprise | ||
|
||
To configure Gitrob for Github Enterprise, the following switches can be used: | ||
|
||
- `enterprise-url`: Must be specified; this is the URL where the path `/api/v3/` exists. This is usually the URL where the Github web interface can be found. Example: `-enterprise-url=https://github.yourcompany.com` | ||
- `enterprise-upload-url:` Optional, defaults to `enterprise-url`; full path to the upload URL if different from the main Github Enterprise URL. Example: `-enterprise-upload-url=https://github.yourcompany.com/api/v3/upload` | ||
- `enterprise-user`: Optional, defaults to the first target. Example: `-enterprise-user=your.username` | ||
|
||
## Installation | ||
|
||
A [precompiled version is available](https://github.com/michenriksen/gitrob/releases) for each release, alternatively you can use the latest version of the source code from this repository in order to build your own binary. | ||
|
||
Make sure you have a correctly configured **Go >= 1.11** environment and that `$GOPATH/bin` is in your `$PATH` | ||
|
||
$ go get github.com/michenriksen/gitrob | ||
|
||
This command will download gitrob, install its dependencies, compile it and move the `gitrob` executable to `$GOPATH/bin`. | ||
|
||
### Github access token | ||
|
||
Gitrob will need a Github access token in order to interact with the Github API. [Create a personal access token](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/) and save it in an environment variable in your `.bashrc` or similar shell configuration file: | ||
|
||
export GITROB_ACCESS_TOKEN=deadbeefdeadbeefdeadbeefdeadbeefdeadbeef | ||
|
||
Alternatively you can specify the access token with the `-github-access-token` option, but watch out for your command history! |
Oops, something went wrong.