enum

package
v3.10.2 Latest Latest
Warning

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

Go to latest
Published: Sep 1, 2020 License: Apache-2.0 Imports: 24 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
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 ASService added in v3.9.0

type ASService struct {
	requests.BaseService
	Cache      *net.ASNCache
	Graph      *graph.Graph
	SourceType string
	// contains filtered or unexported fields
}

ASService is the Service that handles all AS information collection for the architecture.

func NewASService added in v3.9.0

func NewASService(srcs []requests.Service, graph *graph.Graph, uuid string) *ASService

NewASService returns he object initialized, but not yet started.

func (*ASService) OnAddrRequest added in v3.9.0

func (as *ASService) OnAddrRequest(ctx context.Context, req *requests.AddrRequest)

OnAddrRequest implements the Service interface.

func (*ASService) Type added in v3.9.0

func (as *ASService) Type() string

Type implements the Service interface.

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) 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, asinfo bool) []*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.

Jump to

Keyboard shortcuts

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