Documentation ¶
Index ¶
- Variables
- type AddressManager
- func (r *AddressManager) InputAddress(req *requests.AddrRequest)
- func (r *AddressManager) InputName(req *requests.DNSRequest)
- func (r *AddressManager) NameQueueLen() int
- func (r *AddressManager) OutputNames(num int) []*requests.DNSRequest
- func (r *AddressManager) OutputRequests(num int) int
- func (r *AddressManager) RequestQueueLen() int
- func (r *AddressManager) Stop() error
- type DNSService
- type DataManagerService
- type DomainManager
- func (r *DomainManager) InputName(req *requests.DNSRequest)
- func (r *DomainManager) NameQueueLen() int
- func (r *DomainManager) OutputNames(num int) []*requests.DNSRequest
- func (r *DomainManager) OutputRequests(num int) int
- func (r *DomainManager) RequestQueueLen() int
- func (r *DomainManager) Stop() error
- type Enumeration
- type FQDNManager
- type NameManager
- type SubdomainManager
- func (r *SubdomainManager) InputName(req *requests.DNSRequest)
- func (r *SubdomainManager) NameQueueLen() int
- func (r *SubdomainManager) OutputNames(num int) []*requests.DNSRequest
- func (r *SubdomainManager) OutputRequests(num int) int
- func (r *SubdomainManager) RequestQueueLen() int
- func (r *SubdomainManager) Stop() error
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) NameQueueLen ¶ added in v3.7.3
func (r *AddressManager) NameQueueLen() int
NameQueueLen 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) OutputRequests ¶ added in v3.7.3
func (r *AddressManager) OutputRequests(num int) int
OutputRequests implements the FQDNManager interface.
func (*AddressManager) RequestQueueLen ¶ added in v3.7.3
func (r *AddressManager) RequestQueueLen() int
RequestQueueLen implements the FQDNManager interface.
func (*AddressManager) Stop ¶ added in v3.5.2
func (r *AddressManager) 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) NameQueueLen ¶ added in v3.7.3
func (r *DomainManager) NameQueueLen() int
NameQueueLen 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) OutputRequests ¶ added in v3.7.3
func (r *DomainManager) OutputRequests(num int) int
OutputRequests implements the FQDNManager interface.
func (*DomainManager) RequestQueueLen ¶ added in v3.7.3
func (r *DomainManager) RequestQueueLen() int
RequestQueueLen 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 // Obtain the number of names currently waiting to be output NameQueueLen() int // Send requests to data sources OutputRequests(num int) int // Obtain the number of requests currently waiting to be output RequestQueueLen() int Stop() error }
FQDNManager is the object type for taking in, generating and providing new DNS FQDNs.
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) NameQueueLen ¶ added in v3.7.3
func (r *NameManager) NameQueueLen() int
NameQueueLen 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) OutputRequests ¶ added in v3.7.3
func (r *NameManager) OutputRequests(num int) int
OutputRequests implements the FQDNManager interface.
func (*NameManager) RequestQueueLen ¶ added in v3.7.3
func (r *NameManager) RequestQueueLen() int
RequestQueueLen 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
type SubdomainManager struct {
// contains filtered or unexported fields
}
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) NameQueueLen ¶ added in v3.7.3
func (r *SubdomainManager) NameQueueLen() int
NameQueueLen 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) OutputRequests ¶ added in v3.7.3
func (r *SubdomainManager) OutputRequests(num int) int
OutputRequests implements the FQDNManager interface.
func (*SubdomainManager) RequestQueueLen ¶ added in v3.7.3
func (r *SubdomainManager) RequestQueueLen() int
RequestQueueLen implements the FQDNManager interface.
func (*SubdomainManager) Stop ¶ added in v3.5.2
func (r *SubdomainManager) Stop() error
Stop implements the FQDNManager interface.