diff options
author | Bryan McNulty <bryanmcnulty@protonmail.com> | 2025-03-04 03:05:53 -0600 |
---|---|---|
committer | Bryan McNulty <bryanmcnulty@protonmail.com> | 2025-03-04 03:05:53 -0600 |
commit | a5c860b8ab24c198b7390fbde90044754e35c1c5 (patch) | |
tree | 3118b27b5c76cab44bb61d83df750a9f00b4be00 /internal/exec/exec.go | |
parent | 5a3bf6315aab33e6488734a579977836042b4aa1 (diff) | |
parent | f98989334bbe227bbe9dc4c84a2d0e34aa2fb86f (diff) | |
download | goexec-a5c860b8ab24c198b7390fbde90044754e35c1c5.tar.gz goexec-a5c860b8ab24c198b7390fbde90044754e35c1c5.zip |
Simple fixes
Diffstat (limited to 'internal/exec/exec.go')
-rw-r--r-- | internal/exec/exec.go | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/internal/exec/exec.go b/internal/exec/exec.go new file mode 100644 index 0000000..16fa543 --- /dev/null +++ b/internal/exec/exec.go @@ -0,0 +1,44 @@ +package exec + +import ( + "context" + "github.com/RedTeamPentesting/adauth" +) + +type CleanupConfig struct { + CleanupMethod string + CleanupMethodConfig interface{} +} + +type ExecutionConfig struct { + ExecutableName string // ExecutableName represents the name of the executable; i.e. "notepad.exe", "calc" + ExecutablePath string // ExecutablePath represents the full path to the executable; i.e. `C:\Windows\explorer.exe` + ExecutableArgs string // ExecutableArgs represents the arguments to be passed to the executable during execution; i.e. "/C whoami" + + ExecutionMethod string // ExecutionMethod represents the specific execution strategy used by the module. + ExecutionMethodConfig interface{} + ExecutionOutput string // not implemented + ExecutionOutputConfig interface{} // not implemented +} + +type ShellConfig struct { + ShellName string // ShellName specifies the name of the shell executable; i.e. "cmd.exe", "powershell" + ShellPath string // ShellPath is the full Windows path to the shell executable; i.e. `C:\Windows\System32\cmd.exe` +} + +type Module interface { + // Exec performs a single execution task without the need to call Init. + Exec(context.Context, *adauth.Credential, *adauth.Target, *ExecutionConfig) error + Cleanup(context.Context, *adauth.Credential, *adauth.Target, *CleanupConfig) error + + // Init assigns the provided TODO + //Init(ctx context.Context, creds *adauth.Credential, target *adauth.Target) + //Shell(ctx context.Context, input chan *ExecutionConfig, output chan []byte) +} + +func (cfg *ExecutionConfig) GetRawCommand() string { + if cfg.ExecutableArgs != "" { + return cfg.ExecutablePath + " " + cfg.ExecutableArgs + } + return cfg.ExecutablePath +} |