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

实践内容

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

技术发展
古典命令行浏览器仅仅实现了简单的HTTP客户端、HTML解析与渲染功能。而现在呢,出现了高度重视用户使用感受的图形化界面浏览器软件。并逐步提供了对多媒体的支持。
现代Web浏览器要求能够理解并支持HTML和XHTML,CSS(Cascading Style Sheets)、ECMAScript以及W3C Document Object Model(DOM)等一系列标准。
安全威胁
现代浏览器由于要支持一系列标准规范,并满足大量的用户浏览需求,已经变得非常复杂和庞大。现代浏览器的复杂性意味着更多的错误和安全缺陷,也就导致了目前浏览器软件中存在着可被渗透攻击所利用的大量安全漏洞。
可扩展性,现代浏览器大多支持第三方扩展,而第三方扩展插件的开发过程缺乏安全保证,出现安全漏洞的情况更普遍。
连通性方面,现代浏览器始终工作在联网状态,一旦存在安全漏洞,很容易被网络上的威胁源所利用和攻击。
Web浏览环境的每个组件都面临着各种不同类型的安全威胁:

  • 针对传输网络的网络协议安全威胁
  • 针对Web浏览端系统平台的安全威胁
  • 针对Web浏览器软件及插件程序的渗透攻击威胁
  • 针对互联网用户的社会工程学攻击威胁
12.2 Web浏览端的渗透攻击威胁--网页木马

定义:由网络虚拟资产盗窃等地下经济链所驱动,通过利用Web浏览端的各种软件安全漏洞进行渗透攻击,向终端计算机上植入恶意程序,窃取网民用户的敏感信息和网络虚拟资产
从本质特性上是利用了现代Web浏览器软件中所支持的客户端脚本执行能力。针对Web浏览端软件安全漏洞实施客户端渗透攻击,从而取得在客户端主机的远程代码执行权限来植入恶意程序。
产生背景
网页木马是从恶意网页脚本所孕育和发展出来的。自从Web浏览器引入脚本语言后,黑客们就开始利用这种可以在客户端执行脚本代码的机会,通过编写一些恶意的网页脚本,来对Web浏览器及客户端计算机实施攻击。后来,黑客们进一步发掘出在浏览器端执行的恶意网页脚本能够利用客户端软件安全漏洞来获取到访问权的机会,在浏览端植入恶意程序或进行其他任意操作,从而发展出网页木马这种较新的网络攻击技术。
网络虚拟资产盗窃的“黑客”地下经济链中包括下列六种不用类型的参与者。
1.病毒编写者:技术大佬
2.黑站长/网络骇客:一些个人网站站长利用免费资源吸引了许多访问者,但其中部分黑站长经常出卖他们的顾客
3.信封盗窃者:信封是地下行话,指的是窃取的账号和密码信息。他们从病毒编写者哪里购买木马,从黑站长那里购买网站流量,而他们只需要利用这些资源就可以构建网页木马网络,从而窃取各种类型的信封。
4.虚拟资产盗窃者:他们对地下经济链有深入的了解,从信封盗窃者购买信封,然后登陆账号窃取虚拟资产,然后再换现
5.虚拟资产卖家:创建在线虚拟商店,构成了产业链的流通环节。
6.玩家:顾名思义,就是玩游戏的人,爱氪金。

网页挂马机制
在编写完成网页木马渗透攻击代码之后,为了使得能够有终端用户使用他们可能存在安全漏洞的Web浏览端软件来访问网页木马,攻击者还需要将网页木马挂接到一些拥有客户访问流量的网站页面上,而这一过程就被称为网页挂马。
网页挂马有如下机制:

  • 内嵌HTML标签
  • 恶意Script脚本
  • 内嵌对象链接
  • ARP欺骗挂马

混淆机制

  • 将代码重新排版
  • 通过大小写变换、十六进制编码、escape编码等对网页木马进行编码混淆
  • 加密工具对网页木马加密得到密文,然后使用脚本语言中包含的解密函数,对密文进行解密
  • 利用特殊函数,字符串运算混淆代码
  • 修改网页木马文件掩码欺骗反病毒软件

网页木马的检测与分析技术
基于特征码匹配的传统检测方法
基于统计与机器学习的静态分析方法
基于动态行为结果判定的检测分析方法
基于模拟浏览器环境的动态分析检测方法

网页木马防范措施
提升操作系统与浏览端平台软件的安全性,可以采用操作系统本身提供的在线更新以及第三方软件所提供的常用应用软件更新机制,来确保所使用的计算机始终处于一种相对安全的状态。另外安装与实时更新一款优秀的反病毒软件也是应对网页木马威胁必不可少的环节。同时要养成安全上网浏览的良好习惯。不要用主流浏览器上网等。

12.3网络钓鱼

网络钓鱼是社会工程学在互联网中广泛实施的一种典型攻击方式,通过大量发送声称来自于银行或其他知名机构的欺骗性垃圾邮件,意图引诱收信人给出个人敏感信息。
在黑客社区文化中,常常使用ph来代替f字母,因而网络钓鱼也被称为phishing攻击
网钓技术
链接操控,大多数的网钓方法使用某种形式的技术欺骗,旨在使一个位于一封电子邮件中的链接(和其连到的欺骗性网站)似乎属于真正合法的组织。拼写错误的地址或使用子网域是网钓所使用的常见伎俩。
过滤器规避,网钓者使用图像代替文字,使反网钓过滤器更难侦测网钓电子邮件中常用的文字。
网站伪造,一旦受害者访问网钓网站,欺骗并没有到此结束。一些网钓诈骗使用JavaScript命令以改变地址栏。这由放一个合法地址的地址栏图片以盖住地址栏,或者关闭原来的地址栏并重开一个新的合法的URL达成。
防护措施
不要在网上留下可以证明自己身份的任何资料,包括手机号码、身份证号、银行卡号码等。
不要在网站注册时透露自己的真实资料。

实践过程

实践一

首先使用metasploit工具找到这个ms06-014这个漏洞。然后设置负载为反向TCP(windows/metepreter/reverse_tcp)。然后设置靶机ip与攻击机ip如下。靶机是win2ks。攻击机是kali。

开始攻击,发现返回了一个IP地址,这就是恶意网页的ip。

在靶机上打开这个ip。发现有页面

攻击机上在监听,可以看到反馈消息

查看下建立的session,然后连接session,输入ipconfig,查看到了靶机的ip。攻击成功

实践二

前言:这个实验的那个网页已经打不开了。压缩包里只有一些hash值,许多exe文件。只能跳过前两个分析过程了。不过把参考答案作为图片贴在下面,辅助理解这个攻击过程。


然后开始实验,使用IDA PRO打开pps.exe文件。查看这个exe的字符串信息。我全截图下来了。从下图可以看出,这个exe通过访问网页的方式下载了一大堆exe文件,然后还有一些汉字,应该是注释信息把


从这个图看出来好像是个配置文件,貌似配置了IE

从这个图看到了即插即用,难不成这个恶意代码跟驱动程序也有关联。


防止XP在此GG,我就没运行这个exe。然后随便找了个数字.exe文件,对他脱壳后,用IDA PRO分析了一下,发现这个代码貌似跟防火墙也有瓜葛。

用360安全卫士扫描了一下这些文件,360识别出这事木马,点开详细信息,可以看到下图表述。

实践三

这个实践我用的还是实践1的那个漏洞,攻击过程不再赘述,直接进入正题,攻击成功后,靶机浏览那个网页会显示一串字母。查看下他的源码,结果如下,可以看到可读性很差,有很多空格。

使用反混淆工具还原一下JS代码,然后我将还原好的代码拷贝到VS Code里。
代码如下3张图:



然后开始分析这串代码,作者定义了个脚本,然后里面有些判断语句和异常语句,没啥用。直接看到function VBC,这里面应该是关键。看到下图,有个exe文件。既然是恶意代码,有可能恶意文件生成到本地并执行了。

查看下靶机的任务管理器,可以看到同名进程。

由于代码里还有一些形似注册码之类的东西,随便捞一串放百度,可以看到是恶意文件相关的。

实践四

这个实践用到了linux的chaosreader工具。安装方法就是sudo apt install chaosreader 这次实践是在kali虚拟机上做的。
列出在捕获文件中的应用层协议类型, 你认为攻击是针对哪个或哪些协议的?
首先用chaosreader -r suspicious-time.pcap打开suspicious-time.pcap文件。可以看到结果如下。有http,netbios,icmp协议。

使用cat index.text | grep -v '"' | grep -oE "([0-9]+\.){3}[0-9]+.*\)" | awk '{print $4,$5,$6}' | sort | uniq -c | sort -nr这条指令,根据数字可以看到是针对http协议进行攻击的

列出捕获文件中的 IP 地址、主机名和域名。从这些信息中你能猜出攻击场景的环境配置情况吗?
使用命令

  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

搜索下有哪些IP地址和域名在进行攻击

使用命令tshark -r suspicious-time.pcap | grep 'NB.*20\>' | sed -e 's/<[^>]*>//g' | awk '{print $3,$4,$10}' | sort -u筛选出 NBNS 协议,我们知道 NBNS 协议的作用是基于 NetBIOS 名称访问的网络上提供主机名和地址映射方法,也就是提供主机名称。从图中可以看到四个ip地址的主机分别映射的主机名是相同的

使用命令tshark -r suspicious-time.pcap | grep 'NB.*1e\>' | sed -e 's/<[^>]*>//g' | awk '{print $3,$4,$9}' | sort -u可以看到这四个 ip 地址的主机在同一个工作组

此时通过wireshark筛选下arp协议,可以看到这四个地址对应的mac是不同的

通过上述分析,可以推断这四台主机相同的(或者克隆的),但具有四个网卡,那么攻击场景的环境应该是在 VM 环境中。
具体如下:
服务:10.0.2.2, 10.0.3.2, 10.0.4.2, 10.0.5.2(DHCP 服务和网关),192.168.1.1(DNS 服务)。
受害者:10.0.2.15, 10.0.3.15, 10.0.4.15,10.0.5.15。
模拟被侵入主机:192.168.56.50 ( “rapidshare.com.eyu32.ru”)、192.168.56.51(“shop.honeynet.sg”)。
攻击者:192.168.56.52( “sploitme.com.cn”)。
列出捕获文件中的所有网页页面, 其中哪些页面包含了可疑的、可能是恶意的JavaScript 脚本代码?谁在连接这些页面?请描述恶意网页的攻击目的?
打开session_0006.part_01.html发现了如下界面,这应该是一个钓鱼网站,显然是恶意创建的对应的就是rapidshare.com.eyu32.ru/login.php。

找到session_0007.part_02.html,发现 404 NotFound 了

根据资料提示再查看session_0032.part_01.html,会提示网站受损。

请给出攻击者执行攻击动作的概要描述。
攻击者将恶意 javascript 代码注入指向sploitme.com.cn/?click=X的隐藏iframe。当访问者查看这些页面时,它们首先被重定向到sploitme.com.cn/fg/show.php?s=X,该页面通过302 FOUND标头重定向到伪造的404页面(数据包63、174、366)。然后在该页面中,检查用户代理字符串,着陆点和其他参数,并(show.php)发出另一个javascript代码,该代码尝试各种攻击以在受害者的计算机中执行代码。如果任何漏洞利用成功,则客户端的计算机将下载并执行位于sploitme.com.cn/fg/load.php?e=X的文件,恶意软件访问www.honeynet.org。
攻击者引入了哪些技巧带来了困难?
对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压缩,不会以明文显示
攻击者的目标是哪个操作系统?哪个软件?哪个漏洞?如何组织?
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
shellcode执行了哪些操作?比较他们之间MD5的差异?
Shellcode的执行过程:Shellcode获取系统临时文件路径,加载urlmon.dll,从URLhttp://sploitme.com.cn/fg/load.php?e=1检索可执行文件并执行。Shellcode之间的唯一区别是对load.php脚本的请求中的e变量,该变量指定发送恶意软件可执行文件。

Shellcode 执行了哪些动作?请列出 Shellcode 的 MD5,并比较它们之间的差异?
Shellcode获取系统临时文件路径,加载urlmon.dll,从 URL http://sploitme.com.cn/fg/load.php?e=1检索可执行文件,然后执行它。 Shellcode 之间的唯一区别是对load.php脚本的请求中的e变量,该变量指定发送恶意软件可执行文件。
在攻击场景中有二进制可执行恶意代码参与吗?它们的目的是什么?
有。目的是在受害者主机上通过 Internet Explorer 加载 www.honeynet.org

学习感想和体会

这次实践多而复杂。做起来还是挺吃力的。好在研读给的资料以及学习同学的博客。大部分问题还是解决了。实践四我要慢慢分析一下。有点复杂。

学习中遇到的问题及解决

问题:session看不到
选择靶机为win2ks就可以看到了

参考文献

《网络攻防技术与实践》(诸葛建伟著)
《网络挂马分析实践参考(上、下)》
同学博客

posted @ 2020-05-20 23:22  不摸鱼  阅读(302)  评论(0编辑  收藏  举报