github.com/iDigitalFlame/xmt@v0.5.4/c2/task/vx_no_crypt.go (about) 1 //go:build !crypt && !implant 2 // +build !crypt,!implant 3 4 // Copyright (C) 2020 - 2023 iDigitalFlame 5 // 6 // This program is free software: you can redistribute it and/or modify 7 // it under the terms of the GNU General Public License as published by 8 // the Free Software Foundation, either version 3 of the License, or 9 // any later version. 10 // 11 // This program is distributed in the hope that it will be useful, 12 // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 // GNU General Public License for more details. 15 // 16 // You should have received a copy of the GNU General Public License 17 // along with this program. If not, see <https://www.gnu.org/licenses/>. 18 // 19 20 package task 21 22 // Shell will create a Task that will instruct the client to run a shell 23 // command. The command will be passed as an argument to the default shell 24 // found on the device. 25 // 26 // The Filter attribute will attempt to set the target that runs the Process. 27 // If none are specified, the Process will be ran under the client process. 28 // 29 // The response to this task will return the PID, ExitCode and Stdout/Stderr 30 // data. 31 // 32 // C2 Details: 33 // 34 // ID: TvExecute 35 // 36 // Input: 37 // Process struct { 38 // []string // Args 39 // string // Dir 40 // []string // Environment 41 // uint32 // Flags 42 // bool // Wait 43 // int64 // Timeout 44 // Filter struct { // Filter 45 // bool // Filter Status 46 // uint32 // PID 47 // bool // Fallback 48 // uint8 // Session 49 // uint8 // Elevated 50 // []string // Exclude 51 // []string // Include 52 // } 53 // []byte // Stdin Data 54 // } 55 // Output: 56 // uint32 // PID 57 // int32 // Exit Code 58 // []byte // Output (Stdout and Stderr) 59 func Shell(c string) Process { 60 return Process{Args: []string{"@SHELL@", c}, Wait: true} 61 }