SQLRecon 是一个 Microsoft SQL Server 工具包,专为进攻性侦察和后渗透而设计。有关如何使用每种技术的详细信息,请参阅 wiki。
你可以从 releases 页面下载 SQLRecon 的副本。或者,你也可以自行编译解决方案。这应该很简单:克隆仓库、双击解决方案文件并构建即可。
预防、检测和缓解指南也已为各位防御者提供。
查看我在 IBM Security Intelligence 网站上发表的博客文章。如果你更喜欢视频,可以观看我在 Black Hat 上的演讲。
枚举模块无需提供身份验证提供程序。这些模块必须传入枚举模块标志(/e:, /enum:)。wiki 中有关于使用枚举模块的详细信息。```
Info - Show information about the SQL server.
/h:, /host -> SQL server hostname or IP. Multiple hosts supported.
/port: -> (OPTIONAL) Defaults to 1434 (UDP).
/t:, timeout: -> (OPTIONAL) Defaults to 3s.
SqlSpns - Use the current user token to enumerate the AD domain for MSSQL SPNs. /d:, /domain: -> (OPTIONAL) NETBIOS name or FQDN of domain.
# Authentication Providers
SQLRecon 支持多种身份验证提供程序(`/a:, /auth:`),以便与 Microsoft SQL Server 进行交互。```
WinToken - Use the current users token to authenticate against the SQL database
/h:, /host: -> SQL server hostname or IP
WinDomain - Use AD credentials to authenticate against the SQL database
/h:, /host: -> SQL server hostname or IP. Multiple hosts supported.
/d:, /domain: -> NETBIOS name or FQDN of domain.
/u:, /username: -> Username for domain user.
/p:, /password: -> Password for domain user.
Local - Use local SQL credentials to authenticate against the SQL database
/h:, /host: -> SQL server hostname or IP. Multiple hosts supported.
/u:, /username: -> Username for local SQL user.
/p:, /password: -> Password for local SQL user.
EntraID - Use Azure EntraID credentials to authenticate against the Azure SQL database
/h:, /host: -> SQL server hostname or IP. Multiple hosts supported.
/d:, /domain: -> FQDN of domain (DOMAIN.COM).
/u:, /username: -> Username for domain user.
/p:, /password: -> Password for domain user.
AzureLocal - Use local SQL credentials to authenticate against the Azure SQL database
/h:, /host: -> SQL server hostname or IP. Multiple hosts supported.
/u:, /username: -> Username for local SQL user.
/p:, /password: -> Password for local SQL user.
/h:, host:)为必填项,允许指定一个或多个 SQL 服务器。如果要对多个 SQL 服务器执行模块,请用逗号分隔主机,例如 /h:SQL01,10.10.10.2,SQL03。master 数据库,但也可以通过数据库(/database:)标志提供自定义数据库名称来更改。/debug 标志是可选的,用于显示模块将要执行的所有 SQL 查询,但不会在远程主机上实际执行它们。相关示例可在wiki中找到。1433 连接数据库,但也可以通过 /port: 标志更改。3 秒,但也可以通过提供超时值(/t:, /timeout:)来更改,该值表示终止连接尝试前的秒数。/v, /verbose 标志是可选的,用于在远程主机上执行模块之前显示所有将要执行的 SQL 查询。相关示例可在wiki中找到。请注意,EntraID 身份验证提供程序要求在运行 SQLRecon 的系统上存在 Azure Active Directory 身份验证库(ADAL)或 Microsoft 身份验证库(MSAL)。这是用于 Azure EntraID 身份验证和授权功能。
SQL 模块针对一个或多个 Microsoft SQL Server 实例执行。这些模块必须通过模块标志(/m:, /module:)传入。