sources

package
v0.0.0-...-6e861f0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 30, 2018 License: MIT Imports: 19 Imported by: 0

README

Sources

SubFinder is built using freely available sources found online.

Supported Sources

  • TODO

Adding Sources

Note You can contribute to our list of sources if a website explicitly allows (or doesn't prevent) scraping of their content. We advise you go over the terms of service of any new source before trying to contribute it to SubFinder. Any sources that are found to be violating a terms of service will be removed as soon as possible.

A Source is implemented in SubFinder's core as a interface:

type Source interface {
  ProcessDomain(string) <-chan *Result
}

Example Source

This is a simple source called ExampleSource. It has three hard-coded subdomains that will be concatenated with the given domain that will be sent down the results channel to be consumed later on. In practically all cases, it should be noted, sources will make HTTP(s) requests to external websites to actually find subdomains.

package sources 

// Define our new ExampleSource struct.
type ExampleSource struct {}

// Some hardcoded examples, instead of pulling down from a HTTP(s) source.
var hardCodedExamples = []string{"www.", "info.", "login."}

// Define the ProcessDomain() method on the source to satisfy the Source interface.
func (source *ExampleSource) ProcessDomain(domain string) <-chan *Result {
  results := make(chan *Result)
  go func(){
    for _, subdomain := range hardCodedExamples {
      results <- Result{Type: "example", Success: subdomain + domain}
    }
  }()
  return results
}

Documentation

Overview

Package sources is a collection of pre-built core.Source(s) that can be used to enumerate subdomains passively.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ArchiveIs

type ArchiveIs struct {
	// contains filtered or unexported fields
}

ArchiveIs is a source to process subdomains from http://archive.is

func (*ArchiveIs) ProcessDomain

func (source *ArchiveIs) ProcessDomain(ctx context.Context, domain string) <-chan *core.Result

ProcessDomain takes a given base domain and attempts to enumerate subdomains.

type Ask

type Ask struct {
	// contains filtered or unexported fields
}

Ask is a source to process subdomains from https://ask.com

func (*Ask) ProcessDomain

func (source *Ask) ProcessDomain(ctx context.Context, domain string) <-chan *core.Result

ProcessDomain takes a given base domain and attempts to enumerate subdomains.

type Baidu

type Baidu struct {
	// contains filtered or unexported fields
}

Baidu is a source to process subdomains from https://baidu.com

func (*Baidu) ProcessDomain

func (source *Baidu) ProcessDomain(ctx context.Context, domain string) <-chan *core.Result

ProcessDomain takes a given base domain and attempts to enumerate subdomains.

type Bing

type Bing struct {
	// contains filtered or unexported fields
}

Bing is a source to process subdomains from https://bing.com

func (*Bing) ProcessDomain

func (source *Bing) ProcessDomain(ctx context.Context, domain string) <-chan *core.Result

ProcessDomain takes a given base domain and attempts to enumerate subdomains.

type CertDB

type CertDB struct {
	// contains filtered or unexported fields
}

CertDB is a source to process subdomains from https://certdb.com

func (*CertDB) ProcessDomain

func (source *CertDB) ProcessDomain(ctx context.Context, domain string) <-chan *core.Result

ProcessDomain takes a given base domain and attempts to enumerate subdomains.

type CertSpotter

type CertSpotter struct {
	APIToken string
	// contains filtered or unexported fields
}

CertSpotter is a source to process subdomains from https://certspotter.com

func (*CertSpotter) ProcessDomain

func (source *CertSpotter) ProcessDomain(ctx context.Context, domain string) <-chan *core.Result

ProcessDomain takes a given base domain and attempts to enumerate subdomains.

type CommonCrawlDotOrg

type CommonCrawlDotOrg struct {
	// contains filtered or unexported fields
}

CommonCrawlDotOrg is a source to process subdomains from http://commoncrawl.org

func (*CommonCrawlDotOrg) ProcessDomain

func (source *CommonCrawlDotOrg) ProcessDomain(ctx context.Context, domain string) <-chan *core.Result

ProcessDomain takes a given base domain and attempts to enumerate subdomains.

type CrtSh

type CrtSh struct {
	// contains filtered or unexported fields
}

CrtSh is a source to process subdomains from https://crt.sh

func (*CrtSh) ProcessDomain

func (source *CrtSh) ProcessDomain(ctx context.Context, domain string) <-chan *core.Result

ProcessDomain takes a given base domain and attempts to enumerate subdomains.

type DNSDbDotCom

type DNSDbDotCom struct {
	// contains filtered or unexported fields
}

DNSDbDotCom is a source to process subdomains from http://www.dnsdb.org/f/

func (*DNSDbDotCom) ProcessDomain

func (source *DNSDbDotCom) ProcessDomain(ctx context.Context, domain string) <-chan *core.Result

ProcessDomain takes a given base domain and attempts to enumerate subdomains.

type DNSDumpster

type DNSDumpster struct {
	// contains filtered or unexported fields
}

DNSDumpster is a source to process subdomains from https://dnsdumpster.com

func (*DNSDumpster) ProcessDomain

func (source *DNSDumpster) ProcessDomain(ctx context.Context, domain string) <-chan *core.Result

ProcessDomain takes a given base domain and attempts to enumerate subdomains.

type DNSTable

type DNSTable struct {
	// contains filtered or unexported fields
}

DNSTable is a source to process subdomains from https://dnstable.com

func (*DNSTable) ProcessDomain

func (source *DNSTable) ProcessDomain(ctx context.Context, domain string) <-chan *core.Result

ProcessDomain takes a given base domain and attempts to enumerate subdomains.

type DogPile

type DogPile struct {
	// contains filtered or unexported fields
}

DogPile is a source to process subdomains from http://dogpile.com

Note

This source uses http instead of https because of problems dogpile's SSL cert.

func (*DogPile) ProcessDomain

func (source *DogPile) ProcessDomain(ctx context.Context, domain string) <-chan *core.Result

ProcessDomain takes a given base domain and attempts to enumerate subdomains.

type DuckDuckGo

type DuckDuckGo struct {
	// contains filtered or unexported fields
}

DuckDuckGo is a source to process subdomains from https://duckduckgo.com

func (*DuckDuckGo) ProcessDomain

func (source *DuckDuckGo) ProcessDomain(ctx context.Context, domain string) <-chan *core.Result

ProcessDomain takes a given base domain and attempts to enumerate subdomains.

type Entrust

type Entrust struct {
	// contains filtered or unexported fields
}

Entrust is a source to process subdomains from https://entrust.com

func (*Entrust) ProcessDomain

func (source *Entrust) ProcessDomain(ctx context.Context, domain string) <-chan *core.Result

ProcessDomain takes a given base domain and attempts to enumerate subdomains.

type GoogleSuggestions

type GoogleSuggestions struct {
	// contains filtered or unexported fields
}

GoogleSuggestions is a source to process subdomains from https://suggestqueries.google.com

func (*GoogleSuggestions) ProcessDomain

func (source *GoogleSuggestions) ProcessDomain(ctx context.Context, domain string) <-chan *core.Result

ProcessDomain takes a given base domain and attempts to enumerate subdomains.

type HackerTarget

type HackerTarget struct {
	APIKey string
	// contains filtered or unexported fields
}

HackerTarget is a source to process subdomains from https://hackertarget.com

func (*HackerTarget) ProcessDomain

func (source *HackerTarget) ProcessDomain(ctx context.Context, domain string) <-chan *core.Result

ProcessDomain takes a given base domain and attempts to enumerate subdomains.

type PTRArchiveDotCom

type PTRArchiveDotCom struct {
	// contains filtered or unexported fields
}

PTRArchiveDotCom is a source to process subdomains from http://ptrarchive.com/

func (*PTRArchiveDotCom) ProcessDomain

func (source *PTRArchiveDotCom) ProcessDomain(ctx context.Context, domain string) <-chan *core.Result

ProcessDomain takes a given base domain and attempts to enumerate subdomains.

type Passivetotal

type Passivetotal struct {
	APIToken    string
	APIUsername string
	// contains filtered or unexported fields
}

Passivetotal is a source to process subdomains from https://passivetotal.org

func (*Passivetotal) ProcessDomain

func (source *Passivetotal) ProcessDomain(ctx context.Context, domain string) <-chan *core.Result

ProcessDomain takes a given base domain and attempts to enumerate subdomains.

type Riddler

type Riddler struct {
	Email    string
	Password string
	APIToken string
	// contains filtered or unexported fields
}

Riddler is a source to process subdomains from https://riddler.io

func (*Riddler) Authenticate

func (source *Riddler) Authenticate(ctx context.Context) (bool, error)

Authenticate uses a given username and password to retrieve the APIToken.

func (*Riddler) ProcessDomain

func (source *Riddler) ProcessDomain(ctx context.Context, domain string) <-chan *core.Result

ProcessDomain takes a given base domain and attempts to enumerate subdomains.

type SecurityTrails

type SecurityTrails struct {
	APIToken string
	// contains filtered or unexported fields
}

SecurityTrails is a source to process subdomains from https://securitytrails.com

func (*SecurityTrails) ProcessDomain

func (source *SecurityTrails) ProcessDomain(ctx context.Context, domain string) <-chan *core.Result

ProcessDomain takes a given base domain and attempts to enumerate subdomains.

type ThreatCrowd

type ThreatCrowd struct {
	// contains filtered or unexported fields
}

ThreatCrowd is a source to process subdomains from https://threatcrowd.com

func (*ThreatCrowd) ProcessDomain

func (source *ThreatCrowd) ProcessDomain(ctx context.Context, domain string) <-chan *core.Result

ProcessDomain takes a given base domain and attempts to enumerate subdomains.

type Threatminer

type Threatminer struct {
	// contains filtered or unexported fields
}

Threatminer is a source to process subdomains from https://www.threatminer.org

func (*Threatminer) ProcessDomain

func (source *Threatminer) ProcessDomain(ctx context.Context, domain string) <-chan *core.Result

ProcessDomain takes a given base domain and attempts to enumerate subdomains.

type Virustotal

type Virustotal struct {
	APIToken string
	// contains filtered or unexported fields
}

Virustotal is a source to process subdomains from https://Virustotal.com

func (*Virustotal) ProcessDomain

func (source *Virustotal) ProcessDomain(ctx context.Context, domain string) <-chan *core.Result

ProcessDomain takes a given base domain and attempts to enumerate subdomains.

type WaybackArchive

type WaybackArchive struct {
	// contains filtered or unexported fields
}

WaybackArchive is a source to process subdomains from http://web.archive.org

func (*WaybackArchive) ProcessDomain

func (source *WaybackArchive) ProcessDomain(ctx context.Context, domain string) <-chan *core.Result

ProcessDomain takes a given base domain and attempts to enumerate subdomains.

type Yahoo

type Yahoo struct {
	// contains filtered or unexported fields
}

Yahoo is a source to process subdomains from https://yahoo.com

func (*Yahoo) ProcessDomain

func (source *Yahoo) ProcessDomain(ctx context.Context, domain string) <-chan *core.Result

ProcessDomain takes a given base domain and attempts to enumerate subdomains.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL