Skip to content

Commit 2a98a92

Browse files
committed
Add a query for the linked server config if we are local admin
1 parent 1e583a0 commit 2a98a92

1 file changed

Lines changed: 17 additions & 4 deletions

File tree

nxc/modules/enum_links.py

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
class NXCModule:
22
"""
33
Enumerate SQL Server linked servers
4-
Module by deathflamingo
4+
Module by deathflamingo, NeffIsBack
55
"""
66

77
name = "enum_links"
8-
description = "Enumerate linked SQL Servers"
8+
description = "Enumerate linked SQL Servers and their login configurations."
99
supported_protocols = ["mssql"]
1010
opsec_safe = True
1111
multiple_hosts = True
@@ -14,6 +14,9 @@ def __init__(self):
1414
self.mssql_conn = None
1515
self.context = None
1616

17+
def options(self, context, module_options):
18+
pass
19+
1720
def on_login(self, context, connection):
1821
self.context = context
1922
self.mssql_conn = connection.conn
@@ -25,6 +28,18 @@ def on_login(self, context, connection):
2528
else:
2629
self.context.log.fail("No linked servers found.")
2730

31+
def on_admin_login(self, context, connection):
32+
res = self.mssql_conn.sql_query("EXEC sp_helplinkedsrvlogin")
33+
srvs = [srv for srv in res if srv["Local Login"] != "NULL"]
34+
if not srvs:
35+
self.context.log.fail("No linked servers found.")
36+
return
37+
self.context.log.success("Linked servers found:")
38+
for srv in srvs:
39+
self.context.log.display(f"Linked server: {srv['Linked Server']}")
40+
self.context.log.display(f" - Local login: {srv['Local Login']}")
41+
self.context.log.display(f" - Remote login: {srv['Remote Login']}")
42+
2843
def get_linked_servers(self) -> list:
2944
"""
3045
Fetches a list of linked servers.
@@ -36,5 +51,3 @@ def get_linked_servers(self) -> list:
3651
query = "EXEC sp_linkedservers;"
3752
res = self.mssql_conn.sql_query(query)
3853
return [server["SRV_NAME"] for server in res] if res else []
39-
def options(self, context, module_options):
40-
pass

0 commit comments

Comments
 (0)