rpc

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: 57 Imported by: 0

README

server/rpc

Overview

RPC server implementations and wiring. Boots gRPC servers, registers services, and manages middleware. Key routines cover RPC backdoor, RPC beacons, RPC C2 profile, and RPC certificates within the rpc subsystem.

Go Files

  • errors.go – Defines shared RPC error helpers and codes.
  • rpc-backdoor.go – Handles RPC endpoints for backdoor operations.
  • rpc-beacons.go – Implements beacon management RPCs.
  • rpc-c2profile.go – Serves C2 profile CRUD and generation requests.
  • rpc-certificates.go – Exposes certificate issuance and listing RPCs.
  • rpc-client-logs.go – Streams client log data via RPC.
  • rpc-crackstations.go – Manages crackstation nodes through RPC commands.
  • rpc-creds.go – Provides credential store RPC endpoints.
  • rpc-env.go – Handles environment variable get/set RPC calls.
  • rpc-events.go – Streams server events to clients.
  • rpc-execute.go – Executes commands/shellcode on implants via RPC.
  • rpc-extensions.go – Manages extension installation and invocation RPCs.
  • rpc-filesystem.go – Exposes filesystem operations over RPC.
  • rpc-generate.go – Drives payload/profile generation commands.
  • rpc-hijack.go – Handles DLL hijack RPC requests.
  • rpc-hosts.go – Offers host inventory RPCs.
  • rpc-jobs.go – Manages background job operations via RPC.
  • rpc-kill.go – Provides RPC to kill implants or sessions.
  • rpc-loot.go – Manages loot retrieval and updates.
  • rpc-monitor.go – Controls monitor job lifecycle through RPC.
  • rpc-msf.go – Bridges Metasploit integration RPC calls.
  • rpc-net.go – Delivers network info RPC responses.
  • rpc-operators.go – Operator management RPC endpoints.
  • rpc-ping.go – Implements ping RPC for reachability checks.
  • rpc-pivots.go – Handles pivot setup/teardown RPCs.
  • rpc-portfwd.go – Manages port-forward RPC operations.
  • rpc-priv.go – Runs privilege escalation RPC tasks.
  • rpc-process.go – Provides process listing/termination RPCs.
  • rpc-reconfig.go – Handles implant reconfiguration RPC actions.
  • rpc-registry.go – Exposes Windows registry RPC endpoints.
  • rpc-rportfwd.go – Manages reverse port forwarding RPC commands.
  • rpc-screenshot.go – Requests screenshots via RPC.
  • rpc-service.go – Controls service-related RPC calls.
  • rpc-sessions.go – Manages session lifecycle through RPC.
  • rpc-shell.go – Provides interactive shell RPC streaming.
  • rpc-shellcode.go – Executes raw shellcode over RPC.
  • rpc-socks.go – Controls SOCKS proxy operations via RPC.
  • rpc-stager.go – Handles stager delivery RPC endpoints.
  • rpc-tasks.go – Lists and cancels tasks through RPC.
  • rpc-tunnel.go – Manages tunnel creation and traffic forwarding RPCs.
  • rpc-wasm.go – Executes WASM modules via RPC interface.
  • rpc-website.go – Serves website management RPC functions.
  • rpc-wg.go – Manages WireGuard configuration via RPC.
  • rpc.go – Boots the RPC server and registers all service handlers.

Documentation

Index

Constants

View Source
const (
	DEFAULT_CHARACTERISTICS = 0x40000040
	SECTION_NAME            = 8
)

Variables

View Source
var (
	// ErrInvalidBeaconID - Invalid Beacon ID in request
	ErrInvalidBeaconID = status.Error(codes.InvalidArgument, "Invalid beacon ID")
	// ErrInvalidBeaconTaskID - Invalid Beacon ID in request
	ErrInvalidBeaconTaskID = status.Error(codes.InvalidArgument, "Invalid beacon task ID")

	// ErrInvalidSessionID - Invalid Session ID in request
	ErrInvalidSessionID = status.Error(codes.InvalidArgument, "Invalid session ID")

	// ErrMissingRequestField - Returned when a request does not contain a commonpb.Request
	ErrMissingRequestField = status.Error(codes.InvalidArgument, "Missing session request field")
	// ErrAsyncNotSupported - Unsupported mode / command type
	ErrAsyncNotSupported = status.Error(codes.Unavailable, "Async not supported for this command")
	// ErrDatabaseFailure - Generic database failure error (real error is logged)
	ErrDatabaseFailure = status.Error(codes.Internal, "Database operation failed")

	// ErrInvalidName - Invalid name
	ErrInvalidName = status.Error(codes.InvalidArgument, "Invalid session name, alphanumerics and _-. only")
	// ErrBuildExists
	ErrBuildExists = status.Error(codes.AlreadyExists, "Build already exists")

	ErrInvalidBeaconTaskCancelState = status.Error(codes.InvalidArgument, fmt.Sprintf("Invalid task state, must be '%s' to cancel", models.PENDING))
)
View Source
var (
	ErrInvalidCredID       = status.Errorf(codes.InvalidArgument, "Invalid credential ID")
	ErrCredNotFound        = status.Error(codes.NotFound, "Credential not found")
	ErrCredOperationFailed = status.Error(codes.Internal, "Credential operation failed")
)
View Source
var (
	// ErrInvalidPort - Invalid TCP port number
	ErrInvalidPort = errors.New("invalid listener port")
)
View Source
var (
	// ErrInvalidStreamName - Invalid stream name
	ErrInvalidStreamName = status.Error(codes.InvalidArgument, "Invalid stream name")
)
View Source
var (
	// ErrTunnelInitFailure - Returned when a tunnel cannot be initialized
	ErrTunnelInitFailure = status.Error(codes.Internal, "Failed to initialize tunnel")
)

Functions

func Compress

func Compress(stage2 []byte, compress string) ([]byte, error)

func Encrypt

func Encrypt(stage2 []byte, req *clientpb.GenerateStageReq) ([]byte, error)

func PortInUse

func PortInUse(newPort uint32) error

func RemoveBuildByName

func RemoveBuildByName(name string) error

Remove Implant build given the build name

Types

type ExportDirectory

type ExportDirectory struct {
	Characteristics       uint32
	TimeDateStamp         uint32
	MajorVersion          uint16
	MinorVersion          uint16
	Name                  uint32
	Base                  uint32
	NumberOfFunctions     uint32
	NumberOfNames         uint32
	AddressOfFunctions    uint32 // RVA from base of image
	AddressOfNames        uint32 // RVA from base of image
	AddressOfNameOrdinals uint32 // RVA from base of image
}

ExportDirectory - stores the Export data

type GenericRequest

type GenericRequest interface {
	Reset()
	String() string
	ProtoMessage()
	ProtoReflect() protoreflect.Message

	GetRequest() *commonpb.Request
}

GenericRequest - Generic request interface to use with generic handlers

type GenericResponse

type GenericResponse interface {
	Reset()
	String() string
	ProtoMessage()
	ProtoReflect() protoreflect.Message

	GetResponse() *commonpb.Response
}

GenericResponse - Generic response interface to use with generic handlers

type LogStream

type LogStream struct {
	// contains filtered or unexported fields
}

func (*LogStream) Write

func (l *LogStream) Write(data []byte) (int, error)

type Server

type Server struct {
	// Magical methods to break backwards compatibility
	// Here be dragons: https://github.com/grpc/grpc-go/issues/3794
	rpcpb.UnimplementedSliverRPCServer
}

Server - gRPC server

func NewServer

func NewServer() *Server

NewServer - Create new server instance

func (*Server) Backdoor

func (rpc *Server) Backdoor(ctx context.Context, req *clientpb.BackdoorReq) (*clientpb.Backdoor, error)

Backdoor - Inject a sliver payload in a file on the remote system

func (*Server) BuilderRegister

func (rpc *Server) BuilderRegister(req *clientpb.Builder, stream rpcpb.SliverRPC_BuilderRegisterServer) error

BuilderRegister - Register a new builder with the server

func (*Server) BuilderTrigger

func (rpc *Server) BuilderTrigger(ctx context.Context, req *clientpb.Event) (*commonpb.Empty, error)

BuilderTrigger - Trigger a builder event

func (*Server) Builders

func (rpc *Server) Builders(ctx context.Context, _ *commonpb.Empty) (*clientpb.Builders, error)

Builders - Get a list of all builders

func (*Server) CallExtension

func (rpc *Server) CallExtension(ctx context.Context, req *sliverpb.CallExtensionReq) (*sliverpb.CallExtension, error)

CallExtension calls a specific export of the loaded extension

func (*Server) Canaries

func (rpc *Server) Canaries(ctx context.Context, _ *commonpb.Empty) (*clientpb.Canaries, error)

Canaries - List existing canaries

func (*Server) CancelBeaconTask

func (rpc *Server) CancelBeaconTask(ctx context.Context, req *clientpb.BeaconTask) (*clientpb.BeaconTask, error)

CancelBeaconTask - Cancel a beacon task

func (*Server) Cd

func (rpc *Server) Cd(ctx context.Context, req *sliverpb.CdReq) (*sliverpb.Pwd, error)

Cd - Change directory

func (*Server) Chmod

func (rpc *Server) Chmod(ctx context.Context, req *sliverpb.ChmodReq) (*sliverpb.Chmod, error)

Chmod - Change permission on a file or directory

func (*Server) Chown

func (rpc *Server) Chown(ctx context.Context, req *sliverpb.ChownReq) (*sliverpb.Chown, error)

Chown - Change owner on a file or directory

func (*Server) Chtimes

func (rpc *Server) Chtimes(ctx context.Context, req *sliverpb.ChtimesReq) (*sliverpb.Chtimes, error)

Chtimes - Change file access and modification times on a file or directory

func (*Server) ClientLog

func (rpc *Server) ClientLog(stream rpcpb.SliverRPC_ClientLogServer) error

ClientLogData - Send client console log data

func (*Server) CloseSession

func (rpc *Server) CloseSession(ctx context.Context, closeSession *sliverpb.CloseSession) (*commonpb.Empty, error)

CloseSession - Close an interactive session, but do not kill the remote process

func (*Server) CloseSocks

func (s *Server) CloseSocks(ctx context.Context, req *sliverpb.Socks) (*commonpb.Empty, error)

CloseSocks - Client requests we close a Socks

func (*Server) CloseTunnel

func (s *Server) CloseTunnel(ctx context.Context, req *sliverpb.Tunnel) (*commonpb.Empty, error)

CloseTunnel - Client requests we close a tunnel

func (*Server) Cp

func (rpc *Server) Cp(ctx context.Context, req *sliverpb.CpReq) (*sliverpb.Cp, error)

Cp - Copy a file to another location

func (*Server) CrackFileChunkDownload

func (rpc *Server) CrackFileChunkDownload(ctx context.Context, req *clientpb.CrackFileChunk) (*clientpb.CrackFileChunk, error)

func (*Server) CrackFileChunkUpload

func (rpc *Server) CrackFileChunkUpload(ctx context.Context, req *clientpb.CrackFileChunk) (*commonpb.Empty, error)

func (*Server) CrackFileComplete

func (rpc *Server) CrackFileComplete(ctx context.Context, req *clientpb.CrackFile) (*commonpb.Empty, error)

func (*Server) CrackFileCreate

func (rpc *Server) CrackFileCreate(ctx context.Context, req *clientpb.CrackFile) (*clientpb.CrackFile, error)

func (*Server) CrackFileDelete

func (rpc *Server) CrackFileDelete(ctx context.Context, req *clientpb.CrackFile) (*commonpb.Empty, error)

func (*Server) CrackFilesList

func (rpc *Server) CrackFilesList(ctx context.Context, req *clientpb.CrackFile) (*clientpb.CrackFiles, error)

---------------------------------------------------------------------------------- CrackFile APIs - Synchronize wordlists, rules, etc. with all the crackstation(s) ----------------------------------------------------------------------------------

func (*Server) CrackTaskByID

func (rpc *Server) CrackTaskByID(ctx context.Context, req *clientpb.CrackTask) (*clientpb.CrackTask, error)

func (*Server) CrackTaskUpdate

func (rpc *Server) CrackTaskUpdate(ctx context.Context, req *clientpb.CrackTask) (*commonpb.Empty, error)

func (*Server) CrackstationBenchmark

func (rpc *Server) CrackstationBenchmark(ctx context.Context, req *clientpb.CrackBenchmark) (*commonpb.Empty, error)

func (*Server) CrackstationRegister

func (rpc *Server) CrackstationRegister(req *clientpb.Crackstation, stream rpcpb.SliverRPC_CrackstationRegisterServer) error

func (*Server) CrackstationTrigger

func (rpc *Server) CrackstationTrigger(ctx context.Context, req *clientpb.Event) (*commonpb.Empty, error)

func (*Server) Crackstations

func (rpc *Server) Crackstations(ctx context.Context, req *commonpb.Empty) (*clientpb.Crackstations, error)

func (*Server) CreateSocks

func (s *Server) CreateSocks(ctx context.Context, req *sliverpb.Socks) (*sliverpb.Socks, error)

CreateSocks5 - Create requests we close a Socks

func (*Server) CreateTunnel

func (s *Server) CreateTunnel(ctx context.Context, req *sliverpb.Tunnel) (*sliverpb.Tunnel, error)

CreateTunnel - Create a new tunnel on the server, however based on only this request there's

no way to associate the tunnel with the correct client, so the client must send
a zero-byte message over TunnelData to bind itself to the newly created tunnel.

func (*Server) Creds

func (rpc *Server) Creds(ctx context.Context, req *commonpb.Empty) (*clientpb.Credentials, error)

func (*Server) CredsAdd

func (rpc *Server) CredsAdd(ctx context.Context, req *clientpb.Credentials) (*commonpb.Empty, error)

func (*Server) CredsRm

func (rpc *Server) CredsRm(ctx context.Context, req *clientpb.Credentials) (*commonpb.Empty, error)

func (*Server) CredsSniffHashType

func (rpc *Server) CredsSniffHashType(ctx context.Context, req *clientpb.Credential) (*clientpb.Credential, error)

func (*Server) CredsUpdate

func (rpc *Server) CredsUpdate(ctx context.Context, req *clientpb.Credentials) (*commonpb.Empty, error)

func (*Server) CurrentTokenOwner

func (rpc *Server) CurrentTokenOwner(ctx context.Context, req *sliverpb.CurrentTokenOwnerReq) (*sliverpb.CurrentTokenOwner, error)

CurrentTokenOwner - Retrieve the thread token's owner

func (*Server) DeleteImplantBuild

func (rpc *Server) DeleteImplantBuild(ctx context.Context, req *clientpb.DeleteReq) (*commonpb.Empty, error)

DeleteImplantBuild - Delete an implant build

func (*Server) DeleteImplantProfile

func (rpc *Server) DeleteImplantProfile(ctx context.Context, req *clientpb.DeleteReq) (*commonpb.Empty, error)

DeleteImplantProfile - Delete an implant profile

func (*Server) Download

func (rpc *Server) Download(ctx context.Context, req *sliverpb.DownloadReq) (*sliverpb.Download, error)

Download - Download a file from the remote file system

func (*Server) Events

func (rpc *Server) Events(_ *commonpb.Empty, stream rpcpb.SliverRPC_EventsServer) error

Events - Stream events to client

func (*Server) ExecWasmExtension

func (rpc *Server) ExecWasmExtension(ctx context.Context, req *sliverpb.ExecWasmExtensionReq) (*sliverpb.ExecWasmExtension, error)

ExecWasmExtension - Execute a wasm extension

func (*Server) Execute

func (rpc *Server) Execute(ctx context.Context, req *sliverpb.ExecuteReq) (*sliverpb.Execute, error)

Execute - Execute a remote process

func (*Server) ExecuteAssembly

func (rpc *Server) ExecuteAssembly(ctx context.Context, req *sliverpb.ExecuteAssemblyReq) (*sliverpb.ExecuteAssembly, error)

ExecuteAssembly - Execute a .NET assembly on the remote system in-memory (Windows only)

func (*Server) ExecuteWindows

func (rpc *Server) ExecuteWindows(ctx context.Context, req *sliverpb.ExecuteWindowsReq) (*sliverpb.Execute, error)

ExecuteWindows - Execute a remote process with specific options (PPID, Token, windows only)

func (*Server) Generate

func (rpc *Server) Generate(ctx context.Context, req *clientpb.GenerateReq) (*clientpb.Generate, error)

Generate - Generate a new implant

func (*Server) GenerateExternal

Generate - Generate a new implant

func (*Server) GenerateExternalGetBuildConfig

func (rpc *Server) GenerateExternalGetBuildConfig(ctx context.Context, req *clientpb.ImplantBuild) (*clientpb.ExternalImplantConfig, error)

GenerateExternalGetImplantConfig - Get an implant config for external builder

func (*Server) GenerateExternalSaveBuild

func (rpc *Server) GenerateExternalSaveBuild(ctx context.Context, req *clientpb.ExternalImplantBinary) (*commonpb.Empty, error)

GenerateExternalSaveBuild - Allows an external builder to save the build to the server

func (*Server) GenerateStage

func (rpc *Server) GenerateStage(ctx context.Context, req *clientpb.GenerateStageReq) (*clientpb.Generate, error)

GenerateStage - Generate a new stage

func (*Server) GenerateUniqueIP

func (rpc *Server) GenerateUniqueIP(ctx context.Context, _ *commonpb.Empty) (*clientpb.UniqueWGIP, error)

GenerateUniqueIP - Wrapper around generate.GenerateUniqueIP

func (*Server) GenerateWGClientConfig

func (rpc *Server) GenerateWGClientConfig(ctx context.Context, _ *commonpb.Empty) (*clientpb.WGClientConfig, error)

GenerateWGClientConfig - Generate a client config for a WG interface

func (*Server) GenericHandler

func (rpc *Server) GenericHandler(req GenericRequest, resp GenericResponse) error

GenericHandler - Pass the request to the Sliver/Session

func (*Server) GetBeacon

func (rpc *Server) GetBeacon(ctx context.Context, req *clientpb.Beacon) (*clientpb.Beacon, error)

GetBeacon - Get a list of beacons from the database

func (*Server) GetBeaconTaskContent

func (rpc *Server) GetBeaconTaskContent(ctx context.Context, req *clientpb.BeaconTask) (*clientpb.BeaconTask, error)

GetBeaconTaskContent - Get the content of a specific task

func (*Server) GetBeaconTasks

func (rpc *Server) GetBeaconTasks(ctx context.Context, req *clientpb.Beacon) (*clientpb.BeaconTasks, error)

GetBeaconTasks - Get a list of tasks for a specific beacon

func (*Server) GetBeacons

func (rpc *Server) GetBeacons(ctx context.Context, req *commonpb.Empty) (*clientpb.Beacons, error)

GetBeacons - Get a list of beacons from the database

func (*Server) GetCertificateInfo

func (rpc *Server) GetCertificateInfo(ctx context.Context, req *clientpb.CertificatesReq) (*clientpb.CertificateInfo, error)

func (*Server) GetCompiler

func (rpc *Server) GetCompiler(ctx context.Context, _ *commonpb.Empty) (*clientpb.Compiler, error)

GetCompiler - Get information about the internal Go compiler and its configuration

func (*Server) GetCredByID

func (rpc *Server) GetCredByID(ctx context.Context, req *clientpb.Credential) (*clientpb.Credential, error)

func (*Server) GetCredsByHashType

func (rpc *Server) GetCredsByHashType(ctx context.Context, req *clientpb.Credential) (*clientpb.Credentials, error)

func (*Server) GetEnv

func (rpc *Server) GetEnv(ctx context.Context, req *sliverpb.EnvReq) (*sliverpb.EnvInfo, error)

GetEnv - Retrieve the environment variables list from the current session

func (*Server) GetHTTPC2ProfileByName

func (rpc *Server) GetHTTPC2ProfileByName(ctx context.Context, req *clientpb.C2ProfileReq) (*clientpb.HTTPC2Config, error)

GetC2ProfileByName - Retrieve C2 Profile by name

func (*Server) GetHTTPC2Profiles

func (rpc *Server) GetHTTPC2Profiles(ctx context.Context, req *commonpb.Empty) (*clientpb.HTTPC2Configs, error)

GetC2Profiles - Retrieve C2 Profile names and id's

func (*Server) GetJobs

func (rpc *Server) GetJobs(ctx context.Context, _ *commonpb.Empty) (*clientpb.Jobs, error)

GetJobs - List jobs

func (*Server) GetOperators

func (s *Server) GetOperators(ctx context.Context, _ *commonpb.Empty) (*clientpb.Operators, error)

GetOperators - Get a list of operators

func (*Server) GetPlaintextCredsByHashType

func (rpc *Server) GetPlaintextCredsByHashType(ctx context.Context, req *clientpb.Credential) (*clientpb.Credentials, error)

func (*Server) GetPrivs

func (rpc *Server) GetPrivs(ctx context.Context, req *sliverpb.GetPrivsReq) (*sliverpb.GetPrivs, error)

GetPrivs - gRPC interface to get privilege information from the current process

func (*Server) GetRportFwdListeners

func (rpc *Server) GetRportFwdListeners(ctx context.Context, req *sliverpb.RportFwdListenersReq) (*sliverpb.RportFwdListeners, error)

GetRportFwdListeners - Get a list of all reverse port forwards listeners from an implant

func (*Server) GetSessions

func (rpc *Server) GetSessions(ctx context.Context, _ *commonpb.Empty) (*clientpb.Sessions, error)

GetSessions - Get a list of sessions

func (*Server) GetSystem

func (rpc *Server) GetSystem(ctx context.Context, req *clientpb.GetSystemReq) (*sliverpb.GetSystem, error)

GetSystem - Attempt to get 'NT AUTHORITY/SYSTEM' access on a remote Windows system

func (*Server) GetVersion

func (rpc *Server) GetVersion(ctx context.Context, _ *commonpb.Empty) (*clientpb.Version, error)

GetVersion - Get the server version

func (*Server) Grep

func (rpc *Server) Grep(ctx context.Context, req *sliverpb.GrepReq) (*sliverpb.Grep, error)

Grep - Search a file or directory for text matching a regex

func (*Server) HijackDLL

func (rpc *Server) HijackDLL(ctx context.Context, req *clientpb.DllHijackReq) (*clientpb.DllHijack, error)

HijackDLL - RPC call to automatically perform DLL hijacking attacks

func (*Server) Host

func (rpc *Server) Host(ctx context.Context, req *clientpb.Host) (*clientpb.Host, error)

Host - Host by ID

func (*Server) HostIOCRm

func (rpc *Server) HostIOCRm(ctx context.Context, req *clientpb.IOC) (*commonpb.Empty, error)

HostIOCRm - Remove a host from the database

func (*Server) HostRm

func (rpc *Server) HostRm(ctx context.Context, req *clientpb.Host) (*commonpb.Empty, error)

HostRm - Remove a host from the database

func (*Server) Hosts

func (rpc *Server) Hosts(ctx context.Context, _ *commonpb.Empty) (*clientpb.AllHosts, error)

Hosts - List all hosts

func (*Server) Ifconfig

func (rpc *Server) Ifconfig(ctx context.Context, req *sliverpb.IfconfigReq) (*sliverpb.Ifconfig, error)

Ifconfig - Get remote interface configurations

func (*Server) Impersonate

func (rpc *Server) Impersonate(ctx context.Context, req *sliverpb.ImpersonateReq) (*sliverpb.Impersonate, error)

Impersonate - Impersonate a remote user

func (*Server) ImplantBuilds

func (rpc *Server) ImplantBuilds(ctx context.Context, _ *commonpb.Empty) (*clientpb.ImplantBuilds, error)

ImplantBuilds - List existing implant builds

func (*Server) ImplantProfiles

func (rpc *Server) ImplantProfiles(ctx context.Context, _ *commonpb.Empty) (*clientpb.ImplantProfiles, error)

ImplantProfiles - List profiles

func (*Server) Kill

func (rpc *Server) Kill(ctx context.Context, kill *sliverpb.KillReq) (*commonpb.Empty, error)

Kill - Kill the implant process

func (*Server) KillJob

func (rpc *Server) KillJob(ctx context.Context, kill *clientpb.KillJobReq) (*clientpb.KillJob, error)

KillJob - Kill a server-side job

func (*Server) KillSession

func (rpc *Server) KillSession(ctx context.Context, kill *sliverpb.KillReq) (*commonpb.Empty, error)

KillSession - Kill a session

func (*Server) ListExtensions

func (rpc *Server) ListExtensions(ctx context.Context, req *sliverpb.ListExtensionsReq) (*sliverpb.ListExtensions, error)

ListExtensions lists the registered extensions

func (*Server) ListWasmExtensions

func (rpc *Server) ListWasmExtensions(ctx context.Context, req *sliverpb.ListWasmExtensionsReq) (*sliverpb.ListWasmExtensions, error)

ListWasmExtensions - List registered wasm extensions

func (*Server) LootAdd

func (rpc *Server) LootAdd(ctx context.Context, lootReq *clientpb.Loot) (*clientpb.Loot, error)

LootAdd - Add loot

func (*Server) LootAll

func (rpc *Server) LootAll(ctx context.Context, _ *commonpb.Empty) (*clientpb.AllLoot, error)

LootAll - Get a list of all loot

func (*Server) LootContent

func (rpc *Server) LootContent(ctx context.Context, lootReq *clientpb.Loot) (*clientpb.Loot, error)

LootContent - Get a list of all loot of a specific type

func (*Server) LootRm

func (rpc *Server) LootRm(ctx context.Context, lootReq *clientpb.Loot) (*commonpb.Empty, error)

LootRm - Remove loot

func (*Server) LootUpdate

func (rpc *Server) LootUpdate(ctx context.Context, lootReq *clientpb.Loot) (*clientpb.Loot, error)

LootUpdate - Update loot metadata

func (*Server) Ls

func (rpc *Server) Ls(ctx context.Context, req *sliverpb.LsReq) (*sliverpb.Ls, error)

Ls - List a directory

func (*Server) MakeToken

func (rpc *Server) MakeToken(ctx context.Context, req *sliverpb.MakeTokenReq) (*sliverpb.MakeToken, error)

MakeToken - Creates a new logon session to impersonate a user based on its credentials.

func (*Server) MemfilesAdd

func (rpc *Server) MemfilesAdd(ctx context.Context, req *sliverpb.MemfilesAddReq) (*sliverpb.MemfilesAdd, error)

MemfilesAdd - Add memfile

func (*Server) MemfilesList

func (rpc *Server) MemfilesList(ctx context.Context, req *sliverpb.MemfilesListReq) (*sliverpb.Ls, error)

MemfilesList - List memfiles

func (*Server) MemfilesRm

func (rpc *Server) MemfilesRm(ctx context.Context, req *sliverpb.MemfilesRmReq) (*sliverpb.MemfilesRm, error)

MemfilesRm - Close memfile

func (*Server) Migrate

func (rpc *Server) Migrate(ctx context.Context, req *clientpb.MigrateReq) (*sliverpb.Migrate, error)

Migrate - Migrate to a new process on the remote system (Windows only)

func (*Server) Mkdir

func (rpc *Server) Mkdir(ctx context.Context, req *sliverpb.MkdirReq) (*sliverpb.Mkdir, error)

Mkdir - Make a directory

func (*Server) MonitorAddConfig

func (rpc *Server) MonitorAddConfig(ctx context.Context, m *clientpb.MonitoringProvider) (*commonpb.Response, error)

func (*Server) MonitorDelConfig

func (rpc *Server) MonitorDelConfig(ctx context.Context, m *clientpb.MonitoringProvider) (*commonpb.Response, error)

func (*Server) MonitorListConfig

func (rpc *Server) MonitorListConfig(ctx context.Context, _ *commonpb.Empty) (*clientpb.MonitoringProviders, error)

func (*Server) MonitorStart

func (rpc *Server) MonitorStart(ctx context.Context, _ *commonpb.Empty) (*commonpb.Response, error)

func (*Server) MonitorStop

func (rpc *Server) MonitorStop(ctx context.Context, _ *commonpb.Empty) (*commonpb.Empty, error)

func (*Server) Mount

func (rpc *Server) Mount(ctx context.Context, req *sliverpb.MountReq) (*sliverpb.Mount, error)

Mount - Get information on mounted filesystems

func (*Server) Msf

func (rpc *Server) Msf(ctx context.Context, req *clientpb.MSFReq) (*sliverpb.Task, error)

Msf - Helper function to execute MSF payloads on the remote system

func (*Server) MsfRemote

func (rpc *Server) MsfRemote(ctx context.Context, req *clientpb.MSFRemoteReq) (*sliverpb.Task, error)

MsfRemote - Inject an MSF payload into a remote process

func (*Server) Mv

func (rpc *Server) Mv(ctx context.Context, req *sliverpb.MvReq) (*sliverpb.Mv, error)

Mv - Move or rename a file

func (*Server) Netstat

func (rpc *Server) Netstat(ctx context.Context, req *sliverpb.NetstatReq) (*sliverpb.Netstat, error)

Netstat - List network connections on the remote system

func (*Server) OpenSession

func (rpc *Server) OpenSession(ctx context.Context, openSession *sliverpb.OpenSession) (*sliverpb.OpenSession, error)

OpenSession - Instruct beacon to open a new session on next checkin

func (*Server) Ping

func (rpc *Server) Ping(ctx context.Context, req *sliverpb.Ping) (*sliverpb.Ping, error)

Ping - Try to send a round trip message to the implant

func (*Server) PivotGraph

func (rpc *Server) PivotGraph(ctx context.Context, req *commonpb.Empty) (*clientpb.PivotGraph, error)

PivotGraph - Return the server's pivot graph

func (*Server) PivotSessionListeners

func (rpc *Server) PivotSessionListeners(ctx context.Context, req *sliverpb.PivotListenersReq) (*sliverpb.PivotListeners, error)

PivotSessionListeners - Get a list of all pivot listeners from an implant

func (*Server) PivotStartListener

func (rpc *Server) PivotStartListener(ctx context.Context, req *sliverpb.PivotStartListenerReq) (*sliverpb.PivotListener, error)

PivotStartListener - Instruct the implant to start a pivot listener

func (*Server) PivotStopListener

func (rpc *Server) PivotStopListener(ctx context.Context, req *sliverpb.PivotStopListenerReq) (*commonpb.Empty, error)

PivotStopListener - Instruct the implant to stop a pivot listener

func (*Server) Portfwd

func (s *Server) Portfwd(ctx context.Context, req *sliverpb.PortfwdReq) (*sliverpb.Portfwd, error)

Portfwd - Open an in-band port forward

func (*Server) ProcessDump

func (rpc *Server) ProcessDump(ctx context.Context, req *sliverpb.ProcessDumpReq) (*sliverpb.ProcessDump, error)

ProcessDump - Dump the memory of a remote process

func (*Server) Ps

func (rpc *Server) Ps(ctx context.Context, req *sliverpb.PsReq) (*sliverpb.Ps, error)

Ps - List the processes on the remote machine

func (*Server) Pwd

func (rpc *Server) Pwd(ctx context.Context, req *sliverpb.PwdReq) (*sliverpb.Pwd, error)

Pwd - Print working directory

func (*Server) Reconfigure

func (rpc *Server) Reconfigure(ctx context.Context, req *sliverpb.ReconfigureReq) (*sliverpb.Reconfigure, error)

Reconfigure - Reconfigure a beacon/session

func (*Server) Regenerate

func (rpc *Server) Regenerate(ctx context.Context, req *clientpb.RegenerateReq) (*clientpb.Generate, error)

Regenerate - Regenerate a previously generated implant

func (*Server) RegisterExtension

func (rpc *Server) RegisterExtension(ctx context.Context, req *sliverpb.RegisterExtensionReq) (*sliverpb.RegisterExtension, error)

RegisterExtension registers a new extension in the implant

func (*Server) RegisterWasmExtension

func (rpc *Server) RegisterWasmExtension(ctx context.Context, req *sliverpb.RegisterWasmExtensionReq) (*sliverpb.RegisterWasmExtension, error)

RegisterWasmExtension - Register a new wasm extension with the implant

func (*Server) RegistryCreateKey

func (rpc *Server) RegistryCreateKey(ctx context.Context, req *sliverpb.RegistryCreateKeyReq) (*sliverpb.RegistryCreateKey, error)

RegistryCreateKey - gRPC interface to create a registry key on a session

func (*Server) RegistryDeleteKey

func (rpc *Server) RegistryDeleteKey(ctx context.Context, req *sliverpb.RegistryDeleteKeyReq) (*sliverpb.RegistryDeleteKey, error)

RegistryDeleteKey - gRPC interface to delete a registry key on a session

func (*Server) RegistryListSubKeys

func (rpc *Server) RegistryListSubKeys(ctx context.Context, req *sliverpb.RegistrySubKeyListReq) (*sliverpb.RegistrySubKeyList, error)

RegistryListSubKeys - gRPC interface to list the sub keys of a registry key

func (*Server) RegistryListValues

func (rpc *Server) RegistryListValues(ctx context.Context, req *sliverpb.RegistryListValuesReq) (*sliverpb.RegistryValuesList, error)

RegistryListSubKeys - gRPC interface to list the sub keys of a registry key

func (*Server) RegistryRead

func (rpc *Server) RegistryRead(ctx context.Context, req *sliverpb.RegistryReadReq) (*sliverpb.RegistryRead, error)

RegistryRead - gRPC interface to read a registry key from a session

func (*Server) RegistryReadHive

func (rpc *Server) RegistryReadHive(ctx context.Context, req *sliverpb.RegistryReadHiveReq) (*sliverpb.RegistryReadHive, error)

RegistryDumpHive - gRPC interface to dump a specific registry hive as a binary file

func (*Server) RegistryWrite

func (rpc *Server) RegistryWrite(ctx context.Context, req *sliverpb.RegistryWriteReq) (*sliverpb.RegistryWrite, error)

RegistryWrite - gRPC interface to write to a registry key on a session

func (*Server) RemoveService

func (rpc *Server) RemoveService(ctx context.Context, req *sliverpb.RemoveServiceReq) (*sliverpb.ServiceInfo, error)

RemoveService deletes a service from the remote system

func (*Server) Rename

func (rpc *Server) Rename(ctx context.Context, req *clientpb.RenameReq) (*commonpb.Empty, error)

Rename - Rename a beacon/session

func (*Server) RestartJobs

func (rpc *Server) RestartJobs(ctx context.Context, restartJobReq *clientpb.RestartJobReq) (*commonpb.Empty, error)

Restart Jobs - Reload jobs

func (*Server) RevToSelf

func (rpc *Server) RevToSelf(ctx context.Context, req *sliverpb.RevToSelfReq) (*sliverpb.RevToSelf, error)

RevToSelf - Revert process context to self

func (*Server) Rm

func (rpc *Server) Rm(ctx context.Context, req *sliverpb.RmReq) (*sliverpb.Rm, error)

Rm - Remove file or directory

func (*Server) RmBeacon

func (rpc *Server) RmBeacon(ctx context.Context, req *clientpb.Beacon) (*commonpb.Empty, error)

RmBeacon - Delete a beacon and any related tasks

func (*Server) RunAs

func (rpc *Server) RunAs(ctx context.Context, req *sliverpb.RunAsReq) (*sliverpb.RunAs, error)

RunAs - Run a remote process as a specific user

func (*Server) RunSSHCommand

func (rpc *Server) RunSSHCommand(ctx context.Context, req *sliverpb.SSHCommandReq) (*sliverpb.SSHCommand, error)

RunSSHCommand runs a SSH command using the client built into the implant

func (*Server) SaveHTTPC2Profile

func (rpc *Server) SaveHTTPC2Profile(ctx context.Context, req *clientpb.HTTPC2ConfigReq) (*commonpb.Empty, error)

Save HTTP C2 Profile

func (*Server) SaveImplantProfile

func (rpc *Server) SaveImplantProfile(ctx context.Context, profile *clientpb.ImplantProfile) (*clientpb.ImplantProfile, error)

SaveImplantProfile - Save a new profile

func (*Server) Screenshot

func (rpc *Server) Screenshot(ctx context.Context, req *sliverpb.ScreenshotReq) (*sliverpb.Screenshot, error)

Screenshot - Take a screenshot of the remote system

func (*Server) ServiceDetail

func (rpc *Server) ServiceDetail(ctx context.Context, req *sliverpb.ServiceDetailReq) (*sliverpb.ServiceDetail, error)

func (*Server) Services

func (rpc *Server) Services(ctx context.Context, req *sliverpb.ServicesReq) (*sliverpb.Services, error)

Services - List and control services

func (*Server) SetEnv

func (rpc *Server) SetEnv(ctx context.Context, req *sliverpb.SetEnvReq) (*sliverpb.SetEnv, error)

SetEnv - Set an environment variable

func (*Server) Shell

func (rpc *Server) Shell(ctx context.Context, req *sliverpb.ShellReq) (*sliverpb.Shell, error)

Shell - Open an interactive shell

func (*Server) ShellcodeEncoder

func (rpc *Server) ShellcodeEncoder(ctx context.Context, req *clientpb.ShellcodeEncodeReq) (*clientpb.ShellcodeEncode, error)

ShellcodeEncode - Encode a piece shellcode

func (*Server) ShellcodeEncoderMap

func (rpc *Server) ShellcodeEncoderMap(ctx context.Context, _ *commonpb.Empty) (*clientpb.ShellcodeEncoderMap, error)

ShellcodeEncoderMap - Get a map of support shellcode encoders <human readable/enum>

func (*Server) ShellcodeRDI

func (rpc *Server) ShellcodeRDI(ctx context.Context, req *clientpb.ShellcodeRDIReq) (*clientpb.ShellcodeRDI, error)

ShellcodeRDI - Generates a RDI shellcode from a given DLL

func (*Server) Sideload

func (rpc *Server) Sideload(ctx context.Context, req *sliverpb.SideloadReq) (*sliverpb.Sideload, error)

Sideload - Sideload a DLL on the remote system (Windows only)

func (*Server) SocksProxy

func (s *Server) SocksProxy(stream rpcpb.SliverRPC_SocksProxyServer) error

Socks - Open an in-band port forward

func (*Server) SpawnDll

func (rpc *Server) SpawnDll(ctx context.Context, req *sliverpb.InvokeSpawnDllReq) (*sliverpb.SpawnDll, error)

SpawnDll - Spawn a DLL on the remote system (Windows only)

func (*Server) StageImplantBuild

func (rpc *Server) StageImplantBuild(ctx context.Context, req *clientpb.ImplantStageReq) (*commonpb.Empty, error)

StageImplantBuild - Serve a previously generated build

func (*Server) StartDNSListener

func (rpc *Server) StartDNSListener(ctx context.Context, req *clientpb.DNSListenerReq) (*clientpb.ListenerJob, error)

StartDNSListener - Start a DNS listener TODO: respect request's Host specification

func (*Server) StartHTTPListener

func (rpc *Server) StartHTTPListener(ctx context.Context, req *clientpb.HTTPListenerReq) (*clientpb.ListenerJob, error)

StartHTTPListener - Start an HTTP listener

func (*Server) StartHTTPSListener

func (rpc *Server) StartHTTPSListener(ctx context.Context, req *clientpb.HTTPListenerReq) (*clientpb.ListenerJob, error)

StartHTTPSListener - Start an HTTPS listener

func (*Server) StartMTLSListener

func (rpc *Server) StartMTLSListener(ctx context.Context, req *clientpb.MTLSListenerReq) (*clientpb.ListenerJob, error)

StartMTLSListener - Start an MTLS listener

func (*Server) StartRportFwdListener

func (rpc *Server) StartRportFwdListener(ctx context.Context, req *sliverpb.RportFwdStartListenerReq) (*sliverpb.RportFwdListener, error)

StartRportfwdListener - Instruct the implant to start a reverse port forward

func (*Server) StartService

func (rpc *Server) StartService(ctx context.Context, req *sliverpb.StartServiceReq) (*sliverpb.ServiceInfo, error)

StartService creates and starts a Windows service on a remote host

func (*Server) StartServiceByName

func (rpc *Server) StartServiceByName(ctx context.Context, req *sliverpb.StartServiceByNameReq) (*sliverpb.ServiceInfo, error)

func (*Server) StartTCPStagerListener

func (rpc *Server) StartTCPStagerListener(ctx context.Context, req *clientpb.StagerListenerReq) (*clientpb.StagerListener, error)

StartTCPStagerListener starts a TCP stager listener

func (*Server) StartWGListener

func (rpc *Server) StartWGListener(ctx context.Context, req *clientpb.WGListenerReq) (*clientpb.ListenerJob, error)

StartWGListener - Start a Wireguard listener

func (*Server) StopRportFwdListener

func (rpc *Server) StopRportFwdListener(ctx context.Context, req *sliverpb.RportFwdStopListenerReq) (*sliverpb.RportFwdListener, error)

StopRportfwdListener - Instruct the implant to stop a reverse port forward

func (*Server) StopService

func (rpc *Server) StopService(ctx context.Context, req *sliverpb.StopServiceReq) (*sliverpb.ServiceInfo, error)

StopService stops a remote service

func (*Server) Task

func (rpc *Server) Task(ctx context.Context, req *sliverpb.TaskReq) (*sliverpb.Task, error)

Task - Execute shellcode in-memory

func (*Server) Terminate

func (rpc *Server) Terminate(ctx context.Context, req *sliverpb.TerminateReq) (*sliverpb.Terminate, error)

Terminate - Terminate a remote process

func (*Server) TrafficEncoderAdd

func (rpc *Server) TrafficEncoderAdd(ctx context.Context, req *clientpb.TrafficEncoder) (*clientpb.TrafficEncoderTests, error)

TrafficEncoderAdd - Add a new traffic encoder, and test for correctness

func (*Server) TrafficEncoderMap

func (rpc *Server) TrafficEncoderMap(ctx context.Context, _ *commonpb.Empty) (*clientpb.TrafficEncoderMap, error)

TrafficEncoderMap - Get a map of the server's traffic encoders

func (*Server) TrafficEncoderRm

func (rpc *Server) TrafficEncoderRm(ctx context.Context, req *clientpb.TrafficEncoder) (*commonpb.Empty, error)

TrafficEncoderRm - Remove a traffic encoder

func (*Server) TunnelData

func (s *Server) TunnelData(stream rpcpb.SliverRPC_TunnelDataServer) error

TunnelData - Streams tunnel data back and forth from the client<->server<->implant

func (*Server) UnsetEnv

func (rpc *Server) UnsetEnv(ctx context.Context, req *sliverpb.UnsetEnvReq) (*sliverpb.UnsetEnv, error)

UnsetEnv - Set an environment variable

func (*Server) UpdateBeaconIntegrityInformation

func (rpc *Server) UpdateBeaconIntegrityInformation(ctx context.Context, req *clientpb.BeaconIntegrity) (*commonpb.Empty, error)

UpdateBeaconIntegrityInformation - Update process integrity information for a beacon

func (*Server) Upload

func (rpc *Server) Upload(ctx context.Context, req *sliverpb.UploadReq) (*sliverpb.Upload, error)

Upload - Upload a file from the remote file system

func (*Server) WGListForwarders

func (rpc *Server) WGListForwarders(ctx context.Context, req *sliverpb.WGTCPForwardersReq) (*sliverpb.WGTCPForwarders, error)

WGAddForwarder - List wireguard forwarders

func (*Server) WGListSocksServers

func (rpc *Server) WGListSocksServers(ctx context.Context, req *sliverpb.WGSocksServersReq) (*sliverpb.WGSocksServers, error)

func (*Server) WGStartPortForward

func (rpc *Server) WGStartPortForward(ctx context.Context, req *sliverpb.WGPortForwardStartReq) (*sliverpb.WGPortForward, error)

WGStartPortForward - Start a port forward

func (*Server) WGStartSocks

func (rpc *Server) WGStartSocks(ctx context.Context, req *sliverpb.WGSocksStartReq) (*sliverpb.WGSocks, error)

WGAddForwarder - Add a TCP forwarder

func (*Server) WGStopPortForward

func (rpc *Server) WGStopPortForward(ctx context.Context, req *sliverpb.WGPortForwardStopReq) (*sliverpb.WGPortForward, error)

WGStopPortForward - Stop a port forward

func (*Server) WGStopSocks

func (rpc *Server) WGStopSocks(ctx context.Context, req *sliverpb.WGSocksStopReq) (*sliverpb.WGSocks, error)

WGStopForwarder - Stop a TCP forwarder

func (*Server) Website

func (rpc *Server) Website(ctx context.Context, req *clientpb.Website) (*clientpb.Website, error)

Website - Get one website

func (*Server) WebsiteAddContent

func (rpc *Server) WebsiteAddContent(ctx context.Context, req *clientpb.WebsiteAddContent) (*clientpb.Website, error)

WebsiteAddContent - Add content to a website, the website is created if `name` does not exist

func (*Server) WebsiteRemove

func (rpc *Server) WebsiteRemove(ctx context.Context, req *clientpb.Website) (*commonpb.Empty, error)

WebsiteRemove - Delete an entire website

func (*Server) WebsiteRemoveContent

func (rpc *Server) WebsiteRemoveContent(ctx context.Context, req *clientpb.WebsiteRemoveContent) (*clientpb.Website, error)

WebsiteRemoveContent - Remove specific content from a website

func (*Server) WebsiteUpdateContent

func (rpc *Server) WebsiteUpdateContent(ctx context.Context, req *clientpb.WebsiteAddContent) (*clientpb.Website, error)

WebsiteUpdateContent - Update specific content from a website, currently you can only the update Content-type field

func (*Server) Websites

func (rpc *Server) Websites(ctx context.Context, _ *commonpb.Empty) (*clientpb.Websites, error)

Websites - List existing websites

Jump to

Keyboard shortcuts

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