Skip to content

Commit f7c6f20

Browse files
committed
Sort member output by sid for better alignment
1 parent 93446a5 commit f7c6f20

File tree

2 files changed

+17
-14
lines changed

2 files changed

+17
-14
lines changed

nxc/protocols/smb.py

+11-7
Original file line numberDiff line numberDiff line change
@@ -1265,17 +1265,21 @@ def local_groups(self):
12651265
except DCERPCException as e:
12661266
self.logger.fail(f"Error enumerating local groups: {e}")
12671267
return
1268-
if groups:
1268+
1269+
if groups and not self.args.local_groups:
12691270
self.logger.success("Enumerated local groups")
12701271
self.logger.debug(f"Local groups: {groups}")
12711272

1272-
for group_name, group_rid in groups.items():
1273-
self.logger.highlight(f"{group_rid} - {group_name}")
1274-
group_id = self.db.add_group(self.hostname, group_name, rid=group_rid)[0]
1275-
self.logger.debug(f"Added group, returned id: {group_id}")
1273+
for group_name, group_rid in groups.items():
1274+
self.logger.highlight(f"{group_rid} - {group_name}")
1275+
group_id = self.db.add_group(self.hostname, group_name, rid=group_rid)[0]
1276+
self.logger.debug(f"Added group, returned id: {group_id}")
1277+
elif groups and members:
1278+
self.logger.success(f"Enumerated users of local groups: {groups.popitem()[0]}")
12761279

1277-
for member in members:
1278-
self.logger.highlight(member)
1280+
members = dict(sorted(members.items(), key=lambda item: int(item[0].split("-")[-1])))
1281+
for member in members:
1282+
self.logger.highlight(f"{member} - {members[member]}")
12791283

12801284
def groups(self):
12811285
self.logger.fail("[DEPRECATED] Arg moved to the ldap protocol")

nxc/protocols/smb/samrfunc.py

+6-7
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def __init__(self, connection):
4141

4242
def get_builtin_groups(self, group):
4343
domains = self.samr_query.get_domains()
44-
members = []
44+
members = {}
4545
if "Builtin" not in domains:
4646
logging.error("No Builtin group to query locally on")
4747
return None
@@ -55,7 +55,7 @@ def get_builtin_groups(self, group):
5555
def get_custom_groups(self, group=None):
5656
domains = self.samr_query.get_domains()
5757
custom_groups = {}
58-
members = []
58+
members = {}
5959
for domain in domains:
6060
if domain == "Builtin":
6161
continue
@@ -70,19 +70,18 @@ def get_local_groups(self, group=None):
7070
self.logger.display(f"Querying group: {group}")
7171
builtin_groups, builtin_groups_members = self.get_builtin_groups(group)
7272
custom_groups, custom_groups_members = self.get_custom_groups(group)
73-
return {**builtin_groups, **custom_groups}, builtin_groups_members + custom_groups_members
73+
return {**builtin_groups, **custom_groups}, builtin_groups_members | custom_groups_members
7474

7575
def get_local_users(self, group, domain_handle):
76-
users = []
76+
users = {}
7777
try:
7878
for alias_id in group.values():
7979
member_sids = self.samr_query.get_alias_members(domain_handle, alias_id)
8080
member_names = self.lsa_query.lookup_sids(member_sids)
81-
for sid, name in zip(member_sids, member_names, strict=True):
82-
users.append(f"{name} - {sid}")
81+
users = dict(zip(member_sids, member_names, strict=True))
8382
except Exception as e:
8483
self.logger.debug(f"Error enumerating users in {group}: {e}")
85-
return []
84+
return {}
8685
return users
8786

8887

0 commit comments

Comments
 (0)