Documentation
¶
Overview ¶
Package sources defines the Source interface and shared utilities for all passive subdomain discovery adapters.
Index ¶
- func Normalize(s, domain string) string
- func Register(s Source)
- func SendResult(ctx context.Context, ch chan<- Result, sourceName, subdomain, domain string)
- type AlienVault
- type Anubis
- type BeVigil
- type BufferOver
- type C99Subdomains
- type Certspotter
- type Chaos
- type CommonCrawl
- type CrtSh
- type DNSDumpster
- type DNSRepo
- type Digitorus
- type FullHunt
- type GitHub
- type GoogleCT
- type HackerTarget
- type LeakIX
- type Netcraft
- type Omnisint
- type PassiveTotal
- type Phonebook
- type RapidDNS
- type ReconDev
- type Result
- type Riddler
- type Robtex
- type SecurityTrails
- type Shodan
- type ShrewdEye
- type SiteDossier
- type Source
- type SubdomainCenter
- type Synapsint
- type TLSBufferOver
- type ThreatCrowd
- type ThreatMiner
- type URLScan
- type VirusTotal
- type Wayback
- type WebArchiveSubfinder
- type WebRiskDB
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type AlienVault ¶
type AlienVault struct{}
func (*AlienVault) Description ¶
func (a *AlienVault) Description() string
func (*AlienVault) Name ¶
func (a *AlienVault) Name() string
func (*AlienVault) NeedsKey ¶
func (a *AlienVault) NeedsKey() bool
func (*AlienVault) RateLimit ¶
func (a *AlienVault) RateLimit() time.Duration
type BeVigil ¶
type BeVigil struct{}
BeVigil uses the free (no-key) endpoint of bevigil.com.
func (*BeVigil) Description ¶
type BufferOver ¶
type BufferOver struct{}
func (*BufferOver) Description ¶
func (b *BufferOver) Description() string
func (*BufferOver) Name ¶
func (b *BufferOver) Name() string
func (*BufferOver) NeedsKey ¶
func (b *BufferOver) NeedsKey() bool
func (*BufferOver) RateLimit ¶
func (b *BufferOver) RateLimit() time.Duration
type C99Subdomains ¶
type C99Subdomains struct{}
C99Subdomains uses the c99.nl free subdomain finder.
func (*C99Subdomains) Description ¶
func (c *C99Subdomains) Description() string
func (*C99Subdomains) Name ¶
func (c *C99Subdomains) Name() string
func (*C99Subdomains) NeedsKey ¶
func (c *C99Subdomains) NeedsKey() bool
func (*C99Subdomains) RateLimit ¶
func (c *C99Subdomains) RateLimit() time.Duration
type Certspotter ¶
type Certspotter struct{}
func (*Certspotter) Description ¶
func (c *Certspotter) Description() string
func (*Certspotter) Name ¶
func (c *Certspotter) Name() string
func (*Certspotter) NeedsKey ¶
func (c *Certspotter) NeedsKey() bool
func (*Certspotter) RateLimit ¶
func (c *Certspotter) RateLimit() time.Duration
type Chaos ¶
type Chaos struct{}
Chaos queries ProjectDiscovery's public Chaos dataset.
func (*Chaos) Description ¶
type CommonCrawl ¶
type CommonCrawl struct{}
func (*CommonCrawl) Description ¶
func (c *CommonCrawl) Description() string
func (*CommonCrawl) Name ¶
func (c *CommonCrawl) Name() string
func (*CommonCrawl) NeedsKey ¶
func (c *CommonCrawl) NeedsKey() bool
func (*CommonCrawl) RateLimit ¶
func (c *CommonCrawl) RateLimit() time.Duration
type CrtSh ¶
type CrtSh struct{}
CrtSh queries the crt.sh certificate transparency log search.
func (*CrtSh) Description ¶
type DNSDumpster ¶
type DNSDumpster struct{}
DNSDumpster scrapes dnsdumpster.com (form-based, respectful rate limit).
func (*DNSDumpster) Description ¶
func (d *DNSDumpster) Description() string
func (*DNSDumpster) Name ¶
func (d *DNSDumpster) Name() string
func (*DNSDumpster) NeedsKey ¶
func (d *DNSDumpster) NeedsKey() bool
func (*DNSDumpster) RateLimit ¶
func (d *DNSDumpster) RateLimit() time.Duration
type Digitorus ¶
type Digitorus struct{}
Digitorus queries the free digitorus.com CT-based search.
func (*Digitorus) Description ¶
type GitHub ¶
type GitHub struct{}
GitHub searches GitHub's public code search API for domain mentions.
func (*GitHub) Description ¶
type GoogleCT ¶
type GoogleCT struct{}
GoogleCT queries the Google Certificate Transparency log directly.
func (*GoogleCT) Description ¶
type HackerTarget ¶
type HackerTarget struct{}
func (*HackerTarget) Description ¶
func (h *HackerTarget) Description() string
func (*HackerTarget) Name ¶
func (h *HackerTarget) Name() string
func (*HackerTarget) NeedsKey ¶
func (h *HackerTarget) NeedsKey() bool
func (*HackerTarget) RateLimit ¶
func (h *HackerTarget) RateLimit() time.Duration
type Omnisint ¶
type Omnisint struct{}
Omnisint queries sonar.omnisint.io (Project Sonar data).
func (*Omnisint) Description ¶
type PassiveTotal ¶
type PassiveTotal struct{}
PassiveTotal uses the RiskIQ/PassiveTotal community (free) endpoint.
func (*PassiveTotal) Description ¶
func (p *PassiveTotal) Description() string
func (*PassiveTotal) Name ¶
func (p *PassiveTotal) Name() string
func (*PassiveTotal) NeedsKey ¶
func (p *PassiveTotal) NeedsKey() bool
func (*PassiveTotal) RateLimit ¶
func (p *PassiveTotal) RateLimit() time.Duration
type Phonebook ¶
type Phonebook struct{}
Phonebook queries phonebook.cz (IntelX search) for subdomains.
func (*Phonebook) Description ¶
type ReconDev ¶
type ReconDev struct{}
ReconDev queries recon.dev free API.
func (*ReconDev) Description ¶
type SecurityTrails ¶
type SecurityTrails struct{}
SecurityTrails uses the free public endpoint (limited results, no key).
func (*SecurityTrails) Description ¶
func (s *SecurityTrails) Description() string
func (*SecurityTrails) Name ¶
func (s *SecurityTrails) Name() string
func (*SecurityTrails) NeedsKey ¶
func (s *SecurityTrails) NeedsKey() bool
func (*SecurityTrails) RateLimit ¶
func (s *SecurityTrails) RateLimit() time.Duration
type Shodan ¶
type Shodan struct{}
Shodan uses the free (unauthenticated) DNS/domain endpoint.
func (*Shodan) Description ¶
type ShrewdEye ¶
type ShrewdEye struct{}
func (*ShrewdEye) Description ¶
type SiteDossier ¶
type SiteDossier struct{}
func (*SiteDossier) Description ¶
func (s *SiteDossier) Description() string
func (*SiteDossier) Name ¶
func (s *SiteDossier) Name() string
func (*SiteDossier) NeedsKey ¶
func (s *SiteDossier) NeedsKey() bool
func (*SiteDossier) RateLimit ¶
func (s *SiteDossier) RateLimit() time.Duration
type Source ¶
type Source interface {
// Name returns the short, unique identifier (e.g. "crtsh").
Name() string
// Description is a one-line human-friendly description.
Description() string
// Enumerate starts discovery and sends results on the returned channel,
// closing it when done or when ctx is cancelled.
Enumerate(ctx context.Context, domain string) (<-chan Result, error)
// RateLimit is the minimum delay between requests to this source.
RateLimit() time.Duration
// NeedsKey reports whether an API key is required.
NeedsKey() bool
}
Source is the interface every passive adapter must implement.
type SubdomainCenter ¶
type SubdomainCenter struct{}
func (*SubdomainCenter) Description ¶
func (s *SubdomainCenter) Description() string
func (*SubdomainCenter) Name ¶
func (s *SubdomainCenter) Name() string
func (*SubdomainCenter) NeedsKey ¶
func (s *SubdomainCenter) NeedsKey() bool
func (*SubdomainCenter) RateLimit ¶
func (s *SubdomainCenter) RateLimit() time.Duration
type Synapsint ¶
type Synapsint struct{}
func (*Synapsint) Description ¶
type TLSBufferOver ¶
type TLSBufferOver struct{}
TLSBufferOver uses the TLS.bufferover.run dataset.
func (*TLSBufferOver) Description ¶
func (t *TLSBufferOver) Description() string
func (*TLSBufferOver) Name ¶
func (t *TLSBufferOver) Name() string
func (*TLSBufferOver) NeedsKey ¶
func (t *TLSBufferOver) NeedsKey() bool
func (*TLSBufferOver) RateLimit ¶
func (t *TLSBufferOver) RateLimit() time.Duration
type ThreatCrowd ¶
type ThreatCrowd struct{}
func (*ThreatCrowd) Description ¶
func (t *ThreatCrowd) Description() string
func (*ThreatCrowd) Name ¶
func (t *ThreatCrowd) Name() string
func (*ThreatCrowd) NeedsKey ¶
func (t *ThreatCrowd) NeedsKey() bool
func (*ThreatCrowd) RateLimit ¶
func (t *ThreatCrowd) RateLimit() time.Duration
type ThreatMiner ¶
type ThreatMiner struct{}
func (*ThreatMiner) Description ¶
func (t *ThreatMiner) Description() string
func (*ThreatMiner) Name ¶
func (t *ThreatMiner) Name() string
func (*ThreatMiner) NeedsKey ¶
func (t *ThreatMiner) NeedsKey() bool
func (*ThreatMiner) RateLimit ¶
func (t *ThreatMiner) RateLimit() time.Duration
type VirusTotal ¶
type VirusTotal struct{}
VirusTotal uses the public (unauthenticated) endpoint only.
func (*VirusTotal) Description ¶
func (v *VirusTotal) Description() string
func (*VirusTotal) Name ¶
func (v *VirusTotal) Name() string
func (*VirusTotal) NeedsKey ¶
func (v *VirusTotal) NeedsKey() bool
func (*VirusTotal) RateLimit ¶
func (v *VirusTotal) RateLimit() time.Duration
type Wayback ¶
type Wayback struct{}
Wayback queries the Wayback Machine CDX API for URLs mentioning the domain.
func (*Wayback) Description ¶
type WebArchiveSubfinder ¶
type WebArchiveSubfinder struct{}
WebArchiveSubfinder queries archive.org for all unique domains seen under the target.
func (*WebArchiveSubfinder) Description ¶
func (w *WebArchiveSubfinder) Description() string
func (*WebArchiveSubfinder) Name ¶
func (w *WebArchiveSubfinder) Name() string
func (*WebArchiveSubfinder) NeedsKey ¶
func (w *WebArchiveSubfinder) NeedsKey() bool
func (*WebArchiveSubfinder) RateLimit ¶
func (w *WebArchiveSubfinder) RateLimit() time.Duration
Source Files
¶
- abuseipdb.go
- alienvault.go
- anubis.go
- bevigil.go
- bufferover.go
- certspotter.go
- chaos.go
- commoncrawl.go
- crtsh.go
- digitorus.go
- dnsbufferover.go
- dnsdumpster.go
- dnsdumpster_api.go
- dnsrepo.go
- dnsscan.go
- dnsx.go
- fullhunt.go
- github.go
- hackertarget.go
- leakix.go
- netcraft.go
- omnisint.go
- passivetotal.go
- phonebook.go
- rapiddns.go
- registry.go
- riddler.go
- robtex.go
- securitytrails.go
- shodan.go
- shrewdeye.go
- sitedossier.go
- source.go
- subdomaincenter.go
- synapsint.go
- threatcrowd.go
- threatminer.go
- urlscan.go
- util.go
- virustotal.go
- wayback.go
- webarchive_cc.go