Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var InitialQueryTypes = []string{
"CNAME",
"TXT",
"A",
"AAAA",
}
InitialQueryTypes include the DNS record types that are initially requested for a discovered name
Functions ¶
This section is empty.
Types ¶
type AddressManager ¶ added in v3.5.2
type AddressManager struct {
// contains filtered or unexported fields
}
AddressManager handles the investigation of addresses associated with newly resolved FQDNs.
func NewAddressManager ¶ added in v3.5.2
func NewAddressManager(e *Enumeration) *AddressManager
NewAddressManager returns an initialized AddressManager.
func (*AddressManager) InputAddress ¶ added in v3.5.2
func (r *AddressManager) InputAddress(req *requests.AddrRequest)
InputAddress is unique to the AddressManager and uses the AddrRequest argument for reverse DNS queries in order to discover additional names in scope.
func (*AddressManager) InputName ¶ added in v3.5.2
func (r *AddressManager) InputName(req *requests.DNSRequest)
InputName implements the FQDNManager interface.
func (*AddressManager) OutputNames ¶ added in v3.5.2
func (r *AddressManager) OutputNames(num int) []*requests.DNSRequest
OutputNames implements the FQDNManager interface.
func (*AddressManager) Stop ¶ added in v3.5.2
func (r *AddressManager) Stop() error
Stop implements the FQDNManager interface.
type AlterationsManager ¶ added in v3.5.2
type AlterationsManager struct {
// contains filtered or unexported fields
}
AlterationsManager handles the release of FQDNs generated by name alterations.
func NewAlterationsManager ¶ added in v3.5.2
func NewAlterationsManager(e *Enumeration) *AlterationsManager
NewAlterationsManager returns an initialized AlterationsManager.
func (*AlterationsManager) InputName ¶ added in v3.5.2
func (r *AlterationsManager) InputName(req *requests.DNSRequest)
InputName implements the FQDNManager interface.
func (*AlterationsManager) OutputNames ¶ added in v3.5.2
func (r *AlterationsManager) OutputNames(num int) []*requests.DNSRequest
OutputNames implements the FQDNManager interface.
func (*AlterationsManager) Stop ¶ added in v3.5.2
func (r *AlterationsManager) Stop() error
Stop implements the FQDNManager interface.
type BruteManager ¶ added in v3.5.2
BruteManager handles the release of FQDNs generated by brute forcing.
func NewBruteManager ¶ added in v3.5.2
func NewBruteManager(e *Enumeration) *BruteManager
NewBruteManager returns an initialized BruteManager.
func (*BruteManager) InputName ¶ added in v3.5.2
func (r *BruteManager) InputName(req *requests.DNSRequest)
InputName implements the FQDNManager interface.
func (*BruteManager) OutputNames ¶ added in v3.5.2
func (r *BruteManager) OutputNames(num int) []*requests.DNSRequest
OutputNames implements the FQDNManager interface.
func (*BruteManager) Stop ¶ added in v3.5.2
func (r *BruteManager) Stop() error
Stop implements the FQDNManager interface.
type DNSService ¶ added in v3.6.0
type DNSService struct { requests.BaseService SourceType string // contains filtered or unexported fields }
DNSService is the Service that handles all DNS name resolution requests within the architecture.
func NewDNSService ¶ added in v3.6.0
func NewDNSService(sys systems.System) *DNSService
NewDNSService returns he object initialized, but not yet started.
func (*DNSService) OnDNSRequest ¶ added in v3.6.0
func (ds *DNSService) OnDNSRequest(ctx context.Context, req *requests.DNSRequest)
OnDNSRequest implements the Service interface.
func (*DNSService) OnSubdomainDiscovered ¶ added in v3.6.0
func (ds *DNSService) OnSubdomainDiscovered(ctx context.Context, req *requests.DNSRequest, times int)
OnSubdomainDiscovered implements the Service interface.
func (*DNSService) Type ¶ added in v3.6.0
func (ds *DNSService) Type() string
Type implements the Service interface.
type DataManagerService ¶ added in v3.6.0
type DataManagerService struct { requests.BaseService // contains filtered or unexported fields }
DataManagerService is the Service that handles all data collected within the architecture. This is achieved by watching all the RESOLVED events.
func NewDataManagerService ¶ added in v3.6.0
func NewDataManagerService(sys systems.System, g *graph.Graph) *DataManagerService
NewDataManagerService returns he object initialized, but not yet started.
func (*DataManagerService) OnASNRequest ¶ added in v3.6.0
func (dms *DataManagerService) OnASNRequest(ctx context.Context, req *requests.ASNRequest)
OnASNRequest implements the Service interface.
func (*DataManagerService) OnDNSRequest ¶ added in v3.6.0
func (dms *DataManagerService) OnDNSRequest(ctx context.Context, req *requests.DNSRequest)
OnDNSRequest implements the Service interface.
type DomainManager ¶ added in v3.5.2
type DomainManager struct {
// contains filtered or unexported fields
}
DomainManager handles the release of new domains names to data sources used in the enumeration.
func NewDomainManager ¶ added in v3.5.2
func NewDomainManager(e *Enumeration) *DomainManager
NewDomainManager returns an initialized DomainManager.
func (*DomainManager) InputName ¶ added in v3.5.2
func (r *DomainManager) InputName(req *requests.DNSRequest)
InputName implements the FQDNManager interface.
func (*DomainManager) OutputNames ¶ added in v3.5.2
func (r *DomainManager) OutputNames(num int) []*requests.DNSRequest
OutputNames implements the FQDNManager interface.
func (*DomainManager) Stop ¶ added in v3.5.2
func (r *DomainManager) Stop() error
Stop implements the FQDNManager interface.
type Enumeration ¶
type Enumeration struct { // Information sent in the context Config *config.Config Bus *eventbus.EventBus Sys systems.System Graph *graph.Graph // contains filtered or unexported fields }
Enumeration is the object type used to execute a DNS enumeration with Amass.
func NewEnumeration ¶
func NewEnumeration(cfg *config.Config, sys systems.System) *Enumeration
NewEnumeration returns an initialized Enumeration that has not been started yet.
func (*Enumeration) Close ¶ added in v3.6.0
func (e *Enumeration) Close()
Close cleans up resources instantiated by the Enumeration.
func (*Enumeration) Done ¶
func (e *Enumeration) Done()
Done safely closes the done broadcast channel.
func (*Enumeration) ExtractOutput ¶ added in v3.6.0
func (e *Enumeration) ExtractOutput(filter stringfilter.Filter) []*requests.Output
ExtractOutput is a convenience method for obtaining new discoveries made by the enumeration process.
func (*Enumeration) Start ¶
func (e *Enumeration) Start() error
Start begins the vertical domain correlation process for the Enumeration object.
type FQDNManager ¶ added in v3.5.2
type FQDNManager interface { // InputName shares a newly discovered FQDN with the NameManager InputName(req *requests.DNSRequest) // OutputNames requests new FQDNs from the NameManager OutputNames(num int) []*requests.DNSRequest Stop() error }
FQDNManager is the object type for taking in, generating and providing new DNS FQDNs.
type GuessManager ¶ added in v3.5.2
GuessManager handles the release of FQDNs generated from machine learning.
func NewGuessManager ¶ added in v3.5.2
func NewGuessManager(e *Enumeration) *GuessManager
NewGuessManager returns an initialized GuessManager.
func (*GuessManager) AddSubdomain ¶ added in v3.5.2
func (r *GuessManager) AddSubdomain(sub string)
AddSubdomain is unique to the GuessManager and allows newly discovered subdomain names to be shared with the MarkovModel object.
func (*GuessManager) InputName ¶ added in v3.5.2
func (r *GuessManager) InputName(req *requests.DNSRequest)
InputName implements the FQDNManager interface.
func (*GuessManager) OutputNames ¶ added in v3.5.2
func (r *GuessManager) OutputNames(num int) []*requests.DNSRequest
OutputNames implements the FQDNManager interface.
func (*GuessManager) Stop ¶ added in v3.5.2
func (r *GuessManager) Stop() error
Stop implements the FQDNManager interface.
type NameManager ¶ added in v3.5.2
type NameManager struct {
// contains filtered or unexported fields
}
NameManager handles the filtering and release of newly discovered FQDNs in the enumeration.
func NewNameManager ¶ added in v3.5.2
func NewNameManager(e *Enumeration) *NameManager
NewNameManager returns an initialized NameManager.
func (*NameManager) InputName ¶ added in v3.5.2
func (r *NameManager) InputName(req *requests.DNSRequest)
InputName implements the FQDNManager interface.
func (*NameManager) OutputNames ¶ added in v3.5.2
func (r *NameManager) OutputNames(num int) []*requests.DNSRequest
OutputNames implements the FQDNManager interface.
func (*NameManager) Stop ¶ added in v3.5.2
func (r *NameManager) Stop() error
Stop implements the FQDNManager interface.
type SubdomainManager ¶ added in v3.5.2
SubdomainManager handles newly discovered proper subdomain names in the enumeration.
func NewSubdomainManager ¶ added in v3.5.2
func NewSubdomainManager(e *Enumeration) *SubdomainManager
NewSubdomainManager returns an initialized SubdomainManager.
func (*SubdomainManager) InputName ¶ added in v3.5.2
func (r *SubdomainManager) InputName(req *requests.DNSRequest)
InputName implements the FQDNManager interface.
func (*SubdomainManager) OutputNames ¶ added in v3.5.2
func (r *SubdomainManager) OutputNames(num int) []*requests.DNSRequest
OutputNames implements the FQDNManager interface.
func (*SubdomainManager) Stop ¶ added in v3.5.2
func (r *SubdomainManager) Stop() error
Stop implements the FQDNManager interface.