Code Monkey home page Code Monkey logo

screetsec / sudomy Goto Github PK

View Code? Open in Web Editor NEW
1.9K 33.0 367.0 98.8 MB

Sudomy is a subdomain enumeration tool to collect subdomains and analyzing domains performing automated reconnaissance (recon) for bug hunting / pentesting

Home Page: https://github.com/Screetsec/

License: MIT License

Python 10.99% Shell 87.63% Dockerfile 1.38%
bugbounty subdomain-enumeration scanner enumeration reconnaissance pentesting hackerone bugcrowd kali kali-linux

sudomy's Introduction

Sudomy

License Build Status Version Build Build Contributions Welcome Donate

Subdomain Enumeration & Analysis

sudomy

Sudomy is a subdomain enumeration tool to collect subdomains and analyzing domains performing advanced automated reconnaissance (framework). This tool can also be used for OSINT (Open-source intelligence) activities.

Features !

For recent time, Sudomy has these 20 features:
  • Easy, light, fast and powerful. Bash script (controller) is available by default in almost all Linux distributions. By using bash script multiprocessing feature, all processors will be utilized optimally.
  • Subdomain enumeration process can be achieved by using active method or passive method
    • Active Method

      • Sudomy utilize Gobuster tools because of its highspeed performance in carrying out DNS Subdomain Bruteforce attack (wildcard support). The wordlist that is used comes from combined SecList (Discover/DNS) lists which contains around 3 million entries
    • Passive Method

      • By evaluating and selecting the good third-party sites/resources, the enumeration process can be optimized. More results will be obtained with less time required. Sudomy can collect data from these well-curated 22 third-party sites:

          https://censys.io
          https://developer.shodan.io
          https://dns.bufferover.run
          https://index.commoncrawl.org 
          https://riddler.io 
          https://api.certspotter.com
          https://api.hackertarget.com 
          https://api.threatminer.org
          https://community.riskiq.com
          https://crt.sh
          https://dnsdumpster.com
          https://docs.binaryedge.io
          https://securitytrails.com
          https://graph.facebook.com
          https://otx.alienvault.com
          https://rapiddns.io
          https://spyse.com
          https://urlscan.io
          https://www.dnsdb.info
          https://www.virustotal.com
          https://threatcrowd.org
          https://web.archive.org
        
  • Test the list of collected subdomains and probe for working http or https servers. This feature uses a third-party tool, httprobe.
  • Subdomain availability test based on Ping Sweep and/or by getting HTTP status code.
  • The ability to detect virtualhost (several subdomains which resolve to single IP Address). Sudomy will resolve the collected subdomains to IP addresses, then classify them if several subdomains resolve to single IP address. This feature will be very useful for the next penetration testing/bug bounty process. For instance, in port scanning, single IP address won’t be scanned repeatedly
  • Performed port scanning from collected subdomains/virtualhosts IP Addresses
  • Testing Subdomain TakeOver attack (CNAME Resolver, DNSLookup, Detect NXDomain, Check Vuln)
  • Taking Screenshots of subdomains default using gowitness or you can choice another screenshot tools, like (-ss webscreeenshot)
  • Identify technologies on websites (category,application,version)
  • Detection urls, ports, title, content-length, status-code, response-body probbing.
  • Smart auto fallback from https to http as default.
  • Data Collecting/Scraping open port from 3rd party (Default::Shodan), For right now just using Shodan [Future::Censys,Zoomeye]. More efficient and effective to collecting port from list ip on target [[ Subdomain > IP Resolver > Crawling > ASN & Open Port ]]
  • Collecting Juicy URL & Extract URL Parameter ( Resource Default::WebArchive, CommonCrawl, UrlScanIO)
  • Collect interesting path (api|.git|admin|etc), document (doc|pdf), javascript (js|node) and parameter
  • Define path for outputfile (specify an output file when completed)
  • Check an IP is Owned by Cloudflare
  • Generate & make wordlist based on collecting url resources (wayback,urlscan,commoncrawl. To make that, we Extract All the paramater and path from our domain recon
  • Generate Network Graph Visualization Subdomain & Virtualhosts
  • Report output in HTML & CSV format
  • Sending notifications to a slack channel

How Sudomy Works

How sudomy works or recon flow, when you run the best arguments to collect subdomains and analyze by doing automatic recon.

root@maland: ./sudomy -d bugcrowd.com -dP -eP -rS -cF -pS -tO -gW --httpx --dnsprobe  -aI webanalyze -sS

Recon Worfklow

This Recon Workflow Sudomy v1.1.8#dev

Recon Workflow

Detail information

Detail information File Reconnaissance & Juicy Data

------------------------------------------------------------------------------------------------------

- subdomain.txt             -- Subdomain list             < $DOMAIN (Target)
- httprobe_subdomain.txt    -- Validate Subdomain	  < subdomain.txt
- webanalyzes.txt           -- Identify technology scan   < httprobe_subdomain.txt
- httpx_status_title.txt    -- title+statuscode+lenght    < httprobe_subdomain.txt
- dnsprobe_subdomain.txt    -- Subdomain resolv		  < subdomain.txt
- Subdomain_Resolver.txt    -- Subdomain resolv (alt)     < subdomain.txt
- cf-ipresolv.txt           -- Cloudflare scan        	  < ip_resolver.txt 
- Live_hosts_pingsweep.txt  -- Live Host check		  < ip_resolver.txt	 
- ip_resolver.txt           -- IP resolv list          	  < Subdomain_Resolver::dnsprobe
- ip_dbasn.txt		    -- ASN Number Check		  < ip_resolver.txt
- vHost_subdomain.txt       -- Virtual Host (Group by ip) < Subdomain_Resolver.txt
- nmap_top_ports.txt        -- Active port scanning       < cf-ipresolv.txt
- ip_dbport.txt		    -- Passive port scanning	  < cf-ipresolv.txt

------------------------------------------------------------------------------------------------------
- Passive_Collect_URL_Full.txt 		-- Full All Url Crawl (WebArchive, CommonCrawl, UrlScanIO)
------------------------------------------------------------------------------------------------------

- ./screenshots/report-0.html   	-- Screenshoting report    	< httprobe_subdomain.txt
- ./screenshots/gowitness/gowitness.sqlite3   		-- Database screenshot    	< httprobe_subdomain.txt

------------------------------------------------------------------------------------------------------

- ./interest/interesturi-allpath.out	-- Interest path(/api,/git,etc) < Passive_Collect_URL_Full.txt
- ./interest/interesturi-doc.out	-- Interest doc (doc,pdf,xls)   < Passive_Collect_URL_Full.txt
- ./interest/interesturi-otherfile.out	-- Other files (.json,.env,etc) < Passive_Collect_URL_Full.txt
- ./interest/interesturi-js.out		-- All Javascript files(*.js)  	< Passive_Collect_URL_Full.txt
- ./interest/interesturi-nodemodule.out	-- Files from /node_modules/    < Passive_Collect_URL_Full.txt
- ./interest/interesturi-param-full.out	-- Full parameter list 		< Passive_Collect_URL_Full.txt
- ./interest/interesturi-paramsuniq.out -- Full Uniq parameter list 	< Passive_Collect_URL_Full.txt

-  Notes : You can validate juicy/interest urls/param using urlprobe or httpx to avoid false positives
------------------------------------------------------------------------------------------------------

- ./takeover/CNAME-resolv.txt		-- CNAME Resolver 		< subdomain.txt
- ./takeover/TakeOver-Lookup.txt	-- DNSLookup 			< CNAME-resolv.txt
- ./takeover/TakeOver-nxdomain.txt	-- Other 3d service platform	< TakeOver-Lookup.txt
- ./takeover/TakeOver.txt		-- Checking Vulnerabilty	< CNAME-resolv.txt

------------------------------------------------------------------------------------------------------

- ./wordlist/wordlist-parameter.lst     -- Generate params wordlist     < Passive_Collect_URL_Full.txt
- ./wordlist/wordlist-pathurl.lst       -- Generate List paths wordlis  < Passive_Collect_URL_Full.txt

-  Notes : This Wordlist based on domain & subdomain information (path,file,query strings & parameter)
------------------------------------------------------------------------------------------------------

Publication

User Guide

Comparison

Sudomy minimize more resources when use resources (Third-Party Sites) By evaluating and selecting the good third-party sites/resources, so the enumeration process can be optimized. The domain that is used in this comparison is tiket.com.

The following are the results of passive enumeration DNS testing of Sublist3r v1.1.0, Subfinder v2.4.5, and Sudomy v1.2.0.

Untitled

In here subfinder is still classified as very fast for collecting subdomains by utilizing quite a lot of resources. Especially if the resources used have been optimized (?).

For compilation results and videos, you can check here:

When I have free time. Maybe In the future, sudomy will use golang too. If you want to contributes it's open to pull requests.

But it's shit! And your implementation sucks!

  • Yes, you're probably correct. Feel free to "Not use it" and there is a pull button to "Make it better".

Installation

Sudomy is currently extended with the following tools. Instructions on how to install & use the application are linked below.

To Download Sudomy From Github

# Clone this repository
git clone --recursive https://github.com/screetsec/Sudomy.git

Dependencies

$ python3 -m pip install -r requirements.txt

Sudomy requires jq and GNU grep to run and parse. Information on how to download and install jq can be accessed here

# Linux
apt-get update
apt-get install jq nmap phantomjs npm chromium parallel
npm i -g wappalyzer wscat

# Mac
brew cask install phantomjs 
brew install jq nmap npm parallel grep
npm i -g wappalyzer wscat


# Note
All you would need is an installation of the latest Google Chrome or Chromium 
Set the PATH in rc file for GNU grep changes

Running in a Docker Container

# Pull an image from DockerHub
docker pull screetsec/sudomy:v1.2.1-dev

# Create output directory
mkdir output

# Run an image, you can run the image on custom directory but you must copy/download config sudomy.api on current directory
docker run -v "${PWD}/output:/usr/lib/sudomy/output" -v "${PWD}/sudomy.api:/usr/lib/sudomy/sudomy.api" -t --rm screetsec/sudomy:v1.1.9-dev [argument]

# or define API variable when executed an image.

docker run -v "${PWD}/output:/usr/lib/sudomy/output" -e "SHODAN_API=xxxx" -e "VIRUSTOTAL=xxxx" -t --rm screetsec/sudomy:v1.1.9-dev [argument]

Post Installation

API Key is needed before querying on third-party sites, such as Shodan, Censys, SecurityTrails, Virustotal, and BinaryEdge.

  • The API key setting can be done in sudomy.api file.
# Shodan
# URL :  http://developer.shodan.io
# Example :
#      - SHODAN_API="VGhpc1M0bXBsZWwKVGhmcGxlbAo"

SHODAN_API=""

# Censys
# URL : https://search.censys.io/register

CENSYS_API=""
CENSYS_SECRET=""

# Virustotal
# URL : https://www.virustotal.com/gui/
VIRUSTOTAL=""


# Binaryedge
# URL : https://app.binaryedge.io/login
BINARYEDGE=""


# SecurityTrails
# URL : https://securitytrails.com/
SECURITY_TRAILS=""

YOUR_WEBHOOK_URL is needed before using the slack notifications

  • The URL setting can be done in slack.conf file.
# Configuration Slack Alert
# For configuration/tutorial to get webhook url following to this site
#     - https://api.slack.com/messaging/webhooks
# Example: 
#     - YOUR_WEBHOOK_URL="https://hooks.slack.com/services/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"

YOUR_WEBHOOK_URL="https://hooks.slack.com/services/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"

Usage

 ___         _ _  _           
/ __|_  _ __| (_)(_)_ __ _  _ 
\__ \ || / _  / __ \  ' \ || |
|___/\_,_\__,_\____/_|_|_\_, |
                          |__/ v{1.2.1#dev} by @screetsec 
Sud⍥my - Fast Subdmain Enumeration and Analyzer      
         http://github.com/screetsec/sudomy

Usage: sud⍥my.sh [-h [--help]] [-s[--source]][-d[--domain=]] 

Example: sud⍥my.sh -d example.com   
         sud⍥my.sh -s Shodan,VirusTotal -d example.com

Best Argument:
  sudomy -d domain.com -dP -eP -rS -cF -pS -tO -gW --httpx --dnsprobe  -aI webanalyze --slack -sS


Optional Arguments:
  -a,  --all             Running all Enumeration, no nmap & gobuster 
  -b,  --bruteforce      Bruteforce Subdomain Using Gobuster (Wordlist: ALL Top SecList DNS) 
  -d,  --domain          domain of the website to scan
  -h,  --help            show this help message
  -o,  --outfile         specify an output file when completed 
  -s,  --source          Use source for Enumerate Subdomain
  -aI, --apps-identifier Identify technologies on website (ex: -aI webanalyze)
  -dP, --db-port         Collecting port from 3rd Party default=shodan
  -eP, --extract-params  Collecting URL Parameter from Engine
  -tO, --takeover        Subdomain TakeOver Vulnerabilty Scanner
  -wS, --websocket       WebSocket Connection Check
  -cF, --cloudfare       Check an IP is Owned by Cloudflare
  -pS, --ping-sweep      Check live host using methode Ping Sweep
  -rS, --resolver        Convert domain lists to resolved IP lists without duplicates
  -sC, --status-code     Get status codes, response from domain list
  -nT, --nmap-top        Port scanning with top-ports using nmap from domain list
  -sS, --screenshot      Screenshots a list of website (default: gowitness)
  -nP, --no-passive      Do not perform passive subdomain enumeration 
  -gW, --gwordlist       Generate wordlist based on collecting url resources (Passive) 
       --httpx           Perform httpx multiple probers using retryablehttp 
       --dnsprobe        Perform multiple dns queries (dnsprobe) 
       --no-probe        Do not perform httprobe 
       --html            Make report output into HTML 
       --graph           Network Graph Visualization

To use all 22 Sources and Probe for working http or https servers (Validations):

$ sudomy -d hackerone.com

To use one or more source:

$ sudomy -s shodan,dnsdumpster,webarchive -d hackerone.com

To use all Sources Without Validations:

$ sudomy -d hackerone.com --no-probe

To use one or more plugins:

$ sudomy -pS -sC -sS -d hackerone.com

To use all plugins: testing host status, http/https status code, subdomain takeover and screenshots.

Nmap,Gobuster,wappalyzer and wscat Not Included.

$ sudomy -d hackerone.com --all 

To create report in HTML Format

$ sudomy -d hackerone.com --html --all

HTML Report Sample:

Dashboard Reports
Index f

To gnereate network graph visualization subdomain & virtualhosts

$ sudomy -d hackerone.com -rS --graph

Graph Visualization Sample:

nGraph
nGraph

To use best arguments to collect subdomains, analyze by doing automatic recon and sending notifications to slack

./sudomy -d ngesec.id -dP -eP -rS -cF -pS -tO -gW --httpx --dnsprobe --graph  -aI webanalyze --slack -sS

Slack Notification Sample:

Slack
Slacks

Tools Overview

  • Youtube Videos : Click here

Translations

Changelog

All notable changes to this project will be documented in this file.

Alternative Best Tool - Subdomain Enumeration

Credits & Thanks

sudomy's People

Contributors

baotang2118 avatar darkmristov avatar darshkpatel avatar destan0098 avatar georak avatar joeldeleep avatar lukep21 avatar missme3f avatar myugan avatar r1z4x avatar rhamaa avatar schopath avatar screetsec avatar sdushantha avatar soareswallace avatar thehappydinoa avatar zetc0de avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sudomy's Issues

Option to detect virtualhost

In the readme file, its mentioned that several subdomains which resolve to single IP Address would then classify.

cf-check missing

how to resolve this issue?

  • Warning: require cf-check but it's is not installed.Trying to setup pkg_cf-check
    cp: missing destination file operand after '/usr/local/bin/'

Add Support for: passivetotal.org

https://github.com/subfinder/subfinder/blob/master/libsubfinder/sources/passivetotal/passivetotal.go

//
// Written By : @ice3man (Nizamul Rana)
//
// Distributed Under MIT License
// Copyrights (C) 2018 Ice3man
//

// Package passivetotal is a golang client for Passive total Subdomain Discovery
package passivetotal

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io/ioutil"
	"net/http"

	"github.com/subfinder/subfinder/libsubfinder/helper"
)

type passivetotalObject struct {
	Subdomains []string `json:"subdomains"`
}

var passivetotalData passivetotalObject

// all subdomains found
var subdomains []string

// Query function returns all subdomains found using the service.
func Query(args ...interface{}) interface{} {

	domain := args[0].(string)
	state := args[1].(*helper.State)

	// Get credentials for performing HTTP Basic Auth
	username := state.ConfigState.PassivetotalUsername
	key := state.ConfigState.PassivetotalKey

	if username == "" || key == "" {
		return subdomains
	}

	// Create JSON Get body
	var request = []byte(`{"query":"` + domain + `"}`)

	client := &http.Client{}
	req, err := http.NewRequest("GET", "https://api.passivetotal.org/v2/enrichment/subdomains", bytes.NewBuffer(request))
	if err != nil {
		if !state.Silent {
			fmt.Printf("\npassivetotal: %v\n", err)
		}
		return subdomains
	}

	req.SetBasicAuth(username, key)

	// Set content type as application/json
	req.Header.Set("Content-Type", "application/json")

	resp, err := client.Do(req)
	if err != nil {
		if !state.Silent {
			fmt.Printf("\npassivetotal: %v\n", err)
		}
		return subdomains
	}

	// Get the response body
	body, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		if !state.Silent {
			fmt.Printf("\npassivetotal: %v\n", err)
		}
		return subdomains
	}

	// Decode the json format
	err = json.Unmarshal([]byte(body), &passivetotalData)
	if err != nil {
		if !state.Silent {
			fmt.Printf("\npassivetotal: %v\n", err)
		}
		return subdomains
	}

	// Append each subdomain found to subdomains array
	for _, subdomain := range passivetotalData.Subdomains {
		finalSubdomain := subdomain + "." + domain

		if state.Verbose == true {
			if state.Color == true {
				fmt.Printf("\n[%sPASSIVETOTAL%s] %s", helper.Red, helper.Reset, finalSubdomain)
			} else {
				fmt.Printf("\n[PASSIVETOTAL] %s", finalSubdomain)
			}
		}

		subdomains = append(subdomains, finalSubdomain)
	}

	return subdomains
}

Add more Sources

Ask, Baidu, Bing, DNSDumpster, DNSTable, Dogpile, Exalead, Google, HackerOne, IPv4Info, Netcraft, PTRArchive, Riddler, SiteDossier, ViewDNS, Yahoo
Certificates: Active pulls (optional), Censys, CertSpotter, Crtsh, Entrust, GoogleCT
AlienVault, BinaryEdge, BufferOver, CIRCL, CommonCrawl, DNSDB, GitHub, HackerTarget, Mnemonic, NetworksDB, PassiveTotal, Pastebin, RADb, Robtex, SecurityTrails, ShadowServer, Shodan, Spyse (CertDB & FindSubdomains), Sublist3rAPI, TeamCymru, ThreatCrowd, Twitter, Umbrella, URLScan, VirusTotal, WhoisXML
Web Archives: ArchiveIt, ArchiveToday, Arquivo, LoCArchive, OpenUKArchive, UKGovArchive, Wayback

Some interesting source code can be found via the following link:
https://github.com/OWASP/Amass/tree/master/services

Error while using tool

I get these issues while using the tool.

[⍥] Perfoming Sud⍥my scans - Warning: require cf-check but it's is not installed.Trying to setup pkg_cf-check cp: missing destination file operand after '/usr/local/bin/' Try 'cp --help' for more information.

I used pip install censys it says requirements satisfied.

  • Traceback (most recent call last): File "lib/censys/censys_subdomain_finder.py", line 3, in <module> import censys.certificates ImportError: No module named censys.certificates

  • /root/tools/subdomain-enum/Sudomy/plugin/exec_takeover: line 55: parallel: command not found

Add File as input.

To automate the search for specific subdomains it would be very good if you could simply use a file with predefined URLs.
Example:

sudomy --no-probe -d /subfolder/FILE.TXT -o /subfolder/OUTPUTFILE.TXT
[Inputfile.txt]
domain1.tk
domain2.co
domainxy.co.uk
test.xysites.co.uk

Subdomain Output Bug

sudomy -d testfire.net

The printouts have a space character. Incoming data has not been checked.

⇒  cat subdomain.txt                        
altoro.testfire.net
computerserviceandsales.cn srchttpdemo.testfire.net
demo-analytics.testfire.net
demo.testfire.net
demo2.testfire.net
domain2.testfire.net
evil.testfire.net
ftp.testfire.net
hkcastte.com srchttpdemo.testfire.net
httpdemo.testfire.net
localhost.testfire.net
superkeychain.com srchttpdemo.testfire.net
testfire.net
testsite.testfire.net
wellpoint.jobs.net srchttpdemo.testfire.net
wellpoint.se srchttpdemo.testfire.net
www.testfire.net

The following command can solve the problem.

cat subdomain.txt| grep testfire.net|grep -Eo "\b[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" | sort -u

Docker container doesn't have wappalyzer

It seems docker image doesn't have wappalyzer installed and thus it is not possible to identify apps

Command:

sudo docker run -v "${PWD}/output:/usr/lib/sudomy/output" -it --rm screetsec/sudomy:v1.1.2 --all -d somedomain --html -nT -sS -tO -aI

Output:

Error: require wappalyzer for identify apps but it's is not installed. Aborting.

error using sudomy

/sudomy: line 358: /home/mrcyguru/Desktop/Find/script/Dns: No such file or directory
./sudomy: line 359: /home/mrcyguru/Desktop/Find/script/Dns: No such file or directory
./sudomy: line 360: /home/mrcyguru/Desktop/Find/script/Dns: No such file or directory
./sudomy: line 361: /home/mrcyguru/Desktop/Find/script/Dns: No such file or directory
./sudomy: line 362: /home/mrcyguru/Desktop/Find/script/Dns: No such file or directory
./sudomy: line 363: /home/mrcyguru/Desktop/Find/script/Dns: No such file or directory
./sudomy: line 364: /home/mrcyguru/Desktop/Find/script/Dns: No such file or directory
./sudomy: line 365: /home/mrcyguru/Desktop/Find/script/Dns: No such file or directory
./sudomy: line 366: /home/mrcyguru/Desktop/Find/script/Dns: No such file or directory
./sudomy: line 367: /home/mrcyguru/Desktop/Find/script/Dns: No such file or directory
./sudomy: line 368: /home/mrcyguru/Desktop/Find/script/Dns: No such file or directory
./sudomy: line 369: /home/mrcyguru/Desktop/Find/script/Dns: No such file or directory
./sudomy: line 370: /home/mrcyguru/Desktop/Find/script/Dns: No such file or directory
./sudomy: line 371: /home/mrcyguru/Desktop/Find/script/Dns: No such file or directory
./sudomy: line 372: /home/mrcyguru/Desktop/Find/script/Dns: No such file or directory
./sudomy: line 373: /home/mrcyguru/Desktop/Find/script/Dns: No such file or directory
./sudomy: line 374: /home/mrcyguru/Desktop/Find/script/Dns: No such file or directory
./sudomy: line 375: /home/mrcyguru/Desktop/Find/script/Dns: No such file or directory
./sudomy: line 376: /home/mrcyguru/Desktop/Find/script/Dns: No such file or directory
./sudomy: line 377: /home/mrcyguru/Desktop/Find/script/Dns: No such file or directory


/ | _ | ()()_ __ _ _
__ \ || / _ / __ \ ' \ || |
|
/_,_,_/||__, |
|__/ v{1.1.9#dev} by @screetsec
Sud⍥my - Fast Subdmain Enumeration and Analyzer
http://github.com/screetsec/sudomy

[!] This tool is for educational purpose only.
Usage of sudomy for attacking targets without prior mutual consent is illegal
developers assume no liability and are not responsible for any misuse or damage cause by this program

[⍥] Perfoming Sud⍥my scans

[*] Load target domain: xxxxxxx.com
- starting scanning @ 2020-10-20 21:04:17

[+] Running & Checking source to be used

./sudomy: line 620: SHODAN: command not found
./sudomy: line 620: WEBARCHIVE: command not found
./sudomy: line 620: DNSDUMPSTER: command not found
./sudomy: line 620: CERTSPOTTER: command not found
./sudomy: line 620: CERTSH: command not found
./sudomy: line 620: BINARYEDGE: command not found
./sudomy: line 620: CENSYS: command not found
./sudomy: line 620: VIRUSTOTAL: command not found
./sudomy: line 620: THREATMINER: command not found
./sudomy: line 620: BUFFEROVER: command not found
./sudomy: line 620: FINDSUBDOMAIN: command not found
./sudomy: line 620: THREATCROWD: command not found
./sudomy: line 620: SECURITY_TRAILS: command not found
./sudomy: line 620: ENTRUST: command not found
./sudomy: line 620: ALIENVAULT: command not found
./sudomy: line 620: RAPIDDNS: command not found
./sudomy: line 620: URLSCAN: command not found
./sudomy: line 620: RIDDLER: command not found
./sudomy: line 620: COMMONCRAWL: command not found
./sudomy: line 620: HACKERTARGET: command not found

[+] Get & Count subdomain total From source

[+] Parsing & Sorting list Domain

./sudomy: line 339: ${OUT}/${DATE_LOG}/${DOMAIN}/${RESULT_SUBDOMAIN}: ambiguous redirect
sed: can't read /home/mrcyguru/Desktop/Find/script/Dns: No such file or directory
sed: can't read &subdomain/Sudomy/output/*.log: No such file or directory
./sudomy: line 919: /home/mrcyguru/Desktop/Find/script/Dns: No such file or directory
./sudomy: line 920: exec_httprobe: command not found

[+] Sud⍥my has been sucessfully completed

grep issue on macOS 10.14.6 (Mojave)

Tools is installed but error when running on grep command.

grep --version
grep (BSD grep) 2.5.1-FreeBSD

This is the error when i running enumeration ./sudomy -d hackerone.com.

image

Cant install Chromium package while installation

##Cant install chromium packages .

After running this below command in my ubuntu18.4

apt-get install jq nmap phantomjs npm chromium parallel

It is giving me this error

Package chromium is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
chromium-bsu:i386 chromium-bsu
E: Package 'chromium' has no installation candidate

Please help me.

there is an error

⍥  Securitytrails                   [ ✕ ]
⍥  Censys                           [ ✔ ]
⍥  Threatminer                      [ ✔ ]
⍥  Hackertarget                     [ ✔ ]
⍥  Certspotter                      [ ✔ ]
⍥  Virustotal                       [ ✔ ]
⍥  Entrust                          [ ✔ ]
⍥  Dnsdumpster                      [ ✔ ]
⍥  Threatcrowd                      [ ✔ ]
⍥  Riddler                          [ ✔ ]
⍥  Webarchive                       [ ✔ ]
⍥  Shodan                           [ ✔ ]

jq: error (at :0): Cannot iterate over null (null)
jq: error (at :16): Cannot iterate over null (null)
⍥ Findsubdomain [ ✔ ]

Sudomy can not run from soft link in bin path

Hi, I added sudomy to the bin folder, throug a soft link, but when i run from each path (for example my home), sudomy tries to create a folder in the path of soft link, not in the current path.

Many thanks. sudomy is awesome!

Regards.

No module named censys.certificates

While running Sudomy I get the following error:

Traceback (most recent call last):
  File "lib/censys/censys_subdomain_finder.py", line 3, in <module>
    import censys.certificates
ImportError: No module named censys.certificates
pip3 install censys
Requirement already satisfied: censys in /usr/local/lib/python3.8/dist-packages/censys-0.0.8-py3.8.egg (0.0.8)
Requirement already satisfied: netaddr in /usr/lib/python3/dist-packages (from censys) (0.7.19)
Requirement already satisfied: requests in /home/kali/.local/lib/python3.8/site-packages (from censys) (2.24.0)
Requirement already satisfied: certifi>=2017.4.17 in /home/kali/.local/lib/python3.8/site-packages (from requests->censys) (2020.6.20)
Requirement already satisfied: chardet<4,>=3.0.2 in /usr/lib/python3/dist-packages (from requests->censys) (3.0.4)
Requirement already satisfied: idna<3,>=2.5 in /home/kali/.local/lib/python3.8/site-packages (from requests->censys) (2.10)
Requirement already satisfied

Same with pip

pip install censys
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: censys in /home/kali/.local/lib/python2.7/site-packages (0.0.8)

error while checking domain

Dear Team,
I got this error while checking my test domain. Would you please tell me how to fix it? I'm using Sudomy on my mac OS.

./sudomy: line 374: wget: command not found
usage: grep [-abcDEFGHhIiJLlmnOoqRSsUVvwxZ] [-A num] [-B num] [-C[num]]
[-e pattern] [-f file] [--binary-files=value] [--color=when]
[--context[=num]] [--directories=action] [--label] [--line-buffered]
[--null] [pattern] [file ...]
cat: /Users/tester/Downloads/Sudomy/output/FRiddler.log: No such file or directory
rm: /Users/tester/Downloads/Sudomy/output/FRiddler.log: No such file or directory
Traceback (most recent call last):
File "lib/censys/censys_subdomain_finder.py", line 3, in
import censys.certificates
ImportError: No module named censys.certificates
jq: error (at :16): Cannot iterate over null (null)
jq: error (at :0): Cannot iterate over null (null)
jq: error (at :0): Cannot iterate over null (null)
⍥ Findsubdomain [ ✔ ]
sed: 1: "/Users/tester/Down ...": extra characters at the end of q command
(23) Failed writing body
usage: grep [-abcDEFGHhIiJLlmnOoqRSsUVvwxZ] [-A num] [-B num] [-C[num]]
[-e pattern] [-f file] [--binary-files=value] [--color=when]
[--context[=num]] [--directories=action] [--label] [--line-buffered]
[--null] [pattern] [file ...]
(23) Failed writing body

Add multiple modes (incl. silent mode)

This will be great if there are several modes, such as: single, list, pipeline
and silent mode (show only subdomains in stdout) to chained with other tools.

screenshoot error

Shell command PID 57537 returned an abnormal error code: '1'
Screenshot somehow failed

the screenshot seems all failed

two problem No module named censys.certificates and (23) Failed writing body

Traceback (most recent call last):
File "lib/censys/censys_subdomain_finder.py", line 3, in
import censys.certificates
ImportError: No module named censys.certificates
⍥ Findsubdomain [ ✔ ]
jq: error (at :0): Cannot iterate over null (null)
parse error: Invalid numeric literal at line 1, column 109
⍥ Entrust [ ✕ ]
⍥ CommonwCrawl [ ✔ ]
(23) Failed writing body
(23) Failed writing body
(23) Failed writing body

Unable to run Sudomy in Docker

I'm getting this error when trying to pull from Docker Hub

⋊> ~ docker pull screetsec/sudomy:v1.1.6-dev                                                          
Error response from daemon: manifest for screetsec/sudomy:v1.1.6-dev not found: manifest unknown: manifest unknown

Anyone has figure out how to solve?

Dnsdumpster jq: error

[*] Load target domain: domain.com
- starting scanning @ 2019-10-17 16:16:44

[+] Running & Checking source to be used

⍥  Shodan				[ ✔ ]
⍥  Webarchive			[ ✔ ]
⍥  Virustotal			[ ✔ ]
⍥  Certsh				[ ✔ ]
⍥  Censys				[ ✕ ]
⍥  Binaryedge			[ ✕ ]
⍥  Entrust				[ ✔ ]
⍥  Certspotter			[ ✔ ]
⍥  Bufferover			[ ✔ ]
⍥  Threatcrowd			[ ✔ ]
⍥  Securitytrails			[ ✔ ]
⍥  Riddler				[ ✔ ]
⍥  Hackertarget			[ ✔ ]
⍥  Threatminer			[ ✔ ]
⍥  Dnsdumpster			[ ✔ ]

jq: error (at :0): Cannot iterate over null (null)
⍥ Findsubdomain [ ✔ ]

Add Support for: ptrarchive.com

def enumPtrarchive():
    print('[!] Enumerating ptrarchive.com')

    c = requests.Session()
    h = {
        'Referer': 'http://www.ptrarchive.com',
        'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0',
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
        'Accept-Language': 'en-US,en;q=0.5'
    }
    t = {'pa_id': '1337'}

    print('\t - hooking up page via fake-cookie "pa_id: 1337"')

    r = c.get('http://www.ptrarchive.com/tools/search4.htm?label=' + domain + '&date=ALL', headers=h, cookies=t).text
    s = bs(r, 'html.parser')
    e = s.find('pre').text.split('\n')

    print('\t - proceeding HTML for filtering out the result')

    for i in e:
        e = i[i.find(']'):].split(' ')

        try:
            if e[1].endswith('.' + domain) and not e[1].startswith('*'):
                enterRes(e[1])
        except IndexError:
            pass

not runing

it says:

bash sudomy -d hackerone.com
error: Error: require nmap but it's is not installed. Aborting.

Screenshots in Docker

When using Sudomy from docker, this screenshot feature fails since there is no chrome.

Unable to locate a valid installation of Chrome to use. gowitness needs at least Chrome/Chrome Canary v60+. Either install Google Chrome or try specifying a valid location with the --chrome-path flag

How would I go about fixing that?

Invalid subdomains in the results.

Hi @screetsec,

Sometimes when I search for subdomains I get incorrect URLs in the results.
Here are some examples:

0 bpool.id.
10 dc-3ba5129c147c.saltpool.net.
10 gnark-mining.com.
10 mail.miningcoins.ca.
5 post.blockhunter.info.

I hope the information is useful for you to fix the bug.

update

i have a question how can i update this from command line

Something wrong with the tool

When i use the default command ./sudomy --all -d hackerone.com --html
there is some error on the console and my sudomy don'r flow like what you show in the video,and is just stuck at the start,why?
image

facing this issue

[⍥] Perfoming Sud⍥my scans
- Warning: require cf-check but it's is not installed.Trying to setup pkg_cf-check
cp: missing destination file operand after '/usr/local/bin/'
Try 'cp --help' for more information.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.