├── .env.example ├── .github ├── FUNDING.yml └── workflows │ └── main.yml ├── BugBountyScanner.sh ├── Dockerfile ├── LICENSE ├── README.md ├── dist └── github-markdown.css ├── setup.sh └── utils ├── ScopeToBurp.sh ├── runTests.sh └── screenshotReport.sh /.env.example: -------------------------------------------------------------------------------- 1 | toolsDir='/opt' 2 | telegram_api_key='XXXXXXXXX:XXX_XXXXXXXXXXXXX_XXXXXXXXXXXX' 3 | telegram_chat_id='XXXXXXXXX' -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: [chvancooten] 2 | -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: Build and Test Docker Container 2 | 3 | on: 4 | push: 5 | branches: [ master ] 6 | pull_request: 7 | branches: [ master ] 8 | schedule: 9 | - cron: '0 4 * * SAT' 10 | 11 | env: 12 | TEST_TAG: chvancooten/bugbountyscanner:test 13 | LATEST_TAG: chvancooten/bugbountyscanner:latest 14 | 15 | jobs: 16 | docker: 17 | runs-on: ubuntu-latest 18 | steps: 19 | - name: Checkout 20 | uses: actions/checkout@v3 21 | 22 | - name: Set up QEMU 23 | uses: docker/setup-qemu-action@v2 24 | 25 | - name: Set up Docker Buildx 26 | uses: docker/setup-buildx-action@v2 27 | 28 | - name: Login to Docker Hub 29 | uses: docker/login-action@v2 30 | with: 31 | username: chvancooten 32 | password: ${{ secrets.DOCKERHUB_TOKEN }} 33 | 34 | - name: Build and export to Docker 35 | uses: docker/build-push-action@v4 36 | with: 37 | context: . 38 | load: true 39 | tags: ${{ env.TEST_TAG }} 40 | 41 | - name: Test image 42 | run: | 43 | docker run --rm -i ${{ env.TEST_TAG }} bash < ./utils/runTests.sh 44 | 45 | - name: Build and push 46 | uses: docker/build-push-action@v4 47 | with: 48 | context: . 49 | platforms: linux/amd64 50 | push: true 51 | tags: ${{ env.LATEST_TAG }} -------------------------------------------------------------------------------- /BugBountyScanner.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ## Automated Bug Bounty recon script 3 | ## By Cas van Cooten 4 | 5 | scriptDir=$(dirname "$(readlink -f "$0")") 6 | baseDir=$PWD 7 | lastNotified=0 8 | thorough=true 9 | notify=true 10 | overwrite=false 11 | 12 | source "./utils/screenshotReport.sh" 13 | 14 | function notify { 15 | if [ "$notify" = true ] 16 | then 17 | if [ $(($(date +%s) - lastNotified)) -le 3 ] 18 | then 19 | echo "[!] Notifying too quickly, sleeping to avoid skipped notifications..." 20 | sleep 3 21 | fi 22 | 23 | # Format string to escape special characters and send message through Telegram API. 24 | if [ -z "$DOMAIN" ] 25 | then 26 | message=`echo -ne "*BugBountyScanner:* $1" | sed 's/[^a-zA-Z 0-9*_]/\\\\&/g'` 27 | else 28 | message=`echo -ne "*BugBountyScanner [$DOMAIN]:* $1" | sed 's/[^a-zA-Z 0-9*_]/\\\\&/g'` 29 | fi 30 | 31 | curl -s -X POST "https://api.telegram.org/bot$telegram_api_key/sendMessage" -d chat_id="$telegram_chat_id" -d text="$message" -d parse_mode="MarkdownV2" &> /dev/null 32 | lastNotified=$(date +%s) 33 | fi 34 | } 35 | 36 | for arg in "$@" 37 | do 38 | case $arg in 39 | -h|--help) 40 | echo "BugBountyHunter - Automated Bug Bounty reconnaissance script" 41 | echo " " 42 | echo "$0 [options]" 43 | echo " " 44 | echo "options:" 45 | echo "-h, --help show brief help" 46 | echo "-t, --toolsdir
$domain
Report generated by BugBountyScanner
63 |