def listenServer(self): while True: try: time.sleep(3) send_msg(self.sock, "ping *") recv_msg(self.sock) except: if self.sock._closed: return None self.changeStatus(connected=False) self.connectionRefused.emit() return None
def send_command(name: CommandEnum, data: str = None) -> Optional[dict]: data = get_command(name, data) data = bytes(data, 'utf-8') # Публичный ключ передается в не зашифрованном виде if name != CommandEnum.SEND_PUBLIC_KEY: print(f'[*] Sending raw ({len(data)}): {data}') data = DATA['info_security'].encrypt(data) print(f'[+] Sending ({len(data)}): {data}') send_msg(sock, data) print('[+] Receiving...') response_data = recv_msg(sock) if not response_data: return print(f'[+] Response ({len(response_data)}): {response_data}') # AES ключ, зашифрованный публичным ключом, передается в не зашифрованном виде if name != CommandEnum.SEND_PUBLIC_KEY: response_data = DATA['info_security'].decrypt(response_data) print(f'[*] Response raw ({len(response_data)}): {response_data}') rs = json.loads(response_data, encoding='utf-8') command = CommandEnum[rs['command']] if command != name: raise Exception(f'Received response to another command. ') return rs
def send_command(command: str) -> str: with socket.socket() as sock: sock.connect((HOST, PORT)) data = bytes(command, 'utf-8') send_msg(sock, data) response_data = recv_msg(sock) return str(response_data, 'utf-8')
def handle(self): print('Connected:', self.client_address) data = recv_msg(self.request) print('Receiving ({}): {}'.format(len(data), data)) print('Sending') send_msg(self.request, data.upper()) print('Close\n')
def process_connect(conn, addr): print(f"[+] New connection from {addr}") try: while True: data = recv_msg(conn) if not data: break print(f'[+] Receiving ({len(data)}): {data}') # Проверка, что этот запрос уже не первый, т.к. то, что AES уже есть # и что, нужно расшифровавывать запрос is_existing_connect = conn in CONNECTION_BY_KEY if is_existing_connect: data = CONNECTION_BY_KEY[conn].decrypt(data) print(f'[*] Receiving raw ({len(data)}): {data}') rs = process_command(data, conn, addr) print(f'[*] Sending raw ({len(rs)}): {rs}') rs = CONNECTION_BY_KEY[conn].encrypt(rs) else: key_AES = rsa.decrypt(data, PRIVATE_KEY) print('key_AES:', key_AES) CONNECTION_BY_KEY[conn] = InfoSecurity(key_AES) rs = b'' print(f'[+] Sending ({len(rs)}): {rs}') send_msg(conn, rs) print() except: import traceback print(traceback.format_exc()) finally: conn.close() if conn in CONNECTION_BY_KEY: CONNECTION_BY_KEY.pop(conn) print(f"[+] Closed connection from {addr}") print()
def send_command(data: bytes = None, key: InfoSecurity = None) -> Optional[dict]: print(f'[+] Sending raw ({len(data)}): {data}') if key: data = key.encrypt(data) print(f'[+] Sending ({len(data)}): {data}') send_msg(sock, data) print('[+] Receiving...') response_data = recv_msg(sock) if not response_data: return print(f'[+] Response ({len(response_data)}): {response_data}') if key: response_data = key.decrypt(response_data) print(f'[*] Response raw ({len(response_data)}): {response_data}') rs = json.loads(response_data, encoding='utf-8') return rs
PORT = 9090 with socket.socket() as sock: sock.bind(('', 9090)) sock.listen(1) print('Server: {}'.format(sock.getsockname())) while True: conn, addr = sock.accept() print('Connected:', addr) data = recv_msg(conn) print('Receiving {} bytes'.format(len(data))) img = Image.open(io.BytesIO(data)) print('Receiving image:', img) print('Transform image in thumbnail') # Transform in thumbnail img.thumbnail((75, 75)) print('Img:', img) # Write thumbnail in buffer data_io = io.BytesIO() img.save(data_io, 'jpeg')
def _get_request(self, client): return recv_msg(client)
icred = gss.gssCred() icred.acquire(None, 3600, [gss.GSS_MECH_KRB5], gss.GSS_PY_INITIATE) target = gss.gssName() target.import_name('host@linuxbox', gss.GSS_NT_SERVICE_NAME) ictx = gss.gssContext() itoken = gss.GSS_PY_NO_BUFFER while (1): (cont_needed, otoken) = ictx.init( icred, target, gss.GSS_MECH_KRB5, gss.GSS_PY_MUTUAL_FLAG | gss.GSS_PY_CONF_FLAG | gss.GSS_PY_INTEG_FLAG, 0, itoken) if not cont_needed: break common.send_msg(s, otoken) itoken = common.recv_msg(s) print "\ncontext info" print "-=-=-=-=-=-=-=-=-" ctxinfo = ictx.inquire() (src_name, targ_name, time_rec, mech_type, context_flags) = ctxinfo print "initator: %s" % src_name.display() print "acceptor: %s" % targ_name.display() print "Context time: %d" % time_rec print "mech: %s" % common.b2a(mech_type) print "context flags: %04x" % context_flags # wrap test for message in holygrail.quotes.keys(): print "wrapping message: %s" % message
def sendRequest(self, request): send_msg(self.sock, request) response = recv_msg(self.sock) return response
sys.path.append('..') from common import send_msg, recv_msg HOST, PORT = "localhost", 9090 with socket.socket() as sock: sock.connect((HOST, PORT)) # Send file with open('img.jpg', 'rb') as f: data = f.read() print('Sending {} bytes'.format(len(data))) print() send_msg(sock, data) print('Receiving') response_data = recv_msg(sock) print('Response {} bytes'.format(len(response_data))) file_name = 'img_thumbnail.jpg' print('Save in ' + file_name) with open(file_name, 'wb') as f: f.write(response_data) print('Close\n')
import socket import json from common import send_msg, recv_msg s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) host = socket.gethostname() port = 9999 s.connect((host, port)) msg = "abs" #.encode('utf-8') send_msg(s, msg) data = recv_msg(s) s.close() print(data)