网页木马的源码分析与处理方法
2018-08-11肖光华
◆肖光华
网页木马的源码分析与处理方法
◆肖光华
(江苏城乡建设职业学院 江苏 213147)
随着互联网技术的迅猛发展,网络上的黑客技术也越来越隐蔽和多样化,其中网页木马攻击已经成为威胁互联网安全的主要因素。本文通过分析网页源码的方式探讨了网页木马的识别技术,给出了处理网页木马的方法,对于熟悉网页代码的人来说是一种简单、安全、有效、识别率高的方式。
网页木马;源码;黑客
0 引言
随着互联网的飞速发展,越来越多的用户都通过浏览器访问互联网的数据、图片、视频等信息,这种基于B/S模式的web程序被广泛应用同时,也带来了很多安全隐患。由于开发人员水平的参差不齐,亦或是安全意识不足,导致编写的代码不够严谨,特别是对于隐藏在互联网中的内部后台管理系统,往往都是出于便利而基于友好环境编写的,缺少必要的合法性判断,一旦被黑客发现后,很容易遭到攻击,其中,网页被挂马就是常见的攻击手段之一。网页被植入木马后会带来不堪设想的后果,不仅会给企业带来重要利益的损失,还会给网站用户带来很多潜在的危害。除了进行必要的系统加固,还需定期清除网页中的网页木马,虽然可以借助一些专业工具进行检测,但很难做到100%识别,这给网站管理员带来很大的困扰。基于此,本文主要通过分析网页源码的方式探讨了网页木马的识别,给出了处理网页木马的方法。
1 网页木马原理
网页木马其实是一段经黑客精心编写过的代码,它可以是独立的网页文件,也可以是以某种方式插入到普通网页中,用户在访问网页的同时会自动下载黑客设置好的木马并执行。其本质上是一个HTML网页,黑客利用浏览器的漏洞将木马或木马下载途径嵌入其中,当用户访问该网页时,一些木马程序、病毒等恶意程序就会随网页一并下载到用户电脑中,从而导致用户账户密码等私密信息泄露,整个电脑也被黑客连接控制。其工作原理如图1所示。
图1 木马工作原理
2 网页木马类型分析
网页木马被黑客植入网页中,并且没有语法错误,访问用户难以察觉,根据网站的编写语言,可以使asp、php、jsp等语言。通过浏览器下载的方式诱使用户下载布置在服务端的木马,因此这样的一段网页木马是很难被杀毒软件发现并查杀的。它作为黑客控制服务器的一条通道,比其它攻击方式更为隐蔽,因为网页木马不是真正的木马程序,应称为网页木马种植器,真正的木马是在黑客服务器端。
由于网页木马只是一段代码,只要不涉及语法错误或破坏原有网页代码的语言逻辑,网页木马可以放置在任意位置。
2.1 框架嵌入式网页木马
最常见的网页木马就是用iframe语句框架将木马嵌入网页中,符合HTML语言环境都可以执行该语句,代码如下,用户访问该网页时,iframe中嵌套的木马地址就会自动打开,但是由于它的长和宽都为“0”,所以很难察觉,非常具有隐蔽性。另一种代码为:
一般黑客根据实际情况调整cols和scrolling参数可以把木马地址网页和原网页做的十分相似,通过钓鱼的方式获取用户的敏感信息。
这里可提取“iframe”或“frame”字符串来分析识别,然后根据src中的地址判断是否是网页木马。
2.2 JS调用型网页木马
此类网页木马是一种是利用JavaScript脚本文件的调用原理进行的网页木马,黑客直接将 JavaScript 脚本代码写在网页中,当访问者浏览网页时,恶意的挂马脚本就会通过用户的浏览器悄悄地打开木马窗口,隐藏运行,比如将代码document.write("");保存成一个js文件并放在黑客服务器端,代码为或者根据环境写成:
document.write("
document.write("")
document.write("
也可以直接在网页中插入
这里可以提取“src”或“.js”字符串,对于请求地址是外域的JS脚本基本都是网页木马。
2.3 网页启动加载跳转木马
此类网页木马可以直接从原网页跳转至木马地址网页,木马直接被运行,或者诱骗用户输入某些敏感信息(如账户、密码等),并将提交的信息发送到黑客指定地方。比如代码为:,即网页启动时就跳转至黑客木马地址;或者通过meta标志跳转,如, 即网页一旦加载就立即跳转至木马地址,content=0表示0秒;此外也可以将木马植入CSS中,如background-image中加入木马URL地址,当网页背景图片被调用时下载木马;还可以直接将JAVA脚本植入网页中。
通常黑客木马源码直接写在网页上,因为这边很容易被识别,而是会通过注入手段,让网页远程调用外域的 JS 脚本,也就是黑客自己网站上包含有恶意代码的 JS 挂马文件,因此可以从这里入手进行识别。
2.4 伪装调用木马
此类木马是黑客利用图片或用户信任网站作为转移访问用户实现的一种方式。比如黑客将木马植入到图片中,再用代码调用执行,具有很高的隐蔽性,可以绕过许多工具的扫描监视。代码如;或者以网页嵌套的方式,貌似打开了正常的网页,其实打开了木马网址。
3 网页木马处理
3.1 工具介绍
(1)grep
在手工检测识别网页木马时,通常要利用字符串匹配工具确认木马所在位置,而grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,在一个或多个文件中搜索字符串,效率非常高。
(2)sed
sed 是一种流编辑器,它主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。尤其是当黑客大批量的将网页木马植入网页代码中时,sed工具以其强大的能力和简单的特性批量清除既定程式的网页木马,是一个非常实用的工具。
(3)网页编程语言
对于有一定网页编程基础的人来说,无论掌握哪一门编程语言(如asp、php、jsp、python等),同样可以通过编写脚本来批量修改文本中的字符串。
如果熟悉grep和sed使用方法,两种可以工具配合使用,通过自行编写一些批处理脚本来修改文件中的字符串可达到事倍功半的效果;如果不熟悉这两种工具,也可以通过编写脚本代码达到同样的效果。
3.2 处理方法
(1)字符串工具
通过提取特征字符串来识别网页木马。如通过grep工具提取特征字符串,具体命令为:grep -E "iframe|frame" *.asp,即检测当前目录下所有含iframe或frame字符串的asp文件,返回所在行的值;或者grep frame *.asp | grep src,即检测当前目录下既有frame字符串又有src字符串的asp文件,返回所在行的值。如果要检测子目录可以加上-S参数。
根据返回的结果可以将既定的木马格式字符串用sed工具批量删除,具体命令为:sed -i s/木马字符串//g ./*.asp,表示将所有asp文件中木马字符串全部删除,-i 表示操作的是文件,g表示一行中有多个木马字符串的时,都替换,而不是仅替换第一个。
grep和sed工具也可以配合使用,如sed -i s/木马字符串/ /g "grep -Sl木马字符串 *.asp",即将当前目录下(包括子目录)的所有asp文件中的木马字符串删除,""括起来的grep命令,表示将grep命令的的结果作为操作文件,-l表示仅列出符合条件的文件名,用来传给sed命令做操作。此外,也可以编辑一些批处理脚本来批量执行相关的命令。
(2)网页编程
以asp语言为例,总体思路就是通过循环遍历的方式对目录中每一个文件内容进行字符串匹配,根据得到的结果做相应的处理。
利用FSO(文件系统对象)组件,可以直接调用所在文件系统进行操作(如增、删、改)。核心代码如下所示:
<%
'On Error Resume Next
Function BianLi(Path) '遍历递归搜索所有文件
Dim fs,ObjFolder,ObjFile 'Fso对象,子目录对象,文件对象
Set fs=Server.CreateObject("scripting.filesystemObject") '创建读写对象
For Each ObjFile in fs.GetFolder(Path).Files '读取当前目录下的文件
if right(ObjFile.Name,4)=".asp" then
Response.Write ObjFile.Name&"
"
End If
Next
For Each ObjFolder In fs.GetFolder(Path).SubFolders '读取子目录
BianLi(Path & "" & ObjFolder.Name) '调用递归搜索子目录完整路径
Next
End Function
%>
该代码表示递归搜索系统路径目录下(包括子目录)所有asp文件并返回文件的名称。根据得到结果嵌套循环读取文件内容,匹配相应的字符串,核心代码如下所示:
<%
set fs=server.createobject("scripting.filesystemobject")
file=server.mappath("filename")
set txt=fs.opentextfile(file,1,true)
Do while not txt.atendofstream
line=txt.readline
line=Replace(line,"<%","")
line=Replace(line,"%"&">","")
response.write line & "
" ‘插入字符串处理代码
loop
%>
该代码逐行读取数据,通过instr和relpace等函数操作相应的字符串达到处理网页木马的效果。根据平时经验的积累,把所遇到的木马放入字典库,定期执行一下脚本,确保网站的安全。
4 结束语
随着防毒技术的发展,黑客的技术手段也会越来越高明,在做好系统加固的基础上很可能还会出现更隐蔽的网页木马,但是只要熟悉网页源码,经过认真分析,相信这些网页木马都会无所遁形。
[1]张慧琳,邹维,韩心慧.网页木马机理与防御技术[J].软件学报,2013.
[2]孙汇中.网页木马检测关键技术研究[D].北方工业大学,2016.
[3]位爱伶.WEB木马检测技术研究[D].哈尔滨工程大学,2016.
江苏城乡建设职业学院校级课题(编号:2017KYC13)。