浏览器进犯结构BeEF Part 1

访客6年前黑客资讯1248

笔者发现国内很少有体系介绍BeEF结构的文章,所以笔者决议写一个系列。内容触及进犯浏览器的技能,首要介绍这些技能的原理,并怎么操作BeEF来完成,不触及浏览器自身缝隙(门槛太高,笔者有心无力)。
准备常识
在看这个系列之前,读者更好要有必定常识储藏。首先是对HTTP协议(CORS、 CSP等)要有必定的了解,其次是了解Web安全的常见进犯技能的原理和防护办法(比方XSS、CSRF、SQL inject等), 最终假如读者懂javascript言语就更好(可选,笔者的js也不咋地)。笔者以为学习BeEF结构的难度大约和学习Metasploit、 Burp Suite 的难度差不多。
下面给出学习这些常识的参阅:
HTTP 协议相关文档:  https://developer.mozilla.org/zh-CN/docs/Web/HTTP
浏览器进犯技能原理:  黑客攻防技能宝典浏览器实战篇 (书)
BeEF 结构相关文档:   https://github.com/beefproject/beef/wiki
同源战略
提到进犯浏览器,那么就必定要说同源战略(Same Origin Policy,  SOP)。 同源战略是用于约束不同来历的资源之间的交互。在浏览器上界说了关于不同的页面,假如他们的主机名、协议和端口都相同,即为同源。记住三个要素主机名、协议和端口。来个比如:
http://www.A.com/index.html  的js是不能读/写 http://www.B.com/index.html, https://www.A.com/index.html,  http://www.A.com:8080/index.html 的内容。
BeEF结构
BeEF( The Browser Exploitation Framework) 是由Wade Alcorn 在2006年开端创立的,至今还在保护。是由ruby言语开发的专门针对浏览器进犯的结构。这个结构也归于cs的结构,详细能够看下图:

zombie(僵尸)即受害的浏览器。zombie是被hook(勾连)的,假如浏览器拜访了有勾子(由js编写)的页面,就会被hook,勾连的浏览器会履行初始代码回来一些信息,接着zombie会每隔一段时间(默以为1秒)就会向BeEF服务器发送一个恳求,问询是否有新的代码需求履行。BeEF服务器本质上就像一个Web运用,被分为前端UI, 和后端。前端会轮询后端是否有新的数据需求更新,一起前端也能够向后端发送指示, BeEF持有者能够经过浏览器来登录BeEF 的后台办理UI。
BeEF 装置和装备
BeEF 需求ruby 2.3 + 和 SQLite (或许mysql/postgres)。
在kali下运用BeEF
kali默许现已装置BeEF了。BeEF是Favorites 菜单中的一个(能够看出它的受欢迎程度和位置了),其标志是一个蓝色的公牛。指令是beef-xss:

翻开五秒后,它还会运用浏览器翻开办理页面的UI,默许帐号暗码是:beef/beef,默许办理页面的UI 地址是:http://127.0.0.1:3000/ui/panel
kali现已把beef-xss做成服务了,引荐运用systemctl 指令来发动或封闭beef服务器
systemctl start beef-xss.service    #敞开beefsystemctl stop beef-xss.service     #封闭beefsystemctl restart beef-xss.service  #重启beef
在ubuntu17.10中装置BeEF
假如仅仅作为测验或许学习,运用kali中beef就现已足够了。假如是期望在实在环境中运用,那么就需求一台具有独立ip的主机(能被拜访),下面笔者介绍在一台vps,体系是ubuntu 17.10体系中装置的进程, 假如没有vps, 能够越过这一部分。
首先在vps中,初始用户一般是root。root是无法装置某些ruby的一些扩展包(考虑到安全问题),所以需求一个降权的用户。
#创立一个beef的用户
useradd -m -d /home/beef -s /bin/bash beef
#设置beef的暗码,更好运用强暗码
passwd beef
#把beef用户参加sudo, root 组
usermod -aG root,sudo beef
#转到beef用户
su beef
接着就是装置beef了
#进入家目录
cd
#获取源文件
wget https://github.com/beefproject/beef/archive/master.zip
sudo apt update && sudo apt upgrade -y && sudo apt install unzip ruby ruby-dev -y
#解压master.zip
unzip master.zip
cd beef-master
#装置beef
./install
笔者在装置进程中遇到/var/lib/gems/2.3.0, /usr/local/bin 这两个目录没有写权限的过错,下面是解决办法:
sudo chmod g+w /var/lib/gems/2.3.0
sudo chmod g+w /usr/local/bin
#再次运转
./install
环境不同或许读者会遇到其他过错。遇到过错能够先看一下过错信息,看看能否自行解决,假如不可,那么就查找网上协助。在互联网中,想要找一个问题的答案,运用过错信息来搜索往往是最快的。
把beef从sudo, root 组中移除:
#运转sudo chmod g-w /var/lib/gems/2.3.0 && sudo chmod g-w /usr/local/bin
sudo gpasswd -d beef root && gpasswd -d beef sudo
最终运转beef, 主张别运用root来运转beef服务器, 已然现已创立了一个id为beef的用户,那么今后都以这个用户来运转beef服务器会更好。

[1] [2]  黑客接单网

相关文章

怎样使用追寻代码来发现网站之间的“相关”

前些年Lawrence Alexander颁发了一篇使用Google Analytics查找网页之间的联络联络的文章,客岁,我也宣告了一个关于若何使用Python自动开掘信息,然后将其可视化的帖子,不...

根底事情呼应中的Volatility作业流程

最近,我发现自己需求对完好内存转储进行一些查询。通过一段时间的搜索,我发现了Volatility-Labs的这篇文章,依据其间的辅导办法,我能够很好的来评价内存转储。当然,你或许会有更好、更深度的内存...

SCP指令注入

我最近正在研讨Java文件传输,碰到了一些风趣的问题。这些问题是我在看到一篇博客中的几个示例代码中发现的。这篇文章描述了用Java履行SCP指令的体系,运用的是盛行的JSch库。当我通读整个代码之后,...

运用Burp的intruder功用测验有csrf维护的应用程序

许多Web运用会有避免跨站恳求假造的战略,比方经过request恳求传一个当时页面有用或许当时会话有用的参数(假如他们没有,那就很值得研讨)。这些参数用来证明这个恳求是从预订用户宣布的,而不是进犯者那...

恣意用户暗码重置(三):用户混杂

在逻辑缝隙中,恣意用户暗码重置最为常见,或许出现在新用户注册页面,也或许是用户登录后重置暗码的页面,或许用户忘掉暗码时的暗码找回页面,其间,暗码找回功用是重灾区。我把日常浸透过程中遇到的事例作了缝隙成...

使用“进程注入”完成无文件复生 WebShell

上周末,一个好兄弟找我说一个很重要的方针shell丢了,这个shell之前是经过一个S2代码履行的缝隙拿到的,现在缝隙还在,不过web目录悉数不可写,问我有没有办法搞个webshell持续做内网。正好...