Microsoft SQL Server SA弱口令攻防实战

 
   | |

导读:本文介绍Microsoft SQL Server SA弱口令攻防实战。在网络中Microsoft SQLServer的入侵最常见的就是利用SA弱口令入侵了,核心内容是利用Microsoft SQLServer中的存储过程获得系统管理员权限。

关键词:SQL Server 弱口令 入侵 存储过程 权限 系统管理员

 
正在加载数据...

  Microsoft SQLServer是一个c/s模式的强大的关系型数据库管理系统,应用领域十分广泛,从网站后台数据库到一些MIS(管理信息系统)到处都可以看到它的身影。我们都知道,在网络中Microsoft SQLServer的入侵最常见的就是利用SA弱口令入侵了,而核心内容就是利用Microsoft SQLServer中的存储过程获得系统管理员权限,那到底什么是存储过程?为什么利用它可以获得系统管理员权限?

  存储过程是存储在SQLServer中的预先写好的SQL语句集合,它分为三类:系统提供的存储过程,用户定义的存储过程和扩展存储过程。

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

  SA是Microsoft 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所示。

SQL Server SA弱口令攻防 1
图x.1  SqlExec运行界面

SQL Server SA弱口令攻防 2

图x.2  SuperSQLEXEC运行界面


SQL Server SA弱口令攻防 3 
 
图x.3  SQL综合利用工具


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

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

SQL Server SA弱口令攻防 4

图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综合利用工具的上传功能了,并可以执行上传的文件。

SQL Server SA弱口令攻防 5

图x.5  查询分析器的界面

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

  难道就没有其他办法了?当然不是,在Microsoft SQLServer中有一系列与OLE相关的存储过程,这一系列的存储过程同Xp_cmdshell以及读取注册表系列的存储过程一样危险,但是其使用方法不象那些存储过程在网络上和书上介绍的那样多,所以被删除的可能性就小一些。这系列的存储过程有 sp_OACreate,sp_OADestroy,sp_OAGetErrorInfo,sp_OAGetProperty,sp_OAMethod,sp_OASetProperty,sp_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_cmdshell、SP_OACREATE等可执行系统命令的存储过程,以及与它们相对应的动态连接库文件删除了,我们还有一个办法,就是使用可以读取和修改注册表的存储过程来克隆对方系统的管理员用户。在查询分析器里运行下面的语句:

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

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

SQL Server SA弱口令攻防 6

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

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

原文出处:http://netsecurity.51cto.com/art/200710/58206.htm
 
来源:51cto    作者:小王    
 
 
 
 
 

密码管理

 
为应对中途相遇攻击应采取怎样的加密策略?使用双密匙TDES(三重数据加密标准)中途相遇攻击能得逞吗?EK1(EK2(EK2(M)))的加密方式如何?请听安全专家的分析……
 
黑客是如何破解操作系统密码的?我们应如何在企业里防范密码破解行为的发生?本文邀请到了TT安全专家为我们解答这一问题,他将为我们介绍防范密码破解的策略……
 
在加密技术中“端到端加密技术”和“标记化技术”都是比较理想的解决方案,但每种方案都有各自的优缺点,企业在技术投资之前需要仔细考虑,权衡利弊……
 
很多安全人员可能都会遇到这种问题:如何评估登录用户的密码强度。有什么工具可以达到这一目的?TT安全专家为我们判定网站密码强度提供了一些有效的方法……
 
为使数据具备一个额外的安全度,我们可以选择性的使用加密技术。如今加密技术的类型多种多样,如何选取最佳的加密技术就成了企业首先要考虑的问题……

热门技术手册排行

 

虚拟专用网络 VPN(Virtual Private Network )能通过公用网络Internet建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定的隧道。VPN是对企业内部网的扩展,它可以帮助远程用户、公司分支机构、商业伙伴及供应商同公司的内部网建立可信的安全连接,并保证数据的安全传输。许多公司使用VPN向公司外部的员工提供企业网络接入。本手册将围绕VPN进行全方位的讲解。

 

“最佳实践”来自英文Best Practice。维基百科对最佳实践的定义是一个管理学概念,认为存在某种技术、方法、过程、活动或机制可以使生产或者管理实践的结果达到最优,并减少出错的可能性。学习应用IT企业安全的最佳实践,其实就是借鉴别人成功的经验,让自己在保护企业安全方面少走弯路。在本手册中,将集合IT业内关于企业安全的最佳实践,并不断更新,以期在企业安全防护方面提供帮助。

 

虚拟化是数据中心的流行技术,它起源于20世纪60年代。它是把昂贵的计算机资源的利用最大化的方式。典型的服务器的利用率不足40%,虚拟化可以更有效地利用技术资源,并节约固定费用。虚拟化的最大优势是,它允许管理员从中央区域为个人电脑和客户设备提供软件。虚拟化不需要管理员对一般任务进行分别考虑。服务器的关机可以带动多用户的关机。

 

黑客策略和技术一直都在进步。黑客还在继续开发新的攻击工具和黑客方法,来恶意访问系统并攻击你的网络,这样企业在开发和采取恰当的方法防御黑客的攻击就变得非常困难。《黑客攻击技术和策略》的技术指南将介绍黑客的内心想法,并帮助你理解恶意攻击者的动机,也提供了一些黑客攻击具体信息的方式,采用的方法以及企业应该采用的保护敏感数据的方法。这里将会提供大量黑客技术和策路的信息,例如允许黑客获取网络系统或者文件访问的系统特征探测。

 

假如你正在寻找一个漏洞扫描器,你可能已经遇到了大量的非常昂贵的商业解决方案,这些方案都有一长串的性能和优点。不幸的是,如果你和我们之中大部分人的情况一样的话,你一般根本没有运行这些奇特的系统的预算。你可能已经退而求其次,转向考虑使用像SATAN或Saint的免费工具。然而,你可能觉得使用这些工具是一种折衷的办法,因为它们的性能设置不能与商业解决方案相比。这时候你就应该学会使用Nessus! 2005年12月Nessus背后的公司Tenable Network Security Inc.发布了Nessus 3,引进了对该产品的全面检查。在写这篇文章时候的最近版本,Nessus 3.2是在2008年3月发布的。Nessus现在可以在多种平台上使用,包括Windows、各种版本的Linux、FreeBSD、Solaris和Mac OS X。以下是这次Nessus3中的重大变化: 下面将介绍如何使用Nessus工具以及Nessus工具的更新。

查看更多
 
 

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
登录Email
请输入您的登录Email
密码
下次自动登录