攻击浏览器漏洞
Web浏览器时渲染和还原页面信息的应用程序,如果浏览器打开的页面含有触发漏洞的恶意代码,那么我们就有机会控制浏览器的下一步动作,执行payload。
Aurora攻击
2010年,Aurora攻击利用了一个存在于当时IE浏览器中尚未修复的0day漏洞。
环境:
实验的winxp靶机上有安装IE浏览器且没有安装Aurora的漏洞更新补丁。
kali:192.168.17.129
winxp:192.168.17.130
1.设置模块
我们利用meatasploit的Aurora模块攻击xp主机的浏览器并控制主机。
use exploit/windows/browser/ms10_002_aurora
- srvhost:设置服务器的本地IP
- srvport:默认值8080,服务器本地的端口
- uripath:指定恶意网页的uri,如果不指定则随机一个url
设置模块选项:
payload选项默认已设置好,uripath选项未指定。
metasploit生成一个url:http://192.168.17.129:8080/IIFIcODL
2.访问
接着使用winxp的IE浏览器访问该上述生成的地址。
kali主机成功建立会话:
aurora漏洞攻击程序的可靠性要相对低一些,如果第一次没能成功建立会话,那么需要让winxp多访问几次url。
会话建立之后,metasploit不会自动切换到meterpreter会话,因此需要使用
sessions -i [会话id] :会话id在上图最后一句。
切换到meterpreter会话。
到此,我们利用浏览器漏洞成功获取了xp主机的控制权。
然而,挑战才刚刚开始。
3.会话关闭
在我们获得控制权之后,我们切换到xp主机会发现。此时IE浏览器已经停止响应了。
这是因为我们刚刚进行的攻击操作会导致浏览器异常。
正常情况下,如果用户访问浏览器异常,那么用户会选择关闭浏览器重新打开。
那么关闭浏览器的同时,我们的meterpreter会话也随之消失。因为meterpreter的payload仅存在于被攻击进程的内存中。一旦用户关闭或者浏览器崩溃,我们的会话也会被关闭,也就意味着我们失去了控制权。
显然,这种情况是我们不希望出现的。
4.会话迁移
我们得想办法在IE浏览器在被关闭的情况下仍然保持连接。
方法就是我们在会话建立的时候使用迁移技术生成一个新的进程,并将meterpreter会话迁移到这个新进程中。
为了我们不需要在攻击机前守株待兔等待用户访问恶意链接,我们需要使用脚本自动的将会话进行迁移。
本例选用的脚本是:migrate.rb
kali脚本文件目录:/usr/share/metasploit-framework/scripts/meterpreter
migrate脚本的作用是meterpreter会话从一个进程转移到另一个进程的内存中。
migrate 的选项:
-f:启动一个新的进程并将meterpreter迁移到这个新进程当中
-p:指定pid,将meterpreter迁移到指定pid的进程中
-n:指定名称,将meterpreter迁移到指定名称的进程中
-k:关闭原生进程
show advanced:显示模块或payload的高级参数
要让migrate迁移脚本自动进行,我们需要选用autorunscript 参数。
如下设置我们就能在用户访问链接的时候自动执行迁移脚本。
在winxp访问恶意链接的时候,migrate脚本生成了notepad.exe进程,并将会话迁移到这个进程。所以,在浏览器退出时,我们的会话连接不会中断。
虽然自动迁移是一个不错的技术,但是迁移过程仍然需要花费几秒时间。对于用户来说,这几秒时间足够关闭浏览器终止会话。
但是,meterpreter还有更高级的选项 prependmigrate,它耗时更少,从而确保payload能够及时执行。
5.终止metasploit后台程序
jobs
kill [id]
有更高级的选项 prependmigrate,它耗时更少,从而确保payload能够及时执行。
5.终止metasploit后台程序
jobs
kill [id]