Documentation ¶
Index ¶
- func GetCacheMetrics(options *Options) *storage.CacheMetrics
- type CpuStats
- type DNSServer
- type DeregisterRequest
- type FTPServer
- func (h *FTPServer) AfterCurDirChanged(ctx *ftpserver.Context, oldCurDir, newCurDir string, err error)
- func (h *FTPServer) AfterDirCreated(ctx *ftpserver.Context, dstPath string, err error)
- func (h *FTPServer) AfterDirDeleted(ctx *ftpserver.Context, dstPath string, err error)
- func (h *FTPServer) AfterFileDeleted(ctx *ftpserver.Context, dstPath string, err error)
- func (h *FTPServer) AfterFileDownloaded(ctx *ftpserver.Context, dstPath string, size int64, err error)
- func (h *FTPServer) AfterFilePut(ctx *ftpserver.Context, dstPath string, size int64, err error)
- func (h *FTPServer) AfterUserLogin(ctx *ftpserver.Context, userName, password string, passMatched bool, err error)
- func (h *FTPServer) BeforeChangeCurDir(ctx *ftpserver.Context, oldCurDir, newCurDir string)
- func (h *FTPServer) BeforeCreateDir(ctx *ftpserver.Context, dstPath string)
- func (h *FTPServer) BeforeDeleteDir(ctx *ftpserver.Context, dstPath string)
- func (h *FTPServer) BeforeDeleteFile(ctx *ftpserver.Context, dstPath string)
- func (h *FTPServer) BeforeDownloadFile(ctx *ftpserver.Context, dstPath string)
- func (h *FTPServer) BeforeLoginUser(ctx *ftpserver.Context, userName string)
- func (h *FTPServer) BeforePutFile(ctx *ftpserver.Context, dstPath string)
- func (h *FTPServer) Close()
- func (h *FTPServer) ListenAndServe(tlsConfig *tls.Config, ftpAlive chan bool, ftpsAlive chan bool)
- func (h *FTPServer) Print(sessionID string, message interface{})
- func (h *FTPServer) PrintCommand(sessionID string, command string, params string)
- func (h *FTPServer) PrintResponse(sessionID string, code int, message string)
- func (h *FTPServer) Printf(sessionID string, format string, v ...interface{})
- type HTTPServer
- type Interaction
- type LDAPServer
- type MemoryMetrics
- type Metrics
- type NetworkStats
- type NopAuth
- type NopDriver
- func (n *NopDriver) DeleteDir(c *ftpserver.Context, s string) error
- func (n *NopDriver) DeleteFile(c *ftpserver.Context, s string) error
- func (n *NopDriver) GetFile(c *ftpserver.Context, s1 string, k int64) (int64, io.ReadCloser, error)
- func (n *NopDriver) ListDir(c *ftpserver.Context, s string, f func(os.FileInfo) error) error
- func (n *NopDriver) MakeDir(c *ftpserver.Context, s string) error
- func (n *NopDriver) PutFile(c *ftpserver.Context, s string, r io.Reader, k int64) (int64, error)
- func (n *NopDriver) Rename(c *ftpserver.Context, s1 string, s2 string) error
- func (n *NopDriver) Stat(c *ftpserver.Context, s string) (os.FileInfo, error)
- type OnResultCallback
- type Options
- type PollResponse
- type RegisterRequest
- type ResponderServer
- type SMBServer
- type SMTPServer
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetCacheMetrics ¶ added in v1.0.7
func GetCacheMetrics(options *Options) *storage.CacheMetrics
Types ¶
type CpuStats ¶ added in v1.0.7
type CpuStats struct { User uint64 `json:"user"` System uint64 `json:"system"` Idle uint64 `json:"idle"` Nice uint64 `json:"nice"` Total uint64 `json:"total"` }
func GetCpuMetrics ¶ added in v1.0.7
func GetCpuMetrics() (cpuStats *CpuStats)
type DNSServer ¶
type DNSServer struct { TxtRecord string // used for ACME verification // contains filtered or unexported fields }
DNSServer is a DNS server instance that listens on port 53.
func NewDNSServer ¶
NewDNSServer returns a new DNS server.
func (*DNSServer) ListenAndServe ¶
ListenAndServe listens on dns ports for the server.
type DeregisterRequest ¶
type DeregisterRequest struct { // CorrelationID is an ID for correlation with requests. CorrelationID string `json:"correlation-id"` // SecretKey is the secretKey for the interactsh client. SecretKey string `json:"secret-key"` }
DeregisterRequest is a request for client deregistration to interactsh server.
type FTPServer ¶ added in v1.0.0
type FTPServer struct {
// contains filtered or unexported fields
}
FTPServer is a ftp server instance
func NewFTPServer ¶ added in v1.0.0
NewFTPServer returns a new TLS & Non-TLS FTP server.
func (*FTPServer) AfterCurDirChanged ¶ added in v1.0.0
func (*FTPServer) AfterDirCreated ¶ added in v1.0.0
func (*FTPServer) AfterDirDeleted ¶ added in v1.0.0
func (*FTPServer) AfterFileDeleted ¶ added in v1.0.0
func (*FTPServer) AfterFileDownloaded ¶ added in v1.0.0
func (*FTPServer) AfterFilePut ¶ added in v1.0.0
func (*FTPServer) AfterUserLogin ¶ added in v1.0.0
func (*FTPServer) BeforeChangeCurDir ¶ added in v1.0.0
func (*FTPServer) BeforeCreateDir ¶ added in v1.0.0
func (*FTPServer) BeforeDeleteDir ¶ added in v1.0.0
func (*FTPServer) BeforeDeleteFile ¶ added in v1.0.0
func (*FTPServer) BeforeDownloadFile ¶ added in v1.0.0
func (*FTPServer) BeforeLoginUser ¶ added in v1.0.0
func (*FTPServer) BeforePutFile ¶ added in v1.0.0
func (*FTPServer) ListenAndServe ¶ added in v1.0.0
ListenAndServe listens on smtp and/or smtps ports for the server.
func (*FTPServer) PrintCommand ¶ added in v1.0.0
func (*FTPServer) PrintResponse ¶ added in v1.0.0
type HTTPServer ¶
type HTTPServer struct {
// contains filtered or unexported fields
}
HTTPServer is a http server instance that listens both TLS and Non-TLS based servers.
func NewHTTPServer ¶
func NewHTTPServer(options *Options) (*HTTPServer, error)
NewHTTPServer returns a new TLS & Non-TLS HTTP server.
func (*HTTPServer) ListenAndServe ¶
func (h *HTTPServer) ListenAndServe(tlsConfig *tls.Config, httpAlive, httpsAlive chan bool)
ListenAndServe listens on http and/or https ports for the server.
type Interaction ¶
type Interaction struct { // Protocol for interaction, can contains HTTP/DNS/SMTP,etc. Protocol string `json:"protocol"` // UniqueID is the uniqueID for the subdomain receiving the interaction. UniqueID string `json:"unique-id"` // FullId is the full path for the subdomain receiving the interaction. FullId string `json:"full-id"` // QType is the question type for the interaction QType string `json:"q-type,omitempty"` // RawRequest is the raw request received by the interactsh server. RawRequest string `json:"raw-request,omitempty"` // RawResponse is the raw response sent by the interactsh server. RawResponse string `json:"raw-response,omitempty"` // SMTPFrom is the mail form field SMTPFrom string `json:"smtp-from,omitempty"` // RemoteAddress is the remote address for interaction RemoteAddress string `json:"remote-address"` // Timestamp is the timestamp for the interaction Timestamp time.Time `json:"timestamp"` AsnInfo []map[string]string `json:"asninfo,omitempty"` }
Interaction is an interaction received to the server.
type LDAPServer ¶ added in v1.0.0
type LDAPServer struct { WithLogger bool // contains filtered or unexported fields }
LDAPServer is a ldap server instance
func NewLDAPServer ¶ added in v1.0.0
func NewLDAPServer(options *Options, withLogger bool) (*LDAPServer, error)
NewLDAPServer returns a new LDAP server.
func (*LDAPServer) Close ¶ added in v1.0.0
func (ldapServer *LDAPServer) Close() error
func (*LDAPServer) ListenAndServe ¶ added in v1.0.0
func (ldapServer *LDAPServer) ListenAndServe(tlsConfig *tls.Config, ldapAlive chan bool)
ListenAndServe listens on ldap ports for the server.
type MemoryMetrics ¶ added in v1.0.7
type MemoryMetrics struct { Alloc string `json:"alloc"` TotalAlloc string `json:"total_alloc"` Sys string `json:"sys"` Lookups uint64 `json:"lookups"` Mallocs uint64 `json:"mallocs"` Frees uint64 `json:"frees"` HeapAlloc string `json:"heap_allo"` HeapSys string `json:"heap_sys"` HeapIdle string `json:"head_idle"` HeapInuse string `json:"heap_in_use"` HeapReleased string `json:"heap_released"` HeapObjects uint64 `json:"heap_objects"` StackInuse string `json:"stack_in_use"` StackSys string `json:"stack_sys"` MSpanInuse string `json:"mspan_in_use"` MSpanSys string `json:"mspan_sys"` MCacheInuse string `json:"mcache_in_use"` MCacheSys string `json:"mcache_sys"` }
func GetMemoryMetrics ¶ added in v1.0.7
func GetMemoryMetrics() *MemoryMetrics
type Metrics ¶ added in v1.0.7
type Metrics struct { Dns uint64 `json:"dns"` Ftp uint64 `json:"ftp"` Http uint64 `json:"http"` Ldap uint64 `json:"ldap"` Smb uint64 `json:"smb"` Smtp uint64 `json:"smtp"` Sessions int64 `json:"sessions"` Cache *storage.CacheMetrics `json:"cache"` Memory *MemoryMetrics `json:"memory"` Cpu *CpuStats `json:"cpu"` Network *NetworkStats `json:"network"` }
type NetworkStats ¶ added in v1.0.7
type NetworkStats struct { Rx string `json:"received"` Tx string `json:"transmitted"` // contains filtered or unexported fields }
func GetNetworkMetrics ¶ added in v1.0.7
func GetNetworkMetrics() *NetworkStats
type NopDriver ¶ added in v1.0.0
type NopDriver struct {
// contains filtered or unexported fields
}
func NewNopDriver ¶ added in v1.0.0
func (*NopDriver) DeleteFile ¶ added in v1.0.0
type OnResultCallback ¶ added in v1.1.0
type OnResultCallback func(out interface{})
type Options ¶
type Options struct { // Domains is the list domains for the instance. Domains []string // IPAddress is the IP address of the current server. IPAddress string // ListenIP is the IP address to listen servers on ListenIP string // DomainPort is the port to listen DNS servers on DnsPort int // HttpPort is the port to listen HTTP server on HttpPort int // HttpsPort is the port to listen HTTPS server on HttpsPort int // SmbPort is the port to listen Smb server on SmbPort int // SmtpPort is the port to listen Smtp server on SmtpPort int // SmtpsPort is the port to listen Smtps server on SmtpsPort int // SmtpAutoTLSPort is the port to listen Smtp autoTLS server on SmtpAutoTLSPort int // FtpPort is the port to listen Ftp server on FtpPort int // FtpsPort is the port to listen Ftps server on FtpsPort int // FtpPort is the port to listen Ftp server on LdapPort int // Hostmaster is the hostmaster email for the server. Hostmasters []string // Storage is a storage for interaction data storage Storage storage.Storage // Auth requires client to authenticate Auth bool // HTTPIndex is the http index file for server HTTPIndex string // HTTPDirectory is the directory for interact server HTTPDirectory string // Token required to retrieve interactions Token string // Enable root tld interactions RootTLD bool // OriginURL for the HTTP Server OriginURL string // FTPDirectory or temporary one FTPDirectory string // ScanEverywhere for potential correlation id ScanEverywhere bool // CorrelationIdLength of preamble CorrelationIdLength int // CorrelationIdNonceLength of the unique identifier CorrelationIdNonceLength int // Certificate Path CertificatePath string // Private Key Path PrivateKeyPath string // CustomRecords is a file containing custom DNS records CustomRecords string // HTTP header containing origin IP OriginIPHeader string // Version is the version of interactsh server Version string // DiskStorage enables storing interactions on disk DiskStorage bool // DiskStoragePath defines the disk storage location DiskStoragePath string // DynamicResp enables dynamic HTTP response DynamicResp bool // EnableMetrics enables metrics endpoint EnableMetrics bool // ServerToken hide server version in HTTP response X-Interactsh-Version header NoVersionHeader bool // HeaderServer use custom string in HTTP response Server header instead of domain HeaderServer string ACMEStore *acme.Provider Stats *Metrics OnResult OnResultCallback Certificates []tls.Certificate CertFiles []acme.CertificateFiles }
Options contains configuration options for the servers
func (*Options) GetIdLength ¶ added in v1.0.2
func (*Options) URLReflection ¶ added in v1.0.2
URLReflection returns a reversed part of the URL payload which is checked in the response.
type PollResponse ¶
type PollResponse struct { Data []string `json:"data"` Extra []string `json:"extra"` AESKey string `json:"aes_key"` TLDData []string `json:"tlddata,omitempty"` }
PollResponse is the response for a polling request
type RegisterRequest ¶
type RegisterRequest struct { // PublicKey is the public RSA Key of the client. PublicKey string `json:"public-key"` // SecretKey is the secret-key for correlation ID registered for the client. SecretKey string `json:"secret-key"` // CorrelationID is an ID for correlation with requests. CorrelationID string `json:"correlation-id"` }
RegisterRequest is a request for client registration to interactsh server.
type ResponderServer ¶ added in v0.0.5
type ResponderServer struct { LogFile string // contains filtered or unexported fields }
ResponderServer is a Responder wrapper server instance
func NewResponderServer ¶ added in v0.0.5
func NewResponderServer(options *Options) (*ResponderServer, error)
NewResponderServer returns a new SMB server.
func (*ResponderServer) Close ¶ added in v0.0.5
func (h *ResponderServer) Close()
func (*ResponderServer) ListenAndServe ¶ added in v0.0.5
func (h *ResponderServer) ListenAndServe(responderAlive chan bool) error
ListenAndServe listens on various responder ports
type SMBServer ¶ added in v0.0.5
type SMBServer struct { LogFile string // contains filtered or unexported fields }
SMBServer is a smb wrapper server instance
func NewSMBServer ¶ added in v0.0.5
NewSMBServer returns a new SMB server.
func (*SMBServer) ListenAndServe ¶ added in v0.0.5
ListenAndServe listens on smb port
type SMTPServer ¶
type SMTPServer struct {
// contains filtered or unexported fields
}
SMTPServer is a smtp server instance that listens both TLS and Non-TLS based servers.
func NewSMTPServer ¶
func NewSMTPServer(options *Options) (*SMTPServer, error)
NewSMTPServer returns a new TLS & Non-TLS SMTP server.
func (*SMTPServer) ListenAndServe ¶
func (h *SMTPServer) ListenAndServe(tlsConfig *tls.Config, smtpAlive, smtpsAlive chan bool)
ListenAndServe listens on smtp and/or smtps ports for the server.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Taken from https://github.com/chinzhiweiblank/coredns-acme/blob/e0cdfbdd78adfcc6c2d098255902f64ec60daecb/provider.go Copyright @chinzhiweiblank under Apache License 2.0
|
Taken from https://github.com/chinzhiweiblank/coredns-acme/blob/e0cdfbdd78adfcc6c2d098255902f64ec60daecb/provider.go Copyright @chinzhiweiblank under Apache License 2.0 |