From 94c84de31880110c01b4efdabbc380e4f9a8bbbc Mon Sep 17 00:00:00 2001 From: cgranleese-r7 Date: Mon, 21 Oct 2024 11:51:48 +0100 Subject: [PATCH] Builds metasploit-payload gem as part of acceptance tests --- .../shared_meterpreter_acceptance.yml | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/.github/workflows/shared_meterpreter_acceptance.yml b/.github/workflows/shared_meterpreter_acceptance.yml index 53d77e86c5b6f..c78853e7ba302 100644 --- a/.github/workflows/shared_meterpreter_acceptance.yml +++ b/.github/workflows/shared_meterpreter_acceptance.yml @@ -159,7 +159,7 @@ jobs: - name: Get mettle version if: ${{ matrix.meterpreter.name == 'mettle' && inputs.build_mettle }} run: | - echo "METTLE_VERSION=$(grep -oh '[0-9].[0-9].[0-9]*' lib/metasploit_payloads/mettle/version.rb)" | tee -a $GITHUB_ENV + echo "METTLE_VERSION=$(ruby -ne 'puts $& if /[0-9].[0-9].[0-9]*/' lib/metasploit_payloads/mettle/version.rb)" | tee -a $GITHUB_ENV working-directory: mettle - name: Prerequisite mettle gem setup @@ -251,6 +251,31 @@ jobs: path: metasploit-payloads ref: ${{ inputs.metasploit_payloads_commit }} + - name: Get metasploit-payloads version + shell: bash + run: | + echo "METASPLOIT_PAYLOADS_VERSION=$(ruby -ne 'puts $& if /[0-9].[0-9].[0-9]*/' gem/lib/metasploit-payloads/version.rb)" | tee -a $GITHUB_ENV + working-directory: metasploit-payloads + + - name: Build metasploit-payloads gem + run: | + gem build ./gem/metasploit-payloads.gemspec + working-directory: metasploit-payloads + + - name: Copy metasploit-payloads gem into metasploit-framework + shell: bash + run: | + cp ../metasploit-payloads/metasploit-payloads-${{ env.METASPLOIT_PAYLOADS_VERSION }}.gem . + working-directory: metasploit-framework + + - name: Install metasploit-payloads gem + 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 }}