server

package
v0.0.0-...-96882d5 Latest Latest
Warning

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

Go to latest
Published: Oct 20, 2021 License: MIT Imports: 24 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func URLReflection

func URLReflection(URL string) string

URLReflection returns a reversed part of the URL payload which is checked in theb

Types

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

func NewDNSServer(options *Options) (*DNSServer, error)

NewDNSServer returns a new DNS server.

func (*DNSServer) ListenAndServe

func (h *DNSServer) ListenAndServe()

ListenAndServe listens on dns ports for the server.

func (*DNSServer) ServeDNS

func (h *DNSServer) ServeDNS(w dns.ResponseWriter, r *dns.Msg)

ServeDNS is the default handler for DNS queries.

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 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(autoTLS *acme.AutoTLS)

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"`
}

Interaction is an interaction received to the server.

type Options

type Options struct {
	// Domain is the domain for the instance.
	Domain string
	// IPAddress is the IP address of the current server.
	IPAddress string
	// ListenIP is the IP address to listen servers on
	ListenIP string
	// Hostmaster is the hostmaster email for the server.
	Hostmaster string
	// Storage is a storage for interaction data storage
	Storage *storage.Storage
	// Auth requires client to authenticate
	Auth bool
	// Token required to retrieve interactions
	Token string
	// Enable root tld interactions
	RootTLD bool
	// OriginURL for the HTTP Server
	OriginURL string
}

Options contains configuration options for the servers

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

type ResponderServer struct {
	LogFile string
	// contains filtered or unexported fields
}

ResponderServer is a Responder wrapper server instance

func NewResponderServer

func NewResponderServer(options *Options) (*ResponderServer, error)

NewResponderServer returns a new SMB server.

func (*ResponderServer) Close

func (h *ResponderServer) Close()

func (*ResponderServer) ListenAndServe

func (h *ResponderServer) ListenAndServe() error

ListenAndServe listens on various responder ports

type SMBServer

type SMBServer struct {
	LogFile string
	// contains filtered or unexported fields
}

SMBServer is a smb wrapper server instance

func NewSMBServer

func NewSMBServer(options *Options) (*SMBServer, error)

NewSMBServer returns a new SMB server.

func (*SMBServer) Close

func (h *SMBServer) Close()

func (*SMBServer) ListenAndServe

func (h *SMBServer) ListenAndServe() error

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(autoTLS *acme.AutoTLS)

ListenAndServe listens on smtp and/or smtps ports for the server.

Directories

Path Synopsis
Package acme implements an automatically renewing acme wildcard certificate generation implementation that performs rolling updates on the http.Server.
Package acme implements an automatically renewing acme wildcard certificate generation implementation that performs rolling updates on the http.Server.

Jump to

Keyboard shortcuts

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