Convert Figma logo to code with AI

nahamsec logolazyrecon

This script is intended to automate your reconnaissance process in an organized fashion

1,893
567
1,893
34

Top Related Projects

19,837

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,780

In-depth attack surface mapping and asset discovery

3,859

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

12,220

Fast web fuzzer written in Go

Quick Overview

LazyRecon is an automated reconnaissance tool designed for bug bounty hunters and penetration testers. It automates various recon processes, including subdomain enumeration, port scanning, and vulnerability scanning, to streamline the initial phases of security assessments and bug hunting.

Pros

  • Automates multiple reconnaissance tasks, saving time and effort
  • Integrates various popular tools like Sublist3r, Amass, and Nmap
  • Customizable and extensible through configuration files
  • Generates organized output for easy analysis

Cons

  • Requires multiple dependencies to be installed separately
  • May generate a large amount of noise or false positives
  • Limited documentation and community support
  • Not actively maintained (last update was in 2020)

Getting Started

  1. Clone the repository:

    git clone https://github.com/nahamsec/lazyrecon.git
    
  2. Install dependencies:

    sudo apt-get install sublist3r amass nmap whatweb
    
  3. Make the script executable:

    chmod +x lazyrecon.sh
    
  4. Run LazyRecon:

    ./lazyrecon.sh -d example.com
    

Note: Ensure you have proper authorization before scanning any domains or systems you don't own.

Competitor Comparisons

19,837

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

Pros of Nuclei

  • More extensive and customizable scanning capabilities with a large library of templates
  • Supports multiple protocols beyond just HTTP (e.g., DNS, TCP, SSH)
  • Active development and frequent updates from a larger community

Cons of Nuclei

  • Steeper learning curve due to its more complex configuration and template system
  • May require more system resources for large-scale scans compared to LazyRecon

Code Comparison

LazyRecon (Bash script):

echo "Starting recon on $domain"
mkdir -p $domain $domain/screenshots $domain/loot $domain/gowitness

Nuclei (YAML template):

id: example-template
info:
  name: Example Template
  author: John Doe
  severity: info
requests:
  - method: GET
    path:
      - "{{BaseURL}}"

Summary

Nuclei offers more advanced and flexible scanning capabilities, supporting various protocols and a vast template library. However, it may be more complex to use and resource-intensive compared to LazyRecon. LazyRecon is simpler and focuses on basic reconnaissance tasks, making it easier for beginners but less powerful for advanced users. The choice between the two depends on the user's needs, expertise, and the complexity of the target environment.

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

Pros of httprobe

  • Lightweight and focused on a single task (probing for live HTTP/HTTPS servers)
  • Fast execution due to its simplicity and Go implementation
  • Easy to integrate into other tools or scripts

Cons of httprobe

  • Limited functionality compared to LazyRecon's comprehensive reconnaissance approach
  • Lacks built-in reporting or output formatting options
  • Requires additional tools for a complete recon workflow

Code Comparison

LazyRecon (Bash):

for domain in $(cat $domain_list); do
    echo "Enumerating subdomains for $domain"
    ./subfinder -d $domain -o $domain_subs
done

httprobe (Go):

func main() {
    sc := bufio.NewScanner(os.Stdin)
    for sc.Scan() {
        result := probe(sc.Text())
        fmt.Println(result)
    }
}

LazyRecon is a comprehensive bash script that automates various reconnaissance tasks, including subdomain enumeration, while httprobe is a focused Go tool for probing HTTP/HTTPS servers. LazyRecon offers a broader range of functionality but may be slower and less modular. httprobe is faster and more easily integrated into custom workflows but requires additional tools for a complete reconnaissance process.

11,780

In-depth attack surface mapping and asset discovery

Pros of Amass

  • More comprehensive subdomain enumeration with multiple data sources
  • Advanced features like DNS brute-forcing and permutation scanning
  • Actively maintained with frequent updates and improvements

Cons of Amass

  • Steeper learning curve due to more complex configuration options
  • Can be resource-intensive for large-scale scans
  • May require additional setup for optimal performance

Code Comparison

LazyRecon (Bash script):

subfinder -d $domain -o .tmp/subfinder_$domain
assetfinder --subs-only $domain | tee .tmp/assetfinder_$domain

Amass (Go-based tool):

enum := amass.NewEnumeration()
enum.Config.AddDomain(domain)
err := enum.Start()

LazyRecon is a shell script that combines various tools, while Amass is a standalone Go application with more integrated functionality. LazyRecon is simpler to use but less feature-rich, whereas Amass offers more advanced capabilities at the cost of increased complexity.

3,859

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

Pros of gau

  • Faster execution due to Go implementation
  • More focused on URL discovery from various sources
  • Simpler to use with fewer dependencies

Cons of gau

  • Less comprehensive reconnaissance compared to LazyRecon
  • Lacks built-in vulnerability scanning features
  • Doesn't include subdomain enumeration capabilities

Code Comparison

LazyRecon (Bash):

while read line; do
    if [[ ! "${line}" =~ ^[[:space:]]*# ]]; then
        echo "${line}" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//'
    fi
done < "${1:-/dev/stdin}"

gau (Go):

func main() {
    var domains []string
    sc := bufio.NewScanner(os.Stdin)
    for sc.Scan() {
        domains = append(domains, sc.Text())
    }
}

LazyRecon is a more comprehensive reconnaissance tool written in Bash, offering a wider range of features including subdomain enumeration and vulnerability scanning. It's designed for broader security assessments but may be slower due to its shell script nature.

gau, on the other hand, is a focused Go-based tool for URL discovery. It's faster and simpler to use, making it ideal for quick URL gathering tasks. However, it lacks the extensive reconnaissance capabilities of LazyRecon.

Choose LazyRecon for comprehensive security assessments, and gau for rapid URL discovery in specific scenarios.

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 crawling and discovering endpoints, providing more targeted functionality
  • Supports custom headers and cookies for authenticated crawling

Cons of hakrawler

  • Less comprehensive than LazyRecon, focusing primarily on crawling
  • Requires manual integration with other tools for a complete reconnaissance workflow
  • May miss some reconnaissance steps that LazyRecon automates

Code Comparison

LazyRecon (Bash):

while read line; do
    if [[ ! -z "$line" ]]; then
        sleep 1
        $tools/httprobe -c 50 < $line > $line.tmp
        cat $line.tmp | sed 's/https\?:\/\///' | sort -u > $line
        rm $line.tmp
    fi
done < $domain_list

hakrawler (Go):

func crawl(url string, depth int, source 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 different approaches: LazyRecon uses Bash scripting for domain probing, while hakrawler implements a recursive crawling function in Go.

12,220

Fast web fuzzer written in Go

Pros of ffuf

  • Written in Go, offering better performance and cross-platform compatibility
  • More focused on web fuzzing with advanced features like custom output formats
  • Actively maintained with frequent updates and contributions

Cons of ffuf

  • Lacks the all-in-one reconnaissance approach of LazyRecon
  • Requires more manual configuration and chaining with other tools for comprehensive recon
  • Steeper learning curve for beginners compared to LazyRecon's script-based approach

Code Comparison

ffuf:

func main() {
    flag.Parse()
    if err := ffuf.New().Run(); err != nil {
        fmt.Printf("\n[ERR] %s\n", err)
        os.Exit(1)
    }
}

LazyRecon:

aquatone-discover -d $domain
aquatone-scan -d $domain
cat $domain/hosts.txt | httprobe > $domain/responsive.txt
subjack -w $domain/hosts.txt -t 100 -timeout 30 -ssl -c ~/go/src/github.com/haccer/subjack/fingerprints.json -v 3 >> $domain/final.txt

The code snippets highlight the different approaches: ffuf uses a Go-based structure for web fuzzing, while LazyRecon employs a bash script to chain multiple reconnaissance tools together.

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

  _     ____  ____ ___  _ ____  _____ ____ ____  _
 / \   /  _ \/_   \\  \///  __\/  __//   _Y  _ \/ \  /|
 | |   | / \| /   / \  / |  \/||  \  |  / | / \|| |\ ||
 | |_/\| |-||/   /_ / /  |    /|  /_ |  \_| \_/|| | \||
 \____/\_/ \|\____//_/   \_/\_\\____\\____|____/\_/  \|

Usage

./lazyrecon.sh -d domain.com

To exclude particular subdomains:

./lazyrecon.sh -d domain.com -e excluded.domain.com,other.domain.com

About

LazyRecon is a script written in Bash, it is intended to automate some tedious tasks of reconnaissance and information gathering. This tool allows you to gather some information that should help you identify what to do next and where to look.

Main Features

  • Create a dated folder with recon notes

  • Grab subdomains using:

    * Sublist3r, certspotter and cert.sh
    * Dns bruteforcing using massdns
    
  • Find any CNAME records pointing to unused cloud services like aws

  • Probe for live hosts over ports 80/443

  • Grab a screenshots of responsive hosts

  • Scrape wayback for data:

    * Extract javascript files
    * Build custom parameter wordlist, ready to be loaded later into Burp intruder or any other tool
    * Extract any urls with .jsp, .php or .aspx and store them for further inspection
    
  • Perform nmap on specific ports

  • Get dns information about every subdomain

  • Perform dirsearch for all subdomains

  • Generate a HTML report with output from the tools above

  • Improved reporting and less output while doing the work

  • Dark mode for html reports

New features

  • Directory search module is now MULTITHREADED (up to 10 subdomains scanned at a time)
  • Enhanced html reports with the ability to search for strings, endpoints, reponse sizes or status codes
  • Subdomain exclusion by using option -e like this: -e excluded.domain.com,other.domain.com

DEMO

cli output

report demo

Installation & Requirements

System Requirements

  • Recommended to run on vps with 1VCPU and 2GB ram.

Authors and Thanks

This script makes use of tools developped by the following people

TO DO

  • Report only mode to generate reports for old dirsearch data

Warning: This code was originally created for personal use, it generates a substantial amount of traffic, please use with caution.