aboutsummaryrefslogtreecommitdiff
path: root/internal/exec/scmr/module.go
diff options
context:
space:
mode:
authorBryan McNulty <bryanmcnulty@protonmail.com>2025-03-09 12:26:05 -0500
committerBryan McNulty <bryanmcnulty@protonmail.com>2025-03-09 12:26:05 -0500
commitc6460b19bd834875b00f199390e6121d5bdfba7e (patch)
tree11cf6c9c3ddbdf694547cea50c2375d2b6d0df7c /internal/exec/scmr/module.go
parent8099a1d45007ba86f353647bf2a3f09d0cfc73a7 (diff)
downloadgoexec-c6460b19bd834875b00f199390e6121d5bdfba7e.tar.gz
goexec-c6460b19bd834875b00f199390e6121d5bdfba7e.zip
massively improved SCMR module + new DCE client
Diffstat (limited to 'internal/exec/scmr/module.go')
-rw-r--r--internal/exec/scmr/module.go43
1 files changed, 25 insertions, 18 deletions
diff --git a/internal/exec/scmr/module.go b/internal/exec/scmr/module.go
index 95977b8..2a2d378 100644
--- a/internal/exec/scmr/module.go
+++ b/internal/exec/scmr/module.go
@@ -1,31 +1,38 @@
package scmrexec
import (
- "github.com/FalconOpsLLC/goexec/internal/client/dcerpc"
- "github.com/RedTeamPentesting/adauth"
- "github.com/oiweiwei/go-msrpc/msrpc/scmr/svcctl/v2"
- "github.com/rs/zerolog"
+ "context"
+ "github.com/oiweiwei/go-msrpc/dcerpc"
+ "github.com/oiweiwei/go-msrpc/msrpc/scmr/svcctl/v2"
+)
+
+const (
+ MethodCreate = "create"
+ MethodChange = "change"
+
+ CleanupMethodDelete = "delete"
+ CleanupMethodRevert = "revert"
)
type Module struct {
- creds *adauth.Credential
- target *adauth.Target
- hostname string
+ hostname string // The target hostname
+ dce dcerpc.Conn
+ reconnect func(context.Context) error
- log zerolog.Logger
- dce *dcerpc.DCEClient
- ctl svcctl.SvcctlClient
+ ctl svcctl.SvcctlClient
+ scm *svcctl.Handle
+ services []remoteService
}
type MethodCreateConfig struct {
- NoDelete bool
- ServiceName string
- DisplayName string
- ServiceType uint32
- StartType uint32
+ NoDelete bool
+ ServiceName string
+ DisplayName string
+ ServiceType uint32
+ StartType uint32
}
-type MethodModifyConfig struct {
- NoStart bool
- ServiceName string
+type MethodChangeConfig struct {
+ NoStart bool
+ ServiceName string
}