Compare commits

..

1 Commits

Author SHA1 Message Date
wheatley
73d2cc3c57 Update github_actions.yml 2023-09-24 21:31:45 +10:00
1338 changed files with 25668 additions and 28999 deletions

View File

@@ -1,8 +1,3 @@
---
name: Bug report
about: Report a bug to help us improve BeEF
---
## First Steps ## First Steps
1. Confirm that your issue has not been posted previously by searching here: https://github.com/beefproject/beef/issues 1. Confirm that your issue has not been posted previously by searching here: https://github.com/beefproject/beef/issues
@@ -31,7 +26,6 @@ about: Report a bug to help us improve BeEF
2. Update `client_debug` to `true` 2. Update `client_debug` to `true`
3. Retrieve browser logs from your browser's developer console (Ctrl + Shift + I or F12 depending on browser) 3. Retrieve browser logs from your browser's developer console (Ctrl + Shift + I or F12 depending on browser)
4. Retrieve your server-side logs from `~/.beef/beef.log` 4. Retrieve your server-side logs from `~/.beef/beef.log`
* If you have a kali (beef-xss) problem, you can submit a bug here: * If using **beef-xss** logs found with `journalctl -u beef-xss`
https://www.kali.org/docs/community/submitting-issues-kali-bug-tracker/
**If we request additional information and we don't hear back from you within a week, we will be closing the ticket off.** **If we request additional information and we don't hear back from you within a week, we will be closing the ticket off.**

View File

@@ -1,5 +0,0 @@
blank_issues_enabled: false
contact_links:
- name: Questions / Support
url: https://github.com/beefproject/beef/wiki
about: Please check the wiki before opening an issue.

View File

@@ -1,26 +0,0 @@
name: Dependabot auto-merge
on:
pull_request:
branches:
- master
permissions:
contents: write
pull-requests: write
jobs:
dependabot:
runs-on: ubuntu-latest
if: github.event.pull_request.user.login == 'dependabot[bot]' && github.repository == 'beefproject/beef'
steps:
- name: Dependabot metadata
id: metadata
uses: dependabot/fetch-metadata@v2
with:
github-token: "${{ secrets.GITHUB_TOKEN }}"
- name: Enable auto-merge for Dependabot PRs
if: success() && (steps.metadata.outputs.update-type == 'version-update:semver-minor' || steps.metadata.outputs.update-type == 'version-update:semver-patch')
run: gh pr merge --auto --merge "$PR_URL"
env:
PR_URL: ${{ github.event.pull_request.html_url }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -4,7 +4,14 @@ on:
pull_request_target: pull_request_target:
branches: [ master ] branches: [ master ]
jobs: jobs:
approve:
runs-on: ubuntu-latest
steps:
- name: Approve
run: echo For security reasons, all pull requests need to be approved first before running any automated CI.
ubuntu-job: ubuntu-job:
name: 'BrowserStack Test on Ubuntu' name: 'BrowserStack Test on Ubuntu'
runs-on: ubuntu-latest # Can be self-hosted runner also runs-on: ubuntu-latest # Can be self-hosted runner also
@@ -27,16 +34,17 @@ jobs:
local-identifier: random local-identifier: random
- name: 'Checkout the repository' - name: 'Checkout the repository'
uses: actions/checkout@v4 uses: actions/checkout@v2
with: with:
ref: ${{ github.event.pull_request.head.sha }} ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 2 fetch-depth: 2
- name: 'Setting up Ruby' - name: 'Setting up Ruby'
uses: ruby/setup-ruby@v1 uses: ruby/setup-ruby@v1
# Ruby version is defined in .ruby-version file with:
ruby-version: 3.0.3 # Not needed with a .ruby-version file
- name: 'Update and Install Dependencies' - name: 'Update and Install Dwpendencies'
run: | run: |
sudo apt update sudo apt update
sudo apt install libcurl4 libcurl4-openssl-dev sudo apt install libcurl4 libcurl4-openssl-dev
@@ -52,4 +60,4 @@ jobs:
- name: 'BrowserStackLocal Stop' # Terminating the BrowserStackLocal tunnel connection - name: 'BrowserStackLocal Stop' # Terminating the BrowserStackLocal tunnel connection
uses: browserstack/github-actions/setup-local@master uses: browserstack/github-actions/setup-local@master
with: with:
local-testing: stop local-testing: stop

View File

@@ -21,10 +21,10 @@ jobs:
- uses: actions/stale@v5 - uses: actions/stale@v5
with: with:
repo-token: ${{ secrets.GITHUB_TOKEN }} repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-stale: 14 days-before-stale: 7
days-before-pr-stale: 29 days-before-pr-stale: 14
days-before-close: 11 days-before-close: 7
days-before-pr-close: 31 days-before-pr-close: 14
stale-issue-message: 'This issue as been marked as stale due to inactivity and will be closed in 7 days' stale-issue-message: 'This issue as been marked as stale due to inactivity and will be closed in 7 days'
stale-pr-message: 'Stale pull request message' stale-pr-message: 'Stale pull request message'
stale-issue-label: 'Stale' stale-issue-label: 'Stale'

8
.gitignore vendored
View File

@@ -1,7 +1,5 @@
### BeEF ### ### BeEF ###
beef.db beef.db
beef.db-shm
beef.db-wal
beef.log beef.log
test/msf-test test/msf-test
extensions/admin_ui/media/javascript-min/ extensions/admin_ui/media/javascript-min/
@@ -27,9 +25,6 @@ coverage/
# BrowserStack # BrowserStack
local.log local.log
# Visual Studio Code
.vscode/
# The following lines were created by https://www.gitignore.io # The following lines were created by https://www.gitignore.io
### Linux ### ### Linux ###
@@ -131,6 +126,3 @@ node_modules/
# Generated files # Generated files
out/ out/
doc/rdoc/ doc/rdoc/
# Secrets for testing github actions locally
.secrets

View File

@@ -4,7 +4,7 @@ AllCops:
- 'tmp/**/*' - 'tmp/**/*'
- 'tools/**/*' - 'tools/**/*'
- 'doc/**/*' - 'doc/**/*'
TargetRubyVersion: <%= File.read(".ruby-version").strip[/^(\d+\.\d+)/, 1] || raise("Ruby version not found") %> TargetRubyVersion: 3.0
NewCops: enable NewCops: enable
Layout/LineLength: Layout/LineLength:

View File

@@ -1 +1 @@
3.4.7 3.0.3

View File

@@ -1,8 +1,3 @@
#
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com
# See the file 'doc/COPYING' for copying permission
#
########################################################################################################### ###########################################################################################################
########################################################################################################### ###########################################################################################################
## ## ## ##
@@ -15,7 +10,7 @@
########################################################################################################### ###########################################################################################################
# ---------------------------- Start of Builder 0 - Gemset Build ------------------------------------------ # ---------------------------- Start of Builder 0 - Gemset Build ------------------------------------------
FROM ruby:3.4.7-slim-bookworm AS builder FROM ruby:3.2.1-slim-bullseye AS builder
COPY . /beef COPY . /beef
@@ -27,14 +22,11 @@ RUN echo "gem: --no-ri --no-rdoc" > /etc/gemrc \
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
git \ git \
curl \ curl \
libssl-dev \
xz-utils \ xz-utils \
pkg-config \
make \ make \
g++ \ g++ \
libcurl4-openssl-dev \ libcurl4-openssl-dev \
ruby-dev \ ruby-dev \
libyaml-dev \
libffi-dev \ libffi-dev \
zlib1g-dev \ zlib1g-dev \
libsqlite3-dev \ libsqlite3-dev \
@@ -47,7 +39,7 @@ RUN echo "gem: --no-ri --no-rdoc" > /etc/gemrc \
# ---------------------------- Start of Builder 1 - Final Build ------------------------------------------ # ---------------------------- Start of Builder 1 - Final Build ------------------------------------------
FROM ruby:3.4.7-slim-bookworm FROM ruby:3.2.1-slim-bullseye
LABEL maintainer="Beef Project" \ LABEL maintainer="Beef Project" \
source_url="github.com/beefproject/beef" \ source_url="github.com/beefproject/beef" \
homepage="https://beefproject.com/" homepage="https://beefproject.com/"
@@ -64,10 +56,8 @@ RUN adduser --home /beef --gecos beef --disabled-password beef \
&& apt-get update \ && apt-get update \
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
curl \ curl \
wget \
espeak \
lame \
openssl \ openssl \
libssl-dev \
libreadline-dev \ libreadline-dev \
libyaml-dev \ libyaml-dev \
libxml2-dev \ libxml2-dev \

72
Gemfile
View File

@@ -1,34 +1,34 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
#gem 'simplecov', require: false, group: :test
gem 'net-smtp', require: false gem 'net-smtp', require: false
gem 'json' gem 'json'
gem 'eventmachine', '~> 1.2', '>= 1.2.7' gem 'eventmachine', '~> 1.2', '>= 1.2.7'
gem 'thin', '~> 2.0' gem 'thin', '~> 1.8'
gem 'sinatra', '~> 4.1' gem 'sinatra', '~> 3.0'
gem 'rack', '~> 3.2' gem 'rack', '~> 2.2'
gem 'rack-protection', '~> 4.2.1' gem 'rack-protection', '~> 3.0.5'
gem 'em-websocket', '~> 0.5.3' # WebSocket support gem 'em-websocket', '~> 0.5.3' # WebSocket support
gem 'uglifier', '~> 4.2' gem 'uglifier', '~> 4.2'
gem 'mime-types', '~> 3.7' gem 'mime-types', '~> 3.4', '>= 3.4.1'
gem 'execjs', '~> 2.10' gem 'execjs', '~> 2.9'
gem 'ansi', '~> 1.5' gem 'ansi', '~> 1.5'
gem 'term-ansicolor', :require => 'term/ansicolor' gem 'term-ansicolor', :require => 'term/ansicolor'
gem 'rubyzip', '~> 3.2' gem 'rubyzip', '~> 2.3'
gem 'espeak-ruby', '~> 1.1.0' # Text-to-Voice gem 'espeak-ruby', '~> 1.1.0' # Text-to-Voice
gem 'rake', '~> 13.3' gem 'rake', '~> 13.0'
gem 'activerecord', '~> 8.1' gem 'otr-activerecord', '~> 2.1', '>= 2.1.2'
gem 'otr-activerecord', '~> 2.6.0' gem 'sqlite3', '~> 1.6'
gem 'sqlite3', '~> 2.9' gem 'rubocop', '~> 1.56.3', require: false
gem 'rubocop', '~> 1.82.1', require: false
# Geolocation support # Geolocation support
group :geoip do group :geoip do
gem 'maxmind-db', '~> 1.4' gem 'maxmind-db', '~> 1.1', '>= 1.1.1'
end end
gem 'parseconfig', '~> 1.1', '>= 1.1.2' gem 'parseconfig', '~> 1.1', '>= 1.1.2'
@@ -50,8 +50,8 @@ end
# DNS extension # DNS extension
group :ext_dns do group :ext_dns do
gem 'async-dns', '~> 1.4' gem 'async-dns', '~> 1.3'
gem 'async', '~> 1.32' gem 'async', '~> 1.31'
end end
# QRcode extension # QRcode extension
@@ -61,30 +61,30 @@ end
# For running unit tests # For running unit tests
group :test do group :test do
gem 'test-unit-full', '~> 0.0.5' gem 'test-unit-full', '~> 0.0.5'
gem 'rspec', '~> 3.13' gem 'rspec', '~> 3.12'
gem 'rdoc', '~> 7.0' gem 'rdoc', '~> 6.5'
gem 'browserstack-local', '~> 1.4' gem 'browserstack-local', '~> 1.4'
gem 'irb', '~> 1.16' gem 'irb', '~> 1.8'
gem 'pry-byebug', '~> 3.11' gem 'pry-byebug', '~> 3.10', '>= 3.10.1'
gem 'rest-client', '~> 2.1.0' gem 'rest-client', '~> 2.1.0'
gem 'websocket-client-simple', '~> 0.6.1' gem 'websocket-client-simple', '~> 0.6.1'
# Note: curb gem requires curl libraries # curb gem requires curl libraries
# sudo apt-get install libcurl4-openssl-dev # sudo apt-get install libcurl4-openssl-dev
gem 'curb', '~> 1.2' gem 'curb', '~> 1.0', '>= 1.0.5'
# Note: selenium-webdriver 3.x is incompatible with Firefox version 48 and prior # selenium-webdriver 3.x is incompatible with Firefox version 48 and prior
# gem 'selenium' # Requires old version of selenium which is no longer available # gem 'selenium' # Requires old version of selenium which is no longer available
gem 'geckodriver-helper', '~> 0.24.0' gem 'geckodriver-helper', '~> 0.24.0'
gem 'selenium-webdriver', '~> 4.39' gem 'selenium-webdriver', '~> 4.12'
# Note: nokogiri is needed by capybara which may require one of the below commands # nokogiri is needed by capybara which may require one of the below commands
# sudo apt-get install libxslt-dev libxml2-dev # sudo apt-get install libxslt-dev libxml2-dev
# sudo port install libxml2 libxslt # sudo port install libxml2 libxslt
gem 'capybara', '~> 3.40' gem 'capybara', '~> 3.39'
end end
source 'https://rubygems.org' source 'https://rubygems.org'

View File

@@ -1,247 +1,191 @@
GEM GEM
remote: https://rubygems.org/ remote: https://rubygems.org/
specs: specs:
activemodel (8.1.1) activemodel (7.0.4.3)
activesupport (= 8.1.1) activesupport (= 7.0.4.3)
activerecord (8.1.1) activerecord (7.0.4.3)
activemodel (= 8.1.1) activemodel (= 7.0.4.3)
activesupport (= 8.1.1) activesupport (= 7.0.4.3)
timeout (>= 0.4.0) activesupport (7.0.4.3)
activesupport (8.1.1) concurrent-ruby (~> 1.0, >= 1.0.2)
base64
bigdecimal
concurrent-ruby (~> 1.0, >= 1.3.1)
connection_pool (>= 2.2.5)
drb
i18n (>= 1.6, < 2) i18n (>= 1.6, < 2)
json
logger (>= 1.4.2)
minitest (>= 5.1) minitest (>= 5.1)
securerandom (>= 0.3) tzinfo (~> 2.0)
tzinfo (~> 2.0, >= 2.0.5) addressable (2.8.4)
uri (>= 0.13.1) public_suffix (>= 2.0.2, < 6.0)
addressable (2.8.7)
public_suffix (>= 2.0.2, < 7.0)
ansi (1.5.0) ansi (1.5.0)
archive-zip (0.13.1) archive-zip (0.12.0)
io-like (~> 0.4.0) io-like (~> 0.3.0)
ast (2.4.3) ast (2.4.2)
async (1.32.1) async (1.31.0)
console (~> 1.10) console (~> 1.10)
nio4r (~> 2.3) nio4r (~> 2.3)
timers (~> 4.1) timers (~> 4.1)
async-dns (1.4.1) async-dns (1.3.0)
async-io (~> 1.15)
async-io (1.34.3)
async async
io-endpoint base64 (0.1.1)
base64 (0.3.0)
bigdecimal (3.3.1)
browserstack-local (1.4.3) browserstack-local (1.4.3)
byebug (12.0.0) byebug (11.1.3)
capybara (3.40.0) capybara (3.39.2)
addressable addressable
matrix matrix
mini_mime (>= 0.1.3) mini_mime (>= 0.1.3)
nokogiri (~> 1.11) nokogiri (~> 1.8)
rack (>= 1.6.0) rack (>= 1.6.0)
rack-test (>= 0.6.3) rack-test (>= 0.6.3)
regexp_parser (>= 1.5, < 3.0) regexp_parser (>= 1.5, < 3.0)
xpath (~> 3.2) xpath (~> 3.2)
coderay (1.1.3) coderay (1.1.3)
concurrent-ruby (1.3.5) concurrent-ruby (1.2.2)
connection_pool (2.5.4) console (1.16.2)
console (1.34.0) fiber-local
fiber-annotation curb (1.0.5)
fiber-local (~> 1.1)
json
curb (1.2.2)
daemons (1.4.1) daemons (1.4.1)
date (3.5.1) diff-lcs (1.5.0)
diff-lcs (1.6.2) domain_name (0.5.20190701)
domain_name (0.6.20240107) unf (>= 0.0.5, < 1.0.0)
drb (2.2.3)
em-websocket (0.5.3) em-websocket (0.5.3)
eventmachine (>= 0.12.9) eventmachine (>= 0.12.9)
http_parser.rb (~> 0) http_parser.rb (~> 0)
erb (6.0.1)
erubis (2.7.0) erubis (2.7.0)
espeak-ruby (1.1.0) espeak-ruby (1.1.0)
event_emitter (0.2.6) event_emitter (0.2.6)
eventmachine (1.2.7) eventmachine (1.2.7)
execjs (2.10.0) execjs (2.9.1)
fiber-annotation (0.2.0) fiber-local (1.0.0)
fiber-local (1.1.0)
fiber-storage
fiber-storage (1.0.1)
geckodriver-helper (0.24.0) geckodriver-helper (0.24.0)
archive-zip (~> 0.7) archive-zip (~> 0.7)
hashie (5.0.0)
hashie-forbidden_attributes (0.1.1)
hashie (>= 3.0)
http-accept (1.7.0) http-accept (1.7.0)
http-cookie (1.0.8) http-cookie (1.0.5)
domain_name (~> 0.5) domain_name (~> 0.5)
http_parser.rb (0.8.0) http_parser.rb (0.8.0)
i18n (1.14.7) i18n (1.12.0)
concurrent-ruby (~> 1.0) concurrent-ruby (~> 1.0)
io-console (0.8.2) io-console (0.6.0)
io-endpoint (0.15.2) io-like (0.3.1)
io-like (0.4.0) irb (1.8.1)
irb (1.16.0) rdoc
pp (>= 0.6.0) reline (>= 0.3.8)
rdoc (>= 4.0.0) json (2.6.3)
reline (>= 0.4.2) language_server-protocol (3.17.0.3)
json (2.18.0) matrix (0.4.2)
language_server-protocol (3.17.0.5) maxmind-db (1.1.1)
lint_roller (1.1.0) method_source (1.0.0)
logger (1.7.0) mime-types (3.4.1)
matrix (0.4.3) mime-types-data (~> 3.2015)
maxmind-db (1.4.0) mime-types-data (3.2023.0218.1)
method_source (1.1.0) mini_mime (1.1.2)
mime-types (3.7.0) minitest (5.18.0)
logger mojo_magick (0.6.7)
mime-types-data (~> 3.2025, >= 3.2025.0507)
mime-types-data (3.2025.0902)
mini_mime (1.1.5)
minitest (5.26.1)
mojo_magick (0.6.8)
msfrpc-client (1.1.2) msfrpc-client (1.1.2)
msgpack (~> 1) msgpack (~> 1)
msgpack (1.8.0) msgpack (1.6.1)
mustermann (3.0.4) mustermann (3.0.0)
ruby2_keywords (~> 0.0.1) ruby2_keywords (~> 0.0.1)
net-protocol (0.2.2) net-protocol (0.2.1)
timeout timeout
net-smtp (0.5.1) net-smtp (0.4.0)
net-protocol net-protocol
netrc (0.11.0) netrc (0.11.0)
nio4r (2.7.4) nio4r (2.5.8)
nokogiri (1.18.9-aarch64-linux-gnu) nokogiri (1.15.2-x86_64-linux)
racc (~> 1.4) racc (~> 1.4)
nokogiri (1.18.9-aarch64-linux-musl) otr-activerecord (2.1.2)
racc (~> 1.4) activerecord (>= 4.0, < 7.1)
nokogiri (1.18.9-arm-linux-gnu) hashie-forbidden_attributes (~> 0.1)
racc (~> 1.4) parallel (1.23.0)
nokogiri (1.18.9-arm-linux-musl)
racc (~> 1.4)
nokogiri (1.18.9-arm64-darwin)
racc (~> 1.4)
nokogiri (1.18.9-x86_64-darwin)
racc (~> 1.4)
nokogiri (1.18.9-x86_64-linux-gnu)
racc (~> 1.4)
nokogiri (1.18.9-x86_64-linux-musl)
racc (~> 1.4)
otr-activerecord (2.6.0)
activerecord (>= 6.0, < 9.0)
parallel (1.27.0)
parseconfig (1.1.2) parseconfig (1.1.2)
parser (3.3.10.0) parser (3.2.2.3)
ast (~> 2.4.1) ast (~> 2.4.1)
racc racc
power_assert (2.0.5) power_assert (2.0.3)
pp (0.6.3) pry (0.14.2)
prettyprint
prettyprint (0.2.0)
prism (1.7.0)
pry (0.15.2)
coderay (~> 1.1) coderay (~> 1.1)
method_source (~> 1.0) method_source (~> 1.0)
pry-byebug (3.11.0) pry-byebug (3.10.1)
byebug (~> 12.0) byebug (~> 11.0)
pry (>= 0.13, < 0.16) pry (>= 0.13, < 0.15)
psych (5.3.1) psych (5.1.0)
date
stringio stringio
public_suffix (6.0.2) public_suffix (5.0.1)
qr4r (0.6.2) qr4r (0.6.1)
mojo_magick (~> 0.6.5) mojo_magick (~> 0.6.5)
rqrcode_core (~> 1.0) rqrcode_core (~> 0.1)
racc (1.8.1) racc (1.7.1)
rack (3.2.4) rack (2.2.7)
rack-protection (4.2.1) rack-protection (3.0.6)
base64 (>= 0.1.0) rack
logger (>= 1.6.0) rack-test (2.1.0)
rack (>= 3.0.0, < 4)
rack-session (2.1.1)
base64 (>= 0.1.0)
rack (>= 3.0.0)
rack-test (2.2.0)
rack (>= 1.3) rack (>= 1.3)
rainbow (3.1.1) rainbow (3.1.1)
rake (13.3.1) rake (13.0.6)
rdoc (7.0.3) rdoc (6.5.0)
erb
psych (>= 4.0.0) psych (>= 4.0.0)
tsort regexp_parser (2.8.1)
regexp_parser (2.11.3) reline (0.3.8)
reline (0.6.3)
io-console (~> 0.5) io-console (~> 0.5)
rest-client (2.1.0) rest-client (2.1.0)
http-accept (>= 1.7.0, < 2.0) http-accept (>= 1.7.0, < 2.0)
http-cookie (>= 1.0.2, < 2.0) http-cookie (>= 1.0.2, < 2.0)
mime-types (>= 1.16, < 4.0) mime-types (>= 1.16, < 4.0)
netrc (~> 0.8) netrc (~> 0.8)
rexml (3.4.4) rexml (3.2.6)
rqrcode_core (1.2.0) rqrcode_core (0.2.0)
rr (3.1.2) rr (3.1.0)
rspec (3.13.2) rspec (3.12.0)
rspec-core (~> 3.13.0) rspec-core (~> 3.12.0)
rspec-expectations (~> 3.13.0) rspec-expectations (~> 3.12.0)
rspec-mocks (~> 3.13.0) rspec-mocks (~> 3.12.0)
rspec-core (3.13.6) rspec-core (3.12.1)
rspec-support (~> 3.13.0) rspec-support (~> 3.12.0)
rspec-expectations (3.13.5) rspec-expectations (3.12.2)
diff-lcs (>= 1.2.0, < 2.0) diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0) rspec-support (~> 3.12.0)
rspec-mocks (3.13.6) rspec-mocks (3.12.4)
diff-lcs (>= 1.2.0, < 2.0) diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0) rspec-support (~> 3.12.0)
rspec-support (3.13.6) rspec-support (3.12.0)
rubocop (1.82.1) rubocop (1.56.3)
base64 (~> 0.1.1)
json (~> 2.3) json (~> 2.3)
language_server-protocol (~> 3.17.0.2) language_server-protocol (>= 3.17.0)
lint_roller (~> 1.1.0)
parallel (~> 1.10) parallel (~> 1.10)
parser (>= 3.3.0.2) parser (>= 3.2.2.3)
rainbow (>= 2.2.2, < 4.0) rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 2.9.3, < 3.0) regexp_parser (>= 1.8, < 3.0)
rubocop-ast (>= 1.48.0, < 2.0) rexml (>= 3.2.5, < 4.0)
rubocop-ast (>= 1.28.1, < 2.0)
ruby-progressbar (~> 1.7) ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 4.0) unicode-display_width (>= 2.4.0, < 3.0)
rubocop-ast (1.48.0) rubocop-ast (1.29.0)
parser (>= 3.3.7.2) parser (>= 3.2.1.0)
prism (~> 1.4)
ruby-progressbar (1.13.0) ruby-progressbar (1.13.0)
ruby2_keywords (0.0.5) ruby2_keywords (0.0.5)
rubyzip (3.2.2) rubyzip (2.3.2)
rushover (0.3.0) rushover (0.3.0)
json json
rest-client rest-client
securerandom (0.4.1) selenium-webdriver (4.12.0)
selenium-webdriver (4.39.0)
base64 (~> 0.2)
logger (~> 1.4)
rexml (~> 3.2, >= 3.2.5) rexml (~> 3.2, >= 3.2.5)
rubyzip (>= 1.2.2, < 4.0) rubyzip (>= 1.2.2, < 3.0)
websocket (~> 1.0) websocket (~> 1.0)
sinatra (4.2.1) sinatra (3.0.6)
logger (>= 1.6.0)
mustermann (~> 3.0) mustermann (~> 3.0)
rack (>= 3.0.0, < 4) rack (~> 2.2, >= 2.2.4)
rack-protection (= 4.2.1) rack-protection (= 3.0.6)
rack-session (>= 2.0.0, < 3)
tilt (~> 2.0) tilt (~> 2.0)
slack-notifier (2.4.0) slack-notifier (2.4.0)
sqlite3 (2.9.0-aarch64-linux-gnu) sqlite3 (1.6.6-x86_64-linux)
sqlite3 (2.9.0-aarch64-linux-musl) stringio (3.0.5)
sqlite3 (2.9.0-arm-linux-gnu)
sqlite3 (2.9.0-arm-linux-musl)
sqlite3 (2.9.0-arm64-darwin)
sqlite3 (2.9.0-x86_64-darwin)
sqlite3 (2.9.0-x86_64-linux-gnu)
sqlite3 (2.9.0-x86_64-linux-musl)
stringio (3.2.0)
sync (0.5.0) sync (0.5.0)
term-ansicolor (1.11.3) term-ansicolor (1.7.1)
tins (~> 1) tins (~> 1.0)
test-unit (3.7.0) test-unit (3.5.7)
power_assert power_assert
test-unit-context (0.5.1) test-unit-context (0.5.1)
test-unit (>= 2.4.0) test-unit (>= 2.4.0)
@@ -258,89 +202,78 @@ GEM
test-unit (>= 2.5.2) test-unit (>= 2.5.2)
test-unit-runner-tap (1.1.2) test-unit-runner-tap (1.1.2)
test-unit test-unit
thin (2.0.1) thin (1.8.2)
daemons (~> 1.0, >= 1.0.9) daemons (~> 1.0, >= 1.0.9)
eventmachine (~> 1.0, >= 1.0.4) eventmachine (~> 1.0, >= 1.0.4)
logger rack (>= 1, < 3)
rack (>= 1, < 4) tilt (2.1.0)
tilt (2.6.1) timeout (0.4.0)
timeout (0.4.4) timers (4.3.5)
timers (4.4.0) tins (1.32.1)
tins (1.43.0)
bigdecimal
sync sync
tsort (0.2.0)
tzinfo (2.0.6) tzinfo (2.0.6)
concurrent-ruby (~> 1.0) concurrent-ruby (~> 1.0)
uglifier (4.2.1) uglifier (4.2.0)
execjs (>= 0.3.0, < 3) execjs (>= 0.3.0, < 3)
unicode-display_width (3.2.0) unf (0.1.4)
unicode-emoji (~> 4.1) unf_ext
unicode-emoji (4.2.0) unf_ext (0.0.8.2)
uri (1.1.1) unicode-display_width (2.4.2)
webrick (1.9.1) webrick (1.8.1)
websocket (1.2.11) websocket (1.2.9)
websocket-client-simple (0.6.1) websocket-client-simple (0.6.1)
event_emitter event_emitter
websocket websocket
xmlrpc (0.3.3) xmlrpc (0.3.2)
webrick webrick
xpath (3.2.0) xpath (3.2.0)
nokogiri (~> 1.8) nokogiri (~> 1.8)
PLATFORMS PLATFORMS
aarch64-linux-gnu x86_64-linux
aarch64-linux-musl
arm-linux-gnu
arm-linux-musl
arm64-darwin
x86_64-darwin
x86_64-linux-gnu
x86_64-linux-musl
DEPENDENCIES DEPENDENCIES
activerecord (~> 8.1)
ansi (~> 1.5) ansi (~> 1.5)
async (~> 1.32) async (~> 1.31)
async-dns (~> 1.4) async-dns (~> 1.3)
browserstack-local (~> 1.4) browserstack-local (~> 1.4)
capybara (~> 3.40) capybara (~> 3.39)
curb (~> 1.2) curb (~> 1.0, >= 1.0.5)
em-websocket (~> 0.5.3) em-websocket (~> 0.5.3)
erubis (~> 2.7) erubis (~> 2.7)
espeak-ruby (~> 1.1.0) espeak-ruby (~> 1.1.0)
eventmachine (~> 1.2, >= 1.2.7) eventmachine (~> 1.2, >= 1.2.7)
execjs (~> 2.10) execjs (~> 2.9)
geckodriver-helper (~> 0.24.0) geckodriver-helper (~> 0.24.0)
irb (~> 1.16) irb (~> 1.8)
json json
maxmind-db (~> 1.4) maxmind-db (~> 1.1, >= 1.1.1)
mime-types (~> 3.7) mime-types (~> 3.4, >= 3.4.1)
msfrpc-client (~> 1.1, >= 1.1.2) msfrpc-client (~> 1.1, >= 1.1.2)
net-smtp net-smtp
otr-activerecord (~> 2.6.0) otr-activerecord (~> 2.1, >= 2.1.2)
parseconfig (~> 1.1, >= 1.1.2) parseconfig (~> 1.1, >= 1.1.2)
pry-byebug (~> 3.11) pry-byebug (~> 3.10, >= 3.10.1)
qr4r (~> 0.6.1) qr4r (~> 0.6.1)
rack (~> 3.2) rack (~> 2.2)
rack-protection (~> 4.2.1) rack-protection (~> 3.0.5)
rake (~> 13.3) rake (~> 13.0)
rdoc (~> 7.0) rdoc (~> 6.5)
rest-client (~> 2.1.0) rest-client (~> 2.1.0)
rspec (~> 3.13) rspec (~> 3.12)
rubocop (~> 1.82.1) rubocop (~> 1.56.3)
rubyzip (~> 3.2) rubyzip (~> 2.3)
rushover (~> 0.3.0) rushover (~> 0.3.0)
selenium-webdriver (~> 4.39) selenium-webdriver (~> 4.12)
sinatra (~> 4.1) sinatra (~> 3.0)
slack-notifier (~> 2.4) slack-notifier (~> 2.4)
sqlite3 (~> 2.9) sqlite3 (~> 1.6)
term-ansicolor term-ansicolor
test-unit-full (~> 0.0.5) test-unit-full (~> 0.0.5)
thin (~> 2.0) thin (~> 1.8)
uglifier (~> 4.2) uglifier (~> 4.2)
websocket-client-simple (~> 0.6.1) websocket-client-simple (~> 0.6.1)
xmlrpc (~> 0.3.3) xmlrpc (~> 0.3.2)
BUNDLED WITH BUNDLED WITH
2.7.2 2.4.8

View File

@@ -1,7 +1,7 @@
=============================================================================== ===============================================================================
Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
Browser Exploitation Framework (BeEF) - https://beefproject.com Browser Exploitation Framework (BeEF) - http://beefproject.com
See the file 'doc/COPYING' for copying permission See the file 'doc/COPYING' for copying permission
=============================================================================== ===============================================================================
@@ -21,9 +21,9 @@ Or cloning the Git repository from Github:
Prerequisites Prerequisites
-------------- --------------
BeEF requires Ruby 3.0+. BeEF requires Ruby 2.7+.
If your operating system package manager does not support Ruby version 3.0, If your operating system package manager does not support Ruby version 2.7,
you can add the brightbox ppa repository for the latest version of Ruby: you can add the brightbox ppa repository for the latest version of Ruby:
$ sudo apt-add-repository -y ppa:brightbox/ruby-ng $ sudo apt-add-repository -y ppa:brightbox/ruby-ng

View File

@@ -1,7 +1,7 @@
=============================================================================== ===============================================================================
Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
Browser Exploitation Framework (BeEF) - https://beefproject.com Browser Exploitation Framework (BeEF) - http://beefproject.com
See the file 'doc/COPYING' for copying permission See the file 'doc/COPYING' for copying permission
=============================================================================== ===============================================================================
@@ -30,13 +30,13 @@ __Security Bugs:__ security@beefproject.com
__Twitter:__ [@beefproject](https://twitter.com/beefproject) __Twitter:__ [@beefproject](https://twitter.com/beefproject)
__Discord:__ https://discord.gg/25wT2P8pwx __Discord:__ https://discord.gg/ugmKmHarKc
Requirements Requirements
------------ ------------
* Operating System: Mac OSX 10.5.0 or higher / modern Linux. Note: Windows is not supported. * Operating System: Mac OSX 10.5.0 or higher / modern Linux. Note: Windows is not supported.
* [Ruby](https://www.ruby-lang.org): 3.0 or newer * [Ruby](https://www.ruby-lang.org): 2.7 or newer
* [SQLite](http://sqlite.org): 3.x * [SQLite](http://sqlite.org): 3.x
* [Node.js](https://nodejs.org): 10 or newer * [Node.js](https://nodejs.org): 10 or newer
* The gems listed in the Gemfile: https://github.com/beefproject/beef/blob/master/Gemfile * The gems listed in the Gemfile: https://github.com/beefproject/beef/blob/master/Gemfile

View File

@@ -1,27 +1,28 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
require 'yaml'
require 'bundler/setup'
load 'tasks/otr-activerecord.rake'
#require 'pry-byebug'
task :default => ["spec"]
desc 'Generate API documentation to doc/rdocs/index.html'
task :rdoc do
Rake::Task['rdoc:rerdoc'].invoke
end
## RSPEC
require 'rspec/core/rake_task' require 'rspec/core/rake_task'
task :default => ["short"] RSpec::Core::RakeTask.new(:spec) do |task|
RSpec::Core::RakeTask.new(:short) do |task|
task.rspec_opts = ['--tag ~run_on_browserstack', '--tag ~run_on_long_tests']
end
RSpec::Core::RakeTask.new(:long) do |task|
task.rspec_opts = ['--tag ~run_on_browserstack'] task.rspec_opts = ['--tag ~run_on_browserstack']
end end
RSpec::Core::RakeTask.new(:long_only) do |task|
task.rspec_opts = ['--tag ~run_on_browserstack', '--tag run_on_long_tests']
end
################################
# Browserstack
RSpec::Core::RakeTask.new(:browserstack) do |task| RSpec::Core::RakeTask.new(:browserstack) do |task|
task.rspec_opts = ['--tag run_on_browserstack'] task.rspec_opts = ['--tag run_on_browserstack']
end end
@@ -54,7 +55,7 @@ namespace :ssl do
end end
Rake::Task['ssl:replace'].invoke Rake::Task['ssl:replace'].invoke
end end
desc 'Re-generate SSL certificate' desc 'Re-generate SSL certificate'
task :replace do task :replace do
if File.file?('/usr/local/bin/openssl') if File.file?('/usr/local/bin/openssl')
@@ -69,14 +70,6 @@ namespace :ssl do
end end
end end
################################
# Generate API documentation
desc 'Generate API documentation to doc/rdocs/index.html'
task :rdoc do
Rake::Task['rdoc:rerdoc'].invoke
end
################################ ################################
# rdoc # rdoc
@@ -122,6 +115,7 @@ end
@beef_process_id = nil; @beef_process_id = nil;
@beef_config_file = 'tmp/rk_beef_conf.yaml'; @beef_config_file = 'tmp/rk_beef_conf.yaml';
task :beef_start => 'beef' do task :beef_start => 'beef' do
# read environment param for creds or use bad_fred # read environment param for creds or use bad_fred
test_user = ENV['TEST_BEEF_USER'] || 'bad_fred' test_user = ENV['TEST_BEEF_USER'] || 'bad_fred'
@@ -196,6 +190,24 @@ file '/tmp/msf-test/msfconsole' do
sh "cd test;git clone https://github.com/rapid7/metasploit-framework.git /tmp/msf-test" sh "cd test;git clone https://github.com/rapid7/metasploit-framework.git /tmp/msf-test"
end end
################################
# Create Mac DMG File
task :dmg do
puts "\nCreating Working Directory\n";
sh "mkdir dmg";
sh "mkdir dmg/BeEF";
sh "rsync * dmg/BeEF --exclude=dmg -r";
sh "ln -s /Applications dmg/";
puts "\nCreating DMG File\n"
sh "hdiutil create ./BeEF.dmg -srcfolder dmg -volname BeEF -ov";
puts "\nCleaning Up\n"
sh "rm -r dmg";
puts "\nBeEF.dmg created\n"
end
################################ ################################
# ActiveRecord # ActiveRecord
namespace :db do namespace :db do

View File

@@ -1,7 +1,7 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
0.6.0.0 0.5.4.0

18
beef
View File

@@ -1,8 +1,8 @@
#!/usr/bin/env ruby #!/usr/bin/env ruby
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
@@ -12,9 +12,9 @@
$VERBOSE = nil $VERBOSE = nil
# #
# @note Version check to ensure BeEF is running Ruby 3.0+ # @note Version check to ensure BeEF is running Ruby 2.7+
# #
min_ruby_version = '3.0' min_ruby_version = '2.7'
if RUBY_VERSION < min_ruby_version if RUBY_VERSION < min_ruby_version
puts puts
puts "Ruby version #{RUBY_VERSION} is no longer supported. Please upgrade to Ruby version #{min_ruby_version} or later." puts "Ruby version #{RUBY_VERSION} is no longer supported. Please upgrade to Ruby version #{min_ruby_version} or later."
@@ -194,6 +194,7 @@ end
# Connect to DB # Connect to DB
ActiveRecord::Base.logger = nil ActiveRecord::Base.logger = nil
OTR::ActiveRecord.migrations_paths = [File.join('core', 'main', 'ar-migrations')]
OTR::ActiveRecord.configure_from_hash!(adapter:'sqlite3', database:db_file) OTR::ActiveRecord.configure_from_hash!(adapter:'sqlite3', database:db_file)
# otr-activerecord require you to manually establish the connection with the following line # otr-activerecord require you to manually establish the connection with the following line
#Also a check to confirm that the correct Gem version is installed to require it, likely easier for old systems. #Also a check to confirm that the correct Gem version is installed to require it, likely easier for old systems.
@@ -202,13 +203,10 @@ if Gem.loaded_specs['otr-activerecord'].version > Gem::Version.create('1.4.2')
end end
# Migrate (if required) # Migrate (if required)
ActiveRecord::Migration.verbose = false # silence activerecord migration stdout messages context = ActiveRecord::Migration.new.migration_context
ActiveRecord::Migrator.migrations_paths = [File.join('core', 'main', 'ar-migrations')]
context = ActiveRecord::MigrationContext.new(ActiveRecord::Migrator.migrations_paths)
if context.needs_migration? if context.needs_migration?
ActiveRecord::Migrator.new(:up, context.migrations, context.schema_migration, context.internal_metadata).migrate ActiveRecord::Migrator.new(:up, context.migrations, context.schema_migration).migrate
end end
# #
# @note Extensions may take a moment to load, thus we print out a please wait message # @note Extensions may take a moment to load, thus we print out a please wait message
# #
@@ -244,8 +242,6 @@ BeEF::Core::Console::Banners.print_loaded_extensions
BeEF::Core::Console::Banners.print_loaded_modules BeEF::Core::Console::Banners.print_loaded_modules
BeEF::Core::Console::Banners.print_network_interfaces_count BeEF::Core::Console::Banners.print_network_interfaces_count
BeEF::Core::Console::Banners.print_network_interfaces_routes BeEF::Core::Console::Banners.print_network_interfaces_routes
BeEF::Core::Console::Banners.print_http_proxy
BeEF::Core::Console::Banners.print_dns
# #
# @note Prints the API key needed to use the RESTful API # @note Prints the API key needed to use the RESTful API

View File

@@ -1,12 +1,12 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
# BeEF Configuration file # BeEF Configuration file
beef: beef:
version: '0.6.0.0' version: '0.5.4.0'
# More verbose messages (server-side) # More verbose messages (server-side)
debug: false debug: false
# More verbose messages (client-side) # More verbose messages (client-side)
@@ -146,6 +146,6 @@ beef:
metasploit: metasploit:
enable: false enable: false
social_engineering: social_engineering:
enable: false enable: true
xssrays: xssrays:
enable: true enable: true

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
@@ -29,7 +29,7 @@ module BeEF
# #
def register(owner, clss, method, params = []) def register(owner, clss, method, params = [])
unless verify_api_path(clss, method) unless verify_api_path(clss, method)
print_error "API Registrar: Attempted to register non-existent API method #{clss} :#{method}" print_error "API Registrar: Attempted to register non-existant API method #{clss} :#{method}"
return return
end end

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
module BeEF module BeEF

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
module BeEF module BeEF

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
module BeEF module BeEF

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
module BeEF module BeEF

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
module BeEF module BeEF

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
module BeEF module BeEF

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
module BeEF module BeEF

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
module BeEF module BeEF

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
module BeEF module BeEF

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
module BeEF module BeEF

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
module BeEF module BeEF

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
module BeEF module BeEF

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
module BeEF module BeEF

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
module BeEF module BeEF

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
module BeEF module BeEF
@@ -46,7 +46,7 @@ module BeEF
return false if has_non_printable_char?(str) return false if has_non_printable_char?(str)
return true if str.eql? 'UNKNOWN' return true if str.eql? 'UNKNOWN'
return true if str.eql? 'ALL' return true if str.eql? 'ALL'
return false if !nums_only?(str) and !str.match(/\A(0|[1-9][0-9]{0,3})(\.(0|[1-9][0-9]{0,3})){0,3}\z/) return false if !nums_only?(str) and !is_valid_float?(str)
return false if str.length > 20 return false if str.length > 20
true true

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
module BeEF module BeEF

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
module BeEF module BeEF

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
module BeEF module BeEF

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
module BeEF module BeEF

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #

View File

@@ -4,8 +4,8 @@ class CreateHttp < ActiveRecord::Migration[6.0]
t.text :hooked_browser_id t.text :hooked_browser_id
# The http request to perform. In clear text. # The http request to perform. In clear text.
t.text :request t.text :request
# Boolean value as string to say whether cross-origin requests are allowed # Boolean value as string to say whether cross-domain requests are allowed
t.boolean :allow_cross_origin, default: true t.boolean :allow_cross_domain, default: true
# The http response body received. In clear text. # The http response body received. In clear text.
t.text :response_data t.text :response_data
# The http response code. Useful to handle cases like 404, 500, 302, ... # The http response code. Useful to handle cases like 404, 500, 302, ...
@@ -26,7 +26,7 @@ class CreateHttp < ActiveRecord::Migration[6.0]
t.text :domain t.text :domain
# The port on which perform the request. # The port on which perform the request.
t.text :port t.text :port
# Boolean value to say if the request was cross-origin # Boolean value to say if the request was cross-domain
t.text :has_ran, default: 'waiting' t.text :has_ran, default: 'waiting'
# The path of the request. # The path of the request.
# Example: /secret.html # Example: /secret.html

View File

@@ -5,7 +5,7 @@ class CreateXssraysScan < ActiveRecord::Migration[6.0]
t.datetime :scan_start t.datetime :scan_start
t.datetime :scan_finish t.datetime :scan_finish
t.text :domain t.text :domain
t.text :cross_origin t.text :cross_domain
t.integer :clean_timeout t.integer :clean_timeout
t.boolean :is_started t.boolean :is_started
t.boolean :is_finished t.boolean :is_finished

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
module BeEF module BeEF

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
module BeEF module BeEF

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
module BeEF module BeEF
@@ -105,99 +105,6 @@ module BeEF
{ 'success' => false, 'error' => e.message } { 'success' => false, 'error' => e.message }
end end
# Update an ARE rule set.
# @param [Hash] ARE rule ID.
# @param [Hash] ARE ruleset as JSON
# @return [Hash] {"success": Boolean, "rule_id": Integer, "error": String}
def update_rule_json(id, data)
# Quite similar in implementation to load_rule_json. Might benefit from a refactor.
name = data['name'] || ''
author = data['author'] || ''
browser = data['browser'] || 'ALL'
browser_version = data['browser_version'] || 'ALL'
os = data['os'] || 'ALL'
os_version = data['os_version'] || 'ALL'
modules = data['modules']
execution_order = data['execution_order']
execution_delay = data['execution_delay']
chain_mode = data['chain_mode'] || 'sequential'
begin
BeEF::Core::AutorunEngine::Parser.instance.parse(
name,
author,
browser,
browser_version,
os,
os_version,
modules,
execution_order,
execution_delay,
chain_mode
)
rescue => e
print_error("[ARE] Error updating ruleset (#{name}): #{e.message}")
return { 'success' => false, 'error' => e.message }
end
existing_rule = BeEF::Core::Models::Rule.where(
name: name,
author: author,
browser: browser,
browser_version: browser_version,
os: os,
os_version: os_version,
modules: modules.to_json,
execution_order: execution_order.to_s,
execution_delay: execution_delay.to_s,
chain_mode: chain_mode
).first
unless existing_rule.nil?
msg = "Duplicate rule already exists in the database (ID: #{existing_rule.id})"
print_info("[ARE] Skipping ruleset (#{name}): #{msg}")
return { 'success' => false, 'error' => msg }
end
old_are_rule = BeEF::Core::Models::Rule.find_by(id: id)
old_are_rule.update(
name: name,
author: author,
browser: browser,
browser_version: browser_version,
os: os,
os_version: os_version,
modules: modules.to_json,
execution_order: execution_order.to_s,
execution_delay: execution_delay.to_s,
chain_mode: chain_mode
)
print_info("[ARE] Ruleset (#{name}) updated successfully.")
if @debug_on
print_more "Target Browser: #{browser} (#{browser_version})"
print_more "Target OS: #{os} (#{os_version})"
print_more 'Modules to run:'
modules.each do |mod|
print_more "(*) Name: #{mod['name']}"
print_more "(*) Condition: #{mod['condition']}"
print_more "(*) Code: #{mod['code']}"
print_more '(*) Options:'
mod['options'].each do |key, value|
print_more "\t#{key}: (#{value})"
end
end
print_more "Exec order: #{execution_order}"
print_more "Exec delay: #{exec_delay}"
end
{ 'success' => true }
rescue TypeError, ArgumentError => e
print_error("[ARE] Failed to update ruleset (#{name}): #{e.message}")
{ 'success' => false, 'error' => e.message }
end
# Load an ARE ruleset from file # Load an ARE ruleset from file
# @param [String] JSON ARE ruleset file path # @param [String] JSON ARE ruleset file path
def load_rule_file(json_rule_path) def load_rule_file(json_rule_path)

View File

@@ -1,6 +1,6 @@
// //
// Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net // Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
// Browser Exploitation Framework (BeEF) - https://beefproject.com // Browser Exploitation Framework (BeEF) - http://beefproject.com
// See the file 'doc/COPYING' for copying permission // See the file 'doc/COPYING' for copying permission
// //

View File

@@ -1,6 +1,6 @@
// //
// Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net // Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
// Browser Exploitation Framework (BeEF) - https://beefproject.com // Browser Exploitation Framework (BeEF) - http://beefproject.com
// See the file 'doc/COPYING' for copying permission // See the file 'doc/COPYING' for copying permission
// //

View File

@@ -1,6 +1,6 @@
// //
// Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net // Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
// Browser Exploitation Framework (BeEF) - https://beefproject.com // Browser Exploitation Framework (BeEF) - http://beefproject.com
// See the file 'doc/COPYING' for copying permission // See the file 'doc/COPYING' for copying permission
// //
@@ -944,25 +944,14 @@ beef.browser = {
*/ */
isFF99: function () { isFF99: function () {
return !!window.devicePixelRatio && !!window.history.replaceState && (this.getProtocol() == "https:" ? typeof navigator.mozGetUserMedia != "undefined" : true) && (typeof window.crypto != "undefined" && typeof window.crypto.getRandomValues != "undefined") && typeof Math.hypot == 'function' && typeof String.prototype.codePointAt === 'function' && typeof Number.isSafeInteger === 'function' && window.navigator.userAgent.match(/Firefox\/99./) != null; return !!window.devicePixelRatio && !!window.history.replaceState && (this.getProtocol() == "https:" ? typeof navigator.mozGetUserMedia != "undefined" : true) && (typeof window.crypto != "undefined" && typeof window.crypto.getRandomValues != "undefined") && typeof Math.hypot == 'function' && typeof String.prototype.codePointAt === 'function' && typeof Number.isSafeInteger === 'function' && window.navigator.userAgent.match(/Firefox\/99./) != null;
},
/**
* Returns true if the browser is any version of Firefox.
* @example: beef.browser.isFFbowser()
*/
isFFbowser: function () {
const parser = bowser.getParser(navigator.userAgent);
const browserName = parser.getBrowserName();
return browserName == 'Firefox';
}, },
/** /**
* Returns true if the browser is any version of Firefox. * Returns true if FF.
* @example: beef.browser.isFF() * @example: beef.browser.isFF()
*/ */
isFF: function () { isFF: function () {
var legacyCheck = this.isFF2() || this.isFF3() || this.isFF3_5() || this.isFF3_6() || this.isFF4() || this.isFF5() || this.isFF6() || this.isFF7() || this.isFF8() || this.isFF9() || this.isFF10() || this.isFF11() || this.isFF12() || this.isFF13() || this.isFF14() || this.isFF15() || this.isFF16() || this.isFF17() || this.isFF18() || this.isFF19() || this.isFF20() || this.isFF21() || this.isFF22() || this.isFF23() || this.isFF24() || this.isFF25() || this.isFF26() || this.isFF27() || this.isFF28() || this.isFF29() || this.isFF30() || this.isFF31() || this.isFF32() || this.isFF33() || this.isFF34() || this.isFF35() || this.isFF36() || this.isFF37() || this.isFF38() || this.isFF39() || this.isFF40() || this.isFF41() || this.isFF42() || this.isFF43() || this.isFF44() || this.isFF45() || this.isFF46() || this.isFF47() || this.isFF48() || this.isFF49() || this.isFF50() || this.isFF51() || this.isFF52() || this.isFF53() || this.isFF54() || this.isFF55() || this.isFF56() || this.isFF57() || this.isFF58()|| this.isFF59() || this.isFF60() || this.isFF61() || this.isFF62() || this.isFF63() || this.isFF64() || this.isFF65() || this.isFF66() || this.isFF67() || this.isFF68() || this.isFF69() || this.isFF70() || this.isFF71() || this.isFF72() || this.isFF73() || this.isFF74() || this.isFF75() || this.isFF76() || this.isFF77() || this.isFF78() || this.isFF79() || this.isFF80() || this.isFF81() || this.isFF82() || this.isFF83() || this.isFF84() || this.isFF85() || this.isFF86() || this.isFF87() || this.isFF88() || this.isFF89() || this.isFF90() || this.isFF91() || this.isFF92() || this.isFF93() || this.isFF94() || this.isFF95() || this.isFF96() || this.isFF97() || this.isFF98() || this.isFF99(); return this.isFF2() || this.isFF3() || this.isFF3_5() || this.isFF3_6() || this.isFF4() || this.isFF5() || this.isFF6() || this.isFF7() || this.isFF8() || this.isFF9() || this.isFF10() || this.isFF11() || this.isFF12() || this.isFF13() || this.isFF14() || this.isFF15() || this.isFF16() || this.isFF17() || this.isFF18() || this.isFF19() || this.isFF20() || this.isFF21() || this.isFF22() || this.isFF23() || this.isFF24() || this.isFF25() || this.isFF26() || this.isFF27() || this.isFF28() || this.isFF29() || this.isFF30() || this.isFF31() || this.isFF32() || this.isFF33() || this.isFF34() || this.isFF35() || this.isFF36() || this.isFF37() || this.isFF38() || this.isFF39() || this.isFF40() || this.isFF41() || this.isFF42() || this.isFF43() || this.isFF44() || this.isFF45() || this.isFF46() || this.isFF47() || this.isFF48() || this.isFF49() || this.isFF50() || this.isFF51() || this.isFF52() || this.isFF53() || this.isFF54() || this.isFF55() || this.isFF56() || this.isFF57() || this.isFF58()|| this.isFF59() || this.isFF60() || this.isFF61() || this.isFF62() || this.isFF63() || this.isFF64() || this.isFF65() || this.isFF66() || this.isFF67() || this.isFF68() || this.isFF69() || this.isFF70() || this.isFF71() || this.isFF72() || this.isFF73() || this.isFF74() || this.isFF75() || this.isFF76() || this.isFF77() || this.isFF78() || this.isFF79() || this.isFF80() || this.isFF81() || this.isFF82() || this.isFF83() || this.isFF84() || this.isFF85() || this.isFF86() || this.isFF87() || this.isFF88() || this.isFF89() || this.isFF90() || this.isFF91() || this.isFF92() || this.isFF93() || this.isFF94() || this.isFF95() || this.isFF96() || this.isFF97() || this.isFF98() || this.isFF99();
return legacyCheck || this.isFFbowser();
}, },
/** /**
@@ -2449,23 +2438,12 @@ beef.browser = {
return (!window.webkitPerformance && window.navigator.appVersion.match(/CriOS\/(\d+)\./) != null) && ((parseInt(window.navigator.appVersion.match(/CriOS\/(\d+)\./)[1], 10) == 99) ? true : false); return (!window.webkitPerformance && window.navigator.appVersion.match(/CriOS\/(\d+)\./) != null) && ((parseInt(window.navigator.appVersion.match(/CriOS\/(\d+)\./)[1], 10) == 99) ? true : false);
}, },
/**
* Returns true for modern versions of Chrome (above 9).
* @example: beef.browser.isCbowser()
*/
isCbowser: function () {
const parser = bowser.getParser(navigator.userAgent);
const browserName = parser.getBrowserName();
return browserName == 'Chrome';
},
/** /**
* Returns true if Chrome. * Returns true if Chrome.
* @example: beef.browser.isC() * @example: beef.browser.isC()
*/ */
isC: function () { isC: function () {
var legacyCheck = this.isC5() || this.isC6() || this.isC7() || this.isC8() || this.isC9() || this.isC10() || this.isC11() || this.isC12() || this.isC13() || this.isC14() || this.isC15() || this.isC16() || this.isC17() || this.isC18() || this.isC19() || this.isC19iOS() || this.isC20() || this.isC20iOS() || this.isC21() || this.isC21iOS() || this.isC22() || this.isC22iOS() || this.isC23() || this.isC23iOS() || this.isC24() || this.isC24iOS() || this.isC25() || this.isC25iOS() || this.isC26() || this.isC26iOS() || this.isC27() || this.isC27iOS() || this.isC28() || this.isC28iOS() || this.isC29() || this.isC29iOS() || this.isC30() || this.isC30iOS() || this.isC31() || this.isC31iOS() || this.isC32() || this.isC32iOS() || this.isC33() || this.isC33iOS() || this.isC34() || this.isC34iOS() || this.isC35() || this.isC35iOS() || this.isC36() || this.isC36iOS() || this.isC37() || this.isC37iOS() || this.isC38() || this.isC38iOS() || this.isC39() || this.isC39iOS() || this.isC40() || this.isC40iOS() || this.isC41() || this.isC41iOS() || this.isC42() || this.isC42iOS() || this.isC43() || this.isC43iOS() || this.isC44() || this.isC44iOS() || this.isC45() || this.isC45iOS() || this.isC46() || this.isC46iOS() || this.isC47() || this.isC47iOS() || this.isC48() || this.isC48iOS() || this.isC49() || this.isC49iOS() || this.isC50() || this.isC50iOS() || this.isC51() || this.isC51iOS() || this.isC52() || this.isC52iOS() || this.isC53() || this.isC53iOS() || this.isC54() || this.isC54iOS() || this.isC55() || this.isC55iOS() || this.isC56() || this.isC56iOS() || this.isC57() || this.isC57iOS() || this.isC58() || this.isC58iOS() || this.isC59() || this.isC59iOS()|| this.isC60() || this.isC60iOS()|| this.isC61() || this.isC61iOS()|| this.isC62() || this.isC62iOS()|| this.isC63() || this.isC63iOS()|| this.isC64() || this.isC64iOS()|| this.isC65() || this.isC65iOS()|| this.isC66() || this.isC66iOS()|| this.isC67() || this.isC67iOS()|| this.isC68() || this.isC68iOS()|| this.isC69() || this.isC69iOS()|| this.isC70() || this.isC70iOS()|| this.isC71() || this.isC71iOS()|| this.isC72() || this.isC72iOS()|| this.isC73() || this.isC73iOS()|| this.isC74() || this.isC74iOS()|| this.isC75() || this.isC75iOS()|| this.isC76() || this.isC76iOS()|| this.isC77() || this.isC77iOS()|| this.isC78() || this.isC78iOS()|| this.isC79() || this.isC79iOS()|| this.isC80() || this.isC80iOS()|| this.isC81() || this.isC81iOS()|| this.isC82() || this.isC82iOS()|| this.isC83() || this.isC83iOS()|| this.isC84() || this.isC84iOS()|| this.isC85() || this.isC85iOS()|| this.isC86() || this.isC86iOS()|| this.isC87() || this.isC87iOS()|| this.isC88() || this.isC88iOS()|| this.isC89() || this.isC89iOS()|| this.isC90() || this.isC90iOS()|| this.isC91() || this.isC91iOS()|| this.isC92() || this.isC92iOS()|| this.isC93() || this.isC93iOS()|| this.isC94() || this.isC94iOS()|| this.isC95() || this.isC95iOS()|| this.isC96() || this.isC96iOS()|| this.isC97() || this.isC97iOS()|| this.isC98() || this.isC98iOS()|| this.isC99() || this.isC99iOS(); return this.isC5() || this.isC6() || this.isC7() || this.isC8() || this.isC9() || this.isC10() || this.isC11() || this.isC12() || this.isC13() || this.isC14() || this.isC15() || this.isC16() || this.isC17() || this.isC18() || this.isC19() || this.isC19iOS() || this.isC20() || this.isC20iOS() || this.isC21() || this.isC21iOS() || this.isC22() || this.isC22iOS() || this.isC23() || this.isC23iOS() || this.isC24() || this.isC24iOS() || this.isC25() || this.isC25iOS() || this.isC26() || this.isC26iOS() || this.isC27() || this.isC27iOS() || this.isC28() || this.isC28iOS() || this.isC29() || this.isC29iOS() || this.isC30() || this.isC30iOS() || this.isC31() || this.isC31iOS() || this.isC32() || this.isC32iOS() || this.isC33() || this.isC33iOS() || this.isC34() || this.isC34iOS() || this.isC35() || this.isC35iOS() || this.isC36() || this.isC36iOS() || this.isC37() || this.isC37iOS() || this.isC38() || this.isC38iOS() || this.isC39() || this.isC39iOS() || this.isC40() || this.isC40iOS() || this.isC41() || this.isC41iOS() || this.isC42() || this.isC42iOS() || this.isC43() || this.isC43iOS() || this.isC44() || this.isC44iOS() || this.isC45() || this.isC45iOS() || this.isC46() || this.isC46iOS() || this.isC47() || this.isC47iOS() || this.isC48() || this.isC48iOS() || this.isC49() || this.isC49iOS() || this.isC50() || this.isC50iOS() || this.isC51() || this.isC51iOS() || this.isC52() || this.isC52iOS() || this.isC53() || this.isC53iOS() || this.isC54() || this.isC54iOS() || this.isC55() || this.isC55iOS() || this.isC56() || this.isC56iOS() || this.isC57() || this.isC57iOS() || this.isC58() || this.isC58iOS() || this.isC59() || this.isC59iOS()|| this.isC60() || this.isC60iOS()|| this.isC61() || this.isC61iOS()|| this.isC62() || this.isC62iOS()|| this.isC63() || this.isC63iOS()|| this.isC64() || this.isC64iOS()|| this.isC65() || this.isC65iOS()|| this.isC66() || this.isC66iOS()|| this.isC67() || this.isC67iOS()|| this.isC68() || this.isC68iOS()|| this.isC69() || this.isC69iOS()|| this.isC70() || this.isC70iOS()|| this.isC71() || this.isC71iOS()|| this.isC72() || this.isC72iOS()|| this.isC73() || this.isC73iOS()|| this.isC74() || this.isC74iOS()|| this.isC75() || this.isC75iOS()|| this.isC76() || this.isC76iOS()|| this.isC77() || this.isC77iOS()|| this.isC78() || this.isC78iOS()|| this.isC79() || this.isC79iOS()|| this.isC80() || this.isC80iOS()|| this.isC81() || this.isC81iOS()|| this.isC82() || this.isC82iOS()|| this.isC83() || this.isC83iOS()|| this.isC84() || this.isC84iOS()|| this.isC85() || this.isC85iOS()|| this.isC86() || this.isC86iOS()|| this.isC87() || this.isC87iOS()|| this.isC88() || this.isC88iOS()|| this.isC89() || this.isC89iOS()|| this.isC90() || this.isC90iOS()|| this.isC91() || this.isC91iOS()|| this.isC92() || this.isC92iOS()|| this.isC93() || this.isC93iOS()|| this.isC94() || this.isC94iOS()|| this.isC95() || this.isC95iOS()|| this.isC96() || this.isC96iOS()|| this.isC97() || this.isC97iOS()|| this.isC98() || this.isC98iOS()|| this.isC99() || this.isC99iOS();
return legacyCheck || this.isCbowser();
}, },
/** /**
@@ -2508,23 +2486,12 @@ beef.browser = {
return (!!window.opera && (window.navigator.userAgent.match(/Opera\/9\.80.*Version\/12\./) != null)); return (!!window.opera && (window.navigator.userAgent.match(/Opera\/9\.80.*Version\/12\./) != null));
}, },
/**
* Returns true if the browser is any version of Opera.
* @example: beef.browser.isObowser()
*/
isObowser: function () {
const parser = bowser.getParser(navigator.userAgent);
const browserName = parser.getBrowserName();
return browserName == 'Opera';
},
/** /**
* Returns true if Opera. * Returns true if Opera.
* @example: beef.browser.isO() * @example: beef.browser.isO()
*/ */
isO: function () { isO: function () {
var legacyCheck = this.isO9_52() || this.isO9_60() || this.isO10() || this.isO11() || this.isO12(); return this.isO9_52() || this.isO9_60() || this.isO10() || this.isO11() || this.isO12();
return legacyCheck || this.isObowser();
}, },
/** /**
@@ -4298,6 +4265,9 @@ beef.browser = {
try { try {
var cookies = document.cookie; var cookies = document.cookie;
/* Never stop the madness dear C.
* var veglol = beef.browser.cookie.veganLol();
*/
if (cookies) details['browser.window.cookies'] = cookies; if (cookies) details['browser.window.cookies'] = cookies;
} catch (e) { } catch (e) {
beef.debug("Cookies can't be read. The hooked origin is most probably using HttpOnly."); beef.debug("Cookies can't be read. The hooked origin is most probably using HttpOnly.");

View File

@@ -1,6 +1,6 @@
// //
// Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net // Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
// Browser Exploitation Framework (BeEF) - https://beefproject.com // Browser Exploitation Framework (BeEF) - http://beefproject.com
// See the file 'doc/COPYING' for copying permission // See the file 'doc/COPYING' for copying permission
// //
@@ -72,7 +72,7 @@ beef.browser.cookie = {
}, },
/** @memberof beef.browser.cookie */ /** @memberof beef.browser.cookie */
cookieValueRandomizer: function (){ veganLol: function (){
var to_hell= ''; var to_hell= '';
var min = 17; var min = 17;
var max = 25; var max = 25;
@@ -100,7 +100,7 @@ beef.browser.cookie = {
}, },
/** @memberof beef.browser.cookie */ /** @memberof beef.browser.cookie */
hasSessionCookies: function (name){ hasSessionCookies: function (name){
this.setCookie( name, beef.browser.cookie.cookieValueRandomizer(), '', '/', '', '' ); this.setCookie( name, beef.browser.cookie.veganLol(), '', '/', '', '' );
cookiesEnabled = (this.getCookie(name) == null)? false:true; cookiesEnabled = (this.getCookie(name) == null)? false:true;
this.deleteCookie(name, '/', ''); this.deleteCookie(name, '/', '');
@@ -109,7 +109,7 @@ beef.browser.cookie = {
}, },
/** @memberof beef.browser.cookie */ /** @memberof beef.browser.cookie */
hasPersistentCookies: function (name){ hasPersistentCookies: function (name){
this.setCookie( name, beef.browser.cookie.cookieValueRandomizer(), 1, '/', '', '' ); this.setCookie( name, beef.browser.cookie.veganLol(), 1, '/', '', '' );
cookiesEnabled = (this.getCookie(name) == null)? false:true; cookiesEnabled = (this.getCookie(name) == null)? false:true;
this.deleteCookie(name, '/', ''); this.deleteCookie(name, '/', '');

View File

@@ -1,6 +1,6 @@
// //
// Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net // Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
// Browser Exploitation Framework (BeEF) - https://beefproject.com // Browser Exploitation Framework (BeEF) - http://beefproject.com
// See the file 'doc/COPYING' for copying permission // See the file 'doc/COPYING' for copying permission
// //

View File

@@ -1,6 +1,6 @@
// //
// Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net // Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
// Browser Exploitation Framework (BeEF) - https://beefproject.com // Browser Exploitation Framework (BeEF) - http://beefproject.com
// See the file 'doc/COPYING' for copying permission // See the file 'doc/COPYING' for copying permission
// //

View File

@@ -1,6 +1,6 @@
// //
// Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net // Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
// Browser Exploitation Framework (BeEF) - https://beefproject.com // Browser Exploitation Framework (BeEF) - http://beefproject.com
// See the file 'doc/COPYING' for copying permission // See the file 'doc/COPYING' for copying permission
// //

View File

@@ -1,6 +1,6 @@
// //
// Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net // Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
// Browser Exploitation Framework (BeEF) - https://beefproject.com // Browser Exploitation Framework (BeEF) - http://beefproject.com
// See the file 'doc/COPYING' for copying permission // See the file 'doc/COPYING' for copying permission
// //

View File

@@ -1,6 +1,6 @@
// //
// Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net // Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
// Browser Exploitation Framework (BeEF) - https://beefproject.com // Browser Exploitation Framework (BeEF) - http://beefproject.com
// See the file 'doc/COPYING' for copying permission // See the file 'doc/COPYING' for copying permission
// //

View File

@@ -1,6 +1,6 @@
// //
// Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net // Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
// Browser Exploitation Framework (BeEF) - https://beefproject.com // Browser Exploitation Framework (BeEF) - http://beefproject.com
// See the file 'doc/COPYING' for copying permission // See the file 'doc/COPYING' for copying permission
// //

View File

@@ -1,6 +1,6 @@
// //
// Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net // Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
// Browser Exploitation Framework (BeEF) - https://beefproject.com // Browser Exploitation Framework (BeEF) - http://beefproject.com
// See the file 'doc/COPYING' for copying permission // See the file 'doc/COPYING' for copying permission
// //

File diff suppressed because one or more lines are too long

View File

@@ -1,6 +1,6 @@
// //
// Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net // Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
// Browser Exploitation Framework (BeEF) - https://beefproject.com // Browser Exploitation Framework (BeEF) - http://beefproject.com
// See the file 'doc/COPYING' for copying permission // See the file 'doc/COPYING' for copying permission
// //
@@ -31,7 +31,7 @@
* for example, if someone deletes all but one type of cookie, once * for example, if someone deletes all but one type of cookie, once
* that cookie is re-discovered, all of the other cookie types get reset * that cookie is re-discovered, all of the other cookie types get reset
* *
* !!! SOME OF THESE ARE CROSS-ORIGIN COOKIES, THIS MEANS * !!! SOME OF THESE ARE CROSS-DOMAIN COOKIES, THIS MEANS
* OTHER SITES WILL BE ABLE TO READ SOME OF THESE COOKIES !!! * OTHER SITES WILL BE ABLE TO READ SOME OF THESE COOKIES !!!
* *
* USAGE: * USAGE:
@@ -803,7 +803,7 @@ this.evercookie_cookie = function(name, value)
else else
return this.getFromStr(name, document.cookie); return this.getFromStr(name, document.cookie);
}catch(e){ }catch(e){
// the hooked origin is using HttpOnly, so we must set the hook ID in a different way. // the hooked domain is using HttpOnly, so we must set the hook ID in a different way.
// evercookie_userdata and evercookie_window will be used in this case. // evercookie_userdata and evercookie_window will be used in this case.
} }
}; };

View File

@@ -1,6 +1,6 @@
// //
// Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net // Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
// Browser Exploitation Framework (BeEF) - https://beefproject.com // Browser Exploitation Framework (BeEF) - http://beefproject.com
// See the file 'doc/COPYING' for copying permission // See the file 'doc/COPYING' for copying permission
// //

View File

@@ -1,6 +1,6 @@
// //
// Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net // Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
// Browser Exploitation Framework (BeEF) - https://beefproject.com // Browser Exploitation Framework (BeEF) - http://beefproject.com
// See the file 'doc/COPYING' for copying permission // See the file 'doc/COPYING' for copying permission
// //
@@ -38,7 +38,7 @@ beef.mitb = {
if (method == "GET") { if (method == "GET") {
//GET request -> cross-origin //GET request -> cross-origin
if (url.indexOf(document.location.hostname) == -1 || (portR != null && requestPort != document.location.port )) { if (url.indexOf(document.location.hostname) == -1 || (portR != null && requestPort != document.location.port )) {
beef.mitb.sniff("GET [Ajax CrossOrigin Request]: " + url); beef.mitb.sniff("GET [Ajax CrossDomain Request]: " + url);
window.open(url); window.open(url);
}else { //GET request -> same-origin }else { //GET request -> same-origin
beef.mitb.sniff("GET [Ajax Request]: " + url); beef.mitb.sniff("GET [Ajax Request]: " + url);

View File

@@ -1,6 +1,6 @@
// //
// Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net // Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
// Browser Exploitation Framework (BeEF) - https://beefproject.com // Browser Exploitation Framework (BeEF) - http://beefproject.com
// See the file 'doc/COPYING' for copying permission // See the file 'doc/COPYING' for copying permission
// //
@@ -74,7 +74,7 @@ beef.net = {
this.status_text = null; // success, timeout, error, ... this.status_text = null; // success, timeout, error, ...
this.response_body = null; // "<html>…." if not a cross-origin request this.response_body = null; // "<html>…." if not a cross-origin request
this.port_status = null; // tcp port is open, closed or not http this.port_status = null; // tcp port is open, closed or not http
this.was_cross_origin = null; // true or false this.was_cross_domain = null; // true or false
this.was_timedout = null; // the user specified timeout was reached this.was_timedout = null; // the user specified timeout was reached
this.duration = null; // how long it took for the request to complete this.duration = null; // how long it took for the request to complete
this.headers = null; // full response headers this.headers = null; // full response headers
@@ -217,11 +217,11 @@ beef.net = {
* @return {Object} this object contains the response details * @return {Object} this object contains the response details
*/ */
request: function (scheme, method, domain, port, path, anchor, data, timeout, dataType, callback) { request: function (scheme, method, domain, port, path, anchor, data, timeout, dataType, callback) {
//check if same origin or cross origin //check if same domain or cross domain
var cross_origin = true; var cross_domain = true;
if (document.domain == domain.replace(/(\r\n|\n|\r)/gm, "")) { //strip eventual line breaks if (document.domain == domain.replace(/(\r\n|\n|\r)/gm, "")) { //strip eventual line breaks
if (document.location.port == "" || document.location.port == null) { if (document.location.port == "" || document.location.port == null) {
cross_origin = !(port == "80" || port == "443"); cross_domain = !(port == "80" || port == "443");
} }
} }
@@ -238,12 +238,12 @@ beef.net = {
//define response object //define response object
var response = new this.response; var response = new this.response;
response.was_cross_origin = cross_origin; response.was_cross_domain = cross_domain;
var start_time = new Date().getTime(); var start_time = new Date().getTime();
/* /*
* according to http://api.jquery.com/jQuery.ajax/, Note: having 'script': * according to http://api.jquery.com/jQuery.ajax/, Note: having 'script':
* This will turn POSTs into GETs for cross origin requests. * This will turn POSTs into GETs for remote-domain requests.
*/ */
if (method == "POST") { if (method == "POST") {
$j.ajaxSetup({ $j.ajaxSetup({
@@ -310,7 +310,7 @@ beef.net = {
/** /**
* Similar to beef.net.request, except from a few things that are needed when dealing with forged requests: * Similar to beef.net.request, except from a few things that are needed when dealing with forged requests:
* - requestid: needed on the callback * - requestid: needed on the callback
* - allowCrossOrigin: set cross-origin requests as allowed or blocked * - allowCrossDomain: set cross-domain requests as allowed or blocked
* *
* forge_request is used mainly by the Requester and Tunneling Proxy Extensions. * forge_request is used mainly by the Requester and Tunneling Proxy Extensions.
* Example usage: * Example usage:
@@ -318,20 +318,20 @@ beef.net = {
* true, null, { foo: "bar" }, 5, 'html', false, null, function(response) { * true, null, { foo: "bar" }, 5, 'html', false, null, function(response) {
* alert(response.response_body)}) * alert(response.response_body)})
*/ */
forge_request: function (scheme, method, domain, port, path, anchor, headers, data, timeout, dataType, allowCrossOrigin, requestid, callback) { forge_request: function (scheme, method, domain, port, path, anchor, headers, data, timeout, dataType, allowCrossDomain, requestid, callback) {
if (domain == "undefined" || path == "undefined") { if (domain == "undefined" || path == "undefined") {
beef.debug("[beef.net.forge_request] Error: Malformed request. No host specified."); beef.debug("[beef.net.forge_request] Error: Malformed request. No host specified.");
return; return;
} }
// check if same origin or cross origin // check if same domain or cross domain
var cross_origin = true; var cross_domain = true;
if (document.domain == domain && document.location.protocol == scheme + ':') { if (document.domain == domain && document.location.protocol == scheme + ':') {
if (document.location.port == "" || document.location.port == null) { if (document.location.port == "" || document.location.port == null) {
cross_origin = !(port == "80" || port == "443"); cross_domain = !(port == "80" || port == "443");
} else { } else {
if (document.location.port == port) cross_origin = false; if (document.location.port == port) cross_domain = false;
} }
} }
@@ -348,23 +348,23 @@ beef.net = {
// define response object // define response object
var response = new this.response; var response = new this.response;
response.was_cross_origin = cross_origin; response.was_cross_domain = cross_domain;
var start_time = new Date().getTime(); var start_time = new Date().getTime();
// if cross-origin requests are not allowed and the request is cross-origin // if cross-domain requests are not allowed and the request is cross-domain
// don't proceed and return // don't proceed and return
if (allowCrossOrigin == "false" && cross_origin) { if (allowCrossDomain == "false" && cross_domain) {
beef.debug("[beef.net.forge_request] Error: Cross Domain Request. The request was not sent."); beef.debug("[beef.net.forge_request] Error: Cross Domain Request. The request was not sent.");
response.status_code = -1; response.status_code = -1;
response.status_text = "crossorigin"; response.status_text = "crossdomain";
response.port_status = "crossorigin"; response.port_status = "crossdomain";
response.response_body = "ERROR: Cross Domain Request. The request was not sent.\n"; response.response_body = "ERROR: Cross Domain Request. The request was not sent.\n";
response.headers = "ERROR: Cross Domain Request. The request was not sent.\n"; response.headers = "ERROR: Cross Domain Request. The request was not sent.\n";
if (callback != null) callback(response, requestid); if (callback != null) callback(response, requestid);
return response; return response;
} }
// if the request was cross-origin from a HTTPS origin to HTTP // if the request was cross-domain from a HTTPS origin to HTTP
// don't proceed and return // don't proceed and return
if (document.location.protocol == 'https:' && scheme == 'http') { if (document.location.protocol == 'https:' && scheme == 'http') {
beef.debug("[beef.net.forge_request] Error: Mixed Active Content. The request was not sent."); beef.debug("[beef.net.forge_request] Error: Mixed Active Content. The request was not sent.");
@@ -379,7 +379,7 @@ beef.net = {
/* /*
* according to http://api.jquery.com/jQuery.ajax/, Note: having 'script': * according to http://api.jquery.com/jQuery.ajax/, Note: having 'script':
* This will turn POSTs into GETs for cross origin requests. * This will turn POSTs into GETs for remote-domain requests.
*/ */
if (method == "POST") { if (method == "POST") {
$j.ajaxSetup({ $j.ajaxSetup({
@@ -432,10 +432,10 @@ beef.net = {
}, },
complete: function (xhr, textStatus) { complete: function (xhr, textStatus) {
// cross-origin request // cross-domain request
if (cross_origin) { if (cross_domain) {
response.port_status = "crossorigin"; response.port_status = "crossdomain";
if (xhr.status != 0) { if (xhr.status != 0) {
response.status_code = xhr.status; response.status_code = xhr.status;
@@ -446,7 +446,7 @@ beef.net = {
if (textStatus) { if (textStatus) {
response.status_text = textStatus; response.status_text = textStatus;
} else { } else {
response.status_text = "crossorigin"; response.status_text = "crossdomain";
} }
if (xhr.getAllResponseHeaders()) { if (xhr.getAllResponseHeaders()) {
@@ -460,7 +460,7 @@ beef.net = {
} }
} else { } else {
// same-origin request // same-domain request
response.status_code = xhr.status; response.status_code = xhr.status;
response.status_text = textStatus; response.status_text = textStatus;
response.headers = xhr.getAllResponseHeaders(); response.headers = xhr.getAllResponseHeaders();

View File

@@ -1,6 +1,6 @@
// //
// Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net // Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
// Browser Exploitation Framework (BeEF) - https://beefproject.com // Browser Exploitation Framework (BeEF) - http://beefproject.com
// See the file 'doc/COPYING' for copying permission // See the file 'doc/COPYING' for copying permission
// //

View File

@@ -1,6 +1,6 @@
// //
// Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net // Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
// Browser Exploitation Framework (BeEF) - https://beefproject.com // Browser Exploitation Framework (BeEF) - http://beefproject.com
// See the file 'doc/COPYING' for copying permission // See the file 'doc/COPYING' for copying permission
// //

View File

@@ -1,6 +1,6 @@
// //
// Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net // Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
// Browser Exploitation Framework (BeEF) - https://beefproject.com // Browser Exploitation Framework (BeEF) - http://beefproject.com
// See the file 'doc/COPYING' for copying permission // See the file 'doc/COPYING' for copying permission
// //

View File

@@ -1,6 +1,6 @@
// //
// Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net // Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
// Browser Exploitation Framework (BeEF) - https://beefproject.com // Browser Exploitation Framework (BeEF) - http://beefproject.com
// See the file 'doc/COPYING' for copying permission // See the file 'doc/COPYING' for copying permission
// //

View File

@@ -1,6 +1,6 @@
// //
// Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net // Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
// Browser Exploitation Framework (BeEF) - https://beefproject.com // Browser Exploitation Framework (BeEF) - http://beefproject.com
// See the file 'doc/COPYING' for copying permission // See the file 'doc/COPYING' for copying permission
// //
@@ -25,7 +25,7 @@ beef.net.requester = {
request = requests_array[i]; request = requests_array[i];
if (request.proto == 'https') var scheme = 'https'; else var scheme = 'http'; if (request.proto == 'https') var scheme = 'https'; else var scheme = 'http';
beef.debug('[Requester] ' + request.method + ' ' + scheme + '://' + request.host + ':' + request.port + request.uri + ' - Data: ' + request.data); beef.debug('[Requester] ' + request.method + ' ' + scheme + '://' + request.host + ':' + request.port + request.uri + ' - Data: ' + request.data);
beef.net.forge_request(scheme, request.method, request.host, request.port, request.uri, null, request.headers, request.data, 10, null, request.allowCrossOrigin, request.id, beef.net.forge_request(scheme, request.method, request.host, request.port, request.uri, null, request.headers, request.data, 10, null, request.allowCrossDomain, request.id,
function(res, requestid) { beef.net.send('/requester', requestid, { function(res, requestid) { beef.net.send('/requester', requestid, {
response_data: res.response_body, response_data: res.response_body,
response_status_code: res.status_code, response_status_code: res.status_code,

View File

@@ -171,7 +171,7 @@ beef.net.xssrays = {
this.xss({href:url.href, pathname:url.pathname, hostname:url.hostname, port: url.port, protocol: location.protocol, this.xss({href:url.href, pathname:url.pathname, hostname:url.hostname, port: url.port, protocol: location.protocol,
search:url.search, type: 'url'});//scan each link & param search:url.search, type: 'url'});//scan each link & param
} else { } else {
beef.debug('Scan is not Cross-origin. URLS\nurl :' + url.hostname.toString()); beef.debug('Scan is not Cross-domain. URLS\nurl :' + url.hostname.toString());
beef.debug('\nlocation :' + location.hostname.toString()); beef.debug('\nlocation :' + location.hostname.toString());
} }
} }
@@ -251,7 +251,7 @@ beef.net.xssrays = {
continue; continue;
} }
if (!this.crossDomain && (this.host(action).toString() != this.host(location.toString()))) { if (!this.crossDomain && (this.host(action).toString() != this.host(location.toString()))) {
beef.debug('Scan is not Cross-origin. FormPost\naction :' + this.host(action).toString()); beef.debug('Scan is not Cross-domain. FormPost\naction :' + this.host(action).toString());
beef.debug('location :' + this.host(location)); beef.debug('location :' + this.host(location));
continue; continue;
} }

View File

@@ -1,6 +1,6 @@
// //
// Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net // Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
// Browser Exploitation Framework (BeEF) - https://beefproject.com // Browser Exploitation Framework (BeEF) - http://beefproject.com
// See the file 'doc/COPYING' for copying permission // See the file 'doc/COPYING' for copying permission
// //

View File

@@ -1,6 +1,6 @@
// //
// Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net // Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
// Browser Exploitation Framework (BeEF) - https://beefproject.com // Browser Exploitation Framework (BeEF) - http://beefproject.com
// See the file 'doc/COPYING' for copying permission // See the file 'doc/COPYING' for copying permission
// //

View File

@@ -1,6 +1,6 @@
// //
// Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net // Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
// Browser Exploitation Framework (BeEF) - https://beefproject.com // Browser Exploitation Framework (BeEF) - http://beefproject.com
// See the file 'doc/COPYING' for copying permission // See the file 'doc/COPYING' for copying permission
// //

View File

@@ -1,6 +1,6 @@
// //
// Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net // Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
// Browser Exploitation Framework (BeEF) - https://beefproject.com // Browser Exploitation Framework (BeEF) - http://beefproject.com
// See the file 'doc/COPYING' for copying permission // See the file 'doc/COPYING' for copying permission
// //

View File

@@ -1,6 +1,6 @@
// //
// Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net // Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
// Browser Exploitation Framework (BeEF) - https://beefproject.com // Browser Exploitation Framework (BeEF) - http://beefproject.com
// See the file 'doc/COPYING' for copying permission // See the file 'doc/COPYING' for copying permission
// //

View File

@@ -1,6 +1,6 @@
// //
// Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net // Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
// Browser Exploitation Framework (BeEF) - https://beefproject.com // Browser Exploitation Framework (BeEF) - http://beefproject.com
// See the file 'doc/COPYING' for copying permission // See the file 'doc/COPYING' for copying permission
// //

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
@@ -26,6 +26,7 @@ module BeEF
begin begin
# open base config # open base config
@config = load(config) @config = load(config)
# set default value if key? does not exist
@config.default = nil @config.default = nil
@@config = config @@config = config
rescue StandardError => e rescue StandardError => e
@@ -71,12 +72,10 @@ module BeEF
return unless validate_public_config_variable?(@config) return unless validate_public_config_variable?(@config)
# Note for developers:
# The configuration path 'beef.http.public_port' is deprecated.
# Use the new format for public_port variables as described in the BeEF project documentation.
# Refer to the BeEF configuration guide for the web server configuration details:
# https://github.com/beefproject/beef/wiki/Configuration#web-server-configuration
if @config['beef']['http']['public_port'] if @config['beef']['http']['public_port']
print_error 'Config path beef.http.public_port is deprecated.'
print_error 'Please use the new format for public variables found'
print_error 'https://github.com/beefproject/beef/wiki/Configuration#web-server-configuration'
return return
end end
@@ -155,7 +154,7 @@ module BeEF
"#{beef_proto}://#{beef_host}:#{beef_port}" "#{beef_proto}://#{beef_host}:#{beef_port}"
end end
# Returns the hook path value stored in the config file # Returns the hool path value stored in the config file
# #
# @return [String] hook file path # @return [String] hook file path
def hook_file_path def hook_file_path
@@ -256,7 +255,7 @@ module BeEF
# #
def load_modules_config def load_modules_config
set('beef.module', {}) set('beef.module', {})
# support nested sub-categories, like browser/hooked_origin/ajax_fingerprint # support nested sub-categories, like browser/hooked_domain/ajax_fingerprint
module_configs = File.join("#{$root_dir}/modules/**", 'config.yaml') module_configs = File.join("#{$root_dir}/modules/**", 'config.yaml')
Dir.glob(module_configs) do |cf| Dir.glob(module_configs) do |cf|
y = load(cf) y = load(cf)
@@ -278,15 +277,13 @@ module BeEF
private private
# Note for developers:
# The configuration path 'beef.http.public' is deprecated.
# Use the new format for public variables as described in the BeEF project documentation.
# Refer to the BeEF configuration guide for the web server configuration details:
# https://github.com/beefproject/beef/wiki/Configuration#web-server-configuration
def validate_public_config_variable?(config) def validate_public_config_variable?(config)
return true if config['beef']['http']['public'].is_a?(Hash) || return true if config['beef']['http']['public'].is_a?(Hash) ||
config['beef']['http']['public'].is_a?(NilClass) config['beef']['http']['public'].is_a?(NilClass)
print_error 'Config path beef.http.public is deprecated.'
print_error 'Please use the new format for public variables found'
print_error 'https://github.com/beefproject/beef/wiki/Configuration#web-server-configuration'
false false
end end
end end

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
module BeEF module BeEF
@@ -32,7 +32,7 @@ module BeEF
print_info "Browser Exploitation Framework (BeEF) #{version}" print_info "Browser Exploitation Framework (BeEF) #{version}"
data = "Twit: @beefproject\n" data = "Twit: @beefproject\n"
data += "Site: https://beefproject.com\n" data += "Site: https://beefproject.com\n"
# data += "Blog: http://blog.beefproject.com\n" data += "Blog: http://blog.beefproject.com\n"
data += "Wiki: https://github.com/beefproject/beef/wiki\n" data += "Wiki: https://github.com/beefproject/beef/wiki\n"
print_more data print_more data
print_info 'Project Creator: ' + 'Wade Alcorn'.red + ' (@WadeAlcorn)' print_info 'Project Creator: ' + 'Wade Alcorn'.red + ' (@WadeAlcorn)'
@@ -134,29 +134,6 @@ module BeEF
print_info "Starting WebSocketSecure server on wss://[#{config.beef_host}:#{config.get('beef.http.websocket.secure_port').to_i} [timer: #{ws_poll_timeout}]" print_info "Starting WebSocketSecure server on wss://[#{config.beef_host}:#{config.get('beef.http.websocket.secure_port').to_i} [timer: #{ws_poll_timeout}]"
end end
end end
# Print WebSocket servers
#
def print_http_proxy
config = BeEF::Core::Configuration.instance
print_info "HTTP Proxy: http://#{config.get('beef.extension.proxy.address')}:#{config.get('beef.extension.proxy.port')}"
end
def print_dns
address = nil
port = nil
protocol = nil
# TODO: fix the following reference - extensions/dns/api.rb
# servers, interfaces, address, port, protocol, upstream_servers = get_dns_config # get the DNS configuration
# Print the DNS server information
unless address.nil? || port.nil? || protocol.nil?
print_info "DNS Server: #{address}:#{port} (#{protocol})"
print_more upstream_servers unless upstream_servers.empty?
end
end
end end
end end
end end

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
module BeEF module BeEF
@@ -17,6 +17,7 @@ module BeEF
@options[:ext_config] = '' @options[:ext_config] = ''
@options[:port] = '' @options[:port] = ''
@options[:ws_port] = '' @options[:ws_port] = ''
@options[:interactive] = false
@options[:update_disabled] = false @options[:update_disabled] = false
@options[:update_auto] = false @options[:update_auto] = false
@@ -62,6 +63,9 @@ module BeEF
@options[:update_auto] = true @options[:update_auto] = true
end end
# opts.on('-i', '--interactive', 'Starts with the Console Shell activated') do
# @options[:interactive] = true
# end
end end
optparse.parse! optparse.parse!

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
require 'securerandom' require 'securerandom'

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
@@ -18,7 +18,7 @@ module BeEF
geoip_file = @config.get('beef.geoip.database') geoip_file = @config.get('beef.geoip.database')
unless File.exist? geoip_file unless File.exist? geoip_file
BeEF::Core::Logger.instance.register('System', "[GeoIP] Could not find MaxMind GeoIP database: '#{geoip_file}'") print_error "[GeoIP] Could not find MaxMind GeoIP database: '#{geoip_file}'"
@enabled = false @enabled = false
return return
end end

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
module BeEF module BeEF
@@ -400,8 +400,6 @@ module BeEF
browser_plugins = get_param(@data['results'], 'browser.plugins') browser_plugins = get_param(@data['results'], 'browser.plugins')
if BeEF::Filters.is_valid_browser_plugins?(browser_plugins) if BeEF::Filters.is_valid_browser_plugins?(browser_plugins)
BD.set(session_id, 'browser.plugins', browser_plugins) BD.set(session_id, 'browser.plugins', browser_plugins)
elsif browser_plugins == "[]"
err_msg "No browser plugins detected."
else else
err_msg "Invalid browser plugins returned from the hook browser's initial connection." err_msg "Invalid browser plugins returned from the hook browser's initial connection."
end end
@@ -549,7 +547,7 @@ module BeEF
end end
# log a few info of newly hooked zombie in the console # log a few info of newly hooked zombie in the console
print_info "New Hooked Browser [id:#{zombie.id}, ip:#{zombie.ip}, browser:#{browser_name}-#{browser_version}, os:#{os_name}-#{os_version}], hooked origin [#{log_zombie_domain}:#{log_zombie_port}]" print_info "New Hooked Browser [id:#{zombie.id}, ip:#{zombie.ip}, browser:#{browser_name}-#{browser_version}, os:#{os_name}-#{os_version}], hooked domain [#{log_zombie_domain}:#{log_zombie_port}]"
# add localhost as network host # add localhost as network host
if config.get('beef.extension.network.enable') if config.get('beef.extension.network.enable')

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
module BeEF module BeEF

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
module BeEF module BeEF
@@ -71,12 +71,7 @@ module BeEF
# @note get zombie if already hooked the framework # @note get zombie if already hooked the framework
hook_session_name = config.get('beef.http.hook_session_name') hook_session_name = config.get('beef.http.hook_session_name')
hook_session_id = hook_session_id = request[hook_session_name]
if request.respond_to?(:[])
request[hook_session_name]
else
request.params[hook_session_name] || request.env[hook_session_name]
end
begin begin
raise ActiveRecord::RecordNotFound if hook_session_id.nil? raise ActiveRecord::RecordNotFound if hook_session_id.nil?

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
module BeEF module BeEF
@@ -19,7 +19,7 @@ module BeEF
beef_js_path = "#{$root_dir}/core/main/client/" beef_js_path = "#{$root_dir}/core/main/client/"
# @note External libraries (like jQuery) that are not evaluated with Eruby and possibly not obfuscated # @note External libraries (like jQuery) that are not evaluated with Eruby and possibly not obfuscated
ext_js_sub_files = %w[lib/jquery-1.12.4.min.js lib/jquery-migrate-1.4.1.js lib/evercookie.js lib/json2.js lib/mdetect.js lib/platform.js lib/jquery.blockUI.js lib/bowser-2.11.0.min.js] ext_js_sub_files = %w[lib/jquery-1.12.4.min.js lib/jquery-migrate-1.4.1.js lib/evercookie.js lib/json2.js lib/mdetect.js lib/platform.js lib/jquery.blockUI.js]
# @note BeEF libraries: need Eruby evaluation and obfuscation # @note BeEF libraries: need Eruby evaluation and obfuscation
beef_js_sub_files = %w[beef.js browser.js browser/cookie.js browser/popup.js session.js os.js hardware.js dom.js logger.js net.js updater.js encode/base64.js beef_js_sub_files = %w[beef.js browser.js browser/cookie.js browser/popup.js session.js os.js hardware.js dom.js logger.js net.js updater.js encode/base64.js

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
module BeEF module BeEF
@@ -72,8 +72,8 @@ module BeEF
if config.get('beef.http.websocket.enable') && ws.getsocket(hooked_browser.session) if config.get('beef.http.websocket.enable') && ws.getsocket(hooked_browser.session)
# content = command_module.output.gsub('// # content = command_module.output.gsub('//
# // # //
# // Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # // Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# // Browser Exploitation Framework (BeEF) - https://beefproject.com # // Browser Exploitation Framework (BeEF) - http://beefproject.com
# // See the file 'doc/COPYING' for copying permission # // See the file 'doc/COPYING' for copying permission
# // # //
# //', "") # //', "")

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
module BeEF module BeEF
@@ -19,7 +19,7 @@ module BeEF
beef_js_path = "#{$root_dir}/core/main/client/" beef_js_path = "#{$root_dir}/core/main/client/"
# @note External libraries (like jQuery) that are not evaluated with Eruby and possibly not obfuscated # @note External libraries (like jQuery) that are not evaluated with Eruby and possibly not obfuscated
ext_js_sub_files = %w[lib/jquery-1.12.4.min.js lib/jquery-migrate-1.4.1.js lib/evercookie.js lib/json2.js lib/mdetect.js lib/platform.js lib/jquery.blockUI.js lib/bowser-2.11.0.min.js] ext_js_sub_files = %w[lib/jquery-1.12.4.min.js lib/jquery-migrate-1.4.1.js lib/evercookie.js lib/json2.js lib/mdetect.js lib/platform.js lib/jquery.blockUI.js]
# @note BeEF libraries: need Eruby evaluation and obfuscation # @note BeEF libraries: need Eruby evaluation and obfuscation
beef_js_sub_files = %w[beef.js browser.js browser/cookie.js browser/popup.js session.js os.js hardware.js dom.js logger.js net.js updater.js encode/base64.js beef_js_sub_files = %w[beef.js browser.js browser/cookie.js browser/popup.js session.js os.js hardware.js dom.js logger.js net.js updater.js encode/base64.js

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
module BeEF module BeEF
@@ -19,7 +19,7 @@ module BeEF
beef_js_path = "#{$root_dir}/core/main/client/" beef_js_path = "#{$root_dir}/core/main/client/"
# @note External libraries (like jQuery) that are not evaluated with Eruby and possibly not obfuscated # @note External libraries (like jQuery) that are not evaluated with Eruby and possibly not obfuscated
ext_js_sub_files = %w[lib/jquery-1.12.4.min.js lib/jquery-migrate-1.4.1.js lib/evercookie.js lib/json2.js lib/mdetect.js lib/platform.js lib/jquery.blockUI.js lib/bowser-2.11.0.min.js] ext_js_sub_files = %w[lib/jquery-1.12.4.min.js lib/jquery-migrate-1.4.1.js lib/evercookie.js lib/json2.js lib/mdetect.js lib/platform.js lib/jquery.blockUI.js]
# @note BeEF libraries: need Eruby evaluation and obfuscation # @note BeEF libraries: need Eruby evaluation and obfuscation
beef_js_sub_files = %w[beef.js browser.js browser/cookie.js browser/popup.js session.js os.js hardware.js dom.js logger.js net.js updater.js encode/base64.js beef_js_sub_files = %w[beef.js browser.js browser/cookie.js browser/popup.js session.js os.js hardware.js dom.js logger.js net.js updater.js encode/base64.js

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
module BeEF module BeEF

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
module BeEF module BeEF

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
module BeEF module BeEF

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
module BeEF module BeEF

View File

@@ -1,6 +1,6 @@
# #
# Copyright (c) 2006-2026 Wade Alcorn - wade@bindshell.net # Copyright (c) 2006-2023 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - https://beefproject.com # Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission # See the file 'doc/COPYING' for copying permission
# #
module BeEF module BeEF

Some files were not shown because too many files have changed in this diff Show More