Exemplo n.º 1
0
  def GuessHistoryPaths(self, username):
    """Take a user and return guessed full paths to History files.

    Args:
      username: Username as string.

    Returns:
      A list of strings containing paths to look for history files in.

    Raises:
      OSError: On invalid system in the Schema
    """
    fd = aff4.FACTORY.Open(self.client_id, token=self.token)
    system = fd.Get(fd.Schema.SYSTEM)
    user_info = flow_utils.GetUserInfo(fd, username)
    if not user_info:
      self.Error("Could not find homedir for user {0}".format(username))
      return

    paths = []
    if system == "Windows":
      path = "{app_data}\\Mozilla\\Firefox\\Profiles/"
      paths.append(path.format(app_data=user_info.special_folders.app_data))
    elif system == "Linux":
      path = "hotexamples_com/.mozilla/firefox/"
      paths.append(path.format(homedir=user_info.homedir))
    elif system == "Darwin":
      path = ("hotexamples_com/Library/Application Support/" "Firefox/Profiles/")
      paths.append(path.format(homedir=user_info.homedir))
    else:
      raise OSError("Invalid OS for Chrome History")
    return paths
Exemplo n.º 2
0
  def Start(self):
    """Redirect to start on the workers and not in the UI."""

    # Figure out which paths we are going to check.
    client = aff4.FACTORY.Open(self.client_id, token=self.token)
    system = client.Get(client.Schema.SYSTEM)
    paths = BROWSER_PATHS.get(system)
    self.state.all_paths = []
    if self.args.check_chrome:
      self.state.all_paths += paths.get("Chrome", [])
    if self.args.check_ie:
      self.state.all_paths += paths.get("IE", [])
    if self.args.check_firefox:
      self.state.all_paths += paths.get("Firefox", [])
    if not self.state.all_paths:
      raise flow.FlowError("Unsupported system %s for CacheGrep" % system)

    self.state.users = []
    for user in self.args.grep_users:
      user_info = flow_utils.GetUserInfo(client, user)
      if not user_info:
        raise flow.FlowError("No such user %s" % user)
      self.state.users.append(user_info)

    self.CallState(next_state="StartRequests")
Exemplo n.º 3
0
    def GuessHistoryPaths(self, username):
        """Take a user and return guessed full paths to History files.

    Args:
      username: Username as string.

    Returns:
      A list of strings containing paths to look for history files in.

    Raises:
      OSError: On invalid system in the Schema
    """
        client = aff4.FACTORY.Open(self.client_id, token=self.token)
        system = client.Get(client.Schema.SYSTEM)
        user_info = flow_utils.GetUserInfo(client, username)
        if not user_info:
            self.Error("Could not find homedir for user {0}".format(username))
            return

        paths = []
        if system == "Windows":
            path = ("{app_data}\\{sw}\\User Data\\Default\\")
            for sw_path in ["Google\\Chrome", "Chromium"]:
                paths.append(
                    path.format(
                        app_data=user_info.special_folders.local_app_data,
                        sw=sw_path))
        elif system == "Linux":
            path = "hotexamples_com/.config/{sw}/Default/"
            for sw_path in ["google-chrome", "chromium"]:
                paths.append(path.format(homedir=user_info.homedir,
                                         sw=sw_path))
        elif system == "Darwin":
            path = "hotexamples_com/Library/Application Support/{sw}/Default/"
            for sw_path in ["Google/Chrome", "Chromium"]:
                paths.append(path.format(homedir=user_info.homedir,
                                         sw=sw_path))
        else:
            raise OSError("Invalid OS for Chrome History")
        return paths