def get_command(agent_id): agent = Agent.query.get(agent_id) if not agent: agent = Agent(agent_id) db.session.add(agent) db.session.commit() # Report basic info about the agent info = request.json if info: if 'platform' in info: agent.operating_system = info['platform'] if 'hostname' in info: agent.hostname = info['hostname'] if 'username' in info: agent.username = info['username'] agent.last_online = datetime.now() agent.remote_ip = request.remote_addr agent.geolocation = geolocation(agent.remote_ip) db.session.commit() # Return pending commands for the agent cmd_to_run = '' cmd = agent.commands.order_by(Command.timestamp.desc()).first() if cmd: cmd_to_run = cmd.cmdline db.session.delete(cmd) db.session.commit() return cmd_to_run
def get_command(agent_id): agent = Agent.query.get(agent_id) if not agent: agent = Agent(agent_id) db.session.add(agent) db.session.commit() # Report basic info about the agent info = request.json if info: if 'platform' in info: plataform = info['platform'] plataform = str(plataform) agent.operating_system = base64.b16decode(plataform) if 'hostname' in info: hostname = info['hostname'] hostname = str(hostname) agent.hostname = base64.b16decode(hostname) if 'username' in info: username = info['username'] username = str(username) agent.username = base64.b16decode(username) if 'cpu' in info: cpu = info['cpu'] cpu = str(cpu) agent.cpu = base64.b16decode(cpu) if 'gpu' in info: gpu = info['gpu'] gpu = str(gpu) agent.gpu = base64.b16decode(gpu) if 'memory' in info: agent.memory = base64.b16decode(info['memory']) agent.memory = int(agent.memory) / 2.**30 agent.memory = ('% 6.2f' % agent.memory) + " GB" agent.memory = str(agent.memory) agent.last_online = datetime.now() agent.remote_ip = request.remote_addr agent.geolocation = geolocation(agent.remote_ip) db.session.commit() # Return pending commands for the agent cmd_to_run = '' cmd = agent.commands.order_by(Command.timestamp.desc()).first() if cmd: cmd_to_run = cmd.cmdline db.session.delete(cmd) db.session.commit() return cmd_to_run