Convert Figma logo to code with AI

s0md3v logoReconDog

Reconnaissance Swiss Army Knife

1,784
338
1,784
14

Top Related Projects

20,301

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

Take a list of domains and probe for working HTTP and HTTPS servers

11,936

In-depth attack surface mapping and asset discovery

A Tool for Domain Flyovers

3,923

Fetch known URLs from AlienVault's Open Threat Exchange, the Wayback Machine, and Common Crawl.

Simple, fast web crawler designed for easy, quick discovery of endpoints and assets within a web application

Quick Overview

ReconDog is an all-in-one tool for reconnaissance and information gathering. It provides a collection of various tools and techniques to perform reconnaissance on target domains or IP addresses, making it useful for penetration testers, security researchers, and ethical hackers.

Pros

  • Comprehensive set of reconnaissance tools in one package
  • Easy-to-use command-line interface
  • Regularly updated with new features and improvements
  • Supports both passive and active reconnaissance techniques

Cons

  • Some features may require additional dependencies or API keys
  • Limited documentation for advanced usage
  • May trigger security alerts on target systems during active scans
  • Potential for misuse if not used responsibly

Getting Started

To get started with ReconDog, follow these steps:

  1. Clone the repository:

    git clone https://github.com/s0md3v/ReconDog.git
    
  2. Navigate to the ReconDog directory:

    cd ReconDog
    
  3. Install the required dependencies:

    pip install -r requirements.txt
    
  4. Run ReconDog:

    python dog
    
  5. Follow the on-screen prompts to select and use the desired reconnaissance tools.

Note: Some features may require additional configuration or API keys. Refer to the project's documentation for more detailed instructions on specific tools and their usage.

Competitor Comparisons

20,301

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

Pros of Nuclei

  • More extensive and customizable vulnerability scanning capabilities
  • Larger community and more frequent updates
  • Better performance and scalability for large-scale scans

Cons of Nuclei

  • Steeper learning curve due to its complexity
  • Requires more setup and configuration compared to ReconDog

Code Comparison

ReconDog (Python):

def reverseip(self, host):
    url = f"https://api.hackertarget.com/reverseiplookup/?q={host}"
    result = self.make_request(url)
    return result

Nuclei (YAML template):

id: example-template
info:
  name: Example Template
  author: John Doe
  severity: info
requests:
  - method: GET
    path:
      - "{{BaseURL}}/example"
    matchers:
      - type: word
        words:
          - "Example Response"

Summary

Nuclei offers more advanced features and flexibility for vulnerability scanning, making it suitable for complex security assessments. ReconDog, on the other hand, provides a simpler interface for basic reconnaissance tasks. Nuclei's template-based approach allows for easy customization, while ReconDog's Python codebase is more straightforward for quick modifications. Choose Nuclei for comprehensive scans and ReconDog for quick, basic reconnaissance.

Take a list of domains and probe for working HTTP and HTTPS servers

Pros of httprobe

  • Faster and more efficient for probing large lists of domains
  • Lightweight and focused on a single task (HTTP/HTTPS probing)
  • Written in Go, offering better performance and cross-platform compatibility

Cons of httprobe

  • Limited functionality compared to ReconDog's comprehensive reconnaissance toolset
  • Requires additional tools for more advanced reconnaissance tasks
  • Less user-friendly for beginners due to command-line interface

Code Comparison

ReconDog (Python):

def reverseIP(self, host):
    try:
        response = requests.get('https://api.hackertarget.com/reverseiplookup/?q=' + host).text
        return response
    except:
        return '\nError: Unable to perform reverse IP lookup.'

httprobe (Go):

func probeHttp(domain string, timeout time.Duration) (string, error) {
    client := &http.Client{Timeout: timeout}
    resp, err := client.Get("http://" + domain)
    if err != nil {
        return "", err
    }
    defer resp.Body.Close()
    return resp.Request.URL.String(), nil
}

Both tools serve different purposes, with ReconDog offering a broader range of reconnaissance features and httprobe focusing specifically on efficient HTTP/HTTPS probing. ReconDog is more suitable for users seeking an all-in-one reconnaissance tool, while httprobe excels in quickly validating live web servers from large domain lists.

11,936

In-depth attack surface mapping and asset discovery

Pros of Amass

  • More comprehensive subdomain enumeration with multiple data sources
  • Active and well-maintained project with frequent updates
  • Supports advanced features like DNS brute-forcing and permutation scanning

Cons of Amass

  • Steeper learning curve due to more complex usage and configuration
  • Requires more system resources and may be slower for quick scans
  • Can be overwhelming for beginners or simple reconnaissance tasks

Code Comparison

ReconDog (Python):

def reverseip(host):
    lookup = 'https://api.hackertarget.com/reverseiplookup/?q=' + host
    try:
        result = requests.get(lookup).text
        return result
    except:
        return False

Amass (Go):

func (e *Enumeration) submitKnownNames() {
    for _, src := range e.Sys.DataSources() {
        if names, err := src.Domains(); err == nil {
            e.submitNames(names)
        }
    }
}

ReconDog is simpler and more straightforward, focusing on basic reconnaissance tasks. Amass offers more advanced functionality and is designed for more comprehensive enumeration, but with increased complexity.

A Tool for Domain Flyovers

Pros of Aquatone

  • More comprehensive web-based reconnaissance tool
  • Supports multiple input formats and integrates with other tools
  • Generates visual reports with screenshots and clustering

Cons of Aquatone

  • Requires more setup and dependencies
  • May be slower for quick, basic reconnaissance tasks
  • Steeper learning curve for beginners

Code Comparison

ReconDog (Python):

def reverseip():
    web=web0
    if 'http' in web:
        web=web.replace('http://','')
        web=web.replace('https://','')
    print(G+'\n [!] Looking Up for Reverse IP Info...')
    time.sleep(0.4)
    print(GR+' [*] Configuring Request...')
    r=requests.get('https://api.hackertarget.com/reverseiplookup/?q='+web)
    print(O+' [!] Parsing Information...')
    time.sleep(0.6)
    print('')
    print(r.content)

Aquatone (Go):

func takeScreenshot(page *agouti.Page, url string, outputPath string) error {
	if err := page.Navigate(url); err != nil {
		return err
	}

	if err := page.Screenshot(outputPath); err != nil {
		return err
	}

	return nil
}

Summary

ReconDog is a simpler, Python-based tool for quick reconnaissance tasks, while Aquatone is a more comprehensive Go-based tool for web-based reconnaissance with advanced features like visual reporting. ReconDog is easier to use for beginners, while Aquatone offers more powerful capabilities but requires more setup and expertise.

3,923

Fetch known URLs from AlienVault's Open Threat Exchange, the Wayback Machine, and Common Crawl.

Pros of gau

  • Focused specifically on URL discovery from various sources
  • Faster execution due to its specialized nature
  • Supports multiple output formats (json, text)

Cons of gau

  • Limited to URL discovery, lacks broader reconnaissance features
  • Requires additional tools for comprehensive recon
  • Less user-friendly for beginners compared to ReconDog's menu-driven interface

Code Comparison

ReconDog (Python):

def reverseip():
    web = input('\nEnter Website: ')
    r = requests.get('https://api.hackertarget.com/reverseiplookup/?q=' + web)
    print('\n' + r.text)

gau (Go):

func getWaybackUrls(domain string, includeSubs bool) {
    var waybackreq string
    if includeSubs {
        waybackreq = fmt.Sprintf("domain:%s", domain)
    } else {
        waybackreq = fmt.Sprintf("url:%s", domain)
    }
    resp := fetch(fmt.Sprintf("http://web.archive.org/cdx/search/cdx?url=%s/*&output=json&fl=original&collapse=urlkey", waybackreq))
    // ... (processing and output)
}

ReconDog is a more comprehensive tool with various recon features, while gau specializes in URL discovery. ReconDog offers a user-friendly interface suitable for beginners, whereas gau is more focused and potentially faster for its specific task. The code snippets highlight the different approaches: ReconDog uses Python and relies on external APIs, while gau is written in Go and directly interacts with data sources.

Simple, fast web crawler designed for easy, quick discovery of endpoints and assets within a web application

Pros of hakrawler

  • Written in Go, offering better performance and cross-platform compatibility
  • Focuses on web crawling and content discovery, providing more specialized functionality
  • Supports concurrent crawling, improving efficiency for large-scale reconnaissance

Cons of hakrawler

  • More limited in scope compared to ReconDog's broader feature set
  • Requires Go installation and compilation, which may be less convenient for some users
  • Less user-friendly for beginners due to command-line interface and fewer built-in tools

Code Comparison

ReconDog (Python):

def reverseIP():
    web = raw_input('Enter the website: ')
    response = requests.get('https://api.hackertarget.com/reverseiplookup/?q=' + web).text
    print(response)

hakrawler (Go):

func crawl(url string, depth int, c chan string) {
    if depth >= *maxDepth {
        return
    }
    resp, err := client.Get(url)
    if err != nil {
        return
    }
    defer resp.Body.Close()
    // ... (crawling logic)
}

The code snippets highlight the language differences and focus areas of each tool. ReconDog's example shows a simple API request for reverse IP lookup, while hakrawler's code demonstrates its web crawling functionality with depth control.

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


Photon
ReconDog

Reconnaissance Swiss Army Knife

Main Features

  • Wizard + CLA interface
  • Can extracts targets from STDIN (piped input) and act upon them
  • All the information is extracted with APIs, no direct contact is made to the target

Utilities

  • Censys: Uses censys.io to gather massive amount of information about an IP address.
  • NS Lookup: Does name server lookup
  • Port Scan: Scan most common TCP ports
  • Detect CMS: Can detect 400+ content management systems
  • Whois lookup: Performs a whois lookup
  • Detect honeypot: Uses shodan.io to check if target is a honeypot
  • Find subdomains: Uses findsubdomains.com to find subdomains
  • Reverse IP lookup: Does a reverse IP lookup to find domains associated with an IP address
  • Detect technologies: Uses wappalyzer.com to detect 1000+ technologies
  • All: Runs all utilities against the target

Demo

demo

Compatibility

Recon Dog will run on anything that has a python interpreter installed. However, it has been tested on the following configurations:

Operating Systems: Windows, Linux, Mac
Python Versions: Python2.7, Python 3.6

Installation

Recon Dog requires no manual configuration and can be simply run as a normal python script.
However, a debian package can be downloaded from here if you want to install it.

Usage

Wizard Interface

Wizard interface is the most straightforward way you can use Recon Dog in. Just run the program, select what you want to do and enter the target, it's that simple.

CLA Interface

Recon Dog also has a Command Line Argument inteface. Here's how you can find subdomains:

python dog -t marvel.com -c 7

There's more to it! Do you have a program that can enumerate subdomains and you want to scan ports of all the subdomains it finds? Don't worry, Recon Dog is designed for handling with such cases. You can simply do this:

subdomainfinder -t example.com | python dog --domains -c 3

If you just want to print the targets, don't use the -c option.
Also, it doesn't matter what kind of output the other program generates, Recon Dog uses regular expressions to find targets which makes it easy to integrate will literally every tool. There are two switchs available:

--domains    extract domains from STDIN
--ips        extract ip addresses from STDIN

Contribution & License

You can contribute in following ways:

  • Report bugs
  • Develop plugins
  • Give suggestions to make it better
  • Fix issues & submit a pull request

Do you want to have a conversation in private? Hit me up on my twitter, inbox is open :)
Recon Dog is licensed under Apache 2.0 License.