Skip to content

Commit 90b8151

Browse files
committed
Merge remote-tracking branch 'upstream/master'
2 parents 7a8bbaa + a5d7dfb commit 90b8151

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+1061
-984
lines changed

.github/workflows/command_shell_acceptance.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ jobs:
6666
- windows-2019
6767
- ubuntu-20.04
6868
ruby:
69-
- 3.1.5
69+
- '3.2'
7070
include:
7171
# Powershell
7272
- { command_shell: { name: powershell }, os: windows-2019 }

.github/workflows/lint.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ jobs:
3838
fail-fast: true
3939
matrix:
4040
ruby:
41-
- '3.1'
41+
- '3.2'
4242

4343
name: Lint msftidy
4444
steps:

.github/workflows/shared_meterpreter_acceptance.yml

Lines changed: 55 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,11 @@ on:
3030
type: boolean
3131

3232
jobs:
33-
# Compile Java Meterpreter via docker if required, we can't always do this on the
33+
# Compile the Meterpreter payloads via docker if required, we can't always do this on the
3434
# host environment (i.e. for macos). So it instead gets compiled first on a linux
3535
# host, then the artifacts are copied back to the host later
36-
java_meterpreter_compilation:
37-
name: Compile Java Meterpreter
36+
meterpreter_compilation:
37+
name: Compile Meterpreter
3838
runs-on: ubuntu-latest
3939
if: ${{ inputs.build_metasploit_payloads }}
4040

@@ -46,21 +46,22 @@ jobs:
4646
path: metasploit-payloads
4747
ref: ${{ inputs.metasploit_payloads_commit }}
4848

49-
- name: Build Java and Android payloads
49+
- name: Build Meterpreter payloads
5050
run: |
51-
mkdir $(pwd)/java-artifacts
52-
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"
51+
mkdir $(pwd)/meterpreter-artifacts
52+
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"
53+
cp $(pwd)/metasploit-payloads/gem/pkg/metasploit-payloads-* $(pwd)/meterpreter-artifacts
5354
54-
- name: Store Java artifacts
55+
- name: Store Meterpreter artifacts
5556
uses: actions/upload-artifact@v4
5657
with:
57-
name: java-artifacts
58-
path: java-artifacts
58+
name: meterpreter-artifacts
59+
path: meterpreter-artifacts
5960

6061
# Run all test individually, note there is a separate final job for aggregating the test results
6162
test:
62-
needs: java_meterpreter_compilation
63-
if: always() && (needs.java_meterpreter_compilation.result == 'success' || needs.java_meterpreter_compilation.result == 'skipped')
63+
needs: meterpreter_compilation
64+
if: always() && (needs.meterpreter_compilation.result == 'success' || needs.meterpreter_compilation.result == 'skipped')
6465

6566
strategy:
6667
fail-fast: false
@@ -70,7 +71,7 @@ jobs:
7071
- windows-2019
7172
- ubuntu-20.04
7273
ruby:
73-
- 3.1.5
74+
- '3.2'
7475
meterpreter:
7576
# Python
7677
- { name: python, runtime_version: 3.6 }
@@ -208,28 +209,28 @@ jobs:
208209
working-directory: metasploit-framework
209210

210211
- uses: actions/download-artifact@v4
211-
name: Download Java meterpreter
212-
id: download_java_meterpreter
213-
if: ${{ matrix.meterpreter.name == 'java' && inputs.build_metasploit_payloads }}
212+
name: Download Meterpreter
213+
id: download_meterpreter
214+
if: ${{ matrix.meterpreter.name != 'mettle' && inputs.build_metasploit_payloads }}
214215
with:
215216
# Note: Not specifying a name will download all artifacts from the previous workflow jobs
216217
path: raw-data
217218

218-
- name: Extract Java Meterpreter (Unix)
219-
if: ${{ matrix.meterpreter.name == 'java' && runner.os != 'Windows' && inputs.build_metasploit_payloads }}
219+
- name: Extract Meterpreter (Unix)
220+
if: ${{ matrix.meterpreter.name != 'mettle' && runner.os != 'Windows' && inputs.build_metasploit_payloads }}
220221
shell: bash
221222
run: |
222223
set -x
223-
download_path=${{steps.download_java_meterpreter.outputs.download-path}}
224-
cp -r $download_path/java-artifacts/data/* ./metasploit-framework/data
224+
download_path=${{steps.download_meterpreter.outputs.download-path}}
225+
cp -r $download_path/meterpreter-artifacts/* ./metasploit-framework
225226
226-
- name: Extract Java Meterpreter (Windows)
227-
if: ${{ matrix.meterpreter.name == 'java' && runner.os == 'Windows' && inputs.build_metasploit_payloads }}
227+
- name: Extract Meterpreter (Windows)
228+
if: ${{ matrix.meterpreter.name != 'mettle' && runner.os == 'Windows' && inputs.build_metasploit_payloads }}
228229
shell: bash
229230
run: |
230231
set -x
231-
download_path=$(cygpath -u '${{steps.download_java_meterpreter.outputs.download-path}}')
232-
cp -r $download_path/java-artifacts/data/* ./metasploit-framework/data
232+
download_path=$(cygpath -u '${{steps.download_meterpreter.outputs.download-path}}')
233+
cp -r $download_path/meterpreter-artifacts/* ./metasploit-framework
233234
234235
- name: Install mettle gem
235236
if: ${{ matrix.meterpreter.name == 'mettle' && inputs.build_mettle }}
@@ -250,32 +251,6 @@ jobs:
250251
path: metasploit-payloads
251252
ref: ${{ inputs.metasploit_payloads_commit }}
252253

253-
- name: Get metasploit-payloads version
254-
if: ${{ inputs.build_metasploit_payloads && matrix.meterpreter.name != 'mettle' }}
255-
shell: bash
256-
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
257-
working-directory: metasploit-payloads
258-
259-
- name: Build metasploit-payloads gem
260-
if: ${{ inputs.build_metasploit_payloads && matrix.meterpreter.name != 'mettle' }}
261-
run: gem build ./gem/metasploit-payloads.gemspec
262-
working-directory: metasploit-payloads
263-
264-
- name: Copy metasploit-payloads gem into metasploit-framework
265-
if: ${{ inputs.build_metasploit_payloads && matrix.meterpreter.name != 'mettle' }}
266-
shell: bash
267-
run: cp ../metasploit-payloads/metasploit-payloads-${{ env.METASPLOIT_PAYLOADS_VERSION }}.gem .
268-
working-directory: metasploit-framework
269-
270-
- name: Install metasploit-payloads gem
271-
if: ${{ inputs.build_metasploit_payloads && matrix.meterpreter.name != 'mettle' }}
272-
run: |
273-
bundle exec gem install metasploit-payloads-${{ env.METASPLOIT_PAYLOADS_VERSION }}.gem
274-
bundle config unset deployment
275-
bundle update metasploit-payloads
276-
bundle install
277-
working-directory: metasploit-framework
278-
279254
- name: Build Windows payloads via Visual Studio 2019 Build (Windows)
280255
shell: cmd
281256
if: ${{ matrix.meterpreter.name == 'windows_meterpreter' && matrix.os == 'windows-2019' && inputs.build_metasploit_payloads }}
@@ -294,12 +269,39 @@ jobs:
294269
make.bat
295270
working-directory: metasploit-payloads
296271

297-
- name: Build PHP, Python and Windows payloads
298-
if: ${{ (matrix.meterpreter.name == 'php' || matrix.meterpreter.name == 'python' || runner.os == 'Windows') && inputs.build_metasploit_payloads }}
299-
run: |
300-
make install-php install-python install-windows
272+
- name: Get metasploit-payloads version
273+
if: ${{ inputs.build_metasploit_payloads && matrix.meterpreter.name != 'mettle' }}
274+
shell: bash
275+
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
301276
working-directory: metasploit-payloads
302277

278+
- name: Install metasploit-payloads gem
279+
if: ${{ inputs.build_metasploit_payloads && matrix.meterpreter.name != 'mettle' }}
280+
run: |
281+
bundle exec gem install metasploit-payloads-${{ env.METASPLOIT_PAYLOADS_VERSION }}.gem
282+
working-directory: metasploit-framework
283+
284+
- name: Remove metasploit-payloads version from metasploit-framework.gemspec
285+
if: ${{ inputs.build_metasploit_payloads && matrix.meterpreter.name != 'mettle' && runner.os != 'Windows' }}
286+
run: |
287+
ruby -pi -e "gsub(/metasploit-payloads', '\d+.\d+.\d+/, 'metasploit-payloads')" metasploit-framework.gemspec
288+
working-directory: metasploit-framework
289+
290+
- name: Remove metasploit-payloads version from metasploit-framework.gemspec (Windows)
291+
if: ${{ inputs.build_metasploit_payloads && (runner.os == 'Windows' && matrix.meterpreter.name != 'windows_meterpreter') && matrix.meterpreter.name != 'mettle' }}
292+
shell: cmd
293+
run: |
294+
ruby -pi.bak -e "gsub(/metasploit-payloads', '\d+.\d+.\d+/, 'metasploit-payloads')" metasploit-framework.gemspec
295+
working-directory: metasploit-framework
296+
297+
- name: Bundle update/install metasploit-payloads gem
298+
if: ${{ inputs.build_metasploit_payloads && matrix.meterpreter.name != 'mettle' }}
299+
run: |
300+
bundle config unset deployment
301+
bundle update metasploit-payloads
302+
bundle install
303+
working-directory: metasploit-framework
304+
303305
- name: Acceptance
304306
env:
305307
SPEC_HELPER_LOAD_METASPLOIT: false

.github/workflows/verify.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ jobs:
6060
fail-fast: true
6161
matrix:
6262
ruby:
63-
- '3.1'
6463
- '3.2'
6564
- '3.3'
6665
- '3.4'
@@ -69,7 +68,7 @@ jobs:
6968
- ubuntu-latest
7069
include:
7170
- os: ubuntu-latest
72-
ruby: '3.1'
71+
ruby: '3.2'
7372
test_cmd: 'bundle exec rake rspec-rerun:spec SPEC_OPTS="--tag content" MSF_FEATURE_DEFER_MODULE_LOADS=1'
7473
test_cmd:
7574
- bundle exec rake rspec-rerun:spec SPEC_OPTS="--tag content"

.github/workflows/weekly-data-and-external-tool-updater.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ jobs:
2626
update-data-files:
2727
runs-on: ubuntu-latest
2828

29+
if: github.repository_owner == 'rapid7'
30+
2931
env:
3032
BUNDLE_WITHOUT: "coverage development pcap"
3133

Gemfile.lock

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
PATH
22
remote: .
33
specs:
4-
metasploit-framework (6.4.48)
4+
metasploit-framework (6.4.49)
55
aarch64
66
abbrev
77
actionpack (~> 7.0.0)
@@ -323,7 +323,7 @@ GEM
323323
logger
324324
mime-types-data (~> 3.2015)
325325
mime-types-data (3.2024.1001)
326-
mini_portile2 (2.8.7)
326+
mini_portile2 (2.8.8)
327327
minitest (5.25.1)
328328
mqtt (0.6.0)
329329
msgpack (1.6.1)
@@ -346,7 +346,7 @@ GEM
346346
network_interface (0.0.4)
347347
nexpose (7.3.0)
348348
nio4r (2.7.4)
349-
nokogiri (1.16.7)
349+
nokogiri (1.18.2)
350350
mini_portile2 (~> 2.8.2)
351351
racc (~> 1.4)
352352
nori (2.7.1)

LICENSE_GEMS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ memory_profiler, 1.1.0, MIT
9090
metasm, 1.0.5, LGPL-2.1
9191
metasploit-concern, 5.0.3, "New BSD"
9292
metasploit-credential, 6.0.11, "New BSD"
93-
metasploit-framework, 6.4.48, "New BSD"
93+
metasploit-framework, 6.4.49, "New BSD"
9494
metasploit-model, 5.0.2, "New BSD"
9595
metasploit-payloads, 2.0.189, "3-clause (or ""modified"") BSD"
9696
metasploit_data_models, 6.0.5, "New BSD"

0 commit comments

Comments
 (0)