예제 #1
0
 def get_tunnel_telem_brief(telem):
     tunnel = telem['data']['proxy']
     if tunnel is None:
         return 'No tunnel is used.'
     else:
         tunnel_host_ip = tunnel.split(":")[-2].replace("//", "")
         tunnel_host = NodeService.get_monkey_by_ip(tunnel_host_ip)['hostname']
         return 'Tunnel set up to machine: %s.' % tunnel_host
예제 #2
0
    def get_edge_by_scan_or_exploit_telemetry(telemetry_json):
        dst_ip = telemetry_json['data']['machine']['ip_addr']
        dst_domain_name = telemetry_json['data']['machine']['domain_name']
        src_monkey = NodeService.get_monkey_by_guid(telemetry_json['monkey_guid'])
        dst_node = NodeService.get_monkey_by_ip(dst_ip)
        if dst_node is None:
            dst_node = NodeService.get_or_create_node(dst_ip, dst_domain_name)

        return EdgeService.get_or_create_edge(src_monkey["_id"], dst_node["_id"])
예제 #3
0
 def get_tunnel_telem_brief(telem):
     tunnel = telem["data"]["proxy"]
     if tunnel is None:
         return "No tunnel is used."
     else:
         tunnel_host_ip = tunnel.split(":")[-2].replace("//", "")
         tunnel_host = NodeService.get_monkey_by_ip(
             tunnel_host_ip)["hostname"]
         return "Tunnel set up to machine: %s." % tunnel_host
예제 #4
0
def get_edge_by_scan_or_exploit_telemetry(telemetry_json):
    dst_ip = telemetry_json["data"]["machine"]["ip_addr"]
    dst_domain_name = telemetry_json["data"]["machine"]["domain_name"]
    src_monkey = NodeService.get_monkey_by_guid(telemetry_json["monkey_guid"])
    dst_node = NodeService.get_monkey_by_ip(dst_ip)
    if dst_node is None:
        dst_node = NodeService.get_or_create_node(dst_ip, dst_domain_name)

    src_label = NodeService.get_label_for_endpoint(src_monkey["_id"])
    dst_label = NodeService.get_label_for_endpoint(dst_node["_id"])

    return EdgeService.get_or_create_edge(src_monkey["_id"], dst_node["_id"],
                                          src_label, dst_label)
예제 #5
0
    def get(self):
        client_ip = request.remote_addr
        if client_ip == "127.0.0.1":
            monkey = NodeService.get_monkey_island_monkey()
        else:
            monkey = NodeService.get_monkey_by_ip(client_ip)
        NodeService.update_dead_monkeys()
        if monkey is not None:
            is_monkey_running = not monkey["dead"]
        else:
            logger.info("Monkey is not running")
            is_monkey_running = False

        return jsonify(is_running=is_monkey_running)