Skip to content

EasyRecon/wappaGo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WappaGo

About WappaGoInstallationUsage

About

WappaGo has been developed to assemble different features from tools like HTTPX, Naabu, GoWitness and Wappalyzer. To allow an efficient detection of technologies, it is necessary to open a browser and in order to avoid opening a browser for each target, WappaGo opens only one browser and uses the system of pages which allows to consume less resources and to carry out an analysis much more quickly.

Installation

Download the latest release or compile by yourself :

git clone https://github.com/EasyRecon/wappaGo
cd wappaGo && go build 

or

go install github.com/EasyRecon/wappaGo@latest

Note : wappaGo requires Chrome to be present on the system

Usage

Usage of wappaGo:
  -amass-input
        Pip directly on Amass (Amass json output) like amass -d domain.tld | wappaGo
  -chrome-threads int
        Number of chromes threads in each main threads total = option.threads*option.chrome-threads (Default 5) (default 5)
  -follow-redirect
        Follow redirect to detect technologie
  -port-timeout int
        Timeout during port scanning in ms (default 2000)
  -ports string
        port want to scan separated by coma (default "80,443")
  -proxy string
        Use http proxy
  -report
        Generate HTML report
  -resolvers string
        Use specifique resolver separated by comma
  -screenshot string
        path to screenshot if empty no screenshot
  -threads int
        Number of threads to start recon in same time (default 5)

You can either use wappaGo from a file containing a list of domains

cat domain.txt | ./wappaGo

or from an Amass output (preferred)

amass enum -d example.com -ipv4 -json out.json
cat out.json | ./wappaGo -amass-input

Library

You can use wappaGo as a library in your own project.

Options

type WrapperOptions struct {
	Screenshot     string
	Ports          string
	Threads        int
	Porttimeout    int
	Resolvers      string
	FollowRedirect bool
	ChromeTimeout  int
	ChromeThreads  int
	Proxy          string
}

Example

package main

import (
	"fmt"

	"github.com/EasyRecon/wappaGo/structure"
	"github.com/EasyRecon/wappaGo/wrapper"
)

func main() {
	input := []string{"google.com", "twitter.com"}

	options := structure.WrapperOptions{
		Ports:      "80,443",
		Screenshot: "screenshots",
	}

      // Async mode

	results := make(chan structure.Data)

	go func() {
		for result := range results {
			fmt.Println(result)
		}
	}()

	wrapper.StartReconAsync(input, options, results)

      // Sync mode

      results := wrapper.StartReconSync(input, options)

	for _, result := range results {
		fmt.Println(result)
	}
}

For each url, you will receive a structure.Data which contains all the information about the target.

Todo

  • Add robot technologie dectection
  • Add xhr technologie dectection

Thank's

This tool uses several ProjectDiscovery libraries