示例#1
0
 def testListNetworkConnections(self):
     result = self.RunAction(
         network.ListNetworkConnections,
         arg=rdf_client_action.ListNetworkConnectionsArgs())
     for r in result:
         self.assertTrue(r.process_name)
         self.assertTrue(r.local_address)
示例#2
0
 def testListNetworkConnectionsFilter(self):
     result = self.RunAction(
         network.ListNetworkConnections,
         arg=rdf_client_action.ListNetworkConnectionsArgs(
             listening_only=True))
     for r in result:
         self.assertTrue(r.process_name)
         self.assertTrue(r.local_address)
         self.assertEqual(r.state, "LISTEN")
示例#3
0
  def _ProcessClientActionSource(self, source):
    # TODO(user): Add support for remaining client actions
    # EnumerateFilesystems and OSXEnumerateRunningServices

    request = {}
    action_name = source.base_source.attributes["client_action"]

    if action_name == "GetHostname":
      action = admin.GetHostnameFromClient

    elif action_name == "ListProcesses":
      action = standard.ListProcessesFromClient

    elif action_name == "ListNetworkConnections":
      action = network.ListNetworkConnectionsFromClient
      request = rdf_client_action.ListNetworkConnectionsArgs()

    elif action_name == "EnumerateInterfaces":
      action = operating_system.EnumerateInterfacesFromClient

    elif action_name == "EnumerateUsers":
      action = operating_system.EnumerateUsersFromClient

    # elif action_name == "EnumerateFilesystems":
    #   action = operating_system.EnumerateFilesystemsFromClient

    elif action_name == "StatFS":
      action = standard.StatFSFromClient
      paths = []
      if "action_args" in source.base_source.attributes:
        if "path_list" in source.base_source.attributes["action_args"]:
          paths = source.base_source.attributes["action_args"]["path_list"]
      request = rdf_client_action.StatFSRequest(
          path_list=paths, pathtype=source.path_type)

    # elif action_name == "OSXEnumerateRunningServices":
    #   action = operating_system.OSXEnumerateRunningServicesFromClient

    else:
      raise ValueError("Incorrect action type: %s" % action_name)

    yield action, request
示例#4
0
    def _ProcessClientActionSource(self, args):
        # TODO(user): Add support for remaining client actions
        # EnumerateFilesystems, StatFS and OSXEnumerateRunningServices
        switch_action = {
            "GetHostname": (admin.GetHostname, {}),
            "ListProcesses": (standard.ListProcesses, {}),
            "ListNetworkConnections":
            (network.ListNetworkConnections,
             rdf_client_action.ListNetworkConnectionsArgs()),
            "EnumerateInterfaces": (operating_system.EnumerateInterfaces, {}),
            "EnumerateUsers": (linux.EnumerateUsers, {}),
            # "EnumerateFilesystems": (operating_system.EnumerateFilesystems, {}),
            # "StatFS": (standard.StatFS, {}),
            # "OSXEnumerateRunningServices": (osx.OSXEnumerateRunningServices, {}),
        }
        action_name = args.base_source.attributes["client_action"]

        try:
            yield switch_action[action_name]
        except KeyError:
            raise ValueError("Incorrect action type: %s" % action_name)