Convert Figma logo to code with AI

leebaird logodiscover

Custom bash scripts used to automate various penetration testing tasks including recon, scanning, enumeration, and malicious payload creation using Metasploit. For use with Kali Linux.

3,409
820
3,409
0

Top Related Projects

E-mails, subdomains and names Harvester - OSINT

SpiderFoot automates OSINT for threat intelligence and mapping your attack surface.

10,895

Incredibly fast crawler designed for OSINT.

Fast subdomains enumeration tool for penetration testers

A Tool for Domain Flyovers

19,837

Fast and customizable vulnerability scanner based on simple YAML based DSL.

Quick Overview

Discover is a custom bash script used to automate various recon tasks for penetration testing and bug bounty hunting. It combines multiple tools and techniques to gather information about target domains, perform network scans, and identify potential vulnerabilities.

Pros

  • Comprehensive reconnaissance tool that combines multiple utilities
  • Automates various tasks, saving time for security professionals
  • Regularly updated with new features and improvements
  • Customizable and extensible for specific needs

Cons

  • Requires a Linux environment (preferably Kali Linux) to run
  • May require additional setup and dependencies installation
  • Some features might be overkill for basic recon tasks
  • Learning curve for users unfamiliar with command-line tools

Getting Started

To get started with Discover:

  1. Clone the repository:

    git clone https://github.com/leebaird/discover.git
    
  2. Change to the Discover directory:

    cd discover
    
  3. Run the setup script to install dependencies:

    ./update.sh
    
  4. Launch the main script:

    ./discover.sh
    
  5. Follow the on-screen prompts to select the desired recon options and enter target information.

Note: It's recommended to run Discover on Kali Linux for the best compatibility with its dependencies and tools.

Competitor Comparisons

E-mails, subdomains and names Harvester - OSINT

Pros of theHarvester

  • Focused specifically on gathering email addresses, subdomains, and other information from various public sources
  • Supports a wide range of data sources, including search engines, social media, and DNS records
  • Actively maintained with regular updates and improvements

Cons of theHarvester

  • More limited in scope compared to Discover's broader range of reconnaissance tools
  • Requires additional tools for comprehensive information gathering and analysis
  • Less user-friendly for beginners due to command-line interface

Code Comparison

theHarvester:

from theHarvester.discovery import *
from theHarvester.discovery.constants import *
search = googlesearch.search_google(word, limit, start)
search.process()

Discover:

#!/bin/bash
echo "Starting Discover..."
nmap -sV -O -p- $target
whois $target
dig $target

theHarvester focuses on Python-based information gathering from specific sources, while Discover uses a combination of bash scripting and various command-line tools for a broader range of reconnaissance tasks. theHarvester is more specialized in its approach, whereas Discover offers a more comprehensive toolkit for different aspects of information gathering and analysis.

SpiderFoot automates OSINT for threat intelligence and mapping your attack surface.

Pros of Spiderfoot

  • More comprehensive and automated OSINT platform
  • Extensive module system with 200+ data sources
  • Web-based UI for easier visualization and interaction

Cons of Spiderfoot

  • Steeper learning curve due to more complex features
  • Requires more system resources for full functionality
  • May produce overwhelming amount of data for simple tasks

Code Comparison

Discover (Bash script):

#!/usr/bin/env bash

# Check for root
if [ $EUID -ne 0 ]; then
    echo "This script must be run as root." 1>&2
    exit 1
fi

Spiderfoot (Python):

from sflib import SpiderFoot
from spiderfoot import SpiderFootPlugin, SpiderFootEvent

class sfp_example(SpiderFootPlugin):
    meta = {
        'name': "Example Module",
        'summary': "This is an example module to be used as a template.",
        'flags': [""],
        'useCases': [""],
        'categories': [""]
    }

Discover is a simpler Bash-based tool focused on specific reconnaissance tasks, while Spiderfoot is a more comprehensive Python-based OSINT framework with modular architecture. Discover is easier to use for quick scans, whereas Spiderfoot offers more advanced features and data correlation capabilities.

10,895

Incredibly fast crawler designed for OSINT.

Pros of Photon

  • Focused on web reconnaissance and information gathering
  • Faster execution due to its specialized nature
  • More extensive crawling capabilities, including JavaScript rendering

Cons of Photon

  • Limited scope compared to Discover's broader toolset
  • Less comprehensive reporting options
  • Requires more manual interpretation of results

Code Comparison

Photon (Python):

def photon(url, level, threads, delay, timeout, cook, headers):
    colors.info('Crawling the target')
    dataset = photon_crawler.crawl(url, level, threads, delay, timeout, cook, headers)
    # ... (processing and output)

Discover (Bash):

recon() {
    echo
    echo $medium "${FUNCNAME[0]} function started"
    echo
    # ... (various reconnaissance tools and commands)
}

Key Differences

Photon is a specialized Python tool for web crawling and information gathering, while Discover is a more comprehensive Bash-based reconnaissance toolkit. Photon excels in deep web crawling but has a narrower focus, whereas Discover offers a broader range of tools for various reconnaissance tasks. Photon may be more suitable for specific web-based targets, while Discover provides a more versatile approach to information gathering across different domains.

Fast subdomains enumeration tool for penetration testers

Pros of Sublist3r

  • Focused specifically on subdomain enumeration, making it more specialized and potentially more effective for this task
  • Utilizes multiple search engines and sources for comprehensive results
  • Supports multithreading for faster scanning

Cons of Sublist3r

  • Limited to subdomain enumeration, while Discover offers a broader range of reconnaissance tools
  • Less actively maintained, with fewer recent updates compared to Discover
  • Lacks the extensive reporting and output options provided by Discover

Code Comparison

Sublist3r (Python):

def main(domain, threads, savefile, ports, silent, verbose, enable_bruteforce, engines):
    bruteforce_list = []
    subdomains = []
    search_list = []

Discover (Bash):

if [ -z "$1" ]; then
     echo "Usage: $0 <domain>"
     exit
fi

domain=$1

Both repositories focus on different aspects of reconnaissance. Sublist3r is a Python-based tool specifically designed for subdomain enumeration, while Discover is a more comprehensive Bash-based toolkit for various reconnaissance tasks. Sublist3r's code demonstrates its focus on subdomain discovery with multiple options, while Discover's code snippet shows a simpler command-line interface for broader functionality.

A Tool for Domain Flyovers

Pros of Aquatone

  • Focused specifically on web-based reconnaissance and screenshot gathering
  • Provides a visual dashboard for easy analysis of results
  • Written in Go, offering cross-platform compatibility and easy deployment

Cons of Aquatone

  • More limited in scope compared to Discover's broader toolset
  • Requires separate tools for additional reconnaissance tasks
  • Less frequent updates and maintenance

Code Comparison

Aquatone (Go):

func takeScreenshot(url string, timeout time.Duration) (*[]byte, error) {
    ctx, cancel := chromedp.NewContext(context.Background())
    defer cancel()
    ctx, cancel = context.WithTimeout(ctx, timeout)
    defer cancel()
    // ... (screenshot capture logic)
}

Discover (Bash):

recon() {
    echo
    echo $medium "${FUNCNAME[0]} module"$reset
    echo
    echo "Usage: recon <ip> <domain>"
    echo
    # ... (reconnaissance logic)
}

Summary

Discover is a comprehensive reconnaissance toolkit with a wide range of features, while Aquatone focuses specifically on web-based reconnaissance and visual analysis. Discover offers more versatility but may require more setup, whereas Aquatone provides a streamlined experience for web-centric tasks. The choice between them depends on the specific needs of the user and the scope of the reconnaissance project.

19,837

Fast and customizable vulnerability scanner based on simple YAML based DSL.

Pros of Nuclei

  • More focused and specialized for vulnerability scanning
  • Extensive library of pre-built templates for various security checks
  • Highly customizable and extensible with YAML-based templates

Cons of Nuclei

  • Steeper learning curve for creating custom templates
  • Less comprehensive in terms of overall reconnaissance capabilities
  • Requires more manual configuration for full-scale penetration testing

Code Comparison

Discover (Bash script):

#!/bin/bash
echo "Starting reconnaissance..."
nmap -sV -p- $target
whois $target
dig $target

Nuclei (YAML template):

id: example-scan
info:
  name: Example Scan
  severity: info
requests:
  - method: GET
    path:
      - "{{BaseURL}}"
    matchers:
      - type: word
        words:
          - "Example"

Summary

Discover is a more comprehensive reconnaissance tool that combines various utilities for information gathering, while Nuclei focuses specifically on vulnerability scanning with customizable templates. Discover offers a broader range of reconnaissance capabilities out-of-the-box, while Nuclei provides more depth in vulnerability detection and allows for easy creation of custom security checks.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Custom bash scripts used to automate various penetration testing tasks including recon, scanning, 
enumeration, and malicious payload creation using Metasploit. For use with Kali Linux.

License: MIT Rawsec's CyberSecurity Inventory

  • Twitter Follow Lee Baird @discoverscripts
  • Twitter Follow Jay "L1ghtn1ng" Townsend @jay_townsend1
  • Twitter Follow Jason Ashton @ninewires

Download, setup, and usage

  • git clone https://github.com/leebaird/discover /opt/discover/
  • Discover should be ran as root from this location.
  • cd /opt/discover/
  • sudo ./discover.sh
  • Select option 15 to update Kali Linux, Discover scripts, various tools, and the locate database before using the framework.
RECON
1.  Domain
2.  Person

SCANNING
3.  Generate target list
4.  CIDR
5.  List
6.  IP, range, or URL
7.  Rerun Nmap scripts and MSF aux

WEB
8.  Insecure direct object reference
9.  Open multiple tabs in Firefox
10. Nikto
11. SSL

MISC
12. Parse XML
13. Generate a malicious payload
14. Start a Metasploit listener
15. Update
16. Exit

RECON

Domain

RECON

1.  Passive
2.  Active
3.  Find registered domains
4.  Previous menu

Passive uses ARIN, DNSRecon, dnstwist, goog-mail, goohost, theHarvester, Metasploit, Whois, multiple websites, and recon-ng.

Active uses DNSRecon, recon-ng, Traceroute, wafw00f, and Whatweb.

Acquire API keys for maximum results with theHarvester.

  • Add keys to /root/.theHarvester/api-keys.yaml
  • If this file doesn't exist, run theHarvester and it will be created.

Person

RECON

First name:
Last name:
  • Combines info from multiple websites.

SCANNING

Generate target list

SCANNING

1.  ARP scan
2.  Ping sweep
3.  Previous menu
  • Use different tools to create a target list including Angry IP Scanner, arp-scan, netdiscover, and nmap pingsweep.

CIDR, List, IP, Range, or URL

Type of scan:

1.  External
2.  Internal
3.  Previous menu
  • External scan will set the nmap source port to 53 and the max-rrt-timeout to 1500ms.
  • Internal scan will set the nmap source port to 88 and the max-rrt-timeout to 500ms.
  • Nmap is used to perform host discovery, port scanning, service enumeration, and OS identification.
  • Nmap scripts and Metasploit auxiliary modules are used for additional enumeration.
  • Addition tools: enum4linux, smbclient, and ike-scan.

WEB

Insecure direct object reference

Using Burp, authenticate to a site, map & Spider, then log out.
Target > Site map > select the URL > right click > Copy URLs in
this host. Paste the results into a new file.

Enter the location of your file:

Open multiple tabs in Firefox

Open multiple tabs in Firefox with:

1.  List
2.  Files in a directory
3.  Directories in robots.txt
4.  Previous menu

Examples:

  • A list containing multiple IPs and/or URLs.
  • You finished scanning multiple web sites with Nikto and want to open every htm report located in a directory.
  • Use wget to download a domain's robot.txt file, then open all of the directories.

Nikto

This option cannot be ran as root.

Run multiple instances of Nikto in parallel.

1.  List of IPs
2.  List of IP:port
3.  Previous menu

SSL

Check for SSL certificate issues.

List of IP:port.


Enter the location of your file:
  • Uses sslscan, sslyze, and nmap to check for SSL/TLS certificate issues.

MISC

Parse XML

Parse XML to CSV.

1.  Burp (Base64)
2.  Nessus (.nessus)
3.  Nexpose (XML 2.0)
4.  Nmap
5.  Qualys
6.  Previous menu

Generate a malicious payload

Malicious Payloads

1.   android/meterpreter/reverse_tcp         (.apk)
2.   cmd/windows/reverse_powershell          (.bat)
3.   java/jsp_shell_reverse_tcp (Linux)      (.jsp)
4.   java/jsp_shell_reverse_tcp (Windows)    (.jsp)
5.   java/shell_reverse_tcp                  (.war)
6.   linux/x64/meterpreter_reverse_https     (.elf)
7.   linux/x64/meterpreter_reverse_tcp       (.elf)
8.   linux/x64/shell/reverse_tcp             (.elf)
9.   osx/x64/meterpreter_reverse_https       (.macho)
10.  osx/x64/meterpreter_reverse_tcp         (.macho)
11.  php/meterpreter_reverse_tcp             (.php)
12.  python/meterpreter_reverse_https        (.py)
13.  python/meterpreter_reverse_tcp          (.py)
14.  windows/x64/meterpreter_reverse_https   (multi)
15.  windows/x64/meterpreter_reverse_tcp     (multi)
16.  Previous menu

Start a Metasploit listener

Metasploit Listeners

1.   android/meterpreter/reverse_tcp
2.   cmd/windows/reverse_powershell
3.   java/jsp_shell_reverse_tcp
4.   linux/x64/meterpreter_reverse_https
5.   linux/x64/meterpreter_reverse_tcp
6.   linux/x64/shell/reverse_tcp
7.   osx/x64/meterpreter_reverse_https
8.   osx/x64/meterpreter_reverse_tcp
9.   php/meterpreter/reverse_tcp
10.  python/meterpreter_reverse_https
11.  python/meterpreter_reverse_tcp
12.  windows/x64/meterpreter_reverse_https
13.  windows/x64/meterpreter_reverse_tcp
14.  Previous menu

Update

  • Update Kali Linux, Discover scripts, various tools, and the locate database.

Troubleshooting

Some users have reported being unable to use any options except for 3, 4, and 5. Nothing happens when choosing other options (1, 2, 6, etc.).

Always run Discover as root

cd /opt/discover/
sudo ./discover.sh

Verify the download hash

Hash-based verification ensures that a file has not been corrupted by comparing the file's hash value to a previously calculated value. If these values match, the file is presumed to be unmodified.

macOS

  1. Open Terminal
  2. shasum -a 256 /path/to/file
  3. Compare the value to the checksum on the website.

Windows

  1. Open PowerShell
  2. Get-FileHash C:\path\to\file
  3. Compare the value to the checksum on the website.

Running Kali on VirtualBox or Windows Subsystem for Linux (WSL)

Some users have reported the fix is to use the VMware image instead of WSL.

Other users have noticed issues when running a pre-made VirtualBox Kali image, instead of running the bare metal Kali ISO through VirtualBox. (https://www.kali.org/get-kali/#kali-bare-metal)

If you are unwilling or unable to use VMware Workstation to run Kali, we encourage you to try running a Kali ISO as a Guest VM in VirtualBox.

  1. Download the bare metal ISO provided by Kali.
  2. Verify the ISO hash (see above).
  3. Start a new Kali VM within VirtualBox with the bare metal Kali ISO.

There will be some basic installation instructions you will be required to fill out during the installation.

Note: If you have problems accessing root after setting up a bare metal ISO, please refer to: https://linuxconfig.org/how-to-reset-kali-linux-root-password