Skip to content

Commit fb52fc6

Browse files
committed
Simplify logic
1 parent a2d4d93 commit fb52fc6

1 file changed

Lines changed: 21 additions & 25 deletions

File tree

nxc/modules/presence.py

Lines changed: 21 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -92,32 +92,28 @@ def safe_str(obj):
9292
return False
9393
try:
9494
resp = samr.hSamrGetMembersInGroup(dce, group_handle)
95-
if resp["Members"]["Members"]:
96-
for member in resp["Members"]["Members"]:
95+
for member in resp["Members"]["Members"]:
96+
rid = int.from_bytes(member.getData(), byteorder="little")
97+
try:
98+
user_handle = samr.hSamrOpenUser(dce, domain_handle, samr.MAXIMUM_ALLOWED, rid)["UserHandle"]
99+
username = samr.hSamrQueryInformationUser2(dce, user_handle, samr.USER_INFORMATION_CLASS.UserAllInformation)["Buffer"]["All"]["UserName"]
100+
101+
full_username = f"{domain}\\{username}"
102+
admin_users.add(f"{full_username} (Member of {group_name})")
103+
104+
# map sid string of user to username
105+
user_sid = f"{domain_sid}-{rid}"
106+
self.sid_to_user[user_sid] = full_username
107+
108+
samr.hSamrCloseHandle(dce, user_handle)
109+
except Exception as name_e:
97110
try:
98-
rid = int.from_bytes(member.getData(), byteorder="little")
99-
try:
100-
user_handle = samr.hSamrOpenUser(dce, domain_handle, samr.MAXIMUM_ALLOWED, rid)["UserHandle"]
101-
username = samr.hSamrQueryInformationUser2(dce, user_handle, samr.USER_INFORMATION_CLASS.UserAllInformation)["Buffer"]["All"]["UserName"]
102-
103-
full_username = f"{domain}\\{username}"
104-
admin_users.add(f"{full_username} (Member of {group_name})")
105-
106-
# map sid string of user to username
107-
user_sid = f"{domain_sid}-{rid}"
108-
self.sid_to_user[user_sid] = full_username
109-
110-
samr.hSamrCloseHandle(dce, user_handle)
111-
except Exception as name_e:
112-
try:
113-
sid_str = domain_sid
114-
full_sid = f"{sid_str}-{rid}"
115-
except Exception:
116-
full_sid = "[unrepresentable SID]"
117-
context.log.debug(f"Failed to get user info for RID {rid}: {name_e!s}")
118-
admin_users.add(f"{domain}\\{full_sid} (Member of {group_name})")
119-
except Exception as member_e_inner:
120-
context.log.debug(f"Error processing group member: {member_e_inner!s}")
111+
sid_str = domain_sid
112+
full_sid = f"{sid_str}-{rid}"
113+
except Exception:
114+
full_sid = "[unrepresentable SID]"
115+
context.log.debug(f"Failed to get user info for RID {rid}: {name_e!s}")
116+
admin_users.add(f"{domain}\\{full_sid} (Member of {group_name})")
121117
except Exception as e:
122118
context.log.exception(e)
123119
context.log.debug(f"Failed to get members of group {group_name}: {e!s}")

0 commit comments

Comments
 (0)