Compare commits

...
Author SHA1 Message Date
rkervella 7d8457d494 Use proper type for PPID flag, add ppid + process args to sideload 2022-09-06 10:20:01 -07:00
Ronan Kervella 9dd5dd9c93 Merge pull request #835 from BishopFox/dependabot
Enable dependabot workflow
2022-09-06 08:23:28 -07:00
Joe 01f2d0c9de Merge pull request #836 from cmprmsd/patch-1
Add carbon black cloud sensor
2022-09-06 09:38:22 -05:00
cmprmsd fd1b873f75 Add carbon black cloud sensor
This adds known Carbon Black processes

Signed-off-by: cmprmsd <[email protected]>
2022-09-06 12:16:09 +02:00
moloch-- bb51a9f1a6 Enable dependabot workflow 2022-09-05 11:12:57 -07:00
Ronan Kervella f1d4a51e73 Merge pull request #831 from BishopFox/fix/ux-828
Fix issue #828
2022-09-04 12:56:41 -07:00
Ronan Kervella d003f5a4ac Merge pull request #832 from BishopFox/feature/tasks-cancel
Feature/tasks cancel
2022-09-04 12:56:19 -07:00
moloch-- 36277b9d46 Fix ui workflow 2022-09-04 10:48:51 -07:00
moloch-- c90988aba5 Added state display for canceled 2022-09-04 10:42:16 -07:00
moloch-- a6dca18cdc Initial task cancel implementation 2022-09-04 10:38:26 -07:00
moloch-- dd48b4b71d Fix issue #828 2022-09-04 09:23:49 -07:00
Ronan Kervella 91e6ea5e05 Merge pull request #829 from BishopFox/fix/stale-sessions-prune
Remove session from server state on kill, fix issue #781
2022-09-03 19:05:39 -07:00
Ronan Kervella 3a8201c202 Merge pull request #830 from BishopFox/cdp
Implemented cursed screenshot and better porfwd tunnel cleanup handling
2022-09-03 19:05:17 -07:00
moloch-- 2ea605e915 Remove session from server state on kill, fix issue #781 2022-09-03 15:38:24 -07:00
21 changed files with 434 additions and 250 deletions

No files matched your search

+16
View File
@@ -0,0 +1,16 @@
# Basic set up for three package managers
version: 2
updates:
# Maintain dependencies for GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
# Maintain dependencies for go
- package-ecosystem: "gomod"
directory: "/"
schedule:
interval: "weekly"
+22
View File
@@ -717,6 +717,28 @@ func BindCommands(con *console.SliverConsoleClient) {
},
HelpGroup: consts.GenericHelpGroup,
})
tasksCmd.AddCommand(&grumble.Command{
Name: consts.CancelStr,
Help: "Cancel a pending beacon task",
LongHelp: help.GetHelpFor([]string{consts.TasksStr, consts.CancelStr}),
Flags: func(f *grumble.Flags) {
f.Bool("O", "overflow", false, "overflow terminal width (display truncated rows)")
f.Int("S", "skip-pages", 0, "skip the first n page(s)")
f.String("f", "filter", "", "filter based on task type (case-insensitive prefix matching)")
f.Int("t", "timeout", defaultTimeout, "command timeout in seconds")
},
Args: func(a *grumble.Args) {
a.String("id", "beacon task ID", grumble.Default(""))
},
Run: func(ctx *grumble.Context) error {
con.Println()
tasks.TasksCancelCmd(ctx, con)
con.Println()
return nil
},
HelpGroup: consts.GenericHelpGroup,
})
con.App.AddCommand(tasksCmd)
// [ Use ] --------------------------------------------------------------
+1 -1
View File
@@ -90,7 +90,7 @@ func ExecuteAssemblyCmd(ctx *grumble.Context, con *console.SliverConsoleClient)
ClassName: ctx.Flags.String("class"),
AppDomain: ctx.Flags.String("app-domain"),
ProcessArgs: processArgs,
PPid: uint32(ctx.Flags.Int("ppid")),
PPid: uint32(ctx.Flags.Uint("ppid")),
Runtime: runtime,
EtwBypass: etwBypass,
AmsiBypass: amsiBypass,
+4
View File
@@ -50,6 +50,8 @@ func SideloadCmd(ctx *grumble.Context, con *console.SliverConsoleClient) {
con.PrintErrorf("%s", err.Error())
return
}
processArgsStr := ctx.Flags.String("process-arguments")
processArgs := strings.Split(processArgsStr, " ")
isDLL := (filepath.Ext(binPath) == ".dll")
ctrl := make(chan bool)
con.SpinUntil(fmt.Sprintf("Sideloading %s ...", binPath), ctrl)
@@ -62,6 +64,8 @@ func SideloadCmd(ctx *grumble.Context, con *console.SliverConsoleClient) {
Kill: !ctx.Flags.Bool("keep-alive"),
IsDLL: isDLL,
IsUnicode: ctx.Flags.Bool("unicode"),
PPid: uint32(ctx.Flags.Uint("ppid")),
ProcessArgs: processArgs,
})
ctrl <- true
<-ctrl
+1
View File
@@ -477,6 +477,7 @@ func ParseHTTPc2(args string) ([]*clientpb.ImplantC2, error) {
return nil, err
}
}
uri.Path = strings.TrimSuffix(uri.Path, "/")
if uri.Scheme != "http" && uri.Scheme != "https" {
return nil, fmt.Errorf("invalid http(s) scheme: %s", uri.Scheme)
}
+5
View File
@@ -39,6 +39,11 @@ var (
// Process Name -> [Color, Stylized Name]
"ccSvcHst.exe": {console.Red, "Symantec Endpoint Protection"}, // Symantec Endpoint Protection (SEP)
"cb.exe": {console.Red, "Carbon Black"}, // Carbon Black
"RepMgr.exe": {console.Red, "Carbon Black Cloud Sensor"}, // Carbon Black Cloud Sensor
"RepUtils.exe": {console.Red, "Carbon Black Cloud Sensor"}, // Carbon Black Cloud Sensor
"RepUx.exe": {console.Red, "Carbon Black Cloud Sensor"}, // Carbon Black Cloud Sensor
"RepWSC.exe": {console.Red, "Carbon Black Cloud Sensor"}, // Carbon Black Cloud Sensor
"scanhost.exe": {console.Red, "Carbon Black Cloud Sensor"}, // Carbon Black Cloud Sensor
"MsMpEng.exe": {console.Red, "Windows Defender"}, // Windows Defender
"smartscreen.exe": {console.Red, "Windows Smart Screen"}, // Windows Defender Smart Screen
"CSFalconService.exe": {console.Red, "CrowdStrike"}, // Crowdstrike Falcon Service
+2
View File
@@ -157,6 +157,8 @@ func emojiState(state string) string {
return "⏳"
case "failed":
return "❌"
case "canceled":
return "🚫"
default:
return "❓"
}
+60
View File
@@ -0,0 +1,60 @@
package tasks
import (
"context"
"github.com/bishopfox/sliver/client/console"
"github.com/bishopfox/sliver/protobuf/clientpb"
"github.com/desertbit/grumble"
)
// TasksCancelCmd - Cancel a beacon task before it's sent to the implant
func TasksCancelCmd(ctx *grumble.Context, con *console.SliverConsoleClient) {
beacon := con.ActiveTarget.GetBeaconInteractive()
if beacon == nil {
return
}
idArg := ctx.Args.String("id")
var task *clientpb.BeaconTask
var err error
if idArg == "" {
beaconTasks, err := con.Rpc.GetBeaconTasks(context.Background(), &clientpb.Beacon{ID: beacon.ID})
if err != nil {
con.PrintErrorf("%s\n", err)
return
}
tasks := []*clientpb.BeaconTask{}
for _, task := range beaconTasks.Tasks {
if task.State == "pending" {
tasks = append(tasks, task)
}
}
if len(tasks) == 0 {
con.PrintErrorf("No pending tasks for beacon\n")
return
}
task, err = SelectBeaconTask(tasks)
if err != nil {
con.PrintErrorf("%s\n", err)
return
}
con.Printf(console.UpN+console.Clearln, 1)
} else {
task, err = con.Rpc.GetBeaconTaskContent(context.Background(), &clientpb.BeaconTask{ID: idArg})
if err != nil {
con.PrintErrorf("%s\n", err)
return
}
}
if task != nil {
task, err := con.Rpc.CancelBeaconTask(context.Background(), task)
if err != nil {
con.PrintErrorf("%s\n", err)
return
}
con.PrintInfof("Task %s canceled\n", task.ID)
}
}
+2
View File
@@ -97,6 +97,8 @@ func prettyState(state string) string {
return console.Bold + console.Orange + state + console.Normal
case "completed":
return console.Bold + console.Green + state + console.Normal
case "canceled":
return console.Bold + console.Gray + state + console.Normal
default:
return state
}
+1
View File
@@ -104,6 +104,7 @@ const (
ReconfigStr = "reconfig"
PruneStr = "prune"
TasksStr = "tasks"
CancelStr = "cancel"
GenerateStr = "generate"
RegenerateStr = "regenerate"
CompilerInfoStr = "info"
+1 -1
View File
@@ -1,6 +1,6 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.27.1
// protoc-gen-go v1.26.0
// protoc v3.21.5
// source: clientpb/client.proto
+1 -1
View File
@@ -1,6 +1,6 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.27.1
// protoc-gen-go v1.26.0
// protoc v3.21.5
// source: commonpb/common.proto
+1 -1
View File
@@ -1,6 +1,6 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.27.1
// protoc-gen-go v1.26.0
// protoc v3.21.5
// source: dnspb/dns.proto
+245 -239
View File
@@ -1,6 +1,6 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.27.1
// protoc-gen-go v1.26.0
// protoc v3.21.5
// source: rpcpb/services.proto
@@ -31,7 +31,7 @@ var file_rpcpb_services_proto_rawDesc = []byte{
0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x15, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2f, 0x73,
0x6c, 0x69, 0x76, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x15, 0x63, 0x6c, 0x69,
0x65, 0x6e, 0x74, 0x70, 0x62, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x32, 0xa6, 0x38, 0x0a, 0x09, 0x53, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x52, 0x50, 0x43,
0x74, 0x6f, 0x32, 0xe6, 0x38, 0x0a, 0x09, 0x53, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x52, 0x50, 0x43,
0x12, 0x30, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0f,
0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a,
0x11, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69,
@@ -68,6 +68,10 @@ var file_rpcpb_services_proto_rawDesc = []byte{
0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x2e,
0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x54,
0x61, 0x73, 0x6b, 0x1a, 0x14, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x42,
0x65, 0x61, 0x63, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x3e, 0x0a, 0x10, 0x43, 0x61, 0x6e,
0x63, 0x65, 0x6c, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x14, 0x2e,
0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x54,
0x61, 0x73, 0x6b, 0x1a, 0x14, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x42,
0x65, 0x61, 0x63, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x33, 0x0a, 0x0c, 0x4d, 0x6f, 0x6e,
0x69, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
0x6f, 0x6e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x63, 0x6f, 0x6d,
@@ -673,243 +677,245 @@ var file_rpcpb_services_proto_depIdxs = []int32{
4, // 8: rpcpb.SliverRPC.RmBeacon:input_type -> clientpb.Beacon
4, // 9: rpcpb.SliverRPC.GetBeaconTasks:input_type -> clientpb.Beacon
5, // 10: rpcpb.SliverRPC.GetBeaconTaskContent:input_type -> clientpb.BeaconTask
0, // 11: rpcpb.SliverRPC.MonitorStart:input_type -> commonpb.Empty
0, // 12: rpcpb.SliverRPC.MonitorStop:input_type -> commonpb.Empty
0, // 13: rpcpb.SliverRPC.GetJobs:input_type -> commonpb.Empty
6, // 14: rpcpb.SliverRPC.KillJob:input_type -> clientpb.KillJobReq
7, // 15: rpcpb.SliverRPC.StartMTLSListener:input_type -> clientpb.MTLSListenerReq
8, // 16: rpcpb.SliverRPC.StartWGListener:input_type -> clientpb.WGListenerReq
9, // 17: rpcpb.SliverRPC.StartDNSListener:input_type -> clientpb.DNSListenerReq
10, // 18: rpcpb.SliverRPC.StartHTTPSListener:input_type -> clientpb.HTTPListenerReq
10, // 19: rpcpb.SliverRPC.StartHTTPListener:input_type -> clientpb.HTTPListenerReq
11, // 20: rpcpb.SliverRPC.StartTCPStagerListener:input_type -> clientpb.StagerListenerReq
11, // 21: rpcpb.SliverRPC.StartHTTPStagerListener:input_type -> clientpb.StagerListenerReq
12, // 22: rpcpb.SliverRPC.LootAdd:input_type -> clientpb.Loot
12, // 23: rpcpb.SliverRPC.LootRm:input_type -> clientpb.Loot
12, // 24: rpcpb.SliverRPC.LootUpdate:input_type -> clientpb.Loot
12, // 25: rpcpb.SliverRPC.LootContent:input_type -> clientpb.Loot
0, // 26: rpcpb.SliverRPC.LootAll:input_type -> commonpb.Empty
12, // 27: rpcpb.SliverRPC.LootAllOf:input_type -> clientpb.Loot
0, // 28: rpcpb.SliverRPC.Hosts:input_type -> commonpb.Empty
13, // 29: rpcpb.SliverRPC.Host:input_type -> clientpb.Host
13, // 30: rpcpb.SliverRPC.HostRm:input_type -> clientpb.Host
14, // 31: rpcpb.SliverRPC.HostIOCRm:input_type -> clientpb.IOC
15, // 32: rpcpb.SliverRPC.Generate:input_type -> clientpb.GenerateReq
16, // 33: rpcpb.SliverRPC.Regenerate:input_type -> clientpb.RegenerateReq
0, // 34: rpcpb.SliverRPC.ImplantBuilds:input_type -> commonpb.Empty
17, // 35: rpcpb.SliverRPC.DeleteImplantBuild:input_type -> clientpb.DeleteReq
0, // 36: rpcpb.SliverRPC.Canaries:input_type -> commonpb.Empty
0, // 37: rpcpb.SliverRPC.GenerateWGClientConfig:input_type -> commonpb.Empty
0, // 38: rpcpb.SliverRPC.GenerateUniqueIP:input_type -> commonpb.Empty
0, // 39: rpcpb.SliverRPC.ImplantProfiles:input_type -> commonpb.Empty
17, // 40: rpcpb.SliverRPC.DeleteImplantProfile:input_type -> clientpb.DeleteReq
18, // 41: rpcpb.SliverRPC.SaveImplantProfile:input_type -> clientpb.ImplantProfile
19, // 42: rpcpb.SliverRPC.MsfStage:input_type -> clientpb.MsfStagerReq
20, // 43: rpcpb.SliverRPC.ShellcodeRDI:input_type -> clientpb.ShellcodeRDIReq
0, // 44: rpcpb.SliverRPC.GetCompiler:input_type -> commonpb.Empty
21, // 45: rpcpb.SliverRPC.ShellcodeEncoder:input_type -> clientpb.ShellcodeEncodeReq
0, // 46: rpcpb.SliverRPC.ShellcodeEncoderMap:input_type -> commonpb.Empty
0, // 47: rpcpb.SliverRPC.Websites:input_type -> commonpb.Empty
22, // 48: rpcpb.SliverRPC.Website:input_type -> clientpb.Website
22, // 49: rpcpb.SliverRPC.WebsiteRemove:input_type -> clientpb.Website
23, // 50: rpcpb.SliverRPC.WebsiteAddContent:input_type -> clientpb.WebsiteAddContent
23, // 51: rpcpb.SliverRPC.WebsiteUpdateContent:input_type -> clientpb.WebsiteAddContent
24, // 52: rpcpb.SliverRPC.WebsiteRemoveContent:input_type -> clientpb.WebsiteRemoveContent
25, // 53: rpcpb.SliverRPC.Ping:input_type -> sliverpb.Ping
26, // 54: rpcpb.SliverRPC.Ps:input_type -> sliverpb.PsReq
27, // 55: rpcpb.SliverRPC.Terminate:input_type -> sliverpb.TerminateReq
28, // 56: rpcpb.SliverRPC.Ifconfig:input_type -> sliverpb.IfconfigReq
29, // 57: rpcpb.SliverRPC.Netstat:input_type -> sliverpb.NetstatReq
30, // 58: rpcpb.SliverRPC.Ls:input_type -> sliverpb.LsReq
31, // 59: rpcpb.SliverRPC.Cd:input_type -> sliverpb.CdReq
32, // 60: rpcpb.SliverRPC.Pwd:input_type -> sliverpb.PwdReq
33, // 61: rpcpb.SliverRPC.Mv:input_type -> sliverpb.MvReq
34, // 62: rpcpb.SliverRPC.Rm:input_type -> sliverpb.RmReq
35, // 63: rpcpb.SliverRPC.Mkdir:input_type -> sliverpb.MkdirReq
36, // 64: rpcpb.SliverRPC.Download:input_type -> sliverpb.DownloadReq
37, // 65: rpcpb.SliverRPC.Upload:input_type -> sliverpb.UploadReq
38, // 66: rpcpb.SliverRPC.ProcessDump:input_type -> sliverpb.ProcessDumpReq
39, // 67: rpcpb.SliverRPC.RunAs:input_type -> sliverpb.RunAsReq
40, // 68: rpcpb.SliverRPC.Impersonate:input_type -> sliverpb.ImpersonateReq
41, // 69: rpcpb.SliverRPC.RevToSelf:input_type -> sliverpb.RevToSelfReq
42, // 70: rpcpb.SliverRPC.GetSystem:input_type -> clientpb.GetSystemReq
43, // 71: rpcpb.SliverRPC.Task:input_type -> sliverpb.TaskReq
44, // 72: rpcpb.SliverRPC.Msf:input_type -> clientpb.MSFReq
45, // 73: rpcpb.SliverRPC.MsfRemote:input_type -> clientpb.MSFRemoteReq
46, // 74: rpcpb.SliverRPC.ExecuteAssembly:input_type -> sliverpb.ExecuteAssemblyReq
47, // 75: rpcpb.SliverRPC.Migrate:input_type -> clientpb.MigrateReq
48, // 76: rpcpb.SliverRPC.Execute:input_type -> sliverpb.ExecuteReq
49, // 77: rpcpb.SliverRPC.ExecuteWindows:input_type -> sliverpb.ExecuteWindowsReq
50, // 78: rpcpb.SliverRPC.Sideload:input_type -> sliverpb.SideloadReq
51, // 79: rpcpb.SliverRPC.SpawnDll:input_type -> sliverpb.InvokeSpawnDllReq
52, // 80: rpcpb.SliverRPC.Screenshot:input_type -> sliverpb.ScreenshotReq
53, // 81: rpcpb.SliverRPC.CurrentTokenOwner:input_type -> sliverpb.CurrentTokenOwnerReq
54, // 82: rpcpb.SliverRPC.PivotStartListener:input_type -> sliverpb.PivotStartListenerReq
55, // 83: rpcpb.SliverRPC.PivotStopListener:input_type -> sliverpb.PivotStopListenerReq
56, // 84: rpcpb.SliverRPC.PivotSessionListeners:input_type -> sliverpb.PivotListenersReq
0, // 85: rpcpb.SliverRPC.PivotGraph:input_type -> commonpb.Empty
57, // 86: rpcpb.SliverRPC.StartService:input_type -> sliverpb.StartServiceReq
58, // 87: rpcpb.SliverRPC.StopService:input_type -> sliverpb.StopServiceReq
59, // 88: rpcpb.SliverRPC.RemoveService:input_type -> sliverpb.RemoveServiceReq
60, // 89: rpcpb.SliverRPC.MakeToken:input_type -> sliverpb.MakeTokenReq
61, // 90: rpcpb.SliverRPC.GetEnv:input_type -> sliverpb.EnvReq
62, // 91: rpcpb.SliverRPC.SetEnv:input_type -> sliverpb.SetEnvReq
63, // 92: rpcpb.SliverRPC.UnsetEnv:input_type -> sliverpb.UnsetEnvReq
64, // 93: rpcpb.SliverRPC.Backdoor:input_type -> sliverpb.BackdoorReq
65, // 94: rpcpb.SliverRPC.RegistryRead:input_type -> sliverpb.RegistryReadReq
66, // 95: rpcpb.SliverRPC.RegistryWrite:input_type -> sliverpb.RegistryWriteReq
67, // 96: rpcpb.SliverRPC.RegistryCreateKey:input_type -> sliverpb.RegistryCreateKeyReq
68, // 97: rpcpb.SliverRPC.RegistryDeleteKey:input_type -> sliverpb.RegistryDeleteKeyReq
69, // 98: rpcpb.SliverRPC.RegistryListSubKeys:input_type -> sliverpb.RegistrySubKeyListReq
70, // 99: rpcpb.SliverRPC.RegistryListValues:input_type -> sliverpb.RegistryListValuesReq
71, // 100: rpcpb.SliverRPC.RunSSHCommand:input_type -> sliverpb.SSHCommandReq
72, // 101: rpcpb.SliverRPC.HijackDLL:input_type -> clientpb.DllHijackReq
73, // 102: rpcpb.SliverRPC.GetPrivs:input_type -> sliverpb.GetPrivsReq
74, // 103: rpcpb.SliverRPC.OpenSession:input_type -> sliverpb.OpenSession
75, // 104: rpcpb.SliverRPC.CloseSession:input_type -> sliverpb.CloseSession
76, // 105: rpcpb.SliverRPC.RegisterExtension:input_type -> sliverpb.RegisterExtensionReq
77, // 106: rpcpb.SliverRPC.CallExtension:input_type -> sliverpb.CallExtensionReq
78, // 107: rpcpb.SliverRPC.ListExtensions:input_type -> sliverpb.ListExtensionsReq
79, // 108: rpcpb.SliverRPC.WGStartPortForward:input_type -> sliverpb.WGPortForwardStartReq
80, // 109: rpcpb.SliverRPC.WGStopPortForward:input_type -> sliverpb.WGPortForwardStopReq
81, // 110: rpcpb.SliverRPC.WGStartSocks:input_type -> sliverpb.WGSocksStartReq
82, // 111: rpcpb.SliverRPC.WGStopSocks:input_type -> sliverpb.WGSocksStopReq
83, // 112: rpcpb.SliverRPC.WGListForwarders:input_type -> sliverpb.WGTCPForwardersReq
84, // 113: rpcpb.SliverRPC.WGListSocksServers:input_type -> sliverpb.WGSocksServersReq
85, // 114: rpcpb.SliverRPC.Shell:input_type -> sliverpb.ShellReq
86, // 115: rpcpb.SliverRPC.Portfwd:input_type -> sliverpb.PortfwdReq
87, // 116: rpcpb.SliverRPC.CreateSocks:input_type -> sliverpb.Socks
87, // 117: rpcpb.SliverRPC.CloseSocks:input_type -> sliverpb.Socks
88, // 118: rpcpb.SliverRPC.SocksProxy:input_type -> sliverpb.SocksData
89, // 119: rpcpb.SliverRPC.CreateTunnel:input_type -> sliverpb.Tunnel
89, // 120: rpcpb.SliverRPC.CloseTunnel:input_type -> sliverpb.Tunnel
90, // 121: rpcpb.SliverRPC.TunnelData:input_type -> sliverpb.TunnelData
0, // 122: rpcpb.SliverRPC.Events:input_type -> commonpb.Empty
91, // 123: rpcpb.SliverRPC.GetVersion:output_type -> clientpb.Version
92, // 124: rpcpb.SliverRPC.GetOperators:output_type -> clientpb.Operators
0, // 125: rpcpb.SliverRPC.Kill:output_type -> commonpb.Empty
93, // 126: rpcpb.SliverRPC.Reconfigure:output_type -> sliverpb.Reconfigure
0, // 127: rpcpb.SliverRPC.Rename:output_type -> commonpb.Empty
94, // 128: rpcpb.SliverRPC.GetSessions:output_type -> clientpb.Sessions
95, // 129: rpcpb.SliverRPC.GetBeacons:output_type -> clientpb.Beacons
4, // 130: rpcpb.SliverRPC.GetBeacon:output_type -> clientpb.Beacon
0, // 131: rpcpb.SliverRPC.RmBeacon:output_type -> commonpb.Empty
96, // 132: rpcpb.SliverRPC.GetBeaconTasks:output_type -> clientpb.BeaconTasks
5, // 133: rpcpb.SliverRPC.GetBeaconTaskContent:output_type -> clientpb.BeaconTask
97, // 134: rpcpb.SliverRPC.MonitorStart:output_type -> commonpb.Response
0, // 135: rpcpb.SliverRPC.MonitorStop:output_type -> commonpb.Empty
98, // 136: rpcpb.SliverRPC.GetJobs:output_type -> clientpb.Jobs
99, // 137: rpcpb.SliverRPC.KillJob:output_type -> clientpb.KillJob
100, // 138: rpcpb.SliverRPC.StartMTLSListener:output_type -> clientpb.MTLSListener
101, // 139: rpcpb.SliverRPC.StartWGListener:output_type -> clientpb.WGListener
102, // 140: rpcpb.SliverRPC.StartDNSListener:output_type -> clientpb.DNSListener
103, // 141: rpcpb.SliverRPC.StartHTTPSListener:output_type -> clientpb.HTTPListener
103, // 142: rpcpb.SliverRPC.StartHTTPListener:output_type -> clientpb.HTTPListener
104, // 143: rpcpb.SliverRPC.StartTCPStagerListener:output_type -> clientpb.StagerListener
104, // 144: rpcpb.SliverRPC.StartHTTPStagerListener:output_type -> clientpb.StagerListener
12, // 145: rpcpb.SliverRPC.LootAdd:output_type -> clientpb.Loot
0, // 146: rpcpb.SliverRPC.LootRm:output_type -> commonpb.Empty
12, // 147: rpcpb.SliverRPC.LootUpdate:output_type -> clientpb.Loot
12, // 148: rpcpb.SliverRPC.LootContent:output_type -> clientpb.Loot
105, // 149: rpcpb.SliverRPC.LootAll:output_type -> clientpb.AllLoot
105, // 150: rpcpb.SliverRPC.LootAllOf:output_type -> clientpb.AllLoot
106, // 151: rpcpb.SliverRPC.Hosts:output_type -> clientpb.AllHosts
13, // 152: rpcpb.SliverRPC.Host:output_type -> clientpb.Host
0, // 153: rpcpb.SliverRPC.HostRm:output_type -> commonpb.Empty
0, // 154: rpcpb.SliverRPC.HostIOCRm:output_type -> commonpb.Empty
107, // 155: rpcpb.SliverRPC.Generate:output_type -> clientpb.Generate
107, // 156: rpcpb.SliverRPC.Regenerate:output_type -> clientpb.Generate
108, // 157: rpcpb.SliverRPC.ImplantBuilds:output_type -> clientpb.ImplantBuilds
0, // 158: rpcpb.SliverRPC.DeleteImplantBuild:output_type -> commonpb.Empty
109, // 159: rpcpb.SliverRPC.Canaries:output_type -> clientpb.Canaries
110, // 160: rpcpb.SliverRPC.GenerateWGClientConfig:output_type -> clientpb.WGClientConfig
111, // 161: rpcpb.SliverRPC.GenerateUniqueIP:output_type -> clientpb.UniqueWGIP
112, // 162: rpcpb.SliverRPC.ImplantProfiles:output_type -> clientpb.ImplantProfiles
0, // 163: rpcpb.SliverRPC.DeleteImplantProfile:output_type -> commonpb.Empty
18, // 164: rpcpb.SliverRPC.SaveImplantProfile:output_type -> clientpb.ImplantProfile
113, // 165: rpcpb.SliverRPC.MsfStage:output_type -> clientpb.MsfStager
114, // 166: rpcpb.SliverRPC.ShellcodeRDI:output_type -> clientpb.ShellcodeRDI
115, // 167: rpcpb.SliverRPC.GetCompiler:output_type -> clientpb.Compiler
116, // 168: rpcpb.SliverRPC.ShellcodeEncoder:output_type -> clientpb.ShellcodeEncode
117, // 169: rpcpb.SliverRPC.ShellcodeEncoderMap:output_type -> clientpb.ShellcodeEncoderMap
118, // 170: rpcpb.SliverRPC.Websites:output_type -> clientpb.Websites
22, // 171: rpcpb.SliverRPC.Website:output_type -> clientpb.Website
0, // 172: rpcpb.SliverRPC.WebsiteRemove:output_type -> commonpb.Empty
22, // 173: rpcpb.SliverRPC.WebsiteAddContent:output_type -> clientpb.Website
22, // 174: rpcpb.SliverRPC.WebsiteUpdateContent:output_type -> clientpb.Website
22, // 175: rpcpb.SliverRPC.WebsiteRemoveContent:output_type -> clientpb.Website
25, // 176: rpcpb.SliverRPC.Ping:output_type -> sliverpb.Ping
119, // 177: rpcpb.SliverRPC.Ps:output_type -> sliverpb.Ps
120, // 178: rpcpb.SliverRPC.Terminate:output_type -> sliverpb.Terminate
121, // 179: rpcpb.SliverRPC.Ifconfig:output_type -> sliverpb.Ifconfig
122, // 180: rpcpb.SliverRPC.Netstat:output_type -> sliverpb.Netstat
123, // 181: rpcpb.SliverRPC.Ls:output_type -> sliverpb.Ls
124, // 182: rpcpb.SliverRPC.Cd:output_type -> sliverpb.Pwd
124, // 183: rpcpb.SliverRPC.Pwd:output_type -> sliverpb.Pwd
125, // 184: rpcpb.SliverRPC.Mv:output_type -> sliverpb.Mv
126, // 185: rpcpb.SliverRPC.Rm:output_type -> sliverpb.Rm
127, // 186: rpcpb.SliverRPC.Mkdir:output_type -> sliverpb.Mkdir
128, // 187: rpcpb.SliverRPC.Download:output_type -> sliverpb.Download
129, // 188: rpcpb.SliverRPC.Upload:output_type -> sliverpb.Upload
130, // 189: rpcpb.SliverRPC.ProcessDump:output_type -> sliverpb.ProcessDump
131, // 190: rpcpb.SliverRPC.RunAs:output_type -> sliverpb.RunAs
132, // 191: rpcpb.SliverRPC.Impersonate:output_type -> sliverpb.Impersonate
133, // 192: rpcpb.SliverRPC.RevToSelf:output_type -> sliverpb.RevToSelf
134, // 193: rpcpb.SliverRPC.GetSystem:output_type -> sliverpb.GetSystem
135, // 194: rpcpb.SliverRPC.Task:output_type -> sliverpb.Task
135, // 195: rpcpb.SliverRPC.Msf:output_type -> sliverpb.Task
135, // 196: rpcpb.SliverRPC.MsfRemote:output_type -> sliverpb.Task
136, // 197: rpcpb.SliverRPC.ExecuteAssembly:output_type -> sliverpb.ExecuteAssembly
137, // 198: rpcpb.SliverRPC.Migrate:output_type -> sliverpb.Migrate
138, // 199: rpcpb.SliverRPC.Execute:output_type -> sliverpb.Execute
138, // 200: rpcpb.SliverRPC.ExecuteWindows:output_type -> sliverpb.Execute
139, // 201: rpcpb.SliverRPC.Sideload:output_type -> sliverpb.Sideload
140, // 202: rpcpb.SliverRPC.SpawnDll:output_type -> sliverpb.SpawnDll
141, // 203: rpcpb.SliverRPC.Screenshot:output_type -> sliverpb.Screenshot
142, // 204: rpcpb.SliverRPC.CurrentTokenOwner:output_type -> sliverpb.CurrentTokenOwner
143, // 205: rpcpb.SliverRPC.PivotStartListener:output_type -> sliverpb.PivotListener
0, // 206: rpcpb.SliverRPC.PivotStopListener:output_type -> commonpb.Empty
144, // 207: rpcpb.SliverRPC.PivotSessionListeners:output_type -> sliverpb.PivotListeners
145, // 208: rpcpb.SliverRPC.PivotGraph:output_type -> clientpb.PivotGraph
146, // 209: rpcpb.SliverRPC.StartService:output_type -> sliverpb.ServiceInfo
146, // 210: rpcpb.SliverRPC.StopService:output_type -> sliverpb.ServiceInfo
146, // 211: rpcpb.SliverRPC.RemoveService:output_type -> sliverpb.ServiceInfo
147, // 212: rpcpb.SliverRPC.MakeToken:output_type -> sliverpb.MakeToken
148, // 213: rpcpb.SliverRPC.GetEnv:output_type -> sliverpb.EnvInfo
149, // 214: rpcpb.SliverRPC.SetEnv:output_type -> sliverpb.SetEnv
150, // 215: rpcpb.SliverRPC.UnsetEnv:output_type -> sliverpb.UnsetEnv
151, // 216: rpcpb.SliverRPC.Backdoor:output_type -> sliverpb.Backdoor
152, // 217: rpcpb.SliverRPC.RegistryRead:output_type -> sliverpb.RegistryRead
153, // 218: rpcpb.SliverRPC.RegistryWrite:output_type -> sliverpb.RegistryWrite
154, // 219: rpcpb.SliverRPC.RegistryCreateKey:output_type -> sliverpb.RegistryCreateKey
155, // 220: rpcpb.SliverRPC.RegistryDeleteKey:output_type -> sliverpb.RegistryDeleteKey
156, // 221: rpcpb.SliverRPC.RegistryListSubKeys:output_type -> sliverpb.RegistrySubKeyList
157, // 222: rpcpb.SliverRPC.RegistryListValues:output_type -> sliverpb.RegistryValuesList
158, // 223: rpcpb.SliverRPC.RunSSHCommand:output_type -> sliverpb.SSHCommand
159, // 224: rpcpb.SliverRPC.HijackDLL:output_type -> clientpb.DllHijack
160, // 225: rpcpb.SliverRPC.GetPrivs:output_type -> sliverpb.GetPrivs
74, // 226: rpcpb.SliverRPC.OpenSession:output_type -> sliverpb.OpenSession
0, // 227: rpcpb.SliverRPC.CloseSession:output_type -> commonpb.Empty
161, // 228: rpcpb.SliverRPC.RegisterExtension:output_type -> sliverpb.RegisterExtension
162, // 229: rpcpb.SliverRPC.CallExtension:output_type -> sliverpb.CallExtension
163, // 230: rpcpb.SliverRPC.ListExtensions:output_type -> sliverpb.ListExtensions
164, // 231: rpcpb.SliverRPC.WGStartPortForward:output_type -> sliverpb.WGPortForward
164, // 232: rpcpb.SliverRPC.WGStopPortForward:output_type -> sliverpb.WGPortForward
165, // 233: rpcpb.SliverRPC.WGStartSocks:output_type -> sliverpb.WGSocks
165, // 234: rpcpb.SliverRPC.WGStopSocks:output_type -> sliverpb.WGSocks
166, // 235: rpcpb.SliverRPC.WGListForwarders:output_type -> sliverpb.WGTCPForwarders
167, // 236: rpcpb.SliverRPC.WGListSocksServers:output_type -> sliverpb.WGSocksServers
168, // 237: rpcpb.SliverRPC.Shell:output_type -> sliverpb.Shell
169, // 238: rpcpb.SliverRPC.Portfwd:output_type -> sliverpb.Portfwd
87, // 239: rpcpb.SliverRPC.CreateSocks:output_type -> sliverpb.Socks
0, // 240: rpcpb.SliverRPC.CloseSocks:output_type -> commonpb.Empty
88, // 241: rpcpb.SliverRPC.SocksProxy:output_type -> sliverpb.SocksData
89, // 242: rpcpb.SliverRPC.CreateTunnel:output_type -> sliverpb.Tunnel
0, // 243: rpcpb.SliverRPC.CloseTunnel:output_type -> commonpb.Empty
90, // 244: rpcpb.SliverRPC.TunnelData:output_type -> sliverpb.TunnelData
170, // 245: rpcpb.SliverRPC.Events:output_type -> clientpb.Event
123, // [123:246] is the sub-list for method output_type
0, // [0:123] is the sub-list for method input_type
5, // 11: rpcpb.SliverRPC.CancelBeaconTask:input_type -> clientpb.BeaconTask
0, // 12: rpcpb.SliverRPC.MonitorStart:input_type -> commonpb.Empty
0, // 13: rpcpb.SliverRPC.MonitorStop:input_type -> commonpb.Empty
0, // 14: rpcpb.SliverRPC.GetJobs:input_type -> commonpb.Empty
6, // 15: rpcpb.SliverRPC.KillJob:input_type -> clientpb.KillJobReq
7, // 16: rpcpb.SliverRPC.StartMTLSListener:input_type -> clientpb.MTLSListenerReq
8, // 17: rpcpb.SliverRPC.StartWGListener:input_type -> clientpb.WGListenerReq
9, // 18: rpcpb.SliverRPC.StartDNSListener:input_type -> clientpb.DNSListenerReq
10, // 19: rpcpb.SliverRPC.StartHTTPSListener:input_type -> clientpb.HTTPListenerReq
10, // 20: rpcpb.SliverRPC.StartHTTPListener:input_type -> clientpb.HTTPListenerReq
11, // 21: rpcpb.SliverRPC.StartTCPStagerListener:input_type -> clientpb.StagerListenerReq
11, // 22: rpcpb.SliverRPC.StartHTTPStagerListener:input_type -> clientpb.StagerListenerReq
12, // 23: rpcpb.SliverRPC.LootAdd:input_type -> clientpb.Loot
12, // 24: rpcpb.SliverRPC.LootRm:input_type -> clientpb.Loot
12, // 25: rpcpb.SliverRPC.LootUpdate:input_type -> clientpb.Loot
12, // 26: rpcpb.SliverRPC.LootContent:input_type -> clientpb.Loot
0, // 27: rpcpb.SliverRPC.LootAll:input_type -> commonpb.Empty
12, // 28: rpcpb.SliverRPC.LootAllOf:input_type -> clientpb.Loot
0, // 29: rpcpb.SliverRPC.Hosts:input_type -> commonpb.Empty
13, // 30: rpcpb.SliverRPC.Host:input_type -> clientpb.Host
13, // 31: rpcpb.SliverRPC.HostRm:input_type -> clientpb.Host
14, // 32: rpcpb.SliverRPC.HostIOCRm:input_type -> clientpb.IOC
15, // 33: rpcpb.SliverRPC.Generate:input_type -> clientpb.GenerateReq
16, // 34: rpcpb.SliverRPC.Regenerate:input_type -> clientpb.RegenerateReq
0, // 35: rpcpb.SliverRPC.ImplantBuilds:input_type -> commonpb.Empty
17, // 36: rpcpb.SliverRPC.DeleteImplantBuild:input_type -> clientpb.DeleteReq
0, // 37: rpcpb.SliverRPC.Canaries:input_type -> commonpb.Empty
0, // 38: rpcpb.SliverRPC.GenerateWGClientConfig:input_type -> commonpb.Empty
0, // 39: rpcpb.SliverRPC.GenerateUniqueIP:input_type -> commonpb.Empty
0, // 40: rpcpb.SliverRPC.ImplantProfiles:input_type -> commonpb.Empty
17, // 41: rpcpb.SliverRPC.DeleteImplantProfile:input_type -> clientpb.DeleteReq
18, // 42: rpcpb.SliverRPC.SaveImplantProfile:input_type -> clientpb.ImplantProfile
19, // 43: rpcpb.SliverRPC.MsfStage:input_type -> clientpb.MsfStagerReq
20, // 44: rpcpb.SliverRPC.ShellcodeRDI:input_type -> clientpb.ShellcodeRDIReq
0, // 45: rpcpb.SliverRPC.GetCompiler:input_type -> commonpb.Empty
21, // 46: rpcpb.SliverRPC.ShellcodeEncoder:input_type -> clientpb.ShellcodeEncodeReq
0, // 47: rpcpb.SliverRPC.ShellcodeEncoderMap:input_type -> commonpb.Empty
0, // 48: rpcpb.SliverRPC.Websites:input_type -> commonpb.Empty
22, // 49: rpcpb.SliverRPC.Website:input_type -> clientpb.Website
22, // 50: rpcpb.SliverRPC.WebsiteRemove:input_type -> clientpb.Website
23, // 51: rpcpb.SliverRPC.WebsiteAddContent:input_type -> clientpb.WebsiteAddContent
23, // 52: rpcpb.SliverRPC.WebsiteUpdateContent:input_type -> clientpb.WebsiteAddContent
24, // 53: rpcpb.SliverRPC.WebsiteRemoveContent:input_type -> clientpb.WebsiteRemoveContent
25, // 54: rpcpb.SliverRPC.Ping:input_type -> sliverpb.Ping
26, // 55: rpcpb.SliverRPC.Ps:input_type -> sliverpb.PsReq
27, // 56: rpcpb.SliverRPC.Terminate:input_type -> sliverpb.TerminateReq
28, // 57: rpcpb.SliverRPC.Ifconfig:input_type -> sliverpb.IfconfigReq
29, // 58: rpcpb.SliverRPC.Netstat:input_type -> sliverpb.NetstatReq
30, // 59: rpcpb.SliverRPC.Ls:input_type -> sliverpb.LsReq
31, // 60: rpcpb.SliverRPC.Cd:input_type -> sliverpb.CdReq
32, // 61: rpcpb.SliverRPC.Pwd:input_type -> sliverpb.PwdReq
33, // 62: rpcpb.SliverRPC.Mv:input_type -> sliverpb.MvReq
34, // 63: rpcpb.SliverRPC.Rm:input_type -> sliverpb.RmReq
35, // 64: rpcpb.SliverRPC.Mkdir:input_type -> sliverpb.MkdirReq
36, // 65: rpcpb.SliverRPC.Download:input_type -> sliverpb.DownloadReq
37, // 66: rpcpb.SliverRPC.Upload:input_type -> sliverpb.UploadReq
38, // 67: rpcpb.SliverRPC.ProcessDump:input_type -> sliverpb.ProcessDumpReq
39, // 68: rpcpb.SliverRPC.RunAs:input_type -> sliverpb.RunAsReq
40, // 69: rpcpb.SliverRPC.Impersonate:input_type -> sliverpb.ImpersonateReq
41, // 70: rpcpb.SliverRPC.RevToSelf:input_type -> sliverpb.RevToSelfReq
42, // 71: rpcpb.SliverRPC.GetSystem:input_type -> clientpb.GetSystemReq
43, // 72: rpcpb.SliverRPC.Task:input_type -> sliverpb.TaskReq
44, // 73: rpcpb.SliverRPC.Msf:input_type -> clientpb.MSFReq
45, // 74: rpcpb.SliverRPC.MsfRemote:input_type -> clientpb.MSFRemoteReq
46, // 75: rpcpb.SliverRPC.ExecuteAssembly:input_type -> sliverpb.ExecuteAssemblyReq
47, // 76: rpcpb.SliverRPC.Migrate:input_type -> clientpb.MigrateReq
48, // 77: rpcpb.SliverRPC.Execute:input_type -> sliverpb.ExecuteReq
49, // 78: rpcpb.SliverRPC.ExecuteWindows:input_type -> sliverpb.ExecuteWindowsReq
50, // 79: rpcpb.SliverRPC.Sideload:input_type -> sliverpb.SideloadReq
51, // 80: rpcpb.SliverRPC.SpawnDll:input_type -> sliverpb.InvokeSpawnDllReq
52, // 81: rpcpb.SliverRPC.Screenshot:input_type -> sliverpb.ScreenshotReq
53, // 82: rpcpb.SliverRPC.CurrentTokenOwner:input_type -> sliverpb.CurrentTokenOwnerReq
54, // 83: rpcpb.SliverRPC.PivotStartListener:input_type -> sliverpb.PivotStartListenerReq
55, // 84: rpcpb.SliverRPC.PivotStopListener:input_type -> sliverpb.PivotStopListenerReq
56, // 85: rpcpb.SliverRPC.PivotSessionListeners:input_type -> sliverpb.PivotListenersReq
0, // 86: rpcpb.SliverRPC.PivotGraph:input_type -> commonpb.Empty
57, // 87: rpcpb.SliverRPC.StartService:input_type -> sliverpb.StartServiceReq
58, // 88: rpcpb.SliverRPC.StopService:input_type -> sliverpb.StopServiceReq
59, // 89: rpcpb.SliverRPC.RemoveService:input_type -> sliverpb.RemoveServiceReq
60, // 90: rpcpb.SliverRPC.MakeToken:input_type -> sliverpb.MakeTokenReq
61, // 91: rpcpb.SliverRPC.GetEnv:input_type -> sliverpb.EnvReq
62, // 92: rpcpb.SliverRPC.SetEnv:input_type -> sliverpb.SetEnvReq
63, // 93: rpcpb.SliverRPC.UnsetEnv:input_type -> sliverpb.UnsetEnvReq
64, // 94: rpcpb.SliverRPC.Backdoor:input_type -> sliverpb.BackdoorReq
65, // 95: rpcpb.SliverRPC.RegistryRead:input_type -> sliverpb.RegistryReadReq
66, // 96: rpcpb.SliverRPC.RegistryWrite:input_type -> sliverpb.RegistryWriteReq
67, // 97: rpcpb.SliverRPC.RegistryCreateKey:input_type -> sliverpb.RegistryCreateKeyReq
68, // 98: rpcpb.SliverRPC.RegistryDeleteKey:input_type -> sliverpb.RegistryDeleteKeyReq
69, // 99: rpcpb.SliverRPC.RegistryListSubKeys:input_type -> sliverpb.RegistrySubKeyListReq
70, // 100: rpcpb.SliverRPC.RegistryListValues:input_type -> sliverpb.RegistryListValuesReq
71, // 101: rpcpb.SliverRPC.RunSSHCommand:input_type -> sliverpb.SSHCommandReq
72, // 102: rpcpb.SliverRPC.HijackDLL:input_type -> clientpb.DllHijackReq
73, // 103: rpcpb.SliverRPC.GetPrivs:input_type -> sliverpb.GetPrivsReq
74, // 104: rpcpb.SliverRPC.OpenSession:input_type -> sliverpb.OpenSession
75, // 105: rpcpb.SliverRPC.CloseSession:input_type -> sliverpb.CloseSession
76, // 106: rpcpb.SliverRPC.RegisterExtension:input_type -> sliverpb.RegisterExtensionReq
77, // 107: rpcpb.SliverRPC.CallExtension:input_type -> sliverpb.CallExtensionReq
78, // 108: rpcpb.SliverRPC.ListExtensions:input_type -> sliverpb.ListExtensionsReq
79, // 109: rpcpb.SliverRPC.WGStartPortForward:input_type -> sliverpb.WGPortForwardStartReq
80, // 110: rpcpb.SliverRPC.WGStopPortForward:input_type -> sliverpb.WGPortForwardStopReq
81, // 111: rpcpb.SliverRPC.WGStartSocks:input_type -> sliverpb.WGSocksStartReq
82, // 112: rpcpb.SliverRPC.WGStopSocks:input_type -> sliverpb.WGSocksStopReq
83, // 113: rpcpb.SliverRPC.WGListForwarders:input_type -> sliverpb.WGTCPForwardersReq
84, // 114: rpcpb.SliverRPC.WGListSocksServers:input_type -> sliverpb.WGSocksServersReq
85, // 115: rpcpb.SliverRPC.Shell:input_type -> sliverpb.ShellReq
86, // 116: rpcpb.SliverRPC.Portfwd:input_type -> sliverpb.PortfwdReq
87, // 117: rpcpb.SliverRPC.CreateSocks:input_type -> sliverpb.Socks
87, // 118: rpcpb.SliverRPC.CloseSocks:input_type -> sliverpb.Socks
88, // 119: rpcpb.SliverRPC.SocksProxy:input_type -> sliverpb.SocksData
89, // 120: rpcpb.SliverRPC.CreateTunnel:input_type -> sliverpb.Tunnel
89, // 121: rpcpb.SliverRPC.CloseTunnel:input_type -> sliverpb.Tunnel
90, // 122: rpcpb.SliverRPC.TunnelData:input_type -> sliverpb.TunnelData
0, // 123: rpcpb.SliverRPC.Events:input_type -> commonpb.Empty
91, // 124: rpcpb.SliverRPC.GetVersion:output_type -> clientpb.Version
92, // 125: rpcpb.SliverRPC.GetOperators:output_type -> clientpb.Operators
0, // 126: rpcpb.SliverRPC.Kill:output_type -> commonpb.Empty
93, // 127: rpcpb.SliverRPC.Reconfigure:output_type -> sliverpb.Reconfigure
0, // 128: rpcpb.SliverRPC.Rename:output_type -> commonpb.Empty
94, // 129: rpcpb.SliverRPC.GetSessions:output_type -> clientpb.Sessions
95, // 130: rpcpb.SliverRPC.GetBeacons:output_type -> clientpb.Beacons
4, // 131: rpcpb.SliverRPC.GetBeacon:output_type -> clientpb.Beacon
0, // 132: rpcpb.SliverRPC.RmBeacon:output_type -> commonpb.Empty
96, // 133: rpcpb.SliverRPC.GetBeaconTasks:output_type -> clientpb.BeaconTasks
5, // 134: rpcpb.SliverRPC.GetBeaconTaskContent:output_type -> clientpb.BeaconTask
5, // 135: rpcpb.SliverRPC.CancelBeaconTask:output_type -> clientpb.BeaconTask
97, // 136: rpcpb.SliverRPC.MonitorStart:output_type -> commonpb.Response
0, // 137: rpcpb.SliverRPC.MonitorStop:output_type -> commonpb.Empty
98, // 138: rpcpb.SliverRPC.GetJobs:output_type -> clientpb.Jobs
99, // 139: rpcpb.SliverRPC.KillJob:output_type -> clientpb.KillJob
100, // 140: rpcpb.SliverRPC.StartMTLSListener:output_type -> clientpb.MTLSListener
101, // 141: rpcpb.SliverRPC.StartWGListener:output_type -> clientpb.WGListener
102, // 142: rpcpb.SliverRPC.StartDNSListener:output_type -> clientpb.DNSListener
103, // 143: rpcpb.SliverRPC.StartHTTPSListener:output_type -> clientpb.HTTPListener
103, // 144: rpcpb.SliverRPC.StartHTTPListener:output_type -> clientpb.HTTPListener
104, // 145: rpcpb.SliverRPC.StartTCPStagerListener:output_type -> clientpb.StagerListener
104, // 146: rpcpb.SliverRPC.StartHTTPStagerListener:output_type -> clientpb.StagerListener
12, // 147: rpcpb.SliverRPC.LootAdd:output_type -> clientpb.Loot
0, // 148: rpcpb.SliverRPC.LootRm:output_type -> commonpb.Empty
12, // 149: rpcpb.SliverRPC.LootUpdate:output_type -> clientpb.Loot
12, // 150: rpcpb.SliverRPC.LootContent:output_type -> clientpb.Loot
105, // 151: rpcpb.SliverRPC.LootAll:output_type -> clientpb.AllLoot
105, // 152: rpcpb.SliverRPC.LootAllOf:output_type -> clientpb.AllLoot
106, // 153: rpcpb.SliverRPC.Hosts:output_type -> clientpb.AllHosts
13, // 154: rpcpb.SliverRPC.Host:output_type -> clientpb.Host
0, // 155: rpcpb.SliverRPC.HostRm:output_type -> commonpb.Empty
0, // 156: rpcpb.SliverRPC.HostIOCRm:output_type -> commonpb.Empty
107, // 157: rpcpb.SliverRPC.Generate:output_type -> clientpb.Generate
107, // 158: rpcpb.SliverRPC.Regenerate:output_type -> clientpb.Generate
108, // 159: rpcpb.SliverRPC.ImplantBuilds:output_type -> clientpb.ImplantBuilds
0, // 160: rpcpb.SliverRPC.DeleteImplantBuild:output_type -> commonpb.Empty
109, // 161: rpcpb.SliverRPC.Canaries:output_type -> clientpb.Canaries
110, // 162: rpcpb.SliverRPC.GenerateWGClientConfig:output_type -> clientpb.WGClientConfig
111, // 163: rpcpb.SliverRPC.GenerateUniqueIP:output_type -> clientpb.UniqueWGIP
112, // 164: rpcpb.SliverRPC.ImplantProfiles:output_type -> clientpb.ImplantProfiles
0, // 165: rpcpb.SliverRPC.DeleteImplantProfile:output_type -> commonpb.Empty
18, // 166: rpcpb.SliverRPC.SaveImplantProfile:output_type -> clientpb.ImplantProfile
113, // 167: rpcpb.SliverRPC.MsfStage:output_type -> clientpb.MsfStager
114, // 168: rpcpb.SliverRPC.ShellcodeRDI:output_type -> clientpb.ShellcodeRDI
115, // 169: rpcpb.SliverRPC.GetCompiler:output_type -> clientpb.Compiler
116, // 170: rpcpb.SliverRPC.ShellcodeEncoder:output_type -> clientpb.ShellcodeEncode
117, // 171: rpcpb.SliverRPC.ShellcodeEncoderMap:output_type -> clientpb.ShellcodeEncoderMap
118, // 172: rpcpb.SliverRPC.Websites:output_type -> clientpb.Websites
22, // 173: rpcpb.SliverRPC.Website:output_type -> clientpb.Website
0, // 174: rpcpb.SliverRPC.WebsiteRemove:output_type -> commonpb.Empty
22, // 175: rpcpb.SliverRPC.WebsiteAddContent:output_type -> clientpb.Website
22, // 176: rpcpb.SliverRPC.WebsiteUpdateContent:output_type -> clientpb.Website
22, // 177: rpcpb.SliverRPC.WebsiteRemoveContent:output_type -> clientpb.Website
25, // 178: rpcpb.SliverRPC.Ping:output_type -> sliverpb.Ping
119, // 179: rpcpb.SliverRPC.Ps:output_type -> sliverpb.Ps
120, // 180: rpcpb.SliverRPC.Terminate:output_type -> sliverpb.Terminate
121, // 181: rpcpb.SliverRPC.Ifconfig:output_type -> sliverpb.Ifconfig
122, // 182: rpcpb.SliverRPC.Netstat:output_type -> sliverpb.Netstat
123, // 183: rpcpb.SliverRPC.Ls:output_type -> sliverpb.Ls
124, // 184: rpcpb.SliverRPC.Cd:output_type -> sliverpb.Pwd
124, // 185: rpcpb.SliverRPC.Pwd:output_type -> sliverpb.Pwd
125, // 186: rpcpb.SliverRPC.Mv:output_type -> sliverpb.Mv
126, // 187: rpcpb.SliverRPC.Rm:output_type -> sliverpb.Rm
127, // 188: rpcpb.SliverRPC.Mkdir:output_type -> sliverpb.Mkdir
128, // 189: rpcpb.SliverRPC.Download:output_type -> sliverpb.Download
129, // 190: rpcpb.SliverRPC.Upload:output_type -> sliverpb.Upload
130, // 191: rpcpb.SliverRPC.ProcessDump:output_type -> sliverpb.ProcessDump
131, // 192: rpcpb.SliverRPC.RunAs:output_type -> sliverpb.RunAs
132, // 193: rpcpb.SliverRPC.Impersonate:output_type -> sliverpb.Impersonate
133, // 194: rpcpb.SliverRPC.RevToSelf:output_type -> sliverpb.RevToSelf
134, // 195: rpcpb.SliverRPC.GetSystem:output_type -> sliverpb.GetSystem
135, // 196: rpcpb.SliverRPC.Task:output_type -> sliverpb.Task
135, // 197: rpcpb.SliverRPC.Msf:output_type -> sliverpb.Task
135, // 198: rpcpb.SliverRPC.MsfRemote:output_type -> sliverpb.Task
136, // 199: rpcpb.SliverRPC.ExecuteAssembly:output_type -> sliverpb.ExecuteAssembly
137, // 200: rpcpb.SliverRPC.Migrate:output_type -> sliverpb.Migrate
138, // 201: rpcpb.SliverRPC.Execute:output_type -> sliverpb.Execute
138, // 202: rpcpb.SliverRPC.ExecuteWindows:output_type -> sliverpb.Execute
139, // 203: rpcpb.SliverRPC.Sideload:output_type -> sliverpb.Sideload
140, // 204: rpcpb.SliverRPC.SpawnDll:output_type -> sliverpb.SpawnDll
141, // 205: rpcpb.SliverRPC.Screenshot:output_type -> sliverpb.Screenshot
142, // 206: rpcpb.SliverRPC.CurrentTokenOwner:output_type -> sliverpb.CurrentTokenOwner
143, // 207: rpcpb.SliverRPC.PivotStartListener:output_type -> sliverpb.PivotListener
0, // 208: rpcpb.SliverRPC.PivotStopListener:output_type -> commonpb.Empty
144, // 209: rpcpb.SliverRPC.PivotSessionListeners:output_type -> sliverpb.PivotListeners
145, // 210: rpcpb.SliverRPC.PivotGraph:output_type -> clientpb.PivotGraph
146, // 211: rpcpb.SliverRPC.StartService:output_type -> sliverpb.ServiceInfo
146, // 212: rpcpb.SliverRPC.StopService:output_type -> sliverpb.ServiceInfo
146, // 213: rpcpb.SliverRPC.RemoveService:output_type -> sliverpb.ServiceInfo
147, // 214: rpcpb.SliverRPC.MakeToken:output_type -> sliverpb.MakeToken
148, // 215: rpcpb.SliverRPC.GetEnv:output_type -> sliverpb.EnvInfo
149, // 216: rpcpb.SliverRPC.SetEnv:output_type -> sliverpb.SetEnv
150, // 217: rpcpb.SliverRPC.UnsetEnv:output_type -> sliverpb.UnsetEnv
151, // 218: rpcpb.SliverRPC.Backdoor:output_type -> sliverpb.Backdoor
152, // 219: rpcpb.SliverRPC.RegistryRead:output_type -> sliverpb.RegistryRead
153, // 220: rpcpb.SliverRPC.RegistryWrite:output_type -> sliverpb.RegistryWrite
154, // 221: rpcpb.SliverRPC.RegistryCreateKey:output_type -> sliverpb.RegistryCreateKey
155, // 222: rpcpb.SliverRPC.RegistryDeleteKey:output_type -> sliverpb.RegistryDeleteKey
156, // 223: rpcpb.SliverRPC.RegistryListSubKeys:output_type -> sliverpb.RegistrySubKeyList
157, // 224: rpcpb.SliverRPC.RegistryListValues:output_type -> sliverpb.RegistryValuesList
158, // 225: rpcpb.SliverRPC.RunSSHCommand:output_type -> sliverpb.SSHCommand
159, // 226: rpcpb.SliverRPC.HijackDLL:output_type -> clientpb.DllHijack
160, // 227: rpcpb.SliverRPC.GetPrivs:output_type -> sliverpb.GetPrivs
74, // 228: rpcpb.SliverRPC.OpenSession:output_type -> sliverpb.OpenSession
0, // 229: rpcpb.SliverRPC.CloseSession:output_type -> commonpb.Empty
161, // 230: rpcpb.SliverRPC.RegisterExtension:output_type -> sliverpb.RegisterExtension
162, // 231: rpcpb.SliverRPC.CallExtension:output_type -> sliverpb.CallExtension
163, // 232: rpcpb.SliverRPC.ListExtensions:output_type -> sliverpb.ListExtensions
164, // 233: rpcpb.SliverRPC.WGStartPortForward:output_type -> sliverpb.WGPortForward
164, // 234: rpcpb.SliverRPC.WGStopPortForward:output_type -> sliverpb.WGPortForward
165, // 235: rpcpb.SliverRPC.WGStartSocks:output_type -> sliverpb.WGSocks
165, // 236: rpcpb.SliverRPC.WGStopSocks:output_type -> sliverpb.WGSocks
166, // 237: rpcpb.SliverRPC.WGListForwarders:output_type -> sliverpb.WGTCPForwarders
167, // 238: rpcpb.SliverRPC.WGListSocksServers:output_type -> sliverpb.WGSocksServers
168, // 239: rpcpb.SliverRPC.Shell:output_type -> sliverpb.Shell
169, // 240: rpcpb.SliverRPC.Portfwd:output_type -> sliverpb.Portfwd
87, // 241: rpcpb.SliverRPC.CreateSocks:output_type -> sliverpb.Socks
0, // 242: rpcpb.SliverRPC.CloseSocks:output_type -> commonpb.Empty
88, // 243: rpcpb.SliverRPC.SocksProxy:output_type -> sliverpb.SocksData
89, // 244: rpcpb.SliverRPC.CreateTunnel:output_type -> sliverpb.Tunnel
0, // 245: rpcpb.SliverRPC.CloseTunnel:output_type -> commonpb.Empty
90, // 246: rpcpb.SliverRPC.TunnelData:output_type -> sliverpb.TunnelData
170, // 247: rpcpb.SliverRPC.Events:output_type -> clientpb.Event
124, // [124:248] is the sub-list for method output_type
0, // [0:124] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
+1
View File
@@ -29,6 +29,7 @@ service SliverRPC {
rpc RmBeacon(clientpb.Beacon) returns (commonpb.Empty);
rpc GetBeaconTasks(clientpb.Beacon) returns (clientpb.BeaconTasks);
rpc GetBeaconTaskContent(clientpb.BeaconTask) returns (clientpb.BeaconTask);
rpc CancelBeaconTask(clientpb.BeaconTask) returns (clientpb.BeaconTask);
// ***Threat monitoring ***
rpc MonitorStart(commonpb.Empty) returns (commonpb.Response);
+36 -4
View File
@@ -1,8 +1,4 @@
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
// versions:
// - protoc-gen-go-grpc v1.2.0
// - protoc v3.21.5
// source: rpcpb/services.proto
package rpcpb
@@ -41,6 +37,7 @@ type SliverRPCClient interface {
RmBeacon(ctx context.Context, in *clientpb.Beacon, opts ...grpc.CallOption) (*commonpb.Empty, error)
GetBeaconTasks(ctx context.Context, in *clientpb.Beacon, opts ...grpc.CallOption) (*clientpb.BeaconTasks, error)
GetBeaconTaskContent(ctx context.Context, in *clientpb.BeaconTask, opts ...grpc.CallOption) (*clientpb.BeaconTask, error)
CancelBeaconTask(ctx context.Context, in *clientpb.BeaconTask, opts ...grpc.CallOption) (*clientpb.BeaconTask, error)
// ***Threat monitoring ***
MonitorStart(ctx context.Context, in *commonpb.Empty, opts ...grpc.CallOption) (*commonpb.Response, error)
MonitorStop(ctx context.Context, in *commonpb.Empty, opts ...grpc.CallOption) (*commonpb.Empty, error)
@@ -279,6 +276,15 @@ func (c *sliverRPCClient) GetBeaconTaskContent(ctx context.Context, in *clientpb
return out, nil
}
func (c *sliverRPCClient) CancelBeaconTask(ctx context.Context, in *clientpb.BeaconTask, opts ...grpc.CallOption) (*clientpb.BeaconTask, error) {
out := new(clientpb.BeaconTask)
err := c.cc.Invoke(ctx, "/rpcpb.SliverRPC/CancelBeaconTask", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *sliverRPCClient) MonitorStart(ctx context.Context, in *commonpb.Empty, opts ...grpc.CallOption) (*commonpb.Response, error) {
out := new(commonpb.Response)
err := c.cc.Invoke(ctx, "/rpcpb.SliverRPC/MonitorStart", in, out, opts...)
@@ -1374,6 +1380,7 @@ type SliverRPCServer interface {
RmBeacon(context.Context, *clientpb.Beacon) (*commonpb.Empty, error)
GetBeaconTasks(context.Context, *clientpb.Beacon) (*clientpb.BeaconTasks, error)
GetBeaconTaskContent(context.Context, *clientpb.BeaconTask) (*clientpb.BeaconTask, error)
CancelBeaconTask(context.Context, *clientpb.BeaconTask) (*clientpb.BeaconTask, error)
// ***Threat monitoring ***
MonitorStart(context.Context, *commonpb.Empty) (*commonpb.Response, error)
MonitorStop(context.Context, *commonpb.Empty) (*commonpb.Empty, error)
@@ -1543,6 +1550,9 @@ func (UnimplementedSliverRPCServer) GetBeaconTasks(context.Context, *clientpb.Be
func (UnimplementedSliverRPCServer) GetBeaconTaskContent(context.Context, *clientpb.BeaconTask) (*clientpb.BeaconTask, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetBeaconTaskContent not implemented")
}
func (UnimplementedSliverRPCServer) CancelBeaconTask(context.Context, *clientpb.BeaconTask) (*clientpb.BeaconTask, error) {
return nil, status.Errorf(codes.Unimplemented, "method CancelBeaconTask not implemented")
}
func (UnimplementedSliverRPCServer) MonitorStart(context.Context, *commonpb.Empty) (*commonpb.Response, error) {
return nil, status.Errorf(codes.Unimplemented, "method MonitorStart not implemented")
}
@@ -2090,6 +2100,24 @@ func _SliverRPC_GetBeaconTaskContent_Handler(srv interface{}, ctx context.Contex
return interceptor(ctx, in, info, handler)
}
func _SliverRPC_CancelBeaconTask_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(clientpb.BeaconTask)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(SliverRPCServer).CancelBeaconTask(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/rpcpb.SliverRPC/CancelBeaconTask",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(SliverRPCServer).CancelBeaconTask(ctx, req.(*clientpb.BeaconTask))
}
return interceptor(ctx, in, info, handler)
}
func _SliverRPC_MonitorStart_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(commonpb.Empty)
if err := dec(in); err != nil {
@@ -4176,6 +4204,10 @@ var SliverRPC_ServiceDesc = grpc.ServiceDesc{
MethodName: "GetBeaconTaskContent",
Handler: _SliverRPC_GetBeaconTaskContent_Handler,
},
{
MethodName: "CancelBeaconTask",
Handler: _SliverRPC_CancelBeaconTask_Handler,
},
{
MethodName: "MonitorStart",
Handler: _SliverRPC_MonitorStart_Handler,
+1 -1
View File
@@ -1,6 +1,6 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.27.1
// protoc-gen-go v1.26.0
// protoc v3.21.5
// source: sliverpb/sliver.proto
+1
View File
@@ -112,6 +112,7 @@ const (
PENDING = "pending"
SENT = "sent"
COMPLETED = "completed"
CANCELED = "canceled"
)
type BeaconTask struct {
+5
View File
@@ -19,6 +19,9 @@ package rpc
*/
import (
"fmt"
"github.com/bishopfox/sliver/server/db/models"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
)
@@ -41,4 +44,6 @@ var (
// ErrInvalidName - Invalid name
ErrInvalidName = status.Error(codes.InvalidArgument, "Invalid session name, alphanumerics and _-. only")
ErrInvalidBeaconTaskCancelState = status.Error(codes.InvalidArgument, fmt.Sprintf("Invalid task state, must be '%s' to cancel", models.PENDING))
)
+24
View File
@@ -107,3 +107,27 @@ func (rpc *Server) GetBeaconTaskContent(ctx context.Context, req *clientpb.Beaco
}
return task.ToProtobuf(true), nil
}
// CancelBeaconTask - Cancel a beacon task
func (rpc *Server) CancelBeaconTask(ctx context.Context, req *clientpb.BeaconTask) (*clientpb.BeaconTask, error) {
task, err := db.BeaconTaskByID(req.ID)
if err != nil {
return nil, ErrInvalidBeaconTaskID
}
if task.State == models.PENDING {
task.State = models.CANCELED
err = db.Session().Save(task).Error
if err != nil {
beaconRpcLog.Errorf("Database error: %s", err)
return nil, ErrDatabaseFailure
}
} else {
// No real point to cancel the task if it's already been sent
return task.ToProtobuf(false), ErrInvalidBeaconTaskCancelState
}
task, err = db.BeaconTaskByID(req.ID)
if err != nil {
return nil, ErrInvalidBeaconTaskID
}
return task.ToProtobuf(false), nil
}
+4 -2
View File
@@ -31,7 +31,7 @@ import (
"google.golang.org/protobuf/proto"
)
// Kill - Kill the implant proccess
// Kill - Kill the implant process
func (rpc *Server) Kill(ctx context.Context, kill *sliverpb.KillReq) (*commonpb.Empty, error) {
var (
beacon *models.Beacon
@@ -55,7 +55,9 @@ func (rpc *Server) killSession(kill *sliverpb.KillReq, session *core.Session) (*
return nil, err
}
timeout := time.Duration(kill.Request.GetTimeout())
session.Request(sliverpb.MsgNumber(kill), timeout, data)
// Do not block waiting for the msg send, the implant connection may already be dead
go session.Request(sliverpb.MsgNumber(kill), timeout, data)
core.Sessions.Remove(session.ID)
return &commonpb.Empty{}, nil
}