Documentation
¶
Index ¶
- func GenerateSelfSignedCert(host string) (tls.Certificate, error)
- func NewClientTLSConfig() *tls.Config
- func NewTLSConfig(cert tls.Certificate) *tls.Config
- func SaveCertToFile(cert tls.Certificate, certFile, keyFile string) error
- type Conn
- type DNSListener
- type HTTPAgent
- type HTTPListener
- type Profile
- type WSAgent
- type WSListener
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GenerateSelfSignedCert ¶
func GenerateSelfSignedCert(host string) (tls.Certificate, error)
GenerateSelfSignedCert creates an ECDSA P-256 self-signed certificate.
func NewClientTLSConfig ¶
NewClientTLSConfig creates a TLS config for agents.
func NewTLSConfig ¶
func NewTLSConfig(cert tls.Certificate) *tls.Config
NewTLSConfig creates a TLS config for the server.
func SaveCertToFile ¶
func SaveCertToFile(cert tls.Certificate, certFile, keyFile string) error
SaveCertToFile saves certificate and key to files.
Types ¶
type Conn ¶
type Conn struct {
net.Conn
Transport string
TLSEnabled bool
TLSState *tls.ConnectionState
ProxyUsed bool
}
Conn wraps a network connection with transport metadata.
type DNSListener ¶
type DNSListener struct {
// contains filtered or unexported fields
}
DNSListener implements encrypted DNS tunneling. Agents encode encrypted data in A/AAAA queries, server responds via TXT records.
func NewDNSListener ¶
func NewDNSListener(addr string, domains []string, encKey []byte) (*DNSListener, error)
NewDNSListener creates an encrypted DNS tunneling listener.
func (*DNSListener) Accept ¶
func (l *DNSListener) Accept() (net.Conn, error)
Accept returns the next DNS tunneling connection.
func (*DNSListener) Addr ¶
func (l *DNSListener) Addr() net.Addr
Addr returns the listener's address.
type HTTPAgent ¶
type HTTPAgent struct {
// contains filtered or unexported fields
}
HTTPAgent connects to C2 via HTTP long-polling.
func NewHTTPAgent ¶
NewHTTPAgent creates a new HTTP long-poll agent transport.
type HTTPListener ¶
type HTTPListener struct {
// contains filtered or unexported fields
}
HTTPListener implements a long-poll HTTP/S listener for C2.
func NewHTTPListener ¶
func NewHTTPListener(addr string) *HTTPListener
NewHTTPListener creates a new HTTP long-poll listener.
func NewHTTPSListener ¶
func NewHTTPSListener(addr string, tlsConfig *tls.Config) *HTTPListener
NewHTTPSListener creates a new HTTPS long-poll listener.
func (*HTTPListener) Accept ¶
func (l *HTTPListener) Accept() (net.Conn, error)
Accept returns the next agent connection via HTTP long-poll.
func (*HTTPListener) Addr ¶
func (l *HTTPListener) Addr() net.Addr
Addr returns the listener's address.
func (*HTTPListener) Close ¶
func (l *HTTPListener) Close() error
Close shuts down the HTTP listener.
func (*HTTPListener) SendToSession ¶
func (l *HTTPListener) SendToSession(sessionID string, data []byte) error
SendToSession sends data to a specific HTTP session.
type Profile ¶
type Profile struct {
Name string `json:"name"` // e.g., "corporate", "direct"
Priority int `json:"priority"` // Lower = tried first
Transports []string `json:"transports"` // e.g., ["wss", "https", "dns"]
ProxyURL string `json:"proxy_url"` // Optional SOCKS5/HTTP proxy
UserAgent string `json:"user_agent"` // e.g., "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"
HostHeader string `json:"host_header"` // Domain fronting header
MaxRetries int `json:"max_retries"`
}
Profile defines a transport profile for an agent.
func DefaultProfiles ¶
DefaultProfiles returns standard transport profiles.
type WSAgent ¶
type WSAgent struct {
// contains filtered or unexported fields
}
WSAgent connects to C2 via WebSocket.
func NewWSAgent ¶
NewWSAgent creates a new WebSocket agent transport.
type WSListener ¶
type WSListener struct {
// contains filtered or unexported fields
}
WSListener implements a WebSocket upgrade listener.
func NewWSListener ¶
func NewWSListener(addr string) *WSListener
NewWSListener creates a WebSocket listener.
func NewWSSListener ¶
func NewWSSListener(addr string, tlsConfig *tls.Config) *WSListener
NewWSSListener creates a secure WebSocket listener.
func (*WSListener) Accept ¶
func (l *WSListener) Accept() (net.Conn, error)
Accept returns the next WebSocket connection.
func (*WSListener) Close ¶
func (l *WSListener) Close() error
Close shuts down the WebSocket listener.