Beispiel #1
0
 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
Beispiel #2
0
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
Beispiel #3
0
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()
Beispiel #6
0
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
Beispiel #7
0

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')
Beispiel #8
0
 def _get_request(self, client):
     return recv_msg(client)
Beispiel #9
0
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
Beispiel #10
0
 def sendRequest(self, request):
     send_msg(self.sock, request)
     response = recv_msg(self.sock)
     return response
Beispiel #11
0
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')
Beispiel #12
0
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)