generate

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Nov 17, 2025 License: GPL-3.0 Imports: 32 Imported by: 0

README

client/command/generate

Overview

Implements the 'generate' command group for the Sliver client console. Handlers map Cobra invocations to generate workflows such as canaries, generate beacon, generate info, and implants RM.

Go Files

  • canaries.go – Lists DNS canaries, filters burned entries, and prints status tables.
  • commands.go – Defines the generate command hierarchy spanning implant, profile, and canary tooling.
  • generate-beacon.go – Builds staged beacons from profile/flag inputs and triggers compilation via RPC.
  • generate-info.go – Displays build configuration details for a generated implant artifact.
  • generate.go – Orchestrates implant compilation pipelines, parsing C2 flags and selecting targets/builders.
  • helpers.go – Supplies completions, helper lookups, and binary retrieval utilities used across generate commands.
  • implants-rm.go – Deletes stored implant builds from the server catalog.
  • implants-stage.go – Uploads generated implants into staging slots for later deployment.
  • implants.go – Lists implant builds, filters them, and resolves selected build metadata.
  • profiles-generate.go – Generates new implant profiles from templates and selected options.
  • profiles-new.go – Creates empty implant profiles populated with default settings.
  • profiles-rm.go – Removes saved implant profiles and confirms deletion state.
  • profiles-stage.go – Stages implant profiles to facilitate rapid build operations.
  • profiles.go – Lists profiles, prints detailed info, and resolves profile selections for other commands.
  • regenerate.go – Rebuilds implants from existing configuration IDs without re-specifying flags.
  • traffic-encoders.go – Manages generation of HTTP/DNS traffic encoder assets for implants.

Documentation

Index

Constants

View Source
const (
	// DefaultMTLSLPort is the default port for mtls.
	DefaultMTLSLPort = 8888
	// DefaultWGPort is the default port for wg.
	DefaultWGLPort = 53
	// DefaultWGNPort is the default n port for wg.
	DefaultWGNPort = 8888
	// DefaultWGKeyExPort is the default port for wg key exchange.
	DefaultWGKeyExPort = 1337
	// DefaultHTTPLPort is the default port for http.
	DefaultHTTPLPort = 80
	// DefaultHTTPSLPort is the default port for https.
	DefaultHTTPSLPort = 443
	// DefaultDNSLPortis the default port for dns.
	DefaultDNSLPort = 53
	// DefaultTCPPivotPort is the default port for tcp pivots.
	DefaultTCPPivotPort = 9898

	// DefaultReconnect is the default reconnect time.
	DefaultReconnect = 60
	// DefaultPollTimeout is the default poll timeout.
	DefaultPollTimeout = 360 // 6 minutes
	// DefaultMaxErrors is the default max reconnection errors before giving up.
	DefaultMaxErrors = 1000
)

Variables

View Source
var (
	// SupportedCompilerTargets - Supported compiler targets.
	SupportedCompilerTargets = map[string]bool{
		"darwin/amd64":  true,
		"darwin/arm64":  true,
		"linux/386":     true,
		"linux/amd64":   true,
		"windows/386":   true,
		"windows/amd64": true,
	}

	ErrNoExternalBuilder = errors.New("no external builders are available")
	ErrNoValidBuilders   = errors.New("no valid external builders for target")
)
View Source
var (
	ErrBeaconIntervalTooShort = fmt.Errorf("beacon interval must be %v or greater", minBeaconInterval)
)

Functions

func ArchCompleter

func ArchCompleter(con *console.SliverClient) carapace.Action

FormatCompleter completes builds' architectures.

func CanariesCmd

func CanariesCmd(cmd *cobra.Command, con *console.SliverClient, args []string)

CanariesCmd - Display canaries from the database and their status.

func Commands

func Commands(con *console.SliverClient) []*cobra.Command

Commands returns the “ command and its subcommands.

func DisplayTrafficEncoders

func DisplayTrafficEncoders(encoderMap *clientpb.TrafficEncoderMap, con *console.SliverClient)

DisplayTrafficEncoders - Display traffic encoders map from server.

func FormatCompleter

func FormatCompleter() carapace.Action

FormatCompleter completes build formats.

func GenerateBeaconCmd

func GenerateBeaconCmd(cmd *cobra.Command, con *console.SliverClient, args []string)

GenerateBeaconCmd - The main command used to generate implant binaries

func GenerateCmd

func GenerateCmd(cmd *cobra.Command, con *console.SliverClient, args []string)

GenerateCmd - The main command used to generate implant binaries

func GenerateInfoCmd

func GenerateInfoCmd(cmd *cobra.Command, con *console.SliverClient, args []string)

GenerateInfoCmd - Display information about the Sliver server's compiler configuration.

func GetImplantProfileByName

func GetImplantProfileByName(name string, con *console.SliverClient) *clientpb.ImplantProfile

GetImplantProfileByName - Get an implant profile by a specific name.

func GetSliverBinary

func GetSliverBinary(profile *clientpb.ImplantProfile, con *console.SliverClient) ([]byte, error)

GetSliverBinary - Get the binary of an implant based on it's profile.

func HTTPC2Completer

func HTTPC2Completer(con *console.SliverClient) carapace.Action

HTTPC2Completer - Completes the HTTP C2 PROFILES

func ImplantBuildByName

func ImplantBuildByName(name string, con *console.SliverClient) *clientpb.ImplantConfig

ImplantBuildByName - Get an implant build by name.

func ImplantBuildNameCompleter

func ImplantBuildNameCompleter(con *console.SliverClient) carapace.Action

ImplantBuildNameCompleter - Completer for implant build names.

func ImplantsCmd

func ImplantsCmd(cmd *cobra.Command, con *console.SliverClient, args []string)

ImplantsCmd - Displays archived implant builds.

func ImplantsRmCmd

func ImplantsRmCmd(cmd *cobra.Command, con *console.SliverClient, args []string)

ImplantsRmCmd - Deletes an archived implant build from the server.

func ImplantsStageCmd

func ImplantsStageCmd(cmd *cobra.Command, con *console.SliverClient, args []string)

ImplantsStageCmd - Serve a previously generated build

func OSCompleter

func OSCompleter(con *console.SliverClient) carapace.Action

FormatCompleter completes build operating systems.

func ParseDNSc2

func ParseDNSc2(args string) ([]*clientpb.ImplantC2, error)

ParseDNSc2 - Parse DNS connection string arg.

func ParseHTTPc2

func ParseHTTPc2(args string) ([]*clientpb.ImplantC2, error)

ParseHTTPc2 - Parse HTTP connection string arg.

func ParseMTLSc2

func ParseMTLSc2(args string) ([]*clientpb.ImplantC2, error)

ParseMTLSc2 - Parse mtls connection string arg.

func ParseNamedPipec2

func ParseNamedPipec2(args string) ([]*clientpb.ImplantC2, error)

ParseNamedPipec2 - Parse named pipe connection string arg.

func ParseTCPPivotc2

func ParseTCPPivotc2(args string) ([]*clientpb.ImplantC2, error)

ParseTCPPivotc2 - Parse tcp pivot connection string arg.

func ParseWGc2

func ParseWGc2(args string) ([]*clientpb.ImplantC2, error)

ParseWGc2 - Parse wg connect string arg.

func PrintCanaries

func PrintCanaries(con *console.SliverClient, canaries []*clientpb.DNSCanary, burnedOnly bool)

PrintCanaries - Print the canaries tracked by the server.

func PrintImplantBuilds

func PrintImplantBuilds(builds *clientpb.ImplantBuilds, filters ImplantBuildFilter, con *console.SliverClient)

PrintImplantBuilds - Print the implant builds on the server

func PrintProfileInfo

func PrintProfileInfo(name string, con *console.SliverClient)

PrintProfileInfo - Print detailed information about a given profile.

func PrintProfiles

func PrintProfiles(profiles []*clientpb.ImplantProfile, con *console.SliverClient)

PrintProfiles - Print the profiles.

func ProfileNameCompleter

func ProfileNameCompleter(con *console.SliverClient) carapace.Action

ProfileNameCompleter - Completer for implant build names.

func ProfilesCmd

func ProfilesCmd(cmd *cobra.Command, con *console.SliverClient, args []string)

ProfilesCmd - Display implant profiles.

func ProfilesGenerateCmd

func ProfilesGenerateCmd(cmd *cobra.Command, con *console.SliverClient, args []string)

ProfilesGenerateCmd - Generate an implant binary based on a profile.

func ProfilesNewBeaconCmd

func ProfilesNewBeaconCmd(cmd *cobra.Command, con *console.SliverClient, args []string)

ProfilesNewBeaconCmd - Create a new beacon profile.

func ProfilesNewCmd

func ProfilesNewCmd(cmd *cobra.Command, con *console.SliverClient, args []string)

ProfilesNewCmd - Create a new implant profile.

func ProfilesRmCmd

func ProfilesRmCmd(cmd *cobra.Command, con *console.SliverClient, args []string)

ProfilesRmCmd - Delete an implant profile.

func ProfilesStageCmd

func ProfilesStageCmd(cmd *cobra.Command, con *console.SliverClient, args []string)

ProfilesStageCmd - Generate an encrypted/compressed implant binary based on a profile

func RegenerateCmd

func RegenerateCmd(cmd *cobra.Command, con *console.SliverClient, args []string)

RegenerateCmd - Download an archived implant build/binary.

func SelectTrafficEncoder

func SelectTrafficEncoder(con *console.SliverClient) string

SelectTrafficEncoder - Select a traffic encoder from a list.

func TrafficEncodersAddCmd

func TrafficEncodersAddCmd(cmd *cobra.Command, con *console.SliverClient, args []string)

TrafficEncodersAddCmd - Add a new traffic encoder to the server.

func TrafficEncodersCmd

func TrafficEncodersCmd(cmd *cobra.Command, con *console.SliverClient, args []string)

TrafficEncodersCmd - Generate traffic encoders command implementation.

func TrafficEncodersCompleter

func TrafficEncodersCompleter(con *console.SliverClient) carapace.Action

TrafficEncoderCompleter - Completes the names of traffic encoders.

func TrafficEncodersRemoveCmd

func TrafficEncodersRemoveCmd(cmd *cobra.Command, con *console.SliverClient, args []string)

TrafficEncodersRemoveCmd - Remove a traffic encoder.

Types

type ImplantBuildFilter

type ImplantBuildFilter struct {
	GOOS    string
	GOARCH  string
	Beacon  bool
	Session bool
	Format  string
	Debug   bool
}

ImplantBuildFilter - Filter implant builds.

Jump to

Keyboard shortcuts

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