c2

package
v0.4.1 Latest Latest
Warning

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

Go to latest
Published: Mar 3, 2026 License: AGPL-3.0 Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RegisterFactory

func RegisterFactory(name string, factory Factory)

RegisterFactory registers a named C2 backend factory. Called from init() in each backend package.

func ResolvePayload added in v0.1.4

func ResolvePayload(payloads PayloadMap, lhost string, lport int, payloadType string, fallback func(string, int) string) (string, error)

ResolvePayload looks up a payload by type in the map, falling back to the given default.

Types

type Backend

type Backend interface {
	Name() string
	Setup(lhost string, lport int) error
	GeneratePayload(targetOS, payloadType string) (string, error)
	WaitForSession(timeout time.Duration) error
	Shutdown() error
}

Backend is the interface for C2 integrations (built-in shell, Sliver, etc.).

func Resolve

func Resolve(c2Type, configPath string) Backend

Resolve returns a Backend for the given C2 type. Returns nil if the type is "shell" or unregistered (runner defaults to built-in shell).

type Factory

type Factory func(configPath string) Backend

Factory creates a Backend from a config path.

type ImplantGenerator

type ImplantGenerator interface {
	GenerateImplant(targetOS, arch string) ([]byte, error)
}

ImplantGenerator is an optional interface for backends that can produce raw implant binaries. The runner uses this to feed CmdStager delivery instead of single-shot payload commands.

type PayloadMap added in v0.1.4

type PayloadMap map[string]func(string, int) string

PayloadMap is a map of payload names to generator functions.

type SessionBase added in v0.3.0

type SessionBase struct {
	Manager *session.Manager
}

SessionBase provides default SessionHandler methods by wrapping a session.Manager. Embed in a listener to get Sessions, Interact, Kill, WaitForSession for free.

func (*SessionBase) Interact added in v0.3.0

func (b *SessionBase) Interact(id int) error

func (*SessionBase) Kill added in v0.3.0

func (b *SessionBase) Kill(id int) error

func (*SessionBase) Sessions added in v0.3.0

func (b *SessionBase) Sessions() []*session.Session

func (*SessionBase) ShutdownManager added in v0.3.0

func (b *SessionBase) ShutdownManager() error

func (*SessionBase) WaitForSession added in v0.3.0

func (b *SessionBase) WaitForSession(timeout time.Duration) error

type SessionHandler

type SessionHandler interface {
	Sessions() []*session.Session
	Interact(id int) error
	Kill(id int) error
}

SessionHandler is an optional interface for backends that support multiple concurrent sessions.

type Stager

type Stager interface {
	StageImplant(targetOS, arch string) (url string, err error)
}

Stager is an optional interface for backends that stage implants over HTTP. Returns the staging URL; the runner builds the fetch command via pkg/payload.

type TCPStager

type TCPStager interface {
	TCPStageImplant(targetOS, arch string) ([]byte, error)
}

TCPStager is an optional interface for backends that support TCP-based staging. Returns a small stager binary (patched with host:port) ready for CmdStager chunking. The backend manages the TCP listener internally.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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