From 1fbfbfc78b1d186bc87fca9f5ab7342bff1a5b61 Mon Sep 17 00:00:00 2001 From: ydkhatri Date: Thu, 25 Jun 2020 23:47:14 -0400 Subject: [PATCH] MOUNTED mode darwinpath calc added --- plugins/helpers/darwin_path_generator.py | 12 ++++- plugins/helpers/macinfo.py | 59 ++++-------------------- 2 files changed, 18 insertions(+), 53 deletions(-) diff --git a/plugins/helpers/darwin_path_generator.py b/plugins/helpers/darwin_path_generator.py index f63cfce..454e57d 100644 --- a/plugins/helpers/darwin_path_generator.py +++ b/plugins/helpers/darwin_path_generator.py @@ -29,8 +29,12 @@ def GetDarwinPath(uuid, uid): osx older than Mavericks(10.9)''' charset ='+-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' uuid = uuid.replace('-', '') # strip '-' if present + uid = int(uid) + if uid < 0: + # convert to unsigned num + uid = struct.unpack('.plist - # #TODO - make a better plugin that gets all user & group info - # users_path = '/private/var/db/dslocal/nodes/Default/users' - # user_plists = self.ListItemsInFolder(users_path, EntryType.FILES) - # for plist_meta in user_plists: - # if plist_meta['size'] > 0: - # try: - # f = self.Open(users_path + '/' + plist_meta['name']) - # if f!= None: - # plist = biplist.readPlist(f) - # home_dir = self.GetArrayFirstElement(plist.get('home', '')) - # if home_dir != '': - # #log.info('{} : {}'.format(plist_meta['name'], home_dir)) - # if home_dir.startswith('/var/'): home_dir = '/private' + home_dir # in mac /var is symbolic link to /private/var - # # find it in self.users which was populated by _GetDarwinFoldersInfo() - # target_user = None - # for user in self.users: - # if user.home_dir == home_dir: - # target_user = user - # break - # if target_user == None: - # target_user = UserInfo() - # self.users.append(target_user) - # target_user.UID = str(self.GetArrayFirstElement(plist.get('uid', ''))) - # target_user.GID = str(self.GetArrayFirstElement(plist.get('gid', ''))) - # target_user.UUID = self.GetArrayFirstElement(plist.get('generateduid', '')) - # target_user.home_dir = home_dir - # target_user.user_name = self.GetArrayFirstElement(plist.get('name', '')) - # target_user.real_name = self.GetArrayFirstElement(plist.get('realname', '')) - # # There is also accountpolicydata which contains : creation time, failed logon time, failed count, .. - # else: - # log.error('Did not find \'home\' in ' + plist_meta['name']) - # f.close() - # except Exception as ex: - # log.error ("Could not open plist " + plist_meta['name'] + " Exception: " + str(ex)) - # #TODO: Domain user uid, gid? - class MountedMacInfoSeperateSysData(MountedMacInfo): '''Same as MountedMacInfo, but takes into account two volumes (SYS, DATA) mounted separately'''