Skip to content

Commit b0ee13c

Browse files
committed
fix db specfic role membership query
1 parent 383f9f5 commit b0ee13c

1 file changed

Lines changed: 22 additions & 9 deletions

File tree

pysqlrecon/modules/whoami.py

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -39,19 +39,32 @@ def main(ctx: typer.Context):
3939
pysqlrecon.query_handler("SELECT USER_NAME();")
4040
logger.info(f"Mapped to the user [cyan]{pysqlrecon.get_last_resp()}[/]", extra=OBJ_EXTRA_FMT)
4141

42+
logger.info("Gathering roles:")
4243
pysqlrecon.query_handler("SELECT [name] FROM sysusers WHERE issqlrole = 1;")
4344
roles = [row['name'] for row in pysqlrecon.ms_sql.rows]
44-
roles.extend(DEFAULT_ROLES)
4545

46-
logger.info("Gathering roles:")
47-
print()
46+
logger.debug(f"Identified {len(roles)} database roles")
47+
logger.debug(f"Roles: {roles}")
4848

49+
print()
50+
51+
# db-specific roles
4952
for role in roles:
53+
pysqlrecon.query_handler(f"SELECT IS_MEMBER('{role}');")
54+
check_role(role, pysqlrecon.get_last_resp())
55+
56+
# check server roles
57+
for role in DEFAULT_ROLES:
5058
pysqlrecon.query_handler(f"SELECT IS_SRVROLEMEMBER('{role}');")
51-
if pysqlrecon.get_last_resp() == 1:
52-
console.print(f"{' |->':>15} User is a member of the [green]{role}[/] role")
53-
else:
54-
console.print(f"{' |->':>15} User is NOT a member of the [red]{role}[/] role")
55-
59+
check_role(role, pysqlrecon.get_last_resp())
60+
61+
5662
print()
57-
pysqlrecon.disconnect()
63+
pysqlrecon.disconnect()
64+
65+
66+
def check_role(role, last_resp):
67+
if last_resp == 1:
68+
console.print(f"{' |->':>15} User is a member of the [green]{role}[/] role")
69+
else:
70+
console.print(f"{' |->':>15} User is NOT a member of the [red]{role}[/] role")

0 commit comments

Comments
 (0)