设为首页 收藏本站
查看: 1762|回复: 0

[经验分享] [sql server] Microsoft SQL Server SA弱口令攻防实战

[复制链接]

尚未签到

发表于 2016-11-2 10:15:05 | 显示全部楼层 |阅读模式
51CTO.com 独家特稿】Microsoft SQLServer是一个c/s模式的强大的关系型数据库管理系统,应用领域十分广泛,从网站后台数据库到一些MIS(管理信息系统)到处都可以看到它的身影。我们都知道,在网络中Microsoft SQLServer的入侵最常见的就是利用SA弱口令入侵了,而核心内容就是利用Microsoft SQLServer中的存储过程获得系统管理员权限,那到底什么是存储过程?为什么利用它可以获得系统管理员权限?

存储过程是存储在SQLServer中的预先写好的SQL语句集合,它分为三类:系统提供的存储过程,用户定义的存储过程和扩展存储过程。
系统提供的存储过程是在安装SQLServer时创建的存储过程,名字以"sp_"开头。
用户定义的存储过程是用SQLServer的使用者编写的存储过程。
扩展存储过程则是对动态链接库(DLL)函数的调用,主要是用于客户端与服务器端或客户端之间进行通信的,与一般动态链接库不同的是它们直接运行在SQLServer分配的内存地址内,其中危险性最高的扩展存储过程就是xp_cmdshell了,它可以执行操作系统的任何指令。

SAMicrosoft SQLServer的管理员帐号,拥有最高权限,它可以执行扩展存储过程,并获得返回值,比如执行:

exec master..xp_cmdshell 'net user test 12345 /add'和exec master..xp_cmd

shell 'net localgroup administrators test /add'


这样对方的系统就被添加了一个用户名为test,密码为12345,有管理员权限的用户,现在你应该明白为什么得到SA密码,就可以得到系统的最高权限了吧。下面就详细的讲一下Microsoft SQLServer中利用SA弱口令的攻击与防范。

通常当我们扫描到一台有Microsoft SQLServer SA弱口令的机器,都会用一些专门的攻击工具,比如SqlExec,如图x.1所示,SuperSQLEXEC,如图x.2所示,以及SQL综合利用工具,如图x.3所示。

DSC0000.gif

x.1 SqlExec运行界面



DSC0001.gif

x.2 SuperSQLEXEC运行界面



DSC0002.gif

x.3 SQL综合利用工具




这三款软件相对来讲SQL综合利用工具的功能更强些,因为它可以利用漏洞上传文件,这样我们就可以上传木马程序,然后执行。

可是在实际操作中,情况并不象我们的那样简单,我们上传木马程序后,一般都会被对方的杀毒软件杀掉。而且经过使用SQL事件探查器(可以通过安装Microsoft SQLServer获得)对SQL综合利用工具提交的SQL语句抓取发现,要使SQL综合利用工具上传功能成功完成,有个前提条件就是对方Microsoft SQLServer中的存储过程xp_cmdshell没有被删除,如图x.4所示,否则无法成功执行,也就是说就算我们的木马可以不被查杀,无法执行上传功能也是没有用的。

DSC0003.gif

x.4 SQL事件探查器抓取的
SQL综合利用工具提交的SQL语句



删除xp_cmdshell的语句为:exec sp_dropextendedproc 'xp_cmdshell',同样我们也可以使用Microsoft SQLServer中的查询分析器连接到对方的Microsoft SQLServer,来恢复xp_cmdshell,语句为:exec sp_addextendedproc 'xp_cmdshell', 'Xplog70.dll',如图x.5所示。恢复后,我们就可以使用SQL综合利用工具的上传功能了,并可以执行上传的文件。

DSC0004.gif

x.5 查询分析器的界面


但如果对方把Microsoft SQLServer中的xplog70.dll文件删除或放到其他地方了, xp_cmdshell就无法执行我们发出的命令了。

难道就没有其他办法了?当然不是,在Microsoft SQLServer中有一系列与OLE相关的存储过程,这一系列的存储过程同Xp_cmdshell以及读取注册表系列的存储过程一样危险,但是其使用方法不象那些存储过程在网络上和书上介绍的那样多,所以被删除的可能性就小一些。这系列的存储过程有sp_OACreatesp_OADestroysp_OAGetErrorInfosp_OAGetPropertysp_OAMethodsp_OASetPropertysp_OAStop

使用查询分析器连接到对方的Microsoft SQLServer,在查询分析器中执行:

DECLARE @shell INT EXEC SP_OACREATE 'wscript.shell',@shell OUTPUT EXEC

SP_OAMETHOD @shell,'run',null, 'c:/WINNT/system32/cmd.exe /c net user test

12345 /add'--


再执行:DECLARE @shell INT EXEC SP_OACREATE 'wscript.shell',@shell OUTPUT

EXEC SP_OAMETHOD @shell,'run',null, 'c:/WINNT/system32/cmd.exe /c net

localgroup administrators test /add '--



就可以在对方的系统添加一个用户名为test,密码为12345,有管理员权限的用户。

如果对方把Xp_cmdshellSP_OACREATE等可执行系统命令的存储过程,以及与它们相对应的动态连接库文件删除了,我们还有一个办法,就是使用可以读取和修改注册表的存储过程来克隆对方系统的管理员用户。在查询分析器里运行下面的语句:

xp_regread 'HKEY_LOCAL_MACHINE','SAM/SAM/Domains/Account/Users/000001F4','F',


可以得到对方系统administrator的加密密码,然后复制,如图x.6所示。

DSC0005.gif

x.6 使用xp_regread得到加密密码



然后再执行:

xp_regwrite 'HKEY_LOCAL_MACHINE','SAM/SAM/Domains/Account/Users/000001F5

','F','reg_binary',0x(上面复制的那串字符),


如果对方有远程终端服务,那我们就可以用Guest用户登陆,密码为空,而且Guest的桌面与administrator的完全一样。

有很多种方法得到Microsoft SQLServer SA的密码,比如通过SnifferSA的加密密码,然后通过密码对照表(网上可以找到),得到SA的明文密码,再比如通过SQL注入得到SA密码或者使用sp_password(修改数据库用户密码的存储过程)修改得到SA密码,还有可以挂密码字典进行暴力破解。一旦被SA密码被入侵者得到,会对服务器的安全带来很大隐患,所以我们整理了一个解决方案提供给大家:

1.在确定不需要的情况下,删除xp_cmdshellxp_dirtreexp_regreadxp_regdeletekeyxp_regdeletevaluexp_regwritesp_oacreatesp_oadestroysp_oagetErrorInfosp_oagetPropertysp_oamethodsp_oasetPropertysp_oastop这些存储过程,移走相关的动态连接库文件,在需要的时候复制到原来的位置就可以了。
2.应用程序和网站在与后台的Microsoft SQLServer数据库连接时不要用SA等高权限的用户连接。
3.SA等高权限的用户起一个健壮的密码。

51CTO.COM 独家特稿,转载请注明出处及作者!】

【相关文章】

1. 系统安全之SA弱口令带来的安全隐患


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-294682-1-1.html 上篇帖子: Microsoft SQL Server 2005技术内幕系列书籍 下篇帖子: 书评 -- Inside Microsoft SQL Server 2005 : The Storage Engine
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表